function doLoad()
{
	// Reset the form
	document.form.reset() ;
	// Clear certain fields
	// clearForm() ;
	// Get the country list
	getCountries() ;
	return true ;
}

function clearForm()
{
	// Reset devices
	resetGPS() ;
	// Disable the radio buttons for device 1
	var radioObj = document.getElementsByName('Device1') ;
	var radioLength = radioObj.length ;
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].disabled = true ;
	}
	// Reset fields & labels
	document.getElementById('tr_states').style.display = 'none' ;
	document.getElementById('tr_provinces').style.display = '' ;
	document.getElementById('regRegion').value = '' ;
	document.getElementById('AddDeviceButton').className = 'btndisabled';
	document.getElementById('AddDeviceButton').disabled = true;
	return true ;
}

function getCountries()
{
	// Call the Ajax service that maps the country to the region
	var lang = document.getElementById('lang').value ;
	var countryid = document.getElementById('countryid').value ;
	var url = '/webapps/GetDataServlet' ;
	var defaultid = 0;
	parms = "format=json&action=getcountries&lang=" + lang ;
	new Ajax.Request(url, {
		asynchronous: false,
		contentType: "text/xml",
		encoding: "UTF-8",
		method: "get",
		parameters: parms,
		onSuccess: function(transport) {
			var itemElements = eval("("+transport.responseText+")") ;
			if ( itemElements.items.length <= 0 ) {   // No countries!! Houston we have a problem!
				document.getElementById('system_error').style.display = '' ;
			}
			else {
				var x = 0 ;
				for (x=0; x < itemElements.items.length; x++) {
					var obj = itemElements.items[x] ;
					if(obj.code==countryid){
						document.getElementById("country").options[x+1] = new Option(decoder(obj.name),obj.code,true);
						defaultid = x+1;
				        }else{
				        	document.getElementById("country").options[x+1] = new Option(decoder(obj.name),obj.code);
				        }
				}
			}
		},
		onFailure: function() {
			document.getElementById('system_error').style.display = '' ;
		},
		on400: function() {
			document.getElementById('system_error').style.display = '' ;
		},
		on403: function() {
			document.getElementById('system_error').style.display = '' ;
		},
		on404: function() {
			document.getElementById('system_error').style.display = '' ;
		},
		on500: function() {
			document.getElementById('system_error').style.display = '' ;
		},
		on503: function() {
			document.getElementById('system_error').style.display = '' ;
		}
	}) ;
	
	if(!(document.getElementById('countryid').value == ''))
	{
		document.getElementById("country").options[defaultid].selected = defaultid;
		onChangeCountry();
	}

}

