///////////////////////////////////////////////////////////////////
//// 
//// website utilities - njscuba.net / A.R. Galiano ( argaliano@optonline.com )
////
///////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////
//// embed flash slideshow using xhtml object standard
//// where = name of standard images directory
//// which = name of slideshow file

/*
USAGE: make sure you get the paths right:

<script type=text/javascript> // <!--
ss_flash( 600, 300, "imagedir" , "filename.xml" ) ;
// --> </script>

*/

function ss_flash( width, height, where, which )
{
debug = 0 ;
if(debug) document.write( "<textarea rows='50' cols='100'>" ) ;
document.write( "<object type=\"application/x-shockwave-flash\" " ) ;
document.write( "data=\"/" + where + "/monoslideshow.swf\" ") ;
document.write( "width=\"" + width + "\" ") ;
document.write( "height=\"" + height + "\" ") ;
document.write( "id=\"" + which + "\" >\n" ) ;
document.write( "<param name=\"movie\" value=\"/" + where + "/monoslideshow.swf\" />\n" ) ;
document.write( "<param name=\"flashvars\" value=\"dataFile=/" + where + "/" + which + "&showLogo=false&showVersionInfo=false\" />\n" ) ; 
document.write( "<param name=\"wmode\" value=\"transparent\" />\n" );
document.write( "<h1 style=\"text-align:center\"><a href=\"http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash\" target=\"_blank\">Adobe Flash Plugin Required - Get It</a></h1>\n" ) ;
document.write( "</object>\n" ) ;
if(debug) document.write( "</textarea>" ) ; 
if(debug) alert("flash slideshow");
}

///////////////////////////////////////////////////////////////////
//// pre-formatted embedded video player or placeholder
//// plays audio: mp3, wav, wma, mid
//// plays video: wmv, mpg, avi, mov

/*
USAGE: make sure you get the paths right:

<script type=text/javascript> // <!--
media_player( "imagedir/filename.wmv" , "autostart,loop" ) ;
// --> </script>

*/

var PlayerCount = 1 ;

