/*
Copyright (c) 2009, Alon Systems, Inc. All rights reserved.
Version: 1.0
*/
/*
>>> for checkForm/checkValue

Add the following attributes to the field
necessary="1"  1 necessary - 0 - not necessary but is checked also if not empty
pattern="<Pattern>"
msg="<Error Message if False>"

Add this to the input if the field is checked after loosing focus
onChange="checkValue(this);"

>>> Patterns
Date: ^(\d\d)[-/](\d\d)[-/](\d\d(?:\d\d)?)$ - MM/DD/YYYY MM/DD/YY MM-DD-YYYY MM-DD-YY
Date: ^(\d{1,2})[-/](\d{1,2})[-/](\d{2,4})$
Date: ^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$
Email: ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$
Phone: ^((\(\d{3}\) ?)|(\d{3}[- \.]))?\d{3}[- \.]\d{4}(\s(x\d+)?){0,1}$
Zip: ^(\d{5})([-]?\d{4})?$

Add this to the javascript section
function submitForm(frm) {
  return checkForm(frm);
}

Add this to the onClick for the Form
onSubmit="return submitForm(this);"

>>> for setField
default="MM/DD/YYYY"
onFocus="setField(this,true);"
onBlur="setField(this,false);"
value="MM/DD/YYYY"
style="color:#c0c0c0;" 
*/

function setMsg(e,sText,sColor)
{
  if( e.nextSibling != null)
    e.parentNode.removeChild(e.nextSibling);
  if(sText.length==0) return;
  var el = document.createElement('font');
  el.color = sColor;
  el.appendChild(document.createTextNode('\u00a0'+sText));
  e.parentNode.appendChild(el);
}

/*
  * frm
    this form
  * bResponse
    true - OK or False will be displayed behind field (check for distroying layout)
    false - status will not be displayed
*/
function checkForm1(frm, bResponse)
{
  if( bResponse == null)
  {
     bResponse = true;
  }
  var bReturn = true;
  //for( x in frm.elements)
  for(x = 0; x < frm.elements.length;x++)
  {
    var e = frm[x];
    if( e != null)
    {
      if(e.type=='tex1t'||e.type=='passwor1d')
      {
        var bNecessary = (e.getAttribute('necessary')=="1"?true:false);
        var nLength = (document.all?e.value.length:e.textLength);
        var sMsg = checkReg(e);
        if(bNecessary && (sMsg.length>0||nLength==0))
        {
          if(sMsg!='Error (null)') alert(sMsg);
          if( bResponse) setMsg(e,'False','red');
          setTO(e.name);
          return false;
        }
        else
        {
          if( bResponse) setMsg(e,'','');
        }
      }
      else if(e.type=='select')
      {
        alert('select');
      }
    }
  }
  return bReturn;
}

