var sTmpVarList;
var sTmpOptMessage = '';
				
function fnOpenLargeImage(sFullImage, strAlt)
{
	var objPopWin=window.open("previewimage.asp?image="+escape(sFullImage)+"&prodtype=product&type=image&ImgAlt="+escape(strAlt),'ImagePreview','height=500,width=600,top=25,left=100,help=0,resizable=yes,toolbar=0,location=0,status=0,menubar=0,scrollbars=yes');
	objPopWin.focus();
}

function checkQuantitySetPriceFormat4(value1,StockQty, txtbox, frm_next, ItemMFGDesc, strProdVarIDDesc, strProdPrice, blnHideProductsinStk, strPersFieldName)
{	
	if (ValidateFirstOPtionSelection())
	{	
		return checkQuantitySetPrice(value1,StockQty, txtbox, frm_next, ItemMFGDesc, strProdVarIDDesc, strProdPrice, blnHideProductsinStk, strPersFieldName);
	}
	return false;
}
				
function checkQuantity(value1, StockQty,txtbox, frm, sItemMFGName, strPersFieldName, blnHideProducts, bHasVariants)
{
	pfrm = frm;
	strTemp = ''
	//var strOptionMessage = ''
	var strPerField='';
	var bBreakReqrd=false;
	if (pfrm.PersonalizationQuestionCounter.value != 0)
	{
		for (i=1; i <= pfrm.PersonalizationQuestionCounter.value; i++)
		{
			if (pfrm.elements["PersonalizationRequired" + i].value == "true" && trim(pfrm.elements["PersonalizationAnswer" + i].value) == "")
			{
				alert("Please answer all required personalization questions");
				pfrm.elements["PersonalizationAnswer" + i].focus();
				return false;
			}
			
			if (trim(pfrm.elements["PersonalizationAnswer" + i].value)!='')
			{								
				if ((strTemp != '') && bBreakReqrd)
				{				
					strTemp = strTemp + '^7#7*'
				}	
				//strTemp = strTemp + pfrm.elements["PersonalizationQuestion" + i].value + ': ' + pfrm.elements["PersonalizationAnswer" + i].value
				strTemp = strTemp + pfrm.elements["PersonalizationQuestion" + i].value + '^8*8#^' + pfrm.elements["PersonalizationAnswer" + i].value
				bBreakReqrd = true;
			}
			else
			{				
				strTemp = strTemp + '^5^#5'							
			}		
		}
			
		frm.elements[strPersFieldName].value = strTemp		
	}					
					
	value2 = txtbox.value


	if (isNaN(value2))
		{
		 	alert("Please enter a valid quantity")
		 	if (txtbox.type != 'hidden')
		 		txtbox.focus();
		 	return false
		}

	//if (!validate_DOUBLE(txtbox,"quantity")) return false;	
	if (parseFloat(value2) != parseInt(parseFloat(value2)))
		{
			alert("The quantity for this product should be a whole number")
		 	if (txtbox.type != 'hidden')
		 		txtbox.focus();
			return false
		}
	if (value1 > value2)
		{
			alert("The minimum quantity for this product is " + value1)
			txtbox.value = value1
		 	if (txtbox.type != 'hidden')
		 		txtbox.focus();
			return false;
		}
	if(blnHideProducts == "1")
	{
		sTmpVarList = '';
		if (bHasVariants)
		{			
			if (bVarThemeAvailable)
			{
				StockQty = GetVarThemeStockQty(StockQty);
			}
			else
			{
				StockQty = GetMaxStockQty(StockQty, value2);
			}
		}
		//if (value2 > StockQty && StockQty != -1)
		if (value2 > StockQty)
			{
				if(StockQty > 0) {
					alert('The available quantity in stock for "' + sItemMFGName + sTmpOptMessage + '" is ' + StockQty + '. Please reduce the order quantity in order to proceed.');
				} else {
					alert(sItemMFGName + sTmpOptMessage + ' is not in stock at this time. Please check back later.');
				}
				txtbox.value = value2
			 	if (txtbox.type != 'hidden')
			 		txtbox.focus();
				return false;
			}
	}		

		return true;
}