function media_player( vurl, options )
  { 
  //// defaults  
  
  var autostart     = 0   ;
  var stretch       = 1   ;
  var showcontrols  = 1   ;
  var loop          = 0   ;
  var aspectratio   = 4/3 ;
  var vwidth        = 320 ; //// 320 native
  var awidth        = 450 ;
  var width               ;
  var height              ;
  var controlheight = 45  ;
  var type          = "unknown/unknown" ;
  var pid           = "" ;
  var fn            = new String( window.location ) ;
  var home          = "/" ;

  plid = "Player" + PlayerCount++ ;
  ////alert( plid ) ;

  //// options override defaults
  if( typeof( options ) != "undefined" )
    {
    if ( options.indexOf( "loop"       ) >= 0 ) { loop         = 100000 ; }
    if ( options.indexOf( "autostart"  ) >= 0 ) { autostart    = 1 ; }
    if ( options.indexOf( "stretch"    ) >= 0 ) { autosize     = 1  ; }
    if ( options.indexOf( "widescreen" ) >= 0 ) { aspectratio  = 16/9  ; vwidth = 450 ;}
    if ( options.indexOf( "nocontrols" ) >= 0 ) { showcontrols = 0 ; controlheight = 0 ; }
    if ( options.indexOf( "slideshow"  ) >= 0 ) { showcontrols = 0 ; controlheight = 0 ; autostart = 1 ; loop = 100000 ; }
    if ( options.indexOf( "wide"       ) >= 0 ) { awidth       = 550 ; }
    }

  //// get mime type
  if     ( typeof( vurl ) == "undefined" ) { vurl = "" ; }
  
  if     ( vurl.indexOf( ".mp3"  ) >= 0 )  { type = "audio/mpeg"      ; width = awidth ; height = 0 ; }
  else if( vurl.indexOf( ".wav"  ) >= 0 )  { type = "audio/x-wav"     ; width = awidth ; height = 0 ; }
  else if( vurl.indexOf( ".wma"  ) >= 0 )  { type = "audio/x-ms-wmv"  ; width = awidth ; height = 0 ; }
  else if( vurl.indexOf( ".mid"  ) >= 0 )  { type = "audio/x-midi"    ; width = awidth ; height = 0 ; }

  else if( vurl.indexOf( ".wmv"  ) >= 0 )  { type = "video/x-ms-wmv"  ; width = vwidth ; height = width / aspectratio ; }
  else if( vurl.indexOf( ".mpg"  ) >= 0 )  { type = "video/mpeg"      ; width = vwidth ; height = width / aspectratio ; }
  else if( vurl.indexOf( ".mpeg" ) >= 0 )  { type = "video/mpeg"      ; width = vwidth ; height = width / aspectratio ; }
  else if( vurl.indexOf( ".avi"  ) >= 0 )  { type = "video/avi"       ; width = vwidth ; height = width / aspectratio ; }
  else if( vurl.indexOf( ".mov"  ) >= 0 )  { type = "video/quicktime" ; width = vwidth ; height = width / aspectratio ; }

  vurl = home + vurl ;
  height += controlheight ;

  ////document.writeln( '<textarea style="width:500px;height:500px;">' ) ; //// sanity check
  document.writeln( '<object ' ) ;
  document.writeln( 'id="' + plid + '" ' ) ;
  document.writeln( ' type="' + type + '" ' ) ;
  //document.writeln( ' data="' + vurl + '" ' ) ; //// preload! performance impact on slow conxns
  if( navigator.userAgent.indexOf("Firefox") == -1 ) document.writeln( ' classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" ' ) ;
  document.writeln( ' width="' + width + '" height="' + height + '" ') ;
  document.writeln( ' >' ) ;
  document.writeln( '<param name="src"            value="' + vurl         + '" />' ) ;
  document.writeln( '<param name="autostart"      value="' + autostart    + '" />' ) ;
  document.writeln( '<param name="autoplay"       value="' + autostart    + '" />' ) ;
  document.writeln( '<param name="animationstart" value="' + autostart    + '" />' ) ;
  document.writeln( '<param name="loop"           value="' + loop         + '" />' ) ;
  document.writeln( '<param name="showcontrols"   value="' + showcontrols + '" />' ) ;
  document.writeln( '<param name="controller"     value="' + showcontrols + '" />' ) ;
  document.writeln( '<param name="autosize"       value="' + stretch      + '" />' ) ;
  document.writeln( '<param name="visible"        value="1" />' ) ;
  document.writeln( '<param name="showdisplay"    value="0" />' ) ;
  document.writeln( '<param name="showstatusbar"  value="0" />' ) ;
  document.writeln( '</object>' ) ;
  //// sanity checks:
  //document.writeln( '</textarea>' ) ;
  //alert ( navigator.userAgent ) ;
  //document.writeln( "<p><a href='" + vurl + "'>" + vurl + "</a></p>" ) ; //// debug
  
  }

///////////////////////////////////////////////////////////////////
//// simple form validator

var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i ;

function checkmail(e){
  var returnval=emailfilter.test(e.value) ;
  if (returnval==false){
    alert("Please enter a valid email address.")
    e.select() ;
    e.style.background="yellow" ;
    }
  return returnval ;
  }
  
///////////////////////////////////////////////////////////////////
//// horrible form validator

function validate( theform )
  {
  var frmvalidator  = new Validator( theform );
  frmvalidator.addValidation( "FirstName", "alpha", "Please only use letters for you First Name" );
  frmvalidator.addValidation( "FirstName", "req",   "Please enter your First Name" );
  frmvalidator.addValidation( "LastName",  "alpha", "Please only use letters for your Last Name" );
  frmvalidator.addValidation( "LastName",  "req",   "Please enter your Last Name" );
  frmvalidator.addValidation( "Email",     "req",   "Please enter your Email" );
  frmvalidator.addValidation( "Email",     "email", "Please enter a correct Email" );
  frmvalidator.addValidation( "City",      "req",   "Please enter your City" );
  frmvalidator.addValidation( "State",     "req",   "Please enter your State" );
  frmvalidator.addValidation( "HomePhone", "req",   "Please enter your Phone Number" );
  frmvalidator.setAddnlValidationFunction( "DoCustomValidation" ); //// phone number
  frmvalidator.clearAllValidations();
  }
  
