var txt = "";

onerror = handleErr;
function handleErr(msg,url,l){
	txt="There was an error on this page.\n\n";
	txt+="Error: " + msg + "\n";
	txt+="URL: " + url + "\n";
	txt+="Line: " + l + "\n\n";
	txt+="Click OK to continue.\n\n";
	alert(txt);
	return true;
}

function checkAll(){
	$first_name 	= getElement('first_name');
	$last_name 		= getElement('last_name');
	$address 		= getElement('address');
	$city 			= getElement('city');
	$state 			= getElement('state');
	$zip 			= getElement('zip');
	$email 			= getElement('email');
	$install_date 	= getElement('install_date');
	$fd_number		= getElement('fd_number');
	$model_number 	= getElement('model_number');
	$serial_number 	= getElement('serial_number');
	$phone 			= getElement('phone');
	$under18		= getElement('Q9a');
	$over18			= getElement('Q9b');
	$residence		= getElement('Q8');
	
	$incentiveProgram=document.getElementById("incentiveProgram");
	
	$Q2				= document.getElementById('Q2_Internet_Other').checked;
	$Q2_text		= document.getElementById('Q2_Internet_Other_Text').value;
	
	$Q3_1			= document.getElementById('Q3_1');
	$Q3_2			= document.getElementById('Q3_2');
	$Q3_3			= document.getElementById('Q3_3');	
	$Q3_text		= document.getElementById('Q3_Other_Text');
	$Q3				= new Array($Q3_1, $Q3_2, $Q3_3);
	
	$Q4_text		= document.getElementById('Q4_Other_Text');
	$Q6				= document.getElementById('Q6_Other').checked;
	$Q6_text		= document.getElementById('Q6_Other_Text').value;
	$Q8				= $residence;

	$checklist 		= new Array();
	$checklist[0]	= $first_name; 
	$checklist[1]	= $last_name; 
	$checklist[2]	= $address;
	$checklist[3]	= $city; 
	$checklist[4]	= $state; 
	$checklist[5]	= $zip; 
	$checklist[6]	= $install_date; 
	$checklist[7]	= $model_number; 
	$checklist[8]	= $serial_number; 
	$checklist[9]	= $fd_number;
	$checklist[10]	= $email;
	$checklist[11]	= $phone
	$checklist[12]	= $under18;
	$checklist[13]	= $over18;
	$checklist[14]	= $Q8;
	
	var $errors 		= new Array();
	var $errorMessage 	= new Array();
	var $Qerrors 		= new Array();
	var $QerrorMessage 	= new Array();

//////////////////////////////////////////////////////////////////////////
// Check Name/Address/ETC
//////////////////////////////////////////////////////////////////////////

	for($i=0;$i<5;$i++){
		if(checkBlank($checklist[$i][0], 'string')){
			$errors.push($checklist[$i][1]);
			$errorMessage.push('is required.');
		}
	}

	if(checkBlank($checklist[5][0], 'zip')){
		$errors.push($checklist[5][1]);
		$errorMessage.push('code must contain numbers.');
	}

	if(checkBlank($checklist[11][0], 'string')){
		$errors.push($checklist[11][1]);
		$errorMessage.push('is required.');
	}

	if(checkBlank($checklist[10][0], 'email')){
		$errors.push($checklist[10][1]);
		$errorMessage.push('is required. as someone@somewhere.com');
	}

	if(checkBlank($checklist[6][0], 'date')){
		$errors.push($checklist[6][1]);
		$errorMessage.push('must be formated mm/dd/yy.');
	}
	
	if($checklist[7][0].length == 0 || $checklist[7][0] == '' || $checklist[8][0].length < 0){
		$errors.push($checklist[7][1]);
		$errorMessage.push('can contain 9 characters.');
	}
	
	if($checklist[8][0].length == 0 || $checklist[8][0] == '' || $checklist[8][0].length < 0){
		$errors.push($checklist[8][1]);
		$errorMessage.push('can contain 11-12 characters.');
	}
	if(isNaN($checklist[9][0]) || $checklist[9][0].length == 0 || $checklist[9][0] == '' || $checklist[9][0] == 0 || $checklist[9][0].length<4){
		$errors.push($checklist[9][1]);
		$errorMessage.push('must contain 4 numbers.');
	}
	
//////////////////////////////////////////////////////////////////////////
// Product to Register
//////////////////////////////////////////////////////////////////////////

	if($incentiveProgram.selectedIndex == 0){
		$errors.push('Please select a product to register.');
		$errorMessage.push('');
	}

//////////////////////////////////////////////////////////////////////////
// Question 2
//////////////////////////////////////////////////////////////////////////

	if($Q2 && $Q2_text == ''){
		$Qerrors.push('Question 2: Other field');
		$QerrorMessage.push('must be completed.');
	};
	
//////////////////////////////////////////////////////////////////////////
// Question 3
//////////////////////////////////////////////////////////////////////////

	$Q3_text_empty = false;
	$Q3_match = 0;
	if($Q3[0].selectedIndex > 0 || $Q3[1].selectedIndex > 0 || $Q3[2].selectedIndex > 0){
		$Q3_match ++;
		for($i=0;$i<3;$i++){
			for($ii=0;$ii<3;$ii++){
				if($Q3[$i].selectedIndex == $Q3[$ii].selectedIndex && $Q3[$i].selectedIndex > 0){
					$Q3_match ++;
				}
			}
			if($Q3[$i].selectedIndex == 11 && $Q3_text.value == ''){
				$Q3_text_empty = true;
			}
		}
		$Q3_match = $Q3_match - 3;
	}
	
	
	if($Q3_match == -1 || $Q3_match > 1){
		$Qerrors.push('Question 3: ');
		$QerrorMessage.push("Must be completed correctly.\nYou've entered a duplicate response. \nPlease select another choice from the pulldown menu");		
	}else if($Q3_text_empty){
		$Qerrors.push('Question 3: Other ');
		$QerrorMessage.push('must be completed.');
	}else if($Q3_match == 0 && $Q3_text.value != ''){
		$Qerrors.push('Question 3: Please select other ');
		$QerrorMessage.push('from the pulldown menu.');
	}
	
//////////////////////////////////////////////////////////////////////////
// Question 4
//////////////////////////////////////////////////////////////////////////

	if($Q4_text.value != '' && !document.$Q4_selected){
		$Qerrors.push('Question 4: Other field');
		$QerrorMessage.push('must be selected.');
	}else if(document.$Q4_selected && $Q4_text.value == ''){
		$Qerrors.push('Question 4: Other field');
		$QerrorMessage.push('must be completed.');
	}

//////////////////////////////////////////////////////////////////////////
// Question 6
//////////////////////////////////////////////////////////////////////////

	if($Q6 && $Q6_text == ''){
		$Qerrors.push('Question 6: Other field');
		$QerrorMessage.push('must be completed.');
	};

//////////////////////////////////////////////////////////////////////////
// Question 8
//////////////////////////////////////////////////////////////////////////

	$Q8 = checkBlank($checklist[14][0], 'number');
	if($Q8){
		$Qerrors.push('Question 8:');
		$QerrorMessage.push('Must contain a number.');
	}

//////////////////////////////////////////////////////////////////////////
// Question 9a/9b
//////////////////////////////////////////////////////////////////////////

	$Q9a = checkBlank($checklist[12][0], 'number');
	$Q9b = checkBlank($checklist[13][0], 'number');
	
	if($Q9a || $Q9b){
		$Qerrors.push('Question 9:');
		$QerrorMessage.push('Must contain a number.');
	}

//////////////////////////////////////////////////////////////////////////
// Question 13/14
//////////////////////////////////////////////////////////////////////////
	
	$bySiemens = document.getElementById('Q13').checked;
	$byOthers = document.getElementById('Q14').checked;

	$getContact = document.$getContact	
	
	if($getContact){
		if($bySiemens == false && $byOthers == false){
			$Qerrors.push('');
			$QerrorMessage.push('Please select a type of offers you would like to receive.');
		}
	}
	
	if($bySiemens || $byOthers){
		if(!$getContact){
			$Qerrors.push('');
			$QerrorMessage.push('Please select a mode of contact.');
		}
	}
	
//////////////////////////////////////////////////////////////////////////
// Evaluate Errors
//////////////////////////////////////////////////////////////////////////

	if($errors.length > 0 || $Qerrors.length > 0){
		$errorlist = 'Please correct the following:\n';
		for($i=0;$i<$errors.length;$i++){
			$errorlist +="- " + $errors[$i] + " " + $errorMessage[$i] + "\n";
		}
		
		if($Qerrors.length > 0){
			for($i=0;$i<$Qerrors.length;$i++){
				$errorlist +="- " + $Qerrors[$i] + " " + $QerrorMessage[$i] + "\n";
			}
		}
		
		alert($errorlist);
		document.$goSubmit = false;
	}else{
		document.$goSubmit = true;	//true
	}
}
//////////////////////////////////////////////////////////////////////////
// FUNCTIONS
//////////////////////////////////////////////////////////////////////////
function checkBlank($elementX, $type){
	if($type == "number"){
		if(isNaN($elementX)) return true;
	}
	
	if($type == "string"){
		if($elementX == "") return true;
	}

	if($type == "zip"){
		if($elementX.length < 5) return true;
		if(isNaN(Math.ceil($elementX))) return true;
		if($elementX == 0) return true;
		if($elementX == '') return true;
	}

	if($type == "date"){
		if($elementX.length < 8) return true;
		if($elementX.length > 8) return true;
		if($elementX == 'mm/dd/yy') return true;
		if(!$elementX.charAt(2) == '/' && !$elementX.charAt(5) == '/') return true;
		$elementX = $elementX.split("/");
		$error = false;
		for($i=0;$i<$elementX.length;$i++){
			if(!Math.ceil($elementX[$i]) > 0){
				$error = true;
			}
		}
		return $error;
	}

	if($type == "email"){
		if(!$elementX.indexOf("@") > 0 || $elementX == '') return true;
	}
	
	if($type == "numeric"){
		
	}
}

