<!--
function checkEmail(value) 
{
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(value)){
		return (true);
	}
	else {
		return (false);
	}
}

function trim(sText)
{
	sText = sText.replace(/^\s*|\s*$/g,"");
	
	return sText;
}

function ltrim(stringToTrim) 
{
	return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim) 
{
	return stringToTrim.replace(/\s+$/,"");
}


function IsPosNumber(sText)
{
	var strExp = /^\d*$/;
	var IsNumber = strExp.test(sText);
		
	return IsNumber;

}

function IsDecimal(sText)
{
	var strExp = /^[0-9]*(\.)?[0-9]+$/;
	var IsNumber = strExp.test(sText);
		
	return IsNumber;
}

function IsANumericValue(sText)
{
	var strExp = /^(\d|-)?(\d|,)*\.?\d*$/;
	var IsNumber = strExp.test(sText);

	return IsNumber;
}
function togglediv(id)
{
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		if(document.getElementById(id).style.display == 'none')
		{
			showdiv(id);
		}
		else
		{
			hidediv(id);
		}
	}
	else {
		if (document.layers) { // Netscape 4
			if(document.id.display == 'none')
			{
				showdiv(id);
			}
			else
			{
				hidediv(id);
			}
		}
		else { // IE 4
			if(document.all.id.style.display == 'none')
			{
				showdiv(id);
			}
			else
			{
				hidediv(id);
			}
		}
	}
}

function hidediv(id)
{
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'none';
		}
		else { // IE 4
			document.all.id.style.display = 'none';
		}
	}
}

function showdiv(id)
{
	//safe function to show an element with a specified id
		  
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'block';
		}
		else { // IE 4
			document.all.id.style.display = 'block';
		}
	}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function showElement(elementID, setDisplay, displayType)
{
	var o = MM_findObj(elementID);
	var dtype = 'block';
	if(displayType && displayType != null)
		dtype = displayType;
	if(o){if(o.style)o=o.style;o.visibility='visible'; o.display=dtype;}
}

function hideElement(elementID, setDisplay)
{
	var o = MM_findObj(elementID);
	if(o){if(o.style)o=o.style;o.visibility='hidden'; o.display='none'}
}

function isBlank(inputValue)
{
	return(inputvalue == '' || inputvalue.replace(' ', '') == '');
}

function isNum(inputValue)
{
	var val = parseFloat(inputValue);
	if(isNaN(val))
		return false;
	else
		return true;
}

function isNumGTZero(inputValue)
{
	var val= parseFloat(inputValue);
	if(isNaN(val))
		return false;
	else
	{
		if(val > 0)
			return true;
		else
			return false;
	}
}

function isInt(inputValue)
{
	var val;
	val = parseInt(inputValue);
	if(!(val >= 0) || (val == 0 && (inputValue).substring(0,1) != "0"))
	{
		if(val == 0 && (inputValue).substring(0,1) == "0")
			return true;
		else
			return false;
	}
	else
		return true;
}

function isIntGTZero(inputValue)
{
	var val= parseInt(inputValue);
	if(!(val > 0))
		return false;
	else
		return true;
}

function isElementSelected(element)
{
	var s = new String();
	s = element.options[element.selectedIndex].value;
	if(element.selectedIndex == -1 || s == null || s.length == 0)
		return false;
	else
		return true;
}

function CInteger(inputVal)
{
	var val = parseInt(inputVal);
	if(isNaN(val))
		val = 0;
	return val;
}

function CNumber(inputVal)
{
	var val = parseFloat(inputVal);
	if(isNaN(val))
		return 0;
	else
		return val;
}

function CString(inputVal)
{
	return inputVal.toString();
}

function convertValue(inputVal, toType)
{
	if (!toType)
		toType = "";
	switch(toType.toLowerCase())
	{
		case "number":
		case "float":
		case "decimal":
			return CNumber(inputVal);
			break;
		case "int":
		case "integer":
			return CInteger(inputVal);
			break;
		case "string":
		case "str":
		default:
			return CString(inputVal)
			break;
	}
}

