function MM_preloadImages() { //v3.0
	var d=document; 
	
	if(d.images){ 
		if(!d.MM_p) d.MM_p=new Array();
		
    	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; 
		
		for(i=0; i<a.length; i++)
		    if (a[i].indexOf("#")!=0){ 
				d.MM_p[j]=new Image; 
				d.MM_p[j++].src=a[i];
			}
	}
}

function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; 
	document.MM_sr=new Array; 
	
	for(i=0;i<(a.length-2);i+=3)
		if ((x=MM_findObj(a[i]))!=null){
			document.MM_sr[j++]=x; 
			if(!x.oSrc) x.oSrc=x.src; 
			x.src=a[i+2];
		}
}

function MM_findObj(n, d) { //v4.0
	var p,i,x;  
	
	if(!d) d=document; 
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; 
		n=n.substring(0,p);
	}

	if(!(x=d[n])&&d.all) x=d.all[n]; 
	
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

	if(!x && document.getElementById) x=document.getElementById(n); 
	
	return x;
}

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; 
	
	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function HideOrShowStuff(controlToHide)
{
    if (document.getElementById)
    {

       if(controlToHide==1){
            document.getElementById('bill_area').disabled = false;
            document.getElementById('bill_area').style.backgroundColor = 'white';

            document.getElementById('bill_phone1').disabled = false;
            document.getElementById('bill_phone1').style.backgroundColor = 'white';
			
			document.getElementById('bill_phone2').disabled = false;
            document.getElementById('bill_phone2').style.backgroundColor = 'white';

            document.getElementById('bill_ext').disabled = false;
            document.getElementById('bill_ext').style.backgroundColor = 'white';


            document.getElementById('bill_other').disabled = true;
            document.getElementById('bill_other').style.backgroundColor = 'gray';
            document.getElementById('bill_other').value ="";

        }else if(controlToHide == 2) {
            document.getElementById('bill_other').disabled = false;
            document.getElementById('bill_other').style.backgroundColor = 'white';


            document.getElementById('bill_area').disabled = true;
            document.getElementById('bill_area').style.backgroundColor = 'gray';
            document.getElementById('bill_area').value ="";
            document.getElementById('bill_phone1').disabled = true;
            document.getElementById('bill_phone1').style.backgroundColor = 'gray';
            document.getElementById('bill_phone1').value ="";
			document.getElementById('bill_phone2').disabled = true;
            document.getElementById('bill_phone2').style.backgroundColor = 'gray';
            document.getElementById('bill_phone2').value ="";
            document.getElementById('bill_ext').disabled = true;
            document.getElementById('bill_ext').style.backgroundColor = 'gray';
            document.getElementById('bill_ext').value ="";
        }
    }
    else
    {
        alert('Sorry, your browser doesn\'t support this');
    }
}

function checkfocus(now,len,next){
	//alert(now.value.length);
	if (now.value.length == len) next.focus();	

}

function initialize(){
	var course2 = "", product2 = "";

	for (var k=0; k<document.orderform.numCourses.value; k++){
		course2 = eval("document.orderform.course"+k);
		if(course2.checked)	course2.checked = false;
	}
	
	for (var k=0; k<document.orderform.numProducts.value; k++){
		product2 = eval("document.orderform.product"+k);
		if(product2.checked) product2.checked = false;		
	}
	
	document.orderform.rvarStudentDiscount.checked = false;
	document.orderform.rvarOnlineDiscount.checked = false;
	document.orderform.rvarMultipleClassDiscount.checked = false;
	document.orderform.Save.value = "";
	document.orderform.Total.value = "";
	document.orderform.GST.value = "";
	document.orderform.GrandTotal.value = "";

}

var Cost=0, Taxes=0, tpsAmount=0, tvqAmount=0, Save=0, Grand_Total=0, NumCourses=0, RebateOnline=false, RebateMult=false, RebateStudent=false;

function tally(amount2add, checkbox, checkbox_date , add, course){
	
	if (checkbox.checked) {
		if (checkbox_date != null) checkbox_date.disabled = false;
		if (add) Cost = Cost + amount2add;
		else Save = Save + amount2add;
		if (course) NumCourses++;
	}else if (Cost>0){
		if (checkbox_date != null) {
			checkbox_date.value = "not_selected";
			checkbox_date.disabled = true;
		}
		if (add) Cost = Cost - amount2add;
		else Save = Save - amount2add;
		if (course) NumCourses--;
	}
	
	if (NumCourses > 0 && !RebateStudent) {
		document.orderform.rvarStudentDiscount.disabled = false;
		RebateStudent = true;
	}else if(NumCourses == 0 && RebateStudent){
		if (document.orderform.rvarStudentDiscount.checked) {
			document.orderform.rvarStudentDiscount.checked = false;
			Save = Save - 12;
		}
		document.orderform.rvarStudentDiscount.disabled = true;
		RebateStudent = false;
		
	}
	
	if (NumCourses > 0 && !RebateOnline) {
		document.orderform.rvarOnlineDiscount.checked = true;
		RebateOnline = true;
		Save = Save + 10;
	}else if(NumCourses == 0 && RebateOnline){
		document.orderform.rvarOnlineDiscount.checked = false;
		RebateOnline = false;
		Save = Save - 10;
	}
	
	if (NumCourses > 1 && !RebateMult) {
		document.orderform.rvarMultipleClassDiscount.checked = true;
		RebateMult = true;
		Save = Save + 35;
	}else if(NumCourses == 1 && RebateMult) {
		document.orderform.rvarMultipleClassDiscount.checked = false;
		RebateMult = false;
		Save = Save - 35;
	}
	
	Cost = parseFloat(Cost);
	Save = parseFloat(Save);
	tpsAmount = parseFloat(Cost * 0.05); //TPS 5%
	tvqAmount = parseFloat((Cost + tpsAmount) * 0.075); //TVQ 7.5%
	Taxes = tpsAmount + tvqAmount;
	
	Cost = Math.round(Cost * 100) / 100; 
	Save = Math.round(Save * 100) / 100; 
	Taxes = Math.round(Taxes * 100) / 100; 
	
	Grand_Total = Math.round((Cost + Taxes - Save)*100)/100;
	
	document.orderform.Save.value = Save;
	document.orderform.Total.value = Cost;
	document.orderform.GST.value = Taxes;
	document.orderform.GrandTotal.value = Grand_Total;
	//alert(Cost+"   "+Save+"   "+NumCourses+"   "+Taxes+"   "+Grand_Total);
		
}

