<!--

function checkFeaturesSelected(strFtrType, strFtr) {
    var objDropDown= GetObject("chk_" + strFtrType + "_" + strFtr);
	//objDropDown.checked = false ;

	for( var k=0; k<displayedFeatures.length; k++ ){
		var ftgFromKey = displayedFeatures[k].featKey.split("/");
		var ftg = "chk_" + strFtrType + "_" + strFtr;
		if ( ftgFromKey[0] ==  ftg) {
			var ele = GetObject(displayedFeatures[k].featKey);
			if (objDropDown.checked == false)
				ele.checked = false;
		}
	}
}

function ShowMore( strDDName, cols){
    cols = (cols < 1)?1:cols;
	var obj = GetObject("extension_" + strDDName );
	if (GetObject( 'extension_'+ strDDName ).style.display !='none') {
		GetObject( 'extension_'+ strDDName ).style.display  = 'none';
		GetObject('text_show_'+ strDDName).innerHTML= 'View More Options';
		GetObject('icon_plus_minus_'+strDDName).src= '../images/arrow_bluepx_dn.gif' ;
	} else {
		GetObject('extension_'+ strDDName).style.display  = 'block';
		GetObject('text_show_'+ strDDName).innerHTML= 'View Less Options';
		GetObject('icon_plus_minus_'+strDDName).src= '../images/arrow_bluepx_up.gif' ;
	}
} // eof ShowMore

function GetObject( strObjectName ) {
	var objItem;
	if (document.all) {
		objItem = document.all[strObjectName];
	}
         else if (document.getElementById) {
		objItem = document.getElementById(strObjectName) ;
	}
	return objItem;

}

var boolMenuClicked = false;
function ClickCheck() {
	if (!boolMenuClicked){
		strLastDisplay  = GetObject("hidLastDisplay").value ;
		toggleMenu3( strLastDisplay );
	}
	boolMenuClicked = false;
}

function Void()
{}

function WasClicked(){
	boolMenuClicked = true;
}

function toggleMenu(sublink,strFtrType,strFtr) {
    /*
    if(document.getElementById(sublink).style.display == 'none')
	document.getElementById(sublink).style.display = 'block';
    else
	document.getElementById(sublink).style.display = 'none';

	document.all["chk_" + strType + "_" + strName].checked = !(document.all["chk_" + strType + "_" + strName].checked);
	*/

    var objDropDown= GetObject("chk_" + strFtrType + "_" + strFtr);

	//document.all["chk_" + strType + "_" + strName].checked = true;
	objDropDown.checked =true ;
	processFilterFormSubmit(strFtrType);
}

function resetMfrFeatures(featureType) {
	resetFeatures(featureType);
}

function resetFeatures(featureType) {
	
	var elem = eval("document."+"fname_"+featureType).elements;
	
	var searchToken = "";
	for(var i=0; i< elem.length; i++)
	{
		if(elem[i].type == "checkbox") {
			if((elem[i].checked == true) && !(elem[i].name.indexOf(featureType) >=0 ) )
				searchToken += featureType + "/" + elem[i].value + " ";
		}
	}
	
	if(searchToken == "")
		searchToken = featureType;

	var filterGroupFtr = 1;//feature filter group is 1
	processFilterLink(searchToken, filterGroupFtr);
}

function toggleMenu4(strFtrType,strFtr) {
	var parentChkObj = GetObject("chk_" + strFtrType + "_" + strFtr);
	parentChkObj.checked = true;
	var drillDown = strFtrType + "/" + strFtr;
	processFilterSubmit(strFtrType, drillDown);
}

function toggleMfrMenu4 (strFtrType,strFtr) {
	var parentChkObj = GetObject("chk_" + strFtrType + "_" + strFtr);
	parentChkObj.checked = true;
	processFilterSubmit(strFtrType);
}

function toggleMenu5(sublink,strFtrType,strFtr, strFeature) {
    var objDropDown= GetObject("chk_" + strFtrType + "_" + strFtr+"/"+strFeature);
	objDropDown.checked =true ;
	var parentChkObj = GetObject("chk_" + strFtrType + "_" + strFtr);
	parentChkObj.checked = true;
	processFilterFormSubmit(strFtrType);
}



