﻿var _msg_loading = "Loading, please wait";
var _loadingImg = "img/Loading.gif";
//var _loadingDiv = "<table border='0' cellpadding='0' cellspacing='0'><tr><td id='loading'><img src='"+_loadingImg+"' alt='"+_msg_loading+"' width='16' height='16' /></td><td class='loading'>&nbsp;"+_msg_loading+"...</td></tr></table>";
var _loadingDiv = '<div align="center" id="wait" style="color: #2A57CC;font-weight: bold;">Loading <img src="images/dots.gif" width="20" height="8"></div>';
var _loadingDiv3 = '<div align="center" id="wait"><img src="images/dots.gif"></div>';
var _loadingDiv4 = '<div align="center" id="wait"><strong style="color:2a57cc">Loading</strong> <img src="images/dots.gif" width="20" height="8"></div>';
var _loadingDiv5 = '<div align="left" id="wait"><strong style="color:2a57cc; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:13px">&nbsp;&nbsp;Saving</strong> <img src="images/dots.gif" width="20" height="8"></div>';
var _loadingDiv6 = '<div align="left" id="wait"><strong style="color:2a57cc; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:13px">&nbsp;&nbsp;Deleting</strong> <img src="images/dots.gif" width="20" height="8"></div>';
var _loadingDiv2 = '<div align="center" id="wait" style="display: none;"><br><br><br><br><br><br><br><br><img src="images/Loading.gif"><br><br><br></div>';

include("js/prototype.js");
//include("scriptaculous/scriptaculous.js?load=effects");
var j = 0;
function xmlHttp(url,layerName,method,moreParams,asynchron,loadingDiv){
	var postParameters = '';

	if (!loadingDiv && loadingDiv!=0) loadingDiv=1;

	var urlsplit =url.split('?');
	var urlExt = urlsplit[0].substring(urlsplit[0].length-3,urlsplit[0].length);//.php?
	if(moreParams){
		if(moreParams.form){
			formObj = eval('document.'+moreParams.form);
			postParameters = Form.serialize(formObj);
		}else if(moreParams.params){
			postParameters = moreParams.params;
		}else{
			postParameters = '';
		}
		if(moreParams.redirectLink){
			redirectLink = moreParams.redirectLink;
		}else{
			redirectLink = '/';
		}
		if(moreParams.loadingDiv >= 0){
			loadingDiv = moreParams.loadingDiv;
		}
	}
	if (!moreParams || !moreParams.form) {
		url = applyEncodeURI(url);
		url = url.replace(/%2F/g,'/');//doesn't affect functionality, just to show the paths
	}

	if(typeof(layerName) == "string"){
		var layerArray = layerName.split(",");
	}else{
		var	layerArray = [layerName];
	}

	var ajax = new Ajax.Request(
		 url,
		 {
			asynchronous: asynchron ? asynchron : true,
			method: method,
			parameters: postParameters,
			onLoading: function(req){
				if(req.readyState < 4 && loadingDiv){

					for(i=0; i<layerArray.length; i++){
						if (loadingDiv==1){
							if(document.all)
								$("waitu").style.left = (document.body.clientWidth - 770)/2;
							else{
								$("waitu").style.left = (window.innerWidth - 785)/2;	
							}
							$(layerArray[i]).innerHTML = '';
							Effect.Appear('waitu',{from:0.0,to:0.7});
						}else if (loadingDiv==2){
							$(layerArray[i]).innerHTML = _loadingDiv2;
							Effect.Appear("wait",{from:0.0,to:0.7});
						}else if (loadingDiv==3)
							$(layerArray[i]).innerHTML = _loadingDiv3 + $(layerArray[i]).innerHTML;
						else if (loadingDiv==4){
							$(layerArray[i]).innerHTML = _loadingDiv4 + $(layerArray[i]).innerHTML;
						}else if (loadingDiv==5){
							$(layerArray[i]).innerHTML = _loadingDiv5;
							Effect.Appear("wait",{from:0.0,to:1.0});
						}else if (loadingDiv==6){
							$(layerArray[i]).innerHTML = _loadingDiv6;
							Effect.Appear("wait",{from:0.0,to:1.0});
						}
					}
				}
			},
			onSuccess: function(req){
				if(req.responseText == 'redirect'){
					window.location = redirectLink;
				}else{
					if (layerName=='') {
						setTimeout(function() {req.responseText.evalScripts()}, 10);
					} else {
						
						for(i=0; i<layerArray.length; i++){
							if (loadingDiv==1){
								$(layerArray[i]).innerHTML = req.responseText.stripScripts();
								setTimeout(function() {req.responseText.evalScripts()}, 10);
								Effect.Fade('waitu');
								url = window.location
								url = url.toString()
								
								if (url.search(/.*#stats/)){
									//alert (url);
									window.location = url+'#stats'
								}else{
									window.location = url
								}
							}else{
								try{
									Effect.Fade("wait");
								}catch(e){}
								layer = layerArray[i];
								req1 = req;
//								urll = url;
								setTimeout('$(layer).innerHTML = req1.responseText.stripScripts()', 1000);
//								setTimeout('alert(j);alert (urll);', 1000);
//								setTimeout('$(layer).innerHTML = req1.responseText.stripScripts()', 10);
//								$(layer).innerHTML = req1.responseText.stripScripts();
								setTimeout(function() {req.responseText.evalScripts()}, 1010);
							}
						}
					}
				}
				j=0;
			}
		 }
	)

}

function applyEncodeURI(url) {
	//encodeURIComponent
	var idQuote = url.indexOf('?');
	var idAnd = url.indexOf('&');
	var startPos=-1;
	if (idQuote!=-1) {
		startPos = idQuote;
	} else if(idAnd!=-1) {
		startPos = idAnd;
	}
	if (startPos!=-1) {
		//alert(startPos);
		var script = url.substring(0,startPos+1);
		var params = url.substring(startPos+1);
		var pairsArr = params.split('&');
		//alert(pairsArr);

		var encParams='';
		for(var i=0;i<pairsArr.length;i++) {
			var pairArr = pairsArr[i].split('=');
			if (pairArr.length==2) {
				encParams += '&'+encodeURIComponent(applyDecodeURI(pairArr[0]))+'='+encodeURIComponent(applyDecodeURI(pairArr[1]));
			} else {
				encParams += encodeURIComponent(applyDecodeURI(((i>0)?'&':'1')+pairsArr[i]));/* 1 is a dummy, it will be trimmed*/
			}
		}
		encParams = encParams.substring(1);
		url = script+encParams;
	}
	return url;
}
function applyDecodeURI(element) {
	try{
		decoded = decodeURIComponent(element);
	}catch(e){
		decoded = unescape(element);
	}
	return decoded;
}

function include(scriptFilename) {
	document.write('<' + 'script');
    document.write(' language="javascript"');
    document.write(' type="text/javascript"');
    document.write(' src="' + scriptFilename + '">');
    document.write('</' + 'script' + '>');
}
