//<SCRIPT> // <- dummy script tag used to enable InterDev syntax coloring
//------------------------------------------------------------------------
// File:    sc_srch.js
//
// Copyright© 2003, i-MARK,INC. All Rights Reserved
//
// WARNING: The information in this file is protected by copyright law
// and international treaty provisions. Unauthorized reproduction or
// distribution of this file, or any portion of it, may result in severe
// criminal and civil penalties, and will be prosecuted to the maximum
// extent possible under the law.  Further, you may not reverse engineer,
// decompile, or disassemble the file.
//------------------------------------------------------------------------

var BOTTOM_MARGIN = 8
var KEY_ENTER = 13;

function cShowPage(prtNo, vid, desc, srchwrd, strStateVar)
{
	var strTblSrc = "../sc_app/c_srchbody.asp?prtNo=" + escape(prtNo) +
	                "&vid=" + escape(vid) +
	                "&desc=" + escape(desc) +
	                "&srchwrd=" + escape(srchwrd) +
	                "&stateVar=" + escape(strStateVar);
    
  imkReplaceLocation(strTblSrc, "c_srchbody");
}

//========================================
function cSrchTblInit(prtNo, vid, desc, srchwrd, rowCount, strStateVar)
{
	var strTblCtrlSrc = "../sc_app/c_tblctrl.asp?prtNo=" + escape(prtNo) +
											"&vid=" + escape(vid) +
											"&desc=" + escape(desc) +
	                    "&srchwrd=" + escape(srchwrd) +
	                    "&rowCount=" + rowCount +
	                    "&stateVar=" + escape(strStateVar);
   
    imkReplaceLocation(strTblCtrlSrc, "c_tblctrl");
}
//========================================
function cSetIFrameHeight()
{
    var obj_bdy =  IsIE4 ? document.all.c_srchbody : document.getElementById("c_srchbody");
    var obj_ctrl = IsIE4 ? document.all.c_tblctrl : document.getElementById("c_tblctrl");
    BOTTOM_MARGIN = 50

    var cy = imkGetClientHeight() - 
             imkGetPageY(obj_bdy) -
             imkGetHeight(obj_ctrl) -
             BOTTOM_MARGIN;
    
    if(cy < 0)
      cy = 0;
    
    obj_bdy.style.height = cy;
    obj_ctrl.style.pixelTop = 
             imkGetPageY(obj_bdy) +
             imkGetHeight(obj_bdy)
}
//========================================
function cInit()
{
  if(IsNN4 == true)
  {
    var theHeader = eval("document.srchhdr");
    var windowHeight = imkGetClientHeight();
    var hdrHeight    = imkGetHeight(theHeader);
  
    imkMoveTo(theHeader, 0, windowHeight - hdrHeight + 4);
  }
  else
  {
    cSetIFrameHeight();
  }
  IsReady = true;
}

//===========================
function srchParts()
{
	// get search criteria
	var strPrtNo     = document.frmSrch.txtSrch.value;
	var strDesc      = document.frmSrch.txtDesc.value;
	var strsrchWrd   = imkGetOptionValue(document.frmSrch.rdsrchwd);
	var strUOM       = imkGetOptionValue(document.frmSrch.rUOM);	
	var flag;

	if (strPrtNo != "" || strDesc != "")
	{
    if (strPrtNo != "" && strPrtNo.length < MIN_PART_NO_LEN)
    {
      alert("Please enter at least two characters of the part number");
      document.frmSrch.txtSrch.focus();			
	    return;
	  }
    else if (strDesc != "" && strDesc.length < MIN_PART_DESC_LEN)
    {
      alert("Please enter at least two characters for the description");
      document.frmSrch.txtDesc.focus();
      return;			
	  }
	  else
	  {	    
			 strDesc = parseString(strDesc);

			 DisplyignoredInfo();	 //check if ignored words exist		 			
			 
			 (document.frmSrch.txtDesc.value == "") ? flag= "No" : flag = "Yes";
			 	
		   var strSrchTblSrc = "c_srchbody.asp?vid=" + escape(view_code) + 
				                   "&prtNo=" + escape(strPrtNo) +
													 "&desc="  + escape(strDesc)  +
													 "&srchwrd=" + escape(strsrchWrd) +
													 "&uom=" + escape(strUOM) +
													 "&msgflag=" + escape(flag);
       sc_ReplaceLocation(strSrchTblSrc, "c_srchbody");
	  }
	}
}

//=========================================================
function DisplyignoredInfo()
{
	 var strmsg = new String(); 
	 var srchSrc = "c_srchmsg.asp?vid=" + escape(view_code);
	 
	 if (unSrchstring != "")
	 {
	  //erase the last , delimiter
		unSrchstring = unSrchstring.substring(0, unSrchstring.length -1);
		
		strmsg = "The following words are ignored in your search: ";
	 	strmsg += "<b>" + unSrchstring + "</b>";
	 }
	 	
	 srchSrc += "&strMsg=" + escape(strmsg);
	 
	 sc_ReplaceLocation(srchSrc, "c_srchmsg");
		
	 unSrchstring = new String();	 //clean up string message
}

