/******************************************************************************
 *	JSV Form 1.0 (JavaScript Validator Form)                                  *
 *  Created: May 2004   Copyright © 2004, Nenad Bozic                         *
 ******************************************************************************/

var min_length = 2; // Minimum length of a text field
var temp_val = ""; // Temporary value for the text boxes, if used.

u_indicator = "!"

dependencies = new Array(1);
dependencies[0] = new Array(2);
dependencies[0][0] = "//empty//";
dependencies[0][1] = "//empty//";


// When a text box is updated/changed, and the length of the content in the box is sufficient,
// this function gets rid of the "incomplete indicator" in the first column of the table.
function checker(e2){

	td_element_str = "td_" + e2.name;

	if(document.getElementById){
		td_element = document.getElementById(td_element_str);
	}else{
		if(document.all){
			td_element = document.all(td_element_str);
		}		
	}
	
	if(e2.value.length < min_length){
		td_element.style.background = "#FFCC00";
		td_element.style.color = "#FFFFFF";
		td_element.innerHTML = u_indicator;
	}else{
		td_element.style.background = "#339900";
		td_element.style.color = "#339900";
		td_element.innerHTML = "&nbsp;";		
	}	
	
}

// When a radio button is clicked/checked, this function gets rid of the "incomplete indicator"
// in the first column of the table.
function checker2(e1,objC){
	formElement = document.getElementsByName(e1.name);	
	for(x = 0; x < formElement.length; x++){
		if(formElement[x].checked == true){
			if(formElement[x].value == "1" || objC != 'span_member'){
				td_element_str = "td_" + e1.name;
				if(document.getElementById){
					td_element = document.getElementById(td_element_str);
				}else{
					if(document.all){
						td_element = document.all(td_element_str);
					}		
				}
				td_element.style.background = "#339900";
				td_element.style.color = "#339900";
				td_element.innerHTML = "&nbsp;";
				if(document.getElementById){
					obj2 = document.getElementById(objC);
				}else{
					if(document.all){
						obj2 = document.all(objC);
					}		
				}				
				obj2.style.color = "#339900";
				obj2.innerHTML = "";				
				document.form1.org_aca_form.disabled = false;
				document.form1.event_aca_form.disabled = false;
				document.form1.dates_times_aca_form.disabled = false;
				document.form1.startdate_aca_form.disabled = false;						
				document.form1.expiration_aca_form.disabled = false;
				document.form1.description_aca_form.disabled = false;				
				document.form1.venue_aca_form.disabled = false;
				document.form1.address_aca_form.disabled = false;
				document.form1.city_aca_form.disabled = false;
				document.form1.state_aca_form[0].disabled = false;
				document.form1.state_aca_form[1].disabled = false;				
				document.form1.phone_aca_form.disabled = false;
				document.form1.email_aca_form.disabled = false;
				document.form1.website_aca_form.disabled = false;
				
				document.form1.submit1.disabled = false;
			}else{
				td_element_str = "td_" + e1.name;
				if(document.getElementById){
					td_element = document.getElementById(td_element_str);
				}else{
					if(document.all){
						td_element = document.all(td_element_str);
					}		
				}			
				td_element.style.background = "#FFCC00";
				td_element.style.color = "#FFFFFF";
				td_element.innerHTML = u_indicator;
				if(document.getElementById){
					obj2 = document.getElementById(objC);
				}else{
					if(document.all){
						obj2 = document.all(objC);
					}		
				}
				obj2.style.color = "#FF0000";
				obj2.innerHTML = "*MUST BE A MEMBER*";		
				document.form1.org_aca_form.disabled = true;
				document.form1.event_aca_form.disabled = true;
				document.form1.dates_times_aca_form.disabled = true;
				document.form1.startdate_aca_form.disabled = true;						
				document.form1.expiration_aca_form.disabled = true;
				document.form1.description_aca_form.disabled = true;				
				document.form1.venue_aca_form.disabled = true;
				document.form1.address_aca_form.disabled = true;
				document.form1.city_aca_form.disabled = true;
				document.form1.state_aca_form[0].disabled = true;
				document.form1.state_aca_form[1].disabled = true;				
				document.form1.phone_aca_form.disabled = true;
				document.form1.email_aca_form.disabled = true;
				document.form1.website_aca_form.disabled = true;				

				document.form1.submit1.disabled = true;
					
				alert("You MUST be a member in order to submit events.\nYou cannot proceed with the submission.");
				break;				
			}	
		}		
	}
}

function checker2b(e1){
	formElement = document.getElementsByName(e1.name);	
	for(x = 0; x < formElement.length; x++){
		if(formElement[x].checked == true){
			td_element_str = "td_" + e1.name;
			if(document.getElementById){
				td_element = document.getElementById(td_element_str);
			}else{
				if(document.all){
					td_element = document.all(td_element_str);
				}		
			}
			td_element.style.background = "#339900";
			td_element.style.color = "#339900";
			td_element.innerHTML = "&nbsp;";	
		}
	}
}