var productAddURL = "include/i_shopping_add2cart.asp";
var productUpdateURL = "include/i_shopping_changeqty2.asp";
var ajaxRequestCount = 0;
var lastElement = "";
var ajaxOverallCounter = 0;



function saveProduct(pid, qty, type, pQtyMultp)
{    

    //alert("type = " + type);
	var insuranceCounter = 10;
	
	//Wait until all processes have finished
	while (ajaxRequestCount > 0 && insuranceCounter > 0)
	{
		setTimeout("", 1000);
		insuranceCounter--;		//Just in case, we don't want the user stuck in an infinite loop
	}
						
	var tmpUrl = "";
	if(type=="add")
	{
		//tmpUrl = productAddURL + "?pid=" + pid + "&qty=" + qty;
		//lastElement = "productAdd"+pid;
		
		var o = MM_findObj("qty"+pid);
		if(!o||o==null)
		{
		//	alert('Something went wrong getting the product qty.'); 
			return false;
		}
		qty = o.value.replace(/ /g, "");
		
		if (qty == 0){
		    alert("Please add more than 0.");
			return false;
		}
		
		tmpUrl = productAddURL + "?pid=" + pid + "&qty=" + qty;
		lastElement = "productAdd"+pid;
		
		
	}
	else
	{
		var o = MM_findObj("qty"+pid);
		if(!o||o==null)
		{
		//	alert('Something went wrong getting the product qty.'); 
			return false;
		}
		qty = o.value.replace(/ /g, "");
		//alert("qty = " + qty);
		tmpUrl = productUpdateURL + "?pid=" + pid + "&qty=" + qty;
		lastElement = "productUpdate"+pid;
	}
	
	ajaxRequestCount++;
	hideElement(lastElement, true);
	showElement("productProgress"+pid, true);
	new Ajax.Request(tmpUrl, {
		method: 'get',
		onSuccess: function(transport) {
		    
		    var rt = transport.responseText;
		    var iPos = rt.indexOf("<");
		    
		    //alert("rt = " + rt);
		    if(iPos > 0)
		    {
		        rt = rt.substring(0, iPos);
		    }
			var arr = rt.split(",");
			if(arr.length >= 3 && arr[0].replace(/ /g, "")=="1")
			{
				var spid = arr[1].replace(/ /g, "");
				var sqty = arr[2].replace(/ /g, "");
				var el = "";
				if(sqty != "" && sqty != "0")
				{
					el = "productUpdate" + spid;
				}
				else
				{
					el = "productAdd" + spid;
				}	
				if  (sqty == 0) 
				{				    
				    MM_findObj("qty"+spid).value = pQtyMultp;
				}
				else
				{
				    MM_findObj("qty"+spid).value = sqty; 
				}										
				hideElement("productProgress"+spid, true);
				showElement(el, true);
				lastElement = "";						                              
			}
			else
			{
			//	alert('Error with add/removing the item to the cart.');
				hideElement("productProgress"+spid, true);
				if (lastElement != "") {showElement(lastElement, true); lastElement = "";}
			}
		},
		onFailure: function(){ 
		//	alert('Something went wrong with add/removing the item to the cart.'); 
			hideElement("productProgress"+spid, true);
			if (lastElement != "") {showElement(lastElement, true); lastElement = "";}
		},
		onComplete: function() {
		    //alert("in onComplete of SaveProduct");
			ajaxRequestCount--;
			lastElement = "";
			document.location.reload();
		}
	});
	
	return true;
}

var productRedirectURL = "shopping_product_detail.asp";

