
	arrContactAdvancedXML = new Array();
	function initContactAdvancedXML(grpSysId, index, setnumber, usrcomcdaid){
		//if(typeof(arrContactAdvancedXML) == "undefined"){
		//}
		editfields = "";
		if(setnumber != ""){
			editfields = "_" + setnumber;
		}
		switch(grpSysId){
			case "1":
				var oXML = StringtoXML("<property></property>");
				break;
			case "2":
				var oXML = StringtoXML("<criteria></criteria>");
				oXML.documentElement.setAttribute("setnumber",setnumber);
				oXML.documentElement.setAttribute("usrcomcda_id",usrcomcdaid);
				
				break;
		}
		arrContactAdvancedXML[index] = oXML;
		
		
		// Set default values
		switch(grpSysId){
			case "1":
				break;
			case "2":
				editCriteriaXML(document.getElementById("txtPrjId"),editfields, index);
				editCriteriaXML(document.getElementById("txtRedirectTo"),editfields, index);
				editCriteriaXML(document.getElementById("IMM_PRT_ID"),editfields, index);
				editCriteriaXML(document.getElementById("IMM_PRT_ZIP_IDRadius"),editfields, index);
				if(document.getElementById("USRCOMCDAEMA_SendMailing")){
					if(document.getElementById("USRCOMCDAEMA_SendMailing").checked){
						editCriteriaXML(document.getElementById("USRCOMCDAEMA_SendMailing"),editfields, index);
					}
				}
				break;
		}
	}


	function editCriteriaXML(el, editfields, index){
		if(el){
			var sType = el.type;
			var sName = el.name;
			var sId = el.id;
			var sValue = el.value;
			
			if(sType == "checkbox"){
				if(el.checked){
					sValue = "1";
				}else{
					sValue = "";
				}
			}
			// alert(sName);
			modifyCriteriaNode(sName, sValue, index);
			
			if(arrContactAdvancedXML[index].xml){
				sXML = arrContactAdvancedXML[index].xml;
				// alert(sXML);
			}else{
				var s = new XMLSerializer();
				var sXML = s.serializeToString(arrContactAdvancedXML[index]);
			}
			document.getElementById("txtCriteria" + index).value = sXML;
		}else{}
	}
	
	function modifyCriteriaNode(sNodeName, sNodeValue, index){
	
		var oCRTXML = arrContactAdvancedXML[index];
		//alert(oCRTXML);
		if(oCRTXML.documentElement.selectNodes("X_"+sNodeName).length == 0){
			var oNode = oCRTXML.createElement("X_"+sNodeName);
			oNode.text = sNodeValue;
			//oNode.textContent = sNodeValue;
			oCRTXML.documentElement.appendChild(oNode);
		}else{
			oCRTXML.documentElement.selectNodes("X_"+sNodeName)[0].text = sNodeValue;
		}
	}
	
	function editPropertyXML(el, index, sParent){
		var sType = el.type;
		var sName = el.name;
		var sId = el.id;
		var sValue = el.value;
		if(sType == "checkbox"){
			if(!el.checked){
				sValue = "";
			}
		}
		if(sParent != null && sValue != ""){
			modifyPropertyParentNode(sParent, index);
		}
		
		modifyPropertyNode(sName, sValue, sParent, index)
		
			if(arrContactAdvancedXML[index].xml){
				sXML = arrContactAdvancedXML[index].xml;
			}else{
				var s = new XMLSerializer();
				var sXML = s.serializeToString(arrContactAdvancedXML[index]);
			}
		document.getElementById("txtProperty" + index).value = sXML ;
	}
	
	function modifyPropertyParentNode(sNodeName, index){
		var oPRTXML = arrContactAdvancedXML[index];
		if(oPRTXML.documentElement.selectNodes(sNodeName).length == 0){
			var oNode = oPRTXML.createElement(sNodeName);
			oPRTXML.documentElement.appendChild(oNode);
		}
	}
	
	
	function modifyPropertyNode(sNodeName, sNodeValue, sParent, index){
		var oPRTXML = arrContactAdvancedXML[index];
		if(sParent != null){
			oParent = oPRTXML.documentElement.selectSingleNode(sParent);
		}else{
			oParent = oPRTXML.documentElement;
		}
		if(oParent.selectNodes(sNodeName).length == 0 && sNodeValue != ""){
			var oNode = oPRTXML.createElement(sNodeName);
			oNode.text = sNodeValue;
			oParent.appendChild(oNode);
		}else{
			if(sNodeValue != ""){
				oParent.selectNodes(sNodeName)[0].text = sNodeValue;
			}else{
				if(oParent.selectNodes(sNodeName)[0]){
					oParent.removeChild(oParent.selectNodes(sNodeName)[0]);
				}
			}
		}
	}
	
	function checkValidPropertyForm(index){
		var bIsValid = true;
		var bHasType = false;
		var bHasCatecgory = false;
		if(arrContactAdvancedXML[index]){
			if(arrContactAdvancedXML[index].documentElement.nodeName == "property"){
				
				var oPRTXML = arrContactAdvancedXML[index];
				if(oPRTXML.documentElement.hasChildNodes){
					if(oPRTXML.documentElement.selectNodes("types").length > 0){
						var lstTYP = oPRTXML.documentElement.selectSingleNode("types").childNodes;
						for(var typi = 0;typi<lstTYP.length;typi++){
							var oTYP = lstTYP[typi];
							if(oTYP.text != ""){
								bHasType = true;
							}
						}
					}
					if(oPRTXML.documentElement.selectNodes("categories").length > 0){
						var lstCAT = oPRTXML.documentElement.selectSingleNode("categories").childNodes;
						for(var cati = 0;cati<lstCAT.length;cati++){
							var oCAT = lstCAT[cati];
							if(oCAT.text != ""){
								bHasCatecgory = true;
							}
						}
					}
					if(!bHasType || !bHasCatecgory){
						bIsValid = false;
					}
				}
			}
		}
		return bIsValid;
	}
	
	 // check for XPath implementation 
 // if( document.implementation.hasFeature("XPath", "3.0") ) 
 // { 
 // prototying the XMLDocument 
 // XMLDocument.prototype.selectNodes = function(cXPathString, xNode) 
 // { 
 // if( !xNode ) { xNode = this; }
 // var oNSResolver = this.createNSResolver(this.documentElement) 
 // var aItems = this.evaluate(cXPathString, xNode, oNSResolver,
 // XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null) 
 // var aResult = [];
 // for( var i = 0; i < aItems.snapshotLength; i++) 
 // { 
 // aResult[i] = aItems.snapshotItem(i);
 // } 
 // return aResult;
 // } 

 // prototying the Element 
 // Element.prototype.selectNodes = function(cXPathString) 
 // { 
 // if(this.ownerDocument.selectNodes) 
 // { 
 // return this.ownerDocument.selectNodes(cXPathString, this);
 // } 
 // else{throw "For XML Elements Only";} 
 // } 
 // } nt.prototype.selectNodes = function(cXPathString) 
 // { 
 // if(this.ownerDocument.selectNodes) 
 // { 
 // return this.ownerDocument.selectNodes(cXPathString, this);
 // } 
 // else{throw "For XML Elements Only";} 
 // } 
 // } 
 
 
 // prototying the Element 
 // Element.prototype.selectNodes = function(cXPathString) 
 // { 
 // if(this.ownerDocument.selectNodes) 
 // { 
 // return this.ownerDocument.selectNodes(cXPathString, this);
 // } 
 // else{throw "For XML Elements Only";} 
 // } 
  
  // check for XPath implementation 
 // if( document.implementation.hasFeature("XPath", "3.0") ) 
 // { 
 // prototying the XMLDocument 
 // XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode) 
 // { 
 // if( !xNode ) { xNode = this; }
 // var xItems = this.selectNodes(cXPathString, xNode);
 // if( xItems.length > 0 ) 
 // { 
 // return xItems[0];
 // } 
 // else 
 // { 
 // return null;
 // } 
 // } 

 // prototying the Element 
 // Element.prototype.selectSingleNode = function(cXPathString) 
 // {
 // if(this.ownerDocument.selectSingleNode) 
 // { 
 // return this.ownerDocument.selectSingleNode(cXPathString, this);
 // } 
 // else{throw "For XML Elements Only";} 
 // } 
 // } 
