var site_root = "/system/";
var nossl_site_root = "http://www.reactive360.com/system/";
var ssl_site_root = "https://www.reactive360.com/system/";
var nosslfb_site_root = "http://www.feedbackarea.com/";
var quick360home = "http://www.reactive360.com/quick360.html";
//var site_root = "http://www.reactive360.com/system/";

//var systemwin = null;
var popupwin = null;
var popupconfirm = null;
var system_confirm = null;
var system_confirmokonly = null;
//var system_win = null;
var system_window_0 = null;
var system_window = null;
var system_window2 = null;
var system_window3 = null;
var system_window4 = null;
var system_window5 = null;
var external_window = null;
var external_window2 = null;
var statusText = 'statusText';
var statusElement = 'statusElement';

var mainrefresher = new Array();
var refresher_0=new Array();
var refresher=new Array();
var refresher2=new Array();
var refresher3=new Array();
var refresher4=new Array();
var refresher5=new Array();
var external_refresher=new Array();
var external_refresher2=new Array();
var helpwin = null;
var helptimer = null;
var thisslide;
var helpfilo = new Array();
var default_class = "mac_os_x";
var alternate_class = "reactive";

function checkhelpopen()
{
	
	if (helpwin.closed)
	{
		var lft = window.screen.availWidth;
		var ht = window.screen.availHeight;
		window.resizeTo(lft,ht);
		window.moveTo(0,0);
	}
	else
		helptimer = window.setTimeout("checkhelpopen()",500);
}

function launchhelpauto(text, li) 
{
	var thisArray = $A(li.getElementsByClassName('hiddentag'));
    launchhelp(thisArray[0].getAttribute('helptag'));
}

function loadhelp(tagname,mode)
{
	var baseu = site_root+'helpcenter2.php?tagname='+tagname;
	if (typeof(mode)!='undefined')
	{
		if (mode='ssl')
		{
			baseu = ssl_site_root+'helpcenter2.php?tagname='+tagname;
		}
	}

	try{
		window.parent.helpcenter.location=baseu;
	}
	catch(e)
	{
	}
}

function launchhelp(tagname)
{
	var baseu = site_root+'autohelp.php?tagname='+tagname;
	
	
	/*var lft = window.screen.availWidth-200;
	var ht = window.screen.availHeight;
	window.resizeTo(lft,ht);
	window.moveTo(0,0);

	try{
		helpwin.window.focus();
		helpwin.window.resizeTo(200,ht);
		helpwin.moveTo(lft,0);
		helpwin.window.location.href=baseu;
	}
	catch(e)
	{
		helpwin = window.open(baseu,'helpwin','top=0,left='+lft+',width=200,height='+ht);
	}*/


	//window.parent.helpcenter.location.href=baseu;
	//checkhelpopen();
	open_externalwindow(baseu,'','Help',500,400,false,false,false,false,false,'home');
	
}



function loadjs(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e); 
}