//returns error msg or empty string
function checkReg(e)
{
  var sMsg = '';
  if( e != null)
  {
    var sPattern = e.getAttribute('pattern');
    var nLength = (document.all?e.value.length:e.textLength);
    sMsg = e.getAttribute('msg');
    switch(sPattern)
    {
      case 'date':
        if( e.value=='99999999' || e.value=='99/99/9999')
        {
          sMsg = '';
        }
        else if( !e.value.match(new RegExp("^(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])(19|20)\\d\\d$")) && !e.value.match(new RegExp("^(0[1-9]|1[012])[/](0[1-9]|[12][0-9]|3[01])[/](19|20)\\d\\d$")))
        {
          sMsg = 'Please fill in a correct date! MMDDYYYY or MM/DD/YYYY';
        }
        else
        {
          if(e.value.indexOf('/')==-1)
            var nDay=e.value.substr(2,2),nMonth=e.value.substr(0,2),nYear=e.value.substr(4,4);
          else
            var nDay=e.value.substr(3,2),nMonth=e.value.substr(0,2),nYear=e.value.substr(6,4);
//test for alon          var nDay=e.value.substr(2,2),nMonth=e.value.substr(0,2),nYear=e.value.substr(4,4);
          if (nDay == 31 && (nMonth == 4 || nMonth == 6 || nMonth == 9 || nMonth == 11))
            sMsg = '31st of a month with 30 days!';
          else if (nDay >= 30 && nMonth == 2)
            sMsg = 'February does not have 30th or 31st!';
          else if (nMonth == 2 && nDay == 29 && !(nYear % 4 == 0 && (nYear % 100 != 0 || nYear % 400 == 0)))
            sMsg = 'February 29th outside a leap year!';
          else
            sMsg = '';
        }
        break;
      case 'phone':
        if( !e.value.match(new RegExp("^\\d{10}(\\s[a-zA-Z0-9: ,/.]+)?$")) && !e.value.match(new RegExp("^\\d{3}[-]\\d{3}[-]\\d{4}(\\s[a-zA-Z0-9: ,/.]+)?$")))
          sMsg = 'Please fill in a correct '+(e.getAttribute('pattern')=='fax'?'fax':'phone')+'! AAACCCNNNN (ext) or AAA-CCC-NNNN (ext)';
        else
          sMsg = '';
        break;
      case 'phoneonly':
      case 'fax':
        if( !e.value.match(new RegExp("^\\d{10}$")) && !e.value.match(new RegExp("^\\d{3}[-]\\d{3}[-]\\d{4}$")))
          sMsg = 'Please fill in a correct '+(e.getAttribute('pattern')=='fax'?'fax':'phone')+'! AAACCCNNNN or AAA-CCC-NNNN';
        else
          sMsg = '';
        break;
      case 'password':
        //^\w*(?=\w*\d)(?=\w*[a-z])(?=\w*[A-Z])\w*$ needs 1 numeric 1 lower 1 upper length doesnot matter
        //^[A-Za-z0-9\$!._-]\w{6,}[A-Za-z0-9\$!._-]$ needs 1 [numeric/lower/upper/special] at start and end position and 6 digits in between
        //^[A-Za-z0-9\$!._-]{8,}$ length >= 8 lower/upper/special $!._-
        if( !e.value.match(new RegExp("^[A-Za-z0-9\$!._-]{8,}$")))
          sMsg = 'Please fill in a correct Password!\n At least 8 characters and can include the following special characters: $!,_-';
        else
          sMsg = '';
        break;
      case 'time':
        if( !e.value.match(new RegExp("^(0[0-9]|1[0-9]|2[0-3])([0-5][0-9])$") && !e.value.match(new RegExp("^(0[0-9]|1[0-9]|2[0-3])[:]([0-5][0-9])$"))))
          sMsg = 'Please fill in a correct time (24!)! HHMM or HH:MM';
        else
          sMsg = '';
        break;
      case 'float':
        if( !e.value.match(new RegExp("^\\d+(\\.[0-9]+)$"))) sMsg='Please fill in a floating number!'; else sMsg='';
        break;
      case 'numeric':
        if( !e.value.match(new RegExp("^\\d{1,10}$")))
          sMsg = 'Please fill in a number!';
        else
          sMsg = '';
        break;
      case 'zip':
        if( !e.value.match(new RegExp("^\\d{5}(\\d{4})?$")) && !e.value.match(new RegExp("^\\d{5}[-](\\d{4})?$")))
          sMsg = 'Please fill in a correct zip code! xxxxxXXXX or xxxxx-XXXX';
        else
          sMsg = '';
        break;
      case "string":
        if( !e.value.match(new RegExp("^[a-zA-Z¿¡äÄáÁëËéÉýÝÿúÚüÜíÍïÏóÓöÖñÑßüÜöÖäÄ0-9: ,/.!;]+?$")))
          sMsg = 'Please fill in a text!';
        else
          sMsg = '';
        break;
      case 'email':
        if( !e.value.match(new RegExp("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$")))
          sMsg = 'Please enter a valid email address!';
        else
          sMsg = '';
        break;
      case 'timeonly':
        if( !e.value.match(new RegExp("^([0-9]|0[0-9]|1[0-9]|2[0-3])(([.][0-5][0-9])?)$")))
          sMsg = 'Please enter a valid time! HH.MM';
        else
          sMsg = '';
        break;
      case null:
        if(sMsg!=null)
          if(sMsg.length>0) {sMsg = sMsg;}
        else
          sMsg = 'Error';
        break;
      default:
        break;
    }
  }
  return (sMsg==null?'Error (null)':sMsg);
}

