// JavaScript Document
function number_format(a, b, c, d) {
 a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
 e = a + '';
 f = e.split('.');
 if (!f[0]) {
  f[0] = '0';
 }
 if (!f[1]) {
  f[1] = '';
 }
 if (f[1].length < b) {
  g = f[1];
  for (i=f[1].length + 1; i <= b; i++) {
   g += '0';
  }
  f[1] = g;
 }
 if(d != '' && f[0].length > 3) {
  h = f[0];
  f[0] = '';
  for(j = 3; j < h.length; j+=3) {
   i = h.slice(h.length - j, h.length - j + 3);
   f[0] = d + i +  f[0] + '';
  }
  j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
  f[0] = j + f[0];
 }
 c = (b <= 0) ? '' : c;
 return f[0] + c + f[1];
}

function reloadPage(){
	window.location.reload(true);
	//alert('reloading....');
}

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();
	URL = 'http://' + document.domain + '/' + URL;
	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 findLinkedProducts(action, linkID, toLinkID, linked_price, useOriginal) {
	//alert(action+", "+linkID+", "+toLinkID+", "+linked_price+", "+useOriginal)
	document.getElementById("loading_products").style.display = "block";
	createRequest();
	var uo = 0;
	if(useOriginal==true){
		uo = 1;
	}
	var url = "/linked_product_services.php?action="+escape(action)+"&linkID="+escape(linkID)+"&toLinkID="+escape(toLinkID)+"&linked_price="+escape(linked_price)+"&useOriginal="+escape(uo)+"&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, usergroup) {
	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)+"&usergroup="+escape(usergroup)+"&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;
			reloadPage();
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function calcprice(){
	var name = document.getElementById('base_name').value+"<br>";
	var baseprice = document.getElementById('base_price').value;
	var numgroups = document.getElementById('numgroups').value;
	//alert("numgroups = "+numgroups);
	
	var total = 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]);
				}
			}
		}else{
			for(var j=0;j<numoptions;j++){
				checkbox = document.getElementById('option_'+i+'_'+j);
				qty = document.getElementById('qty_'+i+'_'+j).value;
				if(checkbox.checked && qty>0){
					data = checkbox.value;
					var data_array = new Array();
					data_array = data.split("@");
					if(qty>1){
						name += qty+" x "+data_array[2];
					}else{
						name += 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);
				}
			}
		}
	}
	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 && qty>0){
				data = checkbox.value;
				var data_array = new Array();
				data_array = data.split("@");
				if(qty>1){
					name += qty+" x "+data_array[2];
				}else{
					name += 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);
			}
		}
	}
	
	total += parseFloat(baseprice);
	document.getElementById('price').value = total.toFixed(2);
	document.getElementById('name').value = name;
	//alert(document.getElementById('name').value);
	document.getElementById('final_price').innerHTML = "&pound;"+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 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";
	}
}

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);