var phone_field_length=0;

//Auto-Tabs to next inputbox
function TabNext(obj,event,len,next_field) {
	if (event == "down") {
		phone_field_length=obj.value.length;
		}
	else if (event == "up") {
		if (obj.value.length != phone_field_length) {
			phone_field_length=obj.value.length;
			if (phone_field_length == len) {
				next_field.focus();
			}
		}
	}
}

function setfocus(thisbox) {
	thisbox.focus();
}


function checkRequired(passed) {
	if(passed.value == 'First Name' || passed.value == 'Last Name') {
		passed.select();
		alert("Field required. Please type a valid ");
		passed.focus();
		return false;
	}
	else
		return true;
}

function checkEmail(entered) {
	with (entered) {
		thislength = value.length;
		apos=value.indexOf("@");
		dotpos=value.lastIndexOf(".");
		lastpos=value.length-1;
		
		
		if (value != 'Primary Email' && value != 'Secondary Email' && thislength != '0' && ((value.length < 6) || (value.indexOf('@',0) < 1) || (value.lastIndexOf('@') != value.indexOf('@',0)) || 
		(value.lastIndexOf('@') > (value.length - 5)) || (value.lastIndexOf('.') > (value.length - 3)) || 
		(value.lastIndexOf('.') < (value.length - 4)) || (value.indexOf('..',0) > -1) || (value.indexOf('@.',0) > -1) || 
		(value.indexOf('.@',0) > -1) || (value.indexOf(',',0) > -1))) {
			entered.select();
			alert("Please enter a valid Email.");
			entered.focus();
			return false; 
		}
		else {
			return true;
		}
	}
}

function submitForm(fm) {
	if(fm.firstname.value == "Student First Name" || fm.firstname.value == ""){
		alert("Please Input a Valid Student's First Name");
		return false;
	}
	else if(fm.lastname.value == "Student Last Name"  || fm.lastname.value == ""){
		alert("Please Input a Valid Student's Last Name");
		return false;
	}
	else if(fm.email.value == "Primary Email" || fm.email.value == ""){
		alert("Please Input a Valid Email");
		return false;
	}
	else if(fm.pfirstname.value == "Parent First Name" || fm.pfirstname.value == ""){
		alert("Please Input a Valid First Name");
		return false;
	}
	else if(fm.plastname.value == "Parent Last Name" || fm.plastname.value == ""){
		alert("Please Input a Valid Last Name");
		return false;
	}
	else
		return true;
}

//validation for the firstname and lastname fields (mainly for on submit use)
function checkName(objName) {
    var namefield = objName;
    if (chkname(objName) == false) {
        namefield.select();
        objName.focus();
        return false;
    }
    else {
        return true;
    }
}

//helper function for checkName()
function chkname(objName){
	thisName = objName.value;
	if(thisName == "Student First Name") {
		return false;
	}
	else if(thisName == "Student Last Name") {
		return false;
	}
	else {
		return true;	
	}
}

//validation for the email field (mainly for on submit use)
function checkEmailD(objName) {
    var emailfield = objName;
    if (chkEmailD(objName) == false) {
        emailfield.select();
        objName.focus();
        return false;
    }
    else {
        return true;
    }
}

//helper function for checkEmail()
function chkEmailD(objName){
	thisEmail = objName.value;
	if(thisEmail == "your@email.com") {
		return false;
	}
	else {
		return true;
	}
}

////validation for any field that does not contain a default input (ex. askQuestion textbox)
function checkNull(objName) {
    var nullfield = objName;
    if (chkNull(objName) == false) {
        nullfield.select();
        objName.focus();
        return false;
    }
    else {
        return true;
    }
}

//helper function for checkNull()
function chkNull(objName){
	thisNull = objName.value;
	if(thisNull == "") {
		return false;
	}
	else {
		return true;
	}
}

//validation for the phone fields
function checkPhone(objName) {
    var phonefield = objName;
    if (chkphone(objName) == false) {
        phonefield.select();
        alert("The phone number is invalid. Please input a valid number");
        objName.focus();
        return false;
    }
    else {
        return true;
    }
}

//helper function for checkPhone()
function chkphone(objName){
	thisPhone = objName.value;
	if(thisPhone == "xxx") {
		return true;
	}
	else if(thisPhone == "xxxx") {
		return true;
	}
	else {
		if (thisPhone.length < 3) {
		   return false;
		}
		if(isNaN(thisPhone)) return false;
	}
}

//validation for the zip field
function checkZip(objName) {
    var zipfield = objName;
    if (chkZip(objName) == false) {
        zipfield.select();
        alert("The zip code is invalid. Please input a valid zip code");
        objName.focus();
        return false;
    }
    else {
        return true;
    }
}

//helper function for checkZip
function chkZip(objName){
	thisZip = objName.value;
	if(thisZip == "Zip") {
		return true;
	}
	else {
		if (thisZip.length < 5) {
		   return false;
		}
		if(isNaN(thisZip)) return false;
	}
}

