
  var myAjaxRequest = 0;
  var myAjaxDivId = new Array();
  var myAjaxState = new Array();
  var myAjaxCount = new Array();
  var myAjaxRef = new Array();

  var XMLHttpRequestObjectStatus = null;
  if (myAjaxActive == 'Yes') {
  	try{
		  XMLHttpRequestObjectStatus = new XMLHttpRequest();
	  } catch (e) {
		    try{
			    XMLHttpRequestObjectStatus = new ActiveXObject("Msxml2.XMLHTTP");
		    } catch (e) {
			      try{
				      XMLHttpRequestObjectStatus = new ActiveXObject("Microsoft.XMLHTTP");
			      } catch (e) {
      	        //alert('Your browser does not support AJAX Technology!\nGiving up :( Cannot create an XMLHTTP instance.');
				        //return false;
			      }
		    }
	  }
  }

  function ajaxSendRequest(divId, myRequestX, url, params, HttpMethod)
  {
  	var myAjaxReq = null;
  	var myAjaxData = null;
    var READY_STATE_UNINITIALIZED = 0;
    var READY_STATE_LOADING = 1;
    var READY_STATE_LOADED = 2;
    var READY_STATE_INTERACTIVE = 3;
    var READY_STATE_COMPLETE = 4;
  	
    myAjaxDivId[myRequestX] = divId;
    myAjaxState[myRequestX] = 0;
    myAjaxCount[myRequestX] = 0;
    myAjaxRef[myRequestX] = "";

  	if (!HttpMethod) {
  		HttpMethod = "GET";
  	}
  	
  	myAjaxReq = ajaxInitXMLHTTPRequest();
  	
  	if (myAjaxReq) {
  		myAjaxReq.onreadystatechange = function () {
  			if (myAjaxReq.readyState == READY_STATE_COMPLETE) {
  		    myAjaxData = myAjaxReq.responseText;
  	    }
  	    ajaxToConsole(myAjaxReq.readyState, myAjaxData, myRequestX);
      }
      
  		myAjaxReq.open(HttpMethod, url, true); 
  		myAjaxReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  		
  		myAjaxReq.send(params);
  	}
  }
  
  function ajaxInitXMLHTTPRequest()
  {
  	var xRequest = false;
  	
  	try{
		  xRequest = new XMLHttpRequest();
	  } catch (e) {
		    try{
			    xRequest = new ActiveXObject("Msxml2.XMLHTTP");
		    } catch (e) {
			      try{
				      xRequest = new ActiveXObject("Microsoft.XMLHTTP");
			      } catch (e) {
      	        alert('Your browser does not support AJAX Technology!\nGiving up :( Cannot create an XMLHTTP instance.');
				        return false;
			      }
		    }
	  }

  	return xRequest;
  }
  
  function ajaxGetData(xdivId, xurl, xmethod, xparams)
  {
  	++myAjaxRequest;
  	divId = document.getElementById(xdivId);
  	ajaxSendRequest(divId, myAjaxRequest, xurl, xparams, xmethod);
  }

  function ajaxToConsole(ready, data, myRequestX)
  {
  	if (ready <= '1' && myAjaxRef[myRequestX] == "") {
  		myAjaxDivId[myRequestX].innerHTML = myLangPleasewait;
  		myAjaxRef[myRequestX] = setInterval("ajaxToConsoleSet("+myRequestX+")", 200);
  	}
  	else if (ready == '2' || ready == '3') {
  		clearInterval(myAjaxRef[myRequestX]);
  		myAjaxDivId[myRequestX].innerHTML = myLangCompleted+"...[100%]";
  	}
  	else if (ready > '3') {
  		clearInterval(myAjaxRef[myRequestX]);
  		myAjaxDivId[myRequestX].innerHTML = data;
  	} //else { myAjaxDivId[myRequestX].innerHTML = myLangPleasewait; }
  }
  
  function ajaxGetFormElement(xFormName)
  {
    var formParams = new Array();
    if (document.forms.length > '0') {
      for (i=0; i < document.forms.length; ++i) {
        if (document.forms[i].name == xFormName) {
          for (j=0; j < document.forms[i].elements.length; ++j) {
            if (document.forms[i].elements[j].name) {
              if (document.forms[i].elements[j].type == 'hidden'
                  || document.forms[i].elements[j].type == 'text'
                      || document.forms[i].elements[j].type == 'password'
                          || document.forms[i].elements[j].type == 'select-one'
                              || document.forms[i].elements[j].type == 'textarea'
                                  || document.forms[i].elements[j].type == 'button'
                                      || document.forms[i].elements[j].type == 'submit') {
                                      formParams[j] = document.forms[i].elements[j].name + '=' + document.forms[i].elements[j].value;
              }
              else if (document.forms[i].elements[j].type == 'checkbox'
                  || document.forms[i].elements[j].type == 'radio') {
                  var varCheckRadio = '';
                  if (document.forms[i].elements[j].checked == true) {
                    varCheckRadio = document.forms[i].elements[j].value;
                    formParams[j] = document.forms[i].elements[j].name + '=' + varCheckRadio;
                  }
              }
              else if (document.forms[i].elements[j].type == 'file') {
                formParams[j] = document.forms[i].elements[j].name + '=' + document.forms[i].elements[j].value;
              }
            }
          }
          break;
        }
      }
    }
    return formParams.join('&');
  }
  
  function ajaxToConsoleSet(myRequestX)
  { 
  	++myAjaxCount[myRequestX];
    myAjaxDivId[myRequestX].innerHTML = myLangProgress+"...["+myAjaxCount[myRequestX]+"%]";
    if (myAjaxCount[myRequestX] == '100') { myAjaxCount[myRequestX] = '0'; }
  }

  function ConfirmActionDelLink(xMsg, xDiv, xUrl) {
    if(confirm(xMsg)) {
      ajaxGetData(xDiv, xUrl);
    }
  }


  function correctPNG() // correctly handle PNG transparency in Win IE 5.5 or higher.
  {
   for(var i=0; i<document.images.length; i++)
      {
	  var img = document.images[i]
	  var imgName = img.src.toUpperCase()
	  if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
	     {
		 var imgID = (img.id) ? "id='" + img.id + "' " : ""
		 var imgClass = (img.className) ? "class='" + img.className + "' " : ""
		 var imgTitle = (img.title) ? img.title : img.alt;
		 var imgStyle = "display:inline-block;" + img.style.cssText 
		 if (img.align == "left") imgStyle = "float:left;" + imgStyle
		 if (img.align == "right") imgStyle = "float:right;" + imgStyle
		 if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle		
		 var strNewHTML = "<img border=\"0\" src=\"plexum/images/blank.gif\" alt=\"" + imgTitle + "\""
		 + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
	     + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
		 + "(src=\'" + img.src + "\', sizingMethod='scale');\">" 
		 img.outerHTML = strNewHTML
		 i = i-1
	     }
      }
   }

   if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
     var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
     var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5 && Number(rslt[1]) < 7.0);
     if (itsAllGood) {  window.attachEvent("onload", correctPNG); }
   }


  // Layers
  var oldLayer = "none";
  function showLayerOpenWin(layerName) {
    //eval(layerRef + layerName + endLayerRef + styleRef + ".visibility = 'visible'");
    eval("document.all['"+ layerName +"'].style.visibility = 'visible'");
    if (oldLayer != "none" && oldLayer != layerName) {
      eval("document.all['"+ oldLayer +"'].style.visibility = 'hidden'");
    }
    oldLayer = layerName;
  }
  function showLayerCloseWin(layerName) {
    eval("document.all['"+ layerName +"'].style.visibility = 'hidden'");
  }
  function hibernateNowWin() {
    document.hibernate.submit();
  }
  function langNowWin(xtype) {
    document.langFlagForm.language.value = xtype;
    document.langFlagForm.submit();
  }
  function favoriteNowWin() {
    document.addToFavorite.submit();
  }
  function openWindowNow(xurl,xtarget,xproperties) {
    window.open(xurl,xtarget,xproperties);
  }
  function showStatus(msg) {
    window.status = msg
    return true
  }
  function demoWindow() {
    alert("This function has been disabled for the demo purpose!")
  }

  