// JavaScript Document
// GLOBAL VARs//////////////////////////////////////////////////////////
var isBad=0;

function DuplicateInput(a,count){
if(count == 1){
document.getElementById("fname_"+count).value = a.fname.value;
document.getElementById("sname_"+count).value = a.sname.value;
document.getElementById("address1_"+count).value = a.address1.value;
document.getElementById("address2_"+count).value = a.address2.value;
document.getElementById("deliverydate_"+count).value = a.deliverydate.value;
document.getElementById("city_"+count).value = a.city.value;
document.getElementById("country_"+count).value = a.country.value;
document.getElementById("telephone_"+count).value = a.phone.value;
document.getElementById("postalcode_"+count).value = a.postalcode.value;
} else {
var previous_count = count-1;
document.getElementById("fname_"+count).value = document.getElementById("fname_"+previous_count).value;
document.getElementById("sname_"+count).value = document.getElementById("sname_"+previous_count).value;
document.getElementById("address1_"+count).value = document.getElementById("address1_"+previous_count).value;
document.getElementById("address2_"+count).value = document.getElementById("address2_"+previous_count).value;
document.getElementById("deliverydate_"+count).value = document.getElementById("deliverydate_"+previous_count).value;
document.getElementById("city_"+count).value = document.getElementById("city_"+previous_count).value;
document.getElementById("country_"+count).value = document.getElementById("country_"+previous_count).value;
document.getElementById("telephone_"+count).value = document.getElementById("telephone_"+previous_count).value;
document.getElementById("postalcode_"+count).value = document.getElementById("postalcode_"+previous_count).value;
document.getElementById("greeting_"+count).value = document.getElementById("greeting_"+previous_count).value;
}
UpdateItemShippingCost(a,document.getElementById("country_"+count).value,"shipping_cost_item_"+count,"Details_"+count,'DuplicateInput');
}
/////////////////////////////////////////////////////////////////////////////
function UseBillingAddress(a){
	a.freegift_fname.value = a.fname.value;
	a.freegift_sname.value = a.sname.value;
	a.freegift_address.value = a.address1.value+", "+a.address2.value+", "+a.city.value+" "+a.postalcode.value+", "+a.country.value ;
}
/////////////////////////////////////////////////////////////////////////////