function onChangeCountry()
{
	var divIV = 'Div_InVehicle_' ;
	var divAM = 'Div_AfterMarket_' ;
	var divPN = 'Div_Portable_'  ;
	var divMP = 'Div_Mobile_' ;
	var divO  = 'Div_Other_' ;

	var selectedCountry = document.getElementById('country').options[document.getElementById('country').selectedIndex].value ;
	var region = document.getElementById('regRegion').value ;

	if ( selectedCountry == 'ZZ' ) {
		resetGPS() ;
		document.getElementById('regRegion').value = 'EMEA' ;
		// Disable all radio buttons for device 1 except other
		var radioObj = document.getElementsByName('Device1') ;
		var radioLength = radioObj.length ;
		for(var i = 0; i < radioLength; i++) {
			radioObj[i].disabled = true ;
		}
		document.getElementById('Other_1').disabled = false ;
		// The address fields should look like non-NA
		document.getElementById('tr_address2').style.display = '' ;
		document.getElementById('tr_address3').style.display = '' ;
		document.getElementById('tr_states').style.display = 'none' ;
		document.getElementById('tr_provinces').style.display = '' ;
	}
	else {
		// Enable all radio buttons for device 1
		var radioObj = document.getElementsByName('Device1') ;
		var radioLength = radioObj.length ;
		for(var i = 0; i < radioLength; i++) {
			radioObj[i].disabled = false ;
		}

		// Call the Ajax service that maps the country to the region
		var url = '/webapps/GetDataServlet' ;
		var parms = "format=delim&action=getregion&country=" + selectedCountry ;
		new Ajax.Request(url, {
			asynchronous: false,
			method: "get",
			parameters: parms,
			onSuccess: function(request) {
				var response = request.responseText ;

				// If the regions are different then clear the gps drop-downs & radio buttons
				if ( region != response ) {
					resetGPS() ;
					// Set the current region
					document.getElementById('regRegion').value = response ;
				}

				// Display certain fields
				if ( response != "AMER" ) {
					document.getElementById('tr_address2').style.display = '' ;
					document.getElementById('tr_address3').style.display = '' ;
					document.getElementById('tr_states').style.display = 'none' ;
					document.getElementById('tr_provinces').style.display = '' ;
				}
				else {
					document.getElementById('tr_address2').style.display = 'none' ;
					document.getElementById('tr_address3').style.display = 'none' ;
					document.getElementById('tr_states').style.display = '' ;
					document.getElementById('tr_provinces').style.display = 'none' ;
				}
			},
			onFailure: function() {
				document.getElementById('system_error').style.display = '' ;
			},
			on400: function() {
				document.getElementById('system_error').style.display = '' ;
			},
			on403: function() {
				document.getElementById('system_error').style.display = '' ;
			},
			on404: function() {
				document.getElementById('system_error').style.display = '' ;
			},
			on500: function() {
				document.getElementById('system_error').style.display = '' ;
			},
			on503: function() {
				document.getElementById('system_error').style.display = '' ;
			}
		}) ;

		// Call the Ajax service that gets the states/provinces for a country
		parms = "format=json&action=getstates&country=" + selectedCountry ;
		new Ajax.Request(url, {
			asynchronous: false,
			contentType: "text/xml",
			encoding: "UTF-8",
			method: "get",
			parameters: parms,
			onSuccess: function(transport) {
				var itemElements = eval("("+transport.responseText+")") ;

				if ( itemElements.items.length <= 0 ) {   // Outside North America
					document.getElementById("Div_State_DD").style.display = 'none' ;
					document.getElementById("Div_State_IP").style.display = 'block' ;
				}
				else {
					// Clear the current list of states
					document.getElementById("statedd").options.length = 0 ;
					document.getElementById("statedd").options[0] = new Option("","") ;

					//for (var x=0; x < itemElements.length; x++)
					//{
					//	var code = itemElements[x].childNodes[0].nodeValue ;
					//	document.getElementById("statedd").options[x] = new Option(code,code);
					//}
					for (var x=0; x < itemElements.items.length; x++)
					{
						var obj = itemElements.items[x] ;
						document.getElementById("statedd").options[x+1] = new Option(obj.item,obj.item);
					}
					document.getElementById("Div_State_IP").style.display = 'none' ;
					document.getElementById("Div_State_DD").style.display = 'block' ;
				}
			},
			onFailure: function() {
				document.getElementById('system_error').style.display = '' ;
			},
			on400: function() {
				document.getElementById('system_error').style.display = '' ;
			},
			on403: function() {
				document.getElementById('system_error').style.display = '' ;
			},
			on404: function() {
				document.getElementById('system_error').style.display = '' ;
			},
			on500: function() {
				document.getElementById('system_error').style.display = '' ;
			},
			on503: function() {
				document.getElementById('system_error').style.display = '' ;
			}
		}) ;
	}
	// Enable the add button
	document.getElementById('AddDeviceButton').className = 'btn';
	document.getElementById('AddDeviceButton').disabled = false ;
}

function resetGPS()
{
	// Reset the number of devices
	document.getElementById('NbrDevices').value = 1 ;
	document.getElementById('Div_add_btn_msg').style.display = 'none';

	var nbrDev = 1 ;
	var y = 1 ;
	while( y <= 3 )
	{
		// Uncheck all of the devices radio buttons
		var devId = 'Device' + y ;
		var radioObj = document.getElementsByName(devId) ;
		var radioLength = radioObj.length ;
		for(var i = 0; i < radioLength; i++) {
			radioObj[i].checked = false;
		}

		// Clear all drop downs and hide
	    document.getElementById('Div_InVehicle_' + y).style.display = 'none' ;
		document.getElementById('Div_InVehicle_' + y).innerHTML = '';
	    document.getElementById('Div_AfterMarket_' + y).style.display = 'none' ;
		document.getElementById('Div_AfterMarket_' + y).innerHTML = '';
	    document.getElementById('Div_Portable_' + y).style.display = 'none' ;
		document.getElementById('Div_Portable_' + y).innerHTML = '';
	    document.getElementById('Div_Mobile_' + y).style.display = 'none' ;
		document.getElementById('Div_Mobile_' + y).innerHTML = '';
	    document.getElementById('Div_Other_' + y).style.display = 'none'  ;
		document.getElementById('Div_Other_' + y).innerHTML = '';

		// Hide devices 2 & 3
		if( y > 1 ) {
			var divId = 'Div_Device_' + y ;
			document.getElementById(divId).style.display = 'none' ;
		}
		y++ ;
	}
}

