
var whitespace = " \t\n\r";

function inputTab(obj,len,alpha,nextElement) {
    var maxSize = 0 ;
    var rExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;

    if (obj.value.length != maxSize)
    {
        maxSize = obj.value.length;
        if (alpha == 1)
        {
            numTrue = rExp.test(obj.value);
        }
        if ((maxSize == len) && (numTrue))
        {
            nextElement.focus();
        }
    }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
    window.open(theURL,winName,features);
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
    if (init==true) with (navigator) {
        if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
            document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage;
        }
        }
    else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);



function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
    }
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
        if ((x=MM_findObj(a[i]))!=null){
            document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];
        }
}

function MM_preloadImages() { //v3.0
    var d=document; if(d.images){
        if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
            if (a[i].indexOf("#")!=0){
                d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];
            }
    }
}


function checkSellAll(form)
{
    var oneChecked = false;
    var lsElements = "";
    for(liRow=0;liRow < form.elements.length;liRow++)
    {
        if(form.elements[liRow].type=="checkbox")
        {
            form.elements[liRow].checked = true;
			
        }
    }
	

}
function checkClearAll(form)
{
    var oneChecked = false;
    var lsElements = "";
    for(liRow=0;liRow < form.elements.length;liRow++)
    {
        if(form.elements[liRow].type=="checkbox")
        {
            form.elements[liRow].checked = false;
        }
    }
}


function addWatch(form)
{
    var oneChecked= false
    for(liRow=0;liRow < form.elements.length;liRow++)
    {
        if(form.elements[liRow].checked == true)
        {
            alert("Selected projects are added in My Watch List ");
            oneChecked= true
            break;
        }
    }
    if(oneChecked == false)
    {
        alert("Please select project to add in My Watch List");
         
    }
    
}
function removeWatch(form)
{
    var oneChecked= false
    for(liRow=0;liRow < form.elements.length;liRow++)
    {
        if(form.elements[liRow].checked == true)
        {
            alert("Selected projects are removed from My Watch List ");
            oneChecked= true
            break;
        }
    }
    if(oneChecked == false)
    {
        alert("Please select project to remove from My Watch List");
         
    }
    
}

function SearchSubmit()
{  
    var varForm;
  
    if (document.forms.length > 1) {
        varForm = document.forms[1];
    }
    else{
        varForm = document.forms[0];
    }
    if (varForm.keywords.value == "")
    {
        alert('Please enter the search terms');
        varForm.keywords.focus();
    }
    else if (((varForm.city.value == "") || (varForm.state.selectedIndex < 1)) && (varForm.zip.value == ""))
    {
        alert('Please Enter the City and State or Zipcode');
        varForm.city.focus();
    }
    else
    {
        varForm.submit();
    }
    return false;
}

function validateemail(email)
{
    if ((email.value=="") ||
        (email.value.indexOf ('@',0) == -1))
        {
        alert("Login ID needs to be a valid Email Address");
        email.value = "";
        email.focus();
        return(false);
    }
		
}

function trim(sString) 
{
    while (sString.substring(0,1) == ' ')
    {
        sString = sString.substring(1, sString.length);
    }
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
        sString = sString.substring(0,sString.length-1);
    }
    return sString;
}

