function Validate(form)
{
    function notBlank(value) {return value != "";}
    
    function isEmail(value) {return /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/.test(value)}
    
    function vi(name, check, msg){
        element = form.elements[name];
        result = check(element.value);
        if (!result){
            alert(msg);
            element.focus();
        }
        return !result;
    }
    
    if (vi("Title", notBlank, "Please enter your title.")) return false;
    if (vi("FirstName", notBlank, "Please enter your frist name.")) return false;
    if (vi("LastName", notBlank, "Please enter your surname.")) return false;
    if (vi("Company", notBlank, "Please enter your company.")) return false;

    if (vi("Email", notBlank, "Please enter your email address.")) return false;
    if (vi("Email", isEmail, "Please enter a valid email address.")) return false;
	if (form.elements["Email"].value != form.elements["Email2"].value){
        alert("Your email address confirmation does not match, please re-enter.");
        form.elements["Email"].focus();
        return false;
	}
    if (vi("Tel1", notBlank, "Please enter your contact phone number.")) return false;
    if (vi("Fax", notBlank, "Please enter your contact fax number.")) return false;
    if (vi("DeliverTo", notBlank, "Please enter your postal address.")) return false;
    
    function RadioChecked(elements){
        for (var i=0; i<elements.length; i++)
            if (elements[i].checked) return true;
        return false;
    }
    PayMethodElements = form.elements["PayMethod"]
    if (!RadioChecked(PayMethodElements)){
	    alert("Please select your preferred method of payment.");
	    PayMethodElements[0].focus();
	    return false;
    }
    NewsletterElements = form.elements["Newsletter"]
    if (!RadioChecked(NewsletterElements)){
	    alert("Please indicate whether you wish to receive the newsletter.");
	    NewsletterElements[0].focus();
	    return false;
    }
    
    return true;
}
  
function CalcTotal()
{
    var products = {
        "PresentWithConfidence": {
            0: 150,
            10: 125,
            25: 110,
            50: 100,
            100: 90},
        "GentlemansPrerogative": {
            0: 160,
            10: 135,
            25: 120,
            50: 110,
            100: 100},
        "DiamondsDust": {
            0: 150,
            10: 125,
            25: 110,
            50: 100,
            100: 90},
        "MBCS": {0:275},
        "Special": {0:450}
    }

    var total = 0;
    
    for (product in products){
        qty = parseInt(document.getElementsByName(product)[0].value);
        if (isNaN(qty)) qty = 0;
        pricing = products[product];
        price = 0;
        for (minqty in pricing){
            if (qty>=parseInt(minqty)){
                price = pricing[minqty];
            }
            else break;
        }
        total += qty * price;
    }
	
	document.getElementsByName("total")[0].value = total;
	document.getElementsByName("totaldisplay")[0].value = currency(total);
}

function currency(anynum) {
	if (isNaN(anynum) == false)
	{
	   //-- Returns passed number as string in $xxx,xxx.xx format.
	   anynum=eval(anynum)
	   workNum=Math.abs((Math.round(anynum*100)/100));workStr=""+workNum
	   if (workStr.indexOf(".")==-1){workStr+=".00"}
	   dStr=workStr.substr(0,workStr.indexOf("."));dNum=dStr-0
	   pStr=workStr.substr(workStr.indexOf("."))
	   while (pStr.length<3){pStr+="0"}
	
	   //--- Adds comma in thousands place.
	   if (dNum>=1000) {
	      dLen=dStr.length
	      dStr=parseInt(""+(dNum/1000))+","+dStr.substring(dLen-3,dLen)
	   }
	
	   //-- Adds comma in millions place.
	   if (dNum>=1000000) {
	      dLen=dStr.length
	      dStr=parseInt(""+(dNum/1000000))+","+dStr.substring(dLen-7,dLen)
	   }
	   retval = dStr + pStr 
	   //-- Put numbers in parentheses if negative.
	   if (anynum<0) {retval="("+retval+")"}
	    {return "R"+retval}
	}
   else 
   {
	   	return "R0.00"
	}
}

function addToBasket(product){
    input = document.getElementsByName(product)[0];
    qty = parseInt(input.value);
    if (isNaN(qty)) qty = 0;
    qty ++;
    input.value = qty
    window.location.hash = "form"
    CalcTotal()
}
