function changeQuantity(i)
{
	return;
}

function valid()
{
	bPrice=document.getElementById("base_price").value;
	if (bPrice>0)
	{
		return true;
	}
	else {return false;}
}

function codeset(o,mc)
{
	// set the part
	if(o.type=="radio")
		{
		mcodepart[o.name]=o.getAttribute('mcode');
		}
	else
		{
		mcodepart[o.name]=o.options[o.selectedIndex].getAttribute('mcode');
		}
	CompoundMcode(mc);
}

function selectgroupdefault()
{
	try{var groupselements=groups;
	}
	catch (ex)
	{ var groupselements='';}
	if (groupselements=='')
	{
	}
	else
	{
		for (ikey in groups )
		{
			var row=groups[ikey];
			var poss="";
			if (groupxproperty[row])
			{
				poss=groupxproperty[row].split(",");
			}
			for (xkey in poss )
			{
				var poss_name=poss[xkey].replace(" ","");
				for (tkey in propertyxref )
				{
					var element=propertyxref[tkey];
					var obj=document.getElementById(element);
					for (var x=0; x<obj.options.length;x++)
					{
						var prop_opt=obj.options[x].getAttribute('mcode').replace(" ","");	
						if(poss_name==prop_opt)
						{mcodepart[element]=prop_opt;
						obj.selectedIndex=x;
						}
					}
				}

			}
		}
	}
}

