var images_folder = 'scripts/images/';
var enable_submit = false;
var input_name = new Array();
var input_status = new Array();
var alerts = "";
var submit_button_id = "submit_button";

function email_check(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	var invalidChars = '\/\'\\ ";*:?!()[]\{\}^|';
	var i = 0;
	for (i=0; i<invalidChars.length; i++) {
		if (str.indexOf(invalidChars.charAt(i),0) > -1) {
			return false;
		}
	}
	
	if (str.indexOf(at)==-1){
	  // alert("Invalid E-mail ID")
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	 //  alert("Invalid E-mail ID")
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)>=lstr-2){
	   // alert("Invalid E-mail ID")
	    return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
	   // alert("Invalid E-mail ID")
	    return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	   // alert("Invalid E-mail ID")
	    return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
	  //  alert("Invalid E-mail ID")
	    return false
	 }
		
	 if (str.indexOf(" ")!=-1){
	  //  alert("Invalid E-mail ID")
	    return false
	 }

	return true;
}
	

function phone_check(str)
{
// var invalidChrs = '\/\'\\";*:?![]\{\}^|';
var stripped = '';

 stripped = str.replace(/[\(\)\.\-\ ]/g, '');     

if (stripped.length < 5) return false;
else stripped = str.replace(/[\(\)\.\-\ ]/g, '');   

if (isNaN(parseInt(stripped)))
 return false;
 else return true;
}
 
