/*
 * http://www.teenchallenge.ca/script/vehicledonate.js
 * 
 * Javascript functions for Vehicle Donation Form
 * Functions for data validation, gui manipulation, form submission
 * 
 */

function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}
document.onkeypress = stopRKey;

 
function AjaxObject() {
        var httpRequest;

        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            httpRequest = new XMLHttpRequest();
            if (httpRequest.overrideMimeType) {
                httpRequest.overrideMimeType('text/xml');
                // See note below about this line
            }
			return httpRequest;
        } 
        else if (window.ActiveXObject) { // IE
            try {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } 
                catch (e) {
                           try {
                                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                               } 
                             catch (e) {}
                          }
			return httpRequest;
		}

        if (!httpRequest) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
}

function uncache(url) {
	var d = new Date();
	var time = d.getTime();
	return url+'&time='+time;
}
function valid_email(email) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	return (reg.test(email) && email != "");
}
function valid_phone(phone) {
	return phone != "";
}

function isNum(x) {
	if ( x == "" ) {
		return false;
	}
	var i, s;
	s = x.toString();
	for (i=0; i<s.length; i++) {
		var c = s.charAt(i);
		if (isNaN(c)) {
			return false;
		}
	}
	return true;
}

function isDate(x) {
	if ( x == "" ) return false;
	var regex=/[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]/;
	if ( !regex.test(x) ) return false;
	var ar = x.split("/");
	if ( parseInt(ar[0],10) < 1 || parseInt(ar[0],10) > 12 ) return false;
	if ( parseInt(ar[1],10) < 1 || parseInt(ar[1],10) > 31 ) return false;
	if ( parseInt(ar[2],10) < 1900 || parseInt(ar[0],10) > 2050 ) return false;
	return true;
}

function alphaNumCheck(value) { // for VIN Checksum validation
	var myRegxp = /^[a-zA-Z0-9]{17}$/;
	if (myRegxp.test(value)==false) { 
		return false;
	} else {
		return true;
	}
}

function valid_postal(post) {
	var myRegxp = /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z]\d[ABCEGHJ-NPRSTV-Z]\d$/;
	for ( i=0; i<post.length; i++ ) {
		post = post.replace(' ','');
	}
	post = post.toUpperCase();
	if ( myRegxp.test(post)==false) {
		return false;
	} else {
		return true;
	}
}

function valid_vin(vin){
	var checkDigit="";
	var alphaPool = new Array(); // List of all allowable alpha digits (no I, O, or Q)
	alphaPool=["","a","b","c","d","e","f","g","h","j","k","l","m","n","p","r","s","t","u","v","w","x","y","z"];
	var alphaValue = new Array(); // Corresponding numeric value for alpha digits
	alphaValue=["",1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9];
	var digitWeight = new Array(); // Corresponding weight of VIN digits
	digitWeight=["",8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2];
	var finalWeight = new Array(); // Numeric value of each digit, multiplied by corresponding digit weight
	var myVIN = vin.toLowerCase(); // VIN argument
	if (alphaNumCheck(myVIN)) {
		var aryVinDigit = new Array();
		for (var i = 1; i <= 17; i++) { // parse the VIN and assign digits to an array
			aryVinDigit[i] = myVIN.substring(i-1,i);
		}
		var aryVinValue = new Array();
		for (var i = 1; i <= 17; i++) { // create array of numeric values corresponding to vin digits
			if (isNaN(aryVinDigit[i])) { // for alpha characters only
				var goodAlpha = false;
				for (var x = 1; x <= 23; x++) { // search alpha pool to find which letter in this digit
					if (aryVinDigit[i]==alphaPool[x]) {
						aryVinValue[i] = alphaValue[x]; // assign numeric value for this letter
						x = 24; // we found our man, exit the for loop
						goodAlpha = true;
					}
				}
				if (!goodAlpha) {
					i = 18; //stop checking VIN digits and report the error
					return false;
				}
			} else {
				aryVinValue[i] = aryVinDigit[i]; // numeric digit from VIN is used
			}
		}
		var totalWeight = 0; // sum of products of all digits (except 9th)
		for (var i = 1; i <= 8; i++) { // get weighted value of digits 1-8 and 10-17
			finalWeight[i] = aryVinValue[i] * digitWeight[i]; // digits 1 through 8
			finalWeight[i+8] = aryVinValue[i+9] * digitWeight[i+9]; // digits 10 through 17
			totalWeight = totalWeight + finalWeight[i] + finalWeight[i+8];
		}
		checkDigit = totalWeight%11;
		if (checkDigit == 10) {
			checkDigit = "x";
		}
		return true;
	} else {
		return false;
	}
}

