// Function to record last update
function lastup(){
	revdate = new Date(document.lastModified);
      document.writeln("Last updated "+revdate.getDate()+"/"+(revdate.getMonth() + 1)+"/"+(revdate.getYear()+1000).toString().substring(2,4)+" ");
  }
//-------------------------------------------------------------------------------

// Various functions to handle money on the order form
// Note that they refer to the form as "forms['OrdFrm']". This avoids problems with the "name" attribute
// in XHTML, but could fail if more than one form existed.

// Set the date to today's date by default
function setDate(){
    var d; var s="   ";           
  var months = new Array(13);
   months[0]  = "Jan";
   months[1]  = "Feb";
   months[2]  = "Mar";
   months[3]  = "Apr";
   months[4]  = "May";
   months[5]  = "Jun";
   months[6]  = "Jul";
   months[7]  = "Aug";
   months[8]  = "Sep";
   months[9]  = "Oct";
   months[10] = "Nov";
   months[11] = "Dec";  
   document.forms['OrdFrm'].reset();  
   d = new Date();                           //Create Date object.
    s += d.getDate() + " ";                   //Get day
    s += months[d.getMonth()] + " ";            //Get month
    s += d.getFullYear(); 			//Get year
    document.forms['OrdFrm'].Date.value=s;
 	}
//----------------------------------------- 	
function InitForm() {
	resetform(); 
	setDate();   
    d = new Date();                           //Create Date object.
	var s = d.getFullYear().toString(10).substr(2,2);	// create order number
	s += (d.getMonth()+101).toString(10).substr(1,2);
	s += (d.getDate()+100).toString(10).substr(1,2);
	s += "/";
	s += (d.getMinutes()+100).toString(10).substr(1,2);
	s += "w";
	document.getElementById('OrderNumber').innerHTML = s;
	document.forms['OrdFrm'].OrderNo.value = s;
	return s;
	}

//---------------------------------------
// trap main form submit to make sure enter key doesn't do it
var button=false;
function bFoc() { button=true;}
function bBlur() {button=false;}

function ChkSubmit() {
	if (!button) {return false;}
	with (document.forms['OrdFrm']) {
		t = parseFloat(document.getElementById("TotalDue").innerHTML)
		if (isNaN(t)) {
			alert("You have not yet ordered anything!");
			return false;
		}
		Msg = "Please enter your ";
		m = 0;
		if (Name.value==null || Name.value.replace(/^\s+|\s+$/g,"")=="") {
			Msg += "Name";
			m = 1;
		}
		if (Address.value==null || Address.value.replace(/^\s+|\s+$/g,"")=="") {
			if (m == 1) {Msg += " and ";}
			Msg += "Address";
			m = 2;
		}
		if (m > 0) {
			Msg += "!";
			alert(Msg);
			return false;
		}
	}
	var sub = document.getElementById('submitted');
	if (sub.value == "Yes") {
		var answer=confirm("This form has already been submitted.\n\n    Do you want to submit it again?\n\ ");
		if (!answer) {return false;}
	}
	sub.value = "Yes";
	document.getElementById('SubText').style.visibility = "visible";
	return true;
}
//-----------------------------------------
// reset form button
function resetform() {
	with (document.forms['OrdFrm']) {

	reset();
	UpdateTotal(1);
	UpdateTotal(2);
	UpdateTotal(3);
	UpdateTotal(4);
	setDate();
	document.forms['OrdFrm'].OrderNo.value=document.getElementById("OrderNumber").innerHTML;
	document.getElementById('submitted').value="No";
	document.getElementById('SubText').style.visibility = "hidden";

	}
}
//--------------------------------------------------------------------------
function submitPayPal() {
	if (document.getElementById('submitted').value=="No"){
	alert("Please submit the order before going to PayPal\n\ ");
	return false;
	}
	return true;
}
//-------------------------------------------------------------------------------
// Return the name of a particular title
function Title(titleNo) {
	var ItemName=new Array(6);
	ItemName[1]="Steamboating Guide";
	ItemName[2]="Steam Engine Principles";
	ItemName[3]="Steam Tables";
	ItemName[4]="Windpower Principles";
	ItemName[5]="Windpower Principles Hardback";
	return ItemName[titleNo];
}
// Return the cost of a particular title
function Price(titleNo) {
	var ItemPrice=new Array(6);
	ItemPrice[1]=2.5;
	ItemPrice[2]=8;
	ItemPrice[3]=1;
	ItemPrice[4]=10;
	ItemPrice[5]=25;
	return currency(ItemPrice[titleNo]);
}

