/*
	Contains error checking and other SSL functionality
*/

// returns the amount in the .99 format
function roundNumber(amount) {
	amount -= 0;
	amount = (Math.round(amount*100))/100;
	return (amount == Math.floor(amount)) ? amount + '.00' : (  (amount*10 == Math.floor(amount*10)) ? amount + '0' : amount);
}

function calculateCustomerPrice(status, frm) {
	if (status == 0 || (status == 1 && frm['customer_details[vatNumber]'].value == '')) {
		getElementById('input_price').innerHTML = roundNumber(frm.customer_price.value*1 + frm.customer_price.value*frm.vat.value);
	} else {
		getElementById('input_price').innerHTML = frm.customer_price.value;
	}
}

function TriggerCalculateCustomerPrice(frm) {
	for (i = 0; i < frm['customer_details[vatStatus]'].length; i++) {
		if (frm['customer_details[vatStatus]'][i].checked) {
			calculateCustomerPrice(frm['customer_details[vatStatus]'][i].value, frm);
		}
	}
}

function checkCSRSubmission(frm) {
	var Msg = '';
	if (frm.csr.value == '') {
		Msg += 'Please paste in your Certificate Signing Request (CSR)\n';
	} else if (frm.csr.value.length < 300) {
		Msg += 'This does not appear to be a valid Certificate Signing Request (CSR)\n';
	}
	if (frm.serverSoftware.value == 0) {
		Msg += 'Please select the software user to generate the CSR\n';
	}

	if (Msg) {
		alert(Msg);
		return false;
	} else {
		return true;
	}
}

function cancelCASubmission() {
	if (tSubmitted || tCancelled) {
		return false;
	} else {
		tCancelled = true;
		top.location = '/order_ssl.php';
	}
}

var tSubmitted = false;
var tCancelled = false;
function checkCASubmission(frm) {
	var Msg = '';
	if (frm['customer_details[domain]'].value == '') {
		Msg += 'Please enter your domain name (this should have been identified from the certificate)\n';
	}
	if (frm['customer_details[streetAddress1]'].value == '') {
		Msg += 'Please enter the first line of your address\n';
	}
	if (frm['customer_details[localityName]'].value == '') {
		Msg += 'Please enter your city or town\n';
	}
	if (frm['customer_details[stateOrProvinceName]'].value == '') {
		Msg += 'Please enter your state or county\n';
	}
	if (frm['customer_details[postalCode]'].value == '') {
		Msg += 'Please enter your postcode\n';
	}
	if (frm['customer_details[countryName]'].value == '') {
		Msg += 'Please enter your country\n';
	}
	if (frm['customer_details[adminContactName]'].value == '') {
		Msg += 'Please enter your admin contact name\n';
	}
	if (frm['customer_details[emailAddress]'].value == '') {
		Msg += 'Please enter your admin contact email\n';
	}
	if (frm['customer_details[adminTelephoneNumber]'].value == '') {
		Msg += 'Please enter your admin telephone number\n';
	}
	if (frm['customer_details[loginName]']) {
		if (frm['customer_details[loginName]'].value == '') {
			Msg += 'Please choose an admin login name\n';
		} else if (frm['customer_details[loginName]'].value.length < 4 || frm['customer_details[loginName]'].value.match(/[^\w-]/)) {
			Msg += 'Please choose an admin login name of at least 4 characters in length comprising only alphanumeric characters or dashes and no spaces\n';
		}
	}
	var checkedDcvEmailAddress = false;
	if (typeof frm.dcvEmailAddress.length == 'undefined') {
		if (frm.dcvEmailAddress.checked == true) {
			checkedDcvEmailAddress = true;
		}	
	} else {
		for (i = 0; i < frm.dcvEmailAddress.length; i++) {
		  if (frm.dcvEmailAddress[i].checked == true) {
		    checkedDcvEmailAddress = true;
		  }
		}
	}
	if (checkedDcvEmailAddress == false) {
		Msg += 'Please select an email address for us to send the Domain Control Email to\nCheck the option to send the DCV email later if you cannot currently pickup mail from any of these addresses.';
	}

	if (frm['customer_details[loginPassword]']) {
		if (frm['customer_details[loginPassword]'].value == '') {
			Msg += 'Please choose an admin login password\n';
		} else if (frm['customer_details[loginPassword]'].value.length < 4 || frm['customer_details[loginPassword]'].value.match(/ /)) {
			Msg += 'Please choose an admin login password of at least 4 characters in length (no spaces)\n';
		} else if (frm['customer_details[loginPassword2]'].value == '') {
			Msg += 'Please choose an admin login confirmation password\n';
		} else if (frm['customer_details[loginPassword2]'].value.length < 4 || frm['customer_details[loginPassword2]'].value.match(/ /)) {
			Msg += 'Please choose an admin login confirmation password of at least 4 characters in length (no spaces)\n';
		} else if (frm['customer_details[loginPassword]'].value != frm['customer_details[loginPassword2]'].value) {
			Msg += 'The admin login and admin login confirmation password do not match\n';
		}
	}

	if (Msg) {
		alert(Msg);
		return false;
	} else {
		return true;
		/*
		validateWhois(frm, frm['customer_details[domain]']);
		return false;
		if (domainValidationAccepted == true) {
			tSubmitted = true;
			return true;
		} else {
			return false;
		}
		*/
	}
}

function changeLoginDetails(frm) {
	var Msg = '';
	if (frm['customer_details[loginPassword]'].value == '') {
		Msg += 'Please choose an admin login password\n';
	} else if (frm['customer_details[loginPassword]'].value.length < 4 || frm['customer_details[loginPassword]'].value.match(/ /)) {
		Msg += 'Please choose an admin login password of at least 4 characters in length (no spaces)\n';
	} else if (frm['customer_details[loginPassword2]'].value == '') {
		Msg += 'Please choose an admin login confirmation password\n';
	} else if (frm['customer_details[loginPassword2]'].value.length < 4 || frm['customer_details[loginPassword2]'].value.match(/ /)) {
		Msg += 'Please choose an admin login confirmation password of at least 4 characters in length (no spaces)\n';
	} else if (frm['customer_details[loginPassword]'].value != frm['customer_details[loginPassword2]'].value) {
		Msg += 'The admin login and admin login confirmation password do not match\n';
	}

	if (Msg) {
		alert(Msg);
		return false;
	} else {
		return true;
	}
}