function handleStatus(value)
{ 	
    var icount;
    var ststatus;
    var stReturn = '';
    var stValue1 = value.replace(/,/g, " ");
    var stValue = stValue1.split(" ");
    for (icount=0;icount<stValue.length;icount++)
    {
        ststatus = stValue[icount];
        switch (ststatus)
        {
            case (ststatus="SRMNO"):
                stReturn = stReturn + '<img src="images/m.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Minority Owned<br><br>';
                break
            case (ststatus="SRVTO"):
                stReturn = stReturn + '<img src="images/v.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Veteran Owned<br><br>';
                break
            case (ststatus="SRWMO"):
                stReturn = stReturn + '<img src="images/w.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Woman Owned<br><br>';
                break
            case (ststatus="SRCHM"):
                stReturn = stReturn + '<img src="images/ch.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Chamber Member<br><br>';
                break
            case (ststatus="SRWHZ"):
                stReturn = stReturn + '<img src="images/hub.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Within Hub Zon<br><br>';
                break
            case (ststatus="SRINC"):
                stReturn = stReturn + '<img src="images/reg.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Incorporated<br><br>';
                break
            case (ststatus="SRC8A"):
                stReturn = stReturn + '<img src="images/8a.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;8a Certified<br><br>';
                break
            case (ststatus="SRWCC"):
                stReturn = stReturn + '<img src="images/w.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Woman Council Certified<br><br>';
                break
            case (ststatus="SRIND"):
                stReturn = stReturn + '<img src="images/ind.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Independent and Freelance<br><br>';
                break
            case (ststatus="SRBBB"):
                stReturn = stReturn + '<img src="images/bbb.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Member of Better Business Bureau<br><br>';
                break
            case (ststatus="SRNEW"):
                stReturn = stReturn + '<img src="images/new.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;New Provider<br><br>';
                break
            case (ststatus="SRSEC"):
                stReturn = stReturn + '<img src="images/sec.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Has Security Clearance<br><br>';
                break
            case (ststatus="SREMR"):
                stReturn = stReturn + '<img src="images/emr.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Provides Emergency Services<br><br>';
                break
            case (ststatus="SRCER"):
                stReturn = stReturn + '<img src="images/ch.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Certified<br><br>';
                break
            case (ststatus="SRINS"):
                stReturn = stReturn + '<img src="images/ins.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Insured<br><br>';
                break
            case (ststatus="SRBON"):
                stReturn = stReturn + '<img src="images/bnd.jpg" width="23" height="23" style="border-style: none" align="center">&nbsp;&nbsp;Bonded<br><br>';
                break
			  	
            default:
                break
        }
    }
    if (stReturn.length > 1) {
        stReturn = stReturn.substring(0,stReturn.length);
    }
    return stReturn;
}

function isBlank(field){
    if(field == null || field == "") return true;
    else return false;
}

/****************************************************************/

// This function ensures that a field is less than or equal to the
// Length passed in.  You must call this function with the element
// name in your form (for example: "ValidateLength(document.forms[0].txtElement)"
// as opposed to "ValidateLength(document.forms[0].txtElement.value)"
// If the field's value is too large, an error message is displayed
// and false is returned, else true is returned.

function ValidateLength(objField, nLength, strWarning)
{		
    if (isWhitespace(objField.value)) return true;
	
    if (objField.value.length < nLength || objField == null || objField.value == "") {
        alert(strWarning);
        objField.focus();
        objField.select();
        return false;
    } else
        return true;
}

/****************************************************************/

// This function determines if the string passed in is a valid
// US zip code.  It accepts either ##### or #####-####.  If the
// string is valid, it returns true, else false.

function ValidateZipcode(strZip, strWarning)
{
    var strField =  new String(strZip.value);

    if (strField.length != 5 && strField.length != 10) {
        alert(strWarning);
        strZip.focus();
        strZip.select();
        return false;
    }

    for (i = 0; i < strField.length; i++)
        if (strField.charAt(i) < '0' || strField.charAt(i) > '9') {
            alert(strWarning);
            strZip.focus();
            return false;
        }
    return true;
}

/****************************************************************/

// Returns true if the string passed in is a valid number
//  (no alpha characters), else it displays an error message

function ValidateNumber(objField, strWarning)
{
    var strField = new String(objField.value);
	
    if (isWhitespace(strField)) return true;

    var i = 0;
    for (i = 0; i < strField.length; i++)
        if (strField.charAt(i) < '0' || strField.charAt(i) > '9') {
            alert(strWarning);
            try{
                objField.focus();
            }catch(e){}
            return false;
        }
    return true;
}

// check the year, first 2 charactes should be either 19 or 20 and year should be <= current year
function ValidateYear(objField, strWarning)
{
    var curdate = new Date();
    var year = curdate.getFullYear(); 
    var stValue = String(objField.value);

    if (stValue.charAt(0) < '1' || stValue.charAt(0) > '2' || (stValue.charAt(1) != '0' && stValue.charAt(1) != '9') || stValue > year) {
        alert(strWarning);
        try{
            objField.focus();
        }catch(e){}
        return false;
    }
    return true;
}

/****************************************************************/

// Check whether string s is empty.

function isEmpty(s)
{
    return ((s == null) || (s.length == 0))
}



/****************************************************************/

// Returns true if string s is empty or 
// whitespace characters only.

function isWhitespace (s)

