﻿/*
  -------------------------------------------------------------------------
	                    JavaScript Form Validator 
                                Version 2.0.2
	Copyright 2003 JavaScript-coder.com. All rights reserved.
	You use this script in your Web pages, provided these opening credit
    lines are kept intact.
	The Form validation script is distributed free from JavaScript-Coder.com

	You may please add a link to JavaScript-Coder.com, 
	making it easy for others to find this script.
	Checkout the Give a link and Get a link page:
	http://www.javascript-coder.com/links/how-to-link.php

    You may not reprint or redistribute this code without permission from 
    JavaScript-Coder.com.
	
	JavaScript Coder
	It precisely codes what you imagine!
	Grab your copy here:
		http://www.javascript-coder.com/
    -------------------------------------------------------------------------  
*/
function Validator(frmname)
{
  this.formobj=document.forms[frmname];
	if(!this.formobj)
	{
	  alert("BUG: 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.onsubmit=form_submit_handler;
	this.addValidation = add_validation;
	this.setAddnlValidationFunction=set_addnl_vfunction;
	this.clearAllValidations = clear_all_validations;
}
function set_addnl_vfunction(functionname)
{
  this.formobj.addnlvalidation = functionname;
}
function clear_all_validations()
{
	for(var itr=0;itr < this.formobj.elements.length;itr++)
	{
		this.formobj.elements[itr].validationset = null;
	}
}
function form_submit_handler()
{
	for(var itr=0;itr < this.elements.length;itr++)
	{
		if(this.elements[itr].validationset &&
	   !this.elements[itr].validationset.validate())
		{
		  return false;
		}
	}
	if(this.addnlvalidation)
	{
	  str =" var ret = "+this.addnlvalidation+"()";
	  eval(str);
    if(!ret) return ret;
	}
	return true;
}
function add_validation(itemname,descriptor,errstr)
{
  if(!this.formobj)
	{
	  alert("BUG: the form object is not set properly");
		return;
	}//if
	var itemobj = this.formobj[itemname];
  if(!itemobj)
	{
	  alert("BUG: Couldnot get the input object named: "+itemname);
		return;
	}
	if(!itemobj.validationset)
	{
	  itemobj.validationset = new ValidationSet(itemobj);
	}
  itemobj.validationset.add(descriptor,errstr);
}
function ValidationDesc(inputitem,desc,error)
{
  this.desc=desc;
	this.error=error;
	this.itemobj = inputitem;
	this.validate=vdesc_validate;
}
function vdesc_validate()
{
 if(!V2validateData(this.desc,this.itemobj,this.error))
 {
    this.itemobj.focus();
		return false;
 }
 return true;
}
function ValidationSet(inputitem)
{
    this.vSet=new Array();
	this.add= add_validationdesc;
	this.validate= vset_validate;
	this.itemobj = inputitem;
}
function add_validationdesc(desc,error)
{
  this.vSet[this.vSet.length]= 
	  new ValidationDesc(this.itemobj,desc,error);
}
function vset_validate()
{
   for(var itr=0;itr<this.vSet.length;itr++)
	 {
	   if(!this.vSet[itr].validate())
		 {
		   return false;
		 }
	 }
	 return true;
}
function validateEmailv2(email)
{
// a very simple email validation checking. 
// you can add more complex email checking if it helps 
    if(email.length <= 0)
	{
	  return true;
	}
    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 V2validateData(strValidateStr,objValue,strError) 
{ 
    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": 
         { 
           if(eval(objValue.value.length) == 0) 
           { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : Required Field"; 
              }//if 
              alert(strError); 
              return false; 
           }//if 
           break;             
         }//case required 
        case "maxlength": 
        case "maxlen": 
          { 
             if(eval(objValue.value.length) >  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : "+cmdvalue+" characters maximum "; 
               }//if 
               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
               return false; 
             }//if 
             break; 
          }//case maxlen 
        case "minlength": 
        case "minlen": 
           { 
             if(eval(objValue.value.length) <  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : " + cmdvalue + " characters minimum  "; 
               }//if               
               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
               return false;                 
             }//if 
             break; 
            }//case minlen 
        case "alnum": 
        case "alphanumeric": 
           { 
              var charpos = objValue.value.search("[^A-Za-z0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
               if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only alpha-numeric characters allowed "; 
                }//if 
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break; 
           }//case alphanumeric 
        case "num": 
        case "numeric": 
           { 
              var charpos = objValue.value.search("[^0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only digits allowed "; 
                }//if               
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break;               
           }//numeric 
        case "alphabetic": 
        case "alpha": 
           { 
              var charpos = objValue.value.search("[^A-Za-z]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only alphabetic characters allowed "; 
                }//if                             
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break; 
           }//alpha 
		case "alnumhyphen":
			{
              var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": characters allowed are A-Z,a-z,0-9,- and _"; 
                }//if                             
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 			
			break;
			}
        case "email": 
          { 
               if(!validateEmailv2(objValue.value)) 
               { 
                 if(!strError || strError.length ==0) 
                 { 
                    strError = objValue.name+": Enter a valid Email address "; 
                 }//if                                               
                 alert(strError); 
                 return false; 
               }//if 
           break; 
          }//case email 
        case "lt": 
        case "lessthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Should be a number "); 
              return false; 
            }//if 
            if(eval(objValue.value) >=  eval(cmdvalue)) 
            { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : value should be less than "+ cmdvalue; 
              }//if               
              alert(strError); 
              return false;                 
             }//if             
            break; 
         }//case lessthan 
        case "gt": 
        case "greaterthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Should be a number "); 
              return false; 
            }//if 
             if(eval(objValue.value) <=  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : value should be greater than "+ cmdvalue; 
               }//if               
               alert(strError); 
               return false;                 
             }//if             
            break; 
         }//case greaterthan 
        case "regexp": 
         { 
		 	if(objValue.value.length > 0)
			{
	            if(!objValue.value.match(cmdvalue)) 
	            { 
	              if(!strError || strError.length ==0) 
	              { 
	                strError = objValue.name+": Invalid characters found "; 
	              }//if                                                               
	              alert(strError); 
	              return false;                   
	            }//if 
			}
           break; 
         }//case regexp 
        case "dontselect": 
         { 
            if(objValue.selectedIndex == null) 
            { 
              alert("BUG: dontselect command for non-select Item"); 
              return false; 
            } 
            if(objValue.selectedIndex == eval(cmdvalue)) 
            { 
             if(!strError || strError.length ==0) 
              { 
              strError = objValue.name+": Please Select one option "; 
              }//if                                                               
              alert(strError); 
              return false;                                   
             } 
             break; 
         }//case dontselect 
    }//switch 
    return true; 
}
/*
	Copyright 2003 JavaScript-coder.com. All rights reserved.
*/