function featureClicked(theCBox)
{
	var chBoxID = theCBox.id;
	var parentName = chBoxID.substring(0, chBoxID.lastIndexOf('/'));
	parentName = parentName.substring(0, parentName.lastIndexOf('/'));
	var parentChkObj = GetObject(parentName);
	parentChkObj.checked = true;
}

function toggleFeature(ftrKey, featureType, mainLayer, reset)
{
	// Do not do anything if the FT is manuacturer
	if (featureType == "FT_2")
	{
		toggleMenu("",featureType,ftrKey);
		return;
	}

	var allLayers = document.getElementsByName("div_" + featureType + "_" + ftrKey);//get features' layers
	var isShowingFeatures = false;
	var resetEle = document.getElementById('reset_'+featureType);

	for (var i=0;i<allLayers.length;i++)
	{
    	if(allLayers[i].style.display == 'none' && reset == false)
    	{
    		isShowingFeatures = true;
			allLayers[i].style.display = 'block';
			resetEle.style.display  = 'block';
		}
    	else
    	{
			allLayers[i].style.display = 'none';
			resetEle.style.display  = 'none';
		}
	}

	if( isShowingFeatures )
	{
		// Hide all the main featuretype such Manufactuerer, Version, Resolution etc
		// except this main featuretype
		for( var jj=0; jj<mainDivsTags.length; jj++ )
		{
			if ( mainLayer != mainDivsTags[jj] )
			{
				var featureTypeLayer = GetObject(mainDivsTags[jj]);
				featureTypeLayer.style.display = 'none';
			}
		}

		var selectedftrType = "div_ftrType_"+featureType+"_"+ftrKey;
		//hide the other featurekeys too in the same level
		// eg. if showing 12-16ms then down show 17-21ms, 21-25ms etc
		for( var i=0; i<displayedFeatureTypes.length; i++ )
		{
			//alert(displayedFeatureTypes[i]);
			if ( displayedFeatureTypes[i] != selectedftrType )
			{
				var ftrTypeLayer = GetObject(displayedFeatureTypes[i]);
				if (ftrTypeLayer.style.display == 'block')
					ftrTypeLayer.style.display = 'none';
			}

		}

		// Hide 'view more' button if the features are showing
		var viewMoreLayer = document.getElementById("viewmore"+featureType);
		if(viewMoreLayer)
		{ viewMoreLayer.style.display = 'none'; }

	}
	else
	{
		// Show all the main tabs such Manufactuerer
		for( var jj=0; jj<mainDivsTags.length; jj++ )
		{
			if ( mainLayer != mainDivsTags[jj] )
			{
				var featureTypeLayer = GetObject(mainDivsTags[jj]);
				featureTypeLayer.style.display = 'block';
			}
		}
		var selectedftrType = "div_ftrType_"+featureType+"_"+ftrKey;
		//hide the other featurekeys too in the same level
		// eg. if showing 12-16ms then down show 17-21ms, 21-25ms etc
		for( var i=0; i<displayedFeatureTypes.length; i++ )
		{
			if ( displayedFeatureTypes[i] != selectedftrType )
			{
				var ftrTypeLayer = GetObject(displayedFeatureTypes[i]);
				if (ftrTypeLayer.style.display == 'none')
					ftrTypeLayer.style.display = 'block';

			}
		}

		// show 'view more' button if the features are NOT showing
		var viewMoreLayer = document.getElementById("viewmore"+featureType);
		if(viewMoreLayer)
		{
			// Display 'View More' only if the extension is not shown
			var extensionLayer = document.getElementById("extension_" + featureType);
			if( (!extensionLayer) || (extensionLayer.style.display != 'block'))
			{
				viewMoreLayer.style.display = 'block';
			}
		}

	}

}

