var filebrowser;

function Manage(back_url,session_timeout_seconds)
{	
	this.back_url				= back_url;
	this.giveback;
	this.session_timeout		= session_timeout_seconds-30;
	this.seconds_elapsed		= 0;
	this.timeoutwarning			= "audiovisual";
	this.notifications_seen		= new Array();
	
	window.addEvent('beforeunload',function()
	{
		var seen_data		= "";
		manage.notifications_seen.each(function(element,nr)
		{
			if(seen_data!="")
			{
				seen_data			+= ",";
			}
			seen_data			+= nr;
		});
		
		url = manage.back_url+"default/notifications/delete_seen";
		
		new Ajax(url,
		{
			'data': {'seen':seen_data},
			'method': 'post',
			'async': false
		}).request();
	});
			
	this.prompt		= function(title,explanation,okbutton,cancelbutton,callback)
	{				
		var x				= window.screenLeft+40;
		var y				= window.screenTop+40;
		
		var dialog;
		var url				= this.back_url+'/dialog/dialog?type=prompt&title='+title+'&explanation='+explanation+'&okbutton='+okbutton+'&cancelbutton='+cancelbutton+'&callback='+callback;
				
		dialog				= window.open(url,'prompt','top='+y+',left='+x+',toolbar=0,width=400,height=130,scrolling=no,dialog=yes,modal=yes,alwaysRaised=yes,resizable=no,dependent=yes,status=no,menu=no,directories=no,z-lock=1');
		dialog.focus();
	}
	
	this.setLanguage	= function(id_language)
	{		
		var url			= this.back_url+"home/?id_language="+id_language;
		new Ajax(url, {
			method: 'get',
			onComplete : function(msg)
			{
				document.location.reload();
			}
		}).request();
		
	}
	
	this.setTimeoutWarning	= function(type)
	{
		this.timeoutwarning	= type;
	}
	
	this.open_filebrowser	= function(callback,value)
	{
		this.giveback				= value;
		filebrowser					= window.open(this.back_url+'filebrowser?skip_tinymce=1&callback='+callback,'browser','width=800,height=600,location=no,directories=no,menu=no,status=no,resizable=no,scrolling=no');		
		filebrowser.focus();		
	}
	
	this.start_timeout_timer	= function()
	{
		this.timeout_timer_id	= (function()
		{			
			this.seconds_elapsed++;
			var seconds_left						= parseInt(this.session_timeout)-parseInt(this.seconds_elapsed);			
				
			if($('session_timeout_div'))
			{
				if(seconds_left==60)
				{					
					//alert(session_almost_timeout_warning);
					window.focus();					
				}			
				
				if(seconds_left<11 && soundManager._didInit)
				{					
					if(this.timeoutwarning=="audiovisual")
					{
						soundManager.play('warning_timeout',{volume:100});
					}
				}
								
				if(seconds_left<61)
				{					
					if($('session_timeout_div').getStyle('color')=="red")
					{
						color			= "white";
					}else				
					{
						color			= "red";
					}
					
					$('session_timeout_div').setStyle('color',color);
				}else
				{
					$('session_timeout_div').setStyle('color','white');
				}				
			}

			if(seconds_left>0)
			{
				if($('session_timeout_div'))
				{
					var time_seconds		= seconds_left;
					var time_minutes		= 0;
					var time_hours			= 0;
					
					if(time_seconds>60)
					{
						time_minutes			= Math.floor(time_seconds/60);	
						time_seconds			= time_seconds-(time_minutes*60);		
					}
					if(time_minutes>60)
					{
						time_hours				= Math.floor(time_minutes/60);	
						time_minutes			= time_minutes-(time_hours*60);
					}
					
					if(time_seconds<10)
					{
						time_seconds			= '0'+time_seconds;
					}
					if(time_minutes<10)
					{
						time_minutes			= '0'+time_minutes;
					}
									
					$('session_timeout_div').innerHTML		= time_hours+':'+time_minutes+":"+time_seconds;
				}
			}else
			{
				$clear(this.timeout_timer_id);				
				location.href			= this.back_url+"default/login/logout";
			}
			
			
		}).periodical(1000,this);		
	}
	
	
	this.extend_session			= function()
	{
		$('session_timeout_div').innerHTML	= "...";
		
		new Ajax(this.back_url, {
			method: 'get',
			onComplete: function (msg)
			{				
				manage.seconds_elapsed			= 0;
			}		
		}).request();
	}
	
	this.activate_window_tab	 = function(caller)
	{
		var window_id			= caller.getAttribute("window");
		var tab_id				= caller.getAttribute("tab");
		var onload				= caller.getAttribute('onload');
		
		var tabs				= $(window_id+"_body").childNodes;
		for(var i=0; i<tabs.length; i++)
		{			
			if(tabs[i].className=="content")
			{
				if(tabs[i].id==window_id+"_"+tab_id)
				{					
					tabs[i].style.display			= 'block';
					if(onload.length>0)
					{					
						eval(onload);
					}
				}else
				{
					tabs[i].style.display			= 'none';
				}
			}
		}		
		
		var tab_headers						= caller.parentNode.parentNode.childNodes;
		for(var j=0; j<tab_headers.length; j++)
		{
			tab_headers[j].className		= "";
		}
		caller.parentNode.className			= "active";	
		
		try{
			resizeHeaders();
		}catch(e){}
	}
	
	this.preview				= function(type,cvid,langid,svid)
	{	
		url = "index.php?route=content/content/make_preview";		
		new Ajax(url,
		{
			data: {'cvid':cvid,'langid':langid,'preview_type':type,'svid':svid},
			method: 'post',
			evalScripts: true
		}).request();
	}
	
	this.notify				= function(msg,lifetime,id)
	{	
		/* Alleen tonen als die bericht nog niet eerder getoond is*/
		if(!this.notifications_seen[id] || !id)
		{	
			if(id)
			{
				this.notifications_seen[id]		= 1;
			}
				
			var msg_div			= new Element('div');
			msg_div.className	= 'message';
			msg_div.setHTML(msg);
			msg_div.setStyle('display','none');
			$('msg_popup').adopt(msg_div);	
			var mySlide 		= new Fx.Slide(msg_div);
			mySlide.slideOut();	
			
			mySlide.addEvent('onComplete',function(element)
			{
				element.setStyle('display','block');
				mySlide.removeEvent('onComplete');
				mySlide.slideIn();
			});	
			
			
			var opacity_fx = new Fx.Style(msg_div, 'opacity', {duration:1000});
			opacity_fx.addEvent('onComplete',function(element)
			{
				element.remove();
			});	
			
			msg_div.addEvent('click',function()
			{
				opacity_fx.start(0.0)
			});
			
			if(lifetime>0)
			{				
				(function(){opacity_fx.start(0.0)}).delay(lifetime*1000);			
			}
		}
	}
	
	this.load_notifications		= function()
	{
		var seen_data		= "";
		this.notifications_seen.each(function(element,nr)
		{
			if(seen_data!="")
			{
				seen_data			+= ",";
			}
			seen_data			+= nr+1;
		});
	
		var url = this.back_url+"default/notifications/get";
		try{
			var request = new Json.Remote(url,
			{
				onComplete: function(jsonObj)
				{				
					jsonObj.notifications.each(function(notification)
					{
						try{
							manage.notify(notification.message,notification.lifetime,notification.id);
						}catch(e){}				
					});				
				},
				autoCancel: true
			}).send("&seen="+seen_data+"&hs=1");
		}catch(e){}
	}

}

function repeat(repeatString, repeatNum, returnNum) {
    var newString = "";
    returnNum += "";
    if (returnNum == "undefined" || returnNum == "0") { return ""; }
    for (var x=1; x<=parseInt(repeatNum, 10); x++) {
        newString = newString + repeatString;
    }
    if (newString == "") {
        return (newString);
    } else {
        return (newString.substring(0, parseInt(returnNum, 10)));
    }
} 

Array.prototype.inArray = function (value)
{
	var i;
	for (i=0; i < this.length; i++) 
	{
		if (this[i] === value) 
		{
			return true;
		}
	}
	return false;
};

Array.prototype.remove=function(s){
var index = this.indexOf(s);
if(this.indexOf(s) != -1)this.splice(s, 1);
}

function doPreview()
{
	alert("Function deprecated! see manage.js");
}

