// JavaScript Document
	// XTD user context - 
	var gUsrCtx=null;
	var CTX_SRCHKWD='xtdkeyword';
	var CTX_SRCHTYP='xtdtypesearch';
	// List of links under construction
	function isUnderConstruction(aDlkName)
	{	
		if (aDlkName!=null) 
		{
			var wDlk=aDlkName.toLowerCase();
			if (wDlk.indexOf('xtdlkquote')==0)
			{
				alert('Under Construction');
				return true;
			}
			else
				return false;
		}else
			return true;
	}
	// Place dafter TemplateBeginEditable name="head"
	function xBodyOnLoad()
	{
		//document.forms[0].elements[CTX_SRCHKWD].focus(); // Set focus to search input - remove focus from last clicked button -> no action on 'Enter' key
		initUserCtx();	// User context used into html pages
		//alert("initUserCtx();");
		// Use xMyBodyOnLoad  to add specific process on body load
		//alert(typeof(xMyBodyOnLoad));
		if (typeof(xMyBodyOnLoad)=="function")
			xMyBodyOnLoad();
	}
	// Specific process - Called when a user click on an xtend dynlink
	// This process is called for all pages
	function xDoMyDynamicLink(aDlkParam)			
 	{	
		hide("xmsgerp");
		hide("xtdusermsg");
		hide("xmsgbkt");
		hide("xmsg1");
		hide("xmsg2");
		var wContinue=! isUnderConstruction(aDlkParam.DynLink);
		// Process called only if function is declared - Used to personnalize html pages
		if (wContinue && (typeof(xtdDoMyDynamicLink) == "function"))
			wContinue=xtdDoMyDynamicLink(aDlkParam.DynLink,aDlkParam);
		if (!wContinue) CancelEvent(aDlkParam.DynLink);
		return wContinue;
	}
	// Post xtend form - Used form simple dynlink - Token optimization
	function xPostDlk(aObj,aDlkName,aActInfo,aReqData,aUserVar)
	{	
		 //log("xPostDlk(aObj=" + aObj + " , aDlkName=" + aDlkName + " , aActInfo=" + aActInfo + " , aReqData=" + aReqData + " , aUserVar=" + aUserVar +")"); // 20070925 beckes
		 
//alert("xPostDlk(aObj=" + aObj + " , aDlkName=" + aDlkName + " , aActInfo=" + aActInfo + " , aReqData=" + aReqData + " , aUserVar=" + aUserVar +")");
		var wDlk=aDlkName.toLowerCase();
		var wActInfo='xan=' + wDlk + '&xar=*';
		if (aActInfo.length!=0)
			wActInfo=wActInfo + '&' + aActInfo;
		var wReqInfo='xrn=' + wDlk;
                xDoDynamicLink(new xDnlkObj('xdlk',wDlk,'',false,'',wReqInfo,wActInfo,aReqData,'',aUserVar,aObj, aObj), aObj);
		xDoSubmit(wDlk, aObj); 		 		 	
	}
	// Post xtend sort dynlink
	function xPostSort(aObj,aDlkName,aNoMess)
	{
		if (arguments.length==1 || !aNoMess)
		{
			show("xwaiterp1");
		 	//show("xwaiterp2");
		}
		var wDlk=aDlkName.toLowerCase();
		xDoDynamicLink(new xDnlkObj('xsamepage',wDlk,'',false,'xsn=' + wDlk,'','','','','',aObj,aObj),aObj);
		xDoSubmit(wDlk, aObj); 		
	}
	// Post xtend form - Used form simple dynlink - Token optimization
	function xPostAction(aObj,aDynLinkName)
	{	
		//log("xPostAction(aObj=" + aObj + " , aDynLinkName=" + aDynLinkName +")");  // 20070925 beckes
		//alert("xPostAction(aObj=" + aObj + " , aDynLinkName=" + aDynLinkName +")");
		var wDlk=aDynLinkName.toLowerCase(),wBloc='';
		var wPos=wDlk.indexOf('.');
		if (wPos!=-1)
		{
			wBloc=aDynLinkName.substring(0,wPos);
			wDlk=aDynLinkName.substring(wPos+1,wDlk.length);
		}
		var wActInfo='';
		if (wBloc.length!=0)
			wActInfo=wActInfo + '&xab=' + wBloc;
		xPostDlk(aObj,wDlk,wActInfo,'','');
	}
	// Post DynamicLink with ERP action
	function xPostErp(aObj,aDynLinkName)
	{
		//log("xPostErp("+aObj+","+aDynLinkName+")"); // 20070925 beckes
		//alert("xPostErp("+aObj+","+aDynLinkName+")");
		// Show erp wait msg messages
		show("xwaiterp1");
		//show("xwaiterp2");
		xPostAction(aObj,aDynLinkName);
		if (gDoSubmit==false)
		{
			hide("xwaiterp1");
		 	//hide("xwaiterp2");
		}
	}
	// Post DynamicLink with selection
	function xPostSelection(aObj,aDynLinkName,aSelInfo)
	{
		xPostDlk(aObj,aDynLinkName,'',aSelInfo,'');
	}
	function initUserCtx()
	{
		var wCtx=GetInputValue('xtdusrctx');
		if (wCtx!=null)
			gUsrCtx=stringToArray(wCtx,'&')							
		else 
			gUsrCtx=null;
		if (gUsrCtx!=null)
		{
			//Search context - Set search input fields with last input value
			var wTmp=xQSArrayGetValue(gUsrCtx,CTX_SRCHKWD);
			if (wTmp!=null) SetInputValue(CTX_SRCHKWD,wTmp);
			wTmp=xQSArrayGetValue(gUsrCtx,CTX_SRCHTYP);
			if (wTmp!=null) SelectSetVal(CTX_SRCHTYP,wTmp);
		}
	}
	function xtdGetLabelCritName(aCritNum)
	{
		return "xtdProdCritLabel" + aCritNum;
	}
	function xtdGetInputCritName(aCritNum)
	{
		return "xtdProdCrit" + aCritNum;
	}
	// Remove one product search criteria
	function xtdProdSrchRemoveCrit(aCritNum)
	{	// Xtend value
		xRemoveCritField("xtdlksearchprodlst",aCritNum,false);
		// Label
		SetInputValue(xtdGetLabelCritName(aCritNum),"");
		// User input value
		if (aCritNum==1 || aCritNum==8) // INPUT tag criteria
		{
			SetInputValue(xtdGetInputCritName(aCritNum),"");
			if (aCritNum==8)
			{
				//SelectSetVal(CRIT_SEL_CED_METRIC,"");
				//SelectSetVal(CRIT_SEL_CED_INCH,"");
			}
		}
		else 			// SELECT TAG
			SelectSetVal(xtdGetInputCritName(aCritNum),"");
	}
	// Remove all product search criteria
	function xtdProdSrchRemoveAllCrit()
	{
			for (var i=1;i<=8;i++)
				xtdProdSrchRemoveCrit(i);
	}
	// Remove search criteria
	function xtdProdFtSrchRemoveCrit()
	{
		xAppendVar(CTX_SRCHKWD + '=');
		SetInputValue(CTX_SRCHKWD,'');
	}
	// Fulltext search
	function xtdSearch()
	{
		var wKwd=fullTrim(GetInputValue(CTX_SRCHKWD)); 
		if (wKwd.length!=0)
		{
			// Store keyword into Xtend user variable
			xAppendVar(CTX_SRCHKWD + '=' + wKwd) 
			// Store into xtd specific context - Restore keyword into html page
			SetInputValue(CTX_SRCHKWD,wKwd);
			var wTypeSearch=SelectGetVal(CTX_SRCHTYP);
			if(wTypeSearch=='1')
				xPostAction(null,'xtdlkSearchDoc');
			else if(wTypeSearch=='2')
			{
				xtdProdSrchRemoveAllCrit();
				xPostAction(null,'xtdlkSearchProdLstFT');		
			}
		}
		else
		{
			alert('You must input at least one keyword');
			CancelEvent(window.event);
		}
 	}
	function xtdLockSubmit(aObj)
	{
		// Lock submit button or keys press
		return false;
	}
	function nothing()
	{
		CancelEvent(window.event);
	}


// 20070925 beckes	
	function log(logString) {
	   var IE = document.all?true:false
	   if(IE) {
	     try { Debug.write(logString); } catch(e) {}
	   } else {
	     try { console.log(logString); } catch(e) {}
	  }
	 }