function CalcShippingCost(a){
	var total_shipping_cost = 0.00;
	for(var t=0;t<a.length;t++){

		if(a.elements[t].value != '' && a.elements[t].id.match('shipping_cost_item_')){
			//alert("found one "+a.elements[t].id+ " value: "+a.elements[t].value);
			total_shipping_cost = parseFloat(total_shipping_cost)  + parseFloat(a.elements[t].value);
			total_shipping_cost = parseFloat(total_shipping_cost);
			total_shipping_cost = total_shipping_cost.toFixed(2);
			//alert("total_shipping_cost value : "+total_shipping_cost);
		}
	document.getElementById('total_shipping_cost').value = total_shipping_cost;
	}
	
document.getElementById('total_basket_cost_display').innerHTML = document.getElementById('total_basket_cost_static').value;

document.getElementById('vat_cost_display').value = document.getElementById('vat_cost_static').value;

var total_order_cost = parseFloat(document.getElementById('total_basket_cost_static').value)+parseFloat(document.getElementById('vat_cost_static').value)+parseFloat(document.getElementById('total_shipping_cost').value);
total_order_cost = total_order_cost.toFixed(2);

var discount_difference = '';

if(document.getElementById('discount_difference')){
	//alert(document.getElementById('discount_difference').value);
	discount_difference = parseFloat(document.getElementById('discount_difference').value);
	discount_difference = discount_difference.toFixed(2);
	total_order_cost = parseFloat((total_order_cost - discount_difference));
	total_order_cost = total_order_cost.toFixed(2);
	document.getElementById('total_order_cost').innerHTML = '&euro;'+total_order_cost;
	
} else {
	document.getElementById('total_order_cost').innerHTML = '&euro;'+total_order_cost;
}



//document.getElementById('total_basket_cost_plus_vat_display').value = document.getElementById('total_basket_cost_plus_vat_static').value;

}
/////////////////////////////////////////////////////////////////////////////
function UpdateItemShippingCost(f,elem,target,parent_div,call_from){

document.getElementById('total_shipping_cost').value = '';
	
var hidden_name = '';

if(call_from == 'DuplicateInput'){
	hidden_name = parent_div+"_"+elem;
} else {
	hidden_name = parent_div+"_"+document.getElementById(elem).value;
}


var item_shipping_cost = 0;
var total_shipping_cost = 0.00;

if(document.getElementById(hidden_name)) {
 item_shipping_cost = document.getElementById(hidden_name).value;
}

document.getElementById(target).value = item_shipping_cost;

for(var t=0;t<f.length;t++){

	if(f.elements[t].value != '' && f.elements[t].id.match('shipping_cost_item_')){
	
		total_shipping_cost = parseFloat(total_shipping_cost)  + parseFloat(f.elements[t].value);
		total_shipping_cost = parseFloat(total_shipping_cost);
		total_shipping_cost = total_shipping_cost.toFixed(2);
	
	}

}

document.getElementById('total_shipping_cost').value = total_shipping_cost;

var total_basket_cost_plus_vat = parseFloat(document.getElementById('total_basket_cost_plus_vat').innerHTML);
total_basket_cost_plus_vat = total_basket_cost_plus_vat.toFixed(2);

var total_order_cost = parseFloat(total_shipping_cost)+parseFloat(total_basket_cost_plus_vat);
total_order_cost = total_order_cost.toFixed(2);

var discount_difference = '';

if(document.getElementById('discount_difference')){
	//alert(document.getElementById('discount_difference').value);
	discount_difference = parseFloat(document.getElementById('discount_difference').value);
	discount_difference = discount_difference.toFixed(2);
	total_order_cost = parseFloat((total_order_cost - discount_difference));
	total_order_cost = total_order_cost.toFixed(2);
	document.getElementById('total_order_cost').innerHTML = '&euro;'+total_order_cost;
	
} else {
	document.getElementById('total_order_cost').innerHTML = '&euro;'+total_order_cost;
}

}
/////////////////////////////////////////////////////////////////////////////////////////
  function StartCountDown(myDiv,myTargetDate){
	  //alert(myDiv);
	  	//  alert(myTargetDate);
    var dthen	= new Date(myTargetDate);
    var dnow	= new Date();
    ddiff		= new Date(dthen-dnow);
    gsecs		= Math.floor(ddiff.valueOf()/1000);
    CountBack(myDiv,gsecs);
  }
//////////////////////////////////////////////////////////////////////////////////////////
  function Calcage(secs, num1, num2) {
    s = ((Math.floor(secs/num1))%num2).toString();
    if (s.length < 2) 
    {	
      s = "0" + s;
    }
    return (s);
  }
//////////////////////////////////////////////////////////////////////////////////////////
  function CountBack(myDiv, secs)  {
    var DisplayStr;
    var DisplayFormat = "%%D%% Days";//, %%H%% hours, %%M%% minutes, and %%S%% seconds ";
    DisplayStr = DisplayFormat.replace(/%%D%%/g,	Calcage(secs,86400,100000));
    DisplayStr = DisplayStr.replace(/%%H%%/g,		Calcage(secs,3600,24));
    DisplayStr = DisplayStr.replace(/%%M%%/g,		Calcage(secs,60,60));
    DisplayStr = DisplayStr.replace(/%%S%%/g,		Calcage(secs,1,60));
    if(secs > 0)
    {	
      document.getElementById(myDiv).innerHTML = DisplayStr+" to go.";
      setTimeout("CountBack('" + myDiv + "'," + (secs-1) + ");", 990);
    }
    else
    {
      document.getElementById(myDiv).innerHTML = "It's arrived.";
    }
  }
