
/*

<form id="myform" .... onsubmit="javascript: return validateForm(this);">

function validateForm(objForm) {
        _errorMsg = "";
        _isValid = true;
        
        CheckRequiredField_TextBox(objForm.testme,objForm.testmeLabel, "ugg! empty..");
        CheckRequiredField_CheckBox(objForm.chk1,null, "ugg! empty checkbox..");
        
        if (_errorMsg!="") {
          alert(_errorMsg);                  
        }
        return _isValid;
     }
*/

var _errorMsg = "";
var _isValid = true;
var _errorColor = "red";
    
// =======================================
// ***     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 fnIsFloat(txtVal) {
   if (isNaN(parseFloat(txtVal))) {
      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,objLbl, msg, allowBlank) {
    if(allowBlank && fnIsBlank(obj.value)) {
       return true;
    }
    if(!fnIsInt(obj.value)) {
       SetTextColor(objLbl,_errorColor);
       AddNewErrorMessage(msg);           
       return false;
    }
    return true;
}



// ========  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,objLbl, msg, allowBlank) {
    if(allowBlank && fnIsBlank(obj.value)) {
       return true;
    }
    if(!fnIsEmail(obj.value)) {
       SetTextColor(objLbl,_errorColor);
       AddNewErrorMessage(msg);           
       return false;
    }
    return true;
}

function CheckRequiredField_Radio(radioName,objLbl, msg) {
    if (CheckedRadioIdx(radioName)<0) {
       SetTextColor(objLbl,_errorColor);       
       AddNewErrorMessage(msg);
       return false;
    }
    else return true;
}

//returns idx of radio button..
function CheckedRadioIdx(radioName) {
    var cnt = -1;
    for (var i=radioName.length-1; i > -1; i--) {
        if (radioName[i].checked) {cnt = i; i = -1;}
    }
    if (cnt <= -1){
       return -1;
    }
    else return cnt;
}


// ========  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,objLbl, msg) {
    if (fnTrim(obj.value) =="") {
       SetTextColor(objLbl,_errorColor);
       AddNewErrorMessage(msg);
       return false;
    }
    return true;
}     

function SetTextColor(elementId, colorText) {
   if (document.getElementById && document.getElementById(elementId)) {
       document.getElementById(elementId).style.color=colorText;       
   }
}

// ========  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,objLbl, msg) {
    
    if (!obj.checked) {
       SetTextColor(objLbl,_errorColor);
       AddNewErrorMessage(msg);  
       return false;
    }
    return true;
}
     
     
function CheckRequiredField_Select(obj,objLbl, msg) {
    if (fnIsBlank(obj.options[obj.selectedIndex].value)) {
       SetTextColor(objLbl,_errorColor);
       AddNewErrorMessage(msg);  
       return false;
    }
    return true;
}







//href="javascript:SpamBlock('sales','duffelbagsnbackpacks', '.com')"
function SpamBlockEmail(spanId,user,domain,toplevel) {
    if (document.getElementById && document.getElementById(spanId)) {
         locationstring = "mailto:" + user + "@" + domain + toplevel;
         document.getElementById(spanId).innerHTML = "<a href='" + locationstring + "'>" 
            + user + "@" + domain + toplevel
            + "</a>";         
    }
}






/***********************************************
* 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)
}

