function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}

function GetContentSync(url, elementID, scroll, sync, anim){
	if(anim) setWait(elementID, 'laden...', scroll, true, 'center');
	url = makeURL(url);

    createXMLHttpRequest();

    if(sync) {
        xmlHttp.onreadystatechange = function(){
    		if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // Complete + OK response
	    		//alert(xmlHttp.responseText);
		    	document.getElementById(elementID).innerHTML = (xmlHttp.responseText);
			    //ShowOneMomentPlease(false);
    		}
	    }
    }
    xmlHttp.open("GET", url, sync);    
    xmlHttp.send(null);
    
    if(!sync) {
        //no callback necessary as we do an asynchronous call
    	if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // Complete + OK response
	    	document.getElementById(elementID).innerHTML = (xmlHttp.responseText);
	    }
    }
}

function GetContent(url, elementID, scroll){
	setWait(elementID, 'laden...', scroll, true, 'center');
	url = makeURL(url);

    createXMLHttpRequest();
    xmlHttp.onreadystatechange = function(){

		if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // Complete + OK response
			//alert(xmlHttp.responseText);
			document.getElementById(elementID).innerHTML = (xmlHttp.responseText);
			//ShowOneMomentPlease(false);
		}
	}
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

function DeleteContent(url, elementID, scroll, content){
	url = makeURL(url);

    createXMLHttpRequest();
    xmlHttp.onreadystatechange = function(){

		if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // Complete + OK response
		    $('#' + elementID).slideToggle(250);
		}
	}
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

function PostForm(url, elementID, form, scroll) {
	var query = getFormValues(form);
	PostContent(url, elementID, query, scroll);
}

function PostContent(url, elementID, query, scroll) {
	PostContentNew(url, elementID, query, scroll, true, 'center');
}

function PostContentNew(url, elementID, query, scroll, image, align) {
	setWait(elementID, 'opslaan...', scroll, image, align);
	url = makeURL(url);

    createXMLHttpRequest();
    xmlHttp.onreadystatechange = function(){
		if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // Complete + OK response
			document.getElementById(elementID).innerHTML = xmlHttp.responseText;
		}
	}
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
    xmlHttp.send(query);
}

//add output param
function makeURL(url) {
	var myRand=parseInt(Math.random()*99999999);  // cache buster to solve caching issue
	if(url.indexOf('?') > 0)
		return url + '&output=2&solvecache=' + myRand;
	else 
		return url + '?output=2&solvecache=' + myRand;
}

function setWait(elementID, message, scroll, image, align) {
	var str = '<div align=\'' + align + '\'>';
	if(image) str += '<img src=\'\\images\\loading.gif\' width=\'32\' height=\'32\' align=\'center\' />'
	str += message + '</div>';
	if(scroll) window.scrollTo(0, 0); 
	document.getElementById(elementID).innerHTML = str;
}

//function setWait(elementID, message, scroll) {
//	document.getElementById(elementID).innerHTML = '<div align=\'center\'><img src=\'\\images\\loading.gif\' width=\'32\' height=\'32\' align=\'center\' />' + message + '</div>';
//	if(scroll) window.scrollTo(0, 0); 
//}

function getFormValues(fobj,valFunc) { 
   var str = ""; 
   var valueArr = null; 
   var val = ""; 
   var cmd = ""; 

   for(var i=0; i < fobj.elements.length; i++) { 
       switch(fobj.elements[i].type) { 
           case "text":
           case "hidden":
/*                if(valFunc) { 
                    //use single quotes for argument so that the value of 
                    //fobj.elements[i].value is treated as a string not a literal 
                    cmd = valFunc + "(" + 'fobj.elements[i].value' + ")"; 
                    val = eval(cmd) 
                } 
*/
                str += fobj.elements[i].name + 
                 "=" + escape(fobj.elements[i].value) + "&"; 
                 break; 

           case "select-one": 
                str += fobj.elements[i].name + 
                "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&"; 
                break; 
       } 
   } 
   str = str.substr(0,(str.length - 1)); 

   return str; 
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
