// ----------
// Initialise
// ----------

var errstate='';

if (runningInGr8stuff() || location.hostname=='pandanote' || location.hostname=='localhost') {
	var hst=location.hostname;
	if (hst=='') hst='pandanote';
	var serverurl='http://'+hst+':90/webclients/villasa.co.za/';
} else {
	var serverurl='http://www.villasa.co.za/';
}

function runningInGr8stuff() { if (parent.location.href==location.href) { return false; } else { return true; } }

// --------------------
// ASYNC AJAX Functions
// --------------------
/*
 * USAGE:
 *
 * in code: ajax_get(url,nextstep);
 *
 * function nextstep() {
 *    if (!(r=ajax())) { if (errstate!='') { alert(errstate); } return; }
 *    -- code goes here -- r contains response
 * }
*/

document.write('<DIV id="ajaxmsg" style="display:none;position:absolute;left: 45%;top: 40%;vertical-align:middle;background-color:transparent;z-index:40;"><img src=pics/aniloading.gif></DIV>');
var axmlhttp = xmlhttp_create();

function ajax_get(serverUrl,respFunc) {
	var rand = Math.floor(Math.random()*1000001);
	try {
		errstate='';
		getEle('ajaxmsg').style.display='inline';
		if (serverUrl.indexOf('?')>=0) { var url=serverUrl+'&r='+rand; } else { var url=serverUrl+'?r='+rand; }
		axmlhttp.open("GET", url, true);
		axmlhttp.onreadystatechange = respFunc;
		axmlhttp.send(null);
	} catch (genException) { errstate=''; }
//	} catch (genException) { alert('Error: Unable to connect.'); }

}

function ajax_post(serverUrl,postdata,respFunc) {
	try {
		getEle('ajaxmsg').style.display='inline';
		var pdata=postdata; errstate='';
		axmlhttp.open("POST", serverUrl, false);
		axmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		axmlhttp.setRequestHeader('Content-Length',pdata.length);
		axmlhttp.onreadystatechange = respFunc;
		axmlhttp.send(pdata);
	} catch (genException) { errstate=''; }
//	} catch (genException) { alert('Error: Unable to connect.'); }
}

function ajax() {

	try {
		if (axmlhttp.readyState == 4) // Completed
		{
			
			getEle('ajaxmsg').style.display='none';

			if (axmlhttp.status == 200) // “OK”
			{ errstate=''; return fixreply(axmlhttp.responseText); }

			else if (axmlhttp.status == 403) // “Forbidden”
			{ errstate="Error (axmlhttp): Access denied.!"; }

			else if (axmlhttp.status == 404) // “URL Not Found”
			{ errstate="Error (axmlhttp): URL not found. Please check the URL!"; }

			else // Miscellaneous
			{ errstate="Error (axmlhttp): status code " + axmlhttp.status; }
		}
		return false;
	}
	catch (genException) { errstate="Error (axmlhttp): Unknown"; }
}

// Create the xmlHttpRequest object and return it.

function xmlhttp_create() {

	var xmlHttpRequest = false;
	//Internet Explorer
	try { xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); }
	catch (xml2Exception) {
		try { xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }
		catch (xmlException) { xmlHttpRequest = false; }

	}

	//Netscape, Mozila, Firefox, Safari, Opera
	if (!xmlHttpRequest && typeof XMLHTTPRequest == 'undefined') {
		try { xmlHttpRequest = new XMLHttpRequest(); }
		catch (genException) { XMLHttpRequest = false; }
	}
	return xmlHttpRequest;
}

function getFormParams(obj) {
	var getstr = "?";
	for (i=0; i<obj.elements.length; i++) {
		if (obj.elements[i].tagName == "INPUT") {
			if (obj.elements[i].type == "text") {
				getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
			}
			if (obj.elements[i].type == "checkbox") {
				if (obj.elements[i].checked) {
					getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
				} else {
					getstr += obj.elements[i].name + "=&";
				}
			}
			if (obj.elements[i].type == "radio") {
				if (obj.elements[i].checked) {
					getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
				}
			}
		}   
		if (obj.elements[i].tagName == "SELECT") {
			var sel = obj.elements[i];
			getstr += sel.name + "=" + escape(sel.options[sel.selectedIndex].value) + "&";
		}
		if (obj.elements[i].tagName == "TEXTAREA") {
			getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
		}
         
	}
	if (getstr=='?') { getstr=''; } else { getstr=getstr.substr(0,getstr.length-1); }
	return getstr;
}

function x_getFormParams(obj) {
	var getstr = "?";
	for (i=0; i<obj.childNodes.length; i++) {
		if (obj.childNodes[i].tagName == "INPUT") {
			if (obj.childNodes[i].type == "text") {
				getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
			}
			if (obj.childNodes[i].type == "checkbox") {
				if (obj.childNodes[i].checked) {
					getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
				} else {
					getstr += obj.childNodes[i].name + "=&";
				}
			}
			if (obj.childNodes[i].type == "radio") {
				if (obj.childNodes[i].checked) {
					getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
				}
			}
		}   
		if (obj.childNodes[i].tagName == "SELECT") {
			var sel = obj.childNodes[i];
			getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
		}
		if (obj.childNodes[i].tagName == "TEXTAREA") {
			var sel = obj.childNodes[i];
			getstr += sel.name + "=" + obj.childNodes[i].value + "&";
		}
         
	}
	if (getstr=='?') { getstr=''; } else { getstr=getstr.substr(0,getstr.length-1); }
	return getstr;
}

function fixreply(r) {
	var s=r.replace(/\r/g,'').replace(/\n/g,'');
	s=Trim(s);
	s=s.replace(/\{10\}/g,'\n').replace(/\{13\}/g,'\r');
	return s;
}
function Trim(v) {
	if (v=='') return v;
	var s=v;
	while (s.substr(0,1)==' ') { s=s.substr(1); }
	while (s.substr(s.length-1,1)==' ') { s=s.substr(0,s.length-1); }
	return s;
}
