        var cFormObj;
        function setFormObject(aFormObj) {
          cFormObj=aFormObj;
        }
// JavaScript Document
	// Determine browser and version.                        			
	function Browser() {                                     					
  	var ua, s, i;                                          					
  	this.isIE    = false;                                  					
  	this.isNS    = false;                                  					
  	this.version = null;                                   					
  	ua = navigator.userAgent;                              			
  	s = "MSIE";                                            					
  	if ((i = ua.indexOf(s)) >= 0) {                   					
    		this.isIE = true;                                    					
    		this.version = parseFloat(ua.substr(i + s.length));  	
    		return;                                              					
  	}                                                     						
  	s = "Netscape6/";                                      				
  	if ((i = ua.indexOf(s)) >= 0) {                      				
    		this.isNS = true;                                   				
    		this.version = parseFloat(ua.substr(i + s.length)); 	
    		return;                                             					
  	}                                                      						
  	// Treat any other "Gecko" browser as NS 6.1.     	
  	s = "Gecko";                                           					
  	if ((i = ua.indexOf(s)) >= 0) {                        				
    		this.isNS = true;                                    				
    		this.version = 6.1;                                 				
    		return;                                              					
  	}                                                     						
	}                                                        							
	var browser = new Browser();                             			
                                                         							
	// Cancel event                                         		 			
	function CancelEvent(aEvent) {                            			
  	if (aEvent!=null) {                                    					
   		if (browser.isIE) {                                    				
     			aEvent.cancelBubble = true;                         	
     			aEvent.returnValue = false;                          		
     		 }                       											
   		if (browser.isNS) {                                    				
    			aEvent.preventDefault();                              		
  		}                                                           				
  	}                                                            					
	}                                                            						



		function xQsToArray(aQS,aSep)																														
		{																																								
		 	if (aQS.length==0){																																	
		 		return new Array(); 																																
		 	}else{																																						
		 		if (aQS.indexOf(aSep)==-1) {																													
		 			return new Array(aQS);																														
		 		 }else{																																				
		 			return aQS.split(aSep);}																														
		 	}																																							
		}																																								

		function xQsAppendEntry(aSrc,aEntry)																												
		{																																								
		 	if (aSrc.length!=0) aSrc+="&";																														
		 	return aSrc+aEntry;																																	
		}																																								

		function xQsAppendKey(aSrc,aKey,aValue)																											
		{																																								
		 	if (aSrc.length!=0) aSrc+="&";																														
		 	return (aSrc+aKey+"="+aValue);																													
		}																																								

		function xQsAddUnicKey(aSrc,aKey,aValue)																										
		{																																								
			var i,wKey=aKey+"=", wRes="",wFound;																										
			var wTabSrc=xQsToArray(aSrc,"&");																												
		 	if (wTabSrc.length!=0) 																																
		 	{	for (i=0; i < wTabSrc.length; i++) 																												
		 		{   wFound=wTabSrc[i].indexOf(wKey)!=-1;																									
		 			if (wFound) {wTabSrc[i]=wKey + aValue;break;}																						
		 		}																																						
		 		if (!wFound) {																																		
		 			wRes=xQsAppendKey(aSrc,aKey,aValue);																								
		 		}else{																																					
					for (i=0; i < wTabSrc.length; i++) 																											
		 			{  	if (wRes.length!=0) wRes+="&";																										
						wRes+=wTabSrc[i];																														
					} 																																					
				} 																																						
			}else{																																						
				wRes=wKey + aValue; 																															
			}																																							
			return wRes;																																			
		}																																								

		function xQsAddUnicKeyEntry (aSrc,aEntry)																											
		{	var wRes=aSrc,wTabData;																															
			var wTabEntries=xQsToArray(aEntry,"&");																										
		 	for (var i=0; i < wTabEntries.length; i++) 																											
			{ 	wTabData=xQsToArray(wTabEntries[i],"=");																									
				if (wTabData.length==2) 																															
					wRes=xQsAddUnicKey(wRes,wTabData[0],wTabData[1]);																			
			}																																							
			return wRes;																																			
		}																																								

		function xQsAddUnicEntry (aSrc,aEntry)																												
		{																																								
			if (aSrc.indexOf(aEntry)!=-1) {																														
				return aSrc;																																			
			}else{																																						
				return xQsAppendEntry(aSrc,aEntry);}																											
		}																																								
		function xStrCompare(aStr1,aStr2) {																				
  		if (aStr1==null)																										
  				return (aStr2==null);																						
  		else if (aStr2==null) 																								
  				return (aStr1==null);																						
  		else return (aStr1.toLowerCase()==aStr2.toLowerCase()); 												
		}																															

		function xReloadInput(aInputName) {																						
  		wElmt=cFormObj.elements[aInputName];																
  		if (wElmt!=null)  wElmt.value='$*$xx$*$';														
		}																																			
		function xRemoveCritField(aPrefix,aNum,aFulltxt) {
  		var wInput='';			   																											
  		if (aFulltxt)				   																											
  		wInput=(aPrefix + '_fulltxt_' + aNum).toLowerCase();				   												
  		else				   																													
  		wInput=(aPrefix + '_' + 'xcrit' +  aNum).toLowerCase();				   		
  		var wElmt=cFormObj.elements[wInput];																	
  		if (wElmt!=null)    wElmt.value=''; 																							
  		wElmt=wInput + ';';																				
  		var wFld=cFormObj.elements['XRMC'];											
  		if ((wFld!=null) && (wFld.value.indexOf(wElmt)==-1)) wFld.value=wFld.value + wElmt;				
		}																																			

		function xRemoveFormField(aFldName) {																			
  		wFld=cFormObj.elements['XRMF'];										
  		wElmt=aFldName.toLowerCase() + ';';												
  		if ((wFld!=null) && (wFld.value.indexOf(wElmt)==-1)) wFld.value=wFld.value + wElmt;				
		}																															

		function xSetCookie( jscookie, value, expires, path) {															
			var wDate,curCookie =  jscookie + "=" + escape(value);													
			if (expires!=null) curCookie=curCookie + "; expires=" + expires.toGMTString();						
			if (path!=null) path=curCookie + "; path=" + path;															
			document.cookie = curCookie;																					
		}																															

		function xGetCookie(name) {																								
       	var prefix = name + "=";																									
      	var cookieStartIndex = document.cookie.indexOf(prefix);															
      	if (cookieStartIndex == -1)																								
                return null;																												
        	var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + 	prefix.length);					
        	if (cookieEndIndex == -1)																								
                cookieEndIndex = document.cookie.length;																		
			return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));		
		}																																	

		function xGetField(aPrefix,aKey,aSuffix,aDefault) {														
  		var wFldName=aPrefix + aKey + aSuffix;																
  		var wElmt=cFormObj.elements[wFldName.toUpperCase()];							
  		if (wElmt!=null) {																							
  			if (aDefault)	return wElmt.defaultValue; else return wElmt.value;							
  		}else																											
  			return '';																									
		}																													

		function xSetField(aPrefix,aKey,aSuffix,aValue) {
  		var wFldName=aPrefix + aKey + aSuffix;
  		var wElmt=cFormObj.elements[wFldName.toUpperCase()];							
  		if (wElmt!=null){ wElmt.value=aValue; } else { log("field " + wFldName.toUpperCase() + " could not be found"); }
		}																													

		function xCurrentPage() {																					
  		return xGetField('','XW','',true).toLowerCase();						
		}																													

		function xSamePage(aPage) {																				
			return aPage=='' | aPage=='xdisplay' | aPage=='xsamepage' | aPage==xCurrentPage();	
		}																													
		function xAppendVar(aQS) {																				
  		var wFldName='XVAR';															
  		var wElmt=cFormObj.elements[wFldName.toUpperCase()];							
  		if ((aQS.length!=0) && (wElmt!=null))    {																
  			wElmt.value=xQsAddUnicKeyEntry(wElmt.value,aQS);										
  		}																												
		}																													

		function xGoto(aPage,aParamUrl) {																		
			var wPage=aPage.toLowerCase();																		
  		if (xSamePage(wPage)) wPage=xCurrentPage();													
 			xSetField('','XWP','',xCurrentPage());								
  		xSetField('','XW','',wPage);											
			var wCpt=xGetCookie('xadxcpt');													
  		if (wCpt!=null) xSetField('','XCP','',wCpt);										
      	if (cFormObj.action.indexOf(aParamUrl) == -1)											
    		{cFormObj.action+=aParamUrl;}																
		}																													

		var gIsSubAction=false,gDoSubmit=true;																	

		function xDnlkObj(aPage,aDynLink,aParamUrl,aRefineCurReq,aSortInfos,aSelInfos,aActInfos,aSelData,aActData,aUserVar,aObj,aFormObj) {
                cFormObj=aFormObj;
		this.Page=aPage;
 	 	this.DynLink=aDynLink;
 	 	this.ParamUrl=aParamUrl;
 	 	this.RefineCurReq=aRefineCurReq;
 	 	this.SortInfos=aSortInfos;
 	 	this.SelInfos=aSelInfos;
 	 	this.ActInfos=aActInfos;
 	 	this.SelData=aSelData;
 	 	this.ActData=aActData;
 	 	this.UserVar=aUserVar;
		this.Event= window.event;
		if (aObj === undefined) this.Obj==null; else this.Obj=aObj;
                if (this.Obj!=null) { 
                  var thisaction=null;
                  var splitaction=null;
                  var splitactioncolon=null;
                  var actionprotocol=null;
                  var newaction="";
                  //if Obj is true, means that the protocol should be https (not http)
                  if(this.Obj==true) {
                    //alert("gXtendHttps" + gXtendHttps);
                    //log("this.Obj (https)=" + this.Obj);
                    //log("aFormObj.action=" + thisaction);
                    thisaction=aFormObj.action
                    splitaction=thisaction.split("/");
                    splitactioncolon=thisaction.split(":");
                    actionprotocol=splitactioncolon[0];
                    if(actionprotocol.toLowerCase()=="http") {
                      newaction="";
                      for(cnt = 0; cnt < splitaction.length; cnt++){
                        if(cnt>2) {
                          newaction="/" + newaction + splitaction[cnt];
                          //log("splitaction[" + cnt + "]=" + splitaction[cnt]);
                        }
                      }
                      aFormObj.action=gXtendHttps + newaction;
                    } else if(splitactioncolon.length==1) {
                      //alert("no https");
                      aFormObj.action=gXtendHttps + aFormObj.action;
                    }
                  } else if (this.Obj==false) {
                    thisaction=aFormObj.action
                    splitaction=thisaction.split("/");
                    splitactioncolon=thisaction.split(":");
                    actionprotocol=splitactioncolon[0];
                    if(actionprotocol.toLowerCase()=="https") {
                      newaction="";
                      for(cnt = 0; cnt < splitaction.length; cnt++){
                        if(cnt>2) {
                          newaction="/" + newaction + splitaction[cnt];
                        }
                      }
                      aFormObj.action=gXtendHttp + newaction;
                    } else if(splitactioncolon.length==1) {
                      //alert("no https");
                      aFormObj.action=gXtendHttp + aFormObj.action;
                    }
                  }
                }
		//if (this.Obj!=null) this.Obj.blur();
 	 	this.Execute= xDnlkObjExecute;																												
 	 }      																																						