/*      if( e.type == 'text'||e.type=='password')
      {
        var bNecessary = (e.getAttribute('necessary')=="1"?true:false);
        var sPattern = e.getAttribute('pattern');
        var bFixed = (e.value.indexOf('\\')>0?false:true);
        var nLength = (document.all?e.value.length:e.textLength);
        var sMsg = e.getAttribute('msg');
        if(bFixed&&sPattern!=null)
        {
          if(!formatInput(e)||(bNecessary&&nLength==0))
          {
            alert(e.name);
            bReturn = false;
          }
        }
        else
        {
          if(bNecessary || (!bNecessary && sPattern != null && nLength > 0 ))
          {
            var sValue = e.value;
            if(nLength >= 0)
            {
              var RegExPattern = sPattern;
              if (!sValue.match(RegExPattern))
              {
                alert(sMsg);
                if( bResponse)
                  setMsg(e,'False','red');
                setTO(e.name);
                bReturn = false;
              } else {
                if( bResponse)
                  setMsg(e,'OK','green');
              }
            }
            else
            {
              //Needs message that necessary and empty!
              alert(sMsg);
              if( bResponse)
                setMsg(e,'False','red');
              setTO(e.name);
              bReturn = false;
            }
          }
        }
      }
      else
      {
          bReturn = false;
      }
    }
  }
}
*/

function checkForm(frm, bResponse)
{
  if( bResponse == null)
  {
     bResponse = true;
  }
  var bReturn = true;
  for( x in frm.elements)
  {
  var e = frm[x];
    if( e != null)
    {
      if( e.type == "text"||e.type=="password")
      {
        if(e.getAttribute('necessary') == "1" || (e.getAttribute('necessary') == "0" && e.getAttribute('pattern') != null && e.value.length > 0 ))
        {
          if(e.value != e.getAttribute('default'))
          {
          if(e.value.length >= 0)
          {
            var RegExPattern = e.getAttribute('pattern');
            if (!e.value.match(RegExPattern))
            {
              alert(e.getAttribute("msg"));
              if( bResponse)
              {
                if( e.nextSibling != null)
                  e.parentNode.removeChild(e.nextSibling);
                var el = document.createElement('font');
                el.color = 'red';
                el.appendChild(document.createTextNode('\u00a0False'));
                e.parentNode.appendChild(el);
              }
              setTO(e.name);
              bReturn = false;
            }
            else
            {
              if( bResponse)
              {
                if( e.nextSibling != null)
                  e.parentNode.removeChild(e.nextSibling);
                var el = document.createElement('font');
                el.color = 'green';
                el.appendChild(document.createTextNode('\u00a0OK'));
                e.parentNode.appendChild(el);
              }
            }
          }
          else
          {
            bReturn = false;
          }
          }
        }
        else
        {
          bReturn = false;
        }
      }
    }
  }
  return bReturn;
}

