﻿// JScript File
  var USStateCodeDelimiter = "|";
  var USStateCodes = "AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|AE|AA|AE|AE|AP|"
  
  var ZIPCodeDelimiters = "-";  
  
  var digits = "0123456789";
  var Moneydigits = "0123456789.";
  var alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";     
  
  var phoneNumberDelimiters = "()- ";
  
  var validUSPhoneChars = digits + phoneNumberDelimiters;
  
    function SetTheme(theme) 
    {
       var response = AJAXMethods.SetTheme(theme);
       document.forms[0].submit();   
       return true;
    }

  function toggleDisplay(boxid)
  {
    var box = GetObjById(boxid);
    
    if (box.style.display == "none")
       box.style.display = "block";
    else
       box.style.display = "none";
}
  function IsValidState(value, required)
  { 
     if (required && IsEmpty(value))
       return false;

     if (!required && IsEmpty(value))
       return true;
     
     value = value.toUpperCase() + USStateCodeDelimiter;
     return ((value.length == 3) && (USStateCodes.indexOf(value) != -1))
  }

function GetObjById(sID)
{
    var brw = navigator.appName;
    var ver = parseInt((navigator.appVersion).charAt(0));

	if('Netscape' == brw && ver < 5)
	  return document.layers[sID];
    else if (document.all == null)
      return document.getElementById(sID);
    else
      return document.all(sID);
}
  function replace(str,searchFor,replaceWith) 
  {
     var i = str.indexOf(searchFor);
     while ( i!=-1 ) 
     {
       var j = i+searchFor.length;
       str = str.substring(0,i)+replaceWith+str.substring(j,str.length);
       i = str.indexOf(searchFor,i+replaceWith.length);
     } 
     return str;
  }

  function GetFloatValue(value) 
  {
    if (value.length == 0 || value == "" || isNaN(value) == true)
       return 0;
    else
       return parseFloat(value);   
  }
  
  function IsEmpty(value) 
  {
    value= AllTrim(value," ");
    if (value.length == 0 || value == "")
       return true;
    return false;
  }
  function Right(value, intNum) 
  {
    if (value.length == 0 || value == "")
       return value;
    else
       return value.substr(value.length - intNum);
  }
  function Left(value, intNum) 
  {
    if (value.length == 0 || value == "")
       return value;
    else
       return value.substr(0, intNum);
  }
  function checkPhone (Field, required, reformat)
  {
  
     if (required && IsEmpty(Field.value))
     {
       alert("Please enter phone#");
       return false;
     }
     if (!required && IsEmpty(Field.value))
       return true;
  
     var normalizedPhone = stripCharsInBag(Field.value, phoneNumberDelimiters);

     if (IsInteger(normalizedPhone, false, false) && normalizedPhone.length == 7)
     {      
		normalizedPhone = "831" + normalizedPhone;
     }
     if (IsInteger(normalizedPhone, false, false) && normalizedPhone.length == 10)
     {      
         if (reformat)
            Field.value = ReFormat(normalizedPhone,"(", 3, ") ", 3, "-", 4);        
         return true;      
     }
     alert("Please enter valid phone#");
     return false;      
  }    
  function checkZipCode(Field, required, reformat)
  { 
     if (IsValidZipCode(Field.value, required))
     {      
         var normalizedZIP = stripCharsInBag(value, ZIPCodeDelimiters)
         if ((reformat) && (normalizedZIP.length == 9))
            Field.value = ReFormat(normalizedZIP,"", 5, "-", 4);        
         return true;      
     }
     return false;      
  }
  function IsValidZipCode(value, required)
  { 
     if (required && IsEmpty(value))
        return false;

     if (!required && IsEmpty(value))
       return true;
  
     var normalizedZIP = stripCharsInBag(value, ZIPCodeDelimiters)
     if (IsInteger(normalizedZIP) && (normalizedZIP.length == 5 || normalizedZIP.length == 9))
         return true;      
     return false;      
  }
  function daysInFebruary (year)
  {
     return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
  }
  
  function IsDate(value, required)
  {
     var daysInMonth = makeArray(12);
	 daysInMonth[1] = 31;
  	 daysInMonth[2] = 29;
	 daysInMonth[3] = 31;
	 daysInMonth[4] = 30;
	 daysInMonth[5] = 31;
	 daysInMonth[6] = 30;
	 daysInMonth[7] = 31;
	 daysInMonth[8] = 31;
	 daysInMonth[9] = 30;
	 daysInMonth[10] = 31;
	 daysInMonth[11] = 30;
	 daysInMonth[12] = 31;
     if (required && IsEmpty(value))
       return false;
     if (!required && IsEmpty(value))
       return true;

     var curdate = new Date()
     var curyear= ""+ curdate.getYear()
     var curmonth= (curdate.getMonth()+1).toString();
     var curday= ""+ curdate.getDate()


     curyear = parseInt(curyear, 10);
     curmonth = parseInt(curmonth, 10)+1;
     curday =  parseInt(curday, 10);

     value = replace(value, "-", "/");
     if (value.length == 8 && value.indexOf("/") < 0)
        value = Left(value, 2) + "/" + value.substring(2,4) + "/" + Right(value, 4);
     var elements = value.split("/");
     elements = value.split("/");

     if (elements.length != 3)
        return false;

     var day = parseInt(elements[1], 10);
     var month = parseInt(elements[0], 10);
     var year =  parseInt(elements[2], 10);
     if (year < 70)
        year =  year + 2000;
     else if (year <= 99)
        year =  year + 1900;

     if (day > daysInMonth[month])
        return false;

     if ((month == 2) && (day > daysInFebruary(year)))
        return false;

     if (!isNaN(month) && (month > 0) && (month < 13) && !isNaN(year) && (year >= 1900))
       return true;

     return false;
  }

  function FormatDate(value)
  {
     var elements = value.split("/");

     if (elements.length != 2)
        return value;

     var month = "00" + parseInt(elements[0], 10);
     var year =  "00" + parseInt(elements[1], 10);
     var finalDate = month.substring(month.length-2, month.length) + "/" + year.substring(year.length-2, year.length);
     
     return finalDate;
  }
  function stripCharsInBag (value, bag)
  {
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.

    for (i = 0; i < value.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = value.charAt(i);
        if (bag.indexOf(c) == -1) 
           returnString = returnString + c;
    }
  //alert(returnstring);
    return returnString;
  }
  function makeArray(n)
  {
   for (var i = 1; i <= n; i++) {
      this[i] = 0;
  }
   return this
  }