function xDnlkObjExecute() {
  var wSelInfos,wSelData,wSortInfo,wSortInfos;
  if (this.SelInfos.length!=0 && this.RefineCurReq) {
    //Selection with refine current request, append ReqInfo and ReqData to Current request										
    wSelInfos=xQsAddUnicEntry (xGetField('','DLKRPI',''),this.SelInfos,true);
    wSelData=xQsAddUnicEntry (xGetField('','DLKRPD',''),this.SelData,true);
  } else if (this.SelInfos.length==0 && xSamePage(this.Page)) {
    //SamePage without selection - Current request is propagated without change
    wSelInfos=xGetField('','DLKRPI','');
    wSelData=xGetField('','DLKRPD','');	
  } else {
    //NoSelection or selection without refine current request, overwrite Current request with ReqInfo and ReqData 		     
    wSelInfos=this.SelInfos;
    wSelData=this.SelData; 
  }
  xSetField('','DLKRCI','',wSelInfos);
  xSetField('','DLKRCD','',wSelData);
  xSetField('','DLKAPI','',this.ActInfos);
  xSetField('','DLKAPD','',this.ActData);
  xSetField('','DLKACI','',this.ActInfos);
  xSetField('','DLKACD','',this.ActData);
  if (this.SortInfos.length==0 && xSamePage(this.Page)) {
    wSortInfos=xGetField('','DLKSPI','');		//Sort infos is propagated
  } else {
    wSortInfos=this.SortInfos;  //Sort info is overwrited
  }
  xSetField('','DLKSCI','',wSortInfos);
  xAppendVar(this.UserVar);
  //alert("Try to go to" +this.Page);  
  xGoto(this.Page,this.ParamUrl);	
}

	    // !! aEvent!=null only if this function is called from a javascript event onclick, onchange..													
		function xDoSimpleLink(aPage,aDynLinkName,aHasAction,aSubmit,aObj) {																
       	var wActInfo='';																																		
       	if (aHasAction) wActInfo='xan=' + aDynLinkName;															
            xDoDynamicLink(new xDnlkObj(aPage,aDynLinkName,'',false,'','',wActInfo,'','','',aObj));											
 	 	if (aSubmit) xDoSubmit(aDynLinkName);      																										
 	 }      																																							

		function xBlocGotoPage (aBlocName,aPageNb,aObj) {																						
       	xSetField('',aBlocName + '_PG','',aPageNb);																	
       	xDoSimpleLink('xsamepage','xlksamepage',false,true,aObj);	   								 	 	
 	 }      																																							

	function xDoDynamicLink(aDlkParam, aFormObj)
	{																				
                        cFormObj=aFormObj;
		 //log("xDoDynamicLink(aDlkParam=" + aDlkParam + " , aFormObj=" + aFormObj +")" + "cFormObj=" + cFormObj); 
 			if (! gIsSubAction)
			{// Previous link has no action
				if (typeof(xDoMyDynamicLink) == "function") 
					gDoSubmit=xDoMyDynamicLink(aDlkParam);
				else 
					gDoSubmit=true;	
				if (gDoSubmit)
				{
					gIsSubAction = (aDlkParam.ActInfos != "");// to stop action double-click
					aDlkParam.Execute(); 
				}
		    }else{
              CancelEvent(aDlkParam.Event);  //Cancel Href
              gDoSubmit=false;
 		 	}
 	 }

   	function Advise(aObj) {																																	
   		alert(aObj.title );																																		
   		return;																																					
		}																																								

   	function xDoSubmit(aDynLink, aFormObj) {
                cFormObj=aFormObj;
			var wContinue=gDoSubmit;																																	
   		if (typeof(xDoMySubmit) == "function") {																											
				wContinue=xDoMySubmit(aDynLink) ;																										
			 } 																																							
			if (wContinue){ 																																			
   			xSetField('','XDLK','',aDynLink);																						
    			//cFormObj.submit();
    			cFormObj.submit();
 		 }      																																						
 		else       																																					
 			 gIsSubAction=false;																																
   		return;																																					
		}																																								



		function xDoBrowseCatNav(aA,aA1,aA2,aPage,aW1,aCateg,aNavName,aObj) {			     
    		xSetField('',aNavName,'_ACT',aA1.toLowerCase());							
    		xSetField('',aNavName,'_CAT',aCateg.toLowerCase());						
    		xSetField('','xA','',aA);																							
    		xSetField('','xA1','',aA1);																						
    		xSetField('','xA2','',aA2);																						
    		xSetField('','xW1','',aW1);																					
    		var re = /\$\*\$/gi;																							
    		var wQsCat ='xnavcat' + '=' + aCateg.replace(re,"/");							
   		xDoDynamicLink(new xDnlkObj(aPage,'xlkselectcateg','',false,'','','','','',wQsCat,aObj));	
		}																														

		function xDoCatSelect(aRoot,aInputVal,aInputCat,aParamUrl,aObj) {								
    		wCat=xGetField('',aInputVal,'');																				
    		if (wCat.length==0) 																							
    			wCat=aRoot;																								
    		else if (aRoot=='/') wCat=aRoot+ wCat; else wCat=aRoot+ '/' + wCat;										
    		wUserVar=aInputCat + "=" + wCat;																													
   		xDoDynamicLink(new xDnlkObj(xCurrentPage(),'xlkselectoption',aParamUrl,false,'','','','','',wUserVar,aObj));	
   		xDoSubmit('xlkselectoption');															
		}


		function xDoNotesViewAction(aactioncode,atkname,aactionparams,aObj) {											
   		xDoDynamicLink(new xDnlkObj('xsamepage',atkname ,'',false,'','','xan=' + aactioncode + '&xab=' + atkname,'',aactionparams,'',aObj));																							
   		xDoSubmit(atkname);																												
		}																																			

		function xDoNotesViewLink(apage,atkname,aentity,aunid,aObj) {														
   		xDoDynamicLink(new xDnlkObj(apage,atkname,'',false,'','xrn='+ atkname,'','xri=' + aunid+ '&xre='+ aentity,'','',aObj));											
   		xDoSubmit(atkname);
		}
		
		
