var partArray = ['cat', 'man', 'prc'];
var narrArray = ['categoryid', 'srchManufacturer', 'srchAmountRange'];

var queryParam 		= Array();
var queryValue 		= Array();
var isQueryString = false;


function pageLoad() {
	
	var selectedSearchOption = getCookie("leftSearchOption");
	if(selectedSearchOption!=null) {
				var searchOptions = document.getElementById('searchOption').options;
				var j=0;
				while(j<searchOptions.length) {
					var currPOption = searchOptions[j];
					if(currPOption.value.toLowerCase()==selectedSearchOption) {
						currPOption.selected=true;
					}
					j++;
				}
	
	}
	
	var requestStringArray = document.location.href.split('/');
	var pageName 		= requestStringArray[3].split('?')[0].toLowerCase();
	//alert(pageName);
	var queryString	= requestStringArray[3].split('?')[1];
	
	if(queryString) {
		isQueryString = true;
		var getArray = queryString.split('&');	
		var i=0;
		while(i<getArray.length) {
				var getParam 	= getArray[i].split('=');
				queryParam[i] = getParam[0].toLowerCase();;
				queryValue[i]	= unescape(getParam[1].toLowerCase())
				i++;
		}
	}
	
	if(pageName=='catalog.aspx') {
		if(isQueryString) {
			setNarrowOptions();
			expandLeftMenus();						
		} else {
			showLeftMenu('cat');
		}
	}
	

	
	
}

function expandLeftMenus() {
	if(queryParam.length==1) {
		var itemIndex = getItemIndex(narrArray, queryParam[0])
		if(itemIndex!=null) {
			showLeftMenu(partArray[itemIndex])
		}
	} else {
		showLeftMenu('cat');
	}
	
}

function getItemIndex(arrName, fieldName) {
	var arrIndex = null;
	for(var i=0; i<arrName.length; i++) {
			if(arrName[i].toLowerCase()==fieldName.toLowerCase()) {
				arrIndex = i;
			}
		}
	return arrIndex;
}

function getFieldValue(fieldName) {
	var arrIndex = null;
	if(isQueryString) {
		arrIndex = getItemIndex(queryParam, fieldName);
	}
	
	if(arrIndex!=null) {
		return (queryValue[arrIndex]);
	} else {
		return(false);
	}
	
}


function setNarrowOptions() {
	for(var i=1; i<narrArray.length; i++) { // category already selected
		var currOptions = document.getElementById(narrArray[i]).options;
		
		var paramSelected = getFieldValue(narrArray[i]);
		
		if(paramSelected!=false) {
			var j=0;
			while(j<currOptions.length) {
				var currPOption = currOptions[j];
					if(currPOption.value.toLowerCase()==paramSelected) {
						currPOption.selected=true;
					}
				j++;
			}
		}
		
		var modelNo = getFieldValue('srchSearchCriteria');
		if(modelNo!=false) {
			document.getElementById('srchSearchCriteria').value = modelNo;
		}
			
				
	}
}

function buildGetParameter(pname, pvalue) {
	return pname + '=' + pvalue.toString().replace(/\s/g, '+') + '&';
}

function changeLocation(pageName, newQuery) {
	
		if(newQuery.length!=0) { 
		var thisQueryString = pageName + '?' + newQuery.substr(0, newQuery.length - 1); // removing trailing '&'
		var requestStringArray = document.location.href.split('/');
		
		if(requestStringArray[3].toLowerCase()!=thisQueryString.toLowerCase()) {
			document.location.href = thisQueryString;
		}
		
	}
}