function onClickRadio(obj,deviceNbr)
{
	var clickedId = 'Div_' + obj.id ;

	var divIV = 'Div_InVehicle_' + deviceNbr ;
	var divAM = 'Div_AfterMarket_' + deviceNbr ;
	var divPN = 'Div_Portable_' + deviceNbr ;
	var divMP = 'Div_Mobile_' + deviceNbr ;
	var divO  = 'Div_Other_' + deviceNbr ;

	var region = document.getElementById('regRegion').value ;

	// Hide & clear the drop downs
    document.getElementById(divIV).style.display = 'none' ;
	document.getElementById(divIV).innerHTML = '';
    document.getElementById(divAM).style.display = 'none' ;
	document.getElementById(divAM).innerHTML = '';
    document.getElementById(divPN).style.display = 'none' ;
	document.getElementById(divPN).innerHTML = '';
    document.getElementById(divMP).style.display = 'none' ;
	document.getElementById(divMP).innerHTML = '';
    document.getElementById(divO).style.display = 'none'  ;
	document.getElementById(divO).innerHTML = '';

	// Create the new drop-downs & redisplay for the clicked radio button
	document.getElementById(clickedId).innerHTML = createSelection(obj.value,deviceNbr);

	// Populate the manufacturer drop down, except if the radio button is Other
	if ( obj.value != 'Other' ) {
		var parms = 'format=xml&action=getnavsys&region=' + region + '&devicetype=' + obj.value ;
		var populateId = 'Manuf_' + deviceNbr ;
		gpsAjaxCall(populateId,parms,false);
	}

	// Display the drop-downs
    document.getElementById(clickedId).style.display = 'block' ;
}

function createSelection(deviceType, id)
{
	var jsManf = document.getElementById('js_manf').value ;
	var jsModel = document.getElementById('js_model').value ;
	var jsYear = document.getElementById('js_year').value ;
	var jsSystem = document.getElementById('js_system').value ;
	var jsCarrier = document.getElementById('js_carrier').value ;

	var str = "<STRONG>*</STRONG> <SELECT class='bodytext' name='Manuf_" +id+ "' id='Manuf_" +id+ "' onChange='onChangeManufSelect(this," +id+ ");'><OPTION value=''>" +jsManf+ "</OPTION></SELECT>" ;
	if ( deviceType == 'InVehicle' ) {
		str = str + "<BR><STRONG>*</STRONG> <SELECT class='bodytext' name='Model_" +id+ "'  id='Model_" +id+ "' disabled onChange='onChangeModelSelect(this," +id+ ");'><OPTION value=''>" +jsModel+ "</OPTION></SELECT>";
		str = str + "<BR><STRONG>*</STRONG> <SELECT class='bodytext' name='Year_" +id+ "' id='Year_" +id+ "' disabled onChange='onChangeYearSelect(this," +id+ ");'><OPTION value=''>" +jsYear+ "</OPTION></SELECT>";
		str = str + "<BR><STRONG>*</STRONG> <SELECT class='bodytext' name='System_" +id+ "' id='System_" +id+ "' disabled><OPTION value=''>" +jsSystem+ "</OPTION></SELECT>";
	}
	else if ( deviceType == 'Mobile' ) {
		str = str + "<BR><STRONG>*</STRONG> <SELECT class='bodytext' name='Model_" +id+ "'  id='Model_" +id+ "' disabled onChange='onChangeModelSelect(this," +id+ ");'><OPTION value=''>" +jsModel+ "</OPTION></SELECT>";
		str = str + "<BR><STRONG>*</STRONG> <SELECT class='bodytext' name='Carrier_" +id+ "' id='Carrier_" +id+ "' disabled><OPTION value=''>" +jsCarrier+ "</OPTION></SELECT>";
	}
	else if ( deviceType == 'Other' ) {
		str = "<STRONG>*</STRONG> <INPUT type='text' class='bodytext' value='' name='Other_Input_" +id+ "' id='Other_Input_" +id+ "'>" ;
	}
	else {
		str = str + "<BR><STRONG>*</STRONG> <SELECT class='bodytext' name='Model_" +id+ "'  id='Model_" +id+ "' disabled><OPTION value=''>" +jsModel+ "</OPTION></SELECT>";
	}

	return str ;
}