function checkValue(e, bResponse)
{
  if( bResponse == null) bResponse = true;
  if( e != null)
  {
    if( e.type == "text")
    {
      if((e.getAttribute('necessary') == "1" && e.value != e.getAttribute('default')) || (e.getAttribute('necessary') == "0" && e.getAttribute('pattern') != null && e.value.length > 0 && e.value != e.getAttribute('default')))
      {
        if( e.value.length >= 0)
        {
          var sPattern = e.getAttribute("pattern");
          if( sPattern != null)
          {
            var fieldLength = (document.all?e.value.length:e.textLength); //check for IE
            if(sPattern == "date")
            {
              var sPattern = new RegExp("^(0[1-9]|1[012])(([/](0[1-9]|[12][0-9]|3[01])[/])|(0[1-9]|[12][0-9]|3[01]))((19|20)\\d\\d)$");
              if(( e.value.match(sPattern) || e.value=='99999999') && fieldLength > 0)
              {
                var nDay = (e.value.indexOf('/')==-1?e.value.substr(2,2):e.value.substr(3,2));
                var nMonth = (e.value.indexOf('/')==-1?e.value.substr(0,2):e.value.substr(0,2));
                var nYear = (e.value.indexOf('/')==-1?e.value.substr(4,2):e.value.substr(6,2));
                if (nDay == 31 && (nMonth == 4 || nMonth == 6 || nMonth == 9 || nMonth == 11)) {alert("31st of a month with 30 days");setTO(e.name);return false;}
                else if (nDay >= 30 && nMonth == 2) {alert("February 30th or 31st");setTO(e.name);return false;}
                else if (nMonth == 2 && nDay == 29 && !(nYear % 4 == 0 && (nYear % 100 != 0 || nYear % 400 == 0))) {alert("February 29th outside a leap year");setTO(e.name);return false;}
                else {if(e.value.indexOf('/')==-1) {e.value = e.value.substr(0,2)+'/'+e.value.substr(2,2)+'/'+e.value.substr(4,4);}; return true;}
              }
              else {if(fieldLength>0) {alert("Please fill in a correct date! MMDDYYYY or MM/DD/YYYY");setTO(e.name);return false;};}
            }
            else if(e.getAttribute("pattern") == "phone")
            {
              var sPattern = new RegExp("^\\d{3}(\\d{7})|([-]\\d{3}[-]\\d{4})(\\s[a-zA-Z0-9: ,/.]+)?$");
              if( e.value.match(sPattern) && fieldLength > 0) {if(e.value.indexOf('-')==-1) {e.value = e.value.substr(0,3)+'-'+e.value.substr(3,3)+'-'+e.value.substr(6,4)+e.value.substr(10);}; return true;}
              else {if(fieldLength>0) {alert("Please fill in a correct phone! AAACCCNNNN (ext)");setTO(e.name); return false;};}
            }
            else if(e.getAttribute("pattern") == "zip")
            {
              var sPattern = new RegExp("^\\d{5}((\\d{4})|([-]\\d{4}))?$");
              if( e.value.match(sPattern) && fieldLength > 0){if(e.value.length > 5) e.value = e.value.substr(0,5)+'-'+e.value.substr(5,4); return true;}
              else {if(fieldLength>0) {alert("Please fill in a correct zip code! xxxxXXXX");setTO(e.name);return false;}}
            }
            else
            {
              if (!e.value.match(sPattern))
              {
                alert(e.getAttribute("msg"));
                if( bResponse)
                {
                  if( e.nextSibling != null) e.parentNode.removeChild(e.nextSibling);
                  var el = document.createElement('font');
                  el.color = 'red';
                  el.appendChild(document.createTextNode('\u00a0False'));
                  e.parentNode.appendChild(el);
                }
                setTO(e.name);
                return false;
              }
              else
              {
                if( bResponse)
                {
                  if( e.nextSibling != null) e.parentNode.removeChild(e.nextSibling);
                  var el = document.createElement('font');
                  el.color = 'red';
                  el.appendChild(document.createTextNode('\u00a0OK'));
                  e.parentNode.appendChild(el);
                }
                return true;
              }
            }
          }
        }
      }
    }
  }
}

function setField(e,bFocus)
{
  var sDef = e.getAttribute('default');
  if(bFocus)
  {
    e.value=(e.value=='' || e.value==sDef?'':e.value);
    e.style.color='#000000';
  }
  else
  {
    if(e.value == '' || e.value == sDef)
    {
      e.style.color = '#c0c0c0';
      e.value = sDef;
    }
    else
    {
      e.style.color = '#000000';
    }
  }
}

document.getElementsByClassName = function(class_name) {
    var docList = this.all || this.getElementsByTagName('*');
    var matchArray = new Array();

    /*Create a regular expression object for class*/
    var re = new RegExp("(?:^|\\s)"+class_name+"(?:\\s|$)");
    for (var i = 0; i < docList.length; i++) {
        if (re.test(docList[i].className) ) {
            matchArray[matchArray.length] = docList[i];
        }
    }

	return matchArray;
}//eof annonymous function

document.getElementsByClassName111 = function(clsName)
{
  var retVal = new Array();
  var elements = document.getElementsByTagName("*");
  for(var i = 0;i < elements.length;i++)
  {
    if(elements[i].className.indexOf(" ") >= 0)
    {
      var classes = elements[i].className.split(" ");
      for(var j = 0;j < classes.length;j++)
      {
        if(classes[j] == clsName)
          retVal.push(elements[i]);
      }
    }
    else if(elements[i].className == clsName)
      retVal.push(elements[i]);
  }
  return retVal;
}

