String.prototype.endsWith = function(str)
{return (this.match(str+"$")==str)}

String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}

//Function used to set the quantity and product code if they are passed (for consumable reorders)
function getSPVars()
{
        query_string = parent.document.URL.split('?');
        vars = query_string[1].split('&');
        sp_prod = "";
        sp_qty = "";
        for(var i = 0; i < vars.length; i++)
        {
                param = vars[i];
                if(param.indexOf("sp_prod") >= 0)
                {
                        sp_prod = vars[i].split('=')[1];
                }
                else if(param.indexOf("sp_qty") >= 0)
                {
                        sp_qty = vars[i].split('=')[1];
                }
        }

        if(sp_prod)
        {
		if(document.getElementById('productSelect1'))
		{
			var prods = document.getElementById('productSelect1');
			for(var i = 0; i < prods.options.length; i++)
			{
				var opt = prods.options[i].value;
				prod_values = opt.split(';');
				if(sp_prod == prod_values[0].replace('-', ''))
				{
					prods.selectedIndex = i;
					selectProductCode('1', i, prods.options.length, 'product');			
				}
			}
		}
        }

	//12/07/09 ATB - We are not currently worrying about the quantity
        /*if(sp_qty)
        {
                if(document.getElementById('qty') != null)
                {
                        document.getElementById('qty').value = sp_qty;
                }
        }*/
}

//Function used to change the selection in the product code dropdown
function changeSelection(num)
{
	if(num != 0)
	{
		var selObj = document.getElementById('productSelect1');
		selObj.selectedIndex = num;
		selectProductCode('1', selObj.selectedIndex, selObj.options.length, 'product');
	}
}

//Function to update the price label
function updatePrice()
{
	cur_price = 0;
	prod_code = "";
	show_zero = false;
	check_prod_grid = false;
	check_sub_grid = false;
	is_custom = false;
	min_qty = "";

	if(document.getElementById('productSelect1') != null)
	{
		prod_values = document.getElementById('productSelect1').value.split(';');
		if(prod_values[0] == "0" || prod_values[1].indexOf("hidden") >= 0)
		{
			show_zero = true;
		}
		else if(prod_values[1].indexOf("Grid") > 0)
		{
			check_prod_grid = true;
		}
		else
		{
			cur_price = cur_price + parseFloat(prod_values[1]);
		}
		
		if(prod_values[2] == "custom")
		{
			is_custom = true;
		}

		min_qty = prod_values[3];

		prod_code = prod_values[0];
	}
	else if(document.getElementById('productSingle') != null)
	{
		prod_values = document.getElementById('productSingle').title.split(';');
		if(prod_values[1].indexOf("hidden") >= 0)
		{
			show_zero = true;
		}
		else if(prod_values[1].indexOf("Grid") > 0)
		{
			check_prod_grid = true;
		}
		else
		{
			cur_price = cur_price + parseFloat(prod_values[1].replace(',',''));
		}

                if(prod_values[2] == "custom")
                {
                        is_custom = true;
                }

                if(document.getElementById('sample' + prod_values[0]) != null)
                {
                        document.getElementById('sample' + prod_values[0]).style.display = 'block';
                }

		min_qty = prod_values[3];

		prod_code = prod_values[0];
	}

	if(document.getElementById('subSelect1') != null)
	{
		sub_values = document.getElementById('subSelect1').value.split(';');
		if(sub_values[0] == "0" || sub_values[1].indexOf("hidden") >= 0)
		{
			//show_zero = true;
		}
		else if(sub_values[1].indexOf("Grid") > 0)
		{
			check_sub_grid = true;
		}
		else
		{
			cur_price = cur_price + parseFloat(sub_values[1].replace(',', ''));
		}

		if(sub_values[0] != "0")
		{	
			if(prod_code.startsWith('259') || prod_code.startsWith('359'))
			{
				prodMid = prod_code.substring(4, 7);
				subMid = sub_values[0].substring(4, 7);
				
				prodStart = prod_code.substring(0, 3);
				subStart = sub_values[0].substring(0, 3);
				subCode = ""
				subCodeStart = ""
				subCodeMid = ""

				if(subStart != prodStart)
				{
					subCodeStart = prodStart; //+ sub_values[0].substring(3, sub_values[0].length);
				}
				else
				{
					subCodeStart = subStart; //= sub_values[0];
				}

				if(subMid != prodMid)
				{
					subCodeMid = prodMid;
				}
				else
				{
					subCodeMid = subMid;
				}

				subCode = subCodeStart + "-" + subCodeMid + sub_values[0].substring(7, sub_values[0].length);
	
				prod_code = subCode + " and " + prod_code;
			}
			else
			{	
				prod_code = prod_code + " and " + sub_values[0];
			}
		}
	}
	else if(document.getElementById('subSingle') != null)
	{
		sub_values = document.getElementById('subSingle').title.split(';');
		if(sub_values[1].indexOf("hidden") >= 0)
		{
			//show_zero = true;
		}
		else if(sub_values[1].indexOf("Grid") > 0)
		{
			check_sub_grid = true;
		}
		else
		{
			cur_price = cur_price + parseFloat(sub_values[1]);
		}

		if(sub_values[0] != "0")
		{
			if(prod_code.startsWith('259') || prod_code.startsWith('359'))
			{
                                prodStart = prod_code.substring(0, 2);
                                subStart = sub_values[0].substring(0, 2);
                                subCode = ""
                                if(subStart != prodStart)
                                {
                                        subCode = prodStart + sub_values[0].substring(3, len(sub_values[0]));
                                }
                                else
                                {
                                        subCode = sub_values[0];
                                }

                                prod_code = subCode + " and " + prod_code;
			}
			else
			{
				prod_code = prod_code + " and " + sub_values[0];
			}
		}
	}


	if(document.getElementById('qty') != null && document.getElementById('qty').value > 0)
	{
		qty = parseInt(document.getElementById('qty').value);
		if(check_prod_grid)
		{
		        array_name = prod_values[1];
                        grid_array = window[array_name];
                        for(val in grid_array)
                        {
                                price_values = grid_array[val].toString().split(',');
				min_price = price_values[0].replace("or more", "");
				if(min_price == "More")
				{
					min_price = 0;
				}

				if(qty >= min_price && qty <= price_values[1])
				{
					cur_price = parseFloat(price_values[2].replace(',', ''));
					break;
				}
                        }
		}

		if(check_sub_grid)
		{
                        array_name = sub_values[1];
                        grid_array = window[array_name];
                        for(val in grid_array)
                        {
                                price_values = grid_array[val].toString().split(',');
                                if(qty >= price_values[0] && qty <= price_values[1])
                                {
                                        cur_price = cur_price + parseFloat(price_values[2].replace(',', ''));
                                        break;
                                }
                        }
		}
		cur_price = cur_price * qty;
	}

	price_label = "$" + cur_price.toFixed(2);
        if(show_zero)
        {
                price_label = "$0.00";
        }

	if(document.getElementById('labelPrice') != null)
	{
        	document.getElementById('labelPrice').innerHTML = price_label;
	}

	if(document.getElementById('addToCart') != null)
	{
		updateAddToCart(prod_code, is_custom, min_qty);
	}
	
	document.getElementById('prodLabel').innerHTML = prod_code;
}