function ConvertMcode(mc)
{
    mcode=mancode[mc].join("");
    var loopct=0;
    var t="";
    while((mcode.indexOf("|")>-1)&&(loopct<10))
    {
        loopct++;
        for(ikey in mcodepart)
        {
            if(loopct>5)
                    {
                    var lookfor="|"+strReplace(ikey,"property_","")+"|";
                    }
            else
                    {
                    var lookfor="|"+ikey+"|";
                    }
            var repwith=mcodepart[ikey];
            mcode=strReplace(mcode,lookfor,repwith);
        }
    }
    return mcode;
}
function get_id(mc)
{
    return mc.substr(5,mc.length-5);
}
function CompoundMcode(mc)
{
var tprice = 0;
var mcode;
mcode=ConvertMcode(mc);
ItemId=get_id(mc);
top.status="";
if (document.getElementById("webcodemain"))
{
	document.getElementById("webcodemain").value=mcode;
}
//alert(t);
    var oQty;
//	oQty = document.getElementById("qty");
	var qty=0;
//	qty = oQty.options[oQty.selectedIndex].text;
	if (document.getElementById('btnaddcart'))
	{
		document.getElementById('btnaddcart').style.visibility="visible";
	}
	var maxqtyselect = 10;
	var mcodebits;
	var stock;
	var MaxQty;
	var errorflg = false;
	var trrp= 0;
	mcodebits = mcode.split('&');
	var errormsg = "";
	var save=0;
	var save_percent=0;
	var rrp=0;
	var isMulti='y';
	try{TryMulti=MultipleBuyButtons;}
	catch (ex)
	{ var isMulti='';}
	if ((isMulti!='') && (MultipleBuyButtons=="yes"))
	{
		
	}
	else
	{
	for(var k=0;k<mcodebits.length;k++)
	{
///// set the webcode for the product
                SetItemValue(ItemId, "web_code", mcodebits[k]);
		if(prices[mcodebits[k]])
		{
		    stock = prices[mcodebits[k]][1];
			if(stock > 0)
			{
				if ((stock<maxqtyselect) )
				{
					maxqtyselect=stock;
				}
				MaxQty = prices[mcodebits[k]][8];
				tprice  = tprice + (1*prices[mcodebits[k]][9]);
				IssAvail = prices[mcodebits[k]][4];
				trrp  = trrp + (prices[mcodebits[k]][0]*multiplybyvat);
				save = trrp - tprice;
				if (document.getElementById('ProdMess'))
				{
				document.getElementById('ProdMess').value=IssAvail;
				document.getElementById('ProdMess').className="statusbar";
				}
			}
			else
			{
				BOZ = prices[mcodebits[k]][2];
				MaxQty = prices[mcodebits[k]][8];
				tprice  = tprice + (1*prices[mcodebits[k]][9]);
				IssAvail = prices[mcodebits[k]][4];
				trrp  = trrp + (prices[mcodebits[k]][0]*multiplybyvat);
				save = trrp - tprice;

				switch(BOZ) 
				{
				case "0":
					maxqtyselect=0;
					if (document.getElementById('ProdMess'))
					{
					document.getElementById('ProdMess').value="Product Out of Stock";
					document.getElementById('ProdMess').className="statusbar";
					}
					if (document.getElementById('btnaddcart'))
					{
						document.getElementById('btnaddcart').style.visibility="hidden";
					}
					errorflg = true;
				break;
				case "1":
					OssAvail = prices[mcodebits[k]][5];
					if (document.getElementById('ProdMess'))
					{
					document.getElementById('ProdMess').value="Sold Out";
					document.getElementById('ProdMess').className="statusbar";
					}
				//document.getElementById('ProdMess').value += OssAvail;
					//document.getElementById('btnaddcart').setAttribute(	"false")
					if (document.getElementById('btnaddcart'))
					{
						document.getElementById('btnaddcart').style.visibility="hidden";
					}
					errorflg = true;
				break;
				case "2":
					maxqtyselect=0;
					POD = prices[mcodebits[k]][3];
					OssAvail = prices[mcodebits[k]][5];
					if (document.getElementById('ProdMess'))
					{
//					document.getElementById('ProdMess').value="Pre-Order: ";
					document.getElementById('ProdMess').value = OssAvail;
					document.getElementById('ProdMess').className="statusbar";
					}
					
				break;
				case "3":
					OssAvail = prices[mcodebits[k]][5];
					if (document.getElementById('ProdMess'))
					{
					document.getElementById('ProdMess').value = IssAvail;
					document.getElementById('ProdMess').className="statusbar";
					}
					var PartCode=prices[mcodebits[k]][7];
				break;
				case "4":
					if (document.getElementById('ProdMess'))
					{
					document.getElementById('ProdMess').value = IssAvail;
					document.getElementById('ProdMess').className="statusbar";
					}
					var PartCode=prices[mcodebits[k]][7];

				break;

				}
			}
			if (document.getElementById("partcodemain"))
			{
				document.getElementById("partcodemain").value=PartCode;
			}
		}
		else
		{
			errormsg = mcodebits[k] + "not found";
			errorflg = true;
		}
	}
        SetItemValue(ItemId, "ourprice", tprice);
	save_percent=formatnumber(save/trrp*100,0);
	tprice = formatnumber(tprice,2);
	trrp = formatnumber(trrp,2);
	save = formatnumber(save,2);
	if (document.getElementById("mainprice"))
	{
		document.getElementById("mainprice").value=tprice;
	}
        var p;
        p="price_"+ItemId;
        var pp;
        pp="item_price_"+ItemId;
	if(errorflg)
	{
            var nat;
            nat="Not Available";
            if(typeof not_avail_text!="undefined")
                {
                    if(not_avail_text!="")
                        {
                            nat=not_avail_text;
                        }
                }
            if(document.getElementById("extra_info"))
                {
                    document.getElementById('extra_info').innerHTML = nat;
					document.getElementById('extra_info').className = "justMagentaBold";
                }
            if (document.getElementById('price'))
		{
                    document.getElementById('price').innerHTML=nat;
		}
            if (document.getElementById("mainprice"))
            {
		document.getElementById("mainprice").value=nat;
            }
            if (document.getElementById('rrpbar_'+ItemId))
            {
                document.getElementById('rrpbar_'+ItemId).innerHTML="";
            }
	   if (document.getElementById(pp))
	   {
	   document.getElementById(pp).innerHTML=nat;
	   }
	   if (document.getElementById('savebar_'+ItemId))
	   {
	   document.getElementById('savebar_'+ItemId).innerHTML="";
	   }
            if (document.getElementById('ProdMess'))
            {
                document.getElementById('ProdMess').className="statusbar";
            }
            if (document.getElementById('btnaddcart'))
            {
		document.getElementById('btnaddcart').style.visibility="hidden";
                document.getElementById('btnaddcart').setAttribute('confirmflg','y');
            }
	 }
	else
	{
            if(document.getElementById('extra_info'))
                {
					if (extra_info_default != "")
					{
						document.getElementById('extra_info').innerHTML = extra_info_default;
						document.getElementById('extra_info').className = "";
					}
                }

            if(document.getElementById(p))
            {
                document.getElementById(p).innerHTML="&pound;"+tprice;
            }
///	   document.getElementById('web_code').value=mcode;
	   if (document.getElementById(pp))
	   {
	   document.getElementById(pp).innerHTML="&pound;"+tprice;
	   }
	   if (document.getElementById('rrpbar_'+ItemId))
	   {
	      document.getElementById('rrpbar_'+ItemId).innerHTML="&pound;"+trrp;
		}
		if (document.getElementById('price'))
		{
		   document.getElementById('price').innerHTML="&pound;"+tprice;
		}
	   if (document.getElementById('savebar_'+ItemId))
	   {
	   document.getElementById('savebar_'+ItemId).innerHTML="&pound;"+save+"&nbsp;("+save_percent+"%)";
	   }
	   //document.getElementById('priceA').value=tprice;
//	   document.getElementById('base_price').value=tprice;
	   if (document.getElementById('btnaddcart'))
	   {
		   document.getElementById('btnaddcart').setAttribute('confirmflg','n');	   
	   }
            if (document.getElementById('ProdMess'))
            {
		document.getElementById('availability_text').value=document.getElementById('ProdMess').value;
            }
	// bundles
		try{var elements=assoc[mcode];
		}
		catch (ex)
		{ var elements='';}
		if (elements=='')
		{
		}
		else
		{
			var bundles=document.getElementById("bundles").value;
                        var pcode=FormItems[ItemId]["web_code"];
			var max=document.getElementById("totalbundles").value;
			var b_item_id=ItemId;
                        var url="/x/block_bundle_fly.php?web_code="+pcode+"&item_id="+b_item_id+"&disp_limit="+DispLimit;
			window.frames["b_ifrm"].location=url;
		}
	if(errormsg.length>0)
	{
	 	top.status += errormsg;
            }
		top.status += mcode;
	}
    }
}

