
<!-- This script is based on the javascript code of Roman Feldblum (web.developer@programmer.net) -->
<!-- Original script : http://javascript.internet.com/forms/format-phone-number.html -->
<!-- Original script is revised by Eralper Yilmaz (http://www.eralper.com) -->
<!-- Revised script : http://www.kodyaz.com -->
<!-- Format : "(123) 456-7890" -->

var zChar = new Array(' ', '(', ')', '-', '.');
var maxphonelength = 14;
var phonevalue1;
var phonevalue2;
var cursorposition;

function ParseForNumber1(object){
    phonevalue1 = ParseChar(object.value, zChar);
}
function ParseForNumber2(object){
    phonevalue2 = ParseChar(object.value, zChar);
}

function backspacerUP(object,e) { 
    if(e){ 
        e = e 
    } else {
        e = window.event 
    } 
    if(e.which){ 
        var keycode = e.which 
    } else {
        var keycode = e.keyCode 
    }

    ParseForNumber1(object)

    if(keycode >= 48){
        ValidatePhone(object)
    }
}

function backspacerDOWN(object,e) { 
    if(e){ 
        e = e 
    } else {
        e = window.event 
    } 
    if(e.which){ 
        var keycode = e.which 
    } else {
        var keycode = e.keyCode 
    }
    ParseForNumber2(object)
} 

function GetCursorPosition(){

    var t1 = phonevalue1;
    var t2 = phonevalue2;
    var bool = false
    for (i=0; i<t1.length; i++)
    {
        if (t1.substring(i,1) != t2.substring(i,1)) {
            if(!bool) {
                cursorposition=i
                window.status=cursorposition
                bool=true
            }
        }
    }
}

function ValidatePhone(object){

    var p = phonevalue1

    p = p.replace(/[^\d]*/gi,"")

    if (p.length < 3) {
        object.value=p
    } else if(p.length==3){
        pp=p;
        d4=p.indexOf('(')
        d5=p.indexOf(')')
        if(d4==-1){
            pp="("+pp;
        }
        if(d5==-1){
            pp=pp+")";
        }
        object.value = pp;
    } else if(p.length>3 && p.length < 7){
        p ="(" + p; 
        l30=p.length;
        p30=p.substring(0,4);
        p30=p30+") " // add space

        p31=p.substring(4,l30);
        pp=p30+p31;

        object.value = pp; 

    } else if(p.length >= 7){
        p ="(" + p; 
        l30=p.length;
        p30=p.substring(0,4);
        p30=p30+") " // add space

        p31=p.substring(4,l30);
        pp=p30+p31;

        l40 = pp.length;
        p40 = pp.substring(0,9); //8
        p40 = p40 + "-"

        p41 = pp.substring(9,l40); //8
        ppp = p40 + p41;

        object.value = ppp.substring(0, maxphonelength);
    }

    GetCursorPosition()

    if(cursorposition >= 0){
        if (cursorposition == 0) {
            cursorposition = 2
        } else if (cursorposition <= 2) {
            cursorposition = cursorposition + 1
        } else if (cursorposition <= 4) {
            cursorposition = cursorposition + 3//2
        } else if (cursorposition == 5) {
            cursorposition = cursorposition + 3//2
        } else if (cursorposition == 6) { //new
            cursorposition = cursorposition + 3 //2
        } else if (cursorposition == 7) { //6
            cursorposition = cursorposition + 4 //2
        } else if (cursorposition == 8) { //7
            cursorposition = cursorposition + 4
            e1=object.value.indexOf(')')
            e2=object.value.indexOf('-')
            if (e1>-1 && e2>-1){
                if (e2-e1 == 4) {
                    cursorposition = cursorposition - 1
                }
            }
        } else if (cursorposition == 9) { //7
            cursorposition = cursorposition + 4
        } else if (cursorposition < 11) {
            cursorposition = cursorposition + 3
        } else if (cursorposition == 11) {
            cursorposition = cursorposition + 1
        } else if (cursorposition == 12) {
            cursorposition = cursorposition + 1
        } else if (cursorposition >= 13) {
            cursorposition = cursorposition
        }       
    }

}

function ParseChar(sStr, sChar)
{

    if (sChar.length == null) 
    {
        zChar = new Array(sChar);
    }
        else zChar = sChar;

    for (i=0; i<zChar.length; i++)
    {
        sNewStr = "";

        var iStart = 0;
        var iEnd = sStr.indexOf(sChar[i]);

        while (iEnd != -1)
        {
            sNewStr += sStr.substring(iStart, iEnd);
            iStart = iEnd + 1;
            iEnd = sStr.indexOf(sChar[i], iStart);
        }
        sNewStr += sStr.substring(sStr.lastIndexOf(sChar[i]) + 1, sStr.length);

        sStr = sNewStr;
    }

    return sNewStr;
}

function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
} 

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
	var recid = document.getElementById('recid'); //get database pk from hidden field
    
