var laststate;
var laststate2;
/**************************
* AJAX Requests
**************************/
function fpAjax(){
	
	//Start Ajax
	this.init = function(){
	 	var ajax;
		try{ajax = new XMLHttpRequest();}//FireFox
		catch(e){
			try{ajax = new ActiveXObject("Msxml2.XMLHTTP");}//IE
			catch(e){
				try{ajax = new ActiveXObject("Microsoft.XMLHTTP");}//Others
			catch(e){return false;}
			}
		}
		
		return ajax;
	}
	
	//Get form values
	this.getVars = function(form){
		var myvars = '';
 	
		for($i = 0; $i < form.elements.length; $i++){
		 	type = form.elements[$i].type
			if(type == 'text' || type == 'select-one' || type == 'hidden' || type == 'password' || type == 'textarea'){
				myvars += '&'+form.elements[$i].name+'='+encodeURIComponent(form.elements[$i].value);
			}
			
			else if(type == 'select-multiple'){
			 	seliObj = form.elements[$i].options;
			 	var mySeli = '';
			 	
			 	var j = 0;
				for(seli = 0; seli < seliObj.length; seli++){
					if(seliObj[seli].selected){
					 	if(j != 0){mySeli += ',';}
					 	
						mySeli += encodeURIComponent(seliObj[seli].value);
						j++;
					}
				}
				
				if(mySeli){myvars += '&'+form.elements[$i].name+'='+mySeli;}
			}
			
			else if(type == 'checkbox' || type == 'radio'){
			 	if(form.elements[$i].checked){
					myvars += '&'+form.elements[$i].name+'='+encodeURIComponent(form.elements[$i].value);
				}
			}
		}
		
		return myvars;
	}
	
	//Load Page
	this.load = function(url, responseFunction){
	 	if(url.search(/\?/) == '-1'){nocache = '?';}else{nocache = '&';}
		nocache += 'nocache=' + new Date().getTime();
		
		var ajax = this.init();
		ajax.onreadystatechange = function(){if(ajax.readyState == 4){responseFunction(ajax.responseText);}}
		ajax.open("GET", url+nocache, true);
		ajax.send('var=1');
	}
	
	//Save Form
	this.saveForm = function(form, url, responseFunction){
		var ajax = this.init();
		
		if(url.search(/\?/) == '-1'){nocache = '?';}else{nocache = '&';}
		nocache += 'nocache=' + new Date().getTime();
		
		myvars = this.getVars(document.getElementById(form));
		
		ajax.onreadystatechange = function(){if(ajax.readyState == 4){responseFunction(ajax.responseText);}}
		ajax.open("POST", url+nocache, true);
		ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajax.setRequestHeader("Content-length", myvars.length);
		ajax.setRequestHeader("Connection", "close");
		ajax.send(myvars);
	}
	
}
/**************************
* Open/Close Boxes
**************************/
function showBox(box, inline){
 	if(inline){doshow = 'inline';}else{doshow = 'block';}
 	
	if(document.getElementById(box)){
		document.getElementById(box).style.display = doshow;
	}
}

function hideBox(box){
	if(document.getElementById(box)){
		document.getElementById(box).style.display = 'none';
	}
}

function shideBox(box, inline){
 	if(inline){doshow = 'inline';}else{doshow = 'block';}
 	
	if(box2 = document.getElementById(box)){
	 	if(box2.style.display == 'block' || box2.style.display == '' || box2.style.display == 'inline'){hideBox(box);}
	 	else{showBox(box, inline);}
	}
}

function showBoxV(box){
	if(document.getElementById(box)){
		document.getElementById(box).style.visibility = 'visible';
	}
}

function hideBoxV(box){
	if(document.getElementById(box)){
		document.getElementById(box).style.visibility = 'hidden';
	}
}

function shideBoxV(box){
	if(box2 = document.getElementById(box)){
		if(box2.style.visibility == 'visible'){hideBoxV(box);}
		else{showBoxV(box);}
	}
}

/**************************
* Value Management
**************************/
function txtDiv(div, txt){document.getElementById(div).innerHTML = txt;}
function txtDivValue(div){return document.getElementById(div).innerHTML;}

function txtBox(box, txt){document.getElementById(box).value = txt;}
function txtBoxValue(box){return document.getElementById(box).value;}

/**************************
* Miscellaneous
**************************/
function submitForm(e){
	var keynum;
	if(window.event){keynum = e.keyCode;}//IE
	else if(e.which){keynum = e.which;}//Firefox
	if(keynum == 13){return true;}
}

//Enable-Disable Setting
function fp_settingSwitch(name, txtbox){
 	if(txtbox){
		namecheck = document.getElementById(name+'_check');
		if(namecheck.value == '1'){newcheck = 'disabled';}else{newcheck = 'enabled';}
	}else{
		namecheck = document.getElementById(name+'_check');
		if(namecheck.checked){newcheck = 'disabled';}else{newcheck = 'enabled';}
	}
	
	//Disable
	if(newcheck == 'disabled'){
		if(txtbox){namecheck.value='0';}else{document.getElementById(name+'_check').checked = false;}
		document.getElementById(name+'_class').className = 'sett_disabled';
		document.getElementById(name+'_img').src = '/images/icons/disabled.png';
	}else{
		if(txtbox){namecheck.value='1';}else{document.getElementById(name+'_check').checked = true;}
		document.getElementById(name+'_class').className = 'sett_enabled';
		document.getElementById(name+'_img').src = '/images/icons/enabled.png';
	}
}

//Loading
var adminLoading = '<div align="center"><h3>Loading, Please Wait...</h3><br /><br /><img src="/themes/wgsm/images/loading.gif" alt="" /></div>';
function pageLoading(){
	txtDiv('centerBox', adminLoading);
}

var progressMenu = '<img src="/themes/wgsm/images/progress_menu.gif" alt="" style="vertical-align: middle;" />&nbsp;';

/**************************
* Select Page
**************************/
var currentPage;
function selectPage(page, extra){
 	pageLoading();
 	
 	ajaxDone = function(response){
 	 	if(currentPage){document.getElementById('pg_'+currentPage).className = 'cat';}
 	 	document.getElementById('pg_'+page).className = 'cat selected';
 	 	currentPage = page;
		txtDiv('centerBox', response);
	}
	
	if(extra){extra2 = extra;}else{extra2 = '';}
	
	ajaxPage = new fpAjax();
	ajaxPage.load('?fpmod='+page+extra2, ajaxDone);
}

function selectPageGet(defaultpage){
 	getmod = window.location.hash;
 	getmod2 = getmod.replace(/#/, '');
 	
 	if(!getmod2 && defaultpage){getmod2 = defaultpage;}
 	
 	if(getmod2){selectPage(getmod2);}
}

var mouseX;
var mouseY;

function mousePosXY(e){
 	if(!e) var e = window.event;
 	
 	if(window.pageYOffset){//FF
		scrTop = window.pageYOffset;
	}
	else{//IE
		scrTop = document.documentElement.scrollTop;
	}
	
 	mouseX = e.clientX;
 	mouseY = e.clientY + scrTop;
}

document.onmousemove = mousePosXY;