function GetVarThemeStockQty(defQty)
{
	var tmpMaxValue
	var finalMaxValue
	finalMaxValue = defQty;
	var ids;
	var stock;
	var rstIds;
	var imatch;
	var idlen;
	var tempOptMes;	 
	for (i = 1; i <= varThemeCount; i++)
	{
		imatch = 0
		ids=eval('varThemeStock[' + i + ']').ids;
		stock=eval('varThemeStock[' + i + ']').stock;		           
    	rstIds = ids.split('-');		
    	if(rstIds)
        {
            idlen = rstIds.length;
            tempOptMes = '';
            for(var j=0; j < rstIds.length; j++)
            {
                for (var k=1; k <= idlen; k++)
	            {				
		            if(Number(rstIds[j]) == Number(eval('document.form0.VariantGroup'+k).value))
                	{
                	        imatch = imatch + 1;					
		            }
                }
                if (tempOptMes != '') {tempOptMes = tempOptMes + ',';}
                tempOptMes = tempOptMes + eval('varOptName[' + rstIds[j] + ']').name;
            }
            if (imatch==rstIds.length)
            {
	            //if (stock<finalMaxValue && stock!=-1)	             
		        finalMaxValue = stock;
		        sTmpOptMessage = ' (' + tempOptMes + ')';
            }
        }
	}
	return finalMaxValue;
}

function ValidateFirstOPtionSelection()	
{
	frm = document.form0;
	for (i = 1; i <= frm.GroupCounter.value; i++)
	{
		if (frm.bAdvOptions.value !='1') 
		{
			if (frm.elements["VariantGroup" + i].selectedIndex == 0)
			{
				alert('Please select the option for ' + varGroup[i].name);
				frm.elements["VariantGroup" + i].focus();			
				return false;
			}						
		}
	}
	return true;
}
				
function GetMaxStockQty(defQty, curQty)
{
	var tmpMaxValue
	var finalMaxValue
	var selID = 0;
	frm = document.form0
	finalMaxValue = defQty;
	sTmpVarList = '';
	//alert('curQty value: ' + curQty);
	for (i = 1; i <= frm.GroupCounter.value; i++)
	{
		if (frm.bAdvOptions.value=='1') {
			ind = GetSelectedIndex("VariantGroup" + i);			
		}
		else {
			ind = frm.elements["VariantGroup" + i].selectedIndex;			
			selID = frm.elements["VariantGroup" + i].value;			
		}
		tmpMaxValue = eval('varMaxStock' + i + '[' + ind + ']');		
		//alert('stock value: ' + tmpMaxValue);
		//if (tmpMaxValue<finalMaxValue && tmpMaxValue!=-1)
		if (curQty > tmpMaxValue)
		{
			if (selID != 0)
			{
			    sTmpOptMessage = '(' + eval('varOptName[' + selID + ']').name + ')';
			}
			//alert(sTmpOptMessage);
        }
        if (tmpMaxValue<finalMaxValue)
        {
			finalMaxValue = tmpMaxValue;
		}
		//for getting the variant options string
		if (sTmpVarList != '')
			sTmpVarList = sTmpVarList + ' - '		
		if (frm.bAdvOptions.value=='1') {
			sTmpVarList = sTmpVarList + (frm.elements["VariantGroup" + i + '_box'].value);
		}
		else {
			sTmpVarList = sTmpVarList + (frm.elements["VariantGroup" + i].options[ind].text);
		}	
	}
	return finalMaxValue;
}

