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();
}

//Validates Email
function checkEmail(entered,thisid) {
	with (entered) {
		apos=value.indexOf("@");
		dotpos=value.lastIndexOf(".");
		lastpos=value.length-1;
		
		spacepos=value.indexOf(" ");
		
		if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2 || spacepos>0) {
			entered.select();
			entered.focus();
			return false; 
		}
		else {
			return true;
		}
	}
}

//for right side box
function checkRightSideEmail(entered,thisid) {
	with (entered) {
		apos=value.indexOf("@");
		dotpos=value.lastIndexOf(".");
		lastpos=value.length-1;
		
		spacepos=value.indexOf(" ");
		
		if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2 || spacepos>0) {
			entered.select();
			entered.focus();
			alert("Please enter a valid email.");
			return false; 
		}
		else {
			return true;
		}
	}
}

//Calls various validation functions for call on form submit
function validate(fnameobj, lnameobj, emailobj, addrobj, cityobj, stateobj, zipobj, cntryobj) {
	if (checkName(fnameobj) == false) {
		alert("Please enter your first name.");
		return false;
	}
	else if (checkName(lnameobj) == false) {
		alert("Please enter your last name.");
		return false;
	}
	else if (checkEmail(emailobj) == false) {
		alert("Please enter a valid email.");
		return false;
	}
	else if (checkAddr(addrobj) == false) {
		alert("Please enter a valid street address.");
		return false;
	}
	else if (checkAddr(cityobj) == false) {
		alert("Please enter a valid city.");
		return false;
	}
	else if (checkState(stateobj) == false && checkCountry(cntryobj) == false) {
		alert("Please enter a valid state.");
		return false;
	}
	else if (checkZipsubmit(zipobj) == false && checkCountry(cntryobj) == false) {
		alert("Please enter a valid zip code.");
		return false;
	}
	else {
		return true;
	}
}

function submitForm(fm) {
	if(fm.firstname.value == "First Name"){
		alert("Please Type a Valid First Name");
		return false;
	}
	else if(fm.lastname.value == "Last Name"){
		alert("Please Type a Valid Last Name");
		return false;
	}
	else if(fm.email.value == "Type Your Email"){
		alert("Please Type a Valid email");
		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 == "First Name") {
		return false;
	}
	else if(thisName == "Last Name") {
		return false;
	}
	else {
		return true;	
	}
}

function checkAddr(objName) {
    var namefield = objName;
    if (chkaddr(objName) == false) {
        namefield.select();
        objName.focus();
        return false;
    }
    else {
        return true;
    }
}

function chkaddr(objName){
	thisName = objName.value;
	if(thisName == "Address") {
		return false;
	}
	else if(thisName == "City") {
		return false;
	}
	else {
		return true;
	}
}
function checkState(objName) {
    var namefield = objName;
    if (chkState(objName) == false) {
		return false;
    }
    else {
        return true;
    }
}
function chkState(objName) {
	thisName = objName.value;
	if(thisName == "") {
		return false;
	}
	else {
		return true;
	}
}
function checkZipsubmit(objName) {
    var namefield = objName;
    if (chkzipsubmit(objName) == false) {
        namefield.select();
		return false;
        objName.focus();
    }
    else {
        return true;
    }
}
function chkzipsubmit(objName){
	thisName = objName.value;
	if(isNaN(thisName) || thisName.length > 5 || thisName.length < 5) {
		return false;
	}
	else {
		return true;
	}
}

function checkCountry(objName) {
    var namefield = objName;
    if (chkCountry(objName) == false) {
		return false;
    }
    else {
        return true;
    }
}

function chkCountry(objName) {
	thisName = objName.value;
	if(thisName == "US") {
		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");
        }
    }
}
//-->