function showLLPGrid(grid, type, index, count)
{
	if(document.getElementById(grid) != null)
	{
		link = "llp" + type + "ViewLink";
		document.getElementById(link).style.display = "none";
		document.getElementById(grid).style.display = "block";
                for(i = 1; i <= count; i++)
               	{ 
                       if(i != index)
                       {
                                if(grid + i != values[1] && document.getElementById(grid + i) != null)
                                {
                                        document.getElementById(grid + i).style.display = 'none';
                                }
                       }
                }
	}
}

function updateAddToCart(prod_code, is_custom, min_qty)
{
	cart_link = ""
	if(is_custom)
	{
		query_string = parent.document.URL.split('?');
		vars = query_string[1].split('&');
		gid = vars[0].split('=')[1];
		cart_link = "/browse/customize.html?add_product=" + prod_code.replace(' ', '+') + "&group_id=" + gid;
		document.getElementById('qtySection').style.display = 'none';
	}
	else if(prod_code == '0' || prod_code.endsWith('and 0') || prod_code.startsWith('0 and'))
	{
		cart_link = "#";
		document.getElementById('qtySection').style.display = 'block';
	}
	else
	{
		cart_link = "javascript:add_to_cart('" + prod_code + "');";
		document.getElementById('qtySection').style.display = 'block';

		cur_qty = 0;
		if(document.getElementById('qty') != null && document.getElementById('qty').value != "")
		{
			cur_qty = document.getElementById('qty').value;
		}

	        if(parseInt(cur_qty) > 0 && (parseInt(cur_qty) < parseInt(min_qty)))
                {
			document.getElementById('qtyError').innerHTML = "There is a minimum order quantity of " + min_qty + " for this item. Please<br>enter a quantity greater than " + min_qty + " to add this item to your cart.";
			document.getElementById('cartButton').style.display = 'none';
               	}
		else
		{
			document.getElementById('cartButton').style.display = 'block';
			document.getElementById('qtyError').innerHTML = "";
		} 
	
	}	
	document.getElementById('addToCart').href = cart_link;
	document.getElementById('qty').name = prod_code;
}