//////////////////////////////////////////////////////////////////////////////////////
function increase(qtyField,cost,id,action,productID){
	//alert(qtyField+", "+cost,id+", "+action+", "+productID);
	document.getElementById(qtyField).value++;
	ShowSubTotal(document.getElementById(qtyField).value,cost,id);
}
//////////////////////////////////////////////////////////////////////////////////////
function decrease(qtyField,cost,id,action,productID){
	document.getElementById(qtyField).value--;	
	if(document.getElementById(qtyField).value < 0){document.getElementById(qtyField).value = 0;}
	ShowSubTotal(document.getElementById(qtyField).value,cost,id);
}
////////////////////////////////////////////////////////////////////////////////////////////////
function ShowSubTotal(qty,cost,id){
var subTotal = '0.00';

if(qty > 0){
subTotal = (qty*cost);
parseFloat(subTotal);
subTotal = Math.round(subTotal*100)/100;
subTotal = subTotal.toFixed(2);
}

//alert("subTotal "+subTotal);

//var Total = parseFloat(document.getElementById('TotalCost').value);

//alert("Total "+Total);

document.getElementById(id).value = subTotal;

	var inputsQtys = document.getElementsByTagName("input");
    var totalcost = 0.00;
    var totalcostVAT = 0.00;

	for (var i = 0; i < inputsQtys.length; i++){

		var thisInputObjectQty = inputsQtys[i].value;

		if(thisInputObjectQty > 0 && inputsQtys[i].id.match(/_qty$/)){
			totalcost = parseFloat(document.getElementById(id).value)+Total;
		}
	
	}

//document.ReserveForm.TotalCost.value = parseFloat(totalcost).toFixed(2);

}
////////////////////////////////////////////////////////////////////////////////////////
function ChkOther(form){
var selIndex = form.pricerange.selectedIndex;

if(form.pricerange.options[selIndex].value == "Other"){form.otherrange.style.backgroundColor='#ccc';form.otherrange.focus();}
}
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 ChkForm(form,type){
var error_cnt = "0";
var alerts = "";
var error = 1;
var s = "S";
var t = "these";
var f = "fields";

if(type == 'quickmail'){
var selIndex = form.respondby.selectedIndex;
if(form.fname.value == ""){error_cnt++;alerts += error_cnt+". First Name is a required field\n";error = 0;}
if(form.sname.value == ""){error_cnt++;alerts += error_cnt+". Surname is a required field\n";error = 0;}
if(form.email.value == ""){error_cnt++;alerts += error_cnt+". Email is a required field\n";error = 0;}
if(form.comment.value == ""){error_cnt++;alerts += error_cnt+". Enquiry / Question is a required field\n";error = 0;}
if(form.respondby.options[selIndex].text == "Phone" && form.telephone.value == ""){error_cnt++;alerts += error_cnt+". You selected Phone as the preferred method of response but you neglected to enter a phone number\n";error = 0;}
if(form.email.value && !form.email.value.match(/(\w+).*\@(\w+)\.(\w+)/)){error_cnt++;alerts += error_cnt+". Incorrect email format, e.g. johnsmith@yahoo.com\n";error = 0;}
}

if(type == 'newslettermail'){
	
if(form.footer_type && form.footer_type.value != -1){

if(form.footer_name.value == "" || form.footer_name.value == "Your Name"){error_cnt++;alerts += error_cnt+". Name is a required field\n";error = 0;}
if(form.footer_email.value == "" || form.footer_email.value == "Your Email"){error_cnt++;alerts += error_cnt+". Email is a required field\n";error = 0;}
if(form.footer_email.value && !form.footer_email.value.match(/(\w+).*\@(\w+)\.(\w+)/)){error_cnt++;alerts += error_cnt+". Incorrect email format, e.g. johnsmith@yahoo.com\n";error = 0;}

} else {
	
if(form.name.value == "" || form.name.value == "Your Name"){error_cnt++;alerts += error_cnt+". Name is a required field\n";error = 0;}
if(form.email.value == "" || form.email.value == "Your Email"){error_cnt++;alerts += error_cnt+". Email is a required field\n";error = 0;}
if(form.email.value && !form.email.value.match(/(\w+).*\@(\w+)\.(\w+)/)){error_cnt++;alerts += error_cnt+". Incorrect email format, e.g. johnsmith@yahoo.com\n";error = 0;}
	
}

}

if(type == 'friendmail'){
if(form.your_email.value == ""){error_cnt++;alerts += error_cnt+". Your Email is a required field\n";error = 0;}
if(form.your_email.value && !form.your_email.value.match(/(\w+).*\@(\w+)\.(\w+)/)){error_cnt++;alerts += error_cnt+". Incorrect email format, e.g. johnsmith@yahoo.com\n";error = 0;}
if(form.friend.value == ""){error_cnt++;alerts += error_cnt+". Friend's Email is a required field\n";error = 0;}
if(form.friend.value && !form.friend.value.match(/(\w+).*\@(\w+)\.(\w+)/)){error_cnt++;alerts += error_cnt+". Incorrect email format, e.g. johnsmith@yahoo.com\n";error = 0;}
}

if(type == 'tandcmail'){
var selIndex = form.respondby.selectedIndex;
if(form.fname.value == ""){error_cnt++;alerts += error_cnt+". First name is a required field\n";error = 0;}
if(form.sname.value == ""){error_cnt++;alerts += error_cnt+". Surname is a required field\n";error = 0;}
if(form.email.value == ""){error_cnt++;alerts += error_cnt+". Email is a required field\n";error = 0;}
if(form.telephone.value == ""){error_cnt++;alerts += error_cnt+". Telephone is a required field\n";error = 0;}
if(form.email.value && !form.email.value.match(/(\w+).*\@(\w+)\.(\w+)/)){error_cnt++;alerts += error_cnt+". Incorrect email format, e.g. johnsmith@yahoo.com\n";error = 0;}
if(form.respondby.options[selIndex].text == "Postal Address" && form.address.value == ""){error_cnt++;alerts += error_cnt+". You selected Postal Address as the preferred method of response but you neglected to enter a postal address\n";error = 0;}
if(form.respondby.options[selIndex].text == "Fax" && form.fax.value == ""){error_cnt++;alerts += error_cnt+". You selected Fax as the preferred method of response but you neglected to enter a fax number\n";error = 0;}
}

if(type == 'normalmail'){
if(form.fname.value == ""){error_cnt++;alerts += error_cnt+". First name is a required field\n";error = 0;}
if(form.sname.value == ""){error_cnt++;alerts += error_cnt+". Sur name is a required field\n";error = 0;}
if(form.comment.value == ""){error_cnt++;alerts += error_cnt+". Comment is a required field\n";error = 0;}
if(form.email.value == ""){error_cnt++;alerts += error_cnt+". Email is a required field\n";error = 0;}
if(form.telephone.value == ""){error_cnt++;alerts += error_cnt+". Telephone is a required field\n";error = 0;}
if(form.email.value && !form.email.value.match(/(\w+).*\@(\w+)\.(\w+)/)){error_cnt++;alerts += error_cnt+". Incorrect email format, e.g. johnsmith@yahoo.com\n";error = 0;}
if(form.question.value == ""){error_cnt++;alerts += error_cnt+". You have not answered the math question. It is a required field\n";error = 0;}
}

if(type == 'ordermail'){
if(form.TotalOrderItems.value > 5){error_cnt++;alerts += error_cnt+". The Maximum amount of items allowed per order is "+ Max +"\n";error = 0;}
if(form.fname.value == ""){error_cnt++;alerts += error_cnt+". First Name is a required field\n";error = 0;}
if(form.sname.value == ""){error_cnt++;alerts += error_cnt+". Surname is a required field\n";error = 0;}
if(form.email.value == ""){error_cnt++;alerts += error_cnt+". Email is a required field\n";error = 0;}
if(form.telephone.value == ""){error_cnt++;alerts += error_cnt+". Telephone is a required field\n";error = 0;}
if(form.email.value && !form.email.value.match(/(\w+).*\@(\w+)\.(\w+)/)){error_cnt++;alerts += error_cnt+". Incorrect email format, e.g. johnsmith@yahoo.com\n";error = 0;}

if(error == 1){
  var cookie_date = new Date ( );  // current date &amp; time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}

}

if(type == 'custommail'){
var selIndex = form.pricerange.selectedIndex;
if(form.fname.value == ""){error_cnt++;alerts += error_cnt+". First Name is a required field\n";error = 0;}
if(form.sname.value == ""){error_cnt++;alerts += error_cnt+". Surname is a required field\n";error = 0;}
if(form.email.value == ""){error_cnt++;alerts += error_cnt+". Email is a required field\n";error = 0;}
if(form.telephone.value == ""){error_cnt++;alerts += error_cnt+". Telephone is a required field\n";error = 0;}
if(form.qtyofgiftitems.value == "" || form.qtyofgiftitems.value < 19){error_cnt++;alerts += error_cnt+". Minimum Quantity of items for a custom hamper is 20\n";error = 0;}
if(form.pricerange.options[selIndex].value == "Other" && form.otherrange.value == ""){error_cnt++;alerts += error_cnt+". Other price range selected but no value was entered in the Other field\n";error = 0;}
if(form.pricerange.options[selIndex].value == "Other"){form.price.value = form.otherrange.value;} else {form.price.value = form.pricerange.options[selIndex].value;}
if(form.email.value && !form.email.value.match(/(\w+).*\@(\w+)\.(\w+)/)){error_cnt++;alerts += error_cnt+". Incorrect email format, e.g. johnsmith@yahoo.com\n";error = 0;}
}

if(error){
form.submit();
} else {
if(error_cnt<2){s = "";t = "this";f = "field";}
alerts = error_cnt+" ERROR"+s+"\n\n"+alerts+"\nPlease return to Request Page and fill in "+t+" "+error_cnt+" required "+f+"\nThank You.";
alert(alerts);
}
}

ShowStatus = true;

function CloakOtherAddresses(cmd){
var ID = 'Other-Addresses';
	var elem, vis, ShippingQty;
	elem = document.getElementById(ID);
	//ShippingQty = document.getElementById(ShippingAll);
	vis = elem.style;
		
  	if(!cmd){
  		vis.display = 'none';
  		//ShippingQty.innerHTML = "For All Items";
	} else {
  		vis.display = 'block';		
	}
}
/////////////////////////////////////////////////////////////
function DisplayContents(id){
var winName = 'CONTENTS';
var features = 'locationbar=no,scrollbars=1,resizable=no,width=520,height=680';
  SlideShowWin=window.open('../cgi-bin/hampers_popup.cgi?id='+id+'',winName,features);
  if (window.focus) {
	  SlideShowWin.focus();
  }
}

//////////////////////////////////////////////////////////////////////////////////////////////////
function ShowHide(ID,cmd,LINK,TEXT){
	var elem, vis, l;
	elem = document.getElementById(ID);
	vis = elem.style;
	l = document.getElementById(LINK);	
	
  	if(!cmd){
  		vis.display = 'none';
		document.getElementById(LINK).innerHTML = "<a class='ShowHide' href=\"javascript:ShowHide('"+ID+"',1,'"+LINK+"','"+TEXT+"');\" title=''>View "+TEXT+"</a>";

	} else {
  		vis.display = 'block';
		document.getElementById(LINK).innerHTML = "<a class='ShowHide' href=\"javascript:ShowHide('"+ID+"',0,'"+LINK+"','"+TEXT+"');\" title=''>Hide  "+TEXT+"</a>";

	}

}
////////////////////////////////////////////////////////////////////////////////////////////////
function launchQuickmail(theURL) {
var winName = 'QMAIL';
var features = 'locationbar=no,scrollbars=no,resizable=no,width=360,height=580';
  SlideShowWin=window.open(theURL,winName,features);
  if (window.focus) {SlideShowWin.focus()}
}
////////////////////////////////////////////////////////////////////////////////////////////////
var counter = 1;
var limit = 99;
function addInput(divName,type,name,value){
	//alert(divName+" "+type+" "+name+" "+value);
     if (counter == limit)  {
          alert("You have reached the limit of adding " + counter + " inputs");
     }
     else {
          var newdiv = document.createElement('li');
		  newdiv.setAttribute('id', 'feature_'+counter+'');
		  newdiv.setAttribute('name', 'feature_'+counter+'');
          newdiv.innerHTML = "<input type='"+type+"' class='textfield01' name='"+name+"' value='"+value+"' />";// <a href='javascript:;'  onclick=\"removeElement('orange_arrow','feature_"+start+"');\">Remove Feature</a>";
          document.getElementById(divName).appendChild(newdiv);
          counter++;
     }
}
///////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////
function ChkPwd(myform,action,u,p,cp){
  if((u.length>4) && (p.length>4)){
badChars(u);
badChars(p);
badChars(cp);
if(isBad == 0){
  if(p==cp){
 document.forms[0].submit();
 return true;
  } else {
 alert("ERROR:: Password and Confirm Password Fields do not match.\n\nPlease try again. \n\nThank You.");
 return false;
 }
 } else {
alert("ERROR :: \n\tBad Characters used in Username and/or Password Field\n\tPlease use Alpha-Numerical Characters Only\n\tThank You.");
isBad=0;
document.forms[0].reset()
}
} else {
 alert("ERROR :: Username/Password must be at least 5 characters long.");
}
}
////////////////////////////////////////////////////////////////////////
function badChars(theStr){
  var i,theChar;
  var someBadChars = " ~!@#$%^&*()_+|`-=\\{}[]:\";'<>,./?¬¦ÀÁÂÃÄÆÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ";
  for (i=0; i<theStr.length; i++) {
 theChar = theStr.charAt(i);
 if (someBadChars.indexOf(theChar) != -1){ isBad = 1;}

  }
  return isBad;
}
////////////////////////////////////////////////////////////////////////