/*

Codes:

"req"             - required - field should not be empty
"maxlen=x"        - checks the length entered to a maximum x 
"minlen=x"        - checks the length entered to a minimum x 
"alnum"           - field is alpha or numeric 
"alnum_s"         - field is alpha, numeric or white space 
"num"             - field is numeric 
"alpha"           - field is alpha 
"alpha_s"         - field is alpha with white space 
"email"           - validates email address 
"lt=x"            - value is less than x (only for numeric fields) 
"gt=x"            - value is greater than x (only for numeric fields) 
"regexp=x"        - enter any regular expression for x, and it will validate 
"dontselect=x"    - set x = 0 if you have a select box with the first option of "-Choose One-" or a value you don't want them to select 
"dontselectchk=x" - the user should not select this checkbox; here x is the value tied to the checkbox 
"shouldselchk=x"  - the user should select the checkbox; here x is the value tied to the checkbox 
"selone_radio"    - checks to make sure at least one radio button is checked

Usage:

<form id="form1" ... </form>

<script type="text/javascript">//<!--
validate( "form1" )
//--></script>

*/
  
function Validator(frmname)
  {
  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.setAddnlValidationFunction=set_addnl_vfunction;
  this.clearAllValidations = clear_all_validations;
  this.disable_validations = false;//new
  document.error_disp_handler = new sfm_ErrorDisplayHandler();
  this.EnableOnPageErrorDisplay=validator_enable_OPED;
  this.EnableOnPageErrorDisplaySingleBox=validator_enable_OPED_SB;
  this.show_errors_together=true;
  this.EnableMsgsTogether=sfm_enable_show_msgs_together;
  }
  
function set_addnl_vfunction(functionname)
  {
  this.formobj.addnlvalidation = functionname;
  }
  
function sfm_enable_show_msgs_together()
  {
  this.show_errors_together=true;
  this.formobj.show_errors_together=true;
  }

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(!bRet)
    {
    document.error_disp_handler.FinalShowMsg();
    return false;
    }
  if(this.addnlvalidation)
    {
    str =" var ret = "+this.addnlvalidation+"()";
    eval(str);
    if(!ret) return ret;
    }
  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;
    }
  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(!itemobj.validationset)
    {
    itemobj.validationset = new ValidationSet(itemobj,this.show_errors_together);
    }
  itemobj.validationset.add(descriptor,errstr,condition);
  itemobj.validatorobj=this;
  }
  
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()
  {
  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 in msgs)
    {
    if(null == first_elmnt)
      {
      first_elmnt = msgs[m]["input_element"];
      }
   whole_msg += msgs[m]["msg"] + "\n";
   }
   alert(whole_msg);
   if(null != first_elmnt)
     {
     first_elmnt.focus();
     }
  }
  
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);
  show_div_msg(divname,"");
  }

function sb_div_showmsg(msgs)
  {
  var whole_msg="<ul>\n";
  for(var m in msgs)
    {
    whole_msg += "<li>" + msgs[m]["msg"] + "</li>\n";
    }
  whole_msg += "</ul>";
  var divname = form_error_div_name(msgs);
  show_div_msg(divname,whole_msg);
  }

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 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)
    {
    first_elmnt.focus();
    }
  }
  
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";  
  return false;
  }
  
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.disable_validations=true;
    this.itemobj.focus();
    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;
  }
  
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;
      }
    return true;
    }
  return false;
  }

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(idxchk>= 0)
      {
      if(objcheck[idxchk].checked=="1")
        {
        selected=true;
        }
      }
    }
  else
    {
    if(objValue.checked == "1")
      {
      selected=true;
      }
    }  
  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;  
      }     
    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;  
      }      
    sfm_show_error_msg(strError,objValue);
    }
    return pass;
  }
  