/* formValidate.js */
function Trim(TRIM_VALUE){
if(TRIM_VALUE.length < 1){
return"";
}
TRIM_VALUE = RTrim(TRIM_VALUE);
TRIM_VALUE = LTrim(TRIM_VALUE);
if(TRIM_VALUE==""){
return "";
}
else{
return TRIM_VALUE;
}
} 

function RTrim(VALUE){
var w_space = String.fromCharCode(32);
var v_length = VALUE.length;
var strTemp = "";
if(v_length < 0){
return"";
}
var iTemp = v_length -1;

while(iTemp > -1){
if(VALUE.charAt(iTemp) == w_space){
}
else{
strTemp = VALUE.substring(0,iTemp +1);
break;
}
iTemp = iTemp-1;

} 
return strTemp;

} 

function LTrim(VALUE){
var w_space = String.fromCharCode(32);
if(v_length < 1){
return"";
}
var v_length = VALUE.length;
var strTemp = "";

var iTemp = 0;

while(iTemp < v_length){
if(VALUE.charAt(iTemp) == w_space){
}
else{
strTemp = VALUE.substring(iTemp,v_length);
break;
}
iTemp = iTemp + 1;
} 
return strTemp;
} 



var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var whitespace = " \t\n\r";

var decimalPointDelimiter = "."

var phoneNumberDelimiters = "()- ";

var validUSPhoneChars = digits + phoneNumberDelimiters;

var validWorldPhoneChars = digits + phoneNumberDelimiters + "+";

var SSNDelimiters = "- ";

var validSSNChars = digits + SSNDelimiters;

var digitsInSocialSecurityNumber = 9;

var digitsInUSPhoneNumber = 10;

var ZIPCodeDelimiters = "-";

var ZIPCodeDelimeter = "-"

var validZIPCodeChars = digits + ZIPCodeDelimiters

var digitsInZIPCode1 = 5
var digitsInZIPCode2 = 9

var creditCardDelimiters = " "

function isOkBag (s, bag)

{   var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) return false;
    }
    return true;
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isWhiteSpace (s)
{   var i;

    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    return true;
}

function stripCharsInBag (s, bag)

{   var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

function stripCharsNotInBag (s, bag)

{   var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) returnString += c;
    }

    return returnString;
}

function stripWhitespace (s)

{   return stripCharsInBag (s, whitespace)
}

function charInString (c, s)
{   for (i = 0; i < s.length; i++)
    {   if (s.charAt(i) == c) return true;
    }
    return false
}

function stripInitialWhitespace (s)

{   var i = 0;

    while ((i < s.length) && charInString (s.charAt(i), whitespace))
       i++;
    
    return s.substring (i, s.length);
}

function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}



function isInteger (s)

{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);


    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    return true;
}

function isSignedInteger (s)

{   if (isEmpty(s)) 
       if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isSignedInteger.arguments[1] == true);

    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;

        if (isSignedInteger.arguments.length > 1)
            secondArg = isSignedInteger.arguments[1];

        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
           startPos = 1;    
        return (isInteger(s.substring(startPos, s.length), secondArg))
    }
}

function isPositiveInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isPositiveInteger.arguments.length > 1)
        secondArg = isPositiveInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) > 0) ) );
}

function isNonnegativeInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNonnegativeInteger.arguments.length > 1)
        secondArg = isNonnegativeInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) >= 0) ) );
}


function isNegativeInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNegativeInteger.arguments.length > 1)
        secondArg = isNegativeInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) < 0) ) );
}


function isNonpositiveInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNonpositiveInteger.arguments.length > 1)
        secondArg = isNonpositiveInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) <= 0) ) );
}


function isFloat (s)

{   var i;
    var seenDecimalPoint = false;

    if (isEmpty(s)) 
       if (isFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isFloat.arguments[1] == true);

    if (s == decimalPointDelimiter) return false;


    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if ((c == decimalPointDelimiter) && !seenDecimalPoint) seenDecimalPoint = true;
        else if (!isDigit(c)) return false;
    }

    return true;
}


function isSignedFloat (s)

{   if (isEmpty(s)) 
       if (isSignedFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isSignedFloat.arguments[1] == true);

    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;

        if (isSignedFloat.arguments.length > 1)
            secondArg = isSignedFloat.arguments[1];

        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
           startPos = 1;    
        return (isFloat(s.substring(startPos, s.length), secondArg))
    }
}


function isAlphabetic (s)

{   var i;

    if (isEmpty(s)) 
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (!isLetter(c))
        return false;
    }

    return true;
}

function isAlphanumeric (s)

{   var i;

    if (isEmpty(s)) 
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    return true;
}

function reformat (s)

{   var arg;
    var sPos = 0;
    var resultString = "";

    for (var i = 1; i < reformat.arguments.length; i++) {
       arg = reformat.arguments[i];
       if (i % 2 == 1) resultString += arg;
       else {
           resultString += s.substring(sPos, sPos + arg);
           sPos += arg;
       }
    }
    return resultString;
}

function reformatZIPCode (ZIPString)
{   if (ZIPString.length == 5) return ZIPString;
    else return (reformat (ZIPString, "", 5, "-", 4));
}

function reformatUSPhone (USPhone)
{   return (reformat (USPhone, "(", 3, ") ", 3, "-", 4))
}

function reformatSSN (SSN)
{   return (reformat (SSN, "", 3, "-", 2, "-", 4))
}

function isLeapYear(argYear) {
	return ((argYear % 4 == 0) && (argYear % 100 != 0)) || (argYear % 400 == 0) 
}

function daysInMonth(argMonth, argYear) {
	switch (Number(argMonth)) {
		case 1:		// Jan
		case 3:		// Mar
		case 5:		// May
		case 7:		// Jul
		case 8:		// Aug
		case 10:		// Oct
		case 12:		// Dec
			return 31;
			break;
		
		case 4:		// Apr
		case 6:		// Jun
		case 9:		// Sep
		case 11:		// Nov
			return 30;
			break;
		
		case 2:		// Feb
			if (isLeapYear(argYear))
				return 29
			else
				return 28
			break;
		
		default:
			return 0;
	}
}

function getDateSeparator(argDate) {
	if ((argDate.indexOf('-') > 0) && (argDate.indexOf('/') > 0))
		return ' '

	if (argDate.indexOf('-') > 0)
		return '-'
	else
		if (argDate.indexOf('/') > 0)
			return '/'
		else
			return ' '
}

