var ajaxObj = null;

function GetXmlHttpObject(handler){ 
var objXmlHttp=null
if (navigator.userAgent.indexOf('Opera')>=0){alert("This example doesn't work in Opera");return;}
if (navigator.userAgent.indexOf('MSIE')>=0){ 
var strName='Msxml2.XMLHTTP'
if (navigator.appVersion.indexOf('MSIE 5.5')>=0){
strName='Microsoft.XMLHTTP'
} 
try
{ 
objXmlHttp=new ActiveXObject(strName)
objXmlHttp.onreadystatechange=handler 
return objXmlHttp
} 
catch(e){
alert('Error. Scripting for ActiveX might be disabled') 
return 
}} 
if (navigator.userAgent.indexOf('Mozilla')>=0){
objXmlHttp=new XMLHttpRequest()
objXmlHttp.onload=handler
objXmlHttp.onerror=handler 
return objXmlHttp
}}

function genUnique(strParms){
var parm = (strParms == '') ? '' : '&';
parm += 'rseq=' + (Math.random()*100000000000000000);
return parm
}

function xmlhttpRequest(strMode, strUrl, strParms, myEl, strParentElemID) {
 var handler = function () {ajaxStateChng(ajaxObj, strParentElemID)}
 ajaxObj = GetXmlHttpObject(handler)
 if (strMode == 'G' ) {
  ajaxPendingMsg(strParentElemID, 'Please wait - data being retrieved ...');
  getAjaxRequest(ajaxObj, strUrl, strParms, handler);
 } else {
  var sPostData = getFormData(myEl.form, myEl.value);
  ajaxPendingMsg(strParentElemID, 'Please wait - data being retrieved ...');
  postAjaxRequest(ajaxObj, strUrl, strParms, sPostData, handler);
 }
 return false;
}
function getAjaxRequest(ajaxObj, url, parameters, handler) {
parameters += genUnique(parameters);
ajaxObj.onreadystatechange=handler;
ajaxObj.open('GET', url+"?"+parameters, true);
ajaxObj.send(null);
}
function postAjaxRequest(ajaxObj, url, parameters, formdata, handler) {
parameters += genUnique(parameters);
ajaxObj.onreadystatechange=handler;
if (parameters != '') ajaxObj.open('POST', url+'?'+parameters, true);
else ajaxObj.open('POST', url, true);
ajaxObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxObj.setRequestHeader("Content-length", formdata.length);
ajaxObj.send(formdata);
}
function ajaxStateChng(ajaxObj, sID){
if (ajaxObj.readyState==4 || ajaxObj.readyState=='complete'){
document.getElementById(sID).innerHTML=ajaxObj.responseText
}
}
function ajaxPendingMsg(sID, sMsg){
var formElem = document.getElementById(sID)
formElem.innerHTML=sMsg
if (formElem.style.display != '') formElem.style.display = ''
}
function getFormData(docForm, strAction) {
var formElem; var formElem; var selOpt; var elemValue;
var strPostParms = 'FormAction='+ escape(strAction);
for (var i=0; i< docForm.length; i++) {
 formElem = docForm.elements[i];
 switch (formElem.type.toLowerCase()) {
 case 'text':
 case 'textarea':
 case 'hidden':
 case 'password':
 case 'file':
    strPostParms += '&' + formElem.name + '=' + escape(formElem.value);
    break
 case 'radio':
 case 'checkbox':
    if (formElem.checked) {strPostParms += '&' + formElem.name + '=' + escape(formElem.value);}
    break
 case 'select-one':
    selOpt = formElem.options[formElem.selectedIndex];
    if (selOpt.selected) {
        elemValue = selOpt.getAttributeNode('value') ? selOpt.value : selOpt.text;
        strPostParms += '&' + formElem.name + '=' + escape(elemValue);
    }
    break
 case 'select-multiple':
    for (var j=0;j<formElem.length;j++) {
        var selOpt = formElem.options[j];
        if (selOpt.selected) {
            elemValue = selOpt.getAttributeNode('value') ? selOpt.value : selOpt.text;
            strPostParms += '&' + formElem.name + '=' + escape(elemValue);
        }
    }
  }
 }
return strPostParms}

function AddScriptIntoHEAD(strScriptID, strScriptSrcType, strScriptSrcTxt){
 var head = document.getElementsByTagName('head').item(0)
 var this_ScriptID = document.getElementById(strScriptID);
 //destroy before create:
 if(this_ScriptID) head.removeChild(this_ScriptID);
 //create:
 var script = document.createElement('script');
 // for adding a separate .js file, use script.src:
 script.defer = true;
 script.language = 'JavaScript';
 script.type = 'text/javascript';
 script.id = strScriptID;
 if (strScriptSrcType == 'R') { script.src = strScriptSrcTxt;} else {script.text = strScriptSrcTxt;}
 head.appendChild(script);
}
function emptyElementHTML(sID) {
var formElem = document.getElementById(sID);
formElem.style.display = 'none';
formElem.innerHTML='';
return false;
}
function changeSubAction(docForm, strUrl){
docForm.action = strUrl;
return true;
}
function preloadCrsListImages() {var loadedImages = new Array;
for (var i=0; i < arguments.length; i++) {loadedImages[i] = new Image(); loadedImages[i].src = arguments[i]; }}
