/*
AgrestiK.com 2009
*/

function vinDecoder() {
	/*
	59       10digits
	60 64  12digits
	65-71  13digits
	72-79  13digits
	80        13digits
	81-87   17digits
	*/
	vin = window.document.getElementById("vinNumber").value;
	vin = vin.toUpperCase();
	charCount = vin.length;
	modelYear = "N/A";
	modelDetails = "";
	generation = "N/A";
	
	switch (charCount) {
		case 10:	// années 59
			yearRange = "1959";
			switch (vin.charAt(0)) {
				case "G":
					modelSeries = "El Camino, 6-cyl";
					break;
				case "H":
					modelSeries = "El Camino, 8-cyl";
					break
				default:
					modelSeries = "N/A";
			}
			switch (vin.substr(1,2)) {
				case "59":
					modelYear = 1959;
					break;
				default:
					modelYear = "N/A";
			}
			switch (vin.charAt(3)) {
				case "B":
					assemblyPlant = "Baltimore, MD";
					break;
				default:
					assemblyPlant = "N/A";
			}
			productionNumber = vin.substr(4,(vin.length-1));
			
			/*modelDetails = "Year Range: " + yearRange + "<br />";*/
			modelDetails = modelDetails + "Model Series: " + modelSeries + "<br />";
			modelDetails = modelDetails + "Model Year: " + modelYear + "<br />";
			modelDetails = modelDetails + "Assembly Plant Code: " + assemblyPlant + "<br />";
			modelDetails = modelDetails + "Sequential Production Number: " + productionNumber;
			break;
			
			
		case 12:	// années 60-64
			yearRange = "1960,1964";
			modelYear = parseInt("196" + vin.charAt(0));
			if (modelYear == 1960) {
				switch (vin.substr(1,4)) {
					case "1180":
						modelSeries = "El Camino (2 dr. Sedan pickup), V-8";
						break;
					case "1160":
						modelSeries = "El Camino (2 dr. Sedan pickup), L-6";
						break;
					default:
						modelSeries = "N/A";
				}
				bodyStyle = "N/A";
			}
			else {
				switch (vin.substr(1,2)) {
					case "53":
						modelSeries = "El Camino L6";
						break;
					case "54":
						modelSeries = "El Camino V8";
						break;
					case "55":
						modelSeries = "Custom El Camino L6";
						break;
					case "56":
						modelSeries = "Custom El Camino V8";
						break;
					default:
						modelSeries = "N/A";
				}
				switch (vin.substr(3,2)) {
					case "80":
						bodyStyle = "2dr Sedan Pick-up";
						break;
					default:
						bodyStyle = "N/A";
				}
			}
			switch (vin.charAt(5)) {
				case "A":
					assemblyPlant = "Atlanta/Lakewood, GA";
					break;
				case "B":
					assemblyPlant = "Baltimore, MD";
					break;
				case "H":
					assemblyPlant = "Fremont, CA";
					break;
				case "K":
					assemblyPlant = "Kansas City/ Leeds, MO";
					break;
				case "L":
					assemblyPlant = "Los Angeles/Van Nuys, CA";
					break;
				default:
					assemblyPlant = "N/A";
			}
			productionNumber = vin.substr(6,(vin.length-1));
			
			/*modelDetails = "Year Range: " + yearRange + "<br />";*/
			modelDetails = modelDetails + "Model Year: " + modelYear + "<br />";
			modelDetails = modelDetails + "Model Series: " + modelSeries + "<br />";
			modelDetails = modelDetails + "Body Style: " + bodyStyle + "<br />";
			modelDetails = modelDetails + "Assembly Plant Code: " + assemblyPlant + "<br />";
			modelDetails = modelDetails + "Sequential Production Number: " + productionNumber;
			break;
			
			
		case 13:	// années 65-80
			if (vin.charAt(1) == "3") {	// années 65-71
				yearRange = "1965-1971";
				switch (vin.charAt(0)) {
					case "1":
						manufacturer = "Chevrolet";
						break
					case "5":
						manufacturer = "GMC";
						break
					default:
						manufacturer = "N/A";
				}
				switch (vin.substr(1,2)) {
					case "33":
						modelSeries = "El Camino L6";
						break;
					case "34":
						modelSeries = "El Camino V8";
						break;
					case "35":
						modelSeries = "Custom El Camino L6";
						break;
					case "36":
						modelSeries = "Custom El Camino V8";
						break;
					case "38":
						modelSeries = "El Camino SS 396";
						break;
					default:
						modelSeries = "N/A";
				}
				switch (vin.substr(3,2)) {
					case "80":
						bodyStyle = "2dr Sedan Pick-up";
						break;
					default:
						bodyStyle = "N/A";
				}
				if (vin.charAt(5) < 2) {
					modelYear = parseInt("197" + vin.charAt(5));
				}
				else {
					modelYear = parseInt("196" + vin.charAt(5));
				}
				switch (vin.charAt(6)) {
					case "A":
						assemblyPlant = "Atlanta/Lakewood, GA";
						break;
					case "B":
						assemblyPlant = "Baltimore, MD";
						break;
					case "F":
						assemblyPlant = "Flint, MI";
						break;
					case "G":
						assemblyPlant = "Framingham, MA";
						break;
					case "H":
						assemblyPlant = "Fremont, CA";
						break;
					case "K":
						assemblyPlant = "Kansas City/ Leeds, MO";
						break;
					case "L":
						assemblyPlant = "Los Angeles/Van Nuys, CA";
						break;
					case "R":
						assemblyPlant = "Arlington, TX";
						break;
					case "Z":
						assemblyPlant = "Fremont, CA";
						break;
					case "1":
						assemblyPlant = "Oshawa, Canada";
						break;
					default:
						assemblyPlant = "N/A";
				}
				productionNumber = vin.substr(7,(vin.length-1));
				
				/*modelDetails = "Year Range: " + yearRange + "<br />";*/
				modelDetails = modelDetails + "Manufacturer: " + manufacturer + "<br />";
				modelDetails = modelDetails + "Model Series: " + modelSeries + "<br />";
				modelDetails = modelDetails + "Body Style: " + bodyStyle + "<br />";
				modelDetails = modelDetails + "Model Year: " + modelYear + "<br />";
				modelDetails = modelDetails + "Assembly Plant Code: " + assemblyPlant + "<br />";
				modelDetails = modelDetails + "Sequential Production Number: " + productionNumber;
			}
			else if (vin.charAt(1) != "W") {	// années 72-77
				switch (vin.charAt(0)) {
					case "1":
						manufacturer = "Chevrolet";
						break;
					case "5":
						manufacturer = "GMC";
						break
					default:
						manufacturer = "N/A"
				}
				switch (vin.charAt(1)) {
					case "C":
						modelSeries = "El Camino";
						break;
					case "D":
						modelSeries = "Custom El Camino";
						break;
					default:
						modelSeries = "N/A";
				}
				switch (vin.substr(2,2)) {
					case "80":
						bodyStyle = "2dr Sedan Pick-up";
						break;
					default:
						bodyStyle = "N/A";
				}
				switch (vin.charAt(4)) {
					case "D":
						engine = "L-6 250 ci";
						break;
					case "F":
						engine = "V-8, 307cid";
						break;
					case "H":
						engine = "V-8, 350cid, 2-bbl";
						break;
					case "J":
						engine = "V-8, 350cid, 4-bbl";
						break;
					case "K":
						engine = "V-8, 350cid, 4-bbl";
						break;
					case "L":
						engine = "V-8, 350cid, 4-bbl";
						break;
					case "Q":
						engine = "V-8, 305cid";
						break;
					case "R":
						engine = "V-8, 400cid, 2-bbl";
						break;
					case "U":
						engine = "V-8, 402cid";		// might mean V-8, 305cid for 1977... to be verified
						break;
					case "V":
						engine = "V-8, 350cid, 2-bbl";
						break;
					case "W":
						engine = "V-8, 454cid";
						break;
					case "Y":
						engine = "V-8, 454cid";
						break;
					default:
						engine = "N/A";
						break;
				}
				modelYear = "197" + vin.charAt(5);
				switch (vin.charAt(6)) {
					case "B":
						assemblyPlant = "Baltimore, MD";
						break;
					case "D":
						assemblyPlant = "Doraville, GA";
						break;
					case "K":
						assemblyPlant = "Kansas City/ Leeds, MO";
						break;
					case "L":
						assemblyPlant = "Los Angeles/Van Nuys, CA";
						break;
					case "R":
						assemblyPlant = "Arlington, TX";
						break;
					case "Z":
						assemblyPlant = "Fremont, CA";
						break;
					case "1":
						assemblyPlant = "Oshawa, Canada";
						break;
					default:
						assemblyPlant = "N/A";
				}
				productionNumber = vin.substr(7,(vin.length-1));
				
				modelDetails = modelDetails + "Manufacturer: " + manufacturer + "<br />";
				modelDetails = modelDetails + "Model Series: " + modelSeries + "<br />";
				modelDetails = modelDetails + "Body Style: " + bodyStyle + "<br />";
				modelDetails = modelDetails + "Engine: " + engine + "<br />";
				modelDetails = modelDetails + "Model Year: " + modelYear + "<br />";
				modelDetails = modelDetails + "Assembly Plant Code: " + assemblyPlant + "<br />";
				modelDetails = modelDetails + "Sequential Production Number: " + productionNumber;
			}
			else {	//années 78-80
				switch (vin.charAt(0)) {
					case "1":
						manufacturer = "Chevrolet";
						break;
					case "5":
						manufacturer = "GMC";
						break
					default:
						manufacturer = "N/A";
				}
				switch (vin.charAt(1)) {
					case "W":
						modelSeries = "El Camino";
						break;
					default:
						modelSeries = "N/A";
				}
				switch (vin.substr(2,2)) {
					case "80":
						bodyStyle = "2dr Sedan Pick-up";
						break;
					default:
						bodyStyle = "N/A";
				}
				switch (vin.charAt(4)) {
					case "A":
						engine = "V-6, 231cid";
						break;
					case "H":
						engine = "V-8, 305cid";
						break;
					case "J":
						engine = "V-8, 267cid";
						break;
					case "K":
						engine = "V-6, 229cid";
						break;
					case "L":
						engine = "V-8, 350cid";
						break;
					case "M":
						engine = "V-6, 200cid";
						break;
					case "U":
						engine = "V-8, 305cid";
						break;
					default:
						engine = "N/A";
				}
				if (vin.charAt(5) == "A") {
					modelYear = 1980;
				}
				else {
					modelYear = parseInt("197" + vin.charAt(5));
				}
				switch (vin.charAt(6)) {
					case "B":
						assemblyPlant = "Baltimore, MD";
						break;
					case "D":
						assemblyPlant = "Doraville, GA";
						break;
					case "K":
						assemblyPlant = "Leeds, MO";
						break;
					case "R":
						assemblyPlant = "Arlington, TX";
						break;
					case "Z":
						assemblyPlant = "Fremont, CA";
						break;
					case "1":
						assemblyPlant = "Oshawa, Canada";
						break;
					default:
						assemblyPlant = "N/A";
				}
				productionNumber = vin.substr(7,(vin.length-1));
				
				modelDetails = modelDetails + "Manufacturer: " + manufacturer + "<br />";
				modelDetails = modelDetails + "Model Series: " + modelSeries + "<br />";
				modelDetails = modelDetails + "Body Style: " + bodyStyle + "<br />";
				modelDetails = modelDetails + "Engine: " + engine + "<br />";
				modelDetails = modelDetails + "Model Year: " + modelYear + "<br />";
				modelDetails = modelDetails + "Assembly Plant Code: " + assemblyPlant + "<br />";
				modelDetails = modelDetails + "Sequential Production Number: " + productionNumber;
			}
			break;
			
		case 17:
			yearRange = "1981-1987";
			switch (vin.charAt(0)) {
				case "1":
					country = "U.S.A";
					break;
				case "2":
					country = "Canada";
					break;
				case "3":
					country = "Mexico";
					break;
				default:
					country = "N/A";
			}
			switch (vin.charAt(1)) {
				case "G":
					manufacturer = "General Motors";
					break;
				default:
					manufacturer = "N/A";
			}
			switch (vin.charAt(2)) {
				case "C":
					make = "Chevrolet Truck";
					break;
				case "T":
					make = "GMC Truck";
					break;
				default:
					make = "N/A";
			}
			switch (vin.charAt(3)) {
				case "C":
					brakeSystem = "Hydraulic brake system - GVW 4001-5000";
					break;
				default:
					brakeSystem = "N/A";
			}
			switch (vin.charAt(4)) {
				case "W":
					modelSeries = "El Camino/Caballero";
					break;
				default:
					modelSeries = "N/A";
			}
			switch (vin.substr(5,2)) {
				case "80":
					bodyStyle = "2dr Sedan Pick-up";
					break;
				default:
					bodyStyle = "N/A";
			}
			switch (vin.charAt(7)) {
				case "A":
					engine = "V-6, 231cid";
					break;
				case "H":
					engine = "V-8, 305cid";
					break;
				case "J":
					engine = "V-8, 267cid";
					break;
				case "K":
					engine = "V-6, 229cid";
					break;
				case "N":
					engine = "V-8, 350cid diesel";
					break;
				case "Z":
					engine = "V-6, 262cid";
					break;
				case "9":
					engine = "V-6, 229cid";
					break;
				default:
					engine = "N/A";
			}
			switch (vin.charAt(8)) {	// check to check see http://elcaminocentral.com/showthread.php?t=27738&garpg=28#content_start
				case "X":
					checkDigit = "Check Digit (coming soon)";
					break;
				default:
					checkDigit = "Check Digit (coming soon)";
			}
			switch (vin.charAt(9)) {
				case "B":
					modelYear = 1981;
					break;
				case "C":
					modelYear = 1982;
					break;
				case "D":
					modelYear = 1983;
					break;
				case "E":
					modelYear = 1984;
					break;
				case "F":
					modelYear = 1985;
					break;
				case "G":
					modelYear = 1986;
					break;
				case "H":
					modelYear = 1987;
					break;
				case "I":
					modelYear = 1988;
					break;
				default:
					modelYear = "N/A";
			}
			switch (vin.charAt(10)) {
				case "B":
					assemblyPlant = "Baltimore, MD";
					break;
				case "D":
					assemblyPlant = "Doraville, GA";
					break;
				case "K":
					assemblyPlant = "Leeds, MO";
					break;
				case "R":
					assemblyPlant = "Arlington, TX";
					break;
				case "S":
					assemblyPlant = "Ramos Arizpe, Mexico";
					break;
				case "Z":
					assemblyPlant = "Fremont, CA";
					break;
				case "1":
					assemblyPlant = "Oshawa, Canada";
					break;
				default:
					assemblyPlant = "N/A";
			}
			productionNumber = vin.substr(11,(vin.length-1));
			
			modelDetails = modelDetails + "Country of Origin: " + country + "<br />";
			modelDetails = modelDetails + "Manufacturer: " + manufacturer + "<br />";
			modelDetails = modelDetails + "Make: " + make + "<br />";
			modelDetails = modelDetails + "GVWR Brake System: " + brakeSystem + "<br />";
			modelDetails = modelDetails + "Model Series: " + modelSeries + "<br />";
			modelDetails = modelDetails + "Body Style: " + bodyStyle + "<br />";
			modelDetails = modelDetails + "Engine: " + engine + "<br />";
			modelDetails = modelDetails + "Model Year: " + modelYear + "<br />";
			modelDetails = modelDetails + "Assembly Plant Code: " + assemblyPlant + "<br />";
			modelDetails = modelDetails + "Sequential Production Number: " + productionNumber;
			break;
			
			
		default:
			yearRange = "N/A";
	}
	
	if (modelYear <= 1960) {
		generation = 1;
	}
	else if (modelYear >= 1964 && modelYear <= 1967) {
		generation = 2;
	}
	else if (modelYear >= 1968 && modelYear <= 1972) {
		generation = 3;
	}
	else if (modelYear >= 1973 && modelYear <= 1977) {
		generation = 4;
	}
	else if (modelYear >= 1978 && modelYear <= 1988) {
		generation = 5;
	}
	else {
		generation: "N/A";
	}
	
	separator = "<br />...............<br /><br />";
	
	details = separator + "VIN Number: " + vin + separator;
	details = details + "Digits: " + charCount + separator;
	details = details + "Generation: " + generation + "<br />";
	details = details + modelDetails + separator;
	
	window.document.getElementById("detailBox").innerHTML = details;
}