//-------------------------------------------------------------------------------
// format a number as a cash value (without currency symbol but with leading spaces)
function cash(val) {
	v = currency(val);
	c = v.length;
	d = "           "+v;
   	return d.substring(c,c+11);
}

//-------------------------------------------------------------------------------
// format a number as a cash value (without leading spaces)
function currency(val) {
sign = 0;
i1 = 0;
i2 = 0;
	if (isNaN(val)){
		return "0.00";
	}
   if (val < 0) {sign = 1; val = -val;}
   vs = val.toString(10);
   i1 = parseInt(vs);
   if (isNaN(i1)) {i1 = 0;}
   i2 = (val-i1)*100+100.5;
   if (isNaN(i2)) {i2 = 0;}
   v = (i1.toString(10)+"."+i2.toString(10).substring(1,3));
   if (v=="0.00") {return v;}
   v1 = v;
   if (sign == 1) {v1 = "-"+v;}
   return v1;
}
//-------------------------------------------------------------------------------
// update the total charge for a particular title
function UpdateTotal(titleNo){
		var items=document.forms['OrdFrm'].elements["Orders[]"];
		var item=items[titleNo-1];
		var Count=document.getElementById("Count"+titleNo);
		//var Count=count[titleNo-1];
		var textarea="T"+titleNo;
    if (isNaN(Count.value)|| Count.value < 1 || Count.value > 99) {
    	Count.value = "";
    	item.value="";
    	document.getElementById("T"+titleNo).innerHTML = "&nbsp;"
    	UpdateSum();
    	return true;
    	}
	if (titleNo == 4 && document.getElementById('Hardback').checked) {
		titleNo = 5;
	}
	Totalvalue = Price(titleNo)*Count.value;
	document.getElementById(textarea).innerHTML = (Totalvalue==0) ? "&nbsp;" : cash(Totalvalue);
	Line = "&quot;"+Title(titleNo)+"&quot; Price &pound;"+currency(Price(titleNo))+" Quantity "+Count.value.toString(10)+" Total &pound;"+currency(Totalvalue);
    item.value = Line;
    UpdateSum();
}
//-------------------------------------------------------------------------------
// Recalculates order form items total
var SaleSum;
function UpdateSum() {
  SaleSum = 0;
  with (document.forms['OrdFrm']) {
  a=parseFloat(document.getElementById("T1").innerHTML);
  if (!isNaN(a)) {SaleSum += a;}
  a=parseFloat(document.getElementById("T2").innerHTML);
  if (!isNaN(a)) {SaleSum += a;}
  a=parseFloat(document.getElementById("T3").innerHTML);
  if (!isNaN(a)) {SaleSum += a;}
  a=parseFloat(document.getElementById("T4").innerHTML);
  if (!isNaN(a)) {SaleSum += a;}
  
  document.getElementById("SaleSum").innerHTML = (SaleSum == 0) ? "&nbsp;" : cash(SaleSum);
  }
  UpdateDisc();
 }

//-------------------------------------------------------------------------------
// recalculates discount
var discash;

function UpdateDisc() {
var discount = -0.25;
var counts = new Array(4);
var discash = 0;
	for (var i = 1; i < 5; i++) {
		if (document.getElementById("Count" + i).value > 9) {
			discash += discount*parseFloat(document.getElementById("T"+i).innerHTML);
		}
	} 
    //if (counts[0] > 9) {discash += discount*parseFloat(document.getElementById("T1").innerHTML);}
   // if (counts[1] > 9) {discash += discount*parseFloat(document.getElementById("T2").innerHTML);}
    //if (counts[2] > 9) {discash += discount*parseFloat(document.getElementById("T3").innerHTML);}
    //if (counts[3] > 9) {discash += discount*parseFloat(document.getElementById("T4").innerHTML);}

    document.getElementById("Discount").innerHTML = (discash == 0) ? "&nbsp;" : cash(discash);
  UpdatePostage();
}