function multiplecodeset(o,mc,line)
{
	// set the part
	if(o.type=="radio")
		{
		mcodepart[o.name]=o.getAttribute('mcode');
		}
	else
		{
		mcodepart[o.name]=o.options[o.selectedIndex].getAttribute('mcode');
		}
//	MultipleBuyCompound(mc,line);
        CompoundMcode(mc);
}
function changeMultiQuantity(mc,line)
{
	var qtyid="quantity_"+line;
	var qtyValue=document.getElementById(qtyid).value;
	allqties[line]=qtyValue;
	MultipleBuyCompound(mc,line);
	if ((document.getElementById("addtocartdiv"))&&(qtyValue!=0))
	{
		document.getElementById("addtocartdiv").className="zeroheight";
	}
	if ((document.getElementById("addtocartdiv"))&&(qtyValue==0))
	{
		document.getElementById("addtocartdiv").className="";
	}

}
function checkboxQuantity(Item)
{
	var chkboxid="chkbox_"+Item;
//	var mc="mcode"+Item;
	if(document.getElementById(chkboxid).checked)
	{
		SellItem(Item);
	}
	else
	{
		RemoveItem(Item);
	}	
//	MultipleBuyCompound(mc,line);

}

function checkQuantity(Item)
{
	var qtyid="qty_"+Item;
//	var mc="mcode"+Item;
	if(document.getElementById(qtyid).value != 0)
	{
		SellItem(Item);
	}
	else
	{
		RemoveItem(Item);
	}
//	MultipleBuyCompound(mc,line);

}

