var RETAIL = "R";
var SERVICE = "S";
var MOBIL1LUBEEXPRESS = "X";
var YES = "Yes";
var NO = "No";
var BLANK = "";

var subcategoryItt = 3;



var promos = new Array("How About a Second Date?");

var motorOilTypes = new Array(
	new Array("Mobil 1 Extended Performance 5W-20", "text16", "user18", true),
	new Array("Mobil 1 Extended Performance 5W-30", "text17", "user19", true),
	new Array("Mobil 1 Extended Performance 5W-30 Jugs", "text56", "user58", true),
	new Array("Mobil 1 Extended Performance 10W-30", "text18", "user20", true),
	new Array("Mobil 1 Extended Performance 10W-30 Jugs", "text60", "user62", true),
	new Array("Mobil 1 0W-20 Advanced Fuel Economy", "text20", "user22", true),
	new Array("Mobil 1 0W-20 Advanced Fuel Economy Jugs", "text49", "user51", true),
	new Array("Mobil 1 0W-30 Advanced Fuel Economy", "text21", "user23", true),
	new Array("Mobil 1 0W-30 Advanced Fuel Economy Jugs", "text50", "user52", true),
	new Array("Mobil 1 0W-40", "text22", "user24", true),
	new Array("Mobil 1 5W-20", "text23", "user25", true),
	new Array("Mobil 1 5W-20 Jugs", "text62", "user64", true),
	new Array("Mobil 1 5W-30", "text24", "user26", true),
	new Array("Mobil 1 5W-30 Jugs", "text78", "user79", true),
	new Array("Mobil 1 10W-30", "text25", "user27", true),
	new Array("Mobil 1 10W-30 Jugs", "text79", "user81", true),
	new Array("Mobil 1 15W-50", "text26", "user28", true),
	new Array("Mobil 1 ESP Formula 5W-30", "text42", "user44", true),
	new Array("Mobil 1 ESP Formula M 5W-40", "text43", "user45", true),
	new Array("Mobil 1 High Mileage 5W-30", "text45", "user47", true),
	new Array("Mobil 1 High Mileage 5W-30 Jugs", "text80", "user82", true),
	new Array("Mobil 1 High Mileage 10W-30", "text27", "user29", true),
	new Array("Mobil 1 High Mileage 10W-30 Jugs", "text81", "user83", true),
	new Array("Mobil 1 High Mileage 10W-40", "text28", "user30", true),
	new Array("Mobil 1 High Mileage 10W-40 Jugs", "text82", "user84", true),
	new Array("Mobil 1 Truck and SUV 5W-30", "text29", "user31", true),
	new Array("Mobil 1 Turbo Diesel Truck 5W-40", "text30", "user32", true),
	new Array("Mobil 1 Turbo Diesel Truck 5W-40 Jugs", "text83", "user85", true),
	new Array("Mobil Super 5W-20", "text31", "user33", true),
	new Array("Mobil Super 5W-20 Jugs", "text84", "user86", true),
	new Array("Mobil Super 5W-30", "text32", "user34", true),
	new Array("Mobil Super 5W-30 Jugs", "text85", "user87", true),
	new Array("Mobil Super 10W-30", "text33", "user35", true),
	new Array("Mobil Super 10W-30 Jugs", "text86", "user88", true),
	new Array("Mobil Super 10W-40", "text34", "user36", true),
	new Array("Mobil Super High Mileage 5W-20", "text35", "user37", true),
	new Array("Mobil Super High Mileage 5W-30", "text36", "user38", true),
	new Array("Mobil Super High Mileage 5W-30 Jugs", "text87", "user89", true),
	new Array("Mobil Super High Mileage 10W-30", "text37", "user39", true),
	new Array("Mobil Super High Mileage 10W-30", "text88", "user90", true),
	new Array("Mobil Super High Mileage 10W-40", "text38", "user40", true),
	new Array("Mobil Super High Mileage 10W-40 Jugs", "text89", "user91", true),
	new Array("Mobil Super Synthetic 0W-20", "text39", "user41", true),
	new Array("Mobil Super Synthetic 5W-20", "text40", "user42", true),
	new Array("Mobil Super Synthetic 5W-20 Jugs", "text90", "user92", true),
	new Array("Mobil Super Synthetic 5W-30", "text19", "user21", true),
	new Array("Mobil Super Synthetic 5W-30 Jugs", "text91", "user93", true),
	new Array("Mobil Super Synthetic 10W-30", "text48", "user50", true),
	new Array("Mobil Super Synthetic 10W-30 Jugs", "text92", "user94", true),
	new Array("Mobil Delvac 1 ESP 5W-40", "text44", "user46", true),
	new Array("Mobil Delvac 1300 Super 15W-40", "text41", "user43", true),
	new Array("Mobil Delvac 1300 Super 15W-40 Drums", "text93", "user95", true)		
);