//-------------------------------------------------------------------------------
// recalculates postage total
var postzone="UK";
var postval=0;

function UpdatePostZone(z1,z2,z3) {
	document.getElementById('PostUK').checked = (z1 == 0) ? "" : "checked";
	document.getElementById('PostOS').checked = (z2 == 0) ? "" : "checked";
	document.getElementById('PostAir').checked = (z3 == 0) ? "" : "checked";
	postzone = (z1 == 1) ? "UK" : ((z2 == 1) ? "OS" : "Air");
	UpdatePostage();
}

function UpdatePostage() {
var rate=0;
var postmin=0;
	  with (document.forms['OrdFrm']) {
	//	  rate = 0;
	//	  for(var i = 0; i < 3; i++) {
	//		if(PostZone[i].checked) {
	//			postzone=PostZone[i].value;
	//		}
	//	  }
	  document.getElementById("minc").style.visibility="hidden";
	  if (postzone=="UK") {rate=0.15;postmin=1;}
	  if (postzone=="OS") {rate=0.25;postmin=2;}
	  if (postzone=="Air") {rate=0.50;postmin=4;}
	  sum=parseFloat(document.getElementById("SaleSum").innerHTML);
	  if (isNaN(sum)) {sum=0;}
	  disc=parseFloat(document.getElementById("Discount").innerHTML);
	  if (isNaN(disc)) {disc = 0;}
	  postval=rate*(sum + disc);
	  if (postval<postmin) {
	  	postval=postmin; 
	  	document.getElementById("minc").style.visibility="visible";
	  	}
 

	  if (!isNaN(parseFloat(document.getElementById("SaleSum").innerHTML))) {
	    document.getElementById("Postage").innerHTML = cash(postval);
	  	}
	  else {
	    document.getElementById("Postage").innerHTML = "&nbsp;";
	  	document.getElementById("minc").style.visibility="hidden";
	  	}
	  document.refresh;
 }
  UpdateDue();
}

//-------------------------------------------------------------------------------
// recalculates total amount to be paid
function UpdateDue() {
  with (document.forms['OrdFrm']) {
    post=parseFloat(document.getElementById("Postage").innerHTML);
    if (isNaN(post)) {post=0;}
    sum=parseFloat(document.getElementById("SaleSum").innerHTML);
    if (isNaN(sum)) {sum=0;}
    disc=parseFloat(document.getElementById("Discount").innerHTML);
    if (isNaN(disc)) {disc = 0;}
    due = post + sum + disc;
    due = currency(due);
    document.getElementById("TotalDue").innerHTML = (due == 0) ? "&nbsp;" : cash(due);
    Overll = "Sale: &pound;" + currency(SaleSum);
    Overll += " Discount: &pound;" + currency(disc);
    Overll += " Postage (" + postzone + "): &pound;" + currency(postval)
    Overll += " Total Due: &pound;" + currency(due);
    Overall.value = Overll;//"&pound;" + currency(due);
}

  document.forms['_xclick'].amount.value = due;
  document.forms['_xclick'].item_name.value = "Order Number: " + document.forms['OrdFrm'].OrderNo.value + ", Books and Postage";
  //alert("Total Due: " + document.forms['_xclick'].amount.value);
}
//-----------------------------------------------------------------------------------
// Sitemeter hit counter code
function sitemeter() {  
  document.write("<a href=\"http://www.sitemeter.com/");
  document.write("stats.asp?site=ctpress\" target=_top>");
  document.write("<img src=\"http://www.sitemeter.com/");
  document.write("meter.asp?site=ctpress");
  document.write("&refer="+escape(document.referrer));
  document.write("&hours="+(new Date()).getHours());
  document.write("&minutes="+(new Date()).getMinutes());
  document.write("\" border=0 alt=\"Site Meter\"><\/a>");
  }
//--------------------------------------------------------------------------------
String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g,"");
    }
//--------------------------------------------------------------
    // function to emulate "_target" and similar attributes using onclick()

    function targ(obj, t) {
        obj.target = t;
        return true;
    }
//--------------------------------------------------------------------------
    // function to emulate an iframe
    function iframe(file) {
        document.getElementById("ctpmain").innerHTML = "<object type=\"text/html\" height=\"100%\" width=\"100%\"" + " data=\"" + file + "\" />";
    }