function MultipleBuyCompound(mc,line)
{
	var priceControl = "";
	var prIDs = "";
	itemForm=document.form_alt_multiple;
	itemFormname="price"+line;
	var priceControl = document.getElementById(itemFormname);
	var propertiesName="properties"+line;
	var propertiesControl=document.getElementById(propertiesName);
	 prIDs = propertiesControl.value; 
	var totalAdditionalPrice = 0;
	var properties = prIDs.split(",");
	for ( var i = 0; i < properties.length; i++) {
		var prID = properties[i];
		var prValue = "";
		var additionalPrice = 0;
		var prControlName="property_control_" + prID;
		if (document.getElementById(prControlName))
		{
		var prControl = document.getElementById(prControlName).value;
			if (prControl == "LISTBOX") 
			{
				prName="property_" + prID;
				prValue = document.getElementById(prName).value
			} 
		}
		var price = prValue*1;
		priceControl.value =  formatNumber(price) ;
	}
var tprice = 0;
var mcode;
top.status="";
mcode=mancode[mc].join("");
var loopct=0;
var t="";
while((mcode.indexOf("|")>-1)&&(loopct<10))
{
            loopct++;
            for(ikey in mcodepart)
                        {
						if(loopct>5)
							{
							var lookfor="|"+strReplace(ikey,"property_","")+"|";
							}
						else
							{
							var lookfor="|"+ikey+"|";
							}
						var repwith=mcodepart[ikey];
                        mcode=strReplace(mcode,lookfor,repwith);
//						t +=loopct+":"+lookfor+":"+repwith+"="+mcode+"\n";
                        }
}
webcode[line]=mcode;
//alert(t);
	var iq = 5;
	var ip = 6;
	var maxqtyselect = 10;
	var mcodebits;
	var stock;
	var MaxQty;
	var errorflg = false;
	mcodebits = mcode.split('&');
	var errormsg = "";
	var save=0;
	var availline='avail_'+line;
	var qtyid="quantity_"+line;

	for(var k=0;k<mcodebits.length;k++)
	{
		if(prices[mcodebits[k]])
		{
			stock = prices[mcodebits[k]][1];
			tprice  = tprice + (1*prices[mcodebits[k]][9]);
			MaxQty = prices[mcodebits[k]][8];
			IssAvail = prices[mcodebits[k]][4];

			if(stock > 0)
			{
				if ((stock<maxqtyselect) )
				{
					maxqtyselect=stock;
				}
				document.getElementById(availline).value=IssAvail;
				document.getElementById(availline).className="statusbar";
			}
			else
			{
				BOZ = prices[mcodebits[k]][2];
				switch(BOZ) 
				{
				case 0:
					maxqtyselect=0;
					document.getElementById(availline).value="Product Out of Stock";
					document.getElementById(availline).className="statusbar";
//					document.getElementById('btnmultaddcart').style.visibility="hidden";
					errorflg = true;
				break;
				case 1:
					maxqtyselect=0;
					OssAvail = prices[mcodebits[k]][5];
					document.getElementById(availline).value="Availability: Sold Out";
					document.getElementById(availline).className="statusbar";
//					document.getElementById('btnmultaddcart').style.visibility="hidden";
					errorflg = true;
				break;
				case 2:
					maxqtyselect=0;
					POD = prices[mcodebits[k]][3];
					document.getElementById(availline).value="Pre-Order: ";
					document.getElementById(availline).value += POD;
					document.getElementById(availline).className="statusbar";
					errorflg = true;
				break;
				case 3:
					OssAvail = prices[mcodebits[k]][5];
					document.getElementById(availline).value = OssAvail;
					document.getElementById(availline).className="statusbar";
					var PartCode=prices[mcodebits[k]][5];
				break;
			}
			}
			partcode[line]=PartCode;
			if (maxqtyselect>0)
			{
				if (document.getElementById(qtyid))
				{
				var qtyValue=document.getElementById(qtyid).value;
				}
				var qtyselecttextwrite = "Qty: ";
				var qtyselectwrite = "<select id='"+qtyid+"' name='"+qtyid+"' 			onChange='changeMultiQuantity(";
				qtyselectwrite += '"'+mc+'",'+line+');';
				qtyselectwrite += "'>"; 
				for (var p=0;p<=maxqtyselect ; p++)
				{
					qtyselectwrite += "<option value='"+p+"' ";
					if (qtyValue==p)
					{
						qtyselectwrite += " selected ";
					}
					qtyselectwrite += ">"+p+"</option>"
				}
				qtyselectwrite += "</select>";
				var qtyline="item_qty_"+line;
				var qtytextline="text_qty_"+line;
				if(document.getElementById(qtyline))
				{
					document.getElementById(qtyline).innerHTML=qtyselectwrite;
				}
			}
			if(document.getElementById(qtyid))
			{
				allqties[line]=document.getElementById(qtyid).value;
			}
		}
		else
		{
			errormsg = mcodebits[k] + "not found";
			errorflg = true;
		}
	}
	var wbc = 'web_code_'+line;
	var p = 'price_'+line;	

   document.getElementById(wbc).value=mcode; 
	if (tprice==0)
	{
	   document.getElementById(p).innerHTML="Product not available";
	   if(document.getElementById(qtyid))
	   {
			document.getElementById(qtyid).readonly='readonly';
		}
			
	}
	else
	{
		allprices[line]=tprice;
		tprice = formatnumber(tprice*multiplybyvat,2);
	   document.getElementById(p).innerHTML="&pound;"+tprice;
	   
	   //document.getElementById('priceA').value=tprice;
	   document.getElementById('btnmultaddcart').setAttribute('confirmflg','n');	   
	 }
	 var multiples=document.getElementById("max_multiple").value;
	 multiples=multiples*1+1;
	 var wbcode=document.getElementById("webcodemain").value;
	 var pcode=document.getElementById("partcodemain").value;
	 var allqty=document.getElementById("qty").value;
	 for (var k=2; k<=multiples; k++ )
	 {
		wbcode += "~" + webcode[k];
		pcode += "~" + partcode[k];
		if(allqties[k])
		{		
			allqty += "~" + allqties[k];
		}
		else
		{
			allqty += "~" + 0;		
		}
	 }
	document.form_alt_multiple.web_codes.value=wbcode;
	document.form_alt_multiple.part_codes.value=pcode;
	document.form_alt_multiple.quantities.value=allqty;
}



