//////////////////////
//  LOAD CONTENTS
////////////////////////
var lastPageLoaded;
var lastPageLoadedWhere;
var lastDoOnLoad;
function loadPage(url,where,doOnLoad,doBeforeLoad){
	console.log("LOADING MAINCONTENT: "+url);
	lastPageLoaded = url;
	lastPageLoadedWhere = where;
	lastDoOnLoad = doOnLoad;
	where = where!=null?where:'maincontents';
  	var container = dojo.byId(where);
	container.innerHTML = getLoadingHTML();
	if(doBeforeLoad!=null) doBeforeLoad();
	dojo.xhrGet({
		url: url,
		load: function(responseObject, ioArgs){
				if(responseObject==null){ console.log("ERR1"); this.error(); return; }
				container.innerHTML = responseObject;
				fixtwocolumns();
				dojo.parser.parse(container);
				Custom.init(where);
				if(doOnLoad!=null) doOnLoad();
				return responseObject;
			},
		error: function(response, ioArgs){
			console.log("ERR2",response, ioArgs);
			container.innerHTML = getLoadingErrorHTML();
			return response;
		},
		handleAs: "text"
	});
	onPageLoad();
}
function onPageLoad(){
	//TRIGGER TO CONNECT OTHER MODULES
	//ONPAGELOAD EVENTS
	//SUCH AS CLEARTIMEOUTS
}
function fixtwocolumns(){
	/*var listleft = dojo.byId("listleft");
	if(listleft!=null) listleft.style.height="";
	var listright = dojo.byId("listright");
	if(listleft!=null && listright!=null){
		var he1 = getElementHeight("listleft");
		var he2 = getElementHeight("listright");
		var nhe = Math.max(he1,he2);
		listleft.style.height=nhe+"px";
		listright.style.height=nhe+"px";
	}*/
}

function reloadPage(){
	loadPage(lastPageLoaded,lastPageLoadedWhere,lastDoOnLoad);
}






//////////////////////
//  EDIT CONTENTS
////////////////////////
var lastediturl = "";
function editRecord(url,id,onLoadAction){
	url = url+(id!=null?"?id="+id:"");
	lastediturl = url;
	console.log("LOADING EDIT PAGE: "+url);
	showBlackPanel();
  	var container = dojo.byId('overcontents');
	container.style.display='';
	container.innerHTML = getLoadingHTML();
	fixOverContents();
	dojo.xhrGet({
		url: url,
		load: function(responseObject, ioArgs){
				if(responseObject==null){ this.error(); return; }
				container.innerHTML = responseObject;
				if(onLoadAction!=null){
					onLoadAction();
				}
				fixBlackPanel();
				fixOverContents();
				Custom.init(container);
				return responseObject;
			},
		error: function(response, ioArgs){
			console.log("ERROR LOADING EDITOR",response, ioArgs);
			container.innerHTML = getLoadingErrorHTML(true);
			//editRecord(lastediturl);
			return response;
		},
		handleAs: "text"
	});
}

var lastsaveurl = "";
function saveRecord(url){
	console.log("LOADING SAVE PAGE: "+url);
	lastsaveurl = url;
	//if(this.homedir.value.indexOf('/ftp/')==-1){return window.confirm('¿Seguro que desea crear una carpeta fuera de /ftp/?\nEs posible que no haya permisos para poder crearla');
	var msgbox = dojo.byId("editmsg");
	msgbox.style.display='none';
	var form = dojo.byId('editform');
	var fobjs = dojo.query("input",form).concat(dojo.query("select",form));
	dojo.xhrPost({
		url: url,
		form:form,
		load: function(responseObject, ioArgs){
				if(responseObject==null){ this.error(); return; }
				dojo.byId('savingimg').style.display = 'none';
				msgbox.style.display='block';
				if(responseObject.success){
					form.style.display='none';
					var tabs = dojo.byId("edittabs");
					if(tabs!=null) tabs.style.display='none';
					msgbox.className="success";
					if(responseObject.onSuccess!=null){
						msgbox.innerHTML = responseObject.msg+getSuccessButton("onCustomOk");
						onCustomOk = responseObject.onSuccess;
					}else
						msgbox.innerHTML = responseObject.msg+getSuccessButton("onSaveOk");
				}else{
					msgbox.innerHTML = responseObject.error;
					msgbox.className="error";
					for(i=0;i<fobjs.length;i++){
						fobjs[i].disabled=false;
					}
				}
				if(responseObject.formatForm!=null){
					responseObject.formatForm();
				}
				fixBlackPanel();
				fixOverContents();
				return responseObject;
			},
		error: function(response, ioArgs){
			console.log("ERROR SAVING",response, ioArgs);
			//saveRecord(lastsaveurl);
			msgbox.style.display='block';
			msgbox.innerHTML = getLoadingErrorHTML();
			msgbox.className="error";
			for(i=0;i<fobjs.length;i++){
				fobjs[i].disabled=false;
			}
			return response;
		},
		handleAs: "json"
	});
	for(i=0;i<fobjs.length;i++){
		fobjs[i].disabled=true;
	}
	dojo.byId('savingimg').style.display = '';
}
function onSaveOk(){
	closeOverContents();
	reloadPage();
}

function onCustomOk(){}

function getSuccessButton(onClickFunc){
	return "<br /><input type=\"button\" name=\"button\" id=\"onsuccessbutton\" value=\"Ok\" onclick=\""+onClickFunc+"();\" />";
}
function setErrorClass(who){
	var it = dojo.byId(who);
	if(it!=null){
		it.className = "formerror";
		/*it.onchange=function(){
			this.className="";
		}*/
	}
}






function getLoadingHTML(){
//	var str = "<div id=\"loadingcontents\">CARGANDO<br /><img src=\"_images/loading.gif\" /></div>";
	var str = "<div id=\"loadingcontents\">Cargando</div>";
	return str;
}
function getLoadingHTMLSmall(){
	var str = "<div id=\"loadingcontents\"></div>";
	return str;
}
function getLoadingErrorHTML(forover){
	var str = "<div id=\"loadingcontents\">ERROR: P&Aacute;GINA NO ENCONTRADA<br />";
	if(forover) str+= "<br /><input type=\"button\" onclick=\"closeOverContents();\" value=\"OK\" />";
	str += "</div>";
	return str;
}


var unloadChecks = new Array();
function onUnloadCheck(){
	var ret = "";
	for(var i=0;i<unloadChecks.length;i++){
		var retval = unloadChecks[i].check();
		if(retval !== false){
			ret += retval;
		}
	}
	if(ret!=""){
		return ret;
	}
}
window.onbeforeunload = onUnloadCheck;
