// JavaScript Document
var hX = 340;
var vY = -140;

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_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_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_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 switchCheck(pre, target, state) {
	eval("box = document.getElementById('"+pre+target+"')");
	eval("checkbox = document.getElementById('checkbox_"+target+"')");
	if (state == true) {
		box.checked = false;
		checkbox.style.backgroundImage = "url(img/check_off.jpg)";
	}else{
		box.checked = true;
		checkbox.style.backgroundImage = "url(img/check_on.jpg)";
	}
	calcprice();
}
function switchRadio(target, index) {
	eval("document.form1."+target+"["+index+"].checked=true");
	calcprice();
}
function CopyPlusSelect(FData) {
     //var dataVal = eval('document.'+FData);
     //dataVal.focus();
     //dataVal.select();
     //var copyText = dataVal.value;
	 var copyText = FData;
     if (window.clipboardData) { // IE send-to-clipboard method.
          window.clipboardData.setData('Text', copyText);
          
     } else if (window.netscape) {
          // You have to sign the code to enable this or allow the action in about:config by changing user_pref("signed.applets.codebase_principal_support", true);
          netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
          
          // Store support string in an object.
          var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
          if (!str) return false;
          str.data=copyText;
          
          // Make transferable.
          var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
          if (!trans) return false;
          
          // Specify what datatypes we want to obtain, which is text in this case.
          trans.addDataFlavor("text/unicode");
          trans.setTransferData("text/unicode",str,copyText.length*2);
          
          var clipid=Components.interfaces.nsIClipboard;
          var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
          if (!clip) return false;
          
          clip.setData(trans,null,clipid.kGlobalClipboard);
     }
}

function popUp(URL, x, y) {
	day = new Date();
	id = day.getTime();
	eval("page"+id+" = window.open( URL, '" +id+"', 'toolbar=0,location=0,statusbar=0,scrollbars=1,menubar=0,resizable=1,width="+x+",height="+y+",left = 362,top = 234');" );
}


function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

var request;

function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = false;
      }
    }
  }

  if (!request)
    alert("Error initializing XMLHttpRequest!");
}