function formatnumber(v,d)
{
var y=Math.pow(10,d);
var x;
x=v*y;
x=Math.round(x);
x=x.toString(10);
if (d==0)
{
x=x.slice(0);
}
else
{
	x=x.slice(0,-d)+"."+x.slice(-d);
}
return x;
}
function strReplace(s, t, u) 
{
  var i;
  i= s.indexOf(t);
  var r = "";
  if(i == -1)return s;
  r += s.substring(0,i) + u;
  if ( i + t.length < s.length)
  	{
    r += strReplace(s.substring(i + t.length, s.length), t, u);
  	}
  return r;
}

function buy_submit(frmtext,cat_id,rnd,item_id,item_name,web_code,avail_text)
{
	frmobj=eval(frmtext);
	frmobj.category_id.value=cat_id;
	frmobj.rnd.value=rnd;
	frmobj.cart.value="ADD";
	frmobj.item_id.value=item_id;
	frmobj.item_name.value=item_name;
	frmobj.web_code.value=web_code;
	frmobj.availability_text.value=avail_text;
	var QtyS="qty_"+web_code;
	var Sel=document.getElementById(QtyS);
	var SelIn=Sel.options.selectedIndex;
	var QtyVal=Sel.options[SelIn].value;
	frmobj.quantity.value=QtyVal;
	frmobj.submit();
	void 0;
}