//=========================================================
function parseString(txtfld)
{
	var sglQuotepattern = /'([^']*)'/g;
	var dblQuotepattern = /"([^"]*)"/g;
	var whiteSpacepattern = /\s+/g;

	var strWd		 = new String();
	var strTemp  = new String();
	var strInput = new String();
	
	var arrtemp1 = txtfld.match(sglQuotepattern);
	var arrtemp2 = txtfld.match(dblQuotepattern);
	var arrWd;

	//search every word except single quote - original string : txtfld
	strTemp = parseQuote(arrtemp1, txtfld);
		
	//search every word except double quote - original string : strTemp
	strWd = parseQuote(arrtemp2, strTemp);
	
	//erase space at the beginning and end of string 
	strWd = imkTrim(strWd);
	
	arrWd = strWd.split(whiteSpacepattern);
	
	//get final input string format like aa~~bb~~cc~~
	strInput = concatString(arrWd) + 
						 concatString(arrtemp1, sglQuotepattern) + 
						 concatString(arrtemp2, dblQuotepattern);
	
	//get rid of last ~~ delimiter
	strInput = strInput.substring(0, strInput.length - 2);
	
	return strInput;	
}

//=========================================================
function parseQuote(arrQuote, txtfld)
{
	var iStart = 0;
	
	var strWd = new String();
	
	if (arrQuote != null)
	{
		for (var j=0; j<arrQuote.length; j++)
		{
			var pos = txtfld.indexOf(arrQuote[j]);
			var len = arrQuote[j].length;
							
			if (pos != -1)	//find matched quote string
			{
				strWd += txtfld.substring(iStart,pos);
				iStart = pos + len;
			}
		}
	}
	
	//get rest of the string words
	if (iStart < txtfld.length) strWd += txtfld.substring(iStart, txtfld.length);
	
	return strWd;
}
//========================================
function compSrchTblInit(prtNo, vid, rowCount, strStateVar)
{
	var strTblCtrlSrc = "../sc_app/comp_tblctrl.asp?prtNo=" + escape(prtNo) +
											"&vid=" + escape(vid) +
	                    "&rowCount=" + rowCount +
	                    "&stateVar=" + escape(strStateVar);
   
    imkReplaceLocation(strTblCtrlSrc, "c_tblctrl");
}

//=========================================================
function concatString(arrString, parsePattern)
{
	var strTemp = new String();
	
	if (arrString != null)
	{
		for (var i=0; i< arrString.length; i++)
		{
			if (arrString[i] != "")
			{
				if (parsePattern != null)
					arrString[i] = arrString[i].replace(parsePattern, "$1");
			
			  //check if string term length falls below the minimum
			  
			//siv comented out the following three lines to ignore the single digit
			//	if (arrString[i].length < MIN_PART_DESC_LEN)
			//		unSrchstring += arrString[i] + ","
			//  else
					strTemp += arrString[i] + "~~";
			}
		}
	}

	return strTemp;
}

//=========================================================
function clearOthers(tp)
{
	switch (tp)
	{
		case "catNo":
			document.frmSrch.txtDesc.value = "";
			break;

		case "desc":
			document.frmSrch.txtSrch.value = "";
			break;
	}
}

//***************************************************************
function imkCheckEnter(evt)
{
  if(IsIE4 == true)
  {
   if(window.event.keyCode == KEY_ENTER)
   {
	  srchParts();  
    return false; // stop processing this event
   }
  }
  else
  {
    if(evt.which == KEY_ENTER)
    {
			srchParts();	  
      routeEvent(evt); // don't stop processing
    }
  }
}

//***************************************************************
function imkCompCheckEnter(evt)
{
  if(IsIE4 == true)
  {
   if(window.event.keyCode == KEY_ENTER)
   {
	  DoComp_srchParts();  
    return false; // stop processing this event
   }
  }
  else
  {
    if(evt.which == KEY_ENTER)
    {
			DoComp_srchParts();	  
      routeEvent(evt); // don't stop processing
    }
  }
}
//***************************************************************
function CompCheckEnter(evt)
{
  if(IsIE4 == true)
  {
   if(window.event.keyCode == KEY_ENTER)
   {
	  srchParts();  
    return false; // stop processing this event
   }
  }
  else
  {
    if(evt.which == KEY_ENTER)
    {
			CompSrchParts();	  
      routeEvent(evt); // don't stop processing
    }
  }
}

//===========================
function comp_srchParts()
{
	// get search criteria
	var strPrtNo     = document.frmSrch.txtSrch.value;
	var strFamID     = document.frmSrch.famID.value;
	var strPage      = document.frmSrch.txtPage.value;	
	if (document.frmSrch.rUOM[0].checked)
	  var strUom       = 'en';
	else
	  var strUom       = 'si';

	var flag;

	if (strPrtNo != "")
	{
    if (strPrtNo != "" && strPrtNo.length < MIN_PART_NO_LEN)
    {
      alert("Please enter at least two characters of the part number");
      document.frmSrch.txtSrch.focus();			
	    return;
	  }
	  else
	  {	    
		   var strSrchTblSrc = "comp_srchbody.asp?vid=" + escape(view_code) + 
				                   "&prtNo=" + escape(strPrtNo) +
				                   "&famID=" + escape(strFamID) +
				                   "&uom=" + escape(strUom) +				                   
				                   "&stateVar="		 + escape(strPage) +
													 "&msgflag=" + escape(flag);
       sc_ReplaceLocation(strSrchTblSrc, "c_srchbody");
	  }
	}
}


