function showBusyLayer(){
var busyLayer=document.getElementById("busy_layer");
if(busyLayer !=null){
busyLayer.style.visibility="visible";
busyLayer.style.height=getPageSize().pageHeight + 'px';
}
};
function getPageSize(){
var d=document, w=window, iebody=d.compatMode && d.compatMode !='BackCompat' 
?d.documentElement : d.body; 
var b=d.body;
var yScroll=(w.innerHeight && window.scrollMaxY)
?w.innerHeight + w.scrollMaxY : Math.max(b.scrollHeight, b.offsetHeight),
pageHeight=(document.all && !window.opera)?Math.max(iebody.scrollHeight, iebody.clientHeight): 
(d.documentElement.clientHeight || self.innerHeight);
var height=(document.all && !window.opera)?iebody.clientHeight : self.innerHeight;
return{
pageHeight: Math.max(pageHeight, yScroll),
height: height, 
scrollTop:(document.all && !window.opera)?iebody.scrollTop : pageYOffset
}
};
function hideBusyLayer(){
var busyLayer=document.getElementById("busy_layer");
if(busyLayer !=null){
busyLayer.style.visibility="hidden";
busyLayer.style.height="0px";
}
};
function _get_obj_toppos(obj)
{
var top=obj.offsetTop;
while((obj=obj.offsetParent)!=null)
{
top +=obj.offsetTop;
}
return top;
};
function center_div()
{
this.divname='';
this.divobj='';
};
center_div.prototype.clear_div=function()
{
try
{
if(! this.divobj)
{
return;
}
else
{
this.divobj.style.display='none';
}
}
catch(e)
{
return;
}
};
center_div.prototype.Ywindow=function()
{
var scrollY=0;
if(document.documentElement && document.documentElement.scrollTop)
{
scrollY=document.documentElement.scrollTop;
}
else if(document.body && document.body.scrollTop)
{
scrollY=document.body.scrollTop;
}
else if(window.pageYOffset)
{
scrollY=window.pageYOffset;
}
else if(window.scrollY)
{
scrollY=window.scrollY;
}
return scrollY;
};
center_div.prototype.move_div=function()
{
try
{
this.divobj=document.getElementById(this.divname);
}
catch(e)
{
return;
}
var my_width=0;
var my_height=0;
if(typeof(window.innerWidth)=='number')
{
my_width=window.innerWidth;
my_height=window.innerHeight;
}
else if(document.documentElement &&(document.documentElement.clientWidth || document.documentElement.clientHeight))
{
my_width=document.documentElement.clientWidth;
my_height=document.documentElement.clientHeight;
}
else if(document.body &&(document.body.clientWidth || document.body.clientHeight))
{
my_width=document.body.clientWidth;
my_height=document.body.clientHeight;
}
this.divobj.style.position='absolute';
this.divobj.style.display='block';
this.divobj.style.zIndex=99;
var divheight=parseInt(this.divobj.style.Height);
var divwidth=parseInt(this.divobj.style.Width);
divheight=divheight ?divheight : 50;
divwidth=divwidth ?divwidth : 200;
var scrolly=this.Ywindow();
var setX=(my_width - divwidth)/ 2;
var setY=(my_height - divheight)/ 2 + scrolly;
setX=(setX < 0)?0 : setX;
setY=(setY < 0)?0 : setY;
this.divobj.style.left=setX + "px";
this.divobj.style.top=setY + "px";
};
function engine_ajax(file){
this.AjaxFailedAlert="AJAX not supported.\n";
this.requestFile=file;
this.method="POST";
this.URLString="";
this.encodeURIString=true;
this.execute=false;
this.add_html=false;
this.loading_fired=0;
this.centerdiv=null;
this.onLoading=function(){};
this.onLoaded=function(){};
this.onInteractive=function(){};
this.onCompletion=function(){};
this.onShow=function(message)
{
if(! this.loading_fired)
{
this.loading_fired=1;
//------------------------------------------------
// Change text?
//------------------------------------------------
if(message)
{
document.getElementById('loading-layer-text').innerHTML=message;
}
this.centerdiv=new center_div();
this.centerdiv.divname='loading-layer';
this.centerdiv.move_div();
}
return;
};
this.onHide=function()
{
try
{
if(this.centerdiv && this.centerdiv.divobj)
{
this.centerdiv.clear_div();
}
}
catch(e)
{
}
this.loading_fired=0;
return;
};
this.createAJAX=function(){
try{
this.xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch(e){
try{
this.xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch(err){
this.xmlhttp=null;
}
}
if(!this.xmlhttp && typeof XMLHttpRequest !="undefined")
this.xmlhttp=new XMLHttpRequest();
if(!this.xmlhttp){
this.failed=true; 
}
};
this.setVar=function(name, value){
if(this.URLString.length < 3){
this.URLString=name + "=" + value;
} else{
this.URLString +="&" + name + "=" + value;
}
};
this.encVar=function(name, value){
var varString=encodeURIComponent(name)+ "=" + encodeURIComponent(value);
return varString;
};
this.encodeURLString=function(string){
varArray=string.split('&');
for(i=0; i < varArray.length; i++){
urlVars=varArray[i].split('=');
if(urlVars[0].indexOf('amp;')!=-1){
urlVars[0]=urlVars[0].substring(4);
}
varArray[i]=this.encVar(urlVars[0],urlVars[1]);
}
return varArray.join('&');
};
this.encodeVAR=function(url){
url=url.toString();
url=url.replace(/\+/g, "%2B");
url=url.replace(/\=/g, "%3D");
url=url.replace(/\?/g, "%3F");
url=url.replace(/\&/g, "%26"); 
return url;
};
this.runResponse=function(){
var milisec=new Date;
var jsfound=false;
milisec=milisec.getTime();
var js_reg=/<script.*?>(.|[\r\n])*?<\/script>/ig;
var js_str=js_reg.exec(this.response);
if(js_str !=null){
var js_arr=new Array(js_str.shift());
var jsfound=true;
while(js_str){
js_str=js_reg.exec(this.response);
if(js_str !=null)js_arr.push(js_str.shift());
}
for(var i=0; i<js_arr.length;i++){
this.response=this.response.replace(js_arr[i],'<span id="'+milisec+i+'" style="display:none;"></span>');
}
}
if(this.add_html){
this.elementObj.innerHTML +=this.response; 
} else{
this.elementObj.innerHTML=this.response; 
}
if(jsfound){
var js_content_reg=/<script.*?>((.|[\r\n])*?)<\/script>/ig;
for(i=0; i < js_arr.length; i++){
var mark_node=document.getElementById(milisec+''+i);
var mark_parent_node=mark_node.parentNode;
mark_parent_node.removeChild(mark_node);
js_content_reg.lastIndex=0;
var js_content=js_content_reg.exec(js_arr[i]);
var script_node=mark_parent_node.appendChild(document.createElement('script'));
script_node.text=js_content[1]; 
var script_params_str=js_arr[i].substring(js_arr[i].indexOf(' ',0),js_arr[i].indexOf('>',0));
var params_arr=script_params_str.split(' ');
if(params_arr.length > 1){
for(var j=0;j< params_arr.length; j++){
if(params_arr[j].length > 0){
var param_arr=params_arr[j].split('=');
param_arr[1]=param_arr[1].substr(1,(param_arr[1].length-2));
script_node.setAttribute(param_arr[0],param_arr[1]);
}
}
}
}
}
};
this.sendAJAX=function(urlstring){
this.responseStatus=new Array(2);
if(this.failed && this.AjaxFailedAlert){
alert(this.AjaxFailedAlert); 
} else{
if(urlstring){
if(this.URLString.length){
this.URLString=this.URLString + "&" + urlstring; 
} else{
this.URLString=urlstring; 
}
}
if(this.encodeURIString){
var timeval=new Date().getTime(); 
this.URLString=this.encodeURLString(this.URLString);
this.setVar("rndval", timeval);
}
if(this.element){this.elementObj=document.getElementById(this.element); }
if(this.xmlhttp){
var self=this;
if(this.method=="GET"){
var totalurlstring=this.requestFile + "?" + this.URLString;
this.xmlhttp.open(this.method, totalurlstring, true);
} else{
this.xmlhttp.open(this.method, this.requestFile, true);
}
if(this.method=="POST"){
try{
this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
} catch(e){}
}
this.xmlhttp.send(this.URLString);
this.xmlhttp.onreadystatechange=function(){
switch(self.xmlhttp.readyState){
case 1:
self.onLoading();
break;
case 2:
self.onLoaded();
break;
case 3:
self.onInteractive();
break;
case 4:
self.response=self.xmlhttp.responseText;
self.responseXML=self.xmlhttp.responseXML;
self.responseStatus[0]=self.xmlhttp.status;
self.responseStatus[1]=self.xmlhttp.statusText;
self.onHide();
self.onCompletion();
if(self.elementObj){
var elemNodeName=self.elementObj.nodeName;
elemNodeName=elemNodeName.toLowerCase();
if(elemNodeName=="input" || elemNodeName=="select" || elemNodeName=="option" || elemNodeName=="textarea"){
if(self.response=='error'){alert('Access denied'); } else{
if(self.add_html){
self.elementObj.value +=self.response;
} else{self.elementObj.value=self.response;}
}
} else{
if(self.response=='error'){alert('Access denied'); } else{
if(self.execute){self.runResponse(); } else{
if(self.add_html){
self.elementObj.innerHTML +=self.response;
} else{self.elementObj.innerHTML=self.response; }
}
}
}
}
self.URLString="";
break;
}
};
}
}
};
this.createAJAX();
};