function set_owner() {
	document.getElementById('table4a').style.display = 'block';
	document.getElementById('table4b').style.display = 'none';
	document.getElementById('table4a').style.visibility = 'hidden';
	document.getElementById('table4b').style.visibility = 'hidden';
	document.getElementById('table4a').style.marginLeft = "30px";
	document.getElementById('b4a').innerHTML = "VEHICLE OWNER INFORMATION";
	document.getElementById('b4a').style.paddingBottom = '0';
	document.getElementById('my_contact_note').style.display = '';
	show_table4();
}

function unset_owner() {
	document.getElementById('table4a').style.display = 'block';
	document.getElementById('table4b').style.display = 'block';
	document.getElementById('table4a').style.visibility = 'hidden';
	document.getElementById('table4b').style.visibility = 'hidden';
	if ( isie6() ) {
		document.getElementById('table4a').style.marginLeft = "0px";
	} else {
		document.getElementById('table4a').style.marginLeft = "-20px";
	}
	document.getElementById('b4a').innerHTML = "YOUR CONTACT INFORMATION";
	document.getElementById('b4a').style.paddingBottom = '5px';
	document.getElementById('b4b').style.paddingBottom = '0';
	document.getElementById('my_contact_note').style.display = 'none';
	show_table4();
}

function multi_owner() {
	show_table4();
}

function single_owner() {
	show_table4();
}

function show_table4() {
	var form = (document.ChronoContact_vehicledonation) ? document.ChronoContact_vehicledonation : document.ChronoContact_donatevehicle;

	if ( form.multipleowner ) { 
		if ( form.contact_owner[0].checked ) var reg_owner = true;
		if ( form.contact_owner[1].checked ) var reg_owner = false;
		if ( form.multipleowner[0].checked ) var mult_owner = true;
		if ( form.multipleowner[1].checked ) var mult_owner = false;

		if ( typeof( reg_owner ) != 'undefined' && typeof( mult_owner ) != 'undefined' ) {
			if ( !mult_owner ) {
				document.getElementById('mult_owner_4a').style.display = 'none';
				document.getElementById('mult_owner_4b').style.display = 'none';
			} else if ( reg_owner ) {
				document.getElementById('mult_owner_4a').style.display = '';
				document.getElementById('mult_owner_4b').style.display = 'none';
			} else {
				document.getElementById('mult_owner_4a').style.display = 'none';
				document.getElementById('mult_owner_4b').style.display = '';
			}

			document.getElementById('table4a').style.visibility = 'visible';
			document.getElementById('table4b').style.visibility = 'visible';
		}
	} else {
		document.getElementById('table4a').style.visibility = 'visible';
		document.getElementById('table4b').style.visibility = 'visible';
	}
}

function show_rust() {
	document.getElementById('rust_location_label').style.visibility = 'visible';
	document.getElementById('rust_location').style.visibility = 'visible';
	if ( isie6() ) {
		document.getElementById('pg3').style.marginTop = '-15px';
		document.getElementById('ctrl').style.bottom = '15px';
	}
}
function hide_rust() {
	document.getElementById('rust_location_label').style.visibility = 'hidden';
	document.getElementById('rust_location').style.visibility = 'hidden';
}
function show_damage() {
	document.getElementById('damage_location_label').style.visibility = 'visible';
	document.getElementById('damage_location').style.visibility = 'visible';
	if ( isie6() ) {
		document.getElementById('pg3').style.marginTop = '-15px';
		document.getElementById('ctrl').style.bottom = '15px';
	}
}
function hide_damage() {
	document.getElementById('damage_location_label').style.visibility = 'hidden';
	document.getElementById('damage_location').style.visibility = 'hidden';
}

function isie6() {
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { //test for MSIE x.x;
		var ieversion = new Number(RegExp.$1); // capture x.x portion and store as a number
		if (ieversion>=8) {
			return false;
		} else if (ieversion>=7) {
			return false;
		} else if (ieversion>=6) {
			return true;
		} else if (ieversion>=5) {
			return false;
		} else {
			return false;
		}
	}
	return false;
}