function checker3(combo){
	for(x = 0; x < dependencies[combo].length; x++){
	
		if(document.getElementById){
			objA = document.getElementById(dependencies[combo][x]);
		}else{
			if(document.all){
				objA = document.all(dependencies[combo][x]);
			}		
		}
	
		if(objA.value.length >= min_length){
			for(y = 0; y < dependencies[combo].length; y++){			
				td_element_str = "td_" + dependencies[combo][y];
				if(document.getElementById){
					td_element = document.getElementById(td_element_str);
				}else{
					if(document.all){
						td_element = document.all(td_element_str);
					}		
				}
				td_element.style.background = "#339900";
				td_element.style.color = "#339900";
				td_element.innerHTML = "&nbsp;";
			}			
			return true;			
		}
	}

	for(y = 0; y < dependencies[combo].length; y++){
		td_element_str = "td_" + dependencies[combo][y];
		if(document.getElementById){
			td_element = document.getElementById(td_element_str);
		}else{
			if(document.all){
				td_element = document.all(td_element_str);
			}		
		}	
		td_element.style.background = "#FFCC00";
		td_element.style.color = "#FFFFFF";
		td_element.innerHTML = u_indicator;
	}

}

// Just before the form is submitted, this function does the final check. It checks whether
// all the required fields have been completed, by checking for any "incomplete indicators"
// in the first column of the table. If OK, it gives the final "go" to submit the form.
function finalize(){

	validate();

	if(adjusted == 0){
		to_be_chk = new Array('member_aca_form','org_aca_form','event_aca_form','dates_times_aca_form','startdate_aca_form','expiration_aca_form','description_aca_form','venue_aca_form','address_aca_form','city_aca_form','state_aca_form','phone_aca_form');
	}else{
		// in contrast to the above array, this one is used internally and doesn't use the "member of ACA" question.
		to_be_chk = new Array('org_aca_form','event_aca_form','dates_times_aca_form','startdate_aca_form','expiration_aca_form','description_aca_form','venue_aca_form','address_aca_form','city_aca_form','state_aca_form','phone_aca_form');
	}
	
	for(i = 0; i < to_be_chk.length; i++){
		
		td_element_str = "td_" + to_be_chk[i];
		
		if(document.getElementById){
			objA = document.getElementById(td_element_str);
		}else{
			if(document.all){
				objA = document.all(td_element_str);
			}		
		}		
		
		if(objA.innerHTML.indexOf(u_indicator) > -1){

			validate2();
			
			alert("You must complete all required fields.");
			
			if(document.getElementById){
				objB = document.getElementById(to_be_chk[i]);
			}else{
				if(document.all){
					objB = document.all(to_be_chk[i]);
				}		
			}
						
			objB.focus();

			return false;
		}
	}
	
	if(!validDate(document.form1.startdate_aca_form,'required')){
		validate2();
		return false;
	}
	if(!validDate(document.form1.expiration_aca_form,'required')){
		validate2();
		return false;
	}
	
	var StartDate = new Date(document.form1.startdate_aca_form.value);
	var ExpirationDate = new Date(document.form1.expiration_aca_form.value);
	
	if (StartDate > ExpirationDate) {
		alert("The Start Day can't be greater than the Last Day.");
		document.form1.startdate_aca_form.focus();
		return false;
	}
	
	if(!checkPhone('phone_aca_form')){
		validate2();
		return false;
	}	
	if(!checkEmail(document.form1.email_aca_form)){
		validate2();
		return false;
	}
	if(!checkSite(document.form1.website_aca_form)){
		validate2();
		return false;
	}	
	
	return true;
}

// This function displays/hides the value "required", if one hovers with the mouse over the table cell
function overout(obj1,objC,num){
	if(document.getElementById){
		obj2 = document.getElementById(objC);
	}else{
		if(document.all){
			obj2 = document.all(objC);
		}		
	}	
	if(num == 1){	
		temp_val = obj2.value;
		if(obj1.innerHTML.indexOf(u_indicator) > -1){
			obj2.value = "REQUIRED";
			obj2.style.color = "#FF0000";
		}else{
			obj2.value = "OK";
			obj2.style.color = "#339900";		
		}
	}
	if(num == 2){
		obj2.style.color = "";
		obj2.value = temp_val;
	}	
	if(num == 3){
		if(obj1.innerHTML.indexOf(u_indicator) > -1){
			obj2.style.color = "#FF0000";
			obj2.innerHTML = "&lt;&lt; REQUIRED";
		}else{
			obj2.style.color = "#339900";
			obj2.innerHTML = "&lt;&lt; OK";		
		}
	}
	if(num == 4){
		obj2.style.color = "";
		obj2.innerHTML = "&nbsp;";
	}	
}

// Special functions