var motorcycleTypes = new Array(
	new Array("Mobil 1 Racing 4T 10W-40", "text46", "user48", true),
	new Array("Mobil 1 V-Twin 20W-50", "text47", "user49", true)
);

var atfTypes = new Array(
	new Array("Mobil 1 Synthetic ATF", "text51", "user53", true),
	new Array("Mobil ATF D/M", "text52", "user54", true),
	new Array("Mobil Multi-Vehicle ATF", "text53", "user55", true),
	new Array("Mobil ATF 3309", "text54", "user56", true),
	new Array("Mobil Type F ATF", "text55", "user57", true)
);

var gearLubeTypes = new Array(
	new Array("Mobil 1 Synthetic Gear Lube LS 75W-140", "text57", "user59", true),
	new Array("Mobil 1 Synthetic Gear Lube LS 75W-90", "text58", "user60", true),
	new Array("Mobilube HD Plus 80W-90", "text59", "user61", true)
);

var greaseTypes = new Array(
	new Array("Mobil 1 Synthetic Grease", "text61", "user63", true)
);

var filterTypes = new Array(
	new Array("Mobil 1 Extended Performance Oil Filter M1-101", "text67", "user69", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-102", "text68", "user70", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-103", "text72", "user74", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-104", "text70", "user72", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-107", "text74", "user76", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-110", "text71", "user73", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-113", "text77", "user79", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-201", "text69", "user71", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-204", "text66", "user68", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-206", "text65", "user67", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-209", "text75", "user77", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-210", "text76", "user78", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-301", "text64", "user66", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-302", "text73", "user75", true),
	new Array("Mobil 1 Extended Performance Oil Filter M1-601", "text63", "user65", true)
);


//Don't edit, this controls the table build.

function clearAllTypes(frmid){
	for(var i=16; i <= 100; i++){
		document.getElementById("text" + i + frmid).value = BLANK;
	}
}

function clearSubCategoryTypes(types, selectid, trid, frmid){
	var sel = document.getElementById(selectid);
	if(sel){
		var option, type, hdn;
		for(var i=sel.options.length-1; i >= 0; i--){
			option = sel.options[i];
			for(var j=0; j<types.length; j++){
				type = types[j];
				if(option.value == type[1]){
					sel.remove(i);
					hdn = document.getElementById(type[1] + frmid);
					hdn.value = "";
					
					break;
				}
			}
		}
		if(sel.options.length == 0){
			document.getElementById(trid).style.display="none";
		}
	}
	
}

function clearSubCategory(selectid, trid, frmid){
	var sel = document.getElementById(selectid);
	if(sel){
		for(var i=sel.options.length-1; i >= 0; i--){
			option = sel.options[i];
			hdn = document.getElementById(option.value + frmid);
			hdn.value = BLANK;
			sel.remove(i)
		}
		
		document.getElementById(trid).style.display="none";
		
		clearProductCategories(frmid);
	}
}

function appendSubCategories(types, selectid, trid, frmid){
	var sel = document.getElementById(selectid);
	if(sel){
		var option, type;
		for(var i=0; i < types.length; i++){
			type = types[i];
			if(type[3]){
				option = document.createElement("option");
				option.value = type[1];
				option.text = type[0];
				if(document.getElementById(option.value + frmid).value == YES){
					option.selected = true;
				}
				try{
					sel.add(option,null); // standards compliant
				}
				catch(ex){
					sel.add(option); // IE only
				}
			}
		}
		if(sel.options.length > 0){
			document.getElementById(trid).style.display="";		
		}
	}
	
}

function typeCheckboxClick(cb, selectid, trid){
	var frmid = "Frm1";
	if(cb.id.indexOf("Frm2") >= 0){
		frmid = "Frm2"
	}
	var id = cb.id;
	var hdn = document.getElementById(id.replace("cb", "hdn"));
	if(showSubCategories(frmid)){
		var types = new Array();
		switch(id){
			case "cbText4Frm2":
			case "cbText4Frm1":
				types = motorOilTypes;
				break;
				
			case "cbText5Frm1":
			case "cbText5Frm2":
				types = filterTypes;
				break;
	
			case "cbText6Frm1":
			case "cbText6Frm2":
				types = motorcycleTypes;
				break;
		
			case "cbText7Frm1":
			case "cbText7Frm2":
				types = gearLubeTypes;
				break;
	
			case "cbText8Frm1":
			case "cbText8Frm2":
				types = greaseTypes;
				break;
	
			case "cbText9Frm1":
			case "cbText9Frm2":
				types = atfTypes;
				break;
		}
		
		
		if(cb.checked){
			appendSubCategories(types, selectid, trid, frmid);
			hdn.value = cb.value;
		}
		else {
			clearSubCategoryTypes(types, selectid, trid, frmid);
			hdn.value = "";
		}
		
		clearProductCategories(frmid);
	}
	else {
		if(cb.checked){
			hdn.value = cb.value;
		}
		else {
			hdn.value = "";
		}
		
		clearProductCategories(frmid);
	
	}
}

function showSubCategories(frmid){
	var retail = document.getElementById("hdnRetail" + frmid).value;
	if(retail != ""){
		return true;
	}
	
	return false;
}

function onLocationTypeChange(frmid){
	var retail = document.getElementById("hdnRetail" + frmid).value;
	if(retail != ""){
		typeCheckboxClick(document.getElementById("cbText4" + frmid), "selSubCat" + frmid, "trSubCat" + frmid);
		typeCheckboxClick(document.getElementById("cbText5" + frmid), "selSubCat" + frmid, "trSubCat" + frmid);
		typeCheckboxClick(document.getElementById("cbText6" + frmid), "selSubCat" + frmid, "trSubCat" + frmid);
		typeCheckboxClick(document.getElementById("cbText7" + frmid), "selSubCat" + frmid, "trSubCat" + frmid);
		typeCheckboxClick(document.getElementById("cbText8" + frmid), "selSubCat" + frmid, "trSubCat" + frmid);
		typeCheckboxClick(document.getElementById("cbText9" + frmid), "selSubCat" + frmid, "trSubCat" + frmid);
	}
	else {
		clearSubCategory("selSubCat" + frmid, "trSubCat" + frmid, frmid);
	}
}

function clearProductCategories(frmid){
	var doClear = false; 
	var input;
	for(var i=16; i <= 100; i++){
		input = document.getElementById("text" + i + frmid);
		if(input.value == YES){
			doClear = true;
			break;
		}
	}
	
	
	
	if(doClear){
		for(var i = 4; i <= 9; i++){
			document.getElementById("hdnText" + i + frmid).value = BLANK;
		}
	}
	else {
		for(var i = 4; i <= 9; i++){
			if(document.getElementById("cbText" + i + frmid).checked)
				document.getElementById("hdnText" + i + frmid).value = YES;
		}	
	}
}

function onSelectChange(sel){
	var frmid = "Frm1";
	if(sel.id.indexOf("Frm2") >= 0 ){
		frmid = "Frm2";
	}
	if(sel){
		var hdn;
		for(var i=0; i < sel.options.length; i++){
			option = sel.options[i];
			if(option.value != ""){
				hdn = document.getElementById(option.value + frmid);
				if(option.selected){
					hdn.value = YES;
				}
				else {
					hdn.value = BLANK;			
				}
			}
			
		}
	}
	clearProductCategories(frmid);
}


function preLoadFormData(frmid){
	if(!av)
		return;
	if(!av.parameters)
		return
		
	var selStore = document.getElementById("selStore" + frmid);
	if(av.parameters.text1 != ""){
		document.getElementById("hdnRetail" + frmid).value = av.parameters.text1;
		selStore.selectedIndex = 1;
	}
	if(av.parameters.text2 != ""){
		document.getElementById("hdnService" + frmid).value = av.parameters.text2;
		selStore.selectedIndex = 3;
	}
	if(av.parameters.text3 != ""){
		document.getElementById("hdnMobil1LubeExpress" + frmid).value = av.parameters.text3;
		selStore.selectedIndex = 2;
	}
	if(av.parameters.text10 != ""){
		document.getElementById("hdnPromo1" + frmid).value = av.parameters.text10;
		selStore.selectedIndex = 4;
	}
	if(av.parameters.text12 != ""){
		document.getElementById("hdnPromo2" + frmid).value = av.parameters.text12;
		selStore.selectedIndex = 5;
	}
	if(av.parameters.text14 != ""){
		document.getElementById("hdnPromo3" + frmid).value = av.parameters.text14;
		selStore.selectedIndex = 6;
	}
	
	for(var i=15; i <= 100; i++){
		document.getElementById('text' + i + frmid).value = eval("av.parameters.text" + i );
	}

	if(av.parameters.address){
		document.getElementById("txtAddress" + frmid).value = av.parameters.address;
	}
	if(av.parameters.postalCode){
		document.getElementById("txtPostalCode" + frmid).value = av.parameters.postalCode;
	}
	if(av.parameters.city){
		document.getElementById("txtCity" + frmid).value = av.parameters.city;
	}
	if(av.parameters.stateProvince){
		var selState = document.getElementById("selStateProvince" + frmid);
		for(var i=0; i < selState.options.length; i++){
			if(selState.options[i].value == av.parameters.stateProvince){
				selState.options[i].selected = true;
				break;
			}
		}
	}
	
	document.getElementById("hdnText4" + frmid).value = av.parameters.text4;
	if(av.parameters.text4 == YES){
		document.getElementById("cbText4" + frmid).checked = true;
	}
	else {
		document.getElementById("cbText4" + frmid).checked = false;
		for(var i=0; i < motorOilTypes.length; i++){
			if(eval("av.parameters." + motorOilTypes[i][1]) == YES){
				document.getElementById("cbText4" + frmid).checked = true;
				break;
			}
		}
	}

	document.getElementById("hdnText5" + frmid).value = av.parameters.text5;
	if(av.parameters.text5 == YES){
		document.getElementById("cbText5" + frmid).checked = true;
	}
	else {
		document.getElementById("cbText5" + frmid).checked = false;
		for(var i=0; i < filterTypes.length; i++){
			if(eval("av.parameters." + filterTypes[i][1]) == YES){
				document.getElementById("cbText5" + frmid).checked = true;
				break;
			}
		}
	}	

	document.getElementById("hdnText6" + frmid).value = av.parameters.text6;
	if(av.parameters.text6 == YES){
		document.getElementById("cbText6" + frmid).checked = true;
	}
	else {
		document.getElementById("cbText6" + frmid).checked = false;
		for(var i=0; i < motorcycleTypes.length; i++){
			if(eval("av.parameters." + motorcycleTypes[i][1]) == YES){
				document.getElementById("cbText6" + frmid).checked = true;
				break;
			}
		}
	}	

	document.getElementById("hdnText7" + frmid).value = av.parameters.text7;
	if(av.parameters.text7 == YES){
		document.getElementById("cbText7" + frmid).checked = true;
	}
	else {
		document.getElementById("cbText7" + frmid).checked = false;
		for(var i=0; i < gearLubeTypes.length; i++){
			if(eval("av.parameters." + gearLubeTypes[i][1]) == YES){
				document.getElementById("cbText7" + frmid).checked = true;
				break;
			}
		}
	}	

	document.getElementById("hdnText8" + frmid).value = av.parameters.text8;
	if(av.parameters.text8 == YES){
		document.getElementById("cbText8" + frmid).checked = true;
	}
	else {
		document.getElementById("cbText8" + frmid).checked = false;
		for(var i=0; i < greaseTypes.length; i++){
			if(eval("av.parameters." + greaseTypes[i][1]) == YES){
				document.getElementById("cbText8" + frmid).checked = true;
				break;
			}
		}
	}	

	document.getElementById("hdnText9" + frmid).value = av.parameters.text9;
	if(av.parameters.text9 == YES){
		document.getElementById("cbText9" + frmid).checked = true;
	}
	else {
		document.getElementById("cbText9" + frmid).checked = false;
		for(var i=0; i < atfTypes.length; i++){
			if(eval("av.parameters." + atfTypes[i][1]) == YES){
				document.getElementById("cbText9" + frmid).checked = true;
				break;
			}
		}
	}	

	var selRadius = document.getElementById("selRadius" + frmid);
	for(var i=0; i < selRadius.options.length; i++){
		if(selRadius.options[i].value == av.parameters.radius){
			selRadius.options[i].selected = true;
		}
	}
	
	onLocationTypeChange(frmid);

}

