// Routines for checking the data in Subscription Form
// Routines for calculating the total amount
// Pichler Josef
// files: check_inputs1.js

function inputsValid()
{
	if (!checkLength(document.form1.name.value))
	{
 		alert("Please enter your name!")
		document.form1.name.focus()
		return false	
	}

	if (!checkLength(document.form1.postcode.value))
	{
 		alert("Please enter postcode!")
		document.form1.postcode.focus()
		return false	
	}
	
	if (!checkLength(document.form1.telephone.value))
	{
 		alert("Please enter your telphone number!")
		document.form1.telephone.focus()
		return false	
	}

	if (!checkEmail(document.form1.client_email.value))
	{
		alert("Email address not valid!")
		document.form1.client_email.focus()
		return false
	}

	if (document.form1.billingaddress[2].checked)
	{
		if (!checkLength(document.form1.registrationnumber.value))
		{
			alert("Enter your registration number!")
			document.form1.registrationnumber.focus()
			return false
		}
	}
	calculateAmount(document.form1)
	return true

} /*inputsValid*/


function checkLength(data)
{
	return (data.length > 0)
}

function checkEmail(email)
{
	invalidChars = "/:,;";
		
	if (email.length == 0)
		return false;
	
	for (i=0; i<invalidChars.length; i++)
	{
		badChar = invalidChars.charAt(i);
		if (email.indexOf(badChar,0) != -1)
		{
			return false
		}
	}

	counter = 0;
	for (i=0; i<email.length; i++)
	{
		character = email.charAt(i)
		if (character == "@")
			counter++;
	}
	if (counter != 1)
		return false

	if (email.indexOf(".",0) == -1)
		return false

	return true;
	
}/*checkEmail*/	



function calculateAmount(formular)
{
	// Geoff: Dicount variables - you can edit them
	instD12 = 0
	instD11 = 0
	instD10 = 0
	instD9 = 0
	instD8 = 0
	instD7 = 0
	instD6 = 0
	instD5 = 0
	instD4 = 0
	instD3 = 0
	instD2 = 0
	instD1 = 0
	periodD1 = 15	//for 12 months
	periodD2 = 10	//for 6 months
	periodD3 = 5	//for 3 months
	periodD4 = 0	//for 1 months
	// Base Value for one instrument per month
	BS = 100
	// Tax
	VAT = 15.0
	// variables initilization
	SVALD = 0
	AMTVAT = 0
	instrumentDiscount = 0
	periodDiscount = 0
	NM = 1
	amount = 0
	duration = 0  // subscription months
	description = new String("")
	identification = new String("")

	//geoff gant
	identification = identification+formular.name.value+" "+formular.client_email.value // counting the instruments checked and constructing the description string for worldPay
	
	description = description + "All Service "
	
	

	// calculating discount for the instruments checked
	instrumentDiscount = instD1
	
	
	// calculating dicount for the period
	if (formular.period[0].checked)
	{
		periodDiscount = periodD1
		duration = 12
		description = description + "12 months"
	}	
	if (formular.period[1].checked)
	{
		periodDiscount = periodD2
		duration = 6
		description = description + "6 months"

	}	
	if (formular.period[2].checked)
	{
		periodDiscount = periodD3
		duration = 3
		description = description + "3 months"

	}	
	if (formular.period[3].checked)
	{
		periodDiscount = periodD4
		duration = 1
		description = description + "1 months"

	}	

	// setting hidden variable for worldpay
	document.form2.cartId.value = identification
	document.form2.desc.value = description

	document.form2.email.value = document.form1.client_email.value
	document.form2.name.value = document.form1.name.value	
	document.form2.address.value = document.form1.address1.value + "&#10;"+document.form1.address2.value + "&#10;" + document.form1.city.value	
	document.form2.postcode.value = document.form1.postcode.value	
	document.form2.country.value = document.form1.country.options[document.form1.country.selectedIndex].value
	document.form2.tel.value = document.form1.telephone.value	

	if (formular.billingaddress[1].checked || formular.billingaddress[2].checked)
	{
		amount = BS * NM * duration
		discount1 = amount * instrumentDiscount / 100
		discount2 = amount * periodDiscount / 100
		//alert("Discount 1: "+discount1)
		//alert("Discount 2: "+discount2)
		amount = amount - discount1 - discount2
		//alert("Total: "+amount)
		amount = round(amount,2)
		formular.amount.value = amount
		document.form2.cost.value = amount
	}
	else
	{
		amount = BS * NM * duration
		discount1 = amount * instrumentDiscount / 100
		discount2 = amount * periodDiscount / 100
		//alert("Discount 1: "+discount1)
		//alert("Discount 2: "+discount2)
		taxAmount = (amount- discount1 - discount2) * (VAT/100)
		//alert("Tax: "+taxAmount)
		amount = amount - discount1 - discount2 + taxAmount
		//alert("Total: "+amount)
		amount = round(amount,2)
		formular.amount.value = amount
		document.form2.cost.value = amount
	}

}/*calculateAmount*/

function round(number,X) 
{
	X = (!X ? 2 : X);
	result = Math.round(number*Math.pow(10,X))/Math.pow(10,X);
	result = new String(result)
	if (result.indexOf(".") == -1)
	{
		result = result + ".00"	
	}
	if (result.indexOf(".") == (result.length -2))
	{
		result = result + "0"	
	}
	return result
}