function getYear(argDate) {
	var dateSep = getDateSeparator(argDate)
	
	if (dateSep == ' ')
		return 0

	if(argDate.split(dateSep).length == 3)
		return argDate.split(dateSep)[2]
	else
		return 0
}

function getMonth(argDate) {
	var dateSep = getDateSeparator(argDate)
	
	if (dateSep == ' ')
		return 0

	if(argDate.split(dateSep).length == 3)
		return argDate.split(dateSep)[0]
	else
		return 0
}

function getDay(argDate) {
	var dateSep = getDateSeparator(argDate)
	
	if (dateSep == ' ')
		return 0

	if(argDate.split(dateSep).length == 3)
		return argDate.split(dateSep)[1]
	else
		return 0
}

function isProperDay(argDay, argMonth, argYear) {
	if ((isWhiteSpace(argDay)) || (argDay == 0))
		return false

	if ((argDay > 0) && (argDay < daysInMonth(argMonth, argYear) + 1))
		return true
	else 
		return false
}

function isProperMonth(argMonth) {
	if ((isWhiteSpace(argMonth)) || (argMonth == 0))
		return false
	
	if ((argMonth > 0) && (argMonth < 13))
		return true
	else
		return false
}

function isProperYear(argYear) {
	if ((isWhiteSpace(argYear)) || (argYear.toString().length > 4) || (argYear.toString().length == 3))
		return false
	
	switch (argYear.toString().length) {
		case 1:
			if (argYear >=0 && argYear < 10)
				return true
			else
				return false
			
		case 2:
			if (argYear >=0 && argYear < 100)
				return true
			else
				return false
			
		case 4:
			if (((argYear >=1900) || (argYear >=2000)) && ((argYear < 3000) || (argYear < 2000)))
				return true
			else
				return false
		
		default:
			return false
	}
}

function isProperDate(argDate) {
	var tmpDay = getDay(argDate)
	var tmpMon = getMonth(argDate)
	var tmpYear = getYear(argDate)

	return isProperDay(tmpDay, tmpMon, tmpYear) && isProperMonth(tmpMon) && isProperYear(tmpYear)
}

function charOccurences(argString, argChar) {
	var intCt = 0

	for(var intI=0; intI < argString.length; intI++)
		if (argString.charAt(intI) == argChar)
			intCt++
	
	return intCt
}

function isProperEmail(argEmail) {
	if (charOccurences(argEmail, '@') + charOccurences(argEmail, '.') < 2)
		return false

	var atPos = argEmail.indexOf('@')
	var dotPos = argEmail.indexOf('.')

	if((atPos == 0) || (atPos == (argEmail.length - 1)))
		return false

	if((dotPos == 0) || (dotPos == (argEmail.length - 1)))
		return false
	
	var checkTLD=1;
 
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
 
	var emailPat=/^(.+)@(.+)$/;
 
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
 
 
	var validChars="\[^\\s" + specialChars + "\]";
 
 
	var quotedUser="(\"[^\"]*\")";
 
 
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
 
 
	var atom=validChars + '+';
 
	var word="(" + atom + "|" + quotedUser + ")";
 
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
 
 
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
 
 
 
	var matchArray=argEmail.match(emailPat);
 
	if (matchArray==null)
		{
		return false;
		}
	var user=matchArray[1];
	var domain=matchArray[2];
 
	for (i=0; i<user.length; i++)
		{
		if (user.charCodeAt(i)>127)
			{
			return false;
			}
		}
	for (i=0; i<domain.length; i++)
		{
		if (domain.charCodeAt(i)>127)
			{
			return false;
			}
		}
 
	if (user.match(userPat)==null)
		{
		return false;
	}
 
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null)
		{
		for (var i=1;i<=4;i++)
			{
			if (IPArray[i]>255)
				{
				return false;
				}
			}
		return true;
		}
 
 
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++)
		{
		if (domArr[i].search(atomPat)==-1)
			{
			return false;
			}
		}
 
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)
		{
		return false;
		}
 
	if (len<2)
		{
		return false;
		}
 
	return true;
}

function isProperNumber(argNumber) {
	var numberValue = Number(argNumber)
	
	if (isNaN(numberValue)) 
		return false
	else
		return !isWhiteSpace(argNumber)
}

function isProperAlphabetic(argString) {
	var alphabets = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

	for(var intI=0; intI<argString.length; intI++)
		if (alphabets.indexOf(argString.charAt(intI)) == -1)
			return false
	
	return true
}

function objectValue(argFrm, argElem) {
	var intI
	var objElem = null

	for (intI=0; intI<argFrm.length; intI++)
		if (argFrm[intI].name == argElem) 
			objElem = argFrm[intI]

	switch (objElem.type) {
		case 'text':
		case 'hidden':
		case 'password':
			return objElem.value
			break;
		
		case 'select-one':
			if (objElem.length == 0)
				return ''
			else 
				return objElem.options[objElem.selectedIndex].value
			break;
		
		case 'radio':
			for (intI=0; intI<argFrm.length; intI++)
				if (argFrm[intI].name == argElem) 
					if (argFrm[intI].checked)
						return argFrm[intI].value

			return ''
			break;
	}
}

function objectFocus(argFrm, argElem) {
	var intI
	var objElem = null
	for (intI=0; intI<argFrm.length; intI++)
		if (argFrm[intI].name == argElem) 
			objElem = argFrm[intI]
	objElem.focus();
}

function isProperZip(argZip) {
	if ((argZip.length == 5) || (argZip.length == 9))
		return isProperNumber(argZip)
	
	if (argZip.length == 10)
		return (isProperNumber(argZip.substr(0, 5)) && isProperNumber(argZip.substr(6, 4)) & (argZip.charAt(5) == '-'))
}

function isProperUSPhone (argPhone)
{
	var argPhone2 = stripCharsNotInBag(argPhone,"0123456789")
    return (isOkBag(argPhone,"01234567890 -().") && isInteger(argPhone2) && argPhone2.length==digitsInUSPhoneNumber)
}

function isProperUSSSN(argSSN) {
	var argSSN2 = stripCharsNotInBag(argSSN,"0123456789")
    return (isOkBag(argSSN,"01234567890-") && isInteger(argSSN2) && argSSN2.length==11)
}

