var g_debug = ((window.top.location.href.indexOf('67.104.129') != -1) ? true : false);


/* XML */
function dfGetXMLBySQL(recordType, viewListSqlQuery, pageSize, pageNum, xmlOption)
{
	var objXMLHTTP = new ActiveXObject('MSXML2.XMLHTTP.4.0');
	var url = getTopMostWindow().g_baseURI + 'EGN/JSP/dfGetXMLBySQL.jsp?recordType=' + recordType + '&pageSize=' + pageSize + '&pageNum=' + pageNum + '&xmlOption=' + xmlOption;
	objXMLHTTP.Open('POST', url, false);
	objXMLHTTP.send(viewListSqlQuery);
	var retObj = null;
	try
	{
		retObj = dfLoadXml(objXMLHTTP.responseText);
		if (!retObj.xml) retObj = null;
	}
	catch(e){}
	return retObj;
}

function dfGetXMLByPK(recordType, recordKey, xmlOption)
{
	var objXMLHTTP = new ActiveXObject('MSXML2.XMLHTTP.4.0');
	var url = getTopMostWindow().g_baseURI + 'EGN/JSP/dfGetXMLByPK.jsp?recordType=' + recordType + '&recordKey=' + recordKey + '&xmlOption=' + xmlOption;
	objXMLHTTP.Open('POST', url, false);
	objXMLHTTP.send();
	var retObj = null;
	try
	{
		retObj = dfLoadXml(objXMLHTTP.responseText);
		if (!retObj.xml) retObj = null;
	}
	catch(e){}
	return retObj;
}

function getXMLfromURL(URL, sendBody)
{
	try
	{
		var objXMLHTTP = new ActiveXObject('MSXML2.XMLHTTP.4.0');
		objXMLHTTP.open('POST', URL, false);
		objXMLHTTP.Send(sendBody);	
		var res = objXMLHTTP.responseText;
		if (res == null) return false;
		//alert("URL : " + URL + "\n" + "SEND : " + sendBody + "\n" + "RES: " + res);
		xObj = dfLoadXml(getCleanXML(removeWhiteSpace(res)));
		if (xObj.xml)
		{
			if (xObj.selectSingleNode('/d'))
			{
				var msgNode = xObj.selectSingleNode('/d/err');
				if (msgNode)
				{
					alert(msgNode.firstChild.nodeValue);
					return false;
				}
			}
			return xObj;
		}
		else
		{
			if (g_debug) alert(URL + ' returns:\n' + res);
			return false;
		}
	}
	catch(e) 
	{
		alert("Error : " + e.description);
		window.status = "Done";
		return false;
	}
}
	
function df_createXMLObj()
{
	return new ActiveXObject('MSXML2.DOMDocument.4.0');
}
	
function dfLoadXml(xmlname, alwaysReload)
{
	var xObj = new ActiveXObject('MSXML2.DOMDocument.4.0');
	xObj.setProperty("NewParser", true);
	xObj.async = false;
	xObj.validateOnParse = true;
	if (xmlname.indexOf("<") == -1) // file
	{
		if (xmlname.indexOf('http://') == -1 && xmlname.indexOf(getTopMostWindow().g_baseURI) == -1)
			xmlname = getTopMostWindow().g_baseURI + xmlname;
		if (xmlname.indexOf(".xsl") == -1) // XML file
		{
		}
		else // XSL file
		{
				xObj.setProperty('SelectionNamespaces', 
				'xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:dfxsl="dfxsl" xmlns:DF="DF"');
		}
		if (alwaysReload || g_debug)
			xObj.load(xmlname);
		else
		{
			var objXMLHTTP = new ActiveXObject('MSXML2.XMLHTTP.4.0');
			objXMLHTTP.Open('GET', xmlname, false);
			objXMLHTTP.setRequestHeader('encoding', 'ISO-8859-1');
			objXMLHTTP.setRequestHeader('content-type', 'text/xml');
			objXMLHTTP.send();
			xObj.loadXML(objXMLHTTP.responseXML.xml);
		}
	}
	else // string
	{
		if (xmlname.indexOf("xsl:") == -1) // XML string
		{
		}
		else // XSL string
		{
				xObj.setProperty('SelectionNamespaces', 
				'xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:dfxsl="dfxsl" xmlns:DF="DF"');
		}
		xObj.loadXML(xmlname);
	}
	if (xObj.parseError.errorCode != 0) 
	{
				var errmsg = "";
				if (xmlname.indexOf("<") == -1) errmsg += "file: " + xmlname + ", ";
				errmsg += "line:" + xObj.parseError.line 
				+ ", linepos:" + xObj.parseError.linepos 
				+ ", reason:" + xObj.parseError.reason
				+ ", srcText:" + xObj.parseError.srcText.substr(xObj.parseError.linepos - 100, 200)
				+ ", srcCharCode:" + xObj.parseError.srcText.charCodeAt(xObj.parseError.linepos - 1);
				if (g_debug) alert('XML parsing error: ' + errmsg);
		xObj = null;
	}
	return xObj;
}

function dfMergeXML(xmlTarget, xmlSource, xpathTarget, xpathSource, removeFlag, beforeNode)
{
	if (removeFlag && xmlTarget.selectNodes(xpathSource))
		xmlTarget.selectNodes(xpathSource).removeAll();
	if (xmlSource)
	{
		var theNodeTargets = xmlTarget.selectNodes(xpathTarget);
		for (var jIndex = 0; jIndex < theNodeTargets.length; jIndex++)
		{
			var theNodeTarget = theNodeTargets[jIndex];
			var theNodeSource = xmlSource.selectNodes(xpathSource);
			for (var iIndex = 0; iIndex < theNodeSource.length; iIndex++)
			{
				var theInsertingNode = theNodeSource.item(iIndex).cloneNode(true);
				var theInsertBeforeNode = theNodeTarget.childNodes.item(0);
				if (beforeNode != null && beforeNode != "" && theNodeTarget.selectSingleNode(beforeNode))
				{
					theInsertBeforeNode = theNodeTarget.selectSingleNode(beforeNode);
					theNodeTarget.insertBefore(theInsertingNode, theInsertBeforeNode);
				}
				else theNodeTarget.appendChild(theInsertingNode);
			}
		}
	}
}

function dfImportXSL(xslObj, importedXslFilePath)
{
	var tmpObj = dfLoadXml('<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1"><xsl:import href="' + getTopMostWindow().g_baseURI + importedXslFilePath + '"/></xsl:stylesheet>');
	var rootObj = xslObj.selectSingleNode('/xsl:stylesheet');
	rootObj.insertBefore(tmpObj.selectSingleNode('/xsl:stylesheet/xsl:import'), rootObj.firstChild);
}

function dfTransform(xmlObj, xslObj)
{
	return unescape(xmlObj.transformNode(xslObj))
}

function setXSLVar(objXSL, varName, varValue, isText)
{
	var pathNode = objXSL.selectSingleNode('xsl:stylesheet/xsl:variable[@name="' + varName + '"]');
	if (pathNode)
	{
		if (isText) pathNode.text = varValue;
		else pathNode.setAttribute('select', varValue);
	}
}

/* logon */
function doLogon()
{
	try
	{
		var uid = document.getElementById('inputUid').value;
		var pwd = document.getElementById('inputPwd').value;
		if (uid == '' || pwd == '') return alert('Please enter your User ID and Password!');
		document.getElementById('hiddenUid').value = uid;
		document.getElementById('hiddenPwd').value = ((g_useMD5 == '1') ? MD5(pwd) : pwd);
		document.getElementById('formLogon').submit();
	} catch(e) { alert('doLogon: ' + e.description); }
}

/* blankForms */
function TocExpandIt(el)
{
	try
	{
		divID = el + 'Child';
		imgID = el;
		if(document.getElementById(divID).style.display=='none')
		{
			document.getElementById(divID).style.display = 'block';
			document.getElementById(imgID).src='APP/IMG/dfPdf/bssctoc2.gif';
		}
		else
		{
			document.getElementById(divID).style.display = 'none';
			document.getElementById(imgID).src='APP/IMG/dfPdf/bssctoc1.gif';	
		}
	}
	catch(e)
	{
		if(DFEngine.debugMode) alert(e.description + " in TocExpandIt");
	}
}

/* frames */
function getTopMostWindow()
{
	try
	{
		var objWin = window.top;
		for(;;)
		{
			if (objWin.opener == null) break;
			objWin = objWin.opener;
		}
		for(;;)
		{
			if (objWin == objWin.parent.top) break;
			objWin = objWin.parent.top;
		}
		return objWin.top;
	} catch(e) { alert('getTopMostWindow: ' + e.description); }
}

function getGlobalStatic()
{
	var objWin = null;
	try
	{
		objWin = getTopMostWindow().globalStaticFrame;
	} catch(e) { alert('getGlobalStatic: ' + e.description); }
	return objWin;
}

function toggleMenuItem(objMenu)
{
	try
	{
		var grpName = objMenu.getAttribute('grp');
		
		var grpOpened;
		if (objMenu.getAttribute('opened') == '1')
		{
			grpOpened = true;
			objMenu.setAttribute('opened', '0');
			objMenu.src = 'APP/IMG/dfLeftPanel/arrow_down.gif';
		}
		else
		{
			grpOpened = false;
			objMenu.setAttribute('opened', '1');
			objMenu.src = 'APP/IMG/dfLeftPanel/arrow_up.gif';
		}
		
		var trSubItems = document.getElementsByTagName('TR');
		for (var i = 0; i < trSubItems.length; i++)
		{
			if (grpName == trSubItems[i].getAttribute('grp'))
			{
				trSubItems[i].style.display = ((grpOpened) ? 'none' : '');
			}
		}
		
	} catch(e) { alert('toggleMenuItem: ' + e.description); }
}

function showIframe(objIFrame)
{
	try
	{
		if (!objIFrame) return;
		objIFrame.style.width = window.document.body.clientWidth * 0.8;
		objIFrame.style.height = window.document.body.clientHeight * 0.8;
		objIFrame.style.left = (window.document.body.clientWidth - parseInt(objIFrame.style.width)) / 2;
		objIFrame.style.top = (window.document.body.clientHeight - parseInt(objIFrame.style.height)) / 2;
		objIFrame.style.display = '';
	} catch(e) { alert('showIframe: ' + e.description); }
}

function hideIframe(objIFrame)
{
	try
	{
		objIFrame.style.display = 'none';
	} catch(e) { alert('hideIframe: ' + e.description); }
}