function removeFilter(strFtrType, strFtr)
{
    var objDropDown= GetObject("chk_" + strFtrType + "_" + strFtr);
	objDropDown.checked =false ;

	for( var k=0; k<displayedFeatures.length; k++ ){
		var ftgFromKey = displayedFeatures[k].featKey.split("/");
		var ftg = "chk_" + strFtrType + "_" + strFtr;
		if ( ftgFromKey[0] ==  ftg) {
			var ele = GetObject(displayedFeatures[k].featKey);
			ele.checked = false;
		}
	}

	var allLayers = document.getElementsByName("div_" + strFtrType + "_" + strFtrType);
	for (var i=0;i<allLayers.length;i++)
	{
    	if(allLayers[i].style.display == 'none' && reset == false)
    	{
    		isShowingFeatures = true;
			allLayers[i].style.display = 'block';
			resetEle.style.display  = 'block';
		}
    	else
    	{
			allLayers[i].style.display = 'none';
			resetEle.style.display  = 'none';
		}
	}

	//check if removal will reduce product count to zero
	var cnt = checkProductCount(strFtrType) ;
	var flag = true ;
	if (cnt == 0) {
		var strFtrName;
		var obj = getObjectByKey(strFtr);
		if(obj != "null")
			strFtrName = obj.name;
		else
			strFtrName = "Deleting option";

		var strFtrTypeName;
		obj = getObjectByKey(strFtrType);
		if(obj != "null")
			strFtrTypeName = obj.name;
		else
			strFtrTypeName = "Deleting option";

		if ( confirm ( strFtrName  + " is the only available " + strFtrTypeName + " within your selection. Removing it will reset your " + strFtrTypeName + " selection" )  ) {
			MassCheck('off', strFtrType) ;
			flag = true ;
		}
		else {
			objDropDown.checked = true ;
			flag = false ;
		}
	}

	if (flag) {
		processFilterFormSubmit(strFtrType);
	}
}

function checkProductCount(strFtrType)
{
	var elem = eval("document."+"fname_"+strFtrType).elements;

	var prodCount = 0 ;
	var isChecked = false;
	for(var i=0; i< elem.length; i++)
	{
		if(elem[i].type == "checkbox") {
			if(elem[i].checked == true) {
				isChecked = true;
				//check corresponding product count
				var tCntSpan = "ftrcount_" + strFtrType + "_" + elem[i].value ;

				if( elem[i].value.indexOf('/') >= 0 )
				{
					strCnt = "1";
				}
				else
				{
					var strCnt = GetObject(tCntSpan).value ;
					if(strCnt == "")
						strCnt = "1";
				}

				prodCount += parseInt(strCnt) ;
			}
		}
	}
	if(isChecked)
		return prodCount ;
	else
		return -1;
}

// This function replaces all instances of findStr in oldStr with repStr.

function replaceAll(oldStr,findStr,repStr) {
  var srchNdx = 0;  // srchNdx will keep track of where in the whole line
                    // of oldStr are we searching.
  var newStr = "";  // newStr will hold the altered version of oldStr.
  while (oldStr.indexOf(findStr,srchNdx) != -1)
                    // As long as there are strings to replace, this loop
                    // will run.
  {
    newStr += oldStr.substring(srchNdx,oldStr.indexOf(findStr,srchNdx));
                    // Put it all the unaltered text from one findStr to
                    // the next findStr into newStr.
    newStr += repStr;
                    // Instead of putting the old string, put in the
                    // new string instead.
    srchNdx = (oldStr.indexOf(findStr,srchNdx) + findStr.length);
                    // Now jump to the next chunk of text till the next findStr.
  }
  newStr += oldStr.substring(srchNdx,oldStr.length);
                    // Put whatever's left into newStr.
  return newStr;
}

function removeCategoryFilter(searchTerm)
{
	var curSearchTerm = replaceAll(searchTerm,'\174','\042');
	document.queryHeader.SubOp.value = "Remove";
	clearBreadCrumbString =  false;
	processFilterLink(curSearchTerm, 0);
}

function removeSearchTerm(searchTerm)
{
	var curSearchTerm = replaceAll(searchTerm,'\174','\042');
	document.queryHeader.SubOp.value = "Remove";
	processFilterLink(curSearchTerm, 2);
}


function removePlatformTerm(searchTerm)
{
	document.queryHeader.SubOp.value = "Remove";
	processFilterLink(searchTerm, 5);
}

function removeInStock()
{
	document.queryHeader.SubOp.value = "Remove";
	processFilterLink("Y", 3);
}

