// calcPrices.js


// the users of this script must have a field called 'numUsers' that indicates the number of users
// it must also have three radio buttons 'single', 'site', 'corporate' grouped in the 
// 'volumeType' group.
// the license type ('academic', 'commercial', 'personal') must appear in the hidden field
// 'licenseType'

// the result will be updated in the element which id is 'total'.

academic_site_price = 199.00;
academic_user_price = 25.90;
commercial_user_price = 55.90;
commercial_2_4_user_price = 49.50;
commercial_5_9_user_price = 41.90;
commercial_10_plus_user_price = 35.90;
commercial_site_price = 650.00;
commercial_corporate_price = 3500.00;
personal_user_price = 35.90;

// compute the total price for the user's selection
//
// licenseType - string 'academic', 'commercial', 'personal'
// numUsers - from 1 to 500 or -1 for site license or -2 for corporate license.
function computePrice(licenseType, numUsers) {
	if (isNaN(numUsers)) {
		return NaN;
	}
	if (licenseType == 'academic') {
		if (numUsers == -1) {
			return academic_site_price;
		} else if (numUsers > 0 && numUsers <= 500) {
			return numUsers * academic_user_price;
		}
	} else if (licenseType == 'commercial') {
		if (numUsers == -1) {
			return commercial_site_price;
		} else if (numUsers == -2) {
			return commercial_corporate_price;
		} else if (numUsers == 1) {
			return commercial_user_price;
		} else if (numUsers >= 2 && numUsers <= 4) {
			return commercial_2_4_user_price * numUsers;
		} else if (numUsers >= 5 && numUsers <= 9) {
			return commercial_5_9_user_price * numUsers;
		} else if (numUsers >= 10 && numUsers <= 500) {
			return commercial_10_plus_user_price * numUsers;
		}
	} else if (licenseType == 'personal') {
		if (numUsers > 0 && numUsers <= 500) {
			return numUsers * personal_user_price;
		}
	}
	return NaN;
}

function getNumber(inputField) {
	var value = document.getElementById(inputField).value;
    return parseInt(value);
}

function verifyAndSubmit() {
	if (verifyFields()) {
		ordersForm.submit();
	}
}

function verifyFields() {
	var numUsers = getNumber('numUsers');
	var single = document.getElementById('single');
	var site = document.getElementById('site');
	var corp = document.getElementById('corporate');
	
	if (single.checked) {
		if (isNaN(numUsers) || numUsers > 500 || numUsers <= 0) {
			alert('The number of licenses is wrong');
			return false;
		} else {
			return true;
		}
	} else if (site.checked) {
		return true;
	} else if (corp.checked) {
		return true;
	}
	alert('Something is wrong with the selection.....');
	return false;
}

function computeTotal(thisEvent) {
	try {
		if (thisEvent.type == "keyup") {
			window.setTimeout('computeTotal()', 10);
		}
	} catch (e) {
	}
	var numUsers = getNumber('numUsers');
	var single = document.getElementById('single');
	var site = document.getElementById('site');
	var corp = document.getElementById('corporate');
	
	var licType = document.getElementById('licenseType').value;
	var totalText = document.getElementById('total');
	
	if (site.checked) {
		numUsers = -1;
	} else if (corp != null && corp.checked) {
		numUsers = -2;
	}
	
	var totalSum = computePrice(licType, numUsers);
	if (isNaN(totalSum)) {
		totalText.innerHTML='***';
	} else {
		totalText.innerHTML = "$" + totalSum.toFixed(2);
	}
}
