diff js/gen_validatorv4.js @ 0:032bc65ebafc

added core components
author George Fazekas <gyorgy.fazekas@eecs.qmul.ac.uk>
date Wed, 06 Mar 2013 15:45:48 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/js/gen_validatorv4.js	Wed Mar 06 15:45:48 2013 +0000
@@ -0,0 +1,1274 @@
+/*
+    -------------------------------------------------------------------------
+    JavaScript Form Validator (gen_validatorv4.js)
+    Version 4.0
+    Copyright (C) 2003-2011 JavaScript-Coder.com. All rights reserved.
+    You can freely use this script in your Web pages.
+    You may adapt this script for your own needs, provided these opening credit
+    lines are kept intact.
+        
+    The Form validation script is distributed free from JavaScript-Coder.com
+    For updates, please visit:
+    http://www.javascript-coder.com/html-form/javascript-form-validation.phtml
+
+    Questions & comments please send to form.val (at) javascript-coder.com
+    -------------------------------------------------------------------------  
+*/
+
+function Validator(frmname)
+{
+    this.validate_on_killfocus = false;
+    this.formobj = document.forms[frmname];
+    if (!this.formobj)
+    {
+        alert("Error: couldnot get Form object " + frmname);
+        return;
+    }
+    if (this.formobj.onsubmit)
+    {
+        this.formobj.old_onsubmit = this.formobj.onsubmit;
+        this.formobj.onsubmit = null;
+    }
+    else
+    {
+        this.formobj.old_onsubmit = null;
+    }
+    this.formobj._sfm_form_name = frmname;
+
+    this.formobj.onsubmit = form_submit_handler;
+    this.addValidation = add_validation;
+
+    this.formobj.addnlvalidations = new Array();
+    this.addAddnlValidationFunction = add_addnl_vfunction;
+    this.formobj.runAddnlValidations = run_addnl_validations;
+    this.setAddnlValidationFunction = set_addnl_vfunction;//for backward compatibility
+
+
+    this.clearAllValidations = clear_all_validations;
+    this.focus_disable_validations = false;
+
+    document.error_disp_handler = new sfm_ErrorDisplayHandler();
+
+    this.EnableOnPageErrorDisplay = validator_enable_OPED;
+    this.EnableOnPageErrorDisplaySingleBox = validator_enable_OPED_SB;
+
+    this.show_errors_together = false;
+    this.EnableMsgsTogether = sfm_enable_show_msgs_together;
+    document.set_focus_onerror = true;
+    this.EnableFocusOnError = sfm_validator_enable_focus;
+
+    this.formobj.error_display_loc = 'right';
+    this.SetMessageDisplayPos = sfm_validator_message_disp_pos;
+
+    this.formobj.DisableValidations = sfm_disable_validations;
+    this.formobj.validatorobj = this;
+}
+
+
+function sfm_validator_enable_focus(enable)
+{
+    document.set_focus_onerror = enable;
+}
+
+function add_addnl_vfunction()
+{
+    var proc =
+    {
+    };
+    proc.func = arguments[0];
+    proc.arguments = [];
+
+    for (var i = 1; i < arguments.length; i++)
+    {
+        proc.arguments.push(arguments[i]);
+    }
+    this.formobj.addnlvalidations.push(proc);
+}
+
+function set_addnl_vfunction(functionname)
+{
+    if(functionname.constructor == String)
+    {
+        alert("Pass the function name like this: validator.setAddnlValidationFunction(DoCustomValidation)\n "+
+            "rather than passing the function name as string");
+        return;
+    }
+    this.addAddnlValidationFunction(functionname);
+}
+
+function run_addnl_validations()
+{
+    var ret = true;
+    for (var f = 0; f < this.addnlvalidations.length; f++)
+    {
+        var proc = this.addnlvalidations[f];
+        var args = proc.arguments || [];
+        if (!proc.func.apply(null, args))
+        {
+            ret = false;
+        }
+    }
+    return ret;
+}
+
+function sfm_set_focus(objInput)
+{
+    if (document.set_focus_onerror)
+    {
+        if (!objInput.disabled && objInput.type != 'hidden')
+        {
+            objInput.focus();
+        }
+    }
+}
+
+function sfm_disable_validations()
+{
+    if (this.old_onsubmit)
+    {
+        this.onsubmit = this.old_onsubmit;
+    }
+    else
+    {
+        this.onsubmit = null;
+    }
+}
+
+function sfm_enable_show_msgs_together()
+{
+    this.show_errors_together = true;
+    this.formobj.show_errors_together = true;
+}
+
+function sfm_validator_message_disp_pos(pos)
+{
+    this.formobj.error_display_loc = pos;
+}
+
+function clear_all_validations()
+{
+    for (var itr = 0; itr < this.formobj.elements.length; itr++)
+    {
+        this.formobj.elements[itr].validationset = null;
+    }
+}
+
+function form_submit_handler()
+{
+    var bRet = true;
+    document.error_disp_handler.clear_msgs();
+    for (var itr = 0; itr < this.elements.length; itr++)
+    {
+        if (this.elements[itr].validationset && !this.elements[itr].validationset.validate())
+        {
+            bRet = false;
+        }
+        if (!bRet && !this.show_errors_together)
+        {
+            break;
+        }
+    }
+
+    if (this.show_errors_together || bRet && !this.show_errors_together)
+    {
+        if (!this.runAddnlValidations())
+        {
+            bRet = false;
+        }
+    }
+    if (!bRet)
+    {
+        document.error_disp_handler.FinalShowMsg();
+        return false;
+    }
+    return true;
+}
+
+function add_validation(itemname, descriptor, errstr)
+{
+    var condition = null;
+    if (arguments.length > 3)
+    {
+        condition = arguments[3];
+    }
+    if (!this.formobj)
+    {
+        alert("Error: The form object is not set properly");
+        return;
+    } //if
+    var itemobj = this.formobj[itemname];
+
+    if (itemobj.length && isNaN(itemobj.selectedIndex))
+    //for radio button; don't do for 'select' item
+    {
+        itemobj = itemobj[0];
+    }
+    if (!itemobj)
+    {
+        alert("Error: Couldnot get the input object named: " + itemname);
+        return;
+    }
+    if (true == this.validate_on_killfocus)
+    {
+        itemobj.onblur = handle_item_on_killfocus;
+    }
+    if (!itemobj.validationset)
+    {
+        itemobj.validationset = new ValidationSet(itemobj, this.show_errors_together);
+    }
+    itemobj.validationset.add(descriptor, errstr, condition);
+    itemobj.validatorobj = this;
+}
+
+function handle_item_on_killfocus()
+{
+    if (this.validatorobj.focus_disable_validations == true)
+    {
+        /*  
+        To avoid repeated looping message boxes
+        */
+        this.validatorobj.focus_disable_validations = false;
+        return false;
+    }
+
+    if (null != this.validationset)
+    {
+        document.error_disp_handler.clear_msgs();
+        if (false == this.validationset.validate())
+        {
+            document.error_disp_handler.FinalShowMsg();
+            return false;
+        }
+    }
+}
+
+function validator_enable_OPED()
+{
+    document.error_disp_handler.EnableOnPageDisplay(false);
+}
+
+function validator_enable_OPED_SB()
+{
+    document.error_disp_handler.EnableOnPageDisplay(true);
+}
+
+function sfm_ErrorDisplayHandler()
+{
+    this.msgdisplay = new AlertMsgDisplayer();
+    this.EnableOnPageDisplay = edh_EnableOnPageDisplay;
+    this.ShowMsg = edh_ShowMsg;
+    this.FinalShowMsg = edh_FinalShowMsg;
+    this.all_msgs = new Array();
+    this.clear_msgs = edh_clear_msgs;
+}
+
+function edh_clear_msgs()
+{
+    this.msgdisplay.clearmsg(this.all_msgs);
+    this.all_msgs = new Array();
+}
+
+function edh_FinalShowMsg()
+{
+    if (this.all_msgs.length == 0)
+    {
+        return;
+    }
+    this.msgdisplay.showmsg(this.all_msgs);
+}
+
+function edh_EnableOnPageDisplay(single_box)
+{
+    if (true == single_box)
+    {
+        this.msgdisplay = new SingleBoxErrorDisplay();
+    }
+    else
+    {
+        this.msgdisplay = new DivMsgDisplayer();
+    }
+}
+
+function edh_ShowMsg(msg, input_element)
+{
+    var objmsg = new Array();
+    objmsg["input_element"] = input_element;
+    objmsg["msg"] = msg;
+    this.all_msgs.push(objmsg);
+}
+
+function AlertMsgDisplayer()
+{
+    this.showmsg = alert_showmsg;
+    this.clearmsg = alert_clearmsg;
+}
+
+function alert_clearmsg(msgs)
+{
+
+}
+
+function alert_showmsg(msgs)
+{
+    var whole_msg = "";
+    var first_elmnt = null;
+    for (var m = 0; m < msgs.length; m++)
+    {
+        if (null == first_elmnt)
+        {
+            first_elmnt = msgs[m]["input_element"];
+        }
+        whole_msg += msgs[m]["msg"] + "\n";
+    }
+
+    alert(whole_msg);
+
+    if (null != first_elmnt)
+    {
+        sfm_set_focus(first_elmnt);
+    }
+}
+
+function sfm_show_error_msg(msg, input_elmt)
+{
+    document.error_disp_handler.ShowMsg(msg, input_elmt);
+}
+
+function SingleBoxErrorDisplay()
+{
+    this.showmsg = sb_div_showmsg;
+    this.clearmsg = sb_div_clearmsg;
+}
+
+function sb_div_clearmsg(msgs)
+{
+    var divname = form_error_div_name(msgs);
+    sfm_show_div_msg(divname, "");
+}
+
+function sb_div_showmsg(msgs)
+{
+    var whole_msg = "<ul>\n";
+    for (var m = 0; m < msgs.length; m++)
+    {
+        whole_msg += "<li>" + msgs[m]["msg"] + "</li>\n";
+    }
+    whole_msg += "</ul>";
+    var divname = form_error_div_name(msgs);
+    var anc_name = divname + "_loc";
+    whole_msg = "<a name='" + anc_name + "' >" + whole_msg;
+
+    sfm_show_div_msg(divname, whole_msg);
+
+    window.location.hash = anc_name;
+}
+
+function form_error_div_name(msgs)
+{
+    var input_element = null;
+
+    for (var m in msgs)
+    {
+        input_element = msgs[m]["input_element"];
+        if (input_element)
+        {
+            break;
+        }
+    }
+
+    var divname = "";
+    if (input_element)
+    {
+        divname = input_element.form._sfm_form_name + "_errorloc";
+    }
+
+    return divname;
+}
+
+function sfm_show_div_msg(divname,msgstring)
+{
+   if(divname.length<=0) return false;
+
+   if(document.layers)
+   {
+      divlayer = document.layers[divname];
+        if(!divlayer){return;}
+      divlayer.document.open();
+      divlayer.document.write(msgstring);
+      divlayer.document.close();
+   }
+   else
+   if(document.all)
+   {
+      divlayer = document.all[divname];
+        if(!divlayer){return;}
+      divlayer.innerHTML=msgstring;
+   }
+   else
+   if(document.getElementById)
+   {
+      divlayer = document.getElementById(divname);
+        if(!divlayer){return;}
+      divlayer.innerHTML =msgstring;
+   }
+   divlayer.style.visibility="visible";   
+   return false;
+}
+
+function DivMsgDisplayer()
+{
+    this.showmsg = div_showmsg;
+    this.clearmsg = div_clearmsg;
+}
+
+function div_clearmsg(msgs)
+{
+    for (var m in msgs)
+    {
+        var divname = element_div_name(msgs[m]["input_element"]);
+        show_div_msg(divname, "");
+    }
+}
+
+function element_div_name(input_element)
+{
+    var divname = input_element.form._sfm_form_name + "_" + input_element.name + "_errorloc";
+
+    divname = divname.replace(/[\[\]]/gi, "");
+
+    return divname;
+}
+
+function div_showmsg(msgs)
+{
+    var whole_msg;
+    var first_elmnt = null;
+    for (var m in msgs)
+    {
+        if (null == first_elmnt)
+        {
+            first_elmnt = msgs[m]["input_element"];
+        }
+        var divname = element_div_name(msgs[m]["input_element"]);
+        show_div_msg(divname, msgs[m]["msg"]);
+    }
+    if (null != first_elmnt)
+    {
+        sfm_set_focus(first_elmnt);
+    }
+}
+
+function show_div_msg(divname, msgstring)
+{
+    if (divname.length <= 0) return false;
+
+    if (document.layers)
+    {
+        divlayer = document.layers[divname];
+        if (!divlayer)
+        {
+            return;
+        }
+        divlayer.document.open();
+        divlayer.document.write(msgstring);
+        divlayer.document.close();
+    }
+    else if (document.all)
+    {
+        divlayer = document.all[divname];
+        if (!divlayer)
+        {
+            return;
+        }
+        divlayer.innerHTML = msgstring;
+    }
+    else if (document.getElementById)
+    {
+        divlayer = document.getElementById(divname);
+        if (!divlayer)
+        {
+            return;
+        }
+        divlayer.innerHTML = msgstring;
+    }
+    divlayer.style.visibility = "visible";
+}
+
+function ValidationDesc(inputitem, desc, error, condition)
+{
+    this.desc = desc;
+    this.error = error;
+    this.itemobj = inputitem;
+    this.condition = condition;
+    this.validate = vdesc_validate;
+}
+
+function vdesc_validate()
+{
+    if (this.condition != null)
+    {
+        if (!eval(this.condition))
+        {
+            return true;
+        }
+    }
+    if (!validateInput(this.desc, this.itemobj, this.error))
+    {
+        this.itemobj.validatorobj.focus_disable_validations = true;
+        sfm_set_focus(this.itemobj);
+        return false;
+    }
+
+    return true;
+}
+
+function ValidationSet(inputitem, msgs_together)
+{
+    this.vSet = new Array();
+    this.add = add_validationdesc;
+    this.validate = vset_validate;
+    this.itemobj = inputitem;
+    this.msgs_together = msgs_together;
+}
+
+function add_validationdesc(desc, error, condition)
+{
+    this.vSet[this.vSet.length] =
+    new ValidationDesc(this.itemobj, desc, error, condition);
+}
+
+function vset_validate()
+{
+    var bRet = true;
+    for (var itr = 0; itr < this.vSet.length; itr++)
+    {
+        bRet = bRet && this.vSet[itr].validate();
+        if (!bRet && !this.msgs_together)
+        {
+            break;
+        }
+    }
+    return bRet;
+}
+
+/*  checks the validity of an email address entered 
+*   returns true or false 
+*/
+function validateEmail(email)
+{
+    var splitted = email.match("^(.+)@(.+)$");
+    if (splitted == null) return false;
+    if (splitted[1] != null)
+    {
+        var regexp_user = /^\"?[\w-_\.]*\"?$/;
+        if (splitted[1].match(regexp_user) == null) return false;
+    }
+    if (splitted[2] != null)
+    {
+        var regexp_domain = /^[\w-\.]*\.[A-Za-z]{2,4}$/;
+        if (splitted[2].match(regexp_domain) == null)
+        {
+            var regexp_ip = /^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
+            if (splitted[2].match(regexp_ip) == null) return false;
+        } // if
+        return true;
+    }
+    return false;
+}
+
+function TestComparison(objValue, strCompareElement, strvalidator, strError)
+{
+    var bRet = true;
+    var objCompare = null;
+    if (!objValue.form)
+    {
+        sfm_show_error_msg("Error: No Form object!", objValue);
+        return false
+    }
+    objCompare = objValue.form.elements[strCompareElement];
+    if (!objCompare)
+    {
+        sfm_show_error_msg("Error: Element with name" + strCompareElement + " not found !", objValue);
+        return false;
+    }
+
+    var objval_value = objValue.value;
+    var objcomp_value = objCompare.value;
+
+    if (strvalidator != "eqelmnt" && strvalidator != "neelmnt")
+    {
+        objval_value = objval_value.replace(/\,/g, "");
+        objcomp_value = objcomp_value.replace(/\,/g, "");
+
+        if (isNaN(objval_value))
+        {
+            sfm_show_error_msg(objValue.name + ": Should be a number ", objValue);
+            return false;
+        } //if 
+        if (isNaN(objcomp_value))
+        {
+            sfm_show_error_msg(objCompare.name + ": Should be a number ", objCompare);
+            return false;
+        } //if    
+    } //if
+    var cmpstr = "";
+    switch (strvalidator)
+    {
+    case "eqelmnt":
+        {
+            if (objval_value != objcomp_value)
+            {
+                cmpstr = " should be equal to ";
+                bRet = false;
+            } //if
+            break;
+        } //case
+    case "ltelmnt":
+        {
+            if (eval(objval_value) >= eval(objcomp_value))
+            {
+                cmpstr = " should be less than ";
+                bRet = false;
+            }
+            break;
+        } //case
+    case "leelmnt":
+        {
+            if (eval(objval_value) > eval(objcomp_value))
+            {
+                cmpstr = " should be less than or equal to";
+                bRet = false;
+            }
+            break;
+        } //case     
+    case "gtelmnt":
+        {
+            if (eval(objval_value) <= eval(objcomp_value))
+            {
+                cmpstr = " should be greater than";
+                bRet = false;
+            }
+            break;
+        } //case
+    case "geelmnt":
+        {
+            if (eval(objval_value) < eval(objcomp_value))
+            {
+                cmpstr = " should be greater than or equal to";
+                bRet = false;
+            }
+            break;
+        } //case
+    case "neelmnt":
+        {
+            if (objval_value.length > 0 && objcomp_value.length > 0 && objval_value == objcomp_value)
+            {
+                cmpstr = " should be different from ";
+                bRet = false;
+            } //if
+            break;
+        }
+    } //switch
+    if (bRet == false)
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = objValue.name + cmpstr + objCompare.name;
+        } //if
+        sfm_show_error_msg(strError, objValue);
+    } //if
+    return bRet;
+}
+
+function TestSelMin(objValue, strMinSel, strError)
+{
+    var bret = true;
+    var objcheck = objValue.form.elements[objValue.name];
+    var chkcount = 0;
+    if (objcheck.length)
+    {
+        for (var c = 0; c < objcheck.length; c++)
+        {
+            if (objcheck[c].checked == "1")
+            {
+                chkcount++;
+            } //if
+        } //for
+    }
+    else
+    {
+        chkcount = (objcheck.checked == "1") ? 1 : 0;
+    }
+    var minsel = eval(strMinSel);
+    if (chkcount < minsel)
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = "Please Select atleast" + minsel + " check boxes for" + objValue.name;
+        } //if                                                               
+        sfm_show_error_msg(strError, objValue);
+        bret = false;
+    }
+    return bret;
+}
+
+function TestSelMax(objValue, strMaxSel, strError)
+{
+    var bret = true;
+    var objcheck = objValue.form.elements[objValue.name];
+    var chkcount = 0;
+    if (objcheck.length)
+    {
+        for (var c = 0; c < objcheck.length; c++)
+        {
+            if (objcheck[c].checked == "1")
+            {
+                chkcount++;
+            } //if
+        } //for
+    }
+    else
+    {
+        chkcount = (objcheck.checked == "1") ? 1 : 0;
+    }
+    var maxsel = eval(strMaxSel);
+    if (chkcount > maxsel)
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = "Please Select atmost " + maxsel + " check boxes for" + objValue.name;
+        } //if                                                               
+        sfm_show_error_msg(strError, objValue);
+        bret = false;
+    }
+    return bret;
+}
+
+function IsCheckSelected(objValue, chkValue)
+{
+    var selected = false;
+    var objcheck = objValue.form.elements[objValue.name];
+    if (objcheck.length)
+    {
+        var idxchk = -1;
+        for (var c = 0; c < objcheck.length; c++)
+        {
+            if (objcheck[c].value == chkValue)
+            {
+                idxchk = c;
+                break;
+            } //if
+        } //for
+        if (idxchk >= 0)
+        {
+            if (objcheck[idxchk].checked == "1")
+            {
+                selected = true;
+            }
+        } //if
+    }
+    else
+    {
+        if (objValue.checked == "1")
+        {
+            selected = true;
+        } //if
+    } //else  
+    return selected;
+}
+
+function TestDontSelectChk(objValue, chkValue, strError)
+{
+    var pass = true;
+    pass = IsCheckSelected(objValue, chkValue) ? false : true;
+
+    if (pass == false)
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = "Can't Proceed as you selected " + objValue.name;
+        } //if          
+        sfm_show_error_msg(strError, objValue);
+
+    }
+    return pass;
+}
+
+function TestShouldSelectChk(objValue, chkValue, strError)
+{
+    var pass = true;
+
+    pass = IsCheckSelected(objValue, chkValue) ? true : false;
+
+    if (pass == false)
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = "You should select" + objValue.name;
+        } //if          
+        sfm_show_error_msg(strError, objValue);
+
+    }
+    return pass;
+}
+
+function TestRequiredInput(objValue, strError)
+{
+    var ret = true;
+    if (VWZ_IsEmpty(objValue.value))
+    {
+        ret = false;
+    } //if 
+    else if (objValue.getcal && !objValue.getcal())
+    {
+        ret = false;
+    }
+
+    if (!ret)
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = objValue.name + " : Required Field";
+        } //if 
+        sfm_show_error_msg(strError, objValue);
+    }
+    return ret;
+}
+
+function TestFileExtension(objValue, cmdvalue, strError)
+{
+    var ret = false;
+    var found = false;
+
+    if (objValue.value.length <= 0)
+    { //The 'required' validation is not done here
+        return true;
+    }
+
+    var extns = cmdvalue.split(";");
+    for (var i = 0; i < extns.length; i++)
+    {
+        ext = objValue.value.substr(objValue.value.length - extns[i].length, extns[i].length);
+        ext = ext.toLowerCase();
+        if (ext == extns[i])
+        {
+            found = true;
+            break;
+        }
+    }
+    if (!found)
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = objValue.name + " allowed file extensions are: " + cmdvalue;
+        } //if 
+        sfm_show_error_msg(strError, objValue);
+        ret = false;
+    }
+    else
+    {
+        ret = true;
+    }
+    return ret;
+}
+
+function TestMaxLen(objValue, strMaxLen, strError)
+{
+    var ret = true;
+    if (eval(objValue.value.length) > eval(strMaxLen))
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = objValue.name + " : " + strMaxLen + " characters maximum ";
+        } //if 
+        sfm_show_error_msg(strError, objValue);
+        ret = false;
+    } //if 
+    return ret;
+}
+
+function TestMinLen(objValue, strMinLen, strError)
+{
+    var ret = true;
+    if (eval(objValue.value.length) < eval(strMinLen))
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = objValue.name + " : " + strMinLen + " characters minimum  ";
+        } //if               
+        sfm_show_error_msg(strError, objValue);
+        ret = false;
+    } //if 
+    return ret;
+}
+
+function TestInputType(objValue, strRegExp, strError, strDefaultError)
+{
+    var ret = true;
+
+    var charpos = objValue.value.search(strRegExp);
+    if (objValue.value.length > 0 && charpos >= 0)
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = strDefaultError;
+        } //if 
+        sfm_show_error_msg(strError, objValue);
+        ret = false;
+    } //if 
+    return ret;
+}
+
+function TestEmail(objValue, strError)
+{
+    var ret = true;
+    if (objValue.value.length > 0 && !validateEmail(objValue.value))
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = objValue.name + ": Enter a valid Email address ";
+        } //if                                               
+        sfm_show_error_msg(strError, objValue);
+        ret = false;
+    } //if 
+    return ret;
+}
+
+function TestLessThan(objValue, strLessThan, strError)
+{
+    var ret = true;
+    var obj_value = objValue.value.replace(/\,/g, "");
+    strLessThan = strLessThan.replace(/\,/g, "");
+
+    if (isNaN(obj_value))
+    {
+        sfm_show_error_msg(objValue.name + ": Should be a number ", objValue);
+        ret = false;
+    } //if 
+    else if (eval(obj_value) >= eval(strLessThan))
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = objValue.name + " : value should be less than " + strLessThan;
+        } //if               
+        sfm_show_error_msg(strError, objValue);
+        ret = false;
+    } //if   
+    return ret;
+}
+
+function TestGreaterThan(objValue, strGreaterThan, strError)
+{
+    var ret = true;
+    var obj_value = objValue.value.replace(/\,/g, "");
+    strGreaterThan = strGreaterThan.replace(/\,/g, "");
+
+    if (isNaN(obj_value))
+    {
+        sfm_show_error_msg(objValue.name + ": Should be a number ", objValue);
+        ret = false;
+    } //if 
+    else if (eval(obj_value) <= eval(strGreaterThan))
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = objValue.name + " : value should be greater than " + strGreaterThan;
+        } //if               
+        sfm_show_error_msg(strError, objValue);
+        ret = false;
+    } //if  
+    return ret;
+}
+
+function TestRegExp(objValue, strRegExp, strError)
+{
+    var ret = true;
+    if (objValue.value.length > 0 && !objValue.value.match(strRegExp))
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = objValue.name + ": Invalid characters found ";
+        } //if                                                               
+        sfm_show_error_msg(strError, objValue);
+        ret = false;
+    } //if 
+    return ret;
+}
+
+function TestDontSelect(objValue, dont_sel_value, strError)
+{
+    var ret = true;
+    if (objValue.value == null)
+    {
+        sfm_show_error_msg("Error: dontselect command for non-select Item", objValue);
+        ret = false;
+    }
+    else if (objValue.value == dont_sel_value)
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = objValue.name + ": Please Select one option ";
+        } //if                                                               
+        sfm_show_error_msg(strError, objValue);
+        ret = false;
+    }
+    return ret;
+}
+
+function TestSelectOneRadio(objValue, strError)
+{
+    var objradio = objValue.form.elements[objValue.name];
+    var one_selected = false;
+    for (var r = 0; r < objradio.length; r++)
+    {
+        if (objradio[r].checked == "1")
+        {
+            one_selected = true;
+            break;
+        }
+    }
+    if (false == one_selected)
+    {
+        if (!strError || strError.length == 0)
+        {
+            strError = "Please select one option from " + objValue.name;
+        }
+        sfm_show_error_msg(strError, objValue);
+    }
+    return one_selected;
+}
+
+function TestSelectRadio(objValue, cmdvalue, strError, testselect)
+{
+    var objradio = objValue.form.elements[objValue.name];
+    var selected = false;
+
+    for (var r = 0; r < objradio.length; r++)
+    {
+        if (objradio[r].value == cmdvalue && objradio[r].checked == "1")
+        {
+            selected = true;
+            break;
+        }
+    }
+    if (testselect == true && false == selected || testselect == false && true == selected)
+    {
+        sfm_show_error_msg(strError, objValue);
+        return false;
+    }
+    return true;
+}
+
+
+//*  Checks each field in a form 
+
+
+function validateInput(strValidateStr, objValue, strError)
+{
+
+    var ret = true;
+    var epos = strValidateStr.search("=");
+    var command = "";
+    var cmdvalue = "";
+    if (epos >= 0)
+    {
+        command = strValidateStr.substring(0, epos);
+        cmdvalue = strValidateStr.substr(epos + 1);
+    }
+    else
+    {
+        command = strValidateStr;
+    }
+
+    switch (command)
+    {
+    case "req":
+    case "required":
+        {
+            ret = TestRequiredInput(objValue, strError)
+            break;
+        }
+    case "maxlength":
+    case "maxlen":
+        {
+            ret = TestMaxLen(objValue, cmdvalue, strError)
+            break;
+        }
+    case "minlength":
+    case "minlen":
+        {
+            ret = TestMinLen(objValue, cmdvalue, strError)
+            break;
+        }
+    case "alnum":
+    case "alphanumeric":
+        {
+            ret = TestInputType(objValue, "[^A-Za-z0-9]", strError, objValue.name + ": Only alpha-numeric characters allowed ");
+            break;
+        }
+    case "alnum_s":
+    case "alphanumeric_space":
+        {
+            ret = TestInputType(objValue, "[^A-Za-z0-9\\s]", strError, objValue.name + ": Only alpha-numeric characters and space allowed ");
+            break;
+        }
+    case "num":
+    case "numeric":
+    case "dec": 
+    case "decimal": 
+        {
+            if (objValue.value.length > 0 && !objValue.value.match(/^[\-\+]?[\d\,]*\.?[\d]*$/))
+            {
+                sfm_show_error_msg(strError, objValue);
+                ret = false;
+            } //if 
+            break;
+        }
+    case "alphabetic":
+    case "alpha":
+        {
+            ret = TestInputType(objValue, "[^A-Za-z]", strError, objValue.name + ": Only alphabetic characters allowed ");
+            break;
+        }
+    case "alphabetic_space":
+    case "alpha_s":
+        {
+            ret = TestInputType(objValue, "[^A-Za-z\\s]", strError, objValue.name + ": Only alphabetic characters and space allowed ");
+            break;
+        }
+    case "email":
+        {
+            ret = TestEmail(objValue, strError);
+            break;
+        }
+    case "lt":
+    case "lessthan":
+        {
+            ret = TestLessThan(objValue, cmdvalue, strError);
+            break;
+        }
+    case "gt":
+    case "greaterthan":
+        {
+            ret = TestGreaterThan(objValue, cmdvalue, strError);
+            break;
+        }
+    case "regexp":
+        {
+            ret = TestRegExp(objValue, cmdvalue, strError);
+            break;
+        }
+    case "dontselect":
+        {
+            ret = TestDontSelect(objValue, cmdvalue, strError)
+            break;
+        }
+    case "dontselectchk":
+        {
+            ret = TestDontSelectChk(objValue, cmdvalue, strError)
+            break;
+        }
+    case "shouldselchk":
+        {
+            ret = TestShouldSelectChk(objValue, cmdvalue, strError)
+            break;
+        }
+    case "selmin":
+        {
+            ret = TestSelMin(objValue, cmdvalue, strError);
+            break;
+        }
+    case "selmax":
+        {
+            ret = TestSelMax(objValue, cmdvalue, strError);
+            break;
+        }
+    case "selone_radio":
+    case "selone":
+        {
+            ret = TestSelectOneRadio(objValue, strError);
+            break;
+        }
+    case "dontselectradio":
+        {
+            ret = TestSelectRadio(objValue, cmdvalue, strError, false);
+            break;
+        }
+    case "selectradio":
+        {
+            ret = TestSelectRadio(objValue, cmdvalue, strError, true);
+            break;
+        }
+        //Comparisons
+    case "eqelmnt":
+    case "ltelmnt":
+    case "leelmnt":
+    case "gtelmnt":
+    case "geelmnt":
+    case "neelmnt":
+        {
+            return TestComparison(objValue, cmdvalue, command, strError);
+            break;
+        }
+    case "req_file":
+        {
+            ret = TestRequiredInput(objValue, strError);
+            break;
+        }
+    case "file_extn":
+        {
+            ret = TestFileExtension(objValue, cmdvalue, strError);
+            break;
+        }
+
+    } //switch 
+    return ret;
+}
+
+function VWZ_IsListItemSelected(listname, value)
+{
+    for (var i = 0; i < listname.options.length; i++)
+    {
+        if (listname.options[i].selected == true && listname.options[i].value == value)
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
+function VWZ_IsChecked(objcheck, value)
+{
+    if (objcheck.length)
+    {
+        for (var c = 0; c < objcheck.length; c++)
+        {
+            if (objcheck[c].checked == "1" && objcheck[c].value == value)
+            {
+                return true;
+            }
+        }
+    }
+    else
+    {
+        if (objcheck.checked == "1")
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
+function sfm_str_trim(strIn)
+{
+    return strIn.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
+}
+
+function VWZ_IsEmpty(value)
+{
+    value = sfm_str_trim(value);
+    return (value.length) == 0 ? true : false;
+}
+/*
+	Copyright (C) 2003-2011 JavaScript-Coder.com . All rights reserved.
+*/
\ No newline at end of file