function showFrame(frameName)
{
	try
	{
		//if (frameName == 'processingFrame') return;
	
		if (frameName != '' && getTopMostWindow().document.getElementById(frameName))
		{
			if (getTopMostWindow().g_navpos == 'top')
				getTopMostWindow().document.getElementById('objFrameset').rows = getTopMostWindow().document.getElementById(frameName).getAttribute('rowsettings');
			else
			{
				getTopMostWindow().document.getElementById('objFrameset').cols = getTopMostWindow().document.getElementById(frameName).getAttribute('colsettings');
			}
		}
	} catch(e) { alert('showFrame: ' + frameName + ',' + e.description); }
}

function isProcessing()
{
	try
	{
		var curSettings;
		if (getTopMostWindow().g_navpos == 'top')
			curSettings = window.top.document.getElementById('objFrameset').rows;
		else
			curSettings = window.top.document.getElementById('objFrameset').cols;
		return (curSettings.lastIndexOf(',*') == (curSettings.length - 2));

	} catch(e) { alert('isProcessing: ' + e.description); }
}

function gotoFrame(frameName)
{
	try
	{
		// To stop switching frames when something is in process.

		if (isProcessing()) return;
			
		var srcFrame = window.top.document.getElementById(frameName).src;
		var isExternal = window.top.document.getElementById(frameName).getAttribute('external');
		var isRefresh = window.top.document.getElementById(frameName).getAttribute('refresh');
		var url = window.top.document.getElementById(frameName).getAttribute('href');
		url = url.replace(/#USERKEY#/ig, getTopMostWindow().g_userKey);
		url = url.replace(/#OFFICEKEY#/ig, getTopMostWindow().g_officeKey);
		url = url.replace(/#USERID#/ig, getTopMostWindow().g_userID);
		url = url.replace(/#PASSWORD#/ig, getTopMostWindow().g_userPwd);
		if (isExternal == '1')
		{
			if (srcFrame == 'about:blank')
				window.top.document.getElementById(frameName).src = url;
			showFrame(frameName);
		}
		else
		{
			var isSpecialOpen = window.top.document.getElementById(frameName).getAttribute("specialOpen");
			
			/*if(isSpecialOpen == '1')
			{
				url = url.replace('?frameName=frmWebBuilder','');
				window.open(url);
				return;
			}*/
			
			var replaceString = "?frameName=" + frameName;
			
			if(isSpecialOpen == '1')
			{
					url = url.replace(replaceString,'');
					window.open(url);
					return;
			}
			
			if (isRefresh == '1' || srcFrame == 'about:blank')
			{
				showFrame('processingFrame');
				window.top.document.getElementById(frameName).src = url;
			}
			else
			{
				showFrame(frameName);
			}
		}

		//var btnTabs = document.getElementsByName('btnTabs');
		/*
		var btnTabs = document.getElementsByTagName('TD');
		alert('x : ' + btnTabs.length + 'Frm : ' + frameName);
		for (var i = 0; i < btnTabs.length; i++)
		{
			if (btnTabs[i].getAttribute('curFrameName'))
			{
				//if (frameName.indexOf(btnTabs[i].id) == 0)
				if (btnTabs[i].getAttribute('grp') != '')
				{
					var tdObj = btnTabs[i].childNodes(0).childNodes(0).childNodes(0).childNodes(0);
					if (frameName == btnTabs[i].id)
					{
						btnTabs[i].className = 'tabSubItemChosen';
						alert(tdObj);
					}
					else
						btnTabs[i].className = 'tabSubItem';
				}
				else
				{
					if (frameName == btnTabs[i].id)
						btnTabs[i].className = 'tabChosen';
					else
						btnTabs[i].className = 'tabNormal';
				}
			}
		}
		*/
		var btnTables = document.getElementsByName("tblMenuItem");
		for (var i = 0; i < btnTables.length; i++)
		{
			var parentTD = btnTables[i].parentElement;
			var childTD1 = btnTables[i].childNodes.item(0).childNodes.item(0).childNodes.item(0);
			var childTD2 = btnTables[i].childNodes.item(0).childNodes.item(0).childNodes.item(1);
			if(parentTD.getAttribute("curFrameName") == frameName)
			{
				if((parentTD.getAttribute("grp") != null) && (parentTD.getAttribute("grp") != undefined) && (parentTD.getAttribute("grp") != ''))
				{
					//Sub menu items
					childTD1.className = "leftPanelSubItemSelected_1";
					childTD2.className = "leftPanelArrowSelected";
				}
				else	
				{	
					//Main Menu
					childTD1.className = "leftPanelMainItemSelected_1";
					childTD2.className = "leftPanelMainItemSelected_1";	
				}
			}
			else
			{
				if((parentTD.getAttribute("grp") != null) && (parentTD.getAttribute("grp") != undefined) && (parentTD.getAttribute("grp") != ''))
				{
					childTD1.className = "leftPanelSubItem_1";
					childTD2.className = "leftPanelArrow";
				}
				else
				{	
					childTD1.className = "leftPanelMainItem_1";
					childTD2.className = "leftPanelMainItem_1";
				}	
			}
		}
	} catch(e) { alert('gotoFrame: ' + e.description); }
}

/* top frame */

function doLogoff()
{
	try
	{
		window.top.location = 'EGN/JSP/processLogon.jsp?logoff=1';
	} catch(e) { alert('doLogoff: ' + e.description); }
}

/* view list + detail + report */

function setRefreshXFDF()
{	
	try
	{
		return;
		window.setTimeout('if (g_isXFDFModified == "1") window.location.reload(); setRefreshXFDF()', 3000);
	}
	catch(e)
	{
		alert(e.description + " in setRefreshXFDF");
	}
}

function isXFDFModified()
{	
	try
	{
		document.getElementById('objXfdfDirty').src = 'EGN/JSP/processXFDFState.jsp';
	}
	catch(e)
	{
		alert(e.description + " in isXFDFModified");
	}
}


function handleChangeXSL(usage, xslFile)
{
	try
	{
	//alert(usage + ', ' + xslFile);
		showFrame('processingFrame');
		switch(usage)
		{
			case 'res': 
				window.location.href = 'viewList.jsp?fromFrame=' + g_fromFrame + '&frameName=' + g_frameName + '&recordType=' + g_recordType + '&permXML=' + g_permXML + '&schXML=' + g_schXML + '&sortXML=' + g_sortXML + '&xslFile=' + xslFile;
				break;
			case 'det': 
				window.location.href = 'viewDetail.jsp?recordType=' + g_recordType + '&recordKey=' + g_recordKey + '&xslFile=' + xslFile;
				break;
			case 'rpt': 
				window.location.href = 'report.jsp?recordType=' + g_recordType + '&recordKeys=' + g_recordKeys + '&xslFile=' + xslFile;
				break;
		}
	} catch(e) { alert('handleChangeXSL: ' + e.description); }
}

function applyFilter()
{
	try
	{
		var schXML = getSchXML();
		if (schXML == g_schXML) return;
		showFrame('processingFrame');
		window.location.href = 'viewList.jsp?fromFrame=' + g_fromFrame + '&frameName=' + g_frameName + '&recordType=' + g_recordType + '&permXML=' + g_permXML + '&schXML=' + schXML + '&sortXML=' + g_sortXML + '&xslFile=' + g_xslFile;
	} catch(e) { alert('applyFilter: ' + e.description); }
}

function resetFilter()
{
	try
	{
		showFrame('processingFrame');
		window.location.href = 'viewList.jsp?fromFrame=' + g_fromFrame + '&frameName=' + g_frameName + '&recordType=' + g_recordType + '&permXML=' + g_permXML + '&sortXML=' + g_sortXML + '&xslFile=' + g_xslFile;
	} catch(e) { alert('resetFilter: ' + e.description); }
}


function handleSort(sortFld, curOrder)
{
	try
	{
		var newOrder = ((curOrder == '' || curOrder == 'desc') ? 'asc' : 'desc');
		var sortXML = '<sort sortby="' + sortFld + '" order="' + newOrder + '"/>';
		showFrame('processingFrame');
		window.location.href = 'viewList.jsp?fromFrame=' + g_fromFrame + '&frameName=' + g_frameName + '&recordType=' + g_recordType + '&permXML=' + g_permXML + '&schXML=' + g_schXML + '&sortXML=' + sortXML + '&xslFile=' + g_xslFile;
	} catch(e) { alert('gotoPage: ' + e.description); }
}

function gotoPage(pagenum)
{
	try
	{
		showFrame('processingFrame');
		window.location.href = 'viewList.jsp?fromFrame=' + g_fromFrame + '&frameName=' + g_frameName + '&recordType=' + g_recordType + '&permXML=' + g_permXML + '&pageNum=' + pagenum + '&schXML=' + g_schXML + '&sortXML=' + g_sortXML + '&xslFile=' + g_xslFile;
	} catch(e) { alert('gotoPage: ' + e.description); }
}

function gotoDetailFarms(recordType, recordKey)
{
	try
	{
		showFrame('processingFrame');
		document.getElementById('objViewDetail').src = 'viewDetailFarms.jsp?recordType=' + recordType + '&recordKey=' + recordKey;
	} catch(e) { alert('gotoDetail: ' + e.description); }
}

function gotoDetail(recordType, recordKey)
{
	try
	{
		showFrame('processingFrame');
		document.getElementById('objViewDetail').src = 'viewDetail.jsp?recordType=' + recordType + '&recordKey=' + recordKey;
	} catch(e) { alert('gotoDetail: ' + e.description); }
}

function gotoEdit(recordType, recordKey, parentKey)
{
	try
	{
		if (g_newObjPrt != '' && recordKey == '') parentKey = g_newObjPrt;
		showFrame('processingFrame');
		document.getElementById('objDataEntry').src = 'dataEntry.jsp?recordType=' + recordType + '&recordKey=' + recordKey + ((parentKey != undefined) ? '&parentKey=' + parentKey : '');
	} catch(e) { alert('gotoEdit: ' + e.description); }
}

function gotoDelete(recordType, recordKey, revision)
{
	try
	{
		if (!window.confirm('Are you sure you want to delete this item?')) return;
		var syncXML = '<?xml version="1.0" encoding="ISO-8859-1"?><d><r' + recordType + ' k="' + recordKey + '" rv="' + revision + '" s="3"/></d>';
		document.getElementById('formDataEntry').syncXML.value = syncXML;
		document.getElementById('formDataEntry').action.value = '3';
		document.getElementById('formDataEntry').submit();
	} catch(e) { alert('gotoDelete: ' + e.description); }
}

function gotoUndelete(recordType, recordKey, revision)
{
	try
	{
		var syncXML = '<?xml version="1.0" encoding="ISO-8859-1"?><d><r' + recordType + ' k="' + recordKey + '" rv="' + revision + '" s="4"/></d>';
		document.getElementById('formDataEntry').syncXML.value = syncXML;
		document.getElementById('formDataEntry').action.value = '4';
		document.getElementById('formDataEntry').submit();
	} catch(e) { alert('gotoUndelete: ' + e.description); }
}

function gotoAgentViewList(officeKey)
{
	try
	{
		showFrame('processingFrame');
		document.getElementById('objUserViewList').src = 'viewList.jsp?frameName=' + g_frameName + '&recordType=3&newObjPrt=' + officeKey + '&permXML=<prt k="' + officeKey + '"/>';
		document.getElementById('objViewList').style.display = 'none';
		document.getElementById('objUserViewList').style.display = '';
	} catch(e) { alert('gotoAgentViewList: ' + e.description); }
}

function closeAgentViewList()
{
	try
	{
		parent.document.getElementById('objViewList').style.display = '';
		parent.document.getElementById('objUserViewList').style.display = 'none';
	} catch(e) { alert('closeAgentViewList: ' + e.description); }
}

function showDataEntry()
{
	try
	{
		if (g_frameName != '') showFrame(g_frameName);
		else
		{
			if (parent.top.g_navpos == 'top')
				parent.top.document.getElementById('objFrameset').rows = parent.top.document.getElementById(parent.g_frameName).getAttribute('rowsettings');
			else
				parent.top.document.getElementById('objFrameset').cols = parent.top.document.getElementById(parent.g_frameName).getAttribute('colsettings');
			parent.document.getElementById('objViewList').style.display = 'none';
			parent.document.getElementById('objDataEntry').style.display = '';
		}

		var dataEntryFields = document.getElementsByName('dataEntryFields');
		for (var i = 0; i < dataEntryFields.length; i++)
			if (dataEntryFields[i].getAttribute('targetFldKeys'))
			doConditionalMandatoryChecking(dataEntryFields[i]);

	} catch(e) { alert('showDataEntry: ' + e.description); }
}

function showDetail()
{
	try
	{
		if (parent.top.g_navpos == 'top')
			parent.top.document.getElementById('objFrameset').rows = parent.top.document.getElementById(parent.g_frameName).getAttribute('rowsettings');
		else
			parent.top.document.getElementById('objFrameset').cols = parent.top.document.getElementById(parent.g_frameName).getAttribute('colsettings');

		parent.document.getElementById('objViewList').style.display = 'none';
		parent.document.getElementById('objViewDetail').style.display = '';
	} catch(e) { alert('showDetail: ' + e.description); }
}

function closeDetail()
{
	try
	{
		parent.document.getElementById('objViewDetail').style.display = 'none';
		parent.document.getElementById('objViewList').style.display = '';
	} catch(e) { alert('closeDetail: ' + e.description); }
}

function navigateImage(divImages, curIdx, direction)
{
	try
	{
		var newIdx = (1 * curIdx + 1 * direction + 1 * divImages.length) % (1 * divImages.length);
		divImages[curIdx].style.display = 'none';
		divImages[newIdx].style.display = '';
	} catch(e) { alert('navigateImage: ' + e.description); }
}

function getIdxByValue(objArr, value)
{
	try
	{
		for (var i in objArr)
			if (objArr[i] == value) return i;
	/*
		for (var i = 0; i < objArr.length; i++)
			if (objArr[i] == value) return i;
	*/
		return -1;
	} catch(e) { alert('getIdxByValue: ' + e.description); }
}

function handleCheckItem(objCheckbox)
{
	try
	{
		var itemVal  = objCheckbox.value;
		var rkval = objCheckbox.rkval;
		var collectionsXML = getGlobalStatic().g_CollectionsXML;
		var oNode  = collectionsXML.selectSingleNode("/d/item[@rt='"+ g_recordType + "'][@k='"+ itemVal + "']");
		if (objCheckbox.checked)
		{
			if(!oNode)
			{
				var objRoot = collectionsXML.documentElement;
				var oNewNode = collectionsXML.createElement("item");
				objRoot.appendChild(oNewNode);
				oNewNode.setAttribute("k",itemVal);
				oNewNode.setAttribute("rt",g_recordType);
				if(rkval!=undefined)
					oNewNode.setAttribute("rk",rkval);
				
			}
		}
		else
		{
			if(oNode)
			{
				var oParent = oNode.parentNode;
				oParent.removeChild(oNode);
			}
			var objCheckAll = document.getElementById("cbxAll");
				if(objCheckAll)
					objCheckAll.checked = false;
		}
		if (document.getElementById('span_Counter') != null)
			document.getElementById('span_Counter').innerHTML = collectionsXML.selectNodes("/d/item[@rt='"+ g_recordType +"']").length;
	
	}
	catch(e)
	{
		alert(e.description +"in handleCheckItem");
	}
}
function initCheckboxes()
{
	try
	{
			
		var cbxItmes = document.getElementsByName('cbxItmes');
		for (var i = 0; i < cbxItmes.length; i++)
		{
			if(cbxItmes[i].checked)
				cbxItmes[i].checked = false;
		}
		if (document.getElementById('span_Counter') != null)
			document.getElementById('span_Counter').innerHTML = getGlobalStatic().g_CollectionsXML.selectNodes("/d/item[@rt='"+ g_recordType +"']").length
	}
	catch(e)
	{
		 alert('initCheckboxes: ' + e.description);
	}
}

function handleCheckAll(objCheckAll)
{
	try
	{
		var cbxItmes = document.getElementsByName('cbxItmes');
		for (var i = 0; i < cbxItmes.length; i++)
		{
			cbxItmes[i].checked = objCheckAll.checked;
			handleCheckItem(cbxItmes[i]);
		}
	} catch(e) { alert('handleCheckAll: ' + e.description); }
}

function handleClearCollection()
{
	try
	{
		var collectionsXML = getGlobalStatic().g_CollectionsXML;
		var objNodes  = collectionsXML.selectNodes("/d/item[@rt='"+ g_recordType +"']")
		var iSelected  = objNodes.length;
		if (iSelected == 0) return;
		if (!window.confirm('Do you want to clear the ' + iSelected + ' selected item' + ((iSelected == 1) ? '' : 's') + '?')) return;
		collectionsXML.selectNodes("/d/item[@rt='"+ g_recordType +"']").removeAll();
		
		initCheckboxes();
		document.getElementById('cbxAll').checked = false;
	}
	catch(e)
	{ 
		alert('handleClearCollection: ' + e.description);
	}
}

function handlePrint()
{
	try
	{
		alert("Please click on Page Setup and change the document margins to .25 before printing");
		g_printHTML = document.getElementById('printDiv').innerHTML;
		//g_printHTML = contentDiv.innerHTML;
		var newWin = window.open('print.htm?isPreview=' + false + '&isPortrait=' + true);
	}
	catch(e)
	{
		 alert('handlePrint: ' + e.description);
  }
}

function handlePrintPreview()
{
	try
	{
		alert("Please click on Page Setup and change the document margins to .25 before printing");
		g_printHTML =document.getElementById('printDiv').innerHTML;
		//g_printHTML = contentDiv.innerHTML;
		var newWin = window.open('print.htm?isPreview=' + true + '&isPortrait=' + true);
	}
	catch(e)
	{
		alert(e.description +"in handlePrintPreview");
	}
}

function chooseReport()
{
	try
	{
		if (getGlobalStatic().g_CollectionsXML.selectNodes("/d/item[@rt='"+ g_recordType +"']").length == 0)
		{
			alert('Please choose some items.');
			return;
		}
		if (document.getElementById('objXSLSelector').src == 'about:blank')
		{
			var url = 'xslSelector.jsp?recordType=' + g_recordType + '&usage=rpt';
			if (window.g_selectedXSLs != undefined) url += '&selectedXSLs=' + g_selectedXSLs;
			document.getElementById('objXSLSelector').src = url;
		}
		showIframe(document.getElementById('objXSLSelector'));
	} catch(e) { alert('chooseReport: ' + e.description); }
}

function showReport()
{
	try
	{
		//return;
		if (parent.top.g_navpos == 'top')
			parent.top.document.getElementById('objFrameset').rows = parent.top.document.getElementById(parent.g_frameName).getAttribute('rowsettings');
		else
			parent.top.document.getElementById('objFrameset').cols = parent.top.document.getElementById(parent.g_frameName).getAttribute('colsettings');

		parent.document.getElementById('objViewList').style.display = 'none';
		parent.document.getElementById('objReport').style.display = '';
	} catch(e) { alert('showReport: ' + e.description); }
}

function closeReport()
{
	try
	{
		parent.document.getElementById('objReport').style.display = 'none';
		parent.document.getElementById('objViewList').style.display = '';
	} catch(e) { alert('closeReport: ' + e.description); }
}

function onclickButton(id)
{
	//try
	//{
		switch(id)
		{
			case 'refresh': window.location.reload(); break;
			case 'clearcollection': handleClearCollection(); break;
			case 'print': handlePrint(); break;
			case 'preview':handlePrintPreview(); break;
			case 'choose_report': chooseReport(); break;
			case 'newobject': gotoEdit(g_recordType, ''); break;
			case 'email':handleEmail();break;
			case 'bulkupdate': handleBulkUpdate();break;
			case 'linktofarm': handleLinkToFarm();break;
			case 'csvexport': handleCSVExport();break;
			}
	//} catch(e) { alert('onclickButton: ' + e.description); }
}


/* XSL selector */
function handleXSLSelect(usage)
{
	try
	{
		switch(usage)
		{
			case 'rpt': 
				var xslFiles = '';
				var contactKey = '';
				var xslCheckboxes = document.getElementsByName('xslCheckboxes');
				for (var i = 0; i < xslCheckboxes.length; i++)
					if (xslCheckboxes[i].checked)
					{ 
						if (xslFiles != '') xslFiles += ',';
						xslFiles += xslCheckboxes[i].value;
					}
				parent.document.getElementById('objXSLSelector').style.display = 'none';
				if (xslFiles == '') return;
				var contactKey = '';
				if(document.getElementById("browseContactTR").getAttribute("isInit") == '1')
					var contactKey = document.getElementById("drpContact").value;
				showFrame('processingFrame');
				var collectionsXML = getGlobalStatic().g_CollectionsXML;
				var objNodes  = collectionsXML.selectNodes("/d/item[@rt='"+ g_recordType +"']")
				var recordKeysStr = '';
				for(var count=0;count<objNodes.length;count++)
				{
					var objNode  = objNodes.item(count);
					recordKeysStr += objNode.getAttribute("k");
					if(count != objNodes.length-1)
						recordKeysStr += ",";
				}

				var url = 'report.jsp?recordType=' + parent.g_recordType + '&recordKeys=' + recordKeysStr + '&xslFiles=' + xslFiles + '&contactKey=' + contactKey;
				if (parent.document.getElementById('objReport'))
					parent.document.getElementById('objReport').src = url;
				else
					parent.location.href = url;
				break;
		}
	} catch(e) { alert('handleXSLSelect: ' + e.description); }
}

function handleXSLCancel(usage)
{
	try
	{
		switch(usage)
		{
			case 'rpt': 
				parent.document.getElementById('objXSLSelector').style.display = 'none';
				break;
			case 'frm':
				parent.document.getElementById('objFarm').style.display = 'none';
				break;
		}
	} catch(e) { alert('handleXSLCancel: ' + e.description); }
}


/* search */
function initSearch()
{
	try
	{
		var rdoRtypes = document.getElementsByName('rdoRtypes');
		rdoRtypes[0].click();
	} catch(e) { alert('initSearch: ' + e.description); }
}

function searchLoaded()
{
	try
	{
		parent.document.getElementById('tr_searchControl').style.visibility = '';
	} catch(e) { alert('searchLoaded: ' + e.description); }
}

function handleChangeSearch(recordType)
{
	try
	{
		if (document.getElementById('span_Counter') != null)
			document.getElementById('span_Counter').innerHTML = '?';
		document.getElementById('tr_searchControl').style.visibility = 'hidden';
		document.getElementById('objSearch').src = 'search.jsp?recordType=' + recordType;
	} catch(e) { alert('handleChangeSearch: ' + e.description); }
}

function backToSearch(fromFrame)
{
	try
	{
		var navPanelTabObj;
		if (getTopMostWindow().g_navpos == 'top')
			navPanelTabObj = getTopMostWindow().topFrame.document.getElementById(fromFrame);
		else
			navPanelTabObj = getTopMostWindow().leftFrame.document.getElementById(fromFrame);
		navPanelTabObj.setAttribute('curFrameName', fromFrame);
		showFrame(fromFrame);
	} catch(e) { alert('backToSearch: ' + e.description); }
}

function lastSearchResult(toFrame)
{
	try
	{
		var navPanelTabObj;
		if (getTopMostWindow().g_navpos == 'top')
			navPanelTabObj = getTopMostWindow().topFrame.document.getElementById(toFrame);
		else
			navPanelTabObj = getTopMostWindow().leftFrame.document.getElementById(toFrame);
		navPanelTabObj.setAttribute('curFrameName', toFrame + '_result');
		showFrame(toFrame + '_result');
	} catch(e) { alert('lastSearchResult: ' + e.description); }
}

function doSearch(recordType)
{
	try
	{
		var navPanelTabObj;
		if (getTopMostWindow().g_navpos == 'top')
			navPanelTabObj = getTopMostWindow().topFrame.document.getElementById(parent.g_frameName);
		else
			navPanelTabObj = getTopMostWindow().leftFrame.document.getElementById(parent.g_frameName);
		var resultFrameName = parent.g_frameName + '_result';
		navPanelTabObj.setAttribute('curFrameName', resultFrameName);

		var schXML = getSchXML();
		
		//return alert(schXML);
		//if (schXML == '') return alert('Please specify your search criteria.');
		parent.document.getElementById('btnShowResult').style.display = '';
		showFrame('processingFrame');
		parent.top.document.getElementById(resultFrameName).src = 'about:blank';
		parent.top.document.getElementById(resultFrameName).src = 'viewList.jsp?fromFrame=' + parent.g_frameName + '&frameName=' + resultFrameName + '&recordType=' + recordType + '&schXML=' + schXML;
	} catch(e) { alert('doSearch: ' + e.description); }
}

function clearSearch()
{
	try
	{
		formSearch.reset();
	} catch(e) { alert('clearSearch: ' + e.description); }
}

function getCount(recordType)
{
	try
	{
		var schXML = getSchXML();
		//return alert(schXML);
		document.getElementById('countIFrame').src = 'about:blank';
		document.getElementById('countIFrame').src = 'EGN/JSP/processCount.jsp?schXML=<d><sch rt="' + recordType + '">' + schXML + '</sch></d>';
	} catch(e) { alert('getCount: ' + e.description); }
}

function isLeapYear(year)
{
	return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);
}

function validateDate(objInput)
{
	try
	{
		var value = objInput.value;
		var format = objInput.title;
		var regexp = new RegExp(objInput.getAttribute('regExp'));
		var dateOrder = objInput.getAttribute('dateOrder');
		var dateVal = '';
		
		if (regexp.test(value))
		{
			var dateArray = value.match(regexp);
			
			var year = 1 * dateArray[parseInt(dateOrder.charAt(0))];
			var month = 1 * dateArray[parseInt(dateOrder.charAt(1))];
			var day = 1 * dateArray[parseInt(dateOrder.charAt(2))];
			
			if (month < 1 || month > 12)
			{
				alert('Month must range from 1 to 12!');
				objInput.value = '';
				objInput.setAttribute('dateVal', dateVal);
				return;
			}
			
			if (day < 1 || day > 31)
			{
				alert('Day must range from 1 to 31!');
				objInput.value = '';
				objInput.setAttribute('dateVal', dateVal);
				return;
			}
			else
			{ 
				if (month == 2)
				{ 
					if (isLeapYear(year) && day > 29)
					{
						alert('In this month, day must range from 1 to 29!');
						objInput.value = '';
						objInput.setAttribute('dateVal', dateVal);
						return;
					}
					if (!isLeapYear(year) && day > 28)
					{
						alert('In this month, day must range from 1 to 28!');
						objInput.value = '';
						objInput.setAttribute('dateVal', dateVal);
						return;
					}
				}
				if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30)
				{
					alert('In this month, day must range from 1 to 30!');
					objInput.value = '';
					objInput.setAttribute('dateVal', dateVal);
					return;
				}
			}
		}
		else
		{
			alert('Date isn\'t matched with Format!\nDate Format:'+format);
			objInput.value = '';
			objInput.setAttribute('dateVal', dateVal);
			return;
		}

		dateVal += year;
		
		if (month < 10) month = '0' + month;
		dateVal += month;
		if (day < 10) day = '0' + day;
		dateVal += day;
		objInput.setAttribute('dateVal', dateVal);

	}catch(e){alert('validateDate: ' + e.description)}
}


function validateNumber(objInput)
{
	try
	{
		var val = 1 * objInput.value;
		if (isNaN(val))
		{
			alert('Must be a number!');
			objInput.value = '';
			return;
		}
		var dec = 1 * objInput.getAttribute('dec');
		val = Math.round(val * Math.pow(10, dec)) / Math.pow(10, dec);
		if (val != objInput.value) objInput.value = val;
	}catch(e){alert('validateNumber: ' + e.description)}
}

function validateTime(objInput, timePart)
{
	try
	{
		var val = 1 * objInput.value;
		if (isNaN(val))
		{
			alert('Must be a number!');
			objInput.value = '';
			return;
		}
	
		if ((timePart == 'HH' || timePart == 'H') && (val < 0 || val > 23))
		{
			alert('Must be between 0 and 23!');
			objInput.value = '';
			return;
		}
		
		if ((timePart == 'hh' || timePart == 'h') && (val < 1 || val > 12))
		{
			alert('Must be between 1 and 12!');
			objInput.value = '';
			return;
		}

		if ((timePart == 'mm' || timePart == 'm') && (val < 0 || val > 59))
		{
			alert('Must be between 0 and 59!');
			objInput.value = '';
			return;
		}
		
		
	}catch(e){alert('validateTime: ' + e.description)}
}

function getSchXML()
{
	try
	{
		var strXML = '';
		var schFields = document.getElementsByName('schFields');
		for (var i = 0; i < schFields.length; i++)
		{
			var fldKey = schFields[i].getAttribute('fldKey');
			var tagName = schFields[i].tagName;
			
			var strTmp = '';
	
			if (tagName == 'INPUT' && schFields[i].type == 'text')
			{
				strTmp += schFields[i].value;
			}
	
			if (tagName == 'SELECT')
			{
				var tp = "2";
				if(schFields[i].getAttribute("tp") == '13') tp = "13";
				var selectedOptions = schFields[i].options;
				for (var j = 0; j < selectedOptions.length; j++)
				{	
					if(tp == "13")
					{
						if (selectedOptions[j].selected && selectedOptions[j].value != '') strTmp = selectedOptions[j].value;
					}
					else
					{
						if (selectedOptions[j].selected && selectedOptions[j].value != '') strTmp += '<e' + selectedOptions[j].value + '/>';
					}
				}
			}
	
			if (tagName == 'DIV')
			{
				var objMinNum = null, objMaxNum = null, objMinDate = null, objMaxDate = null;
				var childNodes = schFields[i].childNodes;
				for (var j = 0; j < childNodes.length; j++)
				{
					if (childNodes[j].name == 'fld_' + fldKey)
					{
						if (childNodes[j].getAttribute('minNum') == '1' && childNodes[j].value != '') objMinNum = childNodes[j];
						if (childNodes[j].getAttribute('maxNum') == '1' && childNodes[j].value != '') objMaxNum = childNodes[j];
						if (childNodes[j].getAttribute('minDate') == '1' && childNodes[j].value != '') objMinDate = childNodes[j];
						if (childNodes[j].getAttribute('maxDate') == '1' && childNodes[j].value != '') objMaxDate = childNodes[j];
						if (childNodes[j].checked && childNodes[j].value != '') strTmp += '<e' + childNodes[j].value + '/>';
					}
				}

				if (objMinNum && objMaxNum && objMinNum.value != '' && objMaxNum.value != '')
				{
					if (1 * objMinNum.value > 1 * objMaxNum.value)
					{
						alert('Invalid numeric range!');
						objMinNum.value = '';
						objMaxNum.value = '';
					}
				}
				if (objMinNum && objMinNum.value != '') strTmp += '<min>' + objMinNum.value + '</min>';
				if (objMaxNum && objMaxNum.value != '') strTmp += '<max>' + objMaxNum.value + '</max>';

				if (objMinDate && objMaxDate && objMinDate.getAttribute('dateVal') != '' && objMaxDate.getAttribute('dateVal') != '')
				{
					if (objMinDate.getAttribute('dateVal') > objMaxDate.getAttribute('dateVal'))
					{
						alert('Invalid date range!');
						objMinDate.value = '';
						objMaxDate.value = '';
						objMinDate.setAttribute('dateVal', '');
						objMaxDate.setAttribute('dateVal', '');
					}
				}
				if (objMinDate && objMinDate.getAttribute('dateVal') != '') strTmp += '<min>' + objMinDate.getAttribute('dateVal') + '</min>';
				if (objMaxDate && objMaxDate.getAttribute('dateVal') != '') strTmp += '<max>' + objMaxDate.getAttribute('dateVal') + '</max>';


			}
			if (strTmp != '') strXML += '<v f="' + fldKey + '">' + strTmp + '</v>';
		}
		
		var schR2Nodes = document.getElementById('schR2Nodes');
		if (schR2Nodes)
		{
			var schNodeName = schR2Nodes.getAttribute('schNodeName');
			strTmp = '';
			var selectedOptions = schR2Nodes.options;
			for (var j = 0; j < selectedOptions.length; j++)
				if (selectedOptions[j].selected && selectedOptions[j].value != '') strTmp += '<' + schNodeName + ' k="' + selectedOptions[j].value + '"/>';
			if (strTmp != '') strXML += strTmp;
		}
		
		//alert(strXML);
		return strXML;
	}catch(e){alert('getSchXML: ' + e.description)}
}

function handleEmail()
{
		var r3XML = dfGetXMLByPK('3', getTopMostWindow().g_userKey, '0');
		
		var emailFrom = '';
		
		if(r3XML)
		{
				emailFrom = r3XML.selectSingleNode("/d/r3/v[@f='32080']").text;
		}
		
		var cfgstr = "dialogHeight: 550px; dialogWidth: 700px; scroll: Yes; unadorned: Yes; help: No; resizable: Yes; status: No";
		var arrDialogArguments = new Array();
		arrDialogArguments['objWin'] = window;
		arrDialogArguments['Title'] = 'Power Up';
		arrDialogArguments['emailFrom'] = emailFrom;
		arrDialogArguments['content'] = printDiv.innerHTML;
		var strURL = 'EmaiPopUp.htm';
		window.showModalDialog(strURL, arrDialogArguments, cfgstr);
}
/* Date Entry */

function doUploadFile(fldKey)
{
	try
	{
		
		var formFileUpload = document.getElementById('formFileUpload_' + fldKey);
		formFileUpload.action = 'fileUpload.jsp?rk=' + g_attrRK + '&fldKey=' + fldKey;
		var fileupload = document.getElementById('fileupload_' + fldKey);
		var fileName = fileupload.value;
		if (fileName == '') return;
		fileName = fileName.replace(/\//ig, '\\');
		var displayName = fileName.substring(fileName.lastIndexOf('\\') + 1, fileName.length);
		fileName = g_attrRK + '_' + fldKey + fileName.substring(fileName.lastIndexOf('.'), fileName.length);
		fileupload.name = fileName + '|' + displayName;
		formFileUpload.submit();
		
	} catch(e) { alert('doUploadFile: ' + e.description); }
}

function doDeleteFile(fldKey)
{
	try
	{
		document.getElementById('dataEntryField_' + fldKey).value = '';
		document.getElementById('tableFile_' + fldKey).style.display = 'none';
	} catch(e) { alert('doDeleteFile: ' + e.description); }
}

function doConditionalMandatoryChecking(objFld)
{
	try
	{
		if (!objFld) return;
		var sourceFldKey = objFld.getAttribute('fldKey');
		var targetFldKeys = objFld.getAttribute('targetFldKeys');
		var sourceValue = objFld.value;
		if (!sourceFldKey || !targetFldKeys) return;
		var arrTargetFldKeys = targetFldKeys.split(',');
		for (var i = 0; i < arrTargetFldKeys.length; i++)
		{
			var objTargetFld = document.getElementById('dataEntryField_' + arrTargetFldKeys[i]);
			if (!objTargetFld) continue;
			var fldKey = objTargetFld.getAttribute('fldKey');
			var depFldKey = objTargetFld.getAttribute('depFldKey');
			var depXML = objTargetFld.getAttribute('depXML');
			if (!fldKey || !depFldKey || !depXML) continue;
			if (depFldKey == sourceFldKey)
			{
				//alert(depXML + '\n' + sourceValue);
				
				var tdObj = document.getElementById('fld_td_lbl_' + fldKey);
				var isCondReq = (depXML.indexOf('<e' + sourceValue + ' req="1"/>') != -1 || depXML.indexOf('<b' + sourceValue + ' req="1"/>') != -1);
				objTargetFld.setAttribute('isReq', (isCondReq ? '1' : ''))
				tdObj.className = (isCondReq ? 'mandFieldC' : 'normalFieldC');
				
				if (depXML.indexOf('req="1"') == -1)
				{
					var trObj = document.getElementById('fld_tr_lbl_ctrl_' + fldKey);
					var isCond = (depXML.indexOf('<e' + sourceValue + '/>') != -1 || depXML.indexOf('<b' + sourceValue + '/>') != -1);
					trObj.style.visibility = (isCond ? '' : 'hidden');
				}

				//alert(trObj.innerHTML);
			}
		}
		
		
	} catch(e) { alert('doConditionalMandatoryChecking: ' + objFld.getAttribute('fldKey')); }
}

function doSearchObject(fldKey, refRtype, ideFlds, isMul, pkFld)
{
	try
	{
		if (refRtype.indexOf(',') != -1)
		{
			refRtype = document.getElementById('refRtype' + fldKey).value;
			ideFlds = document.getElementById('refRtype' + fldKey).options[document.getElementById('refRtype' + fldKey).selectedIndex].getAttribute('ideFlds');
			pkFld = document.getElementById('refRtype' + fldKey).options[document.getElementById('refRtype' + fldKey).selectedIndex].getAttribute('pkFld');
		}

		var val = document.getElementById('refInput' + fldKey).value;
		if (val == '') return;
		
		var schXML = '';
		var arrFlds = ideFlds.split(',');
		for (var i = 0; i < arrFlds.length; i++)
		{
			if (arrFlds[i] == 'UTAG') schXML += '<grp><utag n="' + val + '"/></grp>';
			else schXML += '<grp><v f="' + arrFlds[i] + '">' + val + '</v></grp>';
		}
		
		if (pkFld == '')
		{
			if (g_bShared)
				schXML += '<of k="' + g_officeKey + '"/>';
			else
				schXML += '<uf k="' + g_userKey + '"/>';
		}
			
		schXML = '<d><sch rt="' + refRtype + '">' + schXML + '</sch></d>';
		
		//alert(schXML);
			
		document.getElementById('btn_obj_' + fldKey).style.display = 'none';
		document.getElementById('td_obj_' + fldKey).innerHTML = 'Searching...';
		document.getElementById('searchObjectIFrame').src = 'about:blank';
		document.getElementById('searchObjectIFrame').src = 'EGN/JSP/processSearchObject.jsp?fldKey=' + fldKey + '&isMul=' + isMul + '&recordType=' + refRtype + '&schXML=' + schXML;
	} catch(e) { alert('doSearchObject: ' + e.description); }
}


function doClearObject(fldKey)
{
	try
	{
		document.getElementById('td_obj_selected_' + fldKey).innerHTML = '&nbsp;';
		document.getElementById('dataEntryField_' + fldKey).value = '';
	} catch(e) { alert('doClearObject: ' + e.description); }
}

function doAddObject(fldKey, isMul)
{
	try
	{
		var td_obj_selected = document.getElementById('td_obj_selected_' + fldKey);
		var span_obj_flds = document.getElementsByName('span_obj_' + fldKey);
		var span_obj_new_flds = document.getElementsByName('span_obj_new_' + fldKey);

		var hasChecked = false;
		for (var i = 0; i < span_obj_new_flds.length; i++)
		{
			if (span_obj_new_flds[i].childNodes[0].checked)
			{
				hasChecked = true;
				
				var isSameRt = true;
				if (span_obj_flds[0] && span_obj_new_flds[i].getAttribute('refRt') != span_obj_flds[0].getAttribute('refRt'))
					isSameRt = false;
				if (isMul == '1' && isSameRt)
				{
					var exists = false;
					for (var j = 0; j < span_obj_flds.length; j++)
						if (span_obj_new_flds[i].getAttribute('refKey') == span_obj_flds[j].getAttribute('refKey')) 
						{
							exists = true;
							break;
						}
					if (!exists) 
					{
						if (td_obj_selected.innerHTML.indexOf('span') != -1)
							td_obj_selected.innerHTML += ',&nbsp;';
						else
							td_obj_selected.innerHTML = td_obj_selected.innerHTML.replace(/&nbsp;/ig, '');
						td_obj_selected.innerHTML += '<span name="span_obj_' + fldKey + '" id="span_obj_' + fldKey 
							+ '" refRt="' + span_obj_new_flds[i].getAttribute('refRt') + '" refKey="' + span_obj_new_flds[i].getAttribute('refKey') + '">' 
							+ span_obj_new_flds[i].childNodes[1].innerHTML + '</span>';
					}
				}
				else
					td_obj_selected.innerHTML = '<span name="span_obj_' + fldKey + '" id="span_obj_' + fldKey 
							+ '" refRt="' + span_obj_new_flds[i].getAttribute('refRt') + '" refKey="' + span_obj_new_flds[i].getAttribute('refKey') + '">' 
							+ span_obj_new_flds[i].childNodes[1].innerHTML + '</span>';
			}
		}
		
		if (hasChecked) doRefreshObjXML(fldKey);
		
	} catch(e) { alert('doAddObject: ' + e.description); }
}

function doRefreshObjXML(fldKey)
{
	try
	{
		var strXML = '';
		var span_obj_flds = document.getElementsByName('span_obj_' + fldKey);
		for (var i = 0; i < span_obj_flds.length; i++)
		{
			strXML += '<p' + span_obj_flds[i].getAttribute('refRt') + ' k="' + span_obj_flds[i].getAttribute('refKey') + '"/>'; 
		}
		var ta_obj = document.getElementById('dataEntryField_' + fldKey);
		ta_obj.value = strXML;
	} catch(e) { alert('doRefreshObjXML: ' + e.description); }
}

function handleChangePwd(objPwd)
{
	try
	{
		if (!objPwd) return;
		var pwd1 = document.getElementById('pwdInput1').value;
		var pwd2 = document.getElementById('pwdInput2').value;
		if (pwd1 != '' && pwd2 != '')
		{
			if (pwd1 != pwd2)
			{
				alert('The passwords you typed do not match. Type the new password in both text boxes.');
				document.getElementById('pwdInput1').value = '';
				document.getElementById('pwdInput2').value = '';
				return;
			}
			objPwd.value = ((g_useMD5 == '1') ? MD5(pwd1) : pwd1);
			if (g_useMD5 == '1') alert('You password will be changed to \n' + pwd1 + '\nIt cannot be recovered but reset only!');
		}
		
	} catch(e) { alert('handleChangePwd: ' + e.description); }
}

function removeContacts(){
	try
	{
		var objChks = document.getElementsByName("chkContacts");
		var checkedArray = new Array();
		for(var count=0; count<objChks.length; count++)
		{
			var objItem = objChks[count];
			if(objItem.checked) checkedArray[checkedArray.length] = objItem.parentElement.parentElement.value;
		}
		if(checkedArray.length == 0){
			 alert("Please select some items.");
			 return false;
		}
			var dataEntryXML = ""
			for(var i=0; i<checkedArray.length; i++)
			{
				var r4Node = "";
				var rk = checkedArray[i];
			//	alert("contact rk " + rk);
				var r93Node= g_xmlDoc.selectSingleNode("/d/r93[@k='"+ g_recordKey + "']");
				var r93rk = r93Node.getAttribute("rk");
		//		alert("r93Rk is "+ r93rk);
				r4Node = g_xmlDoc.selectSingleNode("/d/r4[@rk='"+rk+"']");
				var r4CloneNode = r4Node.cloneNode(true);
	//			alert(r4CloneNode.xml);
				r4CloneNode.setAttribute('s','2');
		//		alert(r4Node.xml);
				var v49999Node = r4CloneNode.selectSingleNode("//v[@f='49999']");
		//		alert("v49999Node" + v49999Node);
		//	alert(v49999Node.xml);
			if (v49999Node.childNodes.length == 1){
		//			alert(r4CloneNode.selectNodes("//v[@f='49999']").length);
					r4CloneNode.selectNodes("//v[@f='49999']").removeAll();
			}else
				
					v49999Node.selectNodes("//p93[@rk='"+r93rk+"']").removeAll();
				//var childNode = r4Node.selectSingleNode("//v[@f='49999']//p93[@rk='"+r93rk+"']");
				dataEntryXML += r4CloneNode.xml;
			}
		var syncXML = '<?xml version="1.0" encoding="ISO-8859-1"?><d>'+dataEntryXML + '</d>';	
		
		document.getElementById('formDataEntry').syncXML.value = syncXML;
		document.getElementById('formDataEntry').action.value = '2';
		document.getElementById('formDataEntry').recordLabel.value = 'Contacts';
		document.getElementById('formDataEntry').submit();
	}
	catch(e)
	{
		alert(e.description + " in removeContacts");
	}
	
}

function doDataEntryFarms()
{
	try
	{
		var contacts = getGlobalStatic().g_CollectionsXML.selectNodes("/d/item[@rt='4']");

		var farms = getGlobalStatic().g_CollectionsXML.selectNodes("/d/item[@rt='93']");
		if(farms.length == 0 || contacts.length == 0)
		{
				alert('Please choose some items.');
				return;
		}
			
		var fk='';
		var dataEntryXML = '';
		
		for(var ii=0;ii<contacts.length;ii++){
			var recordKey=contacts[ii].getAttribute('k');
			var contactFullXml = dfGetXMLByPK('4', recordKey, '0');
			var r4Node = contactFullXml.selectSingleNode("/d//r4");
			r4Node.setAttribute('s','2');
			var lnkFarmNode = r4Node.selectSingleNode("/d//v[@f='49999']");
		
			if(!lnkFarmNode){
				var elm =  contactFullXml.createElement("v");
				elm.setAttribute('f','49999');
				r4Node.appendChild(elm);
				lnkFarmNode = r4Node.selectSingleNode("/d//v[@f='49999']");
			}
			
			for(var jj=0;jj<farms.length;jj++){
				var rk = farms[jj].getAttribute('rk');
				var tmpNode = lnkFarmNode.selectSingleNode("//p93[@rk='"+rk+"']");
				if(!tmpNode){
					var elm = contactFullXml.createElement("p93");
					elm.setAttribute('rk',rk);
					lnkFarmNode.appendChild(elm);
				}
			}
			
			dataEntryXML += r4Node.xml;
		}
			var syncXML = '<?xml version="1.0" encoding="ISO-8859-1"?><d>'+ dataEntryXML + '</d>';
			document.getElementById('formDataEntry').syncXML.value = syncXML;
			document.getElementById('formDataEntry').action.value = '2';
			document.getElementById('formDataEntry').recordLabel.value = 'Contacts';
			document.getElementById('formDataEntry').submit();
	
		
	} catch(e) { alert('doDataEntry: ' + e.description); }
}

function doDataEntry()
{
	try
	{
		//return alert(getDataEntryXML());
		
		var dataEntryXML = getDataEntryXML() + getCustomizedDataEntryXML();
		
		if (dataEntryXML == '') return;
		
		var fk = document.getElementById('hidden_fk').value;
		var syncXML;
		if (g_recordKey == '-1') // New
			syncXML = '<?xml version="1.0" encoding="ISO-8859-1"?><d><r' + g_recordType + ' s="1"' + ((fk != '') ? ' fk="' + fk + '"' : '') + ' rk="' + g_attrRK + '" uf="' + g_attrUF + '" uc="' + g_attrUC + '">';
		else // Update
			syncXML = '<?xml version="1.0" encoding="ISO-8859-1"?><d><r' + g_recordType + ' s="2"' + ((fk != '') ? ' fk="' + fk + '"' : '') + ' rk="' + g_attrRK + '" uf="' + g_attrUF + '" uc="' + g_attrUC + '" k="' + g_attrK + '" n="' + g_attrN + '" ub="' + g_attrUB + '" rv="' + g_attrRV + '">';
		
		syncXML += dataEntryXML + '</r' + g_recordType + '></d>';
	
		//document.getElementById('ta_sync').value = syncXML; return;
		
		document.getElementById('formDataEntry').syncXML.value = syncXML;
		document.getElementById('formDataEntry').submit();
		
	} catch(e) { alert('doDataEntry: ' + e.description); }
}

function closeDataEntry(toRefresh)
{
	try
	{
		if (g_frameName == '')
		{
			if (!toRefresh)
			{
				parent.document.getElementById('objDataEntry').style.display = 'none';
				parent.document.getElementById('objViewList').style.display = '';
			}
			else
				parent.location.reload();
		}
		else
			window.location.reload();
	} catch(e) { alert('closeDataEntry: ' + e.description); }
}

function getDataEntryXML()
{
	try
	{
		var strXML = '';
		var dataEntryFields = document.getElementsByName('dataEntryFields');
		//alert(dataEntryFields.length);
		for (var i = 0; i < dataEntryFields.length; i++)
		{
			var fldKey = dataEntryFields[i].getAttribute('fldKey');
			var tagName = dataEntryFields[i].tagName;
			var isXML = dataEntryFields[i].getAttribute('isXML');
			var isYN = dataEntryFields[i].getAttribute('isYN');
			var is12Hour = dataEntryFields[i].getAttribute('is12Hour');
			var isReq = dataEntryFields[i].getAttribute('isReq');
					
			var trObj = document.getElementById('fld_tr_lbl_ctrl_' + fldKey);
			if (trObj.style.visibility == 'hidden') continue;
			
			var strTmp = '';
	
			if (tagName == 'INPUT' && dataEntryFields[i].type == 'text')
			{
				var dateVal = dataEntryFields[i].getAttribute('dateVal');
				if (dateVal)
					strTmp += dateVal;
				else
					strTmp += escape(dataEntryFields[i].value);
			}
			
			if (tagName == 'TEXTAREA')
			{
				if (isXML)
				{

					strTmp += dataEntryFields[i].value;
				}
				else
				{
					if(fldKey == '200050')
					{
						var strMsg = escape(dataEntryFields[i].value);
						strMsg = strMsg.replace(/%3C\/P%3E%0D%0A%3CP/ig,'%3C/P%3E%3CP');
						strTmp += strMsg;
					}
					else
						strTmp += escape(dataEntryFields[i].value);
				}
			}
	
			if (tagName == 'SELECT')
			{
				var selectedOptions = dataEntryFields[i].options;
				
				for (var j = 0; j < selectedOptions.length; j++)
					if (selectedOptions[j].selected && selectedOptions[j].value != '') 
					{
						if (isYN)
						{
							strTmp += selectedOptions[j].value;
						}
						else
							strTmp += '<e' + selectedOptions[j].value + '/>';
					}
			}
	
			if (tagName == 'FORM')
			{
				var childNodes = dataEntryFields[i].childNodes;
				var hh = '', HH = '', mm = '', tt = '';
				if (is12Hour) // Time data entry
				{
					for (var j = 0; j < childNodes.length; j++)
					{
						var timePart = childNodes[j].name;
						if (timePart != undefined)
						{
							if (timePart == 'hh' || timePart == 'h') hh = childNodes[j].value;
							if (timePart == 'HH' || timePart == 'H') HH = childNodes[j].value;
							if (timePart == 'mm' || timePart == 'm') mm = childNodes[j].value;
							if (timePart == 'tt' || timePart == 't') tt = childNodes[j].value;
						}
					}
					if ((hh != '' || HH != '') && mm != '')
					{
						if (HH == '')
						{
							HH = 1 * hh;
							if (tt == '12' && HH < 12) HH += 12;
							if (tt == '0' && HH == 12) HH = 0;
						}
						if (HH < 10) HH = '0' + HH;
						if (mm.length < 2) mm = '0' + mm;
						var val = HH + mm;
						if (val != '') strTmp += val;
					}
				}
				else // multiple enumerations
				{
					for (var j = 0; j < childNodes.length; j++)
					{
						if (childNodes[j].name == 'fld_' + fldKey)
						{
							if (childNodes[j].checked && childNodes[j].value != '') strTmp += '<e' + childNodes[j].value + '/>';
						}
					}
				}
			}

			if (isReq && strTmp == '')
			{
				trObj.className = 'trErr';
				alert('Please fill out all required fields!');
				return '';
			} 
			
			if (strTmp != '') 
				strXML += '<v f="' + fldKey + '">' + strTmp + '</v>';

		}// for (var i = 0; i < dataEntryFields.length; i++)

		
		return strXML;
	}catch(e){alert('getDataEntryXML: ' + e.description)}
}

function getHighestXMLVer()
{
	try
	{
		new ActiveXObject("Msxml2.DOMDocument.4.0");
		return '.4.0';
	}
	catch(e)
	{
		try
		{
			new ActiveXObject("Msxml2.DOMDocument.3.0");
			return '.3.0';
		}
		catch(e){ return '.0.0'}
	}
}

function handleContentDivRichEdit(objDiv)
{

	try
	{
		var cfgstr = 'center:yes; dialogHeight:575px; dialogWidth:700px; scroll: No;help: No; resizable: No; status: No';
		var arrDialogArguments = new Array();
		arrDialogArguments['HTMLval'] = objDiv.innerHTML;
		arrDialogArguments['title'] = 'PowerUp';
		var retRes = window.showModalDialog('notesEditor.htm', arrDialogArguments, cfgstr);
		if (retRes != '_FALSE_') objDiv.innerHTML = retRes;
	}
	catch(e)
	{
		alert(e.description + " in handleContentDivRichEdit");
	}
}

function editNotesHTML(fldKey)
{
		try
		{
				var divObj = document.getElementById('div_'+fldKey);
				var textAreaObj = document.getElementById('dataEntryField_'+fldKey);
				handleContentDivRichEdit(divObj);
				textAreaObj.value = divObj.innerHTML;					
		}
		catch(e)
		{
				alert(e.description + "in editNotesHTML");
		}
}

function previewNotesHTML(fldKey)
{
	var objTxtArea = document.getElementById('dataEntryField_'+fldKey);
	var cfgstr = 'center:yes; dialogHeight:450px; dialogWidth:650px; scroll: No;help: No; resizable: No; status: No';
	var arrDialogArguments = new Array();
	arrDialogArguments['HTMLval'] = objTxtArea.value;
	arrDialogArguments['title'] = 'PowerUp';
	window.showModalDialog('notesPreview.htm',arrDialogArguments,cfgstr);
}

function showCollection()
{
	try
	{
		var collectionsXML = getGlobalStatic().g_CollectionsXML;
		var objNodes  = collectionsXML.selectNodes("/d/item[@rt='"+ g_recordType +"']")
		if (g_selectedState == 0) // previous state was search result, now it is show collection
		{
			
			var iSelected  = objNodes.length;
			if (iSelected == 0) return alert("Please choose some items");
		
			var tempXML = '';
			for(var count=0;count<objNodes.length;count++)
			{
					var objNode  = objNodes.item(count);
					tempXML += "<item k=\"" + objNode.getAttribute("k") + "\"/>";
			}
			
			var xmlDoc = dfLoadXml("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><d><sch rt=\"" + g_recordType + "\">" + tempXML + "</sch></d>");
			dfMergeXML(xmlDoc, getGlobalStatic().g_sessionXML, "/d", "/d/*", false, null);
			dfMergeXML(xmlDoc, getGlobalStatic().g_applicationXML, "/d", "/d/*", false, null);
			var xslDoc = dfLoadXml("EGN/XSL/dfXML2TSQL.xsl");
			dfImportXSL(xslDoc, "EGN/XSL/common.xsl");
		
			var tempSqlQuery = dfTransform(xmlDoc, xslDoc);
			tempSqlQuery = tempSqlQuery.replace(new RegExp('\t|\n|\r', 'ig'), '');
			var xmlDataDoc = dfGetXMLBySQL(g_recordType, tempSqlQuery, '9999', '1', '2');
			dfMergeXML(xmlDoc, xmlDataDoc, "/d", "/d/*", false, null);
			setXSLVar(g_xslDoc, "pageSize",  objNodes.length, true);
			setXSLVar(g_xslDoc, "pageNum", 1, true);
			document.body.innerHTML = dfTransform(xmlDoc, g_xslDoc);
			document.getElementById('span_Counter').innerHTML = objNodes.length;
			var cbxItmes = document.getElementsByName('cbxItmes');
			
			for (var i = 0; i < cbxItmes.length; i++)
			{
				if(!cbxItmes[i].checked)
					cbxItmes[i].checked = true;
			}
			var objCheckAll = document.getElementById("cbxAll");
				if(objCheckAll)
					objCheckAll.checked = true;
			var objCounterItem = document.getElementById('span_Counter');
			objCounterItem.className = "toolbarSelected";		
			g_selectedState = 1;
		}
		else // previous state was show colelction, now it is back to search result
		{
			g_selectedState = 0;
			setXSLVar(g_xslDoc, "pageSize",  g_pageSize, true);
			setXSLVar(g_xslDoc, "pageNum", g_pageNum, true);
			document.body.innerHTML = dfTransform(g_xmlDoc, g_xslDoc);
			document.getElementById('span_Counter').innerHTML = objNodes.length;
			var cbxItmes = document.getElementsByName('cbxItmes');
			var nChecked = 0;
			for(var count=0;count<cbxItmes.length;count++)
			{
				var oNode  = collectionsXML.selectSingleNode("/d/item[@rt='"+ g_recordType + "'][@k='"+ cbxItmes[count].value + "']");
				if(oNode)
				{
					if(cbxItmes[count].checked == false)
					{
						cbxItmes[count].checked = true;
						nChecked++;
					}
				}
			}
			if(nChecked == g_pageSize) 
			{
				var objCheckAll = document.getElementById("cbxAll");
				if(objCheckAll)
					objCheckAll.checked = true;
			}
			var objCounterItem = document.getElementById('span_Counter');
			objCounterItem.className = "toolbarItem";		
		}
		
	}
	catch(e)
	{
		alert(e.description +"in showCollection");
	}
}

function getUrlParamValue(key)
{
	var href = window.location.href
	var s = unescape(href.substring(href.indexOf("?")+1,href.length))
	var arr = s.split("&")
	var pair
	for (var i=0;i<arr.length;i++)
	{
		pair = arr[i].split("=")
		if (pair[0]==key) return pair[1]
	}
	return '';
}
	
function openActionDialogForPDF(p_k,p_rk,p_action)
{
	var cfgstr = "dialogHeight: 550px; dialogWidth: 700px; scroll: Yes; unadorned: Yes; help: No; resizable: Yes; status: No";
	var arrDialogArguments = new Array();
	arrDialogArguments['objWin'] = window;
	arrDialogArguments['trans_key'] = p_k;
	arrDialogArguments['email_trans_key'] = p_rk;
	arrDialogArguments['userkey'] = g_userKey;
	
	var objXML = dfGetXMLByPK('8', p_k, '0');
	var applicationXML = getGlobalStatic().g_applicationXML;
	var sessionXML = getGlobalStatic().g_sessionXML;
	dfMergeXML(objXML, applicationXML, "/d", "/d/*", false, null);
	dfMergeXML(objXML, sessionXML, "/d", "/d/*", false, null);
	
	arrDialogArguments['objXML'] = objXML;
	
	var strURL = (p_action == 'Email') ? 'PDFEmailPopUp.htm' : 'PDFPrintPopUp.htm';
	var sXML = window.showModalDialog(strURL, arrDialogArguments, cfgstr);
}

function removeWhiteSpace(Str)
{
	return Str.replace(/\t|\n|\r|\u0020zl=\"y\"/ig, '');
}

function getCleanXML(strXML)
{
	try
	{
		var objGS = getGlobalStatic().document;
		objGS.getElementById('div_xml').innerHTML = '<textarea id="ta_xml">' + strXML + '</textarea>';
		return(objGS.getElementById('ta_xml').value);
	}
	catch(e)
	{
		return strXML;
	}
}

function dfCreatePopup(p_rt,p_k)
{
	var	moPopup = window.createPopup();
	if(p_rt != '20') return;
	var xslDoc = dfLoadXml("APP/XSL/POP/popup_20.xsl");
	setXSLVar(xslDoc, "k",  p_k, true);
	dfImportXSL(xslDoc, "APP/XML/commonXslKeys.xsl");
	dfImportXSL(xslDoc, "EGN/XSL/common.xsl");
	dfImportXSL(xslDoc, "APP/XSL/customizedDisplay.xsl");
	
	var cssurl = getTopMostWindow().g_baseURI + "APP/CSS/template.css";
	var cssurl2 = getTopMostWindow().g_baseURI + "APP/CSS/customized.css";
	var sText = '<html><head><link rel="stylesheet" type="text/css" href="'+cssurl+'"><link rel="stylesheet" type="text/css" href="'+cssurl2+'"></head><body style="border:solid;border-width:1px;background-color:#E8EEF3;overflow:auto">';
	var sText1 = dfTransform(xmlDoc, xslDoc);
	sText1 = sText1.replace(/<\/p><br\/><p>/ig,'</p><p>');
	sText += sText1;
	sText += '</body></html>';
	var	oPopupBody = moPopup.document.body;
	oPopupBody.style.border = "solid";
	oPopupBody.style.borderWidth = "1px";
	oPopupBody.style.backgroundColor="#FFFFFF";
	var objDocument = moPopup.document;
	objDocument.open();
	objDocument.write(sText);
	objDocument.close();
	moPopup.show(event.screenX,event.screenY,600,300);
	window.focus();
	
}

function getEstimatedNetSheet(elemObj)
{	
	var docLavel = elemObj.document;
	
	if (isNaN(elemObj.value))
	{		
		alert (elemObj.value + ' is not numeric!');
		elemObj.focus();
	}
	else
	{
		s=0;
		for(i=0; i<docLavel.getElementsByName('TotalEnc').length; i++)
		{
			a = docLavel.getElementsByName('TotalEnc')[i]	
			if (isNaN(a.value) || a.value != '')
				{s+= parseFloat(a.value);}
			else
				{s+= 0;}
		}
		SumTotalEnc = s;
		docLavel.getElementById('SumTotalEnc').value = s
		
		s=0;
		for(i=0; i<docLavel.getElementsByName('EstSelCost').length; i++)
		{
			a = docLavel.getElementsByName('EstSelCost')[i]	
			if (isNaN(a.value) || a.value != '')
				{s+= parseFloat(a.value);}
			else
				{s+= 0;}
		}
		docLavel.getElementById('SumEstSelCost').value = s
		SumEstSelCost = s;
		
		a = docLavel.getElementById('SellingPrice')
		if (isNaN(a.value) || a.value != '')
			{SellingPrice = parseFloat(a.value);}
		else
			{SellingPrice = 0;}

		docLavel.getElementById('EstNetTotal').value = SellingPrice - SumTotalEnc - SumEstSelCost
	}
}
function getValid(elemObj, MLSNo)
{	
	var tmpval;
	var docLavel = elemObj.document
	//alert(elemObj.value)
	
	if (isNaN(elemObj.value))
	{		
		alert (elemObj.value + ' is not numeric!');
		elemObj.focus();
	}
	else
	{
		s=0;
		for(i=0; i<docLavel.getElementsByName('adjValue_' + MLSNo).length; i++)
		{
			a = docLavel.getElementsByName('adjValue_' + MLSNo)[i]	
			if (isNaN(a.value) || a.value != '') s+= parseFloat(a.value);
		}		
		docLavel.getElementById('adjResult_' + MLSNo).value = parseFloat(docLavel.getElementById('priceByStatus_' + MLSNo).value) + s;
		
	}
}

function openPromptDialog(promptHTML,strCtrlTp,nodeVal)
	{
		try
		{
			
			var cfgstr = 'dialogHeight: 0px; dialogWidth: 300px; scroll: No; unadorned: Yes; help: No; resizable: No; status: No';
			var arrDialogArguments = new Array();
			arrDialogArguments['objWin'] = window;
			arrDialogArguments['promptHTML'] = promptHTML;
			arrDialogArguments['title'] = 'PowerUp';
			//if (width != '')
				//arrDialogArguments['width'] = width;
			if(strCtrlTp == '10')
			{
				if(nodeVal == 'agent2')
					arrDialogArguments['g_attrRK'] = g_photoID_agentImg;
				else if(nodeVal == 'img' && promptHTML == '1')
					arrDialogArguments['g_attrRK'] = g_photoID_img1;
				else if(nodeVal == 'img' && promptHTML == '2')
					arrDialogArguments['g_attrRK'] = g_photoID_img2;
				else if(nodeVal == 'img' && promptHTML == '3')
					arrDialogArguments['g_attrRK'] = g_photoID_img3;
					
				arrDialogArguments['nodeVal'] = nodeVal;
				
				return (window.showModalDialog('dfFilePrompt.htm', arrDialogArguments, cfgstr));
			}
			else
				return (window.showModalDialog('dfPrompt.htm', arrDialogArguments, cfgstr));
			
		}
		catch (e)
		{
			alert('openPromptDialog:' + e.description);
		}
	}
	function getInnerXML(theNode)
	{
		var strRes = '';
		for (var i = 0; i < theNode.childNodes.length; i++)
			strRes += theNode.childNodes[i].xml;
		return strRes;
	}
	function handleCSVExport(){
		try{
			//alert(g_xmlDoc.xml);
			var objNodes =getGlobalStatic().g_CollectionsXML.selectNodes("/d/item[@rt='"+ g_recordType +"']");
			if (objNodes.length == 0)
			{
				alert('Please choose some items.');
				return;
			}
			var datapath = g_xmlDoc.selectSingleNode("/d/rt[@key='93']/dataPath").text;
			var farmName = g_xmlDoc.selectSingleNode(datapath + '[@rk="' + objNodes[0].getAttribute("rk") + '"]/v[@f="930010"]').text;
			//var contactNodes = g_xmlDoc.selectNodes("/d/r2/r3/r4[v[@f='49999']/p93[@rk='" + objNodes[0].getAttribute("rk") + "']]");
			var SQL= "select contactKEY from dft_contact where";
			SQL = SQL + "(contactkey in (select contactKEY from LNK_Contact where linkKEY = " + objNodes[0].getAttribute("k") +"))";
			SQL = SQL + " AND (OWNER = "+g_userKey+") and (DELETED <> 1) ";
			
			var xmlDataDoc = dfGetXMLBySQL('4', SQL, '9999', '1','2')	;
			
			var contactNodes = xmlDataDoc.selectNodes("/d/r4");
			
			var objMappingNodes = g_xmlDoc.selectNodes("/d/meta_extra[@usage='farm csv mapping']/rt[@k='4']/item");
			var iMappingLength = objMappingNodes.length;		
			
			var strHeader = "";
			for(var count=0; count<iMappingLength; count++)
			{
				strHeader += objMappingNodes[count].getAttribute("name");
				if(count != (iMappingLength -1)) strHeader += ",";
			}
			var strCSV = '';
			//Data
			var iTotal = 0;
			for(var i=0; i<contactNodes.length; i++)
			{
				var strRow = '';
				var objContact = contactNodes[i];
				for(var j=0; j<iMappingLength; j++)
				{
					var objMapItem = objMappingNodes[j];
					var objFldNodes = objMapItem.selectNodes("fld");
					var fldValue = "";
					for(var k=0; k<objFldNodes.length; k++)
					{
						var fk = objFldNodes[k].getAttribute("k");
						var vNode = objContact.selectSingleNode("v[@f='" + fk + "']");
						if(vNode)
						{
							if(fldValue != "") fldValue += " ";
							fldValue += unescape(vNode.text);
						}
					}
					if (objFldNodes.length >0 && fldValue == "")
					{
						strRow = '';
						break;
					}
					fldValue = fldValue.replace(new RegExp('"', 'ig'), '""');
					strRow += '"' + fldValue + '"';
					if(j != (iMappingLength -1)) strRow += ',';
				}
				
				if (strRow != '')
				{
					strCSV += '\r\n' + strRow;
					iTotal ++;
				}
			}
			
			if (iTotal == 0){
				alert('All contacts in this farm do not have the required fields (First Name, Last Name, Home Address, Home City, Home Zip). '
				+ 'Please edit them with the missing required data.');
				return false;
			}
	
			if (iTotal < contactNodes.length)
			{
				if (!window.confirm('Only ' + iTotal + ' of ' + contactNodes.length + ' contact(s) in this farm have the required fields (First Name, Last Name, Home Address, Home City, Home Zip). '
					+ 'If you would like to have all contacts posted, you must edit the contacts with the missing required data first.\n\nDo you still want to post them?')) return;
			}
			strCSV = strHeader + strCSV;
			
			var url = getTopMostWindow().g_baseURI + 'writeStrToFile.jsp';
			var objXMLHTTP = new ActiveXObject('MSXML2.XMLHTTP.4.0');
			objXMLHTTP.Open('POST', url, false);
			objXMLHTTP.send(strCSV);
			var strFileLink = null;
			strFileLink = objXMLHTTP.responseText;
		
			if(strFileLink != "")
			{
				
				var paramURL = 'ListName=' + farmName + '&Username=' + getTopMostWindow().g_userKey + '&Password=Pr1ntM3!&Url=' + strFileLink;
				var URL =getTopMostWindow().g_baseURI + "proxy.jsp?url=http://www.printdepartment.com/huffmaillist.aspx?" + paramURL;
				
				var objXMLHTTP = new ActiveXObject('MSXML2.XMLHTTP.4.0');
				objXMLHTTP.open("POST", URL, false);
				//objXMLHTTP.Open('POST', 'http://www.printdepartment.com/huffmaillist.aspx', false);
				objXMLHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				
				//alert(strURL);
				objXMLHTTP.send(URL);
				alert(iTotal + " of " + contactNodes.length + " contact(s) of this farm have been posted.");
			}
		}
		catch (e)
		{
			alert('handleCSVExport:' + e.description);
		}
	}
	function handleLinkToFarm()
	{
		try
	{
		if (getGlobalStatic().g_CollectionsXML.selectNodes("/d/item[@rt='"+ g_recordType +"']").length == 0)
		{
			alert('Please choose some items.');
			return;
		}
		if (document.getElementById('objFarm').src == 'about:blank')
		{
				document.getElementById('objFarm').src ='Farm.jsp?recordType=93&fromIFrame=1'; //url;//'Farm.jsp?recordType=93';
		}
		showIframe(document.getElementById('objFarm'));
		document.getElementById('objFarm').style.border = '2px solid black';
	} catch(e) { alert('handleLinkToFarm: ' + e.description); }
	}
	function handleBulkUpdate()
	{
		var collectionsXML = getGlobalStatic().g_CollectionsXML;
		var bulkUpdateNodes  = collectionsXML.selectNodes("/d/item[@rt='"+ g_recordType + "']");
		var length = bulkUpdateNodes.length;
		if (length == 0) return alert("Please choose some items");
		var bulkUpdateXSL = dfLoadXml("EGN/XSL/dfBulkUpdate.xsl");
		setXSLVar(bulkUpdateXSL, "rtype",  g_recordType, true);
		setXSLVar(bulkUpdateXSL, "count",  length, true);
		
		dfImportXSL(bulkUpdateXSL, "APP/XML/commonXslKeys.xsl");
		dfImportXSL(bulkUpdateXSL, "EGN/XSL/common.xsl");
		dfImportXSL(bulkUpdateXSL, "APP/XSL/customizedDisplay.xsl");
		var bulkUpdateHTML = dfTransform(g_xmlDoc, bulkUpdateXSL);
		var cfgstr = 'dialogHeight: 0px; dialogWidth: 300px; scroll: No; unadorned: Yes; help: No; resizable: No; status: No';
		var arrDialogArguments = new Array();
		arrDialogArguments['objWin'] = window;
		arrDialogArguments['promptHTML'] = bulkUpdateHTML;
		arrDialogArguments['rtype'] = g_recordType;
		arrDialogArguments['title'] = 'PowerUp';
		var res = window.showModalDialog('bulkupdatePrompt.htm', arrDialogArguments, cfgstr);
		if(res != '_FALSE_')
		{
			var resultDOM = dfLoadXml(res);
			var vNodes = resultDOM.selectNodes("/d/v");
			var dataEntryXML = '';
			
			for(var i=0; i<length ;i++)
			{
				var objRecordNode = bulkUpdateNodes.item(i);
				var recordKey = objRecordNode.getAttribute("k");
				var xmlDoc = dfGetXMLByPK(g_recordType, recordKey, '0');
				var rootNode = xmlDoc.selectSingleNode("/d/r"+g_recordType);
				rootNode.setAttribute('s', '2');
				for(var count=0;count<vNodes.length;count++)
				{
					var vNode = vNodes.item(count);
					var fk = vNode.getAttribute("f");
					xmlDoc.selectNodes("/d//v[@f='" + fk + "']").removeAll();
					xmlDoc.selectSingleNode("/d/r"+g_recordType).appendChild(vNode);
				}
				dataEntryXML += xmlDoc.selectSingleNode("/d/r"+g_recordType).xml;
			}
		
			var syncXML = '<?xml version="1.0" encoding="ISO-8859-1"?><d>'+ dataEntryXML + '</d>';
			document.getElementById('formDataEntry').syncXML.value = syncXML;
			document.getElementById('formDataEntry').action.value = '2';
			document.getElementById('formDataEntry').recordLabel.value = 'Contacts';
			document.getElementById('formDataEntry').submit();
		}
	}
	function handleCloseIFrameFarm()
{
	var collectionsXML = getGlobalStatic().g_CollectionsXML;
	collectionsXML.selectNodes("/d/item[@rt='93']").removeAll();
	alert(collectionsXML.selectNodes("/d/item[@rt='93']").length);
	parent.document.getElementById('objFarm').style.display = 'none';
}