document.write('<div id="divProgress" style="display:none"><span style="background-color:white;width:100%;height:100%;"><img src="images/progress.gif"></span></div>');

//
var nodeText;

function loadPageDefaults(page) {

//	alert('loading...\n'+page);

}

function sendTran(xml,bAsync) {
	if (bAsync=='' || bAsync==null)
	{
		bAsync=false;
	}
	//startProgress();
	var oHttp = zXmlHttp.createRequest();
	var tranPath='tranexec.asp';
	//tranPath+='?debug='+xml.substring(1,100);
	oHttp.open('POST',tranPath,bAsync);
	top.dataSent += xml.length;
//alert(xml);
	oHttp.send(xml);
	retStatus=oHttp.status;
	retStatusText=oHttp.statusText;
	formXML = oHttp.responseText;
	if (retStatus=='200')
	{
		top.dataRecv += formXML.length;
		return formXML;
	}
	else
	{
		msg='Transaction Error!\n\n'+retStatus+' '+retStatusText;
		return '<rs><error>' + msg + '</error><detail>'+escape(formXML)+'</detail></rs>';
	}
}

function sendServiceTran(xml) {
	//startProgress();
	var oHttp = zXmlHttp.createRequest();
	oHttp.open('POST','xmlservice.asp',false);
	oHttp.send(xml);
	formXML = oHttp.responseText;
	//stopProgress();
	return formXML;
}

function startProgress(){
	e=document.getElementById('divProgress');
	if (e)
	{
		e.style.display='block';
	}
	document.getElementsByTagName('BODY')[0].focus();
}

function stopProgress(){
	e=document.getElementById('divProgress');
	e.style.display='none';
}

function isError(o) {
	oErr=zXPath.selectSingleNode(o,"/rs/error",null);
	if (oErr != null)
	{
		return true;
	}
	return false;
}

function getValue(ee) {
	return document.getElementById(ee).value;
}

function setValue(ee,val) {
	document.getElementById(ee).value=val;
}

function showElement(ee) {
	e=document.getElementById(ee);
	e.style.display='block';
}

function hideElement(ee) {
	e=document.getElementById(ee);
	e.style.display='none';
}

function getClientHeight() {
	return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight; 
}

function getClientWidth() {
	return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth; 
}

function addOption(dd,id,txt) {
	try
	{
		dd.add(new Option(txt,id),null);
	}
	catch (e)
	{
		dd.add(new Option(txt,id));
	}
}

function setElement(eID,shtml){
	e=document.getElementById(eID);
	e.innerHTML=shtml;
}

function loadHTML(file) {
	var oXml = zXmlDom.createDocument();
	//var terms = document.getElementById('searchwords').value;
	xml='<rq>';
	xml+='<rqname>loadfile</rqname>';
	xml+='<token>' + Session.sessionId + '</token>';
	xml+='<file>' + file + '</file>';
	xml+='</rq>';
	sRet = sendTran(xml);
	return sRet;
	/*
	oXml.loadXML(sRet);
	if (!isError(oXml))
	{
		content=unescape(zXPath.selectSingleNode(oXml,"content",null).text);
		return content;		
	}
	else
	{
		code=zXPath.selectSingleNode(oXml,"/rs/code",null).text;
		if (code=='99')
		{
		}
		alert(zXPath.selectSingleNode(oXml,"/rs/error",null).text);
	}
	*/
}

function getRecords(name,start,qty){
	xml='<rq>';
	xml+='<rqname>showrecords</rqname>';
	xml+='<token>' + Session.sessionId + '</token>';
	xml+='<name>' + name + '</name>';
	xml+='<start>' + start + '</start>';
	xml+='<qty>' + qty + '</qty>';
	xml+='</rq>';
	sRet = sendTran(xml);
	return sRet;
}

function displayRecords(eid,rec) {
	e=document.getElementById(eid);
	hr=e.getElementsByTagName('TR')[0];
	var oXml = zXmlDom.createDocument();
	oXml.loadXML(recs);
	flds=zXPath.selectNodes(oXml,"/rs/records/fields/*",null);
	for (i=1;i<flds.length ;i++ )
	{
		cell=hr.appendChild(document.createElement('th'));
		cell.innerHTML=zXPath.selectSingleNode(flds[i],".",null).text;
	}
	cell=hr.appendChild(document.createElement('th'));
	cell.innerHTML='Edit';
	cell=hr.appendChild(document.createElement('th'));
	cell.innerHTML='Delete';
	rows=zXPath.selectNodes(oXml,"/rs/records/record",null);
	for (r=0;r<rows.length ;r++ )
	{
		flds=zXPath.selectNodes(rows[r],"*",null);
		hr=e.insertRow(-1);
		hr.appendChild(document.createElement('td'));
		for (i=1;i<flds.length ;i++ )
		{
			cell=hr.appendChild(document.createElement('td'));
			cell.innerHTML=zXPath.selectSingleNode(flds[i],".",null).text;
		}
		cell=hr.appendChild(document.createElement('td'));
		cell.innerHTML='<img class=clickable src="" alt="[Edit]" onClick="showRecord(\''+zXPath.selectSingleNode(flds[0],".",null).text+'\');">';
		cell=hr.appendChild(document.createElement('td'));
		cell.innerHTML='<img class=clickable src="" alt="[Del]" onClick="delRecord(\''+zXPath.selectSingleNode(flds[0],".",null).text+'\');">';
	}
}

function showRecord(id){
	
}

function getContent(sXML,sXSLPath){

	screen = new XML(sXML);
	layout = new XSLT(sXSLPath);
	h=layout.transform(screen,null);
	return h

}

function initObject(objname){

	isInit=eval('typeof '+objname+'=="undefined"?false:true');
	if (!isInit)
	{
		//get functions file for methods first
		xml='<rq>';
		xml+='<rqname>loadfile</rqname>';
//		xml+='<token>' + Session.sessionId + '</token>';
		xml+='<file>scripts/' + objname + '.js</file>';
		xml+='</rq>';
		sRet = sendTran(xml);
		loadCode(sRet);

		//now get object
		xml='<rq>';
		xml+='<rqname>initobject</rqname>';
//		xml+='<token>' + Session.sessionId + '</token>';
		xml+='<name>' + objname + '</name>';
		xml+='</rq>';
		sRet = sendTran(xml);
		if (sRet=='')
		{
			alert('Object '+objname+' failed to load.');
		}
		else
		{
			loadCode(sRet);
		}
//		alert(eval('typeof '+objname));
	}
	else
	{
		//object already exists
		//alert(objname + ' already exists');
	}

}

function loadCode(code) {
  var dj_global = this; // global scope reference
  if (window.execScript) {
    window.execScript(code); // eval in global scope for IE
    return null; // execScript doesn’t return anything
  }
  return dj_global.eval ? dj_global.eval(code) : eval(code);
}

function getNodeText(oX, sXPath, varin){
	nodeText=null;
	var oNode=zXPath.selectSingleNode(oX,sXPath,null);
	if (oNode)
	{
		nodeText=oNode.text;
		return true;
	}
	else
	{
		return false;
	}
}