function catNavigate() {
	
	var isSelected = false;
	var newQueryString = '';
	for(var i=0; i<narrArray.length; i++) {
		isSelected = (document.getElementById(narrArray[i]).value==0)?false:true;
		if(isSelected) {
			newQueryString += buildGetParameter(narrArray[i], document.getElementById(narrArray[i]).value);
		}		
	}
	
	if(document.getElementById('srchSearchCriteria').value!='') {
		newQueryString += buildGetParameter('srchSearchCriteria', document.getElementById('srchSearchCriteria').value);
		newQueryString += buildGetParameter('srchSearchDescriptions', 1)
	}
	
	changeLocation('catalog.aspx', newQueryString); 

	
}

function trimString(str) {
	// trims and normalizes spaces
	var proc = str.replace(/(^\s*)|(\s*$)/g,'');
	proc = proc.replace(/\s+/g, ' ');
	return proc;
}

function log10(m) 
{
var ft = Math.log(m)/Math.log(10);
  return (ft);
}

function catSearch() {
	var srchRequest 		= parseInt(document.getElementById('searchOption').value);
	var newQueryString	= '';
	var srchValue				= trimString(document.getElementById('searchField').value);
	if(srchValue.toLowerCase()!='search information' && srchValue!='') {
		
		srchValue = srchValue.replace(/\s*"/, "IN");

		switch(srchRequest) {
			case 1:
				newQueryString += buildGetParameter('srchCategoryName', srchValue);
				//newQueryString += buildGetParameter('srchSearchDescriptions', 1)
				break; 
			case 2:
				newQueryString += buildGetParameter('srchManufacturer', srchValue);
				//newQueryString += buildGetParameter('srchSearchDescriptions', 1)
				break;
			case 3:
				var priceEntered	 = parseInt(srchValue);
				if(!isNaN(priceEntered)) {
	var order 	= Math.round(log10(priceEntered)+.5)-1;
	var divisor	= Math.pow(10,order);
	
	var priceDivisor = Math.pow(10,order-1)

var midPoint	= Math.floor(priceEntered/divisor)*divisor + priceEntered%divisor;
var percent = Math.round(priceEntered * .1); //10%
					var priceMin 	= (midPoint-percent>=0)?midPoint-percent:0;
					var priceMax	= midPoint+percent;
					
					priceMin =  Math.floor(priceMin/priceDivisor)*priceDivisor;
					priceMax =  Math.ceil(priceMax/priceDivisor)*priceDivisor;
					newQueryString += buildGetParameter('srchAmountRange', priceMin + '-' + priceMax);
				}
				break;
			case 4: 
				newQueryString += buildGetParameter('srchSearchCriteria', srchValue);
				newQueryString += buildGetParameter('srchSearchDescriptions', 1)
				break;
			case 5:
				newQueryString += buildGetParameter('srchSearchCriteria', srchValue);
				//newQueryString += buildGetParameter('srchCategoryName', srchValue);
				newQueryString += buildGetParameter('srchSearchDescriptions', 1)
				break;
		case 6:
		newQueryString += buildGetParameter('srchStockId', srchValue.replace(/\D/g, ''));
				break;
						
		}
		deleteCookie("leftSearchOption");
		setCookie("leftSearchOption", srchRequest)
		
		changeLocation('catalog.aspx', newQueryString); 
	}
	

}


function showItem(item) {
	document.getElementById('leftmenu_' + item).innerHTML = '&#8211;';
	document.getElementById('leftmenu_' + item + '_items').style.display = 'block';
}

function hideItem(item) {
	document.getElementById('leftmenu_' + item).innerHTML = '+';
	document.getElementById('leftmenu_' + item + '_items').style.display = 'none';
}

function showLeftMenu(part) {
	showItem(part);
	for(var i=0; i<partArray.length; i++) {
		if(part!=partArray[i])
			hideItem(partArray[i]);
	}
}


/*
COOKIE FUNCTIONS

*/

function setCookie(name, value) {
  var curCookie = name + "=" + escape(value);
  document.cookie = curCookie;
}

/*
function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
} */

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}


/* function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" + 
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
} */


function deleteCookie(name) {
  if (getCookie(name)) {
    document.cookie = name + "=" + 
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}