function TestRequiredInput(objValue,strError)
  {
  var ret = true;
  var val = objValue.value;
  val = val.replace(/^\s+|\s+$/g,"");//trim
  if(eval(val.length) == 0) 
    { 
    if(!strError || strError.length ==0) 
      { 
      strError = objValue.name + " : Required Field"; 
      }
    sfm_show_error_msg(strError,objValue); 
    ret=false; 
    }
  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 "; 
      }
    sfm_show_error_msg(strError,objValue); 
    ret = false; 
    }
  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  "; 
      }             
    sfm_show_error_msg(strError,objValue); 
    ret = false;   
    }
  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;
      }
    sfm_show_error_msg(strError,objValue); 
    ret = false; 
    }
  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 "; 
        }                                               
      sfm_show_error_msg(strError,objValue); 
      ret = false; 
      } 
  return ret;
  }
  
function TestLessThan(objValue,strLessThan,strError)
  {
  var ret = true;
  if(isNaN(objValue.value)) 
    { 
    sfm_show_error_msg(objValue.name +": Should be a number ",objValue); 
    ret = false; 
    } 
  else if(eval(objValue.value) >=  eval(strLessThan)) 
    { 
    if(!strError || strError.length ==0) 
      { 
      strError = objValue.name + " : value should be less than "+ strLessThan; 
      }               
    sfm_show_error_msg(strError,objValue); 
    ret = false;                 
    }   
  return ret;          
  }
  
function TestGreaterThan(objValue,strGreaterThan,strError)
  {
  var ret = true;
  if(isNaN(objValue.value)) 
    { 
    sfm_show_error_msg(objValue.name+": Should be a number ",objValue); 
    ret = false; 
    } 
  else if(eval(objValue.value) <=  eval(strGreaterThan)) 
    { 
    if(!strError || strError.length ==0) 
      { 
      strError = objValue.name + " : value should be greater than "+ strGreaterThan; 
      }  
    sfm_show_error_msg(strError,objValue);  
    ret = false;
    }
  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 "; 
      }                                                            
    sfm_show_error_msg(strError,objValue); 
    ret = false;                   
    }
  return ret;
  }
  
function TestDontSelect(objValue,dont_sel_index,strError)
  {
  var ret = true;
  if(objValue.selectedIndex == null) 
    { 
    sfm_show_error_msg("ERROR: dontselect command for non-select Item"); 
    ret =  false; 
    } 
  if(objValue.selectedIndex == eval(dont_sel_index)) 
    { 
    if(!strError || strError.length ==0) 
      { 
      strError = objValue.name+": Please Select one option "; 
      }//if                                                               
    sfm_show_error_msg(strError); 
    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 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 required 
    case "maxlength": 
    case "maxlen": 
      { 
      ret = TestMaxLen(objValue,cmdvalue,strError)
      break; 
      }//case maxlen 
    case "minlength": 
    case "minlen": 
      { 
      ret = TestMinLen(objValue,cmdvalue,strError)
      break; 
      }//case minlen 
    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": 
      { 
      ret = TestInputType(objValue,"[^0-9]",strError, 
      objValue.name+": Only digits allowed ");
      break;               
      }
    case "dec": 
    case "decimal": 
      { 
      ret = TestInputType(objValue,"[^0-9\.]",strError, 
      objValue.name+": Only numbers allowed ");
      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 greaterthan 
    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 "selone_radio":
      {
      ret = TestSelectOneRadio(objValue,strError);
      break;
      }     
    }
  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 DoCustomValidation() 
  {
  var frm = document.forms["form1"];
  var str = frm.customerhomephone.value;
  if(IsNumeric(str) == true) 
    {
    return true;
    } 
  else 
    {
    alert("Please enter a valid telephone number");
    return false;
    }
  }  

function IsNumeric(sText) 
  {
  var ValidChars = "0123456789.()-";
  var IsNumber=true;
  var Char;
  for (i = 0; i < sText.length && IsNumber == true; i++) 
    { 
    Char = sText.charAt(i); 
    if (ValidChars.indexOf(Char) == -1) 
      {
      IsNumber = false;
      }
    }
  return IsNumber;
  }  