function checkQuantitySetPrice(value1,StockQty, txtbox, frm_next, ItemMFGDesc, strProdVarIDDesc, strProdPrice, blnHideProductsinStk, strPersFieldName)
{	
	if (checkQuantity(value1, StockQty, txtbox, frm_next, ItemMFGDesc, strPersFieldName, blnHideProductsinStk, true))
	{
		frm = document.form0
		description_text = ""
		total_price = 0		 		
		for (i = 1; i <= frm.GroupCounter.value; i++)
		{
			if (document.getElementById('sStorePickUpMfgName').value == document.getElementById('ProdMfgName').value)
			{
				if (document.getElementById('sPickUpOptionValueName').value == varOptName[document.getElementById('VariantGroup' + i).value].name)
				{					
					
					if(document.getElementById('bStorePickChildFlagReset').value!='3')
					{
						chkStorePickup(frm.ProdID.value, i, 0);
						return false;												
					}
				}
			}
			if (frm.bAdvOptions.value=='1') {
				ind = GetSelectedIndex("VariantGroup" + i);
				description_text += frm.elements["VariantGroup" + i].value + ";"
			}
			else {
			    	ind = frm.elements["VariantGroup" + i].selectedIndex;			    			    	        				
				description_text += frm.elements["VariantGroup" + i][ind].value + ";"	            	
			}
			if(frm.elements["variant" + i + "_" + (ind + 1)])
				total_price += parseFloat(frm.elements["variant" + i + "_" + (ind + 1)].value)
			else
				total_price += parseFloat(frm.elements["variant" + i + "_" + ind].value)
		}		
		frm.elements[strProdVarIDDesc].value = description_text		
		frm.elements[strProdPrice].value = parseFloat(frm.elements[strProdPrice].value) + total_price
		//validating the store pickup starts
		/*if (document.getElementById("bStorePickChildFlagReset").value=='2')
		{
			alert('Please change your delivery preference. You have not selected a store to pick up');
			return false;
		}
		if (document.getElementById("bStorePickChildFlagReset").value=='1')
		{
			if (document.getElementById("spVendorID").value='0')
			{
				alert('Please change your delivery preference. You have not selected a store to pick up');
				return false;
			}
		}*/		
		//validating storepickup ends
		return true
	}
	else
		return false
}

	function returnObjById( id ) 
	{ 
	    if (document.getElementById) 
	        var returnVar = document.getElementById(id); 
	    else if (document.all) 
	        var returnVar = document.all[id]; 
	    else if (document.layers) 
	        var returnVar = document.layers[id]; 
	    return returnVar; 
	} 
	function toogleOLD(a, b)
	{
		//var temp = "";
		var imga = null;
		var imgb = null;
		imga = returnObjById(a);
		imgb = returnObjById(b);
		//temp = imga.src;

		imga.src = imgb.src;
		//imga.alt = imgb.alt;
	}
	function setHiddenForLargeImg(h1, h2, newLargeSrc, newLargeAlt)
	{
		//alert('newLargeSrc='+ newLargeSrc);
		//alert('newLargeAlt='+ newLargeAlt);

		var hid1 = null;
		var hid2 = null;
		hid1 = returnObjById(h1);
		hid2 = returnObjById(h2);
		hid1.value = newLargeSrc;
		hid2.value =newLargeAlt;
		//alert(hid1.value); 
		//alert(hid2.value); 
	}
	function changeImg(a, newSrc, newAlt, newLargeSrc, newLargeAlt)
	{
		//alert('newLargeSrc='+ newLargeSrc);
		//alert('newLargeAlt='+ newLargeAlt);

		imgSetSrc(a, newSrc);
		imgSetAlt(a, newAlt);
		
		setHiddenForLargeImg('main_img_SRC', 'main_img_ALT', newLargeSrc, newLargeAlt);

		imgSetZoom(a, newSrc, newLargeSrc);
	}
	function imgSetZoom(){}
	function imgCopySrc(a, b)
	{
		//var temp = "";
		var imga = null;
		var imgb = null;
		imga = returnObjById(a);
		imgb = returnObjById(b);

		imga.src = imgb.src;
	}

	function imgSetAlt(a, newAlt)
	{
		var imga = null;
		imga = returnObjById(a);

		imga.alt = newAlt;
	}

	function imgSetSrc(a, newSrc)
	{
		var imga = null;
		imga = returnObjById(a);

		imga.src = newSrc;
	}
	//
	function fnOpenLargeImageEU()
	{
		var main_img_SRC = null;
		var main_img_ALT = null;

		main_img_SRC = returnObjById('main_img_SRC');
		main_img_ALT = returnObjById('main_img_ALT');
		//alert(main_img_SRC.value);
		fnOpenLargeImage(main_img_SRC.value, main_img_ALT.value);		
	}
	function fnOpenPopupPage(theLocation, theWidth, theHeight) {
		var w = theWidth;
		var h = theHeight;
		var winl = (screen.width - w) / 2;
		var wint = (screen.height - h) / 2;	
		winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl
		myWin = window.open(theLocation, 'picker', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'+winprops);
		myWin.focus();
	}
	
	function fnOpenSystemPopupPage(vid, pid, gid, theWidth, theHeight) {
	    if(!chkAccessiblity(pid, gid,true))
        {
                return;
        }	    
		var w = theWidth;
		var h = theHeight;
		winprops = 'height='+h+',width='+w		
		myWin = window.open('SystemPopup.asp?vid=' + vid + '&pid=' + pid + '&gid=' + gid, 'picker', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'+winprops);
		myWin.focus();
	}
	
/*functions - used for Advanced Product Options dropdown starts*/
    
    function NavbyKey(mitem,dir)
    {
        var mElm = document.getElementById('m_' + mitem);
        var currValue = document.getElementById(mitem).value;
        var elms = 0;
        var eitems = mElm.getElementsByTagName('a');
        for(var j=0; j < eitems.length; j++)
        {
            if(eitems[j].className == 'dispselect')
            {
                elms = eitems[j];
                break;
            }
        }
        var celm = 0;
        var currElmId;
        var sList;
        var elmcnt;
        var tElms = 0;
        if(elms)
        {
            tElms = elms.getElementsByTagName('span');
            for(var k=0; k < tElms.length; k++)
            {
                if(tElms.className == 'dispvalue')
                {
                    celm = tElms[k];
                    break;
                }   
            }
            //celm = elms[0].getElementsByClassName('dispvalue');
            if(celm)
            {
                if(celm[0].innerHTML == currValue)
                {
                    currElmId = celm[0].id;
                    sList = currElmId.split('_');
                    elmcnt = Number(sList[2]);
                    if(elmcnt < eitems.length && dir=='down')
                        SelectItem(sList[1]+'_'+ (elmcnt+1),mitem);
                    else if(elmcnt > 2 && dir == 'up')
                        SelectItem(sList[1] + '_' + (elmcnt -1), mitem);
                }
            }
        }
    }
        
    function GetSelectedIndex(grpName)
    {
        var retIndex = 0;
        var rootElm = document.getElementById('m_' + grpName);
        if(rootElm)
        {
            var vItems = document.getElementsByTagName('a');
            if(vItems)
            {
                for(var i=0; i < vItems.Length; i++)
                {
                    if(vItems.className== 'dispselect')
                    {
                        retIndex = i;
                        break;   
                    }
                }
            }
        }
        return retIndex;
    }
    
    function SelectItem(strValue, item)
    {        
        var dispValue = "dispval_" + strValue;
        var dispDesc = "dispdesc_" + strValue;
        var itemText = item + "_box";
        var groupCnt = strValue.split('_')[0];
        var currValue = document.getElementById(dispValue).innerHTML;                
        document.getElementById(item).value = currValue;
        var currDesc = document.getElementById(dispDesc).innerHTML;        
        document.getElementById(itemText).value = currDesc.replace(/\&lt\;/g, '<').replace(/\&gt\;/g, '>').replace(/\&quot\;/g, '"').replace(/\&amp\;/g, "&");      
        var elms = document.getElementById('m_' +item).getElementsByTagName('a');
        if(elms)
        {
            for(var i=0; i < elms.length; i++)
            {
                if(elms[i].childNodes[2].innerHTML == currValue )
                {
                    elms[i].className = "dispselect";
                }
                else
                {
                    elms[i].className = "dispitemspan";
                }
            }
        }
    }
    
    function SelectRegItem(strValue, item)
    {        
       var OptCnt = strValue.split('_')[1];
       document.getElementById(item).selectedIndex = OptCnt;        
    }
    
    function fnOpenStorePickup(gct, gid, pid) {	    
		var w = 800;
		var h = 600;
		winprops = 'height='+h+',width='+w		
		myWin = window.open('SelectYourLocalStore.asp?pid=' + pid + '&gid=' + gid + '&gct=' + gct, 'store_picker', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'+winprops);
		myWin.focus();
	}
	
	function submitToCart()
	{
		document.form0.submit();	
	}
	    
    function chkStorePickup(pid, grpId, bpopup)
    {
		 var id=varGroup[grpId].id;
		 var stname=varGroup[grpId].name;
		 var optname=varOptName[document.getElementById('VariantGroup' + grpId).value].name;
		 //alert(varOptName[document.getElementById('VariantGroup' + grpId).value].name);
		 if (stname == document.getElementById('sPickUpOptionGroupName').value) 
		 {
			if (optname == document.getElementById('sPickUpOptionValueName').value)
			{
				document.getElementById('bStorePickChildFlagReset').value='1';
				if (document.getElementById('sStorePickUpMfgName').value == document.getElementById('ProdMfgName').value)
				{
					//open store locator popup
					document.getElementById('bStorePickChildFlagReset').value='2';
					document.getElementById('spVendorID').value=0;
					fnOpenStorePickup (grpId, id, pid);					
					//alert('here');
				}			
			}
			else
			{
				document.getElementById('bStorePickChildFlagReset').value='0';
			}
		}		 		 
	}
        
    function chkAccessiblity(pid, grpId, bpopup)
    {
		var id=varGroup[grpId].id;
		var stname=varGroup[grpId].name;
		var optname= '';
		//alert(document.getElementById('VariantGroup' + grpId).value);
		if (document.getElementById('VariantGroup' + grpId).value!=0)
		{
			optname = varOptName[document.getElementById('VariantGroup' + grpId).value].name;
		}
        var strRst = '';
        var isRst = false;
        var isStorePickUp;
        for(var i=1; i < varGroup.length; i++)
        {
            var rstIds;                    	
            rstIds = varGroup[i].rst.split(';');
            if(varGroup[i].id != id)
            {
				
                if(rstIds.length>0)
                {
                    for(var j=0; j < rstIds.length; j++)
                    {
                        if(Number(rstIds[j]) == id)
                        {
                            var strval = document.getElementById('VariantGroup' + i).value;
                            if(!(strval == '0' || strval == ''))
                            {
                                isRst = true;
                                strRst = strRst + '\n' + varGroup[i].name;
								if (document.getElementById('bAdvOptions').value!='1') { document.getElementById('VariantGroup' + grpId).selectedIndex=0;}
                            }
                        }
                    }
                }
            } 
            else
            {
               if(rstIds)
                { 
                  var strval;
                  var rstval;
                  for(var kk=1; kk < varGroup.length; kk++)
                  {					
                    strval = document.getElementById('VariantGroup' + kk).value;
                    if(!(strval == '0' || strval == ''))
                    {
                        for(var k=0; k < rstIds.length; k++)
                        {
                            if(varGroup[kk].id == Number(rstIds[k]))
                            {
                                isRst = true;
                                strRst = strRst  + '\n' +  varGroup[kk].name;
								if (document.getElementById('bAdvOptions').value!='1') { document.getElementById('VariantGroup' + grpId).selectedIndex=0;}
                            }
                        }
                    }
                  }
                }
            }
        }
        if(isRst)
        {
            alert('The option ' + stname + ' is not available when the following options are selected:\n' + strRst);
            return false;
        }
        else
        {
			if (stname == document.getElementById('sPickUpOptionGroupName').value) 
			{
				if (optname == document.getElementById('sPickUpOptionValueName').value)
				{
					document.getElementById('bStorePickChildFlagReset').value='1';
					if (document.getElementById('sStorePickUpMfgName').value == document.getElementById('ProdMfgName').value)
					{
						//open store locator popup
						document.getElementById('spVendorID').value=0;
						document.getElementById('bStorePickChildFlagReset').value='2';
						fnOpenStorePickup (grpId, id, pid);					
					}			
				}
				else
				{
					document.getElementById('bStorePickChildFlagReset').value='0';
					return true;
				}
			}
			else
			{ 		
				return true;
			}
        }        
    }
    
    var ddmenuitem	= 0;
      
    // open hidden layer
    function mopen(pid, id)    {	
			
        var grpId = id.split('m_VariantGroup');
        if(grpId.length > 1)
        {	   
            if(!chkAccessiblity(pid, grpId[1],false))
            {
                return;
            }
        }
        
        // close old layer
        if(ddmenuitem) 
        {
            ddmenuitem.style.visibility = 'hidden';
            ddmenuitem.style.display = 'none';
        }
        // get new layer and show it
        ddmenuitem = document.getElementById(id);
        var width = document.getElementById('VariantGroup' + grpId[1] + '_box').clientWidth;
        ddmenuitem.style.width = width > ddmenuitem.clientWidth + 50 ? width: "";
        ddmenuitem.style.visibility = 'visible';
        ddmenuitem.style.display="block";

    }
    
    // close showed layer
    function mclose()
    {
        if(ddmenuitem)
        { ddmenuitem.style.visibility = 'hidden'; ddmenuitem.style.display='none';}
    }
    // close layer when click-out    
    document.onclick = mclose;
    
/*functions used for Advanced Product Options dropdown - ends*/