function saveProductAdd(pid, qty, type, pProductHref, pEnv)
{    
    //alert("pid = " + pid");
    //alert("pProductHref = " + pProductHref);
    //alert("pEnv = " + pEnv);
    
	var insuranceCounter = 10;
	
	//Wait until all processes have finished
	while (ajaxRequestCount > 0 && insuranceCounter > 0)
	{
		setTimeout("", 1000);
		insuranceCounter--;		//Just in case, we don't want the user stuck in an infinite loop
	}
						
	var tmpUrl = "";
	if(type=="add")
	{
		tmpUrl = productAddURL + "?pid=" + pid + "&qty=" + qty;
		lastElement = "productAdd"+pid;			
	}
	else
	{
		var o = MM_findObj("qty"+pid);
		if(!o||o==null)
		{
		//	alert('Something went wrong getting the product qty.'); 
			return false;
		}
		qty = o.value.replace(/ /g, "");
		tmpUrl = productUpdateURL + "?pid=" + pid + "&qty=" + qty;
		lastElement = "productUpdate"+pid;
	}
	
	ajaxRequestCount++;
	hideElement(lastElement, true);
	showElement("productProgress"+pid, true);
	new Ajax.Request(tmpUrl, {
		method: 'get',
		onSuccess: function(transport) {
		    var rt = transport.responseText;
		    var iPos = rt.indexOf("<");
		    if(iPos > 0)
		    {
		        rt = rt.substring(0, iPos);
		    }
			var arr = rt.split(",");
			if(arr.length >= 3 && arr[0].replace(/ /g, "")=="1")
			{
				var spid = arr[1].replace(/ /g, "");
				var sqty = arr[2].replace(/ /g, "");
				var el = "";
				if(sqty != "" && sqty != "0")
				{
					el = "productUpdate" + spid;
				}
				else
				{
					el = "productAdd" + spid;
				}
				MM_findObj("qty"+spid).value = sqty;
				hideElement("productProgress"+spid, true);
				showElement(el, true);
				lastElement = "";
			}
			else
			{
			//	alert('Error with add/removing the item to the cart.');
				hideElement("productProgress"+spid, true);
				if (lastElement != "") {showElement(lastElement, true); lastElement = "";}
			}
		},
		onFailure: function(){ 
		//	alert('Something went wrong with add/removing the item to the cart.'); 
			hideElement("productProgress"+spid, true);
			if (lastElement != "") {showElement(lastElement, true); lastElement = "";}
		},
		onComplete: function() {
			ajaxRequestCount--;
			lastElement = "";						
			
			switch (pEnv) {
              case "D": case "L":
                //live and dev
                document.location.href= '/shopping_product_detail.asp?pid=' + pid
                //document.location.href= '/' + pProductHref;
                break;  
              case "T":
                //TEST
                document.location.href="/test/shopping_product_detail.asp?pid=" + pid;
                break;  
              case "S":
                //SANDBOX
                document.location.href="/sandbox/shopping_product_detail.asp?pid=" + pid;
                break;                          
              default:
               document.location.reload();
                break;
            }						
		}
	});
	
	return true;
}


function showProductList(catID){
    var url = 'shopping_product_list.asp?pcid=' + catID;
    //alert('url = ' + url);
    document.location = url;
}

function onMListOver(catID){
    var o = $('mtable' + catID);
   if(o){o.addClassName("tdlinkover");}
}

function onMListOut(catID){
   var o = $('mtable' + catID);
   if(o){o.removeClassName("tdlinkover");}
}