// gets result of radio
function getValue(sname)
{
  for( var x=0;x<document.main.elements[sname].length;x++)
  {
    if( document.main.elements[sname][x].checked)
    {
      return document.main.elements[sname][x].value;
    }
  }
}

function formatInput(e)
{
var sValue = "";
var fieldLength = (document.all?e.value.length:e.textLength); //check for IE
  if(e.getAttribute("pattern") == "date")
  {
  var RegExPattern = new RegExp("^(0[1-9]|1[012])(([/](0[1-9]|[12][0-9]|3[01])[/])|(0[1-9]|[12][0-9]|3[01]))((19|20)\\d\\d)$");
    if(( e.value.match(RegExPattern) || e.value=='99999999') && fieldLength > 0)
    {
      if(e.value.indexOf('/')==-1) e.value = e.value.substr(0,2)+'/'+e.value.substr(2,2)+'/'+e.value.substr(4,4);
      var nDay=e.value.substr(3,2),nMonth=e.value.substr(0,2),nYear=e.value.substr(6,4);
      if (nDay == 31 && (nMonth == 4 || nMonth == 6 || nMonth == 9 || nMonth == 11))
      {
        alert("31st of a month with 30 days");
      }
      else if (nDay >= 30 && nMonth == 2)
      {
        alert("February 30th or 31st");
      }
      else if (nMonth == 2 && nDay == 29 && !(nYear % 4 == 0 && (nYear % 100 != 0 || nYear % 400 == 0)))
      {
        alert("February 29th outside a leap year");
      }
    }
    else
    {
      if( fieldLength > 0)
      {
        alert("Please fill in a correct date! MMDDYYYY");
        setTO(e.name);
        return false;
      }
    }
  }
  else if(e.getAttribute("pattern") == "email")
  {
    if( !e.value.match(new RegExp("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$")) && fieldLength > 0)
    {
      alert("Please enter a valid email address!");
      setTO(e.name);
      return false;
    }
  }
  else if(e.getAttribute("pattern") == "phone")
  {
    var RegExPattern = new RegExp("^\\d{10}(\\s[a-zA-Z0-9: ,/.]+)?$");
    if( e.value.match(RegExPattern) && fieldLength > 0)
    {
      e.value = e.value.substr(0,3)+'-'+e.value.substr(3,3)+'-'+e.value.substr(6,4)+e.value.substr(10);
    }
    else
    {
      var RegExPattern = new RegExp("^\\d{3}[-]\\d{3}[-]\\d{4}(\\s[a-zA-Z0-9: ,/.]+)?$");
      if( e.value.match(RegExPattern) && fieldLength > 0)
      {
      }
      else
      {
        if( fieldLength > 0)
        {
          alert("Please fill in a correct "+(e.getAttribute("pattern") == "fax"?"fax":"phone")+"! AAACCCNNNN (ext)");
          setTO(e.name);
          return false;
        }
      }
    }
  }
  else if(e.getAttribute("pattern") == "phoneonly" || e.getAttribute("pattern") == "fax")
  {
    if(fieldLength>0)
    {
      if(!e.value.match(new RegExp("^\\d{3}(\\d{7})|([-]\\d{3}[-]\\d{4})$")))
      {
        alert("Please fill in a correct "+(e.getAttribute("pattern") == "fax"?"fax":"phone")+"! AAACCCNNNN or AAA-CCC-NNNN");
        setTO(e.name);
        return false;
      }
      else
      {
        if(fieldLength==10 && e.value.indexOf(':')==-1)
          e.value = e.value.substr(0,3)+'-'+e.value.substr(3,3)+'-'+e.value.substr(6,4);
      }
    }
  }
  else if(e.getAttribute('pattern') == 'password')
  {
    if(fieldLength>0)
    {
      if(!e.value.match(new RegExp('^[A-Za-z0-9\$\&!._]{8,}$')))
      {
        alert('Please fill in a correct Password!\n At least 8 characters and can include the following special characters: $!,_-');
        setTO(e.name);
        return false;
      }
    }
  }
  else if(e.getAttribute('pattern') == 'string')
  {
    if(fieldLength>0)
    {
      var reg = /(\w+|[äÄÀ-ÖÑäëïöüâêîôûáàéèíìñóòßúù])/;
      if(!reg.test(e.value)){alert('Please fill in a text!');setTO(e.name);return false;}
    }
  }
  else if(e.getAttribute('pattern') == 'timeonly')
  {
    if(fieldLength>0)
    {
      if(!e.value.match(new RegExp('^([0-9]|0[0-9]|1[0-9]|2[0-3])(([.][0-5][0-9])?)$')))
      {
        alert('Please enter a valid time! HH.MM');
        setTO(e.name);
        return false;
      }
    }
  }
  else if(e.getAttribute('pattern') == 'float')
  {
    if(fieldLength>0)
    {
      //if(!e.value.match(new RegExp('^\\d+(\\.[0-9]+)$')))
      if(!/^[-+]?[0-9]+(\.[0-9]+)?$/.test(e.value)) { alert('Please fill in a number!'); setTO(e.name); return false;}
    }
  }
  else if(e.getAttribute('pattern') == 'numeric')
  {
    if(fieldLength>0)
    {
      if(!e.value.match(new RegExp('^\\d{1,10}$')))
      {
        alert('Please fill in a number!');
        setTO(e.name);
        return false;
      }
    }
  }
  else if(e.getAttribute("pattern") == "time")
  {
    if(fieldLength>0)
    {
      //if(!e.value.match(new RegExp("^(0[0-9]|1[0-9]|2[0-3])(([:])?[0-5][0-9])$")))
      //if(!e.value.match(new RegExp("^(0[0-9]|1[0-9]|2[0-3])([0-5][0-9])$")))
      if(!e.value.match(new RegExp("^([0-9]|0[0-9]|1[0-9]|2[0-3])([:]?)([0-5][0-9])(([ ][A|P|a|p][M])?)$")))
      {
        alert("Please fill in a correct time (24!)! HHMM or HH:MM");
        setTO(e.name);
        return false;
      }
      else
      {
        if(fieldLength==4 && e.value.indexOf(':')==-1)
          e.value = ((e.value.substr(0,2)*1)>12?'0'+(e.value.substr(0,2)-12):e.value.substr(0,2))+':'+e.value.substr(2,2)+' '+(e.value.substr(0,1)=='0'||(e.value.substr(0,1)=='1'&&(e.value.substr(1,1)=='0'||e.value.substr(1,1)=='1'))?'AM':'PM');
      }
    }
  }
  else if(e.getAttribute("pattern") == "zip")
  {
    if(fieldLength>0)
    {
      if(!e.value.match(new RegExp("^\\d{5}([-])?(\\d{4})?$")))
      {
        alert("Please fill in a correct zip code! xxxxxXXXX or xxxxx-XXXX");
        setTO(e.name);
        return false;
      }
      else
      {
        if(fieldLength > 5 && e.value.indexOf('-')==-1)
          e.value = e.value.substr(0,5)+'-'+e.value.substr(5,4);
      }
    }
  }
  return true;
}