function json_decode(sin)
{
	if (sin!='')
	{
		  sout = sin.replace(/\[#BCK#\]\[#SGL#\]/g,"'");
  		  sout = sout.replace(/\[#BCK#\]\[#DBL#\]/g,'"');
		  sout = sout.replace(/\[#BCK#\]/g,"\\");
		  sout = sout.replace(/\[#DBL#\]/g,'"');
		  sout = sout.replace(/\[#FWD#\]/g,"/");
		  sout = sout.replace(/\[#SGL#\]/g,"'");
	}
	else
		sout = "";

//  sout2 =  sout.replace([#SGL#]',"'");
  return sout;
}

function isdefined( variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function statusSet(newmsg)
{
	Element.update($(statusText),newmsg);
	showhideStatus();
}

//called to perform a dynamic DB operation
function core_rpc(rpc,mod,pars,disablestat)
{
//	alert(pars);
	if (typeof(disablestat)=='undefined')
	{
		showProgressStatus();
	}

	var pars = 'rpc='+rpc+pars;
		var myAjax = new Ajax.Request(
			mod, 
			{
				method:'post', 
				postBody:pars, 
				onComplete:function(transport){
					json = transport.responseJSON;
					if (json)
					{
						if (typeof(disablestat)=='undefined')
						{
							Element.update($(statusText),json.notifymsg);
							showhideStatus();
						}
						if (json.status=='success')
						{	
							if (typeof(disablestat)=='undefined')
							{
								Element.update($(statusText),json.notifymsg);
							}

							if (json.execute!='')
							{
								//alert(json.execute);
								eval(json_decode(json.execute));
							}
							
						}
						else
						{
							alert('An Error Occured');
							alert(transport.responseText);
						}
					}
					else
						alert(transport.responseText);
				}
			});	
}

function core_refresh_mainwindow(feed)
{
	core_updatesystem_rpc(mainrefresher[0][0],mod_app_datafeed,mainrefresher[0][1],mainrefresher[0][2],0)
}

function core_refresh_systemwindow_0()
{
	core_updatesystem_0_rpc(refresher_0[0][0],refresher_0[0][3],refresher_0[0][1],refresher_0[0][2],0)
}

function core_refresh_systemwindow()
{
	core_updatesystem_rpc(refresher[0][0],refresher[0][3],refresher[0][1],refresher[0][2],0)
}

function core_refresh_systemwindow2()
{
	core_updatesystem2_rpc(refresher2[0][0],refresher2[0][3],refresher2[0][1],refresher2[0][2],0)
}

function core_refresh_systemwindow3()
{
	core_updatesystem3_rpc(refresher3[0][0],refresher3[0][3],refresher3[0][1],refresher3[0][2],0)
}

function core_refresh_systemwindow4()
{
	core_updatesystem4_rpc(refresher4[0][0],refresher4[0][3],refresher4[0][1],refresher4[0][2],0)
}

function core_refresh_systemwindow5()
{
	core_updatesystem5_rpc(refresher5[0][0],refresher5[0][3],refresher5[0][1],refresher5[0][2],0)
}

/*function core_updatesystemwin_rpc(rpc,mod,pars,newtitle,showstatus)
{
	base_core_updatesystem_rpc(rpc,mod,pars,newtitle,showstatus,refresher,'systemwin')
}*/

function core_updatesystem_0_rpc(rpc,mod,pars,newtitle,showstatus)
{
	if (typeof(showstatus)=='undefined')
	{
		showstatus = 0;
	}
	if (typeof(newtitle)=='undefined')
	{
		newtitle = '';
	}
	base_core_updatesystem_rpc(rpc,mod,pars,newtitle,showstatus,refresher_0,'system_window_0')
}

function core_updatesystem_rpc(rpc,mod,pars,newtitle,showstatus)
{
	if (typeof(showstatus)=='undefined')
	{
		showstatus = 0;
	}
	if (typeof(newtitle)=='undefined')
	{
		newtitle = '';
	}
	base_core_updatesystem_rpc(rpc,mod,pars,newtitle,showstatus,refresher,'system_window')
}

function core_updatesystem2_rpc(rpc,mod,pars,newtitle,showstatus)
{
	if (typeof(showstatus)=='undefined')
	{
		showstatus = 0;
	}
	if (typeof(newtitle)=='undefined')
	{
		newtitle = '';
	}
	base_core_updatesystem_rpc(rpc,mod,pars,newtitle,showstatus,refresher2,'system_window2')
}

function core_updatesystem3_rpc(rpc,mod,pars,newtitle,showstatus)
{
	if (typeof(showstatus)=='undefined')
	{
		showstatus = 0;
	}
	if (typeof(newtitle)=='undefined')
	{
		newtitle = '';
	}
	base_core_updatesystem_rpc(rpc,mod,pars,newtitle,showstatus,refresher3,'system_window3')
}

function core_updatesystem4_rpc(rpc,mod,pars,newtitle,showstatus)
{
	if (typeof(showstatus)=='undefined')
	{
		showstatus = 0;
	}
	if (typeof(newtitle)=='undefined')
	{
		newtitle = '';
	}
	base_core_updatesystem_rpc(rpc,mod,pars,newtitle,showstatus,refresher4,'system_window4')
}

function core_updatesystem5_rpc(rpc,mod,pars,newtitle,showstatus)
{
	if (typeof(showstatus)=='undefined')
	{
		showstatus = 0;
	}
	if (typeof(newtitle)=='undefined')
	{
		newtitle = '';
	}
	base_core_updatesystem_rpc(rpc,mod,pars,newtitle,showstatus,refresher5,'system_window5')
}

//called to perform a dynamic LOAD into DIV operation
function base_core_updatesystem_rpc(rpc,feed,pars,newtitle,showstatus,refr,pid)
{
	
	//alert(pars);
	if (showstatus==1)
	{
		showProgressStatus();
	}
	var ppars = 'rpc='+rpc+pars;
		var myAjax = new Ajax.Request(
			feed, 
			{
				method:'post', 
				postBody:ppars, 
				onComplete:function(transport){
					json = transport.responseJSON;
					if (json)
					{	//					alert(transport.responseText);
						if (json.status=='success')
						{	
							refr[0] = new Array();
							refr[0][0] = rpc;
							refr[0][1] = pars;
							refr[0][2] = newtitle;
							refr[0][3] = feed;	
							//alert(json_decode(json.content));
							eval('$('+pid+').getContent()').update(json_decode(json.content));
							//$(systemwin).content.update(json_decode(json.content));
							eval('$('+pid+').setTitle(newtitle)');
//							$(systemwin).setTitle(newtitle);
							if (showstatus==1)
							{
								Element.update($(statusText),json.notifymsg);
								showhideStatus();
							}
							if (typeof(json.execute)!='undefined')
							{
								if (json.execute!='')
								{
									//alert(json_decode(json.execute));
									eval(json_decode(json.execute));
								}
							}
							
							
						}
						else
						{
							alert('An Error Occured');
							alert(transport.responseText);
						}
					}
					else
						alert(transport.responseText);
				}
			});	
}

//called to perform a dynamic LOAD into DIV operation
function core_load_rpc(rpc,feed,pars,intodiv,showstatus,loader,oncomp)
{
	var params = "";
	if (typeof(loader)=='undefined')
	{
		showloading(intodiv);
	}
	else
	{
		if(loader==10)
		{
			showloading10(intodiv);
		}
		else
		{
			if (loader=='empty')
			{
			}
			else
				{
					showloading2(intodiv);
				}
		}
	}


	//alert(pars);
	if (showstatus==1)
	{
		showProgressStatus();
	}
	var newpars = 'rpc='+rpc+pars;

		var myAjax = new Ajax.Request(
			feed, 
			{
				method:'post', 
				postBody:newpars, 
				onComplete:function(transport){
					json = transport.responseJSON;
					//alert(transport.responseText);
					if (json)
					{
						if (json.status=='success')
						{	
							//alert(json_decode(json.content));
							Element.update($(intodiv),json_decode(json.content));
						}

						if ( (json.status=='executeonly') || (json.status=='success') )
						{
							
							if (showstatus==1)
							{
								Element.update($(statusText),json.notifymsg);
								showhideStatus();
							}
							
							if (json.execute)
							{							
								if (json.execute!='')
								{
									
									eval(json_decode(json.execute));
								}								
							}
							if (typeof(oncomp)!='undefined')
							{
								eval(oncomp);
							}
							
						}
						else
						{
					//		alert('An Error Occured');
					//		alert(transport.responseText);
						}
					}
					else
					{
						//alert(transport.responseText);
					}
					//shroud_2_off();
					if (typeof(loader)!='undefined')
					{
						if (loader!=10)
						{
							hideloading2(intodiv);
						}
					}

				}
			});	
}



function showProgressStatus()
{
	Element.hide($('statusComplete')); 
	Element.show($('statusProgress'));

	new Effect.Appear('statusElement',{duration:0.5});
//	
}

function showhideStatus()
{
	if (Element.visible(statusElement)!='none')
	{

	}
	Element.hide($('statusProgress'));
	//Element.hide($(statusElement));

	//new Effect.toggle($(statusElement),'appear');
	//window.setTimeout(function(){ 
	//		new Effect.Appear($(statusElement),{duration:0.5});
	Element.show($('statusComplete'));
	//		}
	//		,500);
	window.setTimeout(function(){ 
			new Effect.Fade($(statusElement),{duration:0.6});
			}
			,2500);
			
}

function showStatus(newmsg)
{
	Element.update($(statusText),newmsg);
	Element.show($('statusProgress'));
	Element.show($('statusComplete'));
	Element.show($(statusElement));
}

function fadeStatus()
{
	if (Element.visible(statusElement)!='none')
	{
		Element.hide($('statusElement'));
	}
}



function close_window_0()
{
	base_close_window('system_window_0');

}

function close_window()
{
	base_close_window('system_window');

}

function close_window2()
{
	base_close_window('system_window2');
}

function close_window3()
{
	base_close_window('system_window3');
}

function close_window4()
{
	base_close_window('system_window4');
}

function close_window5()
{
	base_close_window('system_window5');
}

function base_close_window(pid)
{

	try{
//		Windows.close(eval(pid+'.getId()'));
		Windows.close(pid);
		helpfilo.pop();
		tag = helpfilo[helpfilo.length-1];
		loadhelp(tag);
	}
	catch(e)
	{
		alert(e.description);
	}
}


function open_window_0(rpc,pars,ptitle,feed,className)
{
		if (typeof(className)=='undefined')
			className=default_class;	
	//passes refresher by reference as it is a new Array (js only passes new created vars by ref
	base_open_window(rpc,pars,ptitle,feed,refresher_0,'system_window_0',className);
}

function open_window(rpc,pars,ptitle,feed,className)
{
		if (typeof(className)=='undefined')
		className=default_class;	

	//passes refresher by reference as it is a new Array (js only passes new created vars by ref
	base_open_window(rpc,pars,ptitle,feed,refresher,'system_window',className);
}

function open_window2(rpc,pars,ptitle,feed,className)
{
		if (typeof(className)=='undefined')
		className=default_class;	

	//passes refresher by reference as it is a new Array (js only passes new created vars by ref
	base_open_window(rpc,pars,ptitle,feed,refresher2,'system_window2',className);
	
}

function open_window3(rpc,pars,ptitle,feed,className)
{
		if (typeof(className)=='undefined')
			className=default_class;	

	//passes refresher by reference as it is a new Array (js only passes new created vars by ref
	base_open_window(rpc,pars,ptitle,feed,refresher3,'system_window3',className);
}

function open_window4(rpc,pars,ptitle,feed,className)
{
		if (typeof(className)=='undefined')
			className=default_class;	

	//passes refresher by reference as it is a new Array (js only passes new created vars by ref
	base_open_window(rpc,pars,ptitle,feed,refresher4,'system_window4',className);
}

function open_window5(rpc,pars,ptitle,feed,className)
{
		if (typeof(className)=='undefined')
			className=default_class;	

	//passes refresher by reference as it is a new Array (js only passes new created vars by ref
	base_open_window(rpc,pars,ptitle,feed,refresher5,'system_window5',className);
}


function external_window_refresh(pars)
{
	if (!(pars))
	{
		pars='';
	}
	external_window.setURL(external_window.getURL()+pars);
}

function external_window2_refresh(pars)
{
	if (!(pars))
	{
		pars='';
	}
	external_window2.setURL(external_window2.getURL()+pars);
}

function open_externalwindow(xurl,pars,ptitle,swidth,sheight,minimizable,maximizable,closable,draggable,resizable,helptag)
{
	if ($('external_window'))
	{
		return false;
	}
	shroud_on();
	//showStatus('Retrieving Data');
	//passes refresher by reference as it is a new Array (js only passes new created vars by ref
	if (!(swidth))
	{
		swidth = 740;
	}
	if (!(sheight))
	{
		sheight = 600;
	}
	var controls = new Array();
	if (!(minimizable)) controls[0] = false; else controls[0] = minimizable;
	if (!(maximizable)) controls[1] = false; else controls[1] = maximizable;
	if (!(closable))	controls[2] = false; else controls[2] = closable;
	controls[2]=false;
	if (!(draggable))	controls[3] = false; else controls[3] = draggable;
	if (!(resizable))	controls[4] = false; else controls[4] = resizable;
	if (!(helptag))		controls[5] = 'home'; else controls[5] = helptag;
	//var fx = 'showEffect:Effect.Grow,hideEffect:Effect.Shrink,';
	//var fx='showEffect:Element.show,hideEffect:Element.hide,';
	external_window = new Window(
							'external_window', 
							{
								url:xurl+pars,
								className: "mac_os_x", 
								title: ptitle,
								top:100, 
								left:100, 
								width:swidth, 
								height:sheight, 
								zIndex:150, 
								opacity:1,
								minimizable:controls[0],
								maximizable:controls[1],
								closable:controls[2], 
								draggable:controls[3],
								resizable:controls[4],
								helptag:controls[5],
								showEffect:Element.show,hideEffect:Element.hide,
								onShow:function(win){

														fadeStatus();
														shroud_off();
													}
							}
							);
	helpfilo.push(controls[5]);
	loadhelp(controls[5]);

	external_window.setDestroyOnClose();
	//true for modal
	external_window.showCenter(true,20);
	//showhideStatus();

}

function open_externalwindow2(xurl,pars,ptitle,swidth,sheight,minimizable,maximizable,closable,draggable,resizable,helptag)
{
	if ($('external_window2'))
	{
		return false;
	}
	shroud_on();
	//showStatus('Retrieving Data');
	//passes refresher by reference as it is a new Array (js only passes new created vars by ref
	if (!(swidth))
	{
		swidth = 740;
	}
	if (!(sheight))
	{
		sheight = 600;
	}
	var controls = new Array();
	if (!(minimizable)) controls[0] = false; else controls[0] = minimizable;
	if (!(maximizable)) controls[1] = false; else controls[1] = maximizable;
	if (!(closable))	controls[2] = false; else controls[2] = closable;
	controls[2] = false;
	if (!(draggable))	controls[3] = false; else controls[3] = draggable;
	if (!(resizable))	controls[4] = false; else controls[4] = resizable;
	if (!(helptag))		controls[5] = 'home'; else controls[5] = helptag;
	//var fx = 'showEffect:Effect.Grow,hideEffect:Effect.Shrink,';
	//var fx='showEffect:Element.show,hideEffect:Element.hide,';
	external_window2 = new Window(
							'external_window2', 
							{
								url:xurl+pars,
								className: "mac_os_x", 
								title: ptitle,
								top:100, 
								left:100, 
								width:swidth, 
								height:sheight, 
								zIndex:150, 
								opacity:1,
								minimizable:controls[0],
								maximizable:controls[1],
								closable:controls[2], 
								draggable:controls[3],
								resizable:controls[4],
								helptag:controls[5],
								showEffect:Element.show,hideEffect:Element.hide,
								onShow:function(win){
														fadeStatus();
														shroud_off();
													}
							}
							);
	helpfilo.push(controls[5]);
	loadhelp(controls[5]);

	external_window2.setDestroyOnClose();
	//true for modal
	external_window2.showCenter(true,20);
	//showhideStatus();

}

function close_externalwindow(runcode)
{
	//alert(runcode);
	try{
		base_close_window('external_window');
	}
	catch(e)
	{
	}

	if (typeof(runcode)!='undefined')
	{
		try{
			eval(runcode);
		}
		catch(e){
		}
	}
	fadeStatus();
}

function close_externalwindow2(runcode)
{
	//alert(runcode);
	try{
		base_close_window('external_window2');
	}
	catch(e)
	{
	}

	if (typeof(runcode)!='undefined')
	{
		try{
			eval(runcode);
		}
		catch(e){
		}
	}
	fadeStatus();
}

function testme()
{
	alert('here');
}
function close_ext(monkey)
{
	alert(monkey);
/*try{
		base_close_window('external_window');
	}
	catch(e)
	{
		txt="There was an error on this page.\n\n"
		  txt+="Error description: " + err.description + "\n\n"
		  txt+="Click OK to continue.\n\n"
		  alert(txt)

	}*/
}

function shroud_on()
{
	Element.show('shroud');
	Element.show('shroudimg');

}

function shroud_off()
{

	Element.hide('shroud');
	Element.hide('shroudimg');

}
function shroud_2_on()
{
	Element.show('shroud_2');
	Element.show('shroud_2_img');

}

function showloading(divvy)
{
	try{
		Element.update(divvy,$('shroud_2_img').innerHTML);
	}
	catch(e){}
}

function showloading10(divvy)
{
	Element.update(divvy,$('shroud_10_img').innerHTML);
}

function showloading2(divvy)
{
	/*var elementDimensions = Element.getDimensions(divvy);
	alert($(divvy).style.left);
	$('shroud_2').style.left = $(divvy).style.left;
	$('shroud_2').style.top = $(divvy).style.top;
	$('shroud_2').style.width = elementDimensions.width;
	$('shroud_2').style.height = elementDimensions.height;
	$('shroud_2').style.zIndex = 999;*/
	//clears the javascript:false iframe src
	try{
		$('shroud_2iframe').contentWindow.document.body.innerHTML='';
	}
	catch(e)
	{}
	Position.clone($(divvy),$('shroud_2iframe'));
	Position.clone($(divvy),$('shroud_2'));
	Element.show('shroud_2iframe');
	Element.show('shroud_2');
//	window.frames['shroud_2'].innerHTML =$('shroud_2_img').innerHTML; 
//	shroud_2.document.body.innerHTML ='yello';
	//$('shroud_2_img').innerHTML;
//expression(parentNode.offsetHeight/2-offsetHeight/2)
	Element.update($('shroud_2'),'<DIV style="top:15px;text-align:center;width:100%;">'+$('shroud_2_img').innerHTML+'</DIV>');
}

function hideloading2(divvy)
{
	Element.hide('shroud_2');
	Element.hide('shroud_2iframe');
}


function shroud_2_off()
{
	Element.hide('shroud_2');
	Element.hide('shroud_2_img');

}
function base_open_window(rpc,pars,ptitle,feed,refr,pid,className)
{

	if (typeof(className)=='undefined')
		className=default_class;	
	if ($(pid))
	{
		return false;
	}
	shroud_on();
	//store info for a refresh
	//we should use pid here really
	refr[0] = new Array();
	refr[0][0] = rpc;
	refr[0][1] = pars;
	refr[0][2] = ptitle;
	refr[0][3] = feed;

	//var pid = 'system_window';
	try{
		window[pid].destroy();
	}
	catch(err)
	{
	}
	try{
		$(pid).destroy();
	}
	catch(err)
	{
	}

	var myAjax = new Ajax.Request(
			refr[0][3], 
			{
				
				method:'post', 
				postBody:'rpc='+refr[0][0]+refr[0][1], 
				onFailure:function(request){
					alert('AJAX call failed');
				},
				onSuccess:function(transport){
					//alert(transport.responseText);
					json = transport.responseJSON;
					
				if (json)
				{
			
					if (json.status=='success')
					{

						//alert(json_decode(json.content));
						var controls = new Array();
						controls[0] = false; //min
						controls[1] = false; //max
						controls[2] = true;  //closable
						controls[3] = false; //drag
						controls[4] = true;  //resize
						controls[5] = false; //logout button
						controls[6] = false; //manual button

						var dims = new Array();
						dims[0] = 100; //top
						dims[1] = 100; //left
						dims[2] = 500; //width
						dims[3] = 500; //height
						dims[4] = 'home';
						
						if (json.title)	refr[0][2]= json_decode(json.title);
						if (json.minimizable) controls[0] = eval(json_decode(json.minimizable));
						if (json.maximizable) controls[1] = eval(json_decode(json.maximizable));
						if (json.closable)	controls[2] = eval(json_decode(json.closable));
						//controls[2] = false;
						if (json.draggable)	controls[3] = eval(json_decode(json.draggable));
						if (json.resizable)	controls[4] = eval(json_decode(json.resizable));
						if (json.logout) controls[5] = eval(json_decode(json.logout));
						if (json.manual) controls[6] = eval(json_decode(json.manual));

						if (json.top) dims[0] = json_decode(json.top);
						if (json.left) dims[1] = json_decode(json.left);
						if (json.width) dims[2] = json_decode(json.width);
						if (json.height) dims[3] = json_decode(json.height);
						if (json.helptag) dims[4] = json_decode(json.helptag);
						

						window[pid] = new Window(pid, {
														showEffect:Element.show,
														hideEffect:Element.hide,	
														className: className,
														title: refr[0][2],
														helptag:dims[4],
														top:dims[0],
														left:dims[1],
														width:dims[2],
														height:dims[3],
														minimizable:controls[0],
														maximizable:controls[1],
														closable:controls[2],
														draggable:controls[3],
														resizable:controls[4],
														logout:controls[5],
														manual:controls[6],
														zIndex:999,
														opacity:1,
														onShow:function(){
																			shroud_off();
																			if (json.execute)
																			{
																				if (json.execute!='')
																				{
																					eval(json_decode(json.execute));
																				}
																			}
																		}
														}
												  );
					    window[pid].showCenter(true);
						window[pid].setDestroyOnClose();						
						window[pid].setHTMLContent(json_decode(json.content));
						if (json.maximizeme)
						{
							window[pid].maximize();
						}
						if (json.statusBar)
						{
							window[pid].setStatusBar(json.statusBar);
						}
						try{
							helpfilo.push(dims[4]);
							loadhelp(dims[4]);
						}
						catch(e){};
						
						
						if (json.offsetme)
						{
							//tmp =window[pid].getLocation();
							//alert(tmp.top);
							//toptmp = parseInt(tmp.top)+parseInt(json.offsetme);
							//`alert(window[pid].element.getStyle('left'));
							//lefttmp = parseInt(tmp.left)+parseInt(json.offsetme);
							//window[pid].centered=false;
							//window[pid].setLocation(toptmp, parseInt(tmp.left)); 
							//window[pid].centered=false;
							//window[pid].centerTop=toptmp;
							//window[pid].centerLeft=lefttmp;
						}
						

					}
					else
						{
							window[pid].destroy();
							alert('You are not logged in');
							window.location.href='/index.php';
						}
				}
				else
					{
						window[pid].destroy();
						shroud_off();
						alert(transport.responseText);
					}
				//shroud_off();
				}
				
			});	

}


function core_confirm(rpc,pars,ptitle,feed)
{

	var pid = 'system_confirm';
	if ($(pid))
	{
		return false;
	}
		try{
			window[pid].destroy();
		}
		catch(err)
		{

		}
		try{
			$(pid).destroy();
		}
		catch(err)
		{
		}
	
	//systemwin.setAjaxContent(url,options,showCentered,showModal);
	var pars = 'rpc='+rpc+pars;
	var myAjax = new Ajax.Request(
			feed, 
			{
				method:'post', 
				postBody:pars, 
				onComplete:function(transport){
					json = transport.responseJSON;
				if (json)
				{
					
					if (json.status=='success')
					{
						if (json.title)	ptitle= json_decode(json.title);
						htag = "home";
						if (json.helptag)	htag= json_decode(json.helptag);

						
						
						Dialog.confirm
										(
											json_decode(json.content), 
											{
												windowParameters:
												{
													showEffect:Element.show,
													hideEffect:Element.hide,
													className: "mac_os_x", 
													title: ptitle, 
													minimizable:false,
													maximizable:false,
													draggable:false,
													closable:false,
													width:json.width, 
													height:json.height, 
													zIndex:150, 
													helptag:htag,
													opacity:1, 														
													resizable: true,
													onClose:function(){
														try{helpfilo.pop();
														tag = helpfilo[helpfilo.length-1];
														loadhelp(tag);}catch(e){}
														//win.hidebuttons();
													},
													onShow:function(){
																			//shroud_off();
															if (json.execute)
															{
																if (json.execute!='')
																{
																	eval(json_decode(json.execute));
																}
															}
															try{helpfilo.push(htag);loadhelp(htag);}catch(e){}
														}

												},
												id:pid,
												okLabel: json_decode(json.okLabel), 
												cancelLabel:json_decode(json.cancelLabel),
												
												ok:function(win){
														eval(json_decode(json.okfunc));
												}
												
											}
										);
						
					}
					else
						{
							//popupconfirm.destroy();	
							alert('You are not logged in');
							window.location.href=site_root+'index.php';
						}
				}
				else
					{
					//	popupconfirm.destroy();
						alert(transport.responseText);
					}
				}
				
			});	

}
function close_confirm()
{
	Windows.close('system_confirm');
}

function close_core_ok()
{
	Windows.close('system_confirmokonly');
}

function core_ok(rpc,pars,ptitle,feed)
{
	var pid = 'system_confirmokonly';
	if ($(pid))
	{
		return false;
	}
	try{
		//popupconfirm.destroy();
	}
	catch(err)
	{
	}

	//systemwin.setAjaxContent(url,options,showCentered,showModal);
	var pars = 'rpc='+rpc+pars;
	var myAjax = new Ajax.Request(
			feed, 
			{
				method:'post', 
				postBody:pars, 
				onComplete:function(transport){
					json = transport.responseJSON;
				if (json)
				{
					if (json.status=='success')
					{

						 if (json.title)	ptitle= json_decode(json.title);						
						 htag = "home";
						if (json.helptag)	htag= json_decode(json.helptag);
						DialogOK.confirm
										(
											json_decode(json.content), 
											{
												windowParameters:
												{
													showEffect:Element.show,
													hideEffect:Element.hide,
													className: "mac_os_x", 
													title: ptitle, 
													minimizable:false,
													maximizable:false,
													draggable:false,
													closable:false, 
													width:json.width, 
													height:json.height, 
													helptag:htag,
													zIndex:150, 
													opacity:1, 														
													resizable: true,
													onClose:function(){
													
														try{helpfilo.pop();
														tag = helpfilo[helpfilo.length-1];
														loadhelp(tag);}catch(e){}
														//win.hidebuttons();
													},
													onShow:function(){
																			//shroud_off();
															if (json.execute)
															{
																if (json.execute!='')
																{
																	eval(json_decode(json.execute));
																}
															}
															try{helpfilo.push(htag);loadhelp(htag);}catch(e){}
														}
												},
												id:pid,
												okLabel: json_decode(json.okLabel), 
												
												ok:function(win){
														eval(json_decode(json.okfunc));
												}
												
											}
										);
						
					}
					else
						{
							//popupconfirm.destroy();	
							alert('You are not logged in');
							window.location.href=site_root+'index.php';
						}
				}
				else
					{
					//	popupconfirm.destroy();
						alert(transport.responseText);
					}
				}
				
			});	

}


function rollclass(ref,newclass)
{
	$(ref).className = newclass;
}















/******************************************************************************
**
**   Functions controlling the core of the slider control
**
******************************************************************************/



function _orderfilter(order,direction)
{
//	_getResults('0','&orderon='+order+'&direction='+direction,mainrefresher[0][0],mainrefresher[0][5]);
	$('orderon').value = order;
	$('direction').value = direction;
	_dofilter();
}


function _dofilter()
{
	var allNodes = Form.serialize("filtering");
	//_getResults('0','&'+allNodes,rpc,mod);
	_getResults('0','&'+allNodes,mainrefresher[0][0],mainrefresher[0][5]);
}

function _clearfilter()
{
	//var allNodes = Form.serialize("filtering");
	//_getResults('0','&'+allNodes,rpc,mod);
	_getResults('0','',mainrefresher[0][0],mainrefresher[0][5]);
}

function _slider(currentpos,min,max,rpc,mod)
{
	var a = new Array(max);
	for (var i = 0; i < max; i++) {
		a[i] = i+1;
	}
	//if more than one page of results include the range
	if (max>1)
	{
		thisslide = new Control.Slider('handle1', 'track1', {
				onSlide: function(v) { _positionpi('Page '+v+' / '+max);},
				onChange: function(v){ 	Element.hide('pagecontrolinfo'); if ((v-1)!=currentpos){_getResults(v-1,'&'+Form.serialize("filtering"),rpc,mod);}},
				range: $R(min,max),
				values:a
				
			});

	}
	//otherwise dont include range or the slider crashes
	else
	{
		thisslide = new Control.Slider('handle1', 'track1', {
				onSlide: function(v) { _positionpi('Page '+v+' / '+max);},
				onChange: function(v){ 	Element.hide('pagecontrolinfo'); if ((v-1)!=currentpos){_getResults(v-1,'&'+Form.serialize("filtering"),rpc,mod);}},
				values:a
				
			});

	}
	thisslide.setValue(currentpos+1);
}

function _positionpi(newhtml)
{
//	alert(parseInt($('pagecontrol').style.top));
	var test = Position.cumulativeOffset($('pagecontrol'));
	//alert(test[0]+','+test[1]);
	$('pagecontrolinfo').style.left=test[0]+40;
	$('pagecontrolinfo').style.top=test[1]-50;
	Element.update('pagecontrolinfo',newhtml);
	Element.show('pagecontrolinfo');
}


function _refreshextra()
{
	if ($('overlay_modal')!=null)
	{

		var thetags = $('results_container').getElementsByTagName('select');
		var questions = $A(thetags);
		questions.each(
			function(question)
			{
					//alert(question.getAttribute('id'));
					question.style.visibility = "hidden";

			}
				);
	}
}

function _refresh()
{
	var pars = mainrefresher[0][4]+mainrefresher[0][6];
	
	var extra = "_refreshextra();";
	core_load_rpc(mainrefresher[0][0],mainrefresher[0][5],pars,'results_container',0,2,extra);
}

/*function _refreshsafe()
{
	var pars = mainrefresher[0][4]+mainrefresher[0][6];
	core_load_rpc(mainrefresher[0][0],mainrefresher[0][5],pars,'results_container',0,2);
	if ()
	{
	}

}*/

//called on the load of the feedback management module
function _getResults(pageoffset,filterpars,rpc,mod)
{
		mainrefresher[0] = new Array();
		mainrefresher[0][1] = '';
		mainrefresher[0][0] = rpc;   /**** store rpc ****/
		mainrefresher[0][5] = mod;				/**** store mod ****/
		mainrefresher[0][4] = '&cpage='+pageoffset;				/**** store page offset ****/
		if (typeof(filterpars)!='undefined')
		{
			mainrefresher[0][6] = filterpars;						/**** store filter pars ****/
		}
		else
			mainrefresher[0][6] = ''							/**** store blank filter ****/

	_refresh();


}







function switchEditors() {
   $$('textarea').each(function(ta) {
       editor = FCKeditorAPI.GetInstance(ta.id);
       if (editor && editor.EditorDocument && editor.EditMode == FCK_EDITMODE_WYSIWYG) {
           editor.SwitchEditMode();
           editor.SwitchEditMode();
       }
   })
}


function gup( name ){  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  var regexS = "[\\?&]"+name+"=([^&#]*)";  var regex = new RegExp( regexS );  var results = regex.exec( window.location.href );  if( results == null )    return "";  else    return results[1];}