function validate(){
	if(document.getElementById){
		jscheck1 = document.getElementById('jscheck');
	}else{
		if(document.all){
			jscheck1 = document.all('jscheck');
		}		
	}
	jscheck1.value = "js_enabled";
}

function validate2(){
	if(document.getElementById){
		jscheck1 = document.getElementById('jscheck');
		jscheck1.value = "0";
	}else{
		if(document.all){
			jscheck1 = document.all('jscheck');
			jscheck1.value = "0";
		}		
	}
}


// Simple field validation

function checkPhone(object1){
	if(document.getElementById){
		element1 = document.getElementById(object1);
	}else{
		if(document.all){
			element1 = document.all(object1);
		}		
	}
	
	td_element_str = "td_" + object1;

	if(document.getElementById){
		td_element = document.getElementById(td_element_str);
	}else{
		if(document.all){
			td_element = document.all(td_element_str);
		}		
	}	
	
	if(element1.value.length < 12 && element1.value.length > 0){
		td_element.style.background = "#FFCC00";
		td_element.style.color = "#FFFFFF";
		td_element.innerHTML = u_indicator;	
		alert('The phone number you provided is not in the\nfollowing format: 000-000-0000');
		element1.focus();
		return false;		
	}else{
		if(element1.value.length > 0){
			td_element.style.background = "#339900";
			td_element.style.color = "#339900";
			td_element.innerHTML = "&nbsp;";
		}	
	}
	
	return true;	
}

// Dynamic Version by: Nannette Thacker
// http://www.shiningstar.net
// Original by :  Ronnie T. Moore
// Web Site:  The JavaScript Source
// Use one function for multiple text areas on a page
// Limit the number of characters per textarea
function textCounter(field,cntfield2,maxlimit) {
	if(document.getElementById){
		cntfield = document.getElementById(cntfield2);
	}else{
		if(document.all){
			cntfield = document.all(cntfield2);
		}		
	}	
	
	if (field.value.length > maxlimit) // if too long...trim it!
		field.innerHTML = field.innerHTML.substring(0, maxlimit);
	// otherwise, update 'characters left' counter
	else
		cntfield.innerHTML = maxlimit - field.innerHTML.length;
}


function echeck(str) {

	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	var invalid_message = 'Invalid email address.\nPlease enter a valid email\nor leave the field blank.';
	if (str.indexOf(at)==-1){
		alert(invalid_message);
		return false;
	}
	
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		alert(invalid_message);
		return false;
	}
	
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		alert(invalid_message);
		return false;
	}
	
	if (str.indexOf(at,(lat+1))!=-1){
		alert(invalid_message);
		return false;
	}
	
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		alert(invalid_message);
		return false;
	}
	
	if (str.indexOf(dot,(lat+2))==-1){
		alert(invalid_message);
		return false;
	}
	
	return true;					
}

function checkEmail(emailID){
	emailID.value = trim(emailID.value);
	if ((emailID.value==null)||(emailID.value=="")){
		return true;
	}	
	if (echeck(emailID.value) == false){
		emailID.focus();
		return false;
	}
	return true;
}

function checkSite(siteID){
	siteID.value = trim(siteID.value)
	str = siteID.value;

	if ((siteID.value==null)||(siteID.value=="")){
		return true;
	}

	if (str.toLowerCase().indexOf("http:")==0){
		alert('Please remove "http://" from the\nfront of the URL, or simply\nleave the whole field blank.');
		siteID.focus();
		return false;
	}

	var dot=".";
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	var invalid_message = 'Invalid website address.\nPlease enter a valid URL\nor leave the field blank.';

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==1 || str.indexOf(dot)==lstr || str.indexOf(dot)==(lstr - 1) || str.indexOf(dot)==(lstr - 2)){
		alert(invalid_message);
		siteID.focus();
		return false;
	}
	
	return true;

}

function validDate(obj1,option1){
	if(obj1.value.length == 0){
		return true;
	}

	if(obj1.value.length != 10 || obj1.value.indexOf("/")!=2){
		obj1.value = "";
		if(option1 == 'required'){
			checker(obj1);
			alert("You entered an invalid date.");
		}else{
			alert("You entered an invalid date.\nPlease provide a valid date\nor simply leave the field blank.");
		}
		obj1.focus();
		return false;
	}
	
	return true;
}

function validateTime(obj1,dependency){
	if(obj1.value.length == 0){
		dependency[2].checked = true;
		return true;
	}
	
	if(obj1.value.length < 4 || obj1.value.length > 5 || (obj1.value.indexOf(":")!=1 && obj1.value.indexOf(":")!=2)){
		alert("You entered an invalid time.\nAcceptable format example: 8:30\n...or you can leave the field blank.");
		obj1.focus();
		return false;
	}
	
	if(dependency[2].checked == true){
		alert("You must select AM or PM for the time.");
		obj1.focus();
		return false;				
	}
	
	return true;	
}


function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