function getElement($elementX){
	var $fields = new Array();
	$fields[0] = document.getElementById($elementX).value;
	$fields[1] = document.getElementById($elementX).name;
	$fields[1] = killUnderscore($fields[1]);
	return $fields;
}

function killUnderscore($word){
	$word = $word.replace(/_/," ");
	return $word;
}

function checkContact(){
	document.$getContact = true;
}

function enableQuestion($question, $question_text, $type, $answer){
	$error = false;
	$Q			= $question;
	$Q_text		= document.getElementById($question_text);
	if($type == 'dropdown menu'){
		if($Q.selectedIndex > $answer){
			$Q_text.focus();
		}else{
		}
	}else if($type == 'bullet'){
		if($Q.value >= $answer){
			$Q_text.disabled = false;
			$Q_text.focus();
		}else{
			$error = true;
		}
	}else if($type == 'checkbox'){
		if($Q.checked){
			$Q_text.focus();
		}else{
		}
	}
	if($error){
		$Q_text.value 		='';
		$Q_text.disabled 	= true;
		$Q_text.blur();
		$Q.focus();
	}
}

function checkQ3($elementX){
	if(document.getElementById('Q3_1').selectedIndex < 11 && document.getElementById('Q3_2').selectedIndex < 11 && document.getElementById('Q3_3').selectedIndex < 11){
		document.getElementById('Q3_Other_Text').value = '';
	}
}

function Q4_select(){
	document.$Q4_selected = true;	
}

function addCheck($notBlank, $checkThis){
	if($notBlank.value != ""){
		document.getElementById($checkThis).checked = true;
	}else if($notBlank.value == ""){
		document.getElementById($checkThis).checked = false;
	}
}

function enableOthers($Q_text){
	if($Q_text.value == ""){
		$Q_text.disabled	= true;
	}else{
		$Q_text.disabled	= false;
	}
}
//////////////////////////////////////////////////////////////////////////