var makes = [ {name:"Acura",models:["CL","EL","Integra","Legend","NSX-T","TL","Vigor"] },
			  {name:"Alfa-Romeo",models:["164","Spider"] },
			  {name:"Asuna",models:["Sunfire","Sunrunner"] },
			  {name:"Audi",models:["100","200","5000 S","90","90S","A4","A6","A8 Quattro","S4","S6","Sport 90","TT Quattro"] },
			  {name:"BMW",models:["3-Series","5-series","6 Series","7-Series","8-series","M","M3","Z3"] },
			  {name:"Bugatti",models:["B35"] },
			  {name:"Buick",models:["Allure","Century","Custom","Estate Wagon","LeSabre","Lucerne","Park Avenue","Reatta","Regal","Rendezvous","Riviera","Roadmaster","Skyhawk","Skylark","Somerset","Wildcat"] },
			  {name:"Cadillac",models:["60 Special","Allante","Brougham","Catera","CTS","CTS-V","Deville","Eldorado","Fleetwood","Seville","STS","XLR"] },
			  {name:"Celeca",models:["GT"] },
			  {name:"Chevrolet",models:["Astro","Aveo","Aveo 5","Beretta","Blazer","C/K1500","C10","C2500","C30","C3500","Camaro","Caprice","Caprice Classic","Cavalier","Celebrity","Chevette","Chevyvan","Cheyenne","Cobalt","Corsica","Corvette","Epica","Express","G10","G20","G30","Geo","Impala","K3500","Lumina","Lumina APV","Malibu","Malibu MAXX","Metro","Monte Carlo","Nova","Optra","Optra 5","R 10","S10","S14","S15","Sprint","Suburban","Venture"] },
			  {name:"Chrysler",models:["300","300C","300M","Cirrus","Concorde","Cordoba","Crossfire","Daytona","Dynasty","Fifth Avenue","Imperial","Intrepid","Laser","Lebaron","LHS","Neon","New Yorker","Newport","Prowler","PT Cruiser","Sebring","Town & Country"] },
			  {name:"Daewoo",models:["Lanos","Leganza","Nubira"] },
			  {name:"Datsun-Nissan",models:["Maxima"] },
			  {name:"Dodge",models:["2000","2500","600","Arias","Aries","Avenger","Caravan","Challenger","Charger","Colt","Colt 100","Colt 200","Colt 200 DOHC","D-100","D-150","D-250","Dakota","Dart","Daytona","Diplomat","Durango","Grand Caravan","Lancer","Magnum","Neon","Omni","Ram","Ram 2500","Ram 3500","Ram 50","Ram1500","Regent","Shadow","Spirit","Stealth","Stratus","SX 2.0","Viper"] },
			  {name:"Eagle",models:["2000","Medallion","Premier","Summit","Talon","Vision","Vista"] },
			  {name:"Fiat",models:["Spider"] },
			  {name:"Ford",models:["Aerostar","Aspire","Bronco","Bronco II","Club Wagon","Contour","Crown Victoria","E350","E450","Econoline","Escape","Escort","Expedition","Explorer","F Super Duty","F100","F150","F250","F350","Fairlane","Fairmont","Festiva","Focus","Free Star","Granada","LTD","Mustang","Pickup","Probe","Ranger","Taurus","Tempo","Thunderbird","Windstar"] },
			  {name:"Freightliner",models:["FL86","FLD 120"] },
			  {name:"Geo",models:["Metro","Prizm","Storm","Tracker"] },
			  {name:"GMC",models:["C1500","C2500","C3500","Caballero","Chassis & Cab","Envoy","Express","Jimmy","P3500","Pickup","R1500","Rally","S15","Safari","Savana","Sierra","Sonoma","Suburban","Tracker","Typhoon","Vandura","Yukon"] },
			  {name:"Hino",models:["FD"] },
			  {name:"Honda",models:["Accord","Civic","CR-V","Odyssey","Prelude","Wagovan"] },
			  {name:"Hyundai",models:["Accent","Elantra","Excel","Pony","Santa Fe","Scoupe","Sonata","Stellar","Tiburon","XG300"] },
			  {name:"Infiniti",models:["G20","I30","J30","Q45","QX4"] },
			  {name:"International",models:["B240","F26"] },
			  {name:"Isuzu",models:["Hombre","I Mark","Impulse","Optima","Pickup","Rodeo","Space Cab","Trooper","Trooper II"] },
			  {name:"Jaguar",models:["S Type","VanDen Plas","XJ","XJ12","XJ6","XJS","XJ-S","XJ-SC","XK8"] },
			  {name:"Jeep",models:["Cherokee","CJ","CJ7","Comanche","Grand Cherokee","TJ Wrangler","Wagoneer","Wrangler","YJ Wrangler"] },
			  {name:"Kia",models:["Magentis","Rio","Sedona","Sephia","Spectra","Sportage"] },
			  {name:"Lada",models:["Lada","Niva","Samara","Signet"] },
			  {name:"Landrover",models:["Discovery"] },
			  {name:"Lexus",models:["ES","GS","LS","LX450","LX470","RX300","SC"] },
			  {name:"Lincoln",models:["Continental","Lincoln","LS","Mark VII","Mark VIII","Navigator","Town Car"] },
			  {name:"Mazda",models:["323","626","929","B2000","B2200","B2300","B2500","B2600","B3000","B4000","GLC","Millenia","MPV","MPV Van","MX-3","MX-5","MX6","MX-6","Navajo","Protégé","RX7"] },
			  {name:"Mercedes-Benz",models:["190","240","300","300TD","420","560","C230","C280","E320"] },
			  {name:"Mercury",models:["Capri","Colony Park","Cougar","Grand Marquis","Lynx","Marquis","Montego","Mystique","Sable","Topaz","Tracer","Villager","Zephyr"] },
			  {name:"Merkur",models:["Scorpio","XR4Ti"] },
			  {name:"Mitsubishi",models:["Eclipse","Montero"] },
			  {name:"Nissan",models:["200SX","240SX","300ZX","Altima","Axxess","Maxima","Micra","Multi","NX","Pathfinder","Pickup","Pulsar","Quest","Quest Mini Van","Sentra","Stanza"] },
			  {name:"Oldsmobile",models:["98 Regency","Achieva","Alero","Aurora","Bravada","Ciera","Custom Cruiser","Cutlass","Cutlass Calais","Cutlass Ciera","Cutlass Supreme","Delta 88","Eighty Eight","Firenza","Intrigue","LSS","Ninety Eight","Omega","Silhouette","Toronado"] },
			  {name:"Passport",models:["Optima"] },
			  {name:"Peugeot",models:["405 Series","505 Series"] },
			  {name:"Plymouth",models:["Acclaim","Breeze","Caravelle","Colt","Expo","Fury","Grand Voyager","Horizon","Laser","Neon","Prowler","Reliant","Sundance","Turismo","Voyager","Voyageur"] },
			  {name:"Pontiac",models:["2000","6000","Acadian","Aztek","Bonneville","Fiero","Firebird","Firefly","Grand AM","Grand Prix","GTO","Lemans","Montana","Parisienne","Phoenix","Safari","Sunbird","Sunburst","Sunfire","Sunrunner","T 1000","Tempest","Trans Sport","Vibe"] },
			  {name:"Porsche",models:["911","912","924","928","944","968","Boxster"] },
			  {name:"Rambler",models:["162"] },
			  {name:"Renault",models:["Alliance","Fuego","LE Car","R-18","Sportwagon"] },
			  {name:"Saab",models:["900","9000","9-3","9-5"] },
			  {name:"Saturn",models:["L200","LS","LS 1","LS 2","LW 1","LW 2","Relay","SC","SC 1","SC 2","SL","SL1","SL2","SW1","SW2"] },
			  {name:"Skoda",models:["5500","6665","7265"] },
			  {name:"Subaru",models:["Chaser","Forester","G10","Impreza","Justy","Legacy","Loyale","RX","Subaru","SVX"] },
			  {name:"Suzuki",models:["Esteem","Forsa","Grand Vitara","Samurai","Sidekick","Swift","Vitara","X-90"] },
			  {name:"Toyota",models:["4-Runner","Avalon","Camry","Celica","Corolla","Corolla AE","Cressida","Echo","Extra Long Xcab","Landcruiser","Paseo","Previa","RAV 4","Sienna","SR5","Supra","Tercel"] },
			  {name:"Triumph",models:["Spitfire"] },
			  {name:"Volkswagen",models:["Beetle","Cabrio","Cabriolet","Corrado","Eurovan","Fox","Golf","Jetta","Passat","Rabbit","Scirocco","Transporter","Transporters","Van","Van Vanagon","Vanagon","Vanagon Wagon"] },
			  {name:"Volvo",models:["240","244","740","745","760","780","850","940","960","DL Series","GLE Series","GLT Series","S60","S70","V40","V70","XC90"] },
			  {name:"Yugo",models:["GL","L"] } 
			];