function onChangeManufSelect(obj, deviceNbr)
{
	var addOther = true ;
	var id = '' ;
	var manufId = obj.id ;
	var index = document.getElementById(manufId).selectedIndex ;
	var selectedItem = document.getElementById(manufId).options[document.getElementById(manufId).selectedIndex].value ;

	var region = document.getElementById('regRegion').value ;

	// Clear other drop-downs
	id = 'Model_' + deviceNbr ;
	document.getElementById(id).options.length = 1 ;
	document.getElementById(id).disabled = true ;

	if ( getDeviceType(deviceNbr) == "InVehicle" )
	{
		addOther = false ;
		id = 'Year_' + deviceNbr ;
		document.getElementById(id).options.length = 1 ;
		document.getElementById(id).disabled = true ;
		id = 'System_' + deviceNbr ;
		document.getElementById(id).options.length = 1 ;
		document.getElementById(id).disabled = true ;
	}
	else if ( getDeviceType(deviceNbr) == "Mobile" )
	{
		addOther = false ;
		id = 'Carrier_' + deviceNbr ;
		document.getElementById(id).options.length = 1 ;
		document.getElementById(id).disabled = true ;
	}

	if ( index > 0 )
	{
		// Populate the model drop-down
		if ( selectedItem != null && selectedItem != '' )
		{
			var populateId = 'Model_' + deviceNbr ;
			var parms = "format=xml&action=getnavsys&region=" +region+ "&devicetype=" + getDeviceType(deviceNbr) + "&manuf=" + escape(selectedItem) ;
			gpsAjaxCall(populateId,parms,addOther);
		}
	}

}

function onChangeModelSelect(obj, deviceNbr)
{
	var addOther = false ;
	var populateId = '' ;
	var modelId = obj.id ;
	var manufId = 'Manuf_' + deviceNbr ;
	var manufItem = document.getElementById(manufId).options[document.getElementById(manufId).selectedIndex].value ;

	var region = document.getElementById('regRegion').value ;

	// Model selected item
	var index = document.getElementById(modelId).selectedIndex ;
	var selectedItem = document.getElementById(modelId).options[document.getElementById(modelId).selectedIndex].value ;

	// Clear all other drop-downs
	if ( getDeviceType(deviceNbr) == "InVehicle" )
	{
		populateId = 'Year_' + deviceNbr ;
		document.getElementById(populateId).options.length = 1 ;
		document.getElementById(populateId).disabled = true ;
		var id = 'System_' + deviceNbr ;
		document.getElementById(id).options.length = 1 ;
		document.getElementById(id).disabled = true ;
	}
	else if ( getDeviceType(deviceNbr) == "Mobile" )
	{
		//addOther = false ;
		populateId = 'Carrier_' + deviceNbr ;
		document.getElementById(populateId).options.length = 1 ;
		document.getElementById(populateId).disabled = true ;
	}

	if ( index > 0 )
	{
		// Populate the year or carrier drop-down
		if ( selectedItem != null && selectedItem != '' )
		{
			// Create the ajax parms
			var parms = "format=xml&action=getnavsys&region=" +region+ "&devicetype=" + getDeviceType(deviceNbr) + "&manuf=" + escape(manufItem) + "&model=" + escape(selectedItem) ;
			gpsAjaxCall(populateId,parms,addOther);
		}

	}
}

