function cssReload()
{
	/*if(navigator.appName != 'Microsoft Internet Explorer')*/
	if(navigator.appName == 'Netscape' && navigator.userAgent.indexOf("KHTML")<0)
	{
		var tmp = document.getElementById('theme').href;
		document.getElementById('theme').type = 'text/html';
		document.getElementById('theme').href = null;
		document.getElementById('theme').href = tmp;
		document.getElementById('theme').type = 'text/css';
	}
}

function formToQuery(form)
{
	var query = '';
	var element;
	var skip;
	
	for(n=0;n<form.elements.length;n++)
	{
		skip = false;
		element = form.elements[n];
		if((element.type == 'checkbox' || element.type == 'radio') && !element.checked) skip = true;
		/*if(element.name) if(element.name != 'current_state') if(!skip && element.name.length) query += element.name + '=' + encodeURIComponent(element.value) + '&';*/
		if(element.name) if(element.name != 'current_state') if(!skip && element.name.length) 
		{
			if(element.type != 'select-multiple') query += element.name + '=' + escape(element.value).replace(/\+/g,'%2b') + '&';
			else for(i=0;i<element.length;i++) if(element[i].selected) query += element.name + '=' + escape(element[i].value).replace(/\+/g,'%2b') + '&';
		}
	}
	
	return query.substr(0,query.length-1);
}
/*
function formToQuery(form)
{
	var query = '';
	var element;
	var skip;
	
	for(n=0;n<form.elements.length;n++)
	{
		skip = false;
		element = form.elements[n];
		if((element.type == 'checkbox' || element.type == 'radio') && !element.checked) skip = true;
		//if(element.name) if(element.name != 'current_state') if(!skip && element.name.length) query += element.name + '=' + encodeURIComponent(element.value) + '&';
		if(element.name) if(element.name != 'current_state') if(!skip && element.name.length) query += element.name + '=' + escape(element.value) + '&';
	}
	
	return query.substr(0,query.length-1);
}
*/

function set(name,val) 
{
	var tmp = document.createElement('input');
	tmp.type = 'hidden';
	tmp.name = name;
	tmp.value = val; 
	return tmp;
}

function currentState(form)
{
	if(form.current_state.value == '') form.current_state.value = formToQuery(form);
	else if(form.current_state.value != formToQuery(form)) form.update.disabled = false; 
	else form.update.disabled = true;
}
		
function secLoad(src,sub,section,opt)
{
	var xmlhttp;
	
	if(section.indexOf('/')!=-1)
	{
		var tmp = section;
		section = tmp.substr(0,tmp.indexOf('/'));
		document.getElementById(tmp.substr(tmp.indexOf('/')+1)).id = section;
	}
	
	var url = 'index.php?src='+src+'&sub='+sub+'&sec='+section+'&'+opt;
	
	function stateChange()
	{
		if(xmlhttp.readyState==4 && xmlhttp.status==200) 
		{
			var response = xmlhttp.responseText;
			response = response.substring(response.indexOf('>')+1,response.lastIndexOf('<'));
			document.getElementById(section).innerHTML = response;
			cssReload();
		}
		else document.getElementById(section).innerHTML = "<p id = 'loading'><span>[Loading]</span></p>";
	}

	if(window.XMLHttpRequest)
	{
		xmlhttp = new XMLHttpRequest();
		xmlhttp.onreadystatechange = stateChange;
		xmlhttp.open('GET',url,true);
		xmlhttp.send(null);
	}
	else if(window.ActiveXObject)
	{
		xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
		if (xmlhttp)
		{
			xmlhttp.onreadystatechange = stateChange;
			xmlhttp.open('GET',url,true);
			xmlhttp.send();
		}
	}
}

function cmdExec(cmd,form,func,text,val)
{	
	/* ----- Promp or Confirm ----- */
	if(val!=null && text!=null)
	{
		var pval = prompt(text,"");
		if(pval!=null && pval!='') val += '&'+val+'='+escape(pval);
		else return false;
	}
	else if(text!=null) if(!confirm(text)) return false;
	
	if(val==null) val = '';
	
	/* ----- Check for files ----- */
	if(form != null) for(n=0;n<form.elements.length;n++)
	{
		element = form.elements[n];
		if(element.type == 'file' && (element.value != null && element.value != ''))
		{
			function set(name,val) 
			{
				var tmp = document.createElement('input'); 
				tmp.type = 'hidden'; 
				tmp.name = name; 
				tmp.value = val; 
				return tmp;
			};
		
			var cmdArray = cmd.split('&');
			form.appendChild(set('cmd',cmdArray[0]));
			
			for(i=1;i<cmdArray.length;i++)
			{
				var tmp = cmdArray[i].split('=');
				form.appendChild(set(tmp[0],tmp[1]));
			}
				
			form.submit();
			return true;
		}
	}
	
	/* ----- HttpRequest ----- */
	var xmlhttp;
	var url = 'cmd.php';
	
	function stateChange()
	{
		if(xmlhttp.readyState==4)// && xmlhttp.status==200) 
		{
			if(xmlhttp.responseText!=null&&xmlhttp.responseText.length) alert(xmlhttp.responseText);
			else if(func!=null) eval(func);
			document.getElementById('wrapper').style.cursor = 'default';
		}
		else document.getElementById('wrapper').style.cursor = 'wait';
	}
	
	if(form != null) cmd = cmd+'&'+formToQuery(form);
	
	if(window.XMLHttpRequest)
	{
		xmlhttp = new XMLHttpRequest();
		xmlhttp.onreadystatechange = stateChange;
		xmlhttp.open('POST',url,true);
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlhttp.send('cmd='+cmd+val);
	}
	else if(window.ActiveXObject)
	{
		xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
		if(xmlhttp)
		{
			xmlhttp.onreadystatechange = stateChange;
			xmlhttp.open('POST',url,true);
			xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xmlhttp.send('cmd='+cmd+val);
		}
	}
}

function onStateChange(query,state,func)
{
	var xmlhttp;
	var url = 'query.php';
	
	function stateChange()
	{
		if(xmlhttp.readyState==4)// && xmlhttp.status==200) 
		{
			if(xmlhttp.responseText != state) 
			{
				eval(func);
				onStateChange(query,xmlhttp.responseText,func);
			}
			else 
			{
				setTimeout("onStateChange(\""+query+"\",\""+state+"\",\""+func+"\")", 5000);
			}
		}
	}
	
	if(window.XMLHttpRequest)
	{
		xmlhttp = new XMLHttpRequest();
		xmlhttp.onreadystatechange = stateChange;
		xmlhttp.open('POST',url,true);
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlhttp.send('query='+query);
	}
	else if(window.ActiveXObject)
	{
		xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
		if(xmlhttp)
		{
			xmlhttp.onreadystatechange = stateChange;
			xmlhttp.open('POST',url,true);
			xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xmlhttp.send('query='+query);
		}
	}
}