if(fld.value.length > 0) {
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "You didn't enter an email address.\n";
    } 
	if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = 'Yellow';
        error = "Please enter a valid email address.\n";
		 alert(error);
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Yellow';
        error = "The email address contains illegal characters.\n";
		 alert(error);
    } else {
        fld.style.background = 'White';
	}
}
	
else {
		fld.style.background = 'White';
	 } 	
} //end function


function dynamicValidator() {
//validate all mini application field lengths	
	var thisArray = ['FirstName','LastName','Phone','Email'];
	allFieldsReady = true;
	for (var i=0; i < thisArray.length; i++) {
			var thisText = document.getElementById(thisArray[i]).value;
			if (thisText == "") {
				allFieldsReady = false;	
			}
	}
	
	if (!allFieldsReady) alert ('Please fill in all fields');
	return allFieldsReady;
}


function validateThis(objID) {
//not used at this time for email and other field validation
	var thisText = document.getElementById(objID).value;
	var bOK = false;
	if (thisText == "") {
		allFieldsReady = false;
		return;
	}
	if (objID.search(/email/) > -1) {
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if (reg.test(thisText)) { bOK = true; }
	} else {
		bOK = true;
	}
	if ((!bOK) || (thisText.length == 0)){
		allFieldsReady = false;
		document.getElementById(objID+"-Warning").style.display="inline";
		document.getElementById(objID).style.color="red";
		document.getElementById(objID).value="Required";
	} else {
		document.getElementById(objID+"-Warning").style.display="none";
	}
	return;
}	

function resetField(objID) {

}
	
function greeting()
{
alert("Welcome " + document.forms["frm1"]["fname"].value + "!")
}

function submitform()
{
	alert('testme');
    document.forms["quickappform"].submit();
}

function callme() {
//executes instant call back function
	
	var phonenum1 = document.getElementById('phonenum1');
	var phonenum2 = document.getElementById('phonenum2');
	var phonenum3 = document.getElementById('phonenum3');
	

	if (phonenum1.value && phonenum2.value && phonenum3.value) {	
		phonenumber = phonenum1.value + '-' + phonenum2.value + '-' + phonenum3.value;
		if (phonenumber.length == 12) {
			xajax_quickCallBack(phonenumber);
			alert('A loan officer will contact you in a few moments');
		}	
		else {
			alert('Please enter a 10 digit phone number');	
		}
	}
	else {
			alert('Please enter a 10 digit phone number');	
	}
}

// generic module that will change the focus of the cursor to the defined element after entering the specified number of characters.
 // field - field that is being entered
 // limit - number of characters to enter before transferring focus.
 // next  - field to transfer focus to when the limit number of characters has been entered.
 // evt   - pointer to the keyup event
function autofocus(field, limit, next, evt) {
	  evt = (evt) ? evt : event;
	  var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
		  ((evt.which) ? evt.which : 0));
	  if (charCode > 31 && field.value.length == limit) {
		  field.form.elements[next].focus( );
	  }
}