/***** PRODUCT COMPARE *****/
var arrProductCompare = new Array();
var compareCnt = 0;
var maxCompare = 5;
var prodIDPrefix = 'productToCompare';
function compareProduct(id)
{
    var chk = $(prodIDPrefix+id);
    if(chk){
        if(chk.checked)
            addProductToCompare(id);
        else
            removeProductFromCompare(id);
    }
    showProductCompareBtns();
}
function addProductToCompare(id)
{
    var i;
    var comp = false;
    if(compareCnt >= maxCompare){
        $(prodIDPrefix+id).checked=false;
        comp = confirm('Five products are already selected to compare. \nCompare those products now?');
        if(comp)compareProducts(); 
        return false;
    } else {
        if(compareCnt == 0){
            arrProductCompare[0] = id;
            compareCnt++;
        } else {
            for(i=0;i<compareCnt;i++){
                if(arrProductCompare[i] == id) return false;
            }
            arrProductCompare[compareCnt] = id;
            compareCnt++;
        }
    }
    setProductsToCompare();
    return true;
}
function removeProductFromCompare(id)
{
    var iPos = -1;
    var i;
    for(i=0;i<compareCnt;i++){
        if(arrProductCompare[i] == id){iPos = i; break;}
    }
    if(iPos < 0){
        return false;
    } else {
        for(i=iPos;i<compareCnt;i++){
            arrProductCompare[i] = arrProductCompare[i+1];
        }
        compareCnt--;
        arrProductCompare.length = compareCnt;
    }
    setProductsToCompare();
    return true;
}
function compareCount()
{
    return compareCnt;
}
function compareProducts()
{
    if(compareCnt < 1)
        alert('Please select up to three products to compare.');
    else if(compareCnt == 1)
        alert('Please select at least two products to compare.');
    else {
        var qs = '?ids=' + escape(getProductCompareStr());
        if($('compareFromType')) qs += '&type=' + escape($('compareFromType').value);
        if($('compareFromURL')) qs += '&url=' + escape($('compareFromURL').value);
        if($('compareFromID')) qs += '&id=' + escape($('compareFromID').value);
        document.location = 'shopping_product_compare.asp' + qs;
    }
}
function getProductCompareStr()
{
    var ps = '', i;
    for(i=0;i<compareCnt;i++){
        if(ps != '') ps += ',';
        ps += arrProductCompare[i].toString();
    }
    return ps;
}
function setProductsToCompare()
{
    if($('productsToCompare'))
        $('productsToCompare').value = getProductCompareStr();
}
function getProductsToCompare()
{
    if($('productsToCompare'))
        return $('productsToCompare').value;
    else
        return '';
}
function showProductCompareBtns()
{
    var over1, over2, over3, over4, over5;
    if(compareCnt >= 1) over1 = '-on'; else over1 = '';
    if(compareCnt >= 2) over2 = '-on'; else over2 = '';
    if(compareCnt >= 3) over3 = '-on'; else over3 = '';
    if(compareCnt >= 4) over4 = '-on'; else over4 = '';
    if(compareCnt >= 5) over5 = '-on'; else over5 = '';
    if($('compare_1')) $('compare_1').src = './images/compare_1' + over1 + '.gif';
    if($('compare_2')) $('compare_2').src = './images/compare_2' + over2 + '.gif';
    if($('compare_3')) $('compare_3').src = './images/compare_3' + over3 + '.gif';
    if($('compare_4')) $('compare_4').src = './images/compare_4' + over4 + '.gif';
    if($('compare_5')) $('compare_5').src = './images/compare_5' + over5 + '.gif';
}
function initProductCompare()
{
    MM_preloadImages('./images/compare_1-on.gif', './images/compare_2-on.gif', './images/compare_3-on.gif', './images/compare_4-on.gif', './images/compare_5-on.gif', './images/compare_btn-over.gif');
    
    var container = $('productListContainer');
    var i,prods, id, prodID;
    if(container){
        prods = container.select('input[type="checkbox"]');
        for(i=0;i<prods.length;i++){
            if(prods[i].checked){
                id = prods[i].id;
                if(id.length > prodIDPrefix.length && id.substring(0,prodIDPrefix.length) == prodIDPrefix){
                    prodID = id.substr(prodIDPrefix.length);
                    compareProduct(prodID);
                }
            }
        }
    }   
}

/***** END PRODUCT COMPARE *****/

function selectTabLink()
{
    void(0);
}