function onChangeYearSelect(obj, deviceNbr)
{
	var yearId = obj.id ;
	var manufId = 'Manuf_' + deviceNbr ;
	var modelId = 'Model_' + deviceNbr ;

	var region = document.getElementById('regRegion').value ;

	var index = document.getElementById(yearId).selectedIndex ;
	var selectedItem = document.getElementById(yearId).options[document.getElementById(yearId).selectedIndex].value ;

	// Model selected item
	var manufItem = document.getElementById(manufId).options[document.getElementById(manufId).selectedIndex].value ;
	var modelItem = document.getElementById(modelId).options[document.getElementById(modelId).selectedIndex].value ;

	// Clear all other drop-downs
	var id = 'System_' + deviceNbr ;
	document.getElementById(id).options.length = 1 ;
	document.getElementById(id).disabled = true ;

	if ( index > 0 )
	{
		// Populate the model drop-down
		if ( selectedItem != null && selectedItem != '' )
		{
			var parms = "format=xml&action=getnavsys&region=" +region+ "&devicetype=" + getDeviceType(deviceNbr) + "&manuf=" + escape(manufItem) + "&model=" + escape(modelItem) + "&year=" + escape(selectedItem) ;
			gpsAjaxCall(id,parms,true);
		}
	}
}

function gpsAjaxCall(dropDownId,parms,addOther)
{
	var url = '/webapps/GetDataServlet' ;
	new Ajax.Request(url, {
		asynchronous: true,
		contentType: "text/xml",
		encoding: "UTF-8",
		method: "get",
		parameters: parms,
		onSuccess: function(transport) {
			var format = transport.getResponseHeader('dataformat') ;
			if(format == 'xml') {
				updateDropDown(transport.responseXML,dropDownId,format,addOther) ;
			}
			else {
				updateDropDown(transport.responseText,dropDownId,format,addOther) ;
			}
		},
		onLoaded: function() {
			document.getElementById(dropDownId).options[0] = new Option("Loading...","");
		},
		onFailure: function() {
			document.getElementById(dropDownId).options[0] = new Option("Error","");
			document.getElementById('system_error').style.display = '' ;
		},
		on400: function() {
			document.getElementById(dropDownId).options[0] = new Option("Error","");
			document.getElementById('system_error').style.display = '' ;
		},
		on403: function() {
			document.getElementById(dropDownId).options[0] = new Option("Error","");
			document.getElementById('system_error').style.display = '' ;
		},
		on404: function() {
			document.getElementById(dropDownId).options[0] = new Option("Error","");
			document.getElementById('system_error').style.display = '' ;
		},
		on500: function() {
			document.getElementById(dropDownId).options[0] = new Option("Error","");
			document.getElementById('system_error').style.display = '' ;
		},
		on503: function() {
			document.getElementById(dropDownId).options[0] = new Option("Error","");
			document.getElementById('system_error').style.display = '' ;
		}

	}) ;
}

function updateDropDown(data,id,format,addOther)
{
	var itemElements ;
	var itemElementsLength = 0 ;

	if ( id.indexOf('Manuf') >= 0 ) {
		document.getElementById(id).options[0] = new Option(document.getElementById('js_manf').value,"") ;
	}
	else if ( id.indexOf('Model') >= 0 ) {
		document.getElementById(id).options[0] = new Option(document.getElementById('js_model').value,"") ;
	}
	else if ( id.indexOf('Year') >= 0 ) {
		document.getElementById(id).options[0] = new Option(document.getElementById('js_year').value,"") ;
	}
	else if ( id.indexOf('System') >= 0 ) {
		document.getElementById(id).options[0] = new Option(document.getElementById('js_system').value,"") ;
	}
	else if ( id.indexOf('Carrier') >= 0 ) {
		document.getElementById(id).options[0] = new Option(document.getElementById('js_carrier').value,"") ;
	}
	if (format == 'xml') {
		itemElements = data.getElementsByTagName("item") ;
		itemElementsLength = itemElements.length ;
		for (var x=0; x < itemElementsLength; x++)
		{
			var item = itemElements[x].childNodes[0].nodeValue ;
			document.getElementById(id).options[x+1] = new Option(decoder(item),decoder(item));
		}
	}
	else if (format == 'json') {
		itemElements = eval("("+data+")") ;
		itemElementsLength = itemElements.items.length ;
		for (var x=0; x < itemElementsLength; x++)
		{
			var obj = itemElements.items[x] ;
			document.getElementById(id).options[x+1] = new Option(decoder(obj.item),decoder(obj.item));
		}
	}
	else {
		itemElements = data.split('|') ;
		itemElementsLength = itemElements.items.length ;
		for (var x=0; x < itemElementsLength; x++)
		{
			var item = itemElements[x];
			document.getElementById(id).options[x+1] = new Option(decoder(item),decoder(item));
		}
	}
	if (addOther) {
		document.getElementById(id).options[itemElementsLength+1] = new Option("Other","Other");
	}
	document.getElementById(id).disabled = false ;
}