function actionFields(argActions) {
	this.email			= (argActions.indexOf('[email]') > -1)
	this.required		= (argActions.indexOf('[req]') > -1)
	this.checkDate		= (argActions.indexOf('[date]') > -1)
	this.checkZip		= (argActions.indexOf('[zip]') > -1)
	this.checkNumber	= (argActions.indexOf('[number]') > -1)
	this.checkAlphabetic= (argActions.indexOf('[alpha]') > -1)
	this.checkUSPhone	= (argActions.indexOf('[usphone]') > -1)
	this.checkUSSSN		= (argActions.indexOf('[usssn]') > -1)

	if (argActions.indexOf('[len=') > -1) {
		this.checkLength = true

		var lenToCheck = ''
		var bolCont = true

		for (var intI=(argActions.indexOf('[len=') +  5);((intI < argActions.length) && bolCont); intI++)
			if (argActions.charAt(intI) != ']')
				lenToCheck += argActions.charAt(intI)
			else
				bolCont = false
		this.lengthToCheck = lenToCheck
	}
	else
		this.checkLength = false

	if (argActions.indexOf('[blankalert=') > -1) {
		this.blankAlert = true

		var alertString = ''
		var bolCont = true

		for (var intI=(argActions.indexOf('[blankalert=') +  12);((intI < argActions.length) && bolCont); intI++)
			if (argActions.charAt(intI) != ']')
				alertString += argActions.charAt(intI)
			else
				bolCont = false
		this.blankAlertMessage = alertString
	}
	else
		this.blankAlert = false
	
	if (argActions.indexOf('[invalidalert=') > -1) {
		this.invalidAlert = true

		var alertString = ''
		var bolCont = true

		for (var intI=(argActions.indexOf('[invalidalert=') +  14);((intI < argActions.length) && bolCont); intI++)
			if (argActions.charAt(intI) != ']')
				alertString += argActions.charAt(intI)
			else
				bolCont = false
		this.invalidAlertMessage = alertString
	}
	else
		this.invalidAlert = false

	if (argActions.indexOf('[equals=') > -1) {
		this.shouldEqual = true

		var equalsString = ''
		var bolCont = true

		for (var intI=(argActions.indexOf('[equals=') +  8);((intI < argActions.length) && bolCont); intI++)
			if (argActions.charAt(intI) != ']')
				equalsString += argActions.charAt(intI)
			else
				bolCont = false
		this.shouldEqualString = equalsString
	}
	else
		this.shouldEqual = false

}