//This function to hide or show the list of product codes//
function selectProductCode(num, index, count, type)
{
	count = count - 1;
    	values = document.getElementById(type + 'Select' + num).value.split(';');

	if(type == 'product')
	{
    		if(values != 0)
        	{
            		document.getElementById(type + 'CodeList' + num).style.display = 'none';
            		document.getElementById(type + 'Code' + index).style.display = 'block';
            
            		if(values[1].indexOf("Grid") > 0 && document.getElementById(values[1])!= null)
            		{
                		document.getElementById(values[1]).style.display = 'block';
				if(document.getElementById('llpprodViewLink') != null)
				{
					document.getElementById('llpprodViewLink').style.display = 'block';
					document.getElementById('llpProdLink').href = "javascript:showLLPGrid('" + values[1] + "','prod'," + index + "," + count + ");";
				}
            		}

	    		for(i = 1; i <= count; i++)
            		{
               			if(i != index)
               			{
                       			document.getElementById(type + 'Code' + i).style.display = 'none';
					if('logGrid' + i != values[1] && document.getElementById('logGrid' + i)!= null)
            				{
               					document.getElementById('logGrid' + i).style.display = 'none';
            				}
               			}
            		}
        	}
    		else
        	{
            		document.getElementById(type + 'CodeList' + num).style.display = 'block';
                        if(document.getElementById('llpprodViewLink') != null)
                       	{
				document.getElementById('llpprodViewLink').style.display = 'none';
			} 
	    		for(i = 1; i <= count; i++)
           		{
                		document.getElementById(type + 'Code' + i).style.display = 'none';
				if(document.getElementById('logGrid' + i) != null)
				{
					document.getElementById('logGrid' + i).style.display = 'none';
				}
            		}
		}
		
		for(i = 1; i <= count; i++)
		{
			if(document.getElementById('llpProdGrid' + i) != null)
                	{
                		document.getElementById('llpProdGrid' + i).style.display = 'none';
                	}
		}

		if(document.getElementById('sample' + values[0]) != null)
		{
			document.getElementById('sample' + values[0]).style.display = 'block';
			for(i = 1; i <= count; i++)
			{
				if(i != index)
				{
					cur_values = document.getElementById(type + 'Select' + num).options[i].value.split(';');
					if(document.getElementById('sample' + cur_values[0]) != null)
					{
						document.getElementById('sample' + cur_values[0]).style.display = 'none';
					}	
				}
			}
		}
	}
	else if(type == 'sub')
	{
		if(values == 0)
		{
			if(document.getElementById('llpsubViewLink') != null)
			{
				document.getElementById('llpsubViewLink').style.display = 'none';
			}
		}
		else
		{
			if(document.getElementById('llpsubViewLink') != null && document.getElementById('llpSubLink') != null)
			{
                		document.getElementById('llpsubViewLink').style.display = 'block';
                		document.getElementById('llpSubLink').href = "javascript:showLLPGrid('" + values[1] + "','sub'," + index + "," + count + ");";
			}
		}
                for(i = 1; i <= count; i++)
                {
                        if(document.getElementById('llpSubGrid' + i) != null)
                        {
                                document.getElementById('llpSubGrid' + i).style.display = 'none';
                        }
                }
	}

	updatePrice();
}

function linkCode(obj, tabName)
{
	var s = s_gi('jjkellercom');
	s.linkTrackVars = 'None';
	s.linkTrackEvents = 'None';
	s.tl('true', 'o', tabName);
}

//showing and hiding tabs
function tabs(tabOn, obj)
{
    var totalTabs = document.getElementById('totalTabs').value;
    var openTab = document.getElementById('openTab').value;
    
    if(tabOn != openTab)
    {
            document.getElementById('tab' + tabOn).style.display = 'block';
            document.getElementById('tab' + openTab).style.display = 'none';
            
            document.getElementById('tabHeader' + tabOn).className = 'tabsOn' + totalTabs;
            document.getElementById('tabHeader' + openTab).className = 'tabsOff' + totalTabs;
            
            document.getElementById('openTab').value = tabOn;
	    var tabName = document.getElementById('tabName' + tabOn).innerHTML;
	    linkCode(obj, tabName);
    }
    
    
}

//tabs hover
function tabHover(tab,state)
{
   var totalTabs = document.getElementById('totalTabs').value;
   
   if(state == 'on')
   {
        if(document.getElementById('tabHeader' + tab).className == 'tabsOn' + totalTabs
        || document.getElementById('tabHeader' + tab).className == 'tabsOnHover' + totalTabs)
            {
                document.getElementById('tabHeader' + tab).className = 'tabsOnHover' + totalTabs;
            }
        else
            {
                document.getElementById('tabHeader' + tab).className = 'tabsOffHover' + totalTabs;
            }
        
   }
   else
   {
       if(document.getElementById('tabHeader' + tab).className == 'tabsOn' + totalTabs
       || document.getElementById('tabHeader' + tab).className == 'tabsOnHover' + totalTabs)
            {
                document.getElementById('tabHeader' + tab).className = 'tabsOn' + totalTabs;
            }
        else
            {
                document.getElementById('tabHeader' + tab).className = 'tabsOff' + totalTabs;
            }
   }
   
}