function addDevice()
{
	var nbr ;
	var divId = 'Div_Device_' ;
	var nbrDevices = document.getElementById('NbrDevices').value ;
	var selectedCountry = document.getElementById('country').options[document.getElementById('country').selectedIndex].value ;
	//var nbrDevices = document.myform.NbrDevices.value ;

	if ( nbrDevices < 3 ) {
		if ( nbrDevices == 1 ) {
			nbr = '2';
			divId = divId + nbr;
			document.getElementById('NbrDevices').value = 2 ;
		}
		else if ( nbrDevices == 2 ) {
			nbr = '3' ;
			divId = divId + nbr;
			document.getElementById('NbrDevices').value = 3 ;
	    	document.getElementById('AddDeviceButton').className = 'btndisabled' ;
	    	document.getElementById('AddDeviceButton').disabled = true ;
	    	document.getElementById('Div_add_btn_msg').style.display = 'block' ;
		}
		if ( selectedCountry == 'ZZ' ) {
			document.getElementById('InVehicle_'+nbr).disabled = true ;
			document.getElementById('AfterMarket_'+nbr).disabled = true ;
			document.getElementById('Portable_'+nbr).disabled = true ;
			document.getElementById('Mobile_'+nbr).disabled = true ;
		}
    	document.getElementById(divId).style.display = 'block' ;
	}
}

function deleteDevice(nbr)
{
	var nbrDevices = document.getElementById('NbrDevices').value ;

	// Reset number of devices & button
	if ( nbr == 2 ) {
		// If there are 3 devices then move the 3rd device to the 2nd device
		// and delete the 3rd device. Otherwise delete the 2nd device
		if ( nbrDevices == 3 ) {
			moveDevice3To2() ;
			removeDevice(3) ;
			document.getElementById('NbrDevices').value = 2 ;
		}
		else {
			removeDevice(2) ;
			document.getElementById('NbrDevices').value = 1 ;
		}
	}
	else if ( nbr == 3 ) {
		removeDevice(3) ;
		document.getElementById('NbrDevices').value = 2 ;
	}
	document.getElementById('AddDeviceButton').className = 'btn' ;
	document.getElementById('AddDeviceButton').disabled = false ;
	document.getElementById('Div_add_btn_msg').style.display = 'none' ;
}

function removeDevice(nbr) {
	// Uncheck all of the devices radio buttons
	var devId = 'Device' + nbr ;
	var radioObj = document.getElementsByName(devId) ;
	var radioLength = radioObj.length ;
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
	}

	var divId = 'Div_Device_' + nbr ;
	var divIV = 'Div_InVehicle_' + nbr ;
	var divAM = 'Div_AfterMarket_' + nbr ;
	var divPN = 'Div_Portable_' + nbr ;
	var divMP = 'Div_Mobile_' + nbr ;
	var divO  = 'Div_Other_' + nbr ;

	// Hide & clear the drop downs
    document.getElementById(divIV).style.display = 'none' ;
	document.getElementById(divIV).innerHTML = '';
    document.getElementById(divAM).style.display = 'none' ;
	document.getElementById(divAM).innerHTML = '';
    document.getElementById(divPN).style.display = 'none' ;
	document.getElementById(divPN).innerHTML = '';
    document.getElementById(divMP).style.display = 'none' ;
	document.getElementById(divMP).innerHTML = '';
    document.getElementById(divO).style.display = 'none'  ;
	document.getElementById(divO).innerHTML = '';
	document.getElementById(divId).style.display = 'none'  ;
}

