var isSearchOnly = false;
//addLoadEvent(init_base);

function init_base(){
	initXMLObject();
}

//start cross-platform get xml http object
var XMLObjIndex;
var msXML = new Array('Msxml2.XMLHTTP.5.0',
											'Msxml2.XMLHTTP.4.0',
											'Msxml2.XMLHTTP.3.0',
											'Msxml2.XMLHTTP',
											'Microsoft.XMLHTTP');

function initXMLObject(){
  XMLObjIndex = -999;
  
	if(window.XMLHttpRequest) {
   XMLObjIndex = -1;
  } else {
		if(window.ActiveXObject) {
      for(i = 0; i < msXML.length; i++) {
				try {
					x = new ActiveXObject(msXML[i]);
					XMLObjIndex = i;
					break;
        } catch (failed) {
        }
      }
		}
  }
}

function getXMLObj(){
	switch(XMLObjIndex){
		case -1: 
			return new XMLHttpRequest(); 
		break;
		
		case 0: case 1: case 2: case 3: case 4: 
			return new ActiveXObject(msXML[XMLObjIndex]); 
		break;
		
		default: 
			return false; 
		break;
	}
}
//end cross-platform get xml http object

//start cross-platform xml parse routines
function getNodeValue(root, nodeName){
  var nlist = root.getElementsByTagName(nodeName);
  return nlist.item(0).childNodes[0].nodeValue;
}

function getDOMFromString(txt){
  var x;
  if(document.implementation.createDocument){
    var parser = new DOMParser();
    x = parser.parseFromString(txt,'text/xml');
  } else if(window.ActiveXObject){
  	x = new ActiveXObject('Microsoft.XMLDOM');
	  x.loadXML(txt);
  }
  
  return x.documentElement;
}
//end cross-platform xml parse routines

//start cross-platform callback code
function CallBackAsync( ) {
    //this._xmlhttp = new getXMLObj();
    this._xmlhttp = getXMLObj();
}
function CallBackAsync_call(url, data) {
  var instance = this;
  this._xmlhttp.open('POST', url, true);
  this._xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  this._xmlhttp.setRequestHeader('Content-Length', data.length);
  this._xmlhttp.setRequestHeader('Connection', 'close');
  this._xmlhttp.onreadystatechange = function() {
    switch(instance._xmlhttp.readyState) {
    case 4:
      if(instance.complete) {
        try{
					instance.complete(instance._xmlhttp.responseText);
        }catch(e){
        }
      }
      break;
    }
  }
  try{
		this._xmlhttp.send(data);
  } catch(e){
  }
}
function CallBackAsync_complete(responseText){ }
CallBackAsync.prototype.complete = CallBackAsync_complete;
CallBackAsync.prototype.call = CallBackAsync_call;

function CallBackSync( ) {
    this._xmlhttp = getXMLObj();
}
function CallBackSync_call(url, data) {
  var instance = this;
  this._xmlhttp.open('POST', url, false);
  this._xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  this._xmlhttp.setRequestHeader('Content-Length', data.length);
  this._xmlhttp.setRequestHeader('Connection', 'close');
  try{
		this._xmlhttp.send(data);
  } catch(e){
  }
}
CallBackSync.prototype.call = CallBackSync_call;
//end cross-platform callback code

function setValue(elementID, value){
	var e = getElementById(elementID);
	e.value = value; 
}

function setInnerHTML(elementID, value){
	var e = getElementById(elementID);
	e.innerHTML = value; 
}

function setInnerText(elementID, value){
	var e = getElementById(elementID);
	if(typeof(e.textContent) != 'undefined')
		e.textContent = value;
	else
		e.innerText = value; 
}

function getElementById(id){
  return (document.getElementById) ? (document.getElementById(id)) : (document.all[id]);
}

function getEscapedValueById(ctrl){
	return escape(getElementById(ctrl).value);
}

function clearTable(tbody){
	while(tbody.rows.length>0){
		tbody.deleteRow(0);
	}
}

function setTDInnerData(element, value){
	if(typeof(element.textContent) != 'undefined')
		element.textContent = value;
	else
		element.innerText = value; 
}

function getCellText(row, id){
	var r = '';
	for(i=0; i<row.length; i++){
		if(row[i].id == id){
			r = row[i].innerHTML;
			break;
		}
	}
	return r;
}

function showError(e, msg){
	elementShow(e);
	getElementById(e).innerHTML = msg;
}

function showError2(panel, flag, msg){
	var p = getElementById(panel);
	if(flag){
		p.innerHTML = '';			
		p.style.display = 'none';
	} else {
		p.innerHTML = msg;
		p.style.display = 'block';
	}
}

function clearError(e){
	elementHide(e);
	getElementById(e).innerHTML = '';
}

function elementShow(element){
	getElementById(element).style.display = 'block';
}

function elementShowInline(element){
	getElementById(element).style.display = 'inline';
}

function elementHide(element){
	getElementById(element).style.display = 'none';
}

function elementDisable(element){
	return getElementById(element).disabled = true;
}

function elementEnable(element){
	return getElementById(element).disabled = false;
}

function elementDisabled(element){
	return getElementById(element).disabled;
}

function elementVisible(element){
	if((getElementById(element).style.display == 'none') || (getElementById(element).style.display == '') || (getElementById().visibility!=''))
		return false;
	else
		return true;
}

function elementDisplayed(element){
	if((getElementById(element).style.display == 'none') || (getElementById(element).style.display == ''))
		return false;
	else
		return true;
}

function makeVisible(element){
	getElementById(element).style.visibility = 'visible';
}