function validateForm(argForm)
	{
	var frmElements = argForm.elements
	var elemName
	var elemObj

	submitonce(argForm);

	for (var intI=0; intI < frmElements.length; intI++) {// *
		elemObj = frmElements[intI]
		elemName = elemObj.name

		if ((elemObj.type == 'hidden') && (elemName.length > 5))
			if (elemName.substr(elemName.length - 5).toLowerCase() == '_vldt') {// **
				var objAction = new actionFields(objectValue(frmElements, elemName))
				var actElem = elemName.substr(0, elemName.length - 5)
				
				if (objAction.required) {
					if (isWhiteSpace(objectValue(frmElements, actElem))) {// ***
						alert (objAction.blankAlert?objAction.blankAlertMessage:actElem + ' cannot be left blank')
						objectFocus(frmElements, actElem);
						submitenabled(argForm);
						return false
					} // ***
				}
				
				if ((objectValue(frmElements, actElem) > '') && (!isWhiteSpace(objectValue(frmElements, actElem)))){// ***
					if (objAction.checkDate)
						if (!isProperDate(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have an invalid date')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkNumber)
						if (!isProperNumber(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have an invalid number')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkZip)
						if (!isProperZip(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have an invalid zipcode')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkAlphabetic)
						if (!isProperAlphabetic(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkUSPhone)
						if (!isProperUSPhone(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkUSSSN)
						if (!isProperUSSSN(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.email)
						if (!isProperEmail(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkLength)
						if (objectValue(frmElements, actElem).length < objAction.lengthToCheck) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' must be at least ' + objAction.lengthToCheck + ' characters long')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****
				} // ***
			} // **
	} // *
		
	return true
}


function submitenabled(theform)
	{
	if (document.all||document.getElementById)
		{
		for (i=0;i<theform.length;i++)
			{
			var tempobj=theform.elements[i];
			if(tempobj.type.toLowerCase()=="submit" || tempobj.type.toLowerCase()=="reset")
				tempobj.disabled=false;
			}
		}
	}


function submitonce(theform)
	{
	if (document.all||document.getElementById)
		{
		for (i=0;i<theform.length;i++)
			{
			var tempobj=theform.elements[i];
			if(tempobj.type.toLowerCase()=="submit" || tempobj.type.toLowerCase()=="reset")
				tempobj.disabled=true;
			}
		}
	}


/* Hi Chaim, please replace this comment with your own license text */

// fleXcroll v1.9.5f

eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7 E={4L:6(){Q.N(1i,\'4v\',Q.51)},3s:6(f){7 g=17,G=1i,1Z=6Q;5(!g.20||!g.4b)B;5(3M(f)==\'4f\')f=17.20(f);5(f==14||1Z.3b.2v(\'5H\')!=-1||((1Z.3b.2v(\'5l\')!=-1||1Z.3b.2v(\'6n\')!=-1)&&!(3M(4O)!="6y"&&4O.6z))||1Z.65==\'67\'||(1Z.6d.2v(\'5h\')!=-1&&1Z.3b.2v(\'5J\')!=-1))B;5(f.1G){f.1G();B};5(!f.1W||f.1W==\'\'){7 h="6h",c=1;1E(17.20(h+c)!=14){c++};f.1W=h+c}7 k=f.1W;f.3n=2n 5E();7 l=f.3n;l.1K={6G:[\'-1s\',0],5r:[0,\'-1s\'],5f:[\'1s\',0],5m:[0,\'1s\'],5w:[0,\'-1p\'],5M:[0,\'1p\'],5Z:[0,\'-52\'],66:[0,\'+52\']};l.3R=["-2s","2s"];l.3z=["-2s","2s"];7 m=Z(\'6e\',C),D=Z(\'6c\',C),H=Z(\'6m\',C),18=Z(\'6O\',C);7 o=Z(\'5x\',C),1g=Z(\'5O\',C),2M=8;18.A.1v=\'4B 4P 5F\';18.1N();f.19.4W=\'2w\';1g.A.6F="6J";1g.A.1x="4j";1g.A.T="4j";1g.A.1P="3X";1g.A.3F="-6u";1g.1N();7 p=f.R,4X=f.1e;2c(f,18,\'16\',[\'1v-12-T\',\'1v-26-T\',\'1v-13-T\',\'1v-1R-T\']);7 q=f.R,4g=f.1e,3A=4X-4g,3C=p-q;7 s=(f.1T)?f.1T:0,5b=(f.1S)?f.1S:0;7 t=17.3O.1k,3S=/#([^#.]*)$/;7 u=[\'5B\',\'60\',\'5c\'];l.V=[];l.21=[];l.5s=l.O=[];l.5A=l.1M=[];l.1u=[8,8];l.W=[];l.1H=[0,0];l.1m=[];l.3x=[];l.X=[];1E(f.4M){m.Y(f.4M)};m.Y(o);f.Y(D);f.Y(18);5(L(f,\'1P\')!=\'3X\')f.19.1P="37";7 w=L(f,\'6p-6r\');f.19.4d=\'12\';D.A.T="4x";D.A.1x="4x";D.A.13="16";D.A.12="16";2c(f,18,"16",[\'J-12\',\'J-13\',\'J-26\',\'J-1R\']);7 x=f.1e,4e=f.R,3p;3p=D.R;D.A.5g="6b 4P 6I";5(D.R>3p)2M=C;D.A.5j="16";2c(18,f,8,[\'J-12\',\'J-13\',\'J-26\',\'J-1R\']);1o(D);1o(f);l.X[0]=D.1f-f.1f;l.X[2]=D.1h-f.1h;f.19.53=L(f,"J-1R");f.19.4G=L(f,"J-26");1o(D);1o(f);l.X[1]=D.1f-f.1f;l.X[3]=D.1h-f.1h;f.19.53=L(18,"J-13");f.19.4G=L(18,"J-12");7 y=l.X[2]+l.X[3],3E=l.X[0]+l.X[1];D.19.4d=w;2c(f,D,8,[\'J-12\',\'J-26\',\'J-13\',\'J-1R\']);H.A.T=f.1e+\'F\';H.A.1x=f.R+\'F\';D.A.T=x+\'F\';D.A.1x=4e+\'F\';H.A.1P=\'3X\';H.A.13=\'16\';H.A.12=\'16\';D.Y(m);f.Y(H);H.Y(1g);m.A.1P=\'37\';D.A.1P=\'37\';m.A.13="0";m.A.T="4y%";D.A.4W=\'2w\';D.A.12="-"+l.X[2]+"F";D.A.13="-"+l.X[0]+"F";l.3T=1g.R;l.2G=6(){7 a=m.5Q,2H=6j=0;1q(7 i=0;i<a.4A;i++){5(a[i].1e){2H=11.1Y(a[i].1e,2H)}};l.O[0]=((l.W[1]&&!l.1m[1])||l.21[1])?f.1e-l.1H[0]:f.1e;l.1M[0]=2H+y;B l.1M[0]};l.2K=6(){l.O[1]=((l.W[0]&&!l.1m[0])||l.21[0])?f.R-l.1H[1]:f.R;l.1M[1]=m.R+3E-2;B l.1M[1]};l.4D=6(){m.A.3I=\'6g\';m.A.3I=\'5t\'};l.3K=6(){D.A.T=(2M)?(l.O[0]-y-3A)+\'F\':l.O[0]+\'F\'};l.3U=6(){D.A.1x=(2M)?(l.O[1]-3E-3C)+\'F\':l.O[1]+\'F\'};l.2m=6(){l.2G();l.2K();H.2E=2n 3v();7 a=H.2E;2m(a,\'6N\');a.2i=[1a(L(a.4,\'J-13\')),1a(L(a.4,\'J-1R\'))];a.4.A.J=\'16\';a.4.K=0;a.4.2O=C;a.4.2a=1;m.4h=a.4;3o(a,0);l.1H[0]=a.1b.1e;l.3K();H.2Q=2n 3v();7 b=H.2Q;2m(b,\'5p\');b.2i=[1a(L(b.4,\'J-12\')),1a(L(b.4,\'J-26\'))];b.4.A.J=\'16\';b.4.K=0;b.4.2O=8;b.4.2a=0;m.5D=b.4;5(G.4T)b.4.A.1P=\'37\';3o(b,0);l.1H[1]=b.1b.R;l.3U();H.A.1x=f.R+\'F\';b.2p=Z(\'68\');H.Y(b.2p);b.2p.3r=6(){b.4.2S=C;l.1Q=b.4;b.4.2U=C;b.4.29=8;H.2E.4.29=8;E.N(g,\'3G\',2x);E.N(g,\'2g\',2W);E.N(g,\'2X\',2F);B 8}};l.1Q=14;l.2m();m.57(o);5(!Q.28(f,\'49\',2f)||!Q.28(f,\'4a\',2f)){f.5C=2f};Q.28(f,\'49\',2f);Q.28(f,\'4a\',2f);f.5G(\'5I\',\'0\');Q.N(f,\'5K\',6(e){5(f.2Z)B;5(!e){7 e=G.1w};7 a=e.4k;l.4u=a;l.27();5(l.1K[\'1L\'+a]&&!1i.4T){f.1c(l.1K[\'1L\'+a][0],l.1K[\'1L\'+a][1],C);5(e.1J)e.1J();B 8}});Q.N(f,\'6q\',6(e){5(f.2Z)B;5(!e){7 e=G.1w};7 a=e.4k;5(l.1K[\'1L\'+a]){f.1c(l.1K[\'1L\'+a][0],l.1K[\'1L\'+a][1],C);5(e.1J)e.1J();B 8}});Q.N(f,\'6s\',6(){l.4u=8});Q.N(g,\'2X\',2A);Q.N(f,\'6w\',6(e){5(!e)e=G.1w;7 a=(e.1A)?e.1A:(e.1n)?e.1n:8;5(!a||(a.1r&&a.1r.U(31("\\\\64\\\\b"))))B;l.4i=e.2r;l.4t=e.2k;33();1o(f);2A();E.N(g,\'2g\',3V);l.2u=[f.1h+10,f.1h+l.O[0]-10,f.1f+10,f.1f+l.O[1]-10]});6 3V(e){5(!e)e=G.1w;7 a=e.2r,3B=e.2k,3j=a+l.3D,3c=3B+l.3d;l.3e=(3j<l.2u[0]||3j>l.2u[1])?1:0;l.3f=(3c<l.2u[2]||3c>l.2u[3])?1:0;l.3k=a-l.4i;l.3m=3B-l.4t;l.36=(l.3k>40)?1:(l.3k<-40)?-1:0;l.39=(l.3m>40)?1:(l.3m<-40)?-1:0;5((l.36!=0||l.39!=0)&&!l.1U)l.1U=G.3a(6(){5(l.36==0&&l.39==0){G.2l(l.1U);l.1U=8;B};33();5(l.3e==1||l.3f==1)f.1c((l.36*l.3e)+"s",(l.39*l.3f)+"s",C)},45)};6 2A(){E.2d(g,\'2g\',3V);5(l.1U)G.2l(l.1U);l.1U=8;5(l.44)G.4V(l.44);5(l.46)G.2l(l.46)};6 33(){l.3D=(G.4Z)?G.4Z:(g.2e&&g.2e.1S)?g.2e.1S:0;l.3d=(G.54)?G.54:(g.2e&&g.2e.1T)?g.2e.1T:0};f.1G=6(a){H.2C();5(H.M[1]()===0||H.M[0]()===0)B;m.A.J=\'4B\';7 b=l.W[0],4p=l.W[1],47=H.2E,2t=H.2Q,2V,2J,2z=[];H.A.T=f.1e-3A+\'F\';H.A.1x=f.R-3C+\'F\';2z[0]=l.O[0];2z[1]=l.O[1];l.W[0]=l.2G()>l.O[0];l.W[1]=l.2K()>l.O[1];7 c=(b!=l.W[0]||4p!=l.W[1]||2z[0]!=l.O[0]||2z[1]!=l.O[1])?C:8;47.1b.3H(l.W[1]);2t.1b.3H(l.W[0]);2V=(l.W[1]||l.21[1]);2J=(l.W[0]||l.21[0]);l.2G();l.2K();l.3U();l.3K();5(!l.W[0]||!l.W[1]||l.1m[0]||l.1m[1])2t.2p.1N();1l 2t.2p.2C();5(2V)2N(47,(2J&&!l.1m[0])?l.1H[1]:0);1l m.A.13="0";5(2J)2N(2t,(2V&&!l.1m[1])?l.1H[0]:0);1l m.A.12="0";5(c&&!a)f.1G(C);m.A.J=\'16\';l.1u[0]=l.1u[1]=8};f.62=f.1c=6(a,b,c){7 d=[[8,8],[8,8]],P;5((a||a===0)&&l.V[0]){a=3L(a,0);P=H.2Q.4;P.1d=(c)?11.22(11.1Y(P.1I,P.1d-a),0):-a;P.3Q();d[0]=[-P.1d-P.24,-P.1I]}5((b||b===0)&&l.V[1]){b=3L(b,1);P=H.2E.4;P.1d=(c)?11.22(11.1Y(P.1I,P.1d-b),0):-b;P.3Q();d[1]=[-P.1d-P.24,-P.1I]}5(!c)l.1u[0]=l.1u[1]=8;B d};f.2Y=6(a){5(a==14||!59(a))B;7 b=48(a);f.1c(b[0]+l.X[2],b[1]+l.X[0],8);f.1c(0,0,C)};2c(18,f,\'16\',[\'1v-12-T\',\'1v-26-T\',\'1v-13-T\',\'1v-1R-T\']);f.57(18);f.1T=0;f.1S=0;f.2I=C;30(f,\'6i\',8);f.1G();f.1c(5b,s,C);5(t.U(3S)){f.2Y(g.20(t.U(3S)[1]))};l.5L=G.3a(6(){7 n=1g.R;5(n!=l.3T){f.1G();l.3T=n}},5N);6 3L(v,i){7 a=v.5P();v=5i(a);B 1a((a.U(/p$/))?v*l.O[i]*0.9:(a.U(/s$/))?v*l.O[i]*0.1:v)}6 41(a){7 a=a.6x(\'-\'),42=a[0],i;1q(i=1;3q=a[i];i++){42+=3q.6B(0).5U()+3q.5z(1)}B 42}6 L(a,b){5(G.4m)B G.4m(a,14).5W(b);5(a.4o)B a.4o[41(b)];B 8};6 2c(a,b,c,d){7 e=2n 3v();1q(7 i=0;i<d.4A;i++){e[i]=41(d[i]);b.19[e[i]]=L(a,d[i],e[i]);5(c)a.19[e[i]]=c}};6 Z(b,c){7 d=g.4b(\'4q\');d.1W=k+\'1L\'+b;d.1r=(c)?b:b+\' 5Y\';d.M=[6(){B d.1e},6(){B d.R}];d.2h=[6(a){d.A.T=a},6(a){d.A.1x=a}];d.4s=[6(){B L(d,"12")},6(){B L(d,"13")}];d.15=[6(a){d.A.12=a},6(a){d.A.13=a}];d.1N=6(){d.A.2j="2w"};d.2C=6(a){d.A.2j=(a)?L(a,\'2j\'):"5d"};d.A=d.19;B d};6 2m(a,b){a.1b=Z(b+\'5e\');a.2o=Z(b+\'5k\');a.25=Z(b+\'5o\');a.4=Z(b+\'5q\');a.1V=Z(b+\'5u\');a.1t=Z(b+\'5y\');H.Y(a.1b);a.1b.Y(a.4);a.1b.Y(a.2o);a.1b.Y(a.25);a.4.Y(a.1V);a.4.Y(a.1t)};6 3o(b,c){7 d=b.1b,4=b.4,i=4.2a;4.1O=b.2i[0];4.2P=d;4.D=D;4.4w=m;4.24=0;2N(b,c,C);4.3h=6(){4.K=(11.22(11.1Y(4.K,0),4.2b));4.1d=1a((4.K/4.32)*4.1I);4.24=(4.K==0)?0:(4.K==4.2b)?0:4.24;4.15[i](4.K+4.1O+"F");m.15[i](4.1d+4.24+"F")};4.3Q=6(){4.K=1a((4.1d*4.32)/4.1I);4.24=4.1d-1a((4.K/4.32)*4.1I);4.K=(11.22(11.1Y(4.K,0),4.2b));4.15[i](4.K+4.1O+"F");4.15[i](4.K+4.1O+"F");m.15[i](4.1d+"F")};l.2B=L(4,\'z-4F\');4.A.3F=(l.2B=="5R"||l.2B=="0"||l.2B==\'5T\')?2:l.2B;D.A.3F=L(4,\'z-4F\');4.3r=6(){4.2U=C;l.1Q=4;4.2S=8;4.29=8;E.N(g,\'3G\',2x);E.N(g,\'2g\',2W);E.N(g,\'2X\',2F);B 8};4.5V=2A;d.3r=d.5X=6(e){5(!e){7 e=G.1w}5(e.1A&&(e.1A==b.1V||e.1A==b.1t||e.1A==b.4))B;5(e.1n&&(e.1n==b.1V||e.1n==b.1t||e.1n==b.4))B;7 a,1X=[];33();l.27();1o(4);a=(4.2O)?e.2k+l.3d-4.1f:e.2r+l.3D-4.1h;1X[4.2a]=(a<0)?l.3z[0]:l.3z[1];1X[1-4.2a]=0;f.1c(1X[0],1X[1],C);5(e.61!="63"){2A();l.44=G.4H(6(){l.46=G.3a(6(){f.1c(1X[0],1X[1],C)},4J)},69)}B 8};d.3H=6(r){5(r){d.2C(f);l.1m[i]=(L(d,"2j")=="2w")?C:8;5(!l.1m[i])4.2C(f);1l 4.1N();l.V[i]=C;30(d,"","4N")}1l{d.1N();4.1N();l.21[i]=(L(d,"2j")!="2w")?C:8;l.V[i]=8;4.K=0;m.15[i](\'16\');30(d,"4N","")}D.15[1-i]((l.3x[i]&&(r||l.21[i])&&!l.1m[i])?l.1H[1-i]-l.X[i*2]+"F":"-"+l.X[i*2]+"F")};d.6f=2x};6 2N(a,b,c){7 d=a.1b,4=a.4,2o=a.2o,1V=a.1V,25=a.25,1t=a.1t,i=4.2a;d.2h[i](H.M[i]()-b+\'F\');d.15[1-i](H.M[1-i]()-d.M[1-i]()+\'F\');l.3x[i]=(1a(d.4s[1-i]())===0)?C:8;a.3l=a.2i[0]+a.2i[1];a.3J=1a((d.M[i]()-a.3l)*0.6l);4.4R=11.22(11.1Y(11.22(1a(l.O[i]/l.1M[i]*d.M[i]()),a.3J),45),a.3J);4.2h[i](4.4R+\'F\');4.2b=d.M[i]()-4.M[i]()-a.3l;4.K=11.22(11.1Y(0,4.K),4.2b);4.15[i](4.K+4.1O+\'F\');4.1I=D.M[i]()-l.1M[i];4.32=4.2b;2o.2h[i](d.M[i]()-25.M[i]()+\'F\');1V.2h[i](4.M[i]()-1t.M[i]()+\'F\');1t.15[i](4.M[i]()-1t.M[i]()+\'F\');25.15[i](d.M[i]()-25.M[i]()+\'F\');5(!c)4.3h();l.4D()};l.27=6(){D.1T=0;D.1S=0;f.1T=0;f.1S=0};Q.N(G,\'4v\',6(){5(f.2I)f.1G()});Q.N(G,\'6o\',6(){5(f.3t)G.4V(f.3t);f.3t=G.4H(6(){5(f.2I)f.1G()},4J)});1q(7 j=0,3i;3i=u[j];j++){7 z=f.34(3i);1q(7 i=0,2R;2R=z[i];i++){E.N(2R,\'6A\',6(){f.2Z=C});E.N(2R,\'6C\',6E=6(){f.2Z=8})}};6 2x(){B 8};6 2W(e){5(!e){7 e=G.1w};7 a=l.1Q,I,3N,6K,6M;5(a==14)B;5(!E.56&&!e.6P)2F();3N=(a.2S)?2:1;1q(7 i=0;i<3N;i++){I=(i==1)?a.4w.4h:a;5(a.2U){5(!I.29){l.27();1o(I);1o(I.2P);I.58=e.2k-I.1f;I.5a=e.2r-I.1h;I.4E=I.K;I.29=C};I.K=(I.2O)?e.2k-I.58-I.2P.1f-I.1O:e.2r-I.5a-I.2P.1h-I.1O;5(a.2S)I.K=I.K+(I.K-I.4E);I.3h()}1l I.29=8}};6 2F(){5(l.1Q!=14){l.1Q.2U=8}l.1Q=14;E.2d(g,\'3G\',2x);E.2d(g,\'2g\',2W);E.2d(g,\'2X\',2F)};6 2f(e){5(!e)e=G.1w;5(!Q.2I)B;7 a=Q,35,3P,1C=8,1j=0,1D;l.27();3g=(e.1A)?e.1A:(e.1n)?e.1n:Q;5(3g.1W&&3g.1W.U(/6a/))1C=C;5(e.4K)1j=-e.4K;5(e.4r)1j=e.4r;1j=(1j<0)?-1:+1;1D=(1j<0)?0:1;l.1u[1-1D]=8;5((l.1u[1D]&&!1C)||(!l.V[0]&&!l.V[1]))B;5(l.V[1]&&!1C)1B=f.1c(8,l.3R[1D],C);35=!l.V[1]||1C||(l.V[1]&&((1B[1][0]==1B[1][1]&&1j>0)||(1B[1][0]==0&&1j<0)));5(l.V[0]&&(!l.V[1]||1C))1B=f.1c(l.3R[1D],8,C);3P=!l.V[0]||(l.V[0]&&l.V[1]&&35&&!1C)||(l.V[0]&&((1B[0][0]==1B[0][1]&&1j>0)||(1B[0][0]==0&&1j<0)));5(35&&3P&&!1C)l.1u[1D]=C;1l l.1u[1D]=8;5(e.1J)e.1J();B 8};6 59(a){1E(a.1y){a=a.1y;5(a==f)B C}B 8};6 1o(a){7 b=a,23=1z=0;7 c="";5(b.2T){1E(b){23+=b.4c;1z+=b.4Q;b=b.2T;c+=1z+" "}}1l 5(b.x){23+=b.x;1z+=b.y}a.1h=23;a.1f=1z};6 48(a){7 b=a;23=1z=0;1E(!b.R&&b.1y&&b!=m&&L(b,\'3I\')=="6k"){b=b.1y}5(b.2T){1E(b!=m){23+=b.4c;1z+=b.4Q;b=b.2T}}B[23,1z]};6 30(a,b,c){5(!a.1r)a.1r=\'\';7 d=a.1r;5(b&&!d.U(31("(^|\\\\s)"+b+"($|\\\\s)")))d=d.3W(/(\\S$)/,\'$1 \')+b;5(c)d=d.3W(31("((^|\\\\s)+"+c+")+($|\\\\s)","g"),\'$2\').3W(/\\s$/,\'\');a.1r=d}},51:6(){5(E.38)1i.2l(E.38);7 d=/#([^#.]*)$/,2q=/(.*)#.*$/,5v,i,1F,4U=17.34("a"),2y=17.3O.1k;5(2y.U(2q))2y=2y.U(2q)[1];1q(i=0;1F=4U[i];i++){5(1F.1k&&1F.1k.U(d)&&1F.1k.U(2q)&&2y===1F.1k.U(2q)[1]){1F.3Y=C;E.N(1F,\'6t\',6(e){5(!e)e=1i.1w;7 a=(e.1n)?e.1n:Q;1E(!a.3Y&&a.1y){a=a.1y};5(!a.3Y)B;7 b=17.20(a.1k.U(d)[1]),2L=8;5(b==14)b=(b=17.6v(a.1k.U(d)[1])[0])?b:14;5(b!=14){7 c=b;1E(c.1y){c=c.1y;5(c.2Y){c.2Y(b);2L=c}};5(2L){5(e.1J)e.1J();17.3O.1k="#"+a.1k.U(d)[1];2L.3n.27();B 8}}})}};E.3Z();5(1i.4Y)1i.4Y()},3Z:6(){5(E.4z)B;E.4z=C;7 a=E.50(17.34("5n")[0],"4q",\'4l\');1q(7 i=0,3u;3u=a[i];i++)E.3s(3u)},50:6(a,b,c){5(3M(a)==\'4f\')a=17.20(a);5(a==14)B 8;7 d=2n 31("(^|\\\\s)"+c+"($|\\\\s)"),6D,3w=[],43=0;7 e=a.34(b);1q(7 i=0,2D;2D=e[i];i++){5(2D.1r&&2D.1r.U(d)){3w[43]=2D;43++}};B 3w},38:1i.3a(6(){7 a=17.20(\'4l-6H\');5(a!=14){E.3Z();1i.2l(E.38)}},4y),N:6(a,b,c){5(!E.28(a,b,c)&&a.55){a.55(\'4C\'+b,c)}},28:6(a,b,c){5(a.3y){a.3y(b,c,8);E.56=C;1i.3y("6L",6(){E.2d(a,b,c)},8);B C}1l B 8},2d:6(a,b,c){5(!E.4n(a,b,c)&&a.4I)a.4I(\'4C\'+b,c)},4n:6(a,b,c){5(a.4S){a.4S(b,c,8);B C}1l B 8}};6 5S(a){E.3s(a)};E.4L();',62,425,'||||sBr|if|function|var|false||||||||||||||||||||||||||||sY|return|true|mDv|fleXenv|px|wD|tDv|movBr|padding|curPos|getStyle|getSize|addTrggr|cntRSize|Bar|this|offsetHeight||width|match|scroller|reqS|paddings|appendChild|createDiv||Math|left|top|null|setPos|0px|document|pDv|style|parseInt|sDv|contentScroll|trgtScrll|offsetWidth|yPos|fDv|xPos|window|delta|href|else|forcedHide|srcElement|findPos||for|className||sSBr|edge|border|event|height|parentNode|curtop|target|scrollState|hoverH|iNDx|while|anchoR|scrollUpdate|barSpace|mxScroll|preventDefault|keyAct|_|cntSize|fHide|minPos|position|goScroll|bottom|scrollLeft|scrollTop|tSelectFunc|sFBr|id|mV|max|nV|getElementById|forcedBar|min|curleft|targetSkew|sSDv|right|mDPosFix|addChckTrggr|moved|indx|maxPos|copyStyles|remTrggr|documentElement|mWheelProc|mousemove|setSize|barPadding|visibility|clientY|clearInterval|createScrollBars|new|sFDv|jBox|urlExt|clientX||hBr|mTBox|indexOf|hidden|retFalse|urlBase|cPSize|intClear|barZ|fShow|pusher|vrt|mMouseUp|getContentWidth|maxCWidth|fleXcroll|hUpReq|getContentHeight|eScroll|stdMode|updateScroll|vertical|ofstParent|hrz|formItem|scrollBoth|offsetParent|clicked|vUpReq|mMoveBar|mouseup|scrollToElement|focusProtect|classChange|RegExp|sRange|pageScrolled|getElementsByTagName|vEdge|sXdir|relative|catchFastInit|sYdir|setInterval|userAgent|mdY|yScrld|mOnXEdge|mOnYEdge|hElem|doScrollPos|inputName|mdX|xAw|padLoss|yAw|fleXdata|prepareScroll|mHeight|parT|onmousedown|fleXcrollMain|refreshTimeout|tgDiv|Array|retArray|forcedPos|addEventListener|baseAct|brdWidthLoss|mY|brdHeightLoss|xScrld|padHeightComp|zIndex|selectstart|setVisibility|display|baseProp|setWidth|calcCScrollVal|typeof|maxx|location|hEdge|contentScrollPos|wheelAct|uReg|zTHeight|setHeight|tSelectMouse|replace|absolute|fleXanchor|initByClass||camelConv|reT|key|barClickRetard||barClickScroll|vBr|findRCpos|mousewheel|DOMMouseScroll|createElement|offsetLeft|textAlign|postHeight|string|intlWidth|vBar|inMposX|1em|keyCode|flexcroll|getComputedStyle|remChckTrggr|currentStyle|reqV|div|detail|getPos|inMposY|pkeY|load|scrlTrgt|100px|100|initialized|length|1px|on|fixIEDispBug|inCurPos|index|paddingLeft|setTimeout|detachEvent|80|wheelDelta|fleXcrollInit|firstChild|flexinactive|HTMLElement|solid|offsetTop|aSize|removeEventListener|opera|anchorList|clearTimeout|overflow|brdWidth|onfleXcrollRun|pageXOffset|getByClassName|globalInit|100p|paddingTop|pageYOffset|attachEvent|w3events|removeChild|pointerOffsetY|isddvChild|pointerOffsetX|oScrollX|select|visible|base|_39|borderBottom|Mac|parseFloat|borderBottomWidth|basebeg|AppleWebKit|_40|body|baseend|hscroller|bar|_38|containerSize|block|barbeg|matcH|_33|domfixdiv|barend|substr|contentSize|textarea|onmousewheel|hBar|Object|blue|setAttribute|OmniWeb|tabIndex|MSIE|keydown|sizeChangeDetect|_34|2500|zoomdetectdiv|toString|childNodes|auto|CSBfleXcroll|normal|toUpperCase|onmouseover|getPropertyValue|ondblclick|scrollgeneric|_36|input|type|commitScroll|dblclick|bscrollgeneric|vendor|_35|KDE|scrollerjogbox|425|_hscroller|2px|mcontentwrapper|platform|contentwrapper|onmouseclick|none|flex__|flexcrollactive|compPad|inline|75|scrollwrapper|Safari|resize|text|keypress|align|keyup|click|999|getElementsByName|mousedown|split|undefined|prototype|focus|charAt|blur|clsnm|onblur|fontSize|_37|init|black|12px|xScroll|unload|yScroll|vscroller|copyholder|button|navigator'.split('|'),0,{}))