//check all when global scope is used and at the end of the inline validation (in case the last required field is filled corectly  

 function check_all(first_run)
 {
	var total_check = 0;
	var alerts = "";
	var nr = 0;


	 for (nr = 0; nr < error_counter; nr++) {
		alerts = alerts +  "nr: " + nr + "id name: " + input_name[nr] + "status: " + input_status[nr] + "\n";
//		window.alert(alerts);
		//global check 	
		var input;
		var local_res = false;
		input = document.getElementById(input_name[nr]);

		 switch (input_name[nr]) {
			
			case input_name[0]:
				if (input.value == "" || input.value == "you@domainname.com" || !email_check(input.value))   
					{local_res = false; input_status[0] = false; }
				else {local_res = true; input_status[0] = true; } 
			break;
			
			case input_name[1]:
				if (input.value == "" || input.value == "you@domainname.com" || !email_check(input.value))   
					{local_res = false; input_status[1] = false; }
				else {local_res = true; input_status[1] = true; } 
			break;
			
			case input_name[2]:
				 if ((input.value == "") || (input.value.length > 30))   
					 {local_res = false; input_status[2] = false; }
				else { local_res = true; input_status[2] = true; }
				
				
			break;
			case input_name[3]:
				 if ((input.value == "") || (input.value.length > 30))
					 {local_res = false; input_status[3] = false; }
				else { local_res = true; input_status[3] = true; }
			break;
			
			case input_name[4]:
			if (input.value == "")   
					 { local_res = false; input_status[4] = false; }
				else { local_res = true; input_status[4] = true; }
			  break;
			
			case input_name[5]:
				 if (input.value == "")   
					 {local_res = false; input_status[5] = false; }
				else { local_res = true; input_status[5] = true; }
			break;
			
			case input_name[6]:
			if (!phone_check(input.value))   
					 { local_res = false; input_status[6] = false; }
				else { local_res = true; input_status[6] = true; }
			  break;
			
			case input_name[7]:
				 if (input.value == 0)   
					 {local_res = false; input_status[7] = false; }
				else { local_res = true; input_status[7] = true; }
			break;
			
			case input_name[8]:
				 if (isNaN(input.value) || input.value <=0)   
					 {local_res = false; input_status[8] = false; }
				else { local_res = true; input_status[8] = true; }
			break;
			
			case input_name[9]:
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[9] = false; }
				else { local_res = true; input_status[9] = true; }
			break;
			
			case input_name[10]:
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[10] = false; }
				else { local_res = true; input_status[10] = true; }
			break;
			
			case input_name[11]:
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[11] = false; }
				else { local_res = true; input_status[11] = true; }
			break;
			
			case input_name[12]:
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[12] = false; }
				else { local_res = true; input_status[12] = true; }
			break;
			
			case input_name[13]:
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[13] = false; }
				else { local_res = true; input_status[13] = true; }
			break;
			
			case input_name[14]:
				if(typeof(input) == "object") {
					if (isNaN(input.value) || input.value == 0)
						 {local_res = false; input_status[14] = false; }
					else { local_res = true; input_status[14] = true; }
				}
			break;
			
			default:
		}

		//end od big switch 		
		

		if (!input_status[nr]) {
			if (first_run) {
				 document.getElementById(input_name[nr] + '_validation').innerHTML = "<img src='" + images_folder + "arrow.gif' alt='Required' width='16' height='16' />";
			}

		} else {
			if (first_run) {
				//window.alert(input_name[nr] + '_validation');
				 document.getElementById(input_name[nr] + '_validation').innerHTML = "<img src='" + images_folder + "OK.gif' alt='Correct' width='16' height='16' />";
			}
			total_check++;
		} 
	}

	// alert(alerts);
	//window.alert("total_check:" + total_check + ",\n\nerror_counter:" + error_counter + ",\n\nalerts:" + alerts);
	if (total_check != error_counter) return false;
	else return true;
}
	
	 
function clean_input(id) {
	if (document.getElementById(id).value == "you@domainname.com") {
		document.getElementById(id).value = "";
		document.getElementById(id).style.color = "Black";
	}
}
 
 
function green_validate_form(validation_type, input_id, first_run) {
	//storing local validation result
	var local_res = false;
	var global_res = false;
	var input;
	var conf_field;	
	var pass_field;	
	
	if (validation_type == "global") {
		//check all fields one by one and decide if submit should be disabled or not
		if (document.getElementById(input_name[0]).value == "") {
			document.getElementById(input_name[0]).value = "you@domainname.com";
			//document.getElementById(input_name[0]).style.color = "#CCCCCC";
		}
		if (document.getElementById(input_name[1]).value == "") {
			document.getElementById(input_name[1]).value = "you@domainname.com";
			//document.getElementById(input_name[1]).style.color = "#CCCCCC";
		}
		if (!check_all(first_run))
			document.getElementById(submit_button_id).disabled = true;
		else
			document.getElementById(submit_button_id).disabled = false;
	} else {
		input = document.getElementById(input_id.name);
		//window.alert(input.name);
		switch (input_id.name) {
			case input_name[0]:
				//
				input_status[0] = (input.value != "" && input.value != "you@domainname.com" && email_check(input.value));
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[0]);
				break;
			case input_name[1]:
				// requires check back to see if value is email
				input_status[0] = input_status[1] = checkAndCompareFields(input_name[0],input_name[1], 50);
				break;
			case input_name[2]:
				input_status[2] = (input.value != "" && input.value.length < 30);
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[2]);
			break;
			case input_name[3]:
				//input_status[3] = (input.value == ""|| input.value.length > 30);
				input_status[2] = input_status[3] = checkAndCompareFields(input_name[2],input_name[3], 30);
			break;
			
			case input_name[4]:
				input_status[4] = (input.value != "");
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[4]);
				/*
				if (input.value == "")   
					 { local_res = false; input_status[4] = false; }
				else { local_res = true; input_status[4] = true; }
				break;
				*/
				break;
			case input_name[5]:
				input_status[5] = (input.value != "");
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[5]);
				/*
				 if (input.value == "")   
					 {local_res = false; input_status[5] = false; }
				else { local_res = true; input_status[5] = true; }
				*/
				break;
			
			case input_name[6]:
				input_status[6] = (phone_check(input.value));
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[6]);
				/*
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[5]);
			if (!phone_check(input.value))   
					 { local_res = false; input_status[6] = false; }
				else { local_res = true; input_status[6] = true; }
				*/
				break;
			
			case input_name[7]:
				input_status[7] = (input.value != 0);
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[7]);
				/*
				 if (input.value == 0)   
					 {local_res = false; input_status[7] = false; }
				else { local_res = true; input_status[7] = true; }
				*/
				break;
			// hours_per_week
			case input_name[8]:
				//window.alert(!isNaN(input.value) && input.value > 0);
				input_status[8] = (!isNaN(input.value) && input.value > 0);
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[8]);
				/*
				 if (isNaN(input.value) || input.value <=0 || input.value > 24)   
					 {local_res = false; input_status[8] = false; }
				else { local_res = true; input_status[8] = true; }
				*/
				break;
			
			case input_name[9]:
				input_status[9] = (!isNaN(input.value) && input.value != 0);
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[9]);
				/*
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[9] = false; }
				else { local_res = true; input_status[9] = true; }
				*/
				break;
			
			case input_name[10]:
				input_status[10] = (!isNaN(input.value) && input.value != 0);
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[10]);
				/*
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[10] = false; }
				else { local_res = true; input_status[10] = true; }
				*/
				break;
			
			case input_name[11]:
				input_status[11] = (!isNaN(input.value) && input.value != 0);
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[11]);
				/*
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[11] = false; }
				else { local_res = true; input_status[11] = true; }
				*/
				break;
			
			case input_name[12]:
				input_status[12] = (!isNaN(input.value) && input.value != 0);
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[12]);
				/*
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[12] = false; }
				else { local_res = true; input_status[12] = true; }
				*/
				break;
				
			case input_name[13]:
				input_status[13] = (!isNaN(input.value) && input.value != 0);
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[13]);
				/*
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[12] = false; }
				else { local_res = true; input_status[12] = true; }
				*/
				break;
				
			case input_name[14]:
				input_status[14] = (!isNaN(input.value) && input.value != 0);
				document.getElementById(input.name + '_validation').innerHTML = setAttentionIcon(input_status[13]);
				/*
				 if (isNaN(input.value)|| input.value == 0)   
					 {local_res = false; input_status[12] = false; }
				else { local_res = true; input_status[12] = true; }
				*/
				break;
			
			default:
		}
		//
		//
		if (!check_all(first_run))
			document.getElementById(submit_button_id).disabled = true;
		else
			document.getElementById(submit_button_id).disabled = false;  
		//
	  
	}

}

function checkAndCompareFields(inputOriginal,inputCompare, lengthRequired) {
	// get object references for use
	orig_field = document.getElementById(inputOriginal);
	comp_field = document.getElementById(inputCompare);
	//
	var isValid = ((orig_field.value == comp_field.value && orig_field.value != "" && comp_field.value != "") && (orig_field.value.length < lengthRequired) && (comp_field.value.length < lengthRequired)) ? true : false;
	document.getElementById(inputCompare + '_validation').innerHTML = setAttentionIcon(isValid);
	//
	return isValid;
}

function setAttentionIcon(flag) {
	return (flag) ?  "<img src='" + images_folder + "OK.gif' alt='Correct' width='16' height='16' />" : "<img src='" + images_folder + "Attention.gif' alt='Incorrect' title='This value is incorrect. Please review.' width='16' height='16' />";
}

/*if (input.value == "" || input.value.length < 5)   
	{local_res = false; input_status[0] = false; }
	else {local_res = true; input_status[0] = false; } 
*/