function PopulateCartItemCount(pContainerID)
{
    //alert("ajaxOverallCounter - " + ajaxOverallCounter);
     

    //alert("test - " + pContainerID);
    var innerHTML;
	new Ajax.Request('./include/i_shopping_ajax_lookup.asp', {
		method: 'post',
		parameters: {Action: 'Get_Cart_Item_Count'},
		onSuccess: function(transport) {
			var retObj = eval("(" + transport.responseText + ")");
			
			if(retObj)
			{
				if(retObj.Message.length == 0)						
				{
					var numItems = retObj.NumItems * 1;
					
					if(numItems == 0) {
						$(pContainerID).update('');
					}
					else {						

                        $(pContainerID).update(numItems);
						
					}
				}
			}
			
			retObj = null;
			
		},		
		onFailure: function(){ 
			alert('Something went wrong'); 
		},				
		onComplete: function() {
		}
	});
}


 function RemoveProductFromCart(pid, pRedirectFlg)
{
    var productUpdateURL = "./include/i_shopping_removeitem_from_cart.asp?pid=" + pid;
    var ajaxRequestCount = 0;
    var lastElement = "";
    //, pRedirectFlg

    var insuranceCounter = 10;   
    // alert("test " + pRedirectFlg);
    
    if (!confirm("Really remove this item from your shopping cart?")) {    	          
	             return false;	          
     }	

    //Wait until all processes have finished
    while (ajaxRequestCount > 0 && insuranceCounter > 0)
    {
        setTimeout("", 1000);
        insuranceCounter--;		//Just in case, we don't want the user stuck in an infinite loop
    }        						
           	
    ajaxRequestCount++;
    //hideElement(lastElement, true);
    //showElement("productProgress"+pid, true);
    new Ajax.Request(productUpdateURL, {
        method: 'get',
        onSuccess: function(transport) {		           
        },
        onFailure: function(){ 
        //	alert('Something went wrong with removing the item from the cart.'); 
	        //hideElement("productProgress"+spid, true);
	        //if (lastElement != "") {showElement(lastElement, true); lastElement = "";}
        },
        onComplete: function() {
	        ajaxRequestCount--;
	        //lastElement = "";
	        createLeftNavCartItems(pRedirectFlg);
	        
        }
    });
	
    return true;
}


function createLeftNavCartItems(pRedirectFlg)
{

    
    //alert("test - " + pGuid)
    //alert("test - " + pRedirectFlg)
    var pContainerID =   "Shopping_Cart_Recent_Items"          
    var productSelectURL = "./include/i_shopping_select_nav_items.asp?redflg=" + pRedirectFlg 
    //var redirectURL = "./shopping_viewcart.asp"
    //, pRedirectFlg
    var ajaxRequestCount = 0;
    var lastElement = "";
    //var pRedirectFlg = "y";

    var insuranceCounter = 10;	        
    
	
    //Wait until all processes have finished
    while (ajaxRequestCount > 0 && insuranceCounter > 0)
    {
        setTimeout("", 1000);
        insuranceCounter--;		//Just in case, we don't want the user stuck in an infinite loop
    }
    
    ajaxRequestCount++;

    //hideElement(lastElement, true);
    //showElement("productProgress"+pid, true);
    new Ajax.Request(productSelectURL, {
        method: 'get',
        onSuccess: function(transport) {
            var rt = transport.responseText;
            //alert("test - " + rt);
            $(pContainerID).update(rt);
           
        },
        onFailure: function(){ 
        //	alert('Something went wrong with add/removing the item to the cart.'); 
	        //hideElement("productProgress"+spid, true);
	        //if (lastElement != "") {showElement(lastElement, true); lastElement = "";}
        },
        onComplete: function() {
	        ajaxRequestCount--;
	        //alert("test " - pRedirectFlg);
	        if (pRedirectFlg == "1")
	        {
	            //alert("test2");
	            document.location.href="shopping_viewcart.asp";
	            //redirectpage();
	        }
	         if (pRedirectFlg == "2")
	        {	            
	            document.location.reload();
	        }
	        
	        if (pRedirectFlg == "3")
	        {	            
	            document.location.reload();
	        }
	        
	        if (pRedirectFlg == "4")
	        {	            
	            document.location.reload();
	        }
	        
	        
//	        if (pRedirectFlg == "2" || pRedirectFlg == "3" || pRedirectFlg == "4" )
//	        {
//	            document.location.reload();
//	            //alert("test2");
//////	            document.location.href="shopping_product_detail.asp";
//////	            document.reload();
//	            //redirectpage();
//	        }
	        //lastElement = "";
        }
    });
	
    return true;
}  

function redirectpage()
{
     document.location.href="shopping_viewcart.asp";
}      					

//-->