
var http;
var ajaxBusy = false;
var ajaxSupported = true;

// Prime our AJAX Engine
http = createRequestObject();

function doPost(url, params, func) {
	if (ajaxBusy) {
		// alert ("An AJAX request is already in progress.  Please wait a moment.");
		setTimeout('doPost("'+url+'","'+params+'",'+func+')', 1000);
	} else {
	
		http = createRequestObject();
		if (http) {
			ajaxBusy = true;
			http.onreadystatechange = func;
			http.open('POST', url, true);
			http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			http.setRequestHeader("Content-length", params.length);
			http.setRequestHeader("Connection", "close");
			http.send(params);
		}

	}
}

function createRequestObject() {
    var xmlHttp=null;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    } catch (e) {
        // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e){
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    if (xmlHttp==null){
		ajaxSupported = false;
		if (getCookie('mwg_noajax') == '') {
			alert ("Your browser does not support AJAX.  Some features may not operate.");
		}
		setCookie('mwg_noajax', 1, 30);
        return false;
    }
    return xmlHttp;
}

function setCookie(c_name,value,expiredays) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name) {
    if (document.cookie.length>0) {
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1) {
            c_start=c_start + c_name.length + 1;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1) c_end=document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
        } 
    }
    return "";
}

function urlencode(str) {
	str = escape(str);
	str = str.replace('+', '%2B');
	str = str.replace('%20', '+');
	str = str.replace('*', '%2A');
	str = str.replace('/', '%2F');
	str = str.replace('@', '%40');
	return str;
}

function bounce(url) {
    window.location = url;
}

function returnBadForm (text, el) {
	alert (text);
	el.focus();
	return false;
}

function fixE(e) {
	if (typeof e == 'undefined') e = window.event;
	if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
	if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
	return e;
}