function removeTopSelling()
{
	document.queryHeader.SubOp.value = "Remove";
	processFilterLink("Y", 9);
}
function removeNewSelling()
{
	document.queryHeader.SubOp.value = "Remove";
	processFilterLink("Y", 10);
}
function removeFreightOptions(value)
{
	document.queryHeader.SubOp.value = "Remove";
	processFilterLink(value, 11);
}
function removeExtendedCatalog()
{
	document.queryHeader.SubOp.value = "Remove";
	processFilterLink("Y", 6);
}

function removePriceRange(price)
{
	document.queryHeader.SubOp.value = "Remove";
	processFilterLink(price, 4);
}

function removePerfCode(perfcode)
{
	clearBreadCrumbString =  false;
	document.queryHeader.SubOp.value = "Remove";
	processFilterLink(perfcode, 7);
}

function removeRetekSKU(distiSKU)
{
	clearBreadCrumbString =  false;
	document.queryHeader.SubOp.value = "Remove";
	processFilterLink(distiSKU, 8);
}

function submitSearchTerm()
{
	var filterGroupFtr = 2;//filter group id
	var fname = document.SearchWithinForm.SearchTerm;
	if (fname.value == "") {
		alert("Please enter the search word to search within the result.");
		fname.focus();
		return;
	}
	else if (!validateSearchForm(fname)) {
		fname.focus();
		return;
	}
	processFilterLink(fname.value, filterGroupFtr);
}

function processFilterSubmitReset(strFtrType)
{
	var cnt = checkProductCount(strFtrType) ;
	var flag = true ;
	if (cnt <= 0) {
		alert ( "'No search filtering options are selected. Please select one \nor more and then click on submit to continue. " );
			return;
	}

	if (flag) {
		processFilterFormSubmit(strFtrType);
	}
}

function processFilterSubmit(strFtrType)
{
	var cnt = checkProductCount(strFtrType) ;
	var flag = true ;
	if (cnt <= 0) {
		alert ( "Your have not selected any options. Please select one\nor more and then click on submit to continue. " );
			return;
	}

	if (flag) {
		processFilterFormSubmit(strFtrType);
	}
}

function processFilterFormSubmit(strFtrType)
{
	var elem = eval("document."+"fname_"+strFtrType).elements;

	var searchToken = "";
	for(var i=0; i< elem.length; i++)
	{
		//alert ('searchToken :: '+strFtrType);
		if(elem[i].type == "checkbox") {
			if(elem[i].checked == true)
				searchToken += strFtrType + "/" + elem[i].value + " ";
		}
	}
	if(searchToken == "")
		searchToken = strFtrType;
//	if(searchToken.indexOf(",") > 0)
//		searchToken = searchToken.substring(0, searchToken.length-1);
	//alert ('searchToken :: '+searchToken);

	var filterGroupFtr = 1;//feature filter group is 1
	processFilterLink(searchToken, filterGroupFtr);
}

