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("prototype/dist/prototype.js");

include("scriptaculous/scriptaculous.js?load=effects,dragdrop");

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');

							}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' + '>');

}