function moveDevice3To2() {
	var dev2Id = 'Device2' ;
	var radio2Obj = document.getElementsByName(dev2Id) ;
	var dev3Id = 'Device3' ;
	var radio3Obj = document.getElementsByName(dev3Id) ;
	var radioLength = radio3Obj.length ;
	for(var i = 0; i < radioLength; i++) {
		radio2Obj[i].checked = radio3Obj[i].checked ;
		if ( radio2Obj[i].checked ) {
			document.getElementById('Div_'+radio2Obj[i].id).innerHTML = createSelection(radio2Obj[i].value,2);
			if( radio2Obj[i].value == 'InVehicle' )
			{
				copyOptions(document.getElementById('Manuf_3'), document.getElementById('Manuf_2')) ;
				copyOptions(document.getElementById('Model_3'), document.getElementById('Model_2')) ;
				copyOptions(document.getElementById('Year_3'), document.getElementById('Year_2')) ;
				copyOptions(document.getElementById('System_3'), document.getElementById('System_2')) ;
			}
			else if( radio2Obj[i].value == 'AfterMarket' || radio2Obj[i].value == 'Portable' )
			{
				copyOptions(document.getElementById('Manuf_3'), document.getElementById('Manuf_2')) ;
				copyOptions(document.getElementById('Model_3'), document.getElementById('Model_2')) ;
			}
			else if( radio2Obj[i].value == 'Mobile' )
			{
				copyOptions(document.getElementById('Manuf_3'), document.getElementById('Manuf_2')) ;
				copyOptions(document.getElementById('Model_3'), document.getElementById('Model_2')) ;
				copyOptions(document.getElementById('Carrier_3'), document.getElementById('Carrier_2')) ;
			}
			else if( radio2Obj[i].value == 'Other' )
			{
				document.getElementById('Other_Input_2').value = document.getElementById('Other_Input_3').value ;
			}
		    document.getElementById('Div_'+radio2Obj[i].id).style.display = 'block' ;
		}
		else {
		    document.getElementById('Div_'+radio2Obj[i].id).style.display = 'none' ;
			document.getElementById('Div_'+radio2Obj[i].id).innerHTML = '';
		}
	}
}

function copyOptions(from,to) {
	var nbrIndices = from.options.length ;
	for( var x = 0; x < nbrIndices; x++ ) {
		to.options[x] = new Option(from.options[x].text,from.options[x].value);
		if( from.options[x].selected ) {
			to.options[x].selected = true;
		}
	}
	to.disabled = false ;
}

function getDeviceType(deviceNbr) {
	var type = '' ;
	var arr = null ;

	if ( deviceNbr == 1 ) {
		arr = document.all.Device1 ;
	}
	else if ( deviceNbr == 2 ) {
		arr = document.all.Device2 ;
	}
	else {
		arr = document.all.Device3 ;
	}

	for (i=0; i < arr.length; i++) {
		if ( arr[i].checked ) {
			type = arr[i].value ;
			break ;
		}
	}

	return type ;

}

function Openme(newin)
{
        flyout=window.open(newin,"flyout","resizable=no,scrollbars=yes,menubar=no,toolbar=no,width=600,height=500,top=50,left=50")
}

function validateForm()
{
	if (document.form.country.selectedIndex ==  0)
	{
		alert(document.getElementById('error1').value);
		document.form.country.focus();
		return false;
	}
	if (document.form.title.selectedIndex ==  0)
	{
		alert(document.getElementById('error1').value);
		document.form.title.focus();
		return false;
	}
	if (document.form.firstName.value=='')
	{
		alert(document.getElementById('error1').value);
		document.form.firstName.focus();
		return false;
	}
	if (document.form.lastName.value=='')
	{
		alert(document.getElementById('error1').value);
		document.form.lastName.focus();
		return false;
	}
	if(document.form.emailAddr.value.length == 0)
	{
		alert(document.getElementById('error1').value);
		document.form.emailAddr.select();
		return false;
	}
	if(document.form.confirmEmailAddr.value.length == 0)
	{
		alert(document.getElementById('error1').value);
		document.form.confirmEmailAddr.select();
		return false;
	}
	if(document.form.emailAddr.value.length > 0)
	{
		var AtSign = document.form.emailAddr.value.indexOf('@');
		var per = document.form.emailAddr.value.lastIndexOf('.');
		var space = document.form.emailAddr.value.indexOf(' ');
		var length = document.form.emailAddr.value.length - 1;
		if ((AtSign < 1) || (per <= AtSign+1) || (per == length ) || (space != -1)) {
			alert(document.getElementById('error2').value);
			document.form.emailAddr.select();
			return false;
		}
	}
	if(document.form.emailAddr.value != document.form.confirmEmailAddr.value)
	{
		alert(document.getElementById('error3').value);
		document.form.confirmEmailAddr.select();
		return false;
	}
	if(!document.form.privacy.checked)
	{
		alert(document.getElementById('error4').value);
		document.form.privacy.select();
		return false;
	}

	var passedValidation = true ;
	var nbrDev = 1 ;
	var x = 1 ;
	while( x <= 3 )
	{
		var divId = 'Div_Device_' + x ;
		var dis = 'block' ;
		dis = document.getElementById(divId).style.display ;

		if ( dis != 'none' )
		{
			var devId = 'Device' + x ;
			var radioObj = document.getElementsByName(devId) ;
			var radioLength = radioObj.length ;
			var valid = false ;
			for(var i = 0; i < radioLength; i++) {
				if( radioObj[i].checked )
				{
					if ( validateGPS( radioObj[i].value, x ) )
					{
						valid = true ;
					}
					break ;

				}
			}

			if ( ! valid ) {
				passedValidation = false ;
				break ;
			}
		}
		x++ ;
	}

	if( ! passedValidation )
	{
		alert(document.getElementById('error1').value);
		return false;
	}

	return true;
}

