//------------------------------------------------------------------
// File: /include/js/landing.js
// Desc: Skinny version of general.js
// $Revision: 2$
// $Date: 10/18/2004 3:30:28 PM$
// $Author: R.J. Plummer$
//------------------------------------------------------------------

window.onerror = GEN_ErrorHandler;
function GEN_ErrorHandler(sMsg,sUrl,sLine) {
    var c = GEN_ErrorHandler.caller;
    if (c == null)                 { c = "[none]"                 }
    GEN_load(1, 'url', sUrl, 'line', sLine, 'msg', sMsg, 'caller', c);
    return true;
}

function GEN_noErrorHandler() {
    return true;
}

function GEN_P_keepalive() {
    GEN_load(0);
    setTimeout("GEN_P_keepalive()", 900000);
}

function GEN_load(act) {
    if (document.images) {
        var qs = 'act=' + act;
        for (var i = 1; i < arguments.length - 1; i += 2) {
            qs += '&' + arguments[i] + '=' + escape(arguments[i+1])
        }
        var i1 = new Image();
        i1.src = "/~r.asp?" + qs;
    }
}

var GEN_P_oWindowOpenWin;

function GEN_P_windowOpenErrorHandler() {
    GEN_load(3, "b", 1, "url", GEN_P_windowOpenErrorHandler.caller.arguments[0]); ;
    // location = GEN_P_windowOpenErrorHandler.caller.arguments[0]
    return true;
}

function GEN_windowOpen(url, name, props) {
    var _saverr = window.onerror;
    window.onerror = GEN_P_windowOpenErrorHandler;
    var _win = window.open(url, name, props);
    var _dummy = _win.opener;
    if (typeof(_dummy) != "object") { 
        GEN_load(3, "b", "1", "url", url); ; 
        //location = url;
        return true; 
    }
    GEN_P_oWindowOpenWin = _win;
    setTimeout("GEN_P_testPopupOpen('" + url + "')", 1500);
    window.onerror = _saverr;
    return _win;
}

function GEN_P_testPopupOpen(url) {
    var _saverr = window.onerror;
    window.onerror = GEN_P_windowOpenErrorHandler;
    if (typeof(GEN_P_oWindowOpenWin) != "object") { 
        GEN_load(3, "b", "1", "url", url); ; 
        // location = url ;
        return;
    } else {
        if (GEN_P_oWindowOpenWin.closed) {
            GEN_load(3, "b", "1", "url", url); ; 
            // location = url ;
            return;
        }
    }
    GEN_load(3, "b", "0", "url", url); 
    window.onerror = _saverr
}     

function GEN_P_GetKeyCode(evt) {
    if (evt.keyCode) {
        return evt.keyCode;
    } else if (evt.which) {
        return evt.which
    } else {
       return 0;
    }
}

function GEN_NumericKeyPress(evt) {
        var iKeyCode = GEN_P_GetKeyCode(evt);
    if ((iKeyCode > 31 && iKeyCode < 48) || iKeyCode > 57) {
        return false;
    } 
}

function GEN_AutoTab(evt, iMaxLen, fldCurr, fldNext, iIndex) {
    if (fldCurr.value.length >= iMaxLen) {
        if (GEN_P_GetKeyCode(evt)> 47)  {
            if (!fldNext.focus) { 
                if (!fldNext[iIndex] || !fldNext[iIndex].focus) { return }
                fldNext = fldNext[iIndex] 
            }
            fldNext.focus();
            if (fldNext.select) {fldNext.select();}
        }
    }
}

function GEN_FieldError(fld, msg) {
    alert(msg);
    fld.focus();
    if (fld.select) { fld.select() }
    return false;
}

function GEN_ValidateAC34(frm) {
    if (frm.areacode.length) {
        for (var i = 0; i < frm.areacode.length; i++) {
            if ( i == 0 || 
                frm.areacode[i].value.length > 0 || 
                frm.three[i].value.length > 0 || 
                frm.four[i].value.length > 0) {
                    if (!GEN_ValidateSingleTN(frm.areacode[i], frm.three[i], frm.four[i])) {
                        return false;
                    }
            }
        }
        if (arguments.length > 1 && arguments[1] && (
                frm.areacode[0].value != frm.areacode[1].value || 
                frm.three[0].value != frm.three[1].value ||
                frm.four[0].value != frm.four[1].value)) {
            return GEN_FieldError( frm.areacode[0], "Both phone numbers must match." );
        }
    	return true;
    } else {
        return GEN_ValidateSingleTN(frm.areacode, frm.three, frm.four)
    }
}