function makeInvisible(element){
	getElementById(element).style.visibility = 'hidden';
}

function panelSetLoading(panel){
	elementHide(panel + 'Grid');
	elementShow(panel + 'Busy');
	elementHide(panel + 'NotFound');
}

function panelSetDone(panel, scroll){
	elementShow(panel + 'Grid');
	elementHide(panel + 'Busy');
	elementHide(panel + 'NotFound');
	if(scroll){
		window.scrollTo(0,getElementById(panel).offsetTop);
	}	
}

function panelSetNotFound(panel){
	elementHide(panel + 'Grid');
	elementHide(panel + 'Busy');
	elementShow(panel + 'NotFound');
}

function panelShowDetail(panel, scroll){
	elementShow(panel + 'Detail');
	if(scroll){
		var xy = getElementXY(getElementById(panel + 'Detail'));
		window.scrollTo(0,xy.y + getElementById(panel + 'Detail').clientHeight);
	}	
}

function UnEscapeEncode(s){
	s = UnEscapeBRTags(s);
	s = UnEscapeLTTags(s);
	s = UnEscapeGTTags(s);
	return s;
}

function UnEscapeBRTags(s){
	s = s.replace(RegExp("&lt;br&gt;","g"),"<br>");
	s = s.replace(RegExp("&LT;BR&GT;","g"),"<br>");
	
	s = s.replace(RegExp("&lt;u&gt;","g"),"<u>");
	s = s.replace(RegExp("&LT;U&GT;","g"),"<u>");
	s = s.replace(RegExp("&lt;/u&gt;","g"),"</u>");
	s = s.replace(RegExp("&LT;/U&GT;","g"),"</u>");		
	
	s = s.replace(RegExp("&lt;span&gt;","g"),"<span>");
	s = s.replace(RegExp("&LT;SPAN&GT;","g"),"<span>");
	s = s.replace(RegExp("&lt;/span&gt;","g"),"</span>");
	s = s.replace(RegExp("&LT;/SPAN&GT;","g"),"</span>");		
	return s;
}

function UnEscapeLTTags(s){
	s = s.replace(RegExp("&lt;","g"),"[");
	s = s.replace(RegExp("&LT;","g"),"[");
	return s;
}

function UnEscapeGTTags(s){
	s = s.replace(RegExp("&gt;","g"),"]");	
	s = s.replace(RegExp("&GT;","g"),"]");	
	return s;
}

function ReplaceCRWithBR(s){
	s = s.replace(RegExp("\r\n","g"),"<br>");
	s = s.replace(RegExp("\R\N","g"),"<br>");
	s = s.replace(RegExp("\r","g"),"<br>");	
	s = s.replace(RegExp("\R","g"),"<br>");	
	s = s.replace(RegExp("\n","g"),"<br>");
	s = s.replace(RegExp("\N","g"),"<br>");	
	return s;
}

function ReplaceBRWithCR(s){
	s = s.replace(RegExp("<br />","g"),"\r\n");
	s = s.replace(RegExp("<br>","g"),"\r\n");
	s = s.replace(RegExp("<BR>","g"),"\r\n");	
	return s;
}

function getElementXY(e) {
	var xy = {x: 0, y: 0};
	while(e) {
		xy.x += e.offsetLeft;
		xy.y += e.offsetTop;
		e = e.offsetParent;
	}
	return xy;
}

function setDisabled(panel){
	return getElementById(panel).disabled = true;
}

function isDisabled(panel){
	return getElementById(panel).disabled;
}

function checkHide(ctl,section){
	if(getElementById(ctl).checked)
		getElementById(section).style.display = 'block';
	else
		getElementById(section).style.display = 'none';
}

function checkHide2(ctl,section){
	if(ctl.checked){
		getElementById(section).style.display = 'block';
	}else{
		getElementById(section).style.display = 'none';
	}
}

function stripHover(s){
	return s.replace('Hover','');
}

function hoverOn(me) {
	me.className = stripHover(me.className) + 'Hover';
}	
		
function hoverOff(me) {
	me.className = stripHover(me.className);
}

function stripSelected(s){
	return s.replace('Selected','');
}

function focusInput(me) {
	me.className = stripSelected(me.className) + 'Selected';
}	
		
function blurInput(me) {
	me.className = stripSelected(me.className);
}

function mangleUCHelp(s){
	return s.replace('Help','1_');
}

function mangleUCLabel(panel, ctrl){
	return mangleUCId(panel) + '1_' + ctrl;
}

function collectSelected(ctrl){
	var s='';
	for(var i=0; i<ctrl.length; i++){
		if(ctrl.options[i].selected){
			s += ctrl.options[i].value + ',';
		}
	}
	return s.substring(0,s.length-1);
}

function setSelected(ctrl, id){
	var se = getElementById(ctrl);
	for(var i=0; i<se.length; i++){
		if(se.options[i].value == id){
			se.options[i].selected = true;
			break;
		}
	}
}

function fillSelectFromArray(select,list,index){
	select.options.length = 0;
	for(i=0;i<list.length;i++){
		code = list[i].code;
		select[i] = new Option(list[i].text,code);
		if(code == index)
			select[i].selected = true;
	}
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if(typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function showModalWindow(page){
	var ie = document.all;
	if(ie){
		window.showModalDialog(page,'','center:1;dialogWidth:700px;dialogHeight:400px;resizable:0;status:0')
	} else {
		//netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserWrite');
		var	w = window.open(page, 'w', 'chrome, centerscreen, dependent=YES, dialog=YES, width=700, height=400, status=0, resizable=NO, modal=YES, scrollbars=YES');
		w.focus();
	}
}