//RETURNS INPUT INDEX
function getIndex(input) {
	var index = -1, i = 0, found = false;
	while (i < input.form.length && index == -1)
		if (input.form[i] == input)index = i;
		else i++;
	return index;
}

//LOOPS THROUGH ARRAYS CHECKING FOR THE STRING
function inArray(thisString,thisArray) {
    var len=thisArray.length;
    for(var i=0;i<len;i++){
        if(thisArray[i]==thisString)
            return i;
    }
    return -1;
}

//CHECKS IF CLASS ALREADY EXISTS
function isClassPresent(thisDoc,thisClass){
    var rgClasses=thisDoc.className.split(" ");
    return inArray(thisClass,rgClasses)>=0;
}

//CREATES CLASSES FOR EACH 'document.'
function addClass(Pq){
    var classes=Pq.className.split(" ");
    var len=arguments.length;
    for(var i=1;i<len;i++){
        var op=arguments[i].slice(0,1);
        var cls=arguments[i].slice(1);
        var idx=inArray(cls,classes);
        if(op=="-") {
            if(idx!=-1)
                classes.splice(idx,1);
        }
        else {
            if(idx==-1)
                classes.push(cls);
        }
    }
    var newClass=classes.join(" ");
    if(Pq.className!=newClass)
        Pq.className=newClass;
}

//KEEPS WHAT'S INSIDE INPUTBOXES
function keepInputText(pEvent,pDocument) {
    var bIsClean=isClassPresent(pDocument,"clean");
    if(bIsClean&&(pEvent.type=="focus"||pEvent.type=="drop")) {
        pDocument.value="";
		addClass(pDocument,"-clean");
    }
    else {
        if(pDocument.value.length==0&&pEvent.type=="blur") {
            pDocument.value=pDocument.getAttribute("title");
            addClass(pDocument,"+clean");
        }
    }
}

function StripSpacesFromEnds(s){
	while((s.indexOf(' ',0) == 0) && (s.length > 1)) {
		s = s.substring(1,s.length);
	}

	while((s.lastIndexOf(' ') == (s.length - 1) && (s.length > 1))) {
		s = s.substring(0,(s.length - 1));
	}

	if((s.indexOf(' ',0) == 0) && (s.length == 1)) s = '';
	return s;
}



function IsItPresent(s,explanation) {
	s = StripSpacesFromEnds(s);
	if(s.length || s == "First Name" || s == "Last Name") return s;
	alert('Please enter ' + explanation + '.');
	return '';
}



function ValidateName(passed) {
	s_name = passed.value;
	s_name = IsItPresent(s_name,'your name');
	if(! s_name) return false;
	var i = s_name.indexOf('  ',0);
	while(i > -1) {
		s_name = s_name.substring(0,(i + 1)) + 
			s_name.substring((i + 2),s_name.length);

		i = s_name.indexOf('  ',0);
	}

	s_name = s_name.toLowerCase();
	var s = new String(s_name.substring(0,1));
	s = s.toUpperCase();
	s_name = s + s_name.substring(1,s_name.length);
	i = s_name.indexOf(' ',0);
	if(i == (s_name.length - 1)) i = -1;
	var ts = new String("");
	var j = 0;
	while(i > -1) {
		i++;
		j = i + 1;
		s = s_name.substring(i,j);
		s = s.toUpperCase();
		ts = '';
		if(i > 0) ts = s_name.substring(0,i);
		s_name = ts + s + s_name.substring(j,s_name.length);
		i = s_name.indexOf(' ',j);
		if(i == (s_name.length - 1)) i = -1;
	}
	passed.value = s_name;
	return true;
}



function ValidateEmail(passed) {
	s_email = passed.value;
	// developed by willmaster.com
	s_email = IsItPresent(s_email,'your email address');
	if(! s_email) return false;
	var i = s_email.indexOf(' ',0);
	while(i > -1) {
		s_email = s_email.substring(0,i) + 
			s_email.substring((i + 1),s_email.length);
		i = s_email.indexOf(' ',0);
	}
	passed.value = s_email;
	if((s_email.length < 6) || (s_email.indexOf('@',0) < 1) || (s_email.lastIndexOf('@') != s_email.indexOf('@',0)) || 
		(s_email.lastIndexOf('@') > (s_email.length - 5)) || (s_email.lastIndexOf('.') > (s_email.length - 3)) || 
		(s_email.lastIndexOf('.') < (s_email.length - 4)) || (s_email.indexOf('..',0) > -1) || (s_email.indexOf('@.',0) > -1) || 
		(s_email.indexOf('.@',0) > -1) || (s_email.indexOf(',',0) > -1)) {
		alert('The email address "' + s_email + '" is not valid.');
		passed.focus();
		return false;
	}

	return true;

}
