// JavaScript Document
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function popUp(URL, x, y) {
	day = new Date();
	id = day.getTime();
	eval("page"+id+" = window.open( URL, '" +id+"', 'toolbar=0,location=0,statusbar=0, 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);
	//alert(url);
    request.open("GET", url, true);
    request.onreadystatechange = updatePageGroups;
    request.send(null);
}

function discountSevices(action, productID, groupID, parentID, string, value) {
	if(action == "delete"){
		answer = confirm('Are you sure you want to delete this Discount Band?');
		if(answer == false) return;
	}
	document.getElementById("loading_groups").style.display = "block";
	createRequest();
	var url = "discount_services.php?action="+escape(action)+"&productID="+escape(productID)+"&groupID="+escape(groupID)+"&parentID="+escape(parentID)+"&string="+escape(string)+"&value="+escape(value)+"&rand="+Math.floor(Math.random()*100000);
	//alert(url);
    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;
			//alert(response);
			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 send_newsletter(newsletter_email){
	createRequest();
	var url = "newsletter.php?newsletter_email="+escape(newsletter_email)+"&rand="+Math.floor(Math.random()*100000);
	//alert(url);
    request.open("GET", url, true);
	request.onreadystatechange = updatePageNewsletter;
    request.send(null);
}

function updatePageNewsletter() {
     if (request.readyState == 4){
		 if (request.status == 200){
       		//alert("Server is done!");
			var response = request.responseText;
			document.getElementById("newsletter_box").innerHTML = response;
		 }else if (request.status == 404){
         	alert("Request URL does not exist");
		 }else{
         	alert("Error: status code is " + request.status);
		 }
	 }
}

function calcprice(id){
	eval("doc = document.forms["+id+"]");
	name = doc.elements['base_name'].value+"\n";
	baseprice = doc.elements['base_price'].value;
	baseweight = doc.elements['base_weight'].value;
	numgroups = doc.elements['numgroups'].value;
	//alert(name+" - "+baseprice+" - "+numgroups)
	var total = parseFloat(0);
	var weight = parseFloat(0);
	for(i=0;i<numgroups;i++){
		eval("type = doc.type_"+i);
		if(type.value == "select"){
			eval("sel = doc.select_"+i);
			data = sel.options[sel.selectedIndex].value;
			var data_array = new Array();
			data_array = data.split("@");
			name += "("+data_array[2]+": "+data_array[0]+")\n";
			total += parseFloat(data_array[1]);
			weight += parseFloat(data_array[3]);
		}else{
			eval("itext = doc.text_"+i);
			eval("iprice = doc.price_"+i);
			eval("iweight = doc.weight_"+i);
			eval("iname = doc.name_"+i);
			name += "("+iname.value+": "+itext.value+")\n";
			total += parseFloat(itext.value*iprice.value);
			weight += parseFloat(itext.value*iweight.value);
			//alert(name+" "+total+" "+weight);
		}
	}
	total += parseFloat(baseprice);
	weight += parseFloat(baseweight);
	//alert(name+" - "+total);
	doc.elements['price'].value = total.toFixed(2);
	doc.elements['weight'].value = weight.toFixed(2);
	doc.elements['name'].value = name;
	eval("doc2 = document.getElementById('final_price_"+id+"')");
	doc2.innerHTML = "<strong>Price:</strong> &pound;"+total.toFixed(2);
}

function calcpriceAll(x){
	//alert(x);
	for(j=0;j<x;j++){
		//alert(j);
		calcprice(j+1);
	}
}

function calcdelivery(carrier, del_price, total){
	newprice = parseFloat(del_price)+parseFloat(total);
	vat = newprice*17.5/100;
	total = newprice+vat;
	document.forms.checkout.delivery_charge.value = carrier+"@"+del_price;
	//alert(document.forms.checkout.AMOUNT.value);
	realextotal = total*100;
	document.forms.checkout.AMOUNT.value = realextotal.toFixed(0);
	//alert(realextotal.toFixed(0));
	document.getElementById("sub_total_price_delivery").innerHTML = newprice.toFixed(2);
	document.getElementById("vat_total_price_delivery").innerHTML = vat.toFixed(2);
	document.getElementById("total_price_delivery").innerHTML = total.toFixed(2);
}

function changepayment(target){
	if(target == "card"){
		document.forms.checkout.submit_to.value = "checkout_presend.php";
		//document.forms.checkout.submit_form.value = "Make Secure Payment";
	} else {
		document.forms.checkout.submit_to.value = "checkout_internal.php";
		//document.forms.checkout.submit_form.value = "Submit Order";

	}
}

function helptext_clear(obj, string) {
	if(obj.value == string){
		obj.value="";
		obj.className = "input_post";
	}
}

function helptext_check(obj, string) {
	if(obj.value==""){
		obj.className = "input_pre";
		obj.value=string;
	}
}

function open_panel(target, productID, discounts){
	if(document.getElementById(target).style.display == "block"){
		document.getElementById(target).style.display = "none";
	} else {
		document.getElementById(target).style.display = "block";
		if(discounts == 1){
			discountSevices('load', productID, '', '', '', '')
		}
	}
}

function sendToRealex(sec){
	target_form = "document.presend_form.submit()";
	//alert(target_form);
    setTimeout(target_form, sec);
}

function openDiv(target) {
	e = document.getElementById(target);
	if (e.style.display == "block"){
		e.style.display="none";
	} else{
		e.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);