function LeftTrim(String,TrimChar)
{
 String += ""         // Force argument to string.
 TrimChar += ""       // Force argument to string.
 if((TrimChar == "") || (!(TrimChar.length == 1)))
  TrimChar = " "
 if(String.length == 0)
  return(String)
 var Count = 0
 for(Count = 0;Count < String.length;Count++)
 {
  if(!(String.charAt(Count) == TrimChar))
   return(String.substring(Count,String.length))
 }
 return("")
}

function RightTrim(String,TrimChar)
{
 String += ""        // Force argument to string.
 TrimChar += ""      // Force argument to string.
 if((TrimChar == "") || (!(TrimChar.length == 1)))
  TrimChar = " "
 if(String.length == 0)
  return(String)
 var Count = 0
 for(Count = String.length -1;Count >= 0;Count--)
 {
  if(!(String.charAt(Count) == TrimChar))
   return(String.substring(0,Count + 1))
 }
 return("")
}

function AllTrim(String,TrimChar)
{
 String += ""        // Force argument to string.
 TrimChar += ""      // Force argument to string.
 if((TrimChar == "") || (!(TrimChar.length == 1)))
  TrimChar = " "
 return(RightTrim(LeftTrim(String,TrimChar),TrimChar))
}
  function IsInteger(value, required, NotZero)
  {
     var i;
     if (required && IsEmpty(value))
        return false;

     if (!required && IsEmpty(value))
       return true;

     for (i=0; i< value.length; i++)
     {
         var c = value.charAt(i);
         if (digits.indexOf(c) >= 0)
           continue;
         else
           return false;
     }
     
     if (NotZero && parseInt(value, 10) == 0)
       return false;

     return true
  }
function ReFormat(value)
{ 
    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 += value.substring(sPos, sPos + arg);
           sPos += arg;
       }
    }
    return resultString;
}
function clickButton(e, buttonid){ 
      var bt = GetObjById(buttonid); 
      if (typeof bt == 'object'){ 
            if(navigator.appName.indexOf("Netscape")>(-1)){ 
                  if (e.keyCode == 13){ 
                        bt.click(); 
                        return false; 
                  } 
            } 
            if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1)){ 
                  if (event.keyCode == 13){ 
                        bt.click(); 
                        return false; 
                  } 
            } 
            
      } 
} 
	function nextElementFocus(ce) 
	{
		// Variables
		var i = 0;
		// Shortcut
		var form = document.forms[0];
		// The first available element in the form
		var firstElement = form.elements[0];

		// Get the current element (ce) and select the next available
		for (i=0; i<form.elements.length; i++) {
			if (ce == form.elements[i]) {
				if ( (i+1) < form.elements.length) {
					i++;
				} else {
					i = -1;
				}
				break;
			}
		}

		// Find out if the next element is a text field
		if (i > -1) 
		{
		   while (i < form.elements.length)
		   {
			  if (form.elements[i].type == 'text' || form.elements[i].type == 'textarea' || form.elements[i].type == 'select-one') 
			  {
			      if (!form.elements[i].disabled && !form.elements[i].readOnly)
			         break;
			  }
		  	  i++;
			}
		}
	    if (i >= form.elements.length) 
		  i = -1;
		
		// Move focus
		if (i == -1) {
		  if (firstElement.type == 'text')
			 firstElement.focus();
		} else {
			form.elements[i].focus();
		}
		return false;
	}

openmodalwindow = function(url)
{
	if (window.showModalDialog)
	{ 
	    var dialogprop;
        dialogprop = 'dialogWidth:390px;dialogHeight:450px;dialogTop:10px;dialogLeft:150px;help:no'
   	    return window.showModalDialog(url, 'popup', dialogprop);
    }
   return null;
}

 function HandleFocus()
 { 
    if (winModalWindow) 
    { 
      if (!winModalWindow.closed) 
      { 
        winModalWindow.focus() 
      }
      else 
      {
        window.top.releaseEvents (event.CLICK|event.FOCUS)
      } 
    } 
    return true 
  } 
  openwindow = function(url, fieldid)
  {
		winModalWindow=window.open(url + "&fieldid=" + fieldid, 'wind', 'width=400px,height=400px,top=150px,Left=200px,toolbars=no,scrollbars=no,status=no');
		return false;
  }