function processPriceFormSubmit()
{
	var fname = this.document.priceRangeForm;
	var filterGroupPrice = 4;
	var priceFrom = fname.PriceFrom.value;
	if (priceFrom != null)
		priceFrom = priceFrom.replace(/[\$\, ]/g, '');

	var priceTo = fname.PriceTo.value;
	if (priceTo != null)
		priceTo = priceTo.replace(/[\$\, ]/g, '');

	if(priceFrom == "" && priceTo == "") {
		alert("Please enter a price range then submit.");
		return;
	}

	if (priceFrom != "" && !IsFloat(priceFrom)) {
		alert("<cmgt:text id='cmgt_catalog/CatalogAdvancedSearchBody_1' bundle='catalog.CatalogAdvancedSearchBodyResources'>Wrong value format for Price Range From.</cmgt:text>");
		this.document.priceRangeForm.PriceFrom.focus();
		return;

	}
	if(parseFloat(priceFrom) < 0)
	{
		alert("<cmgt:text id='cmgt_catalog/CatalogAdvancedSearchBody_2' bundle='catalog.CatalogAdvancedSearchBodyResources'>Value for Price Range From must be greater or equal to zero.</cmgt:text>");
		this.document.priceRangeForm.PriceFrom.focus();
		return;
	}
	if(priceTo != "" && !IsFloat(priceTo))
	{
		alert("<cmgt:text id='cmgt_catalog/CatalogAdvancedSearchBody_3' bundle='catalog.CatalogAdvancedSearchBodyResources'>Wrong value format for Price Range To.</cmgt:text>");
		this.document.priceRangeForm.PriceTo.focus();
		return;
	}
	if(parseFloat(priceTo) < 0)
	{
		alert("<cmgt:text id='cmgt_catalog/CatalogAdvancedSearchBody_4' bundle='catalog.CatalogAdvancedSearchBodyResources'>Value for Price Range To must be greater or equal to zero.</cmgt:text>");
		this.document.priceRangeForm.PriceTo.focus();
		return;
	}

	if(priceFrom != "" && priceTo != "" && parseFloat(priceFrom) > parseFloat(priceTo))
	{
		alert("<cmgt:text id='cmgt_catalog/CatalogAdvancedSearchBody_5' bundle='catalog.CatalogAdvancedSearchBodyResources'>Invalid search term, value for Price Range From is greater than value for Price Range To.</cmgt:text>");
		return;
	}

	priceFrom = parseFloat(priceFrom);
	priceFrom = isNaN(priceFrom) ? "" : priceFrom;
	priceTo = parseFloat(priceTo);
	priceTo = isNaN(priceTo) ? "" : priceTo;

	processFilterLink(priceFrom+" to "+priceTo, filterGroupPrice);
}

function HighLightMenu (strDirection,strParent,strChild){
	var strCellA = "td_" + strParent + "_" + strChild + "_1";
	var strCellB = "td_" + strParent + "_" + strChild + "_2";
	var strSpan = "sp_" + strParent + "_" + strChild ;
	if (strDirection == "on"){
		GetObject(strCellA).className='dd_hover';
		GetObject(strCellB).className='dd_hover';
		GetObject(strSpan).className='dd_red_text';
	} else {
		GetObject(strCellA).className='dd_normal';
		GetObject(strCellB).className='dd_normal';
		GetObject(strSpan).className='dd_black_text';
	}

}
function toggleMenu2(sublink) {
  objDropDown = GetObject( sublink );
  objLastDisplayContainer = GetObject("hidLastDisplay");
  objLastDisplay = GetObject(objLastDisplayContainer.value);

    if(  objDropDown.style.display == 'none'){
		if(objLastDisplay)
			objLastDisplay.style.display = 'none';
		objDropDown.style.display = 'block';
   } else {
		objDropDown.style.display = 'none';
	}
	objLastDisplayContainer.value = objDropDown.id;
}

function toggleMenu3(sublink) {
	if(GetObject(sublink))
		GetObject(sublink).style.display = 'none';
}

function ClearChecks(strChkName) {
	var col_array=GetObject("hid_" + strChkName + "_checks").value.split(",");
	var itemCount=0;
	GetObject("hid_" + strChkName + "_checked_submitted").value = "all";
	GetObject("hidsearchfilternextlevel").value = GetObject("hidsearchfilterprevlevel").value;
	while (itemCount < col_array.length)
 	{
  		if (GetObject("chk_" + strChkName + "_" + col_array[itemCount]).checked == true)
			GetObject("chk_" + strChkName + "_" + col_array[itemCount]).checked = false;
  		itemCount+=1;
  	}
}

function MassCheck(strDir,formName, cnt) {
   var elem = eval("document."+"fname_"+formName).elements;
   var extObj = GetObject( 'extension_'+ formName);
   var extnHidden = true;
   if (extObj != null)
   {
      extnHidden = GetObject( 'extension_'+ formName).style.display  == 'none';
   }

   //Uncheck all the elements
   var elemsize = elem.length;
   var j=0;
   for(var i=0; i< elemsize; i++)
   {
      if(elem[i].type == "checkbox") {
         if ((cnt != null && j >= cnt) && extnHidden)
            break;

         if(strDir == "on")
            elem[i].checked = true;
         else
            elem[i].checked = false;

         j++;
      }
   }
}


function getObjectByKey(key) {
    for(var i=0; i< ftrArray.length; i++) {
		if(ftrArray[i].key == key)
			return ftrArray[i];
	}
	return "null";
}


//-->