function set_models() {
	var make = document.ChronoContact_donatevehicle.veh_make.selectedIndex-1;
	var sel = document.ChronoContact_donatevehicle.veh_model;
	var opt, i;
	sel.options.length = 0;
	if ( make == -1 ) {
		sel.disabled = true;
	} else {
		var models = makes[make].models;
		for ( i=0; i<models.length; i++ ) {
			opt = document.createElement('option');
			opt.value = models[i];
			opt.innerHTML = models[i];
			sel.appendChild(opt);
		}
		sel.disabled = false;
	}
}




function validate(pg) {
	var form = (document.ChronoContact_vehicledonation) ? document.ChronoContact_vehicledonation : document.ChronoContact_donatevehicle;
	switch(pg) {
		case 1: if ( !isNum(form.veh_year.value) || form.veh_year.value < 1900 || form.veh_year.value > 2050 ) { alert("Please enter the complete vehicle year."); form.veh_year.focus(); return false; }
				if ( form.veh_make.value == "" ) { alert("Please enter the vehicle make."); form.veh_make.focus(); return false; }
				if ( form.veh_model.value == "" ) { alert("Please enter the vehicle model."); form.veh_model.focus(); return false; }
				if ( form.veh_colour.value == "" ) { alert("Please enter the vehicle colour."); form.veh_colour.focus(); return false; }
				if ( form.veh_vin.value == "" ) { alert("Please enter the vehicle VIN number."); form.veh_vin.focus(); return false; }
				if ( !valid_vin(form.veh_vin.value) && form.veh_year.value > 1980 ) { alert("Please double-check you have entered the VIN correctly.  The VIN must be exactly 17 alpha-numeric digits, with no punctuation or spaces."); form.veh_vin.focus(); return false; }
				if ( !isNum(form.veh_odom.value) ) { alert("Please enter the exact odometer reading as a number."); form.veh_odom.focus(); return false; }
				if ( form.veh_version ) {
					if ( !isDate(form.veh_driven.value) ) { alert("Please indicate when the vehicle was last driven (mm/dd/yyyy)."); form.veh_driven.focus(); return false; }
				} else {
					if ( form.veh_driven.value == "" ) { alert("Please indicate when the vehicle was last driven."); form.veh_driven.focus(); return false; }
				}
				if ( !(form.driveable[0].checked || form.driveable[1].checked) ) { alert("Please indicate if the vehicle is driveable."); return false; }
				if ( !(form.start[0].checked || form.start[1].checked) ) { alert("Please indicate if the vehicle will start."); return false; }
				return true;
		case 2: if (!(form.engine[0].checked || form.engine[1].checked || form.engine[2].checked || form.engine[3].checked) ) { alert("Please indicate the engine condition."); return false; }
				if (!(form.brakes[0].checked || form.brakes[1].checked || form.brakes[2].checked || form.brakes[3].checked) ) { alert("Please indicate the brake condition."); return false; }
				if (!(form.tires[0].checked || form.tires[1].checked || form.tires[2].checked || form.tires[3].checked) ) { alert("Please indicate the tire condition."); return false; }
				if (!(form.tires_inf[0].checked || form.tires_inf[1].checked) ) { alert("Please indicate if the tires are inflated."); return false; }
				if (!(form.tires_air[0].checked || form.tires_air[1].checked) ) { alert("Please indicate if the tires hold air."); return false; }
				if (!(form.steering[0].checked || form.steering[1].checked || form.steering[2].checked || form.steering[3].checked) ) { alert("Please indicate the steering condition."); return false; }
				if (!(form.transmission[0].checked || form.transmission[1].checked || form.transmission[2].checked || form.transmission[3].checked) ) { alert("Please indicate the transmission condition."); return false; }
				return true;
		case 3: if (!(form.rust[0].checked || form.rust[1].checked || form.rust[2].checked || form.rust[3].checked) ) { alert("Please indicate the amount of rust on the vehicle."); return false; }
				if (!form.rust[0].checked && form.rust_location.value == "") { alert("Please indicate the location of the rust."); document.getElementById('rust_location_tr').style.visibility="visible"; form.rust_location.focus(); return false; }
				if (!(form.damage[0].checked || form.damage[1].checked || form.damage[2].checked || form.damage[3].checked) ) { alert("Please indicate any body damage to the vehicle."); return false; }
				if (!form.damage[0].checked && form.damage_location.value == "") { alert("Please indicate the location of the damage."); document.getElementById('damage_location_tr').style.visibility="visible"; form.damage_location.focus(); return false; }
				if ( isie6() ) {
					document.getElementById('pg3').style.marginTop = '0px';
					document.getElementById('ctrl').style.bottom = '0';
				}
				return true;
		case 4: 
				if ( !(form.contact_owner[0].checked || form.contact_owner[1].checked) ) { alert("Please indicate if you are the registered owner."); return false; }
				if ( !(form.multipleowner[0].checked || form.multipleowner[1].checked) ) { alert("Please indicate if there are multiple owners of the vehicle."); return false; }
				if ( form.contact_fname.value == "" ) { alert("Please enter your first name."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.contact_fname.focus(); return false; }
				if ( form.contact_lname.value == "" ) { alert("Please enter your last name."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.contact_lname.focus(); return false; }
				if ( form.contact2_fname ) {
					if ( form.contact_owner[0].checked && form.multipleowner[0].checked ) {
						if ( form.contact2_fname.value == "" ) { alert("Please enter additional owner's first name."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.contact2_fname.focus(); return false; }
						if ( form.contact2_lname.value == "" ) { alert("Please enter additional owner's last name."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.contact2_lname.focus(); return false; }
					}
				}
				if ( !valid_email(form.contact_email.value) ) { alert("Please enter a valid email address."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.contact_email.focus(); return false; }
				if ( form.contact_workphone ) {
					if ( !valid_phone(form.contact_phone.value) && !valid_phone(form.contact_workphone.value) && !valid_phone(form.contact_cellphone.value) ) { alert("Please enter at least one phone number where we can contact you."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.contact_phone.focus(); return false; }
				} else {
					if ( !valid_phone(form.contact_phone.value) ) { alert("Please enter a phone number where we can contact you."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.contact_phone.focus(); return false; }
				}
				if ( form.contact_address.value == "" ) { alert("Please enter your address."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.contact_address.focus(); return false; }
				if ( form.contact_city.value == "" ) { alert("Please enter your city and province."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.contact_city.focus(); return false; }
				if ( !valid_postal(form.contact_postal.value) ) { alert("Please enter a valid Canadian postal code."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.contact_postal.focus(); return false; }
				document.getElementById('my_address').innerHTML = form.contact_address.value+", "+form.contact_city.value+", "+form.contact_prov.value+" "+form.contact_postal.value;					
				if ( form.contact_owner[0].checked ) { document.getElementById('deliver_c').style.display = 'none'; 
											   document.getElementById('label_deliver_c').style.display = 'none';
											   document.getElementById('owners_address').style.display = 'none';
											   return true; }
				if ( form.owner_fname.value == "" ) { alert("Please enter the owner's first name."); document.getElementById('table4a').style.display='block'; document.getElementById('table4b').style.display='block'; form.owner_fname.focus(); return false; }
				if ( form.owner_lname.value == "" ) { alert("Please enter the owner's last name."); document.getElementById('table4a').style.display='block'; document.getElementById('table4b').style.display='block'; form.owner_lname.focus(); return false; }
				if ( form.owner2_fname ) {
					if ( form.contact_owner[1].checked && form.multipleowner[0].checked ) {
						if ( form.owner2_fname.value == "" ) { alert("Please enter additional owner's first name."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.owner2_fname.focus(); return false; }
						if ( form.owner2_lname.value == "" ) { alert("Please enter additional owner's last name."); document.getElementById('table4a').style.display='block'; if(form.contact_owner[1].checked){document.getElementById('table4b').style.display='block';} form.owner2_lname.focus(); return false; }
					}
				}
				if ( form.owner_address.value == "" ) { alert("Please enter the owner's address."); document.getElementById('table4a').style.display='block'; document.getElementById('table4b').style.display='block'; form.owner_address.focus(); return false; }
				if ( form.owner_city.value == "" ) { alert("Please enter the owner's city and province."); document.getElementById('table4a').style.display='block'; document.getElementById('table4b').style.display='block'; form.owner_city.focus(); return false; }
				if ( !valid_postal(form.owner_postal.value) ) { alert("Please check the owner's postal code."); document.getElementById('table4a').style.display='block'; document.getElementById('table4b').style.display='block'; form.owner_postal.focus(); return false; }

				document.getElementById('deliver_c').style.display = 'inline'; 
				document.getElementById('label_deliver_c').style.display = 'inline';
				document.getElementById('owners_address').style.display = 'block';
				document.getElementById('owners_address').innerHTML = form.owner_address.value+", "+form.owner_city.value+", "+form.owner_prov.value+" "+form.owner_postal.value;
				return true;
		case 5: if ( !(form.deliver[0].checked || form.deliver[1].checked || form.deliver[2].checked || form.deliver[3].checked) ) { alert("Please choose a method of delivery to Teen Challenge."); return false; }
				if ( form.deliver[3].checked ) {
					if ( form.deliver_address.value == "" ) { alert ("Please enter the pickup address for the vehicle."); document.getElementById('table5b').style.display = "block"; document.getElementById('table5c').style.display = "block"; form.deliver_address.focus(); return false; }
					if ( form.deliver_city.value == "" ) { alert ("Please enter the pickup city and province for the vehicle."); document.getElementById('table5b').style.display = "block"; document.getElementById('table5c').style.display = "block"; form.deliver_city.focus(); return false; }			
					if ( !valid_postal(form.deliver_postal.value) ) { alert ("Please check the pickup postal code for the vehicle."); document.getElementById('table5b').style.display = "block"; document.getElementById('table5c').style.display = "block"; form.deliver_postal.focus(); return false; }
					if ( form.deliver_contact.value == "" ) { alert ("Please enter the contact name for the vehicle."); document.getElementById('table5b').style.display = "block"; document.getElementById('table5c').style.display = "block"; form.deliver_contact.focus(); return false; }
					if ( !valid_phone(form.deliver_phone.value) ) { alert ("Please enter the contact phone number for the vehicle."); document.getElementById('table5b').style.display = "block"; document.getElementById('table5c').style.display = "block"; form.deliver_phone.focus(); return false; }
				}
				return true;
	}
	return false;
}

function prev() {
	if ( curpg>1 ) {
		curpg--;
		for ( var i=1; i<6; i++ ) {
			document.getElementById('pg'+i).style.display = 'none';
		}
		document.getElementById('pg'+curpg).style.display = 'block';
		document.getElementById('progress').innerHTML = curpg;
	} 
	if ( curpg != 5 ) { document.getElementById('ctrl_next').innerHTML = "Next&raquo;"; }
	if ( curpg == 1 ) { document.getElementById('ctrl_prev').style.display = 'none'; }
}

function next() {
	if ( validate(curpg) ) {
		if ( curpg<5 ) {
			curpg++;
			for ( var i=1; i<6; i++ ) {
				document.getElementById('pg'+i).style.display = 'none';
			}
			document.getElementById('pg'+curpg).style.display = 'block';
			document.getElementById('progress').innerHTML = curpg;
		} else if ( curpg==5 ) {
			submit_donate_form();
			document.getElementById('ctrl_next').disabled = 'true';
		}
	}
	if ( curpg == 5 ) { document.getElementById('ctrl_next').innerHTML = "Submit&raquo;"; }
	document.getElementById('ctrl_prev').style.display = 'inline';
}

function init_form() { 
	document.getElementById('ctrl_nojs').style.display = 'none';
	document.getElementById('pg1').style.display = 'block';
	document.getElementById('pg2').style.display = 'none';
	document.getElementById('pg3').style.display = 'none';
	document.getElementById('pg4').style.display = 'none';
	document.getElementById('pg5').style.display = 'none';

	document.getElementById('table4a').style.display = 'none';
	document.getElementById('table4b').style.display = 'none';
	document.getElementById('table5b').style.display = 'none';
	document.getElementById('table5c').style.display = 'none';
	document.getElementById('b1').style.paddingTop = '0';
	document.getElementById('b2').style.paddingTop = '0';
	document.getElementById('b3').style.paddingTop = '0';
	document.getElementById('b5').style.paddingTop = '0';

	document.getElementById('rust_location').style.visibility = 'hidden';
	document.getElementById('rust_location_label').style.visibility = 'hidden';
	document.getElementById('damage_location').style.visibility = 'hidden';
	document.getElementById('damage_location_label').style.visibility = 'hidden';
	document.getElementById('truck_cab_tr').style.visibility = 'hidden';
	document.getElementById('truck_box_tr').style.visibility = 'hidden';

	document.getElementById('ctrl').style.display = 'inline';
	document.getElementById('ctrl_prev').style.display = 'none';
	
}

function get_form_data() {
	var form = (document.ChronoContact_vehicledonation) ? document.ChronoContact_vehicledonation : document.ChronoContact_donatevehicle;
	var elem = form.elements;
	var vals = new Array();
	var ignore = new Array();
	var ck;
	
	ignore.push("truck_cab");
	ignore.push("truck_box");
	ignore.push("driveable");
	ignore.push("start");
	ignore.push("engine");
	ignore.push("brakes");
	ignore.push("tires");
	ignore.push("steering");
	ignore.push("transmission");
	ignore.push("rust");
	ignore.push("damage");
	ignore.push("contact_owner");
	ignore.push("deliver");
	ignore.push("tires_inf");
	ignore.push("tires_air");
	ignore.push("submit_veh_don");
	
	for ( var i=0; i<elem.length; i++ ) {
		if ( (name = elem[i].name) && (value = elem[i].value) ) {
			ck = true;
			for ( j=0; j<ignore.length; j++ ) { if ( name == ignore[j] ) { ck = false; } }
			if ( ck ) { vals.push(name+"="+encodeURIComponent(value)); }
		}
	}
	
	if ( form.veh_type.value == "LightTruck" ) { 
		vals.push('truck_cab='+encodeURIComponent(form.truck_cab.value)); 
		vals.push('truck_box='+encodeURIComponent(form.truck_box.value)); 
	}
	if ( form.driveable[0].checked ) { vals.push('driveable=yes'); } else { vals.push('driveable=no'); }
	if ( form.start[0].checked ) { vals.push('start=yes'); } else { vals.push('start=no'); }		
	if ( form.engine[0].checked ) { vals.push('engine=poor'); } else 
	if ( form.engine[1].checked ) { vals.push('engine=fair'); } else
	if ( form.engine[2].checked ) { vals.push('engine=good'); } else 
	if ( form.engine[3].checked ) { vals.push('engine=excellent'); }
	if ( form.brakes[0].checked ) { vals.push('brakes=poor'); } else 
	if ( form.brakes[1].checked ) { vals.push('brakes=fair'); } else
	if ( form.brakes[2].checked ) { vals.push('brakes=good'); } else 
	if ( form.brakes[3].checked ) { vals.push('brakes=excellent'); }
	if ( form.tires[0].checked ) { vals.push('tires=poor'); } else 
	if ( form.tires[1].checked ) { vals.push('tires=fair'); } else
	if ( form.tires[2].checked ) { vals.push('tires=good'); } else 
	if ( form.tires[3].checked ) { vals.push('tires=excellent'); }
	if ( form.tires_inf[0].checked ) { vals.push('tires_inf=yes'); } else
	if ( form.tires_inf[1].checked ) { vals.push('tires_inf=no'); }
	if ( form.tires_air[0].checked ) { vals.push('tires_air=yes'); } else
	if ( form.tires_air[1].checked ) { vals.push('tires_air=no'); }
	if ( form.steering[0].checked ) { vals.push('steering=poor'); } else 
	if ( form.steering[1].checked ) { vals.push('steering=fair'); } else
	if ( form.steering[2].checked ) { vals.push('steering=good'); } else 
	if ( form.steering[3].checked ) { vals.push('steering=excellent'); }
	if ( form.transmission[0].checked ) { vals.push('transmission=poor'); } else 
	if ( form.transmission[1].checked ) { vals.push('transmission=fair'); } else
	if ( form.transmission[2].checked ) { vals.push('transmission=good'); } else 
	if ( form.transmission[3].checked ) { vals.push('transmission=excellent'); }
	if ( form.rust[0].checked ) { vals.push('rust=none'); } else 
	if ( form.rust[1].checked ) { vals.push('rust=min'); } else
	if ( form.rust[2].checked ) { vals.push('rust=int'); } else 
	if ( form.rust[3].checked ) { vals.push('rust=maj'); }
	if ( form.damage[0].checked ) { vals.push('damage=none'); } else 
	if ( form.damage[1].checked ) { vals.push('damage=min'); } else
	if ( form.damage[2].checked ) { vals.push('damage=int'); } else 
	if ( form.damage[3].checked ) { vals.push('damage=maj'); }
	if ( form.contact_owner[0].checked ) { vals.push('contact_owner=yes'); } else { vals.push('contact_owner=no'); }
	if ( form.deliver[0].checked ) { vals.push('deliver=will'); } else 
	if ( form.deliver[1].checked ) { vals.push('deliver=myadd'); } else
	if ( form.deliver[2].checked ) { vals.push('deliver=owneradd'); } else 
	if ( form.deliver[3].checked ) { vals.push('deliver=otheradd'); }

	vals.push('submit_veh_don=true');

	return vals.join("&");
}

function submit_donate_form() {
	//document.ChronoContact_vehicledonation.style.display = 'none';


	var data = get_form_data();
	
	var obj = AjaxObject();
	obj.onreadystatechange = function() { 
		if ( obj.readyState == 4 && obj.status == 200) {
			// document.ChronoContact_vehicledonation.style.display = 'none';
			document.getElementById('pg1').style.display = 'none';
			document.getElementById('pg2').style.display = 'none';
			document.getElementById('pg3').style.display = 'none';
			document.getElementById('pg4').style.display = 'none';
			document.getElementById('pg5').style.display = 'none';
			document.getElementById('ctrl').style.display = 'none';
			//document.getElementById('form_img').style.top = 245;
			
			var box = document.getElementById('form_success');
			box.style.display = 'block';
			if ( obj.responseText ) {
				box.innerHTML = '<h3>Thank you!</h3><p>Your vehicle donation information has been received. Shortly you will receive, via email, information regarding the next steps to be taken in your donating process.</p><p>We greatly appreciate your donation.</p><p><b>Congratulations.  You are helping Teen Challenge change lives!</b></p><p>If you have any questions, please <a href="mailto:vdpinfo@teenchallenge.ca">click here</a> to email us directly</p>';
			} else {
				box.innerHTML = '<p>There has been an error in your form submission.  Please <a href="donate_car.php">Click here</a> to try again, or <a href="mailto:info@teenchallenge.ca">email us directly</a> with your request.  Sorry for any inconvenience!</p>';
			}
			document.body.style.cursor = 'default';

		} else {
			document.body.style.cursor = 'wait';
          //  document.getElementById('form_success').innerHTML = obj.readyState+" "+obj.status;
		}
	}
	obj.open("POST", "http://www.teenchallenge.ca/script/ajax.php", true);
	obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	obj.setRequestHeader("Content-length", data.length);
	obj.setRequestHeader("Connection", "close");
	obj.send(data);
	return false;
}