var gwpeconect={
//loadingmessage: "<table bgcolor=#555555 style=\"border: 1px dotted #000000\"><tr><td align=center nowrap><br/><img src=\"include_web/loader/2-1.gif\"><br/>Loading, please wait...<br/><br/></td></tr></table>",
//loadingmessage: "<table style=\"border: 1px dotted #555555\"><tr><td align=center nowrap><br/><img src=\"include_web/loader/2-1.gif\"><br/>Loading, please wait...<br/><br/></td></tr></table>",
loadingmessage: "<div style=\"z-index:10000;text-align:center;width:100%; height:100%;border: 1px dotted #555555\"><br/><br/><img src=\"include_web/loader/2-1.gif\"><br/>&nbsp;Loading,&nbsp;please&nbsp;wait...&nbsp;<br/><br/><br/></div>",
exfilesadded: "",

connect:function(containerid, pageurl, postget,bustcache, postdata,jsfiles, cssfiles){
    var page_request = false;
    var bustcacheparameter="";


//old style
//    if (window.XMLHttpRequest) page_request = new XMLHttpRequest()
//	else if (window.ActiveXObject){
//	    try {page_request = new ActiveXObject("Msxml2.XMLHTTP");} 
//	catch (e){
//	    try{page_request = new ActiveXObject("Microsoft.XMLHTTP");}
//	    catch (e){}
//	}
//    } else return false;


    if (window.XMLHttpRequest) { 
	page_request = new XMLHttpRequest();
	if (page_request.overrideMimeType) {
    	    page_request.overrideMimeType('text/xml');
	}
    } else if (window.ActiveXObject) {
	try {
    	    page_request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
    	    try {
        	page_request = new ActiveXObject("Microsoft.XMLHTTP");
    	    } catch (e) {}
	}
    }



    var ajaxfriendlyurl=pageurl.replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+"/"); 
    page_request.onreadystatechange=function(){gwpeconect.loadpage(page_request, containerid, pageurl, jsfiles, cssfiles)}
    document.getElementById(containerid).innerHTML=gwpeconect.loadingmessage;
    if (bustcache) bustcacheparameter=(ajaxfriendlyurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime();
    if (postget=='POST'){//post
//	page_request.filetype='txt';
	page_request.open('POST', ajaxfriendlyurl+bustcacheparameter, true);
	page_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	page_request.setRequestHeader("Content-length", postdata.length);
	page_request.setRequestHeader("Connection", "close");
	page_request.send(postdata);
    }else{//get
//	page_request.filetype='txt';
	page_request.open('GET', ajaxfriendlyurl+bustcacheparameter, true);
	page_request.send(null);

    }
},

loadpage:function(page_request, containerid, pageurl, jsfiles, cssfiles){
    if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
	document.getElementById(containerid).innerHTML=page_request.responseText
	for (var i=0; i<jsfiles.length; i++)
	    this.loadjscssfile(jsfiles[i], "js")
	for (var i=0; i<cssfiles.length; i++)
	    this.loadjscssfile(cssfiles[i], "css")
	this.pageloadaction(pageurl) 
    }
},

createjscssfile:function(filename, filetype){
    if (filetype=="js"){ 
	var fileref=document.createElement('script')
	fileref.setAttribute("type","text/javascript")
	fileref.setAttribute("src", filename)
    }
    else if (filetype=="css"){ 
	var fileref=document.createElement("link")
	fileref.setAttribute("rel", "stylesheet")
	fileref.setAttribute("type", "text/css")
	fileref.setAttribute("href", filename)
    }
    return fileref
},

loadjscssfile:function(filename, filetype){ 
    if (this.exfilesadded.indexOf("["+filename+"]")==-1){ 
	var newelement=this.createjscssfile(filename, filetype)
	document.getElementsByTagName("head")[0].appendChild(newelement)
	this.exfilesadded+="["+filename+"]" 
    } else{ 
	var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none"
	var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none"
	var allsuspects=document.getElementsByTagName(targetelement)
	for (var i=allsuspects.length; i>=0; i--){
	    if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1){
		var newelement=this.createjscssfile(filename, filetype)
		allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i])
	    }
	}
    }
},


pageloadaction:function(pageurl){
    this.onpageload(pageurl) 
},

onpageload:function(pageurl){

},

load:function(containerid, pageurl, postget,bustcache, postdata,jsfiles, cssfiles){
    var jsfiles=(typeof jsfiles=="undefined" || jsfiles=="")? [] : jsfiles
    var cssfiles=(typeof cssfiles=="undefined" || cssfiles=="")? [] : cssfiles
    this.connect(containerid, pageurl, postget,bustcache, postdata,jsfiles, cssfiles)
}

} 














function createAjObj(){
    var httprequest=false;
    if (window.XMLHttpRequest){
	httprequest=new XMLHttpRequest();
	if (httprequest.overrideMimeType) httprequest.overrideMimeType('text/xml');
    }else if (window.ActiveXObject){
	try {httprequest=new ActiveXObject("Msxml2.XMLHTTP");} 
	catch (e){
	    try{httprequest=new ActiveXObject("Microsoft.XMLHTTP");}
	    catch (e){}
	}
    }
    return httprequest;
}
var gwpe_gp=new Object();
gwpe_gp.basedomain="http://"+window.location.hostname;
gwpe_gp.ajaxobj=createAjObj();
gwpe_gp.filetype="txt";
gwpe_gp.addrandomnumber=0; //Set to 1 or 0. Dodatkowy cachje dla IE.

gwpe_gp.getAjaxRequest=function(url, parameters, callbackfunc, filetype){
    gwpe_gp.ajaxobj=createAjObj(); 
    if (gwpe_gp.addrandomnumber==1) var parameters=parameters+"&ajaxcachebust="+new Date().getTime();
    if (this.ajaxobj){
	this.filetype=filetype;
	this.ajaxobj.onreadystatechange=callbackfunc;
	this.ajaxobj.open('GET', url+"?"+parameters, true);
	this.ajaxobj.send(null);
    }
}

gwpe_gp.postAjaxRequest=function(url, parameters, callbackfunc, filetype){
    gwpe_gp.ajaxobj=createAjObj(); 
    if (this.ajaxobj){
	this.filetype=filetype;
	this.ajaxobj.onreadystatechange = callbackfunc;
	this.ajaxobj.open('POST', url, true);
	this.ajaxobj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	this.ajaxobj.setRequestHeader("Content-length", parameters.length);
	this.ajaxobj.setRequestHeader("Connection", "close");
	this.ajaxobj.send(parameters);
    }
}