function validateGPS( devType, nbr )
{
	var retVal  = true ;
	var manf    = 'Manuf_' + nbr ;
	var model   = 'Model_' + nbr ;
	var year    = 'Year_' + nbr ;
	var system  = 'System_' + nbr ;
	var carrier = 'Carrier_' + nbr ;
	var other   = 'Other_Input_' + nbr ;

	if( devType == 'InVehicle' )
	{
		var index1 = document.getElementById(manf).selectedIndex ;
		var index2 = document.getElementById(model).selectedIndex ;
		var	index3 = document.getElementById(year).selectedIndex ;
		var	index4 = document.getElementById(system).selectedIndex ;

		if( index1 == 'undefined' ||
			index2 == 'undefined' ||
			index3 == 'undefined' ||
			index4 == 'undefined' )
		{
			retVal = false ;
		}
		else
		{
			var selectedItem1 = document.getElementById(manf).options[index1].value ;
			var selectedItem2 = document.getElementById(model).options[index2].value ;
			var selectedItem3 = document.getElementById(year).options[index3].value ;
			var selectedItem4 = document.getElementById(system).options[index4].value ;

			if( selectedItem1 == '' ||
				selectedItem2 == '' ||
				selectedItem3 == '' ||
				selectedItem4 == '' )
			{
				retVal = false ;
			}
		}
	}
	else if( devType == 'AfterMarket' || devType == 'Portable' )
	{
		var index1 = document.getElementById(manf).selectedIndex ;
		var index2 = document.getElementById(model).selectedIndex ;

		if( index1 == 'undefined' ||
			index2 == 'undefined' )
		{
			retVal = false ;
		}
		else
		{
			var selectedItem1 = document.getElementById(manf).options[index1].value ;
			var selectedItem2 = document.getElementById(model).options[index2].value ;

			if( selectedItem1 == '' ||
				selectedItem2 == '' )
			{
				retVal = false ;
			}
		}
	}
	else if( devType == 'Mobile' )
	{
		var index1 = document.getElementById(manf).selectedIndex ;
		var index2 = document.getElementById(model).selectedIndex ;
		var	index3 = document.getElementById(carrier).selectedIndex ;

		if( index1 == 'undefined' ||
			index2 == 'undefined' ||
			index3 == 'undefined' )
		{
			retVal = false ;
		}
		else
		{
			var selectedItem1 = document.getElementById(manf).options[index1].value ;
			var selectedItem2 = document.getElementById(model).options[index2].value ;
			var selectedItem3 = document.getElementById(carrier).options[index3].value ;

			if( selectedItem1 == '' ||
				selectedItem2 == '' ||
				selectedItem3 == '' )
			{
				retVal = false ;
			}
		}
	}
	else if( devType == 'Other' )
	{
		if( document.getElementById(other).value == '' )
			retVal = false ;
	}

	return retVal ;
}

function decoder( sStr )
{
    return unescape(sStr)
       .replace(/\+/g, ' ')
          .replace('%22','"')
             .replace("%27", "'");
}
