var xmlHttp;
var pageName;
var lang;
var debugLevel=0;

function GetXmlHttpObject() { 
	var objXMLHttp=null
	if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}

function loadPage(url) {
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return;
	}
	spurl=url.split("?");
	//pageName = url;
	pageName = spurl[0];
	if (spurl.length>1)
		lang = spurl[1].replace("lang=","");
	//debug(1,lang);
	url=url+"?sid="+Math.random();
	xmlHttp.onreadystatechange=loadPage_res;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
} 

function loadPage_res() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		document.getElementById("pageWrapper").innerHTML=xmlHttp.responseText;
		if (pageName != "home.html") {
			showHomeLink(lang);
        } else {
			hideHomeLink();
            getFromServer('fillBlogPreview','act=blog');
		}
		if (pageName=="blog.html") {
			getFromServer('fillBlog','act=blog');
        }
 		if (pageName=="courses.html") {
			getFromServer('fillCourses','act=courses');
        }
 		if (pageName=="links.html") {
			getFromServer('fillLinks','act=links');
        }
 		if (pageName=="books.html") {
			getFromServer('fillBooks','act=books');
        }
 		if (pageName=="articles.html") {
			getFromServer('fillArticles','act=articles');
        }
 		if (pageName=="reviews.html") {
			getFromServer('fillReviews','act=reviews');
        }
        if (pageName=="cv.html") {
            getFromServer("fillCV","act=fillcv");
        }
	}
}

function getFromServer(resfunc,query) {	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url="dbif.jsp";
    query = "resfunc="+resfunc+"&lang="+lang+"&"+query;
	debug(1,"url: "+url);
    xmlHttp.onreadystatechange=getXMLFromResponse;
	xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", query.length);
    xmlHttp.setRequestHeader("Connection", "close");
    //xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlHttp.send(query);
} 

function getXMLFromResponse() {
    debug(2,"xmlHttp.readyState: "+xmlHttp.readyState);
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
        var xml = xmlHttp.responseXML;
        debug(1,"xml:\n"+xmlHttp.responseText);
        if (xml != null) {
            var resfunc = xget(xml,'resfunc');//.getElementsByTagName('resfunc')[0].firstChild.nodeValue;
            debug(1,"resfunc: "+resfunc);
            eval(resfunc+'(xml)');
            
        } else {
            debug(1,'illegal xml');
        }
    }
}

function debug(level,msg) {
    if (debugLevel >= level) {
        alert(msg);
    }
}

function xgets(x,name,i) {
    x = xnodes(x,name);
    if (x[i] == null || x[i].firstChild == null) 
        return "";
    return x[i].firstChild.nodeValue;
}

function xget(x,name) {
    return xgets(x,name,0);
}

function xlen(x,name,i) {
    x = xnodes(x,name);
    if (x == null) 
        return 0;
    return x.length;
}

function xnodes(x,name) {
    return x.getElementsByTagName(name);
}

function getid(id) {
    var n = document.getElementById(id);
    if ((n.nodeName=="INPUT") || (n.nodeName=="TEXTAREA")) {
        return n.value;
    }
    else {
        return n.innerHTML;
    }
}
 
function setid(id,val) {
    var n = document.getElementById(id);
    if ((n.nodeName=="INPUT") || (n.nodeName=="TEXTAREA")) {
        n.value=val;
    }
    else {
        n.innerHTML=val;
    }
}

function existid(id) {
    return (document.getElementById(id)!=null);
}