function GEN_ValidateSingleTN(fAC, fThree, fFour) {
    if (!(parseInt("1" + fAC.value) > 999)) {
        return GEN_FieldError( fAC, "Please enter your 3-digit area code." );
    }
    if (!(parseInt("1" + fThree.value) > 999)) {
        return GEN_FieldError( fThree, "Please enter the first 3 digits of your phone number." );
    }
    if (!(parseInt("1" + fFour.value) > 9999)) {
        return GEN_FieldError( fFour, "Please enter the last 4 digits of your phone number." );
    }
    return true;
}

function GEN_ValidateP(frm) {
   if (!(parseInt("1" + frm.p.value.substring(0,5)) > 99999 && parseInt("1" + frm.p.value.substring(5,10)) > 99999)) {
	    return GEN_FieldError( frm.p, "Please enter your 10-digit phone number." );
	}
	return true;
}

function GEN_ValidatePassword(frm) {
        if (frm.password.value.length == 0) {
		    return GEN_FieldError( frm.password, "Please enter your password." );
		}
		return true;
	}

function GEN_ValidateEmail() {
    var sEmail1 = arguments[0].value;
    if (arguments.length == 2) {
        if (sEmail1 != arguments[1].value) {
		    return GEN_FieldError( arguments[0], "The two email addresses must match." );
		}
	}
	if (sEmail1.length == 0) {
		return GEN_FieldError( arguments[0], "Please enter a valid email address." );
    }
	if (sEmail1.length > 128) {
		return GEN_FieldError( arguments[0], "CallWave only supports email addresses shorter than 129 characters." );
    }
    if (!/^(([^\x00-\x1F\x7F-\xFF <>()[\]\\.,;:@"]|\\[\x00-\x7F])+(\.([^\x00-\x1F\x7F-\xFF <>()[\]\\.,;:@"]|\\[\x00-\x7F])+)*|"([^\n\r\\"\x80-\xFF]|\\[\x00-\x7F])+")@[0-9A-Za-z][-0-9A-Za-z]*[0-9A-Za-z](\.[0-9A-Za-z][-0-9A-Za-z]*[0-9A-Za-z])+$/.test(sEmail1)) {
		return GEN_FieldError( arguments[0], "Please enter a valid email address." );
    }
	return true;
}

var GEN_sRolloverList = "";
var GEN_bDontMoveToFirst = false;
var GEN_bSubmitted = false;

function GEN_DocumentOnLoad() {
    var i, j, f, e, sOnsub;
    if (GEN_sRolloverList.length > 0) { 
        eval("GEN_preloadImages(" + GEN_sRolloverList + ")") 
    }
    if (window.P_DocumentOnLoad) { 
        P_DocumentOnLoad()
    }
    // double-click avoidance code
    for (i=0; i < document.forms.length; i++) {
        f = document.forms[i];
        // save existing validation and use it if it exists
        if (typeof(f.onsubmit) != "function") {
            sOnsub = "true";
        } else {
            f.onSub = f.onsubmit;
            sOnsub = "this.onSub()";
        }
        // redefine onsubmit handler
        f.onsubmit = new Function("if(GEN_bSubmitted) {return false} else { GEN_trim(this); if (" + sOnsub + ") {GEN_bSubmitted = true; return true} else {return false}}");
    }
    if (!GEN_bDontMoveToFirst) {
        for (i=0; i < document.forms.length; i++) {
            f = document.forms[i];
            for (j=0; j < f.length; j++) {
                e = f.elements[j];
                if (e.type && !e.disabled) {
                    if (e.type == "text") {
                        e.focus();
                        return;
                    }
                }
            }
        }
    }
}

function GEN_trim(f) {
    var e;
    for (var i=0; i < f.length; i++) {
        e = f.elements[i];
        if (e.type && e.type == "text") {
            e.value = /^\s*(\S*(\s+\S+)*)\s*$/.exec(e.value)[1]
        }
    }
}

var newchildwin;
var childcreatetime = null;
var ssPath;

function GEN_P_blockerErrorHandler(sMsg,sUrl,sLine) {
    if (ssPath) {
        location.href = ssPath;
    } else {
        childcreatetime=new Date();
        newchildwin = new Object();
        newchildwin.closed = true;
    }
    return true;
}

function GEN_isTheWindowThere(sPath) {
   if (newchildwin) {
       ssPath = sPath;
       var onErrorSave = window.onerror;
       window.onerror = GEN_P_blockerErrorHandler;
       if (newchildwin.closed) {
           window.onerror = onErrorSave;
           var childdestroytime = new Date();
           // difference in milliseconds 
           if (childdestroytime-childcreatetime < 2000){  
               location.href = sPath;
           }
       }
       else {
           if (newchildwin.location) {
               if (newchildwin.location.length == 0) {
                   location.href = sPath;
               }
           }
           else {
               location.href = sPath;
           }
       }
       window.onerror = onErrorSave;
   }
   var sParam = "GEN_isTheWindowThere('" + sPath + "')" ;
   setTimeout (sParam, 250);
}