function timecounter()
{
  var now = new Date();
  var sDate = ((now.getMonth()+1) < 10?"0":"") + (now.getMonth()+1) + "/" + (now.getDate() < 10?"0":"") + now.getDate()+"/" + now.getFullYear()+' ';
  var hour = now.getHours();
  if(hour < 10)
    sDate+="0"+hour;
  else if( (hour - 12) > 0)
    sDate+="0"+(hour - 12);
  else
    sDate+=hour;
  sDate+=':' + (now.getMinutes() < 10?"0":"") + now.getMinutes()+':'+(now.getSeconds() < 10?"0":"") + now.getSeconds()+' '+(now.getHours() > 11?'PM':'AM');
  document.getElementById("time").innerHTML = sDate;
  window.setTimeout("timecounter();","1000");
}

//************************************************************
//function to set Focus for field
function setTO(e){if(document.getElementById(e)){setTimeout('document.getElementById(\"'+e+'\").focus();',1);if(document.getElementById(e).type=='text') {setTimeout('document.getElementById(\"'+e+'\").select();',1);};};}
//************************************************************
// getID - short for getElementById
function getID(x) {if(typeof x =='string'){return document.getElementById(x);};return x;}
//************************************************************
// Select_Value - to set drop down in browser
function Select_Value_Set(SelectName,Value) { eval('SelectObject=getID(\''+SelectName+'\');'); for(index=0;index<SelectObject.length;index++) {if(SelectObject[index].value==Value) {SelectObject.selectedIndex=index;};};}
//************************************************************
// Select_Value - to get drop down
function Select_Value_Get(SelectName) {return (getID(SelectName)?getID(SelectName).options[getID(SelectName).selectedIndex].value:'');}
//************************************************************
// Checkbox_Value - to get checkbox
function Checkbox_Value_Get(oElement) {var aReturn=''; for (var i = 0; i < oElement.length; i++) { if(oElement[i].checked) { if(aReturn!='') aReturn+=';'; aReturn+=oElement[i].value;}} return ';'+aReturn+';';}
//************************************************************
// Radio_Value - to get radio
function Radio_Value_Get(oElement) {for (var i = 0; i < oElement.length; i++) {if(oElement[i].checked) {return oElement[i].value;};}; return '';}
//************************************************************
// Radio_Value - to set radio
function Radio_Value_Set(oElement,Value) {if(oElement) {for(x=0;x<oElement.length;x++) {oElement[x].checked=(oElement[x].value==Value);};};}
//************************************************************
// calcAge
function calcAge(sAgeValue) {
// Original:  Dev Pragad (devpragad@yahoo.com)
// Web Site:  The JavaScript Source 
  if(sAgeValue=='') return false;
  var ap;
  var formd = new Date(sAgeValue);
  var dd = formd.getDate();
  var mm = formd.getMonth()+1;
  var yy = formd.getYear();
  var sValid="valid";
  if ((mm < 1) || (mm > 12) || (dd < 1) || (dd > 31) || (yy < 1) ||(mm == "") || (dd == "") || (yy == ""))
    sValid = "Invalid";
  else if (((mm == 4) || (mm == 6) || (mm == 9) || (mm == 11)) && (dd > 30))
    sValid = "Invalid";
  else if (mm == 2) {
    if (dd > 29)
      sValid = "Invalid";
    else if(dd > 28 && !(yy %4 == 0 && (yy % 100 != 0 || yy % 400 == 0)))
      sValid="Invalid";
  } else if((yy > 9999)||(yy < 0))
    sValid = "Invalid";
  else
    sValid = sValid;
  if(sValid == "valid") {
    days = new Date();
    gdate = days.getDate();
    gmonth = days.getMonth();
    gyear = days.getYear();
    age = gyear - yy;
    if((mm == (gmonth + 1)) && (dd <= parseInt(gdate))) {
      age = age;
    } else {
      if(mm <= (gmonth)) {
        age = age;
      }
      else {
        age = age - 1; 
      }
    }
    if(age == 0)
      age = age;
    return age;
  }
}
// END Original:  Dev Pragad (devpragad@yahoo.com)
//************************************************************