function SendBuyMainForm(FormName)
{
    var wc;
    var qts;
    var mu;
    var ids;
    var id;
    var ou;
    var ns;
    var name;
    var wcmain;
    var mainpr;
    var mult;
    mult=0;
    for(var x=0; x<SellItems.length; x++)
        {
            Item=SellItems[x];
            ItemAr=FormItems[Item];
            if(Item==MainItem)
                {
                    ids=Item;
                    qts=ItemAr["quantity"];
                    wc=ItemAr["web_code"];
                    id=Item;
                    ou=ItemAr["ourprice"];
                    mainpr=ou;
                    name=ItemAr["item_name"];
                    wcmain=wc;
                    ns=name;
                    mu=0;
                }
            else
                {
                    ids=ids+"~"+Item;
                    qts=qts+"~"+ItemAr["quantity"];
                    wc=wc+"~"+ItemAr["web_code"];
                    ou=ou+"~"+ItemAr["ourprice"];
                    ns=ns+"~"+ItemAr["item_name"];
                    mu=1;
                    mult++;
                }
        }
    document.forms[FormName].item_id.value=id;
    document.forms[FormName].item_names.value=ns;
    document.forms[FormName].web_code.value=wc;
    document.forms[FormName].multibuy.value=mu;
    document.forms[FormName].item_ids.value=ids;
    document.forms[FormName].ourprices.value=ou;
    document.forms[FormName].item_names.value=ns;
    document.forms[FormName].web_codes.value=wc;
    document.forms[FormName].max_multiple.value=mult;
    document.forms[FormName].webcodemain.value=wcmain;
    document.forms[FormName].mainprice.value=mainpr;
    document.forms[FormName].quantities.value=qts;
    document.forms[FormName].quantity.value=qts;
    document.forms[FormName].submit();
}

function SetItemValue(Item, Field, Value)
{
    var Temp;
    check_FormItems(Item);
    Temp = FormItems[Item];
    Temp[Field]=Value;
    FormItems[Item] = Temp;
}
function SellItem(Item)
{
    if(typeof SellItems!="undefined")
       {
           nextItem=SellItems.length;
           SellItems[nextItem]=Item;
       }
}
function RemoveItem(Item)
{
    if(typeof SellItems!="undefined")
        {
            var x;
            for (x=0; x<SellItems.length; x++)
                {
                    if(SellItems[x]==Item)
                        {
                            SellItems.splice(x,1);
                            x=SellItems.length+1;
                        }
                }

        }
}
function check_FormItems(Item)
{
    if(typeof FormItems=="undefined")
    {
        FormItems=new Array();
        FormItems[Item]=new Array();
        EmptyItemValues(Item);
    }
    if(FormItems[Item])
    {
    }
    else
    {
        FormItems[Item]=new Array();
        EmptyItemValues(Item);
    }
}
function EmptyItemValues(Item)
{
    var ItemAr;
    ItemAr=FormItems[Item];
    ItemAr["properties"]="";
    ItemAr["item_id"]="";
    ItemAr["item_name"]="";
    ItemAr["web_code"]="";
    ItemAr["multibuy"]="";
    ItemAr["item_ids"]="";
    ItemAr["prices_inc"]="";
    ItemAr["ourprices"]="";
    ItemAr["item_names"]="";
    ItemAr["part_code"]="";
    ItemAr["max_multiple"]="";
    ItemAr["partcodemain"]="";
    ItemAr["webcodemain"]="";
    ItemAr["mainprice"]="";
    ItemAr["quantities"]="";
    ItemAr["quantity"]="1";
    FormItems[Item]=new Array();
    FormItems[Item]=ItemAr;

}
function FillForm(FormName,ItemAr)
{
    document.forms[FormName].properties.value=ItemAr["properties"];
    document.forms[FormName].item_id.value=ItemAr["item_id"];
    document.forms[FormName].item_name.value=ItemAr["item_name"];
    document.forms[FormName].web_code.value=ItemAr["web_code"];
    document.forms[FormName].multibuy.value=ItemAr["multibuy"];
    document.forms[FormName].item_ids.value=ItemAr["item_ids"];
    document.forms[FormName].ourprices.value=ItemAr["ourprices"];
    document.forms[FormName].prices_inc.value=ItemAr["prices_inc"];
    document.forms[FormName].item_names.value=ItemAr["item_names"];
    document.forms[FormName].web_codes.value=ItemAr["web_code"];
    document.forms[FormName].part_codes.value=ItemAr["part_code"];
    document.forms[FormName].max_multiple.value=ItemAr["max_multiple"];
    document.forms[FormName].partcodemain.value=ItemAr["partcodemain"];
    document.forms[FormName].webcodemain.value=ItemAr["webcodemain"];
    document.forms[FormName].mainprice.value=ItemAr["mainprice"];
    document.forms[FormName].quantities.value=ItemAr["quantities"];
}