
function checkEmail(emailStr){
    if (emailStr.length == 0) {
        return false;
    }
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
    var matchArray=emailStr.match(emailPat);
    if (matchArray == null) {
        return false;
    }
    var user=matchArray[1];
    var domain=matchArray[2];
    if (user.match(userPat) == null) {
        return false;
    }
    var IPArray = domain.match(ipDomainPat);
    if (IPArray != null) {
        for (var i = 1; i <= 4; i++) {
           if (IPArray[i] > 255) {
              return false;
            }
        }
        return true;
    }
    var domainArray=domain.match(domainPat);
    if (domainArray == null) {
        return false;
    }
    var atomPat=new RegExp(atom,"g");
    var domArr=domain.match(atomPat);
    var len=domArr.length;
    if ((domArr[domArr.length-1].length < 2) || (domArr[domArr.length-1].length > 3)) {
    	return false;
    }
      
    if (len < 2) {
    	return false;
    }
    return true;
}

/* 
Removes leading and trailing spaces from the passed string. Also removes
consecutive spaces and replaces it with one space. If something besides
a string is passed in (null, custom object, etc.) then return the input.
*/

function trim(input){
    if (input == "")
        return "";

    return input.replace(/^\s+|\s+$/g, '');
}

function isFutureDate(thisDate){
   var today = new Date();

    if (thisDate > today)
        return true;
    else
        return false;
}

function replaceQuote(objName){
    var returnValue="";
    var singleChar="";

   for(i=0; i<objName.value.length; i++){
      	singleChar=objName.value.substring(i,i+1);
      	
	if(singleChar=="'"){
            returnValue=returnValue + "";
      	}   
      	else returnValue=returnValue + singleChar;
   }
   objName.value = trim(returnValue);
}

function showFrame(objectID){
   var thisObject = document.getElementById(objectID);
   thisObject.style.display = "block";
   thisObject.style.visibility = "visible";
}
	 
function hideFrame(objectID){
   var thisObject = document.getElementById(objectID);
   thisObject.style.display = "none";
}

function validatePhone(phone){
    var i =0;
    if (phone.length != 10){
	return false;
    }

    for (i=0; i<phone.length; i++){
	if (isNaN(phone.charAt(i))){
            return false;
	}
    }

    return true;			
} 

function validateInternationalPhone(phone){
    var i =0;

    for (i=0; i<phone.length; i++){
	if (isNaN(phone.charAt(i))){
            return false;
	}
    }

    return true;			
} 

function checkPhoneNum(phone){
    if(trim(phone) == ""){
	alert("10 digit account number is required when you accessing Voice Terminal service.  Please choose your account number!");
	return false;
    }

    if (trim(phone).length != 10){
	alert("10 digit account number is required when you accessing Voice Terminal service. Please re-enter the account number.");
	return false;
    }
	
    for (i=0; i < phone.length; i++){
	if (isNaN(phone.charAt(i))){
            alert("Invalid account number! Please enter only digits!");
            return false;
	}
    }
    return true;
}

function toggleBox(szDivID, iState) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
       document.layers[szDivID].visibility = iState? "show" : "hide";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
        obj.style.visibility = iState? "visible" : "hidden";
    }
    else if(document.all)	// IE 4
    {
        document.all[szDivID].style.visibility = iState? "visible" : "hidden";
    }
}

function createPin() {
	document.signup.pin.value = (Math.floor(Math.random() * 10)).toString() +
                                 (Math.floor(Math.random() * 10)).toString() +
                                 (Math.floor(Math.random() * 10)).toString() +
                                 (Math.floor(Math.random() * 10)).toString();

	return;
}


function passwordUpdateValidate(){
	if (trim(document.password_update.emailPasswordo.value) == ""){
		alert("Password for above email address is required!");
		document.password_update.emailPasswordo.focus();
		return false;
	}

	if (trim(document.password_update.emailPasswordo.value) != trim(document.password_update.emailPasswordc.value)){
		alert("The entered passwords do not match. Please enter the passwords again!");
		document.password_update.emailPasswordc.focus();
		return false;
	}
	return true;
}

function stripTags (t) {
    while (t.match(/<.*>/)) t = t.replace(/<[^>]*>/, "");
    return t;
 }

function getHTTPRequestObj(){
    var isIE = false;
    var req;

    try{
        // Firefox, Opera 8.0+, Safari
        req=new XMLHttpRequest();
    }
    catch (e){
        // Internet Explorer
        isIE = true;
        try{
            req = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e){
            try{
                req = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e){
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
 
    return req;
}

function isValidEmailID(id){
    var idRegxp = /^([0-9A-Za-z.]+)$/

    if (!idRegxp.test(id))
        return false;

    return true;
}