/**
 * @author martin
 * 
 * res_req muligheder:
 * 
 * "template" + "fil.tpl"
 * "txt" 
 * "json"
 * "txt" 
 * 
 * "none" (lidt teoretisk)
 * 
 * statiske actions: 
 * "exit" dør uden at svare tilbage 
 * "fetch_std_template" svarer en template uden php-data. (f.eks. til popups)  
 */
var a = {
	rpc : "ajax_pages/rpc.php", 
	action: "exit", 
	res_req: "none", 
	template_file: "",
	returnUrl: window.location.pathname, 
	loaderIcon: "ajax-loader-icon",
	
	set: function(inAction, inRes_req, inTpl_file) {
		a.action = inAction; 
		a.res_req = inRes_req;
		if (a.res_req == "template" && !inTpl_file){
			alert("Hvilken template?");
		//a.rpc = inRpc;
		} else if (inTpl_file){
			a.template_file = inTpl_file;
		} 
	},
	
	meta : function(){
		if (a.res_req=="template" && a.template_file==""){
			alert("Template ikke defineret"); 
		}
		var meta = "meta[action]="+a.action+"&meta[res_req]="+a.res_req;
		if (a.res_req == "template") {
			meta += "&meta[template_file]="+a.template_file; 
		}
		return meta;
	},
	req : function(callbackFunction, inputData) { 
		if (a.loaderIcon) {
			document.getElementById(a.loaderIcon).style.display='';
		}
		a.returnFunction = callbackFunction;
		if (inputData) {
			a.postdata = a.meta()+"&"+inputData
		} else {
			a.postdata = a.meta();
		}
		a.cObj = YAHOO.util.Connect.asyncRequest("POST", a.rpc, a.callback, a.postdata); // a.callback, a.postdata);
		//var cObj = YAHOO.util.Connect.asyncRequest("POST", a.rpc, callbackFunction, a.postdata); // a.callback, a.postdata);

	}, 
	// DOES NOT WORK FOR RPC because metadata is missing!
	// run without a.set()
	reqGet : function(callbackFunction, urlStr, inputDataStr) { 
		if (a.loaderIcon) {
			document.getElementById(a.loaderIcon).style.display='';
		}
		a.returnFunction = callbackFunction;
		a.tempRpc = a.rpc;
		a.rpc = urlStr;
		a.rpc = a.rpc+"?sid="+Math.random();
		if (inputDataStr) {
			a.rpc += inputDataStr;
//			a.cObj = YAHOO.util.Connect.asyncRequest("GET", a.rpc, a.callback, a.postdata); // a.callback, a.postdata);
			//a.postdata = a.meta()+"&"+inputData
		} else {
			//a.postdata = a.meta();
//			a.cObj = YAHOO.util.Connect.asyncRequest("GET", a.rpc, a.callback); 
		}
		a.cObj = YAHOO.util.Connect.asyncRequest("GET", a.rpc, a.callback); 
		a.rpc = a.tempRpc;
		//a.cObj = YAHOO.util.Connect.asyncRequest("POST", a.rpc, a.callback, a.postdata); // a.callback, a.postdata);
		//var cObj = YAHOO.util.Connect.asyncRequest("POST", a.rpc, callbackFunction, a.postdata); // a.callback, a.postdata);

	}, 
	callback : {
		//a.returnfunction(cObj);
		success: function(o) {
			if (a.loaderIcon) {
				document.getElementById(a.loaderIcon).style.display='none';
			}
			a.returnFunction(o);
			// alert("svar: "+o.responseText);
		}, 
		failure: function(o){
			document.getElementById(a.loaderIcon).style.display='none';
			alert("Der skete en ajax-fejl");
		},
		upload: function(o){
			//alert("file uploadet: "+ o.responseText);
			if (a.loaderIcon) {
				document.getElementById(a.loaderIcon).style.display='none';
			}
			a.returnFunction(o);
			// alert("svar: "+o.responseText);
		}
	}, 
	reload:function(o){

//		success: function(o){
			//alert("siden reloades fra ajax-wrap");
			tempUrl = a.returnUrl;
			a.returnUrl = window.location.pathname;
			
			window.location.replace(tempUrl); // reloader siden
			
			
		//	window.location.replace(window.location.pathname); // reloader siden
//		},
//		failure: function(o){
//			a.hideLoaderIcon();
//			alert("could not load to page");
//		}
	},
	noCallback: function(o){
		// do nothing
	},
	form : function(formId, isFile){
		//alert(isFile);
		if (isFile){
			//alert("sending form true");
	 		YAHOO.util.Connect.setForm(document.getElementById(formId), true);  
		} else {
			//alert("sending form false");
	 		YAHOO.util.Connect.setForm(document.getElementById(formId));  
		}
		//alert("done");
	}, 
	jdata: function(inputJson){
		return eval('(' + inputJson + ')'); 
	}, 
	hideLoaderIcon: function(){
		if (a.loaderIcon) {
			document.getElementById(a.loaderIcon).style.display='none';
		}
	}
}
var debug = {
	prtobj: function(obj) {
		var str = "Object: "+obj+"\n\n"; 
		for (property in obj) {
			str += property + "\n";
		}
		//var page = document.innerHTML = str;
		//window.open(page,"prtObj","location=yes")
		//window.(str);
	}, 
	alertobj: function(obj) {
		var str = "Object: "+obj+"\n\n"; 
		for (property in obj) {
			str += property +" : "+obj[property]+"\n";
		}
		alert(str);
	}
};