{
    var i;
    var c

    // Is s empty?
    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

function checkWhiteSpace(s)
{
    var i;
    var c;
    var stValue = trim(s);
    if (stValue.length < 1) return false;
    for(i=0; i<stValue.length; i++){
        c = stValue.charAt(i);
        if (c == ' ') return true;
    }
    return false;
}

/****************************************************************/

// Checks to see if a required field is blank.  If it is, a warning
// message is displayed...

function ValidateRequired(objField, ErrorMsg)
{
    var strField = new String(objField.value);
    if (isWhitespace(strField)) {
        alert(ErrorMsg);
        objField.focus();
        objField.select();
        return false;
    }

    return true;
}

/****************************************************************/

// Returns true if the string passed in is a valid number
//  (no alpha characters), else it displays an error message

function ValidateCharacters(objField, strWarning)
{
    var strField = new String(objField.value);
	
    if (isWhitespace(strField)) return true;

    var regex = /[^a-zA-Z]/ ;
	
    if(regex.test(strField)) {
        alert(strWarning);
        objField.focus();
        return false;
    }

    return true;
}

function ValidateAlphaNumeric(objField, strWarning)
{
    var strField = new String(objField.value);
	
    if(ValidateAlphaNumericString(strField, strWarning)==false){
        alert(strWarning);
        objField.focus();
        return false;
    }
    return true;
}

function ValidateAlphaNumericString(strField)
{
    if (isWhitespace(strField)) return true;

    var regex = /[^0-9a-zA-Z]/ ;

    if(regex.test(strField)) {
        return false;
    }

    return true;
}

function ValidateAlphaNumericWithSpaces(objField, strWarning)
{
    var strField = new String(objField.value);
    var i;
    for (i=1;i <strField.length; i++){
        strField = strField.replace(' ', '');
    }
    if (isWhitespace(strField)) return true;

    var regex = /[^0-9a-zA-Z]/ ;
	
    if(regex.test(strField)) {
        alert(strWarning);
        objField.focus();
        return false;
    }

    return true;
}


function checkpassword(passwordEle, renterpasswordEle)
{
    if (passwordEle.value != renterpasswordEle.value && passwordEle.value.length > 0 && renterpasswordEle.value.length)
    {
        alert("Password does not match, please enter the same password");
        passwordEle.focus();
        return false;
	   	   
    }
}


function getCCTypeDesc(value)
{
    var ccTypeDesc;
    switch (value)
    {
        case (value="1"):
            ccTypeDesc = 'Visa';
            break
        case (value="2"):
            ccTypeDesc = 'Master Card';
            break
        case (value="3"):
            ccTypeDesc = 'American Express';
            break
        case (value="4"):
            ccTypeDesc = 'Discover Card';
            break

        default:
            ccTypeDesc = " ";
            break
    }
	
    return ccTypeDesc;
}

function validateCreditCardNumber(ccNumEle, ccTypeEle)
{
    if (ccTypeEle.value  == "3") {
        if (ccNumEle.value.length != 15) {
            alert("Entered credit card number is not valid");
            ccNumEle.focus();
            return false;
        }
    }
    else {
        if (ccNumEle.value.length != 16) {
            alert("Entered credit card number is not valid");
            ccNumEle.focus();
            return false;
        }
    }
    return true;
}

function getBankAccountType(value)
{
    var bankTypeDesc;
    switch (value)
    {
        case (value="0"):
            bankTypeDesc = 'Checking';
            break
        case (value="1"):
            bankTypeDesc = 'Business Checking';
            break
        case (value="2"):
            bankTypeDesc = 'Savings';
            break
        default:
            bankTypeDesc = " ";
            break
    }
	
    return bankTypeDesc;
}


function getPaymentPlanType(value)
{
    var plantype;
    switch (value)
    {
        case (value="1"):
            plantype = 'Monthly';
            break
        case (value="2"):
            plantype = 'Quarterly';
            break
        case (value="3"):
            plantype = 'Semi Annually';
            break
        case (value="4"):
            plantype = 'Yearly';
            break
        default:
            plantype = "Promotional Period";
            break
    }
	
    return plantype;
}

function ConvertAmount(Str) { 
    var L = Str.length, P = Str.indexOf('.'), Q
    if (P<0) return Str + ".00"
    if (P==L-2) return Str + "0"
    if (P==L-3) return Str
    if (Str.charAt(0)=="-") return "-" + ConvertAmount(Str.substring(1))
    Q = Str.substring(P+3)
    if (Q<"5") return Str.substring(0, P+3)
    if (Q>"5") return ConvertAmount(String(0.0125 + +Str.substring(0, P+3)))
    Q = Str.charCodeAt(P+2) % 2  ? +0.001 : -0.001
    return ConvertAmount(String(Q + +Str))
}

function Blankfield(idField)
{
    if(document.getElementById(idField).value == "city, state or zipcode")
        document.getElementById(idField).value = "";
    if(document.getElementById(idField).value == "enter keyword search")
        document.getElementById(idField).value = "";
}