//************************************************************
// inFrameset - is loaded in a frame/iframe
// { not in frame } else { in a frame }
function inFrameset() { return !(top === self);}
//************************************************************
// addToList - adds entry to list
// sBox = name of listbox
// sItem = new entry text
// sValue = new entry value
function addToList(sBox, sItem, sValue){
  var oBox = document.getElementById(sBox);
  sItem = unescape(sItem); sValue = unescape(sValue);
  if(!IsInList(oBox,sItem,sValue)) {
    var optn = document.createElement('option');
    optn.text = unescape(sItem);
    optn.value = unescape(sValue);
    oBox.options.add(optn);
  }
}
//************************************************************
// removeFromList - removes entry from list
// sBox = name of listbox
// sItem = new entry text
// sValue = new entry value
function removeFromList(sBox, sItem, sValue) {
  var oBox = document.getElementById(sBox);
  sItem = unescape(sItem); sValue = unescape(sValue);
  if(IsInList(oBox,sItem,sValue)) {
    for( var x = 0; x<oBox.options.length;x++) {
      if( sItem==oBox.options[x].text && sValue==oBox.options[x].value) oBox.remove(x);
    }
  }
}
//************************************************************
// IsInList - checks if entry in list
// oBox = listbox element
// sText = new entry text
// sValue = new entry value
function IsInList(oBox, sText, sValue) {
sText = unescape(sText); sValue = unescape(sValue);
  for( var x = 0; x < oBox.options.length; x++) {
    if( sText==oBox.options[x].text && sValue==oBox.options[x].value) return true;
  }
  return false;
}