function isEmail(string) {
string = trimAll(string);
if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
	return true;
return false;

}

function trimAll(sString){
	while (sString.substring(0,1) == ' '){
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' '){
		sString = sString.substring(0,sString.length-1);
	}
return sString;
}

function validate(i,j){
	//alert (i+"   "+j+"   "+document.orderform.radio1[0].value);
	
	if (!checkInput(document.orderform.bill_first_name)) return false;
	else if (!checkInput(document.orderform.bill_last_name)) return false;
    else if (!checkInput(document.orderform.bill_address_one)) return false;
    else if (!checkInput(document.orderform.bill_city)) return false;
    else if (document.orderform.bill_state_or_province.value == "not_selected"){
        alert("Please select a state");
        document.orderform.bill_state_or_province.focus();
        return false;
    }else if (!checkInput(document.orderform.bill_postal_code)) return false;
    else if (!checkInput(document.orderform.bill_country)) return false;
    else if (!checkInput(document.orderform.email)) return false; 
	else if (!isEmail(document.orderform.email.value)){
		alert("Please enter a valid e-mail address.");
		orderform.email.focus();
        return false;
    }else if (document.orderform.howheard.value == "not_selected"){
        alert("Please select tell us how you heard about us");
        document.orderform.howheard.focus();
        return false;
	}
	
	if(document.orderform.radio1[0].checked){
		if(!checkPhone(document.orderform.bill_area,3)) return false;
		else if(!checkPhone(document.orderform.bill_phone1,3)) return false;
		else if(!checkPhone(document.orderform.bill_phone2,4)) return false;
	}else if(document.orderform.radio1[1].checked){
		var num = trimAll(document.orderform.bill_other.value);
		if(!checkPhone(document.orderform.bill_other,num.length)) return false;
	}
	var course = "", course_date ="";
	for (var k=0; k<i ; k++){
		course = eval("document.orderform.course"+k);
		//alert(course);
		//return false;
		if(course.checked){
			course_date = eval("document.orderform.course_date"+k);
			//course_date = eval(course_date);
			if (course_date.value == "not_selected"){
				alert("Please choose a date for your selected course.");
				course_date.focus();
				return false;
			}
		}	
	}
    

	reDeposit = new RegExp(/^\d+\.?\d*$/);
	if (Grand_Total > 0){
	 if(document.orderform.charge_total.value.length == 0 || document.orderform.charge_total.value == "" || document.orderform.charge_total.value == null ) {
		alert("Please enter a deposit.");
		document.orderform.charge_total.focus();
        return false;
     }else if (!reDeposit.test(document.orderform.charge_total.value)) {
		alert("Please enter a deposit.");
		document.orderform.charge_total.focus();
        return false;
     }else if (document.orderform.charge_total.value < 50 && document.orderform.GrandTotal.value > 50) {
		alert("Deposit too small. It has to be at least 50$");
		document.orderform.charge_total.focus();
       	return false;
     }else if (document.orderform.charge_total.value < document.orderform.GrandTotal.value && document.orderform.GrandTotal.value < 50) {
		alert("When ordering products, payment must be made in full.");
		document.orderform.charge_total.focus();
       	return false;
	}else if (document.orderform.charge_total.value > Grand_Total) {
		alert("Deposit greater than total.");
		document.orderform.charge_total.focus();
        return false;
	}
   }else {
		alert("Please choose a course or a product.");
		return false;
	}
	
	
	var ct = document.orderform.charge_total.value;
	ct = Math.round(ct * 100)/100;
	document.orderform.charge_total.value = ct;
	
	return true;
}

function checkInput(input){
	var string = trimAll(input.value);	
	if (string.length == 0 || string == "" || string == null) {
		alert("Please fill out all required fields.");
        input.focus();
		return false;
	}
	return true;
}

function checkPhone(input, l){
	var string = trimAll(input.value);
	if((string != "") && (string != null) && (string.length == l)){
    	for (var i=0; i < string.length; i++){
        	if ((string.substring(i,i+1) < '0') || (string.substring(i,i+1) > '9')) {
		 		alert( "Please enter numbers only!" );
				input.focus();
				return false;
			}
		}
	}else {
		alert( "Invalid Format!" ); 
		input.focus();
		return false;
	}
	return true;
}
