
/*

<form id="myform" .... onsubmit="javascript: return validateForm(this);">

function validateForm(objForm) {
        _errorMsg = "";
        _isValid = true;
        
        CheckRequiredField_TextBox(objForm.testme, "ugg! empty..");
        CheckRequiredField_TextBox(objForm.testme2, "ugg! empty #2..");
        CheckRequiredField_CheckBox(objForm.chk1, "ugg! empty checkbox..");
        
        if (_errorMsg!="") {
          alert(_errorMsg);                  
        }
        return _isValid;
     }
*/

var _errorMsg = "";
var _isValid = true;

    
// =======================================
// ***     GENERIC FUNCTIONS
// =======================================

function SelectFormObject(theFieldObjId) {
    var tempval=document.getElementById(theFieldObjId);
    if (document.all && document.all[theFieldObjId]) {
      tempval=document.all[theFieldObjId];
      tempval.focus();
      tempval.select();
    } else if (document.getElementById && document.getElementById(theFieldObjId)) {
      tempval=document.getElementById(theFieldObjId);
      tempval.focus();
      tempval.select();  
    }   
}

function fnTrim(s) {
    var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m == null) ? "" : m[1];
}    
 
function fnIsBlank(s) {
    return (fnTrim(s)=="");
}
 
function fnIsInt(txtVal) {
    var exp = /^\s*[-\+]?\d+\s*$/;
    if (txtVal.match(exp) == null) 
        return false;
    var num = parseInt(txtVal, 10);
    if (isNaN(num)) {
       return false;
    }
    return true;
}
 
function fnIsEmail(txtVal) {
    var exp = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
    return !(txtVal.match(exp) == null);
} 
 

     
 
// =======================================
// ***     ERROR PROCESSING METHIDS
// =======================================

//private method... used to handle display of error msg
function AddNewErrorMessage(msg) {
   _errorMsg+= "* " + msg + "\n";
   _isValid = false;
}

// method to check before submitting form
function CheckIsInt_TextBox(obj, msg, allowBlank) {
    if(allowBlank && fnIsBlank(obj.value)) {
       return true;
    }
    if(!fnIsInt(obj.value)) {
       AddNewErrorMessage(msg);           
       return false;
    }
    return true;
}

// ========  PUBLIC METHOD  ===========================
// PURPOSE: to do an immediate alert of error
//   on whether is valid email
//   often with onblur method...
// obj: form TextBox object
// msg: string
// allowBlank: boolean
function Alert_CheckIsEmail_TextBox(obj, msg, allowBlank) {
    _errorMsg = "";
    if (!CheckIsEmail_TextBox(obj, msg, allowBlank)) {
        alert(_errorMsg);
    }
}

// ========  PUBLIC METHOD  ===========================
// PURPOSE: to do error check and aggregate error message
//   on whether is valid email
//   method to check before submitting form
// obj: form TextBox object
// msg: string
// allowBlank: boolean
function CheckIsEmail_TextBox(obj, msg, allowBlank) {
    if(allowBlank && fnIsBlank(obj.value)) {
       return true;
    }
    if(!fnIsEmail(obj.value)) {
       AddNewErrorMessage(msg);           
       return false;
    }
    return true;
}

// ========  PUBLIC METHOD  ===========================
// PURPOSE: to do an immediate alert of error
//   on whether text field is blank
//   often with onblur method...
// obj: form TextBox object
// msg: string
// allowBlank: boolean
function Alert_CheckRequiredField_TextBox(obj, msg) {
    _errorMsg = "";
    if (!CheckRequiredField_TextBox(obj, msg)) {
        alert(_errorMsg);
    }
}

// ========  PUBLIC METHOD  ===========================
// PURPOSE: to do error check and aggregate error message
//   on whether text field is blank
//   method to check before submitting form
// obj: form TextBox object
// msg: string
// allowBlank: boolean
function CheckRequiredField_TextBox(obj, msg) {
    if (fnTrim(obj.value) =="") {
       AddNewErrorMessage(msg);
       return false;
    }
    return true;
}     

// ========  PUBLIC METHOD  ===========================
// PURPOSE: to do an immediate alert of error
//   on whether checkbox is checked
//   often with onblur method...
// obj: form TextBox object
// msg: string
// allowBlank: boolean
function Alert_CheckRequiredField_CheckBox(obj, msg) {
    _errorMsg = "";
    if (!CheckRequiredField_CheckBox(obj, msg)) {
        alert(_errorMsg);
    }
}

// ========  PUBLIC METHOD  ===========================
// PURPOSE: to do error check and aggregate error message
//   on whether checkbox is checked
//   method to check before submitting form
// obj: form TextBox object
// msg: string
// allowBlank: boolean
function CheckRequiredField_CheckBox(obj, msg) {
    if (!obj.checked) {
       AddNewErrorMessage(msg);  
       return false;
    }
    return true;
}
     
     
function CheckRequiredField_Select(obj, msg) {
    if (fnIsBlank(obj.options[obj.selectedIndex].value)) {
       AddNewErrorMessage(msg);  
       return false;
    }
    return true;
}

function Alert_CheckRequiredField_Select(obj, msg) {
    _errorMsg = "";
    if (!CheckRequiredField_Select(obj, msg)) {
        alert(_errorMsg);
    }
}





//href="javascript:SpamBlock('sales','duffelbagsnbackpacks', '.com')"
function SpamBlockEmail(user,domain,toplevel) {
    locationstring = "mailto:" + user + "@" + domain + toplevel;
    window.location = locationstring;
}






/***********************************************
* Show Hint script- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
		
var horizontal_offset="9px" //horizontal offset of hint box from anchor link

/////No further editting needed

var vertical_offset="0" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype){
    var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
    var parentEl=what.offsetParent;
    while (parentEl!=null){
        totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
        parentEl=parentEl.offsetParent;
    }
    return totaloffset;
}

function iecompattest(){
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
    var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
    if (whichedge=="rightedge"){
    var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
    dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
    if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
        edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
    }
    else{
        var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
        dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
        if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
            edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
    }
    return edgeoffset
}

function showhint(menucontents, obj, e, tipwidth){
    if (!_hintBoxCreated) {
       createhintbox();  //do when first called
    }
    if ((ie||ns6) && document.getElementById("hintbox")){
        dropmenuobj=document.getElementById("hintbox")
        dropmenuobj.innerHTML=menucontents
        dropmenuobj.style.left=dropmenuobj.style.top=-1500
        if (tipwidth!=""){
        dropmenuobj.widthobj=dropmenuobj.style
        dropmenuobj.widthobj.width=tipwidth
        }
        dropmenuobj.x=getposOffset(obj, "left")
        dropmenuobj.y=getposOffset(obj, "top")
        dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px"
        dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
        dropmenuobj.style.visibility="visible"
        obj.onmouseout=hidetip
    }
}

function hidetip(e){
    dropmenuobj.style.visibility="hidden"
    dropmenuobj.style.left="-1500px"
}

var _hintBoxCreated = false;
function createhintbox(){
    _hintBoxCreated = true;
    var divblock=document.createElement("div")
    divblock.setAttribute("id", "hintbox")
    document.body.appendChild(divblock)
}