function log(logString) {
  var browser = new Browser();
  if(browser.isIE) {
     try { Debug.write(logString); } catch(e) {}
  } else if(browser.isNS) {
     try { console.log(logString); } catch(e) {}
  } else {
    /* do nothing (no log) */
  }
}

  /**
   * Set the time that the popup (REF: setNewPopup()) was instantiated
   *    so that previous calls that are no longer valid can be discarded
   * REF: jquery (for cross browser compatibility)
   */
  var currentPopupSessionTime;
  function setCurrentPopupSessionTime() {
    var dt=new Date();
    var timeOfInstantiation=dt.getTime();
    currentPopupSessionTime=timeOfInstantiation;
    return timeOfInstantiation;
  }

  /**
   * Update a div with the contents of another url.
   * REF: jquery (for cross browser compatibility)
   */
  function updatePageAndObject(xdlnkobj, aFormObj) {
        cFormObj=aFormObj;
        xdlnkobj.Execute();
        var params
        for ( i = 0; i < cFormObj.elements.length; i++ ) {
          //if (document.myForm.elements[i].type == 'checkbox' )
          //  document.myForm.elements[i].checked = true;
          //log(cFormObj.elements[i].type + ":" + cFormObj.elements[i].name + "=" + cFormObj.elements[i].value);
          if(cFormObj.elements[i].type=="text" | cFormObj.elements[i].type=="hidden" | cFormObj.elements[i].type=="checkbox") {
            var valueStr
            valueStr=cFormObj.elements[i].value
            //log("adding:" + cFormObj.elements[i].name + "=" + valueStr.replace(/&/g, "%26"));
            params=params + "&" + cFormObj.elements[i].name + "=" + valueStr.replace(/&/g, "%26");
          }
        }
        retrieveURL("/xpost", "POST", params, true);
  } 

  /**
   * Update a div with the contents of another url.
   * REF: jquery (for cross browser compatibility)
   */
  function runAjaxForm(aFormObj) {
        cFormObj=aFormObj;
        var params
        for ( i = 0; i < cFormObj.elements.length; i++ ) {
          //if (document.myForm.elements[i].type == 'checkbox' )
          //  document.myForm.elements[i].checked = true;
          //log(cFormObj.elements[i].type + ":" + cFormObj.elements[i].name + "=" + cFormObj.elements[i].value);
          if(cFormObj.elements[i].type=="text" | cFormObj.elements[i].type=="hidden" | cFormObj.elements[i].type=="checkbox") {
            var valueStr
            valueStr=cFormObj.elements[i].value
            //log("adding:" + cFormObj.elements[i].name + "=" + valueStr.replace(/&/g, "%26"));
            params=params + "&" + cFormObj.elements[i].name + "=" + valueStr.replace(/&/g, "%26");
          }
        }
        retrieveURL(cFormObj.action, cFormObj.method, params, true);
  } 

  /**
   * Update a div with the contents of another url.
   * REF: jquery (for cross browser compatibility)
   */
  function updatePage(xdlnkobj, inputs) {
        xdlnkobj.Execute();
        var params
        params="xQuantity="
        params=params + "&XWP=" + xCurrentPage();
        params=params + "&XW=" + cFormObj.XW.value;
        params=params + "&XS=" + cFormObj.XS.value;
        params=params + "&DLKRPI=" + cFormObj.DLKRPI.value;
        params=params + "&DLKRCI=" + cFormObj.DLKRCI.value;
        params=params + "&DLKACI=" + cFormObj.DLKACI.value;
        //params=params + '&DLKACD=xcurrent.xtditpartnum=' + partno + '&xcurrent.xtditqtyreq=';
        //why doesn't this work??
        params=params + "&DLKACD=" + cFormObj.DLKACD.value;
        params=params + "&DLKAPI=" + cFormObj.DLKAPI.value;
        //params=params + '&DLKAPD=xcurrent.xtditpartnum=' + partno + '&xcurrent.xtditqtyreq=';
        //why doesn't this work??
        params=params + "&DLKAPD=" + cFormObj.DLKAPD.value;
        params=params + "&XDLK=" + cFormObj.XDLK.value;
        params=params + "&xadxsessionid=" + cFormObj.XS.value;
        for (cnt=0;cnt<inputs.length;cnt++)
        {
          params=params + "&" + inputs[cnt][0] + "=" + inputs[cnt][1]
        }
        retrieveURL("/xpost", "POST", params, true);
  } 

  /*
   * Set as the callback method for when XmlHttpRequest State Changes
   * used by retrieveUrl
   * REF: retrievURL
  */
  function processStateChange() {
    
    if (req.readyState == 4) { // Complete
      if (req.status == 200) { // OK response
          
      //Split the text response into Span elements
      spanElements = 
          splitTextIntoSpan(req.responseText);
      
      //Use these span elements to update the page
      replaceExistingWithNewHtml(spanElements);
      
      } else {
        log("Problem with server response:\n " 
          + req.statusText);
      }
    }
  }

  function replaceExistingWithNewHtml 
          (newTextElements){
   
    //loop through newTextElements
    for(var i=newTextElements.length-1;i>=0;--i){
    
      //check that this begins with <span
      if(newTextElements[i]. 
          indexOf("<span")>-1){
                          
            //get the span name - sits
        // between the 1st and 2nd quote mark
        //Make sure your spans are in the format
        //<span id="someName">NewContent</span>
            startNamePos=newTextElements[i]. 
                indexOf('"')+1;
        endNamePos=newTextElements[i]. 
                indexOf('"',startNamePos);
        name=newTextElements[i]. 
                substring(startNamePos,endNamePos);
                          
        //get the content - everything 
        // after the first > mark
        startContentPos=newTextElements[i]. 
                 indexOf('>')+1; 
        content=newTextElements[i].
                 substring(startContentPos);
                          
        //Now update the existing Document 
        // with this element, checking that 
        // this element exists in the document
        if(document.getElementById(name)){
                   document.getElementById(name). 
                   innerHTML = content;
        }
      }
    }
  }
  
  function splitTextIntoSpan(textToSplit){
   
    //Split the document
    returnElements=textToSplit. 
              split("</span>")
          
    //Process each of the elements        
    for(var i=returnElements.length-1;i>=0;--i){
                  
      //Remove everything before the 1st span
      spanPos = returnElements[i]. 
               indexOf("<span");               
                  
      //if we find a match, take out 
      //everything before the span
      if(spanPos>0){
            subString=returnElements[i].
                substring(spanPos);
            returnElements[i]=subString;
      } 
    }
    return returnElements;
  }

  /**
   * Get the contents of the URL 
   * url - to get content from 
   * method - http method (GET or POST)
   * params - params to pass to the url
   * isAsynchronous - boolean - whether to make call synchronously or not
   *
   */
  function retrieveURL(url, method, params, isAsynchronous) {
    //Do the Ajax call
    if (window.XMLHttpRequest) { // Non-IE browsers
      req = new XMLHttpRequest();
      req.onreadystatechange = processStateChange;
      try {
        req.open(method, url, isAsynchronous); //was get
      } catch (e) {
        log("Problem Communicating with Server\n"+e);
        return false;
      }
      req.send(params);
      return true;
    } else if (window.ActiveXObject) { // IE
  
      req = new ActiveXObject("Microsoft.XMLHTTP");
      if (req) {
        req.onreadystatechange = processStateChange;
        req.open(method, url, isAsynchronous);
        req.send(params);
        return true;
      } else {
        return false;
      }
    }
    log("!! Xml Object type not found\n");
    return false;
  }
  
  /**
   * Get the contents of the URL 
   * url - to get content from 
   * method - http method (GET or POST)
   * params - params to pass to the url
   *
   */
  function runUrl(url, method, params) {
    //Do the Ajax call
    if (window.XMLHttpRequest) { // Non-IE browsers
      req = new XMLHttpRequest();
      req.onreadystatechange = ignoreStateChange;
      try {
        req.open(method, url, true); //was get
      } catch (e) {
        log("Problem Communicating with Server\n"+e);
        return false;
      }
      req.send(params);
      return true;
    } else if (window.ActiveXObject) { // IE
  
      req = new ActiveXObject("Microsoft.XMLHTTP");
      if (req) {
        req.onreadystatechange = ignoreStateChange;
        req.open(method, url, true);
        req.send(params);
        return true;
      } else {
        return false;
      }
    }
    log("!! Xml Object type not found\n");
    return false;
  }

  /*
   * Set as the callback method for when XmlHttpRequest State Changes
   * used by retrieveUrl
   * REF: retrievURL
   */
  function ignoreStateChange() {

    if (req.readyState == 4) { // Complete
      if (req.status == 200) { // OK response

        //Split the text response into Span elements
        //spanElements =
        //  splitTextIntoSpan(req.responseText);

        //Use these span elements to update the page
        //replaceExistingWithNewHtml(spanElements);

      } else {
        log("Problem with server response:\n "
            + req.statusText);
      }
    }
  }

/**
 * runs page, but ignores output
 * REF: jquery (for cross browser compatibility)
 */
function runPage(dynlink, inputs) {
  var params
  for (cnt=0;cnt<inputs.length;cnt++)
  {
    if(cnt==0) {
      params=inputs[cnt][0]+ "=" + inputs[cnt][1];
    } else {
      params=params + "&" + inputs[cnt][0] + "=" + inputs[cnt][1];
    }
  }
  runUrl("/xlink/"+dynlink, "POST", params);
}
