// save mce values into their form elements
function myMCESave() {
	for (var n in tinyMCE.instances) {
		var inst = tinyMCE.instances[n];
		htm = inst.getBody().innerHTML;
		if (inst.formElement) {
			inst.formElement.value = htm;
		}
		if (tinyMCE.isSafari && inst.formElement) {
			inst.formElement.innerText = htm;
		}
	}
}

var autoSaveTimerId=0;
function autoSaveLater( period ){
	autoSave(period);
}
function autoSave( period ){
	if( period!=undefined ){
		window.clearTimeout( autoSaveTimerId );
		autoSaveTimerId = window.setTimeout("autoSave()", period);
		return;
	}
	try{document.getElementById('spinner').style.visibility='visible';} catch(e){};
	try{ myMCESave(); } catch(e){};
	// find the form
	var pageForms = document.getElementsByTagName('form');
	for(var fIndex=0; fIndex < pageForms.length; fIndex++) {
		var f = pageForms[fIndex];
		if( !f.getAttribute("name").match(/SFORM_/)){
			// skip non eas server forms
			continue;
		}
	
		var fe = f.elements;
		var args = new Array();
		for( i=0; i < fe.length; i++){
			var element = fe[i];
			//alert(e.tagName+" [" + e.name + "] ["+e.id+"]: " + e.value);
			// cancel if the form subject is not yet created
			if( element.name=='selector' && element.value=='0' ){
				return;
			}
			if( /_operation$/.test(element.name) ){
				element.value='update';
			}
			// skip the tinymce selects
			if( /^mce_editor/.test(element.name) ){
				continue;
			}
			try{
			// if the element is tinymce, clean up as usual
			if( tinyMCE && tinyMCE.getInstanceById(element.id)){
				var newurl = element.value;
				newurl = clean_wysiwyg_html(newurl);
				newurl = newurl.replace(/%3C/gi,"<");
				newurl = newurl.replace(/%5B/gi,"[");
				newurl = newurl.replace(/%5D/gi,"]");
				newurl = newurl.replace(/%3E/gi,">");
				newurl = newurl.replace(/#\[(.+)\]#\>\?#\[(.+)\]#\>\?/gi,"");
				newurl = newurl.replace(/<[#]\[(.+)\]#&gr;/gi,"<#[$1]#>");
				newurl = newurl.replace(/http:\/\/<\//gi,"http://<");
				newurl = newurl.replace(/https:\/\/<\//gi,"https://<");
				element.value = newurl;
			}
			}catch(err){};
			//alert(element.name + '=' + element.value);
			if( element.name && (element.name!='cloc') && !(element.type=='checkbox' && !element.checked) && !(element.type=='radio' && !element.selected)){
				args.push( element.name + '=' + escape(element.value));
			}
		}
		saveExec( f.action, args, DoneSaving );
	}
}

function currentDomain(){
	return window.hostname;
}
function DoneSaving( xhr ){
	try{document.getElementById('spinner').style.visibility='hidden';}catch(err){};
	autoSaveTimerId = 0;
	//window.setTimeout("autoSave();", 15000);
	//alert('done');
}

function saveExec( url, args, doneMethod ){
	var xmlhttp;
	if(window.XMLHttpRequest){
		xmlhttp = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return;
	}
	xmlhttp.onreadystatechange = function(){
		if(xmlhttp.readyState == 4) {doneMethod( xmlhttp );}
	}
	try{data= args.join('&');} catch(err){}
	data = data + "&rtalk=29";
	xmlhttp.open ('POST', url, true);
	xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlhttp.send(data);
}