function ajax_search(searchstring) {
	if(searchstring.length > 2){
		document.getElementById("loading_search").style.display = "block";
		createRequest();
		var url = "/ajax_search.php?searchstring="+escape(searchstring)+"&rand="+Math.floor(Math.random()*100000);
		request.open("GET", url, true);
		request.onreadystatechange = updateSearch;
		request.send(null);
	}
}
function updateSearch() {
     if (request.readyState == 4){
		 if (request.status == 200){
       		//alert("Server is done!");
			var response = request.responseText;
			document.getElementById("search_results").style.display = "block";
			document.getElementById("search_results_content").innerHTML = response;
			document.getElementById("loading_search").style.display = "none";
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function findLinkedProducts(action, linkID, toLinkID, linked_price) {
	document.getElementById("loading_products").style.display = "block";
	createRequest();
	var url = "/linked_product_services.php?action="+escape(action)+"&linkID="+escape(linkID)+"&toLinkID="+escape(toLinkID)+"&linked_price="+escape(linked_price)+"&rand="+Math.floor(Math.random()*100000);
     request.open("GET", url, true);
     request.onreadystatechange = updatePageLinked;
     request.send(null);
}
function updatePageLinked() {
     if (request.readyState == 4){
		 if (request.status == 200){
       		//alert("Server is done!");
			var response = request.responseText;
			document.getElementById("linked_product_details").innerHTML = response;
			document.getElementById("loading_products").style.display = "none";
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function groupSevices(action, productID, groupID, parentID, string) {
	if(action == "delete"){
		answer = confirm('Are you sure you want to delete this group?');
		if(answer == false) return;
	}
	document.getElementById("loading_groups").style.display = "block";
	createRequest();
	var url = "/group_services.php?action="+escape(action)+"&productID="+escape(productID)+"&groupID="+escape(groupID)+"&parentID="+escape(parentID)+"&string="+escape(string)+"&rand="+Math.floor(Math.random()*100000);
     request.open("GET", url, true);
     request.onreadystatechange = updatePageGroups;
     request.send(null);
}
function updatePageGroups() {
     if (request.readyState == 4){
		 if (request.status == 200){
       		//alert("Server is done!");
			var response = request.responseText;
			document.getElementById("groups_info").innerHTML = response;
			document.getElementById("loading_groups").style.display = "none";
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function findProducts(groupID) {
	document.getElementById("loading_products2").style.display = "block";
	createRequest();
	var url = "/find_products.php?groupID="+escape(groupID)+"&rand="+Math.floor(Math.random()*100000);
     request.open("GET", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
}
function updatePage() {
     if (request.readyState == 4){
		 if (request.status == 200){
       		//alert("Server is done!");
			var response = request.responseText;
			document.getElementById("product_details").innerHTML = response;
			document.getElementById("loading_products2").style.display = "none";
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function splashSevices(action, targetID, currgroup) {
	//alert(action+", "+productID+", "+groupID+", "+order+", "+currgroup);
	//document.getElementById("loading_groups").style.display = "block";
	createRequest();
	var url = "splash_services.php?action="+escape(action)+"&targetID="+escape(targetID)+"&currgroup="+escape(currgroup)+"&rand="+Math.floor(Math.random()*100000);
	//alert(url);
    request.open("GET", url, true);
    request.onreadystatechange = updatePageSplash;
    request.send(null);
}

function updatePageSplash() {
     if (request.readyState == 4){
		 if (request.status == 200){
			var response = request.responseText;
			window.location.reload();
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function calcprice(){
	//sub_products - uniqueID@qty@is_product@has_stock
	var name = document.getElementById('base_name').value+"<br>";
	var baseprice = document.getElementById('base_price').value;
	var baseGBP = document.getElementById('base_GBP').value;
	var numgroups = document.getElementById('numgroups').value;
	var sub_products = "";
	//alert("numgroups = "+numgroups);
	
	var total = 0;
	var totalGBP = 0;
	for(i=0;i<numgroups;i++){
		numoptions = document.getElementById('numoptions_'+i).value;
		grouptype = document.getElementById('grouptype_'+i).value;
		if(grouptype == "radio"){
			for(var j=0;j<numoptions;j++){
				if(eval("document.form1.option_"+i+"["+j+"].checked == true;")){
					eval("radio_value = document.form1.option_"+i+"["+j+"].value;");
					data_array = radio_value.split("@");
					name += data_array[2];
					if(data_array[1]>0){
						value = data_array[1]*1;
						name += " (£"+value.toFixed(2)+")";
					}
					name += "<br>";
					total += parseFloat(data_array[1]);
					totalGBP += parseFloat(data_array[4]);
					sub_products += data_array[0]+"@1@0@"+data_array[3]+";";
				}
			}
		}else{
			for(var j=0;j<numoptions;j++){
				checkbox = document.getElementById('option_'+i+'_'+j);
				qty = document.getElementById('qty_'+i+'_'+j).value;
				if(checkbox.checked){
					data = checkbox.value;
					var data_array = new Array();
					data_array = data.split("@");
					name += qty+" x "+data_array[2];
					if(data_array[1]>0){
						value = data_array[1]*qty;
						name += " (£"+value.toFixed(2)+")";
					}
					name += "<br>";
					total += parseFloat(data_array[1]*qty);
					totalGBP += parseFloat(data_array[4]*qty);
					sub_products += data_array[0]+"@"+qty+"@0@"+data_array[3]+";";
				}
			}
		}
	}
	linked_num = document.getElementById('linked_products_num').value;
	if(linked_num>0){
		for(i=0;i<linked_num;i++){
			checkbox = document.getElementById('linked_'+i);
			qty = document.getElementById('linked_qty_'+i).value;
			if(checkbox.checked){
				data = checkbox.value;
				var data_array = new Array();
				data_array = data.split("@");
				name += qty+" x "+data_array[2];
				if(data_array[1]>0){
					value = data_array[1]*qty;
					name += " (£"+value.toFixed(2)+")";
				}
				name += "<br>";
				total += parseFloat(data_array[1]*qty);
				totalGBP += parseFloat(data_array[4]*qty);
				sub_products += data_array[0]+"@"+qty+"@1@1;";
			}
		}
	}
	
	total += parseFloat(baseprice);
	totalGBP += parseFloat(baseGBP);
	document.getElementById('price').value = total.toFixed(2);
	document.getElementById('GBP').value = totalGBP.toFixed(2);
	document.getElementById('name').value = name;
	document.getElementById('sub_products').value = sub_products;
	//alert(document.getElementById('name').value);
	document.getElementById('final_price').innerHTML = total.toFixed(2);
	if(document.getElementById('final_price_float')){
		document.getElementById('final_price_float').innerHTML = "&pound;"+total.toFixed(2);
	}
	//alert(name);
	//-----debuging--------
	//alert_string = "baseprice="+baseprice+"\n";
	//alert_string += "numgroups="+numgroups+"\n";
	//alert(alert_string);
	//-----end debuging--------
}

function sendToRealex(sec){
	target_form = "document.presend_form.submit()";
	//alert(target_form);
    setTimeout(target_form, sec);
}

function changepayment(target){
	if(target == "card"){
		document.getElementById('card_panel').style.display = "block";
	} else {
		document.getElementById('card_panel').style.display = "none";
	}
}

function open_panel(target){
	if(document.getElementById(target).style.display == "block"){
		document.getElementById(target).style.display = "none";
	} else {
		document.getElementById(target).style.display = "block";
	}
}

function findSymbol(currency){
	var symbol = "";
	if(currency == "GBP"){
		symbol = "&pound;";
	}else if(currency == "USD"){
		symbol = "$";
	}else{
		symbol = "&euro;";
	}
	return symbol;
}

function findDiscount(qty, discount_250, discount_500, discount_1000, discount_5000, usergroup){
	if(usergroup=="wholesale"){
		if(qty<=500){
			discount = discount_250;
		}else if(qty<=1000){
			discount = discount_500;
		}else if(qty<=5000){
			discount = discount_1000;
		}else{
			discount = discount_5000;
		}
	}else{
		if(qty<=10){
			discount = discount_250;
		}else if(qty<=50){
			discount = discount_500;
		}else if(qty<=100){
			discount = discount_1000;
		}else{
			discount = discount_5000;
		}
	}
	return discount;
}

function doRunningTotal(symbol){
	var runningTotal = 0;
	var runningWeight = 0;
	var runningName = "";
	var runningQty = 0;
	var valid = 0;
	for(i=0;i<document.getElementById('numberProducts').value;i++){
		runningTotal = parseFloat(runningTotal)+parseFloat(document.getElementById('price_'+i).value);
		if(document.getElementById('qty_'+i).value>0){
			if(document.getElementById('qty_'+i).value<500){
				valid++;
			}
			runningName = runningName+document.getElementById('name_'+i).value+" x "+document.getElementById('qty_'+i).value+" @ "+symbol+document.getElementById('price_'+i).value+"<br>";
			runningWeight = parseFloat(runningWeight)+(parseFloat(document.getElementById('weight_'+i).value)*parseFloat(document.getElementById('qty_'+i).value));
			runningQty = runningQty+parseFloat(document.getElementById('qty_'+i).value);
		}
	}
	runningTotal = runningTotal.toFixed(2);
	document.getElementById('price').value = runningTotal;
	document.getElementById('name').value = runningName;
	document.getElementById('weight').value = runningWeight;
	document.getElementById('whole_qty').value = runningQty;
	document.getElementById('valid').value = valid;
	document.getElementById('totalPrice').innerHTML = symbol+runningTotal;
}

function wholesalePrice(price, qty, id, discount_250, discount_500, discount_1000, discount_5000, currency, exchangeRate, modify, usergroup){
	var discount = 0;
	var newPrice = 0;
	var valid = 0;
	var discount = findDiscount(qty, discount_250, discount_500, discount_1000, discount_5000, usergroup);
	var percent = (discount*price)/100;
	var tempPrice = price-percent;
	var finalPrice = tempPrice*qty;
	
	if(currency!="GBP"){
		percent = (modify*finalPrice)/100;
		newPrice = finalPrice-percent;
		newPrice = newPrice*exchangeRate;
	}else{
		newPrice = finalPrice;
	}
	formatedPrice = findSymbol(currency)+finalPrice.toFixed(2);
	document.getElementById('price_'+id).value = finalPrice.toFixed(2);
	document.getElementById('final_price_'+id).innerHTML = formatedPrice;
	doRunningTotal(findSymbol(currency));
}

function switchDisabled(target){
	if(document.getElementById(target).disabled == false){
		document.getElementById(target).disabled = true;
	}else{
		document.getElementById(target).disabled = false;
	}
}

sfHover = function() {
	var sfEls = document.getElementById("menu").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);