﻿function ClientHeight() 
{
  if( typeof( window.innerHeight ) == 'number' ) 
  {
    //Non-IE
    return window.innerHeight;
  } 
  else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
  {
    //IE 6+ in 'standards compliant mode'
    return document.documentElement.clientHeight;
  } 
  else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
  {
    //IE 4 compatible
    return document.body.clientHeight;
  }
}

function ClientWidth() 
{
  if( typeof( window.innerWidth ) == 'number' ) 
  {
    //Non-IE
    return window.innerWidth;
  } 
  else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
  {
    //IE 6+ in 'standards compliant mode'
    return document.documentElement.clientWidth;
  }  
  else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
  {
    //IE 4 compatible
    return document.body.clientWidth;
  }
}

function GetAJAX()
{
  if (window.XMLHttpRequest) 
    return new XMLHttpRequest();
  else 
    return new ActiveXObject("Microsoft.XMLHTTP");
}

function GetXML()
{
  var oXMLDoc;
  try 
  {
    oXMLDoc = new ActiveXObject('Microsoft.XMLDOM');
  }
  catch(e)
  {
    oXMLDoc = document.implementation.createDocument('', '', null);
  }
  return oXMLDoc;
}
    
function GetXMLDoc(sResult)
{
  var oXMLDoc = null;
  try 
  {
    oXMLDoc = new ActiveXObject("Microsoft.XMLDOM");
    oXMLDoc.async = "false";
    oXMLDoc.loadXML(sResult); 
  }
  catch(e)
  {
    if (window.DOMParser)
    {
      var parser = new DOMParser();
      oXMLDoc = parser.parseFromString(sResult, "text/xml");
    }
  }
  return oXMLDoc;
}
    
var pressedKeyDown;
 
function ValidPhone(s, e, bRequired)
{  
  var sNumber = s.GetText();
  var sTrimmed = sNumber.replace('(', '').replace(')', '').replace('-', '').replace(/_/g, '');
  if (sTrimmed.length == 0) 
    bResult = !bRequired;
  else if (sTrimmed.length == 10) 
  {
    if (sNumber.length == 13)
    {
      bResult = true;
      if (sNumber.substr(0, 1) != '(')
        bResult = false; 
      if (isNaN(sNumber.substr(1, 1)))
        bResult = false; 
      if (isNaN(sNumber.substr(2, 1)))
        bResult = false; 
      if (isNaN(sNumber.substr(3, 1)))
        bResult = false; 
      if (sNumber.substr(4, 1) != ')')
        bResult = false;     
      if (isNaN(sNumber.substr(5, 1)))
        bResult = false; 
      if (isNaN(sNumber.substr(6, 1)))
        bResult = false; 
      if (isNaN(sNumber.substr(7, 1)))
        bResult = false; 
      if (sNumber.substr(8, 1) != '-')
        bResult = false;     
      if (isNaN(sNumber.substr(9, 1)))
        bResult = false; 
      if (isNaN(sNumber.substr(10, 1)))
        bResult = false; 
      if (isNaN(sNumber.substr(11, 1)))
        bResult = false; 
      if (isNaN(sNumber.substr(12, 1)))
        bResult = false; 
    }
    else
      bResult = false;
  }
  else
    bResult = false;
  e.isValid = bResult;
}

function CheckPasswordStrength(sPassword)
{
  var sError = "";  
  if ((sPassword == null) || (sPassword.length < 8))
    sError = "Password must be at least 8 characters!";
  else if (sPassword.length > 20)
    sError = "Password must be less than 20 characters!";
  else
  {
    var lNumber = false;
    var lLower = false;
    var lUpper = false;
    var lOther = false;
    var x;
    for (x = 0; x < sPassword.length; x++)
    {
      if ((sPassword.charCodeAt(x) >= 65) && (sPassword.charCodeAt(x) <= 90))
        lUpper = true;
      if ((sPassword.charCodeAt(x) >= 97) && (sPassword.charCodeAt(x) <= 122))
        lLower = true;
      if ((sPassword.charCodeAt(x) >= 48) && (sPassword.charCodeAt(x) <= 57))
        lNumber = true;
      if (((sPassword.charCodeAt(x) >= 33) && (sPassword.charCodeAt(x) <= 47)) ||
          ((sPassword.charCodeAt(x) >= 58) && (sPassword.charCodeAt(x) <= 64)) ||
          ((sPassword.charCodeAt(x) >= 91) && (sPassword.charCodeAt(x) <= 96)) ||
          ((sPassword.charCodeAt(x) >= 123) && (sPassword.charCodeAt(x) <= 126))
         )
        lOther = true;
    }
    x = 0;
    if (lNumber)
      x++;
    if (lLower)
      x++;
    if (lUpper)
      x++;
    if (lOther)
      x++;
    if (x < 3)
      sError = "Password does not meet character set requirements!";
  }
  if (sError != "")
    alert(sError);
  return (sError == "");
}

function ValidInteger(s, e)
{
  var sNumber = s.GetText();
  if (sNumber.length == 0)  
    e.isValid = false;
  else
  {
    bResult = true;
    for (x = 0; x < sNumber.length; x++)
    {
      if ((sNumber.charCodeAt(x) < 48) || (sNumber.charCodeAt(x) > 57))
        bResult = false;    
    }
    if (bResult) 
    {
      if (parseInt(sNumber) <= 0)
        bResult = false;    
    }  
    e.isValid = bResult;
  }
}


<!-- Original:  Robert Bui (astrogate@hotmail.com) -->
<!-- Web Site:  http://astrogate.virtualave.net -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
var interval = 4; // delay between rotating images (in seconds)
var random_display = 0; // 0 = no, 1 = yes
interval *= 1000;

var image_index = 0;
function imageItem(image_location) {
this.image_item = new Image();
this.image_item.src = image_location;
}
function get_ImageItemLocation(imageObj) {
return(imageObj.image_item.src)
}
function generate(x, y) {
var range = y - x + 1;
return Math.floor(Math.random() * range) + x;
}
function getNextImage() {
if (random_display) {
image_index = generate(0, number_of_image-1);
}
else {
image_index = (image_index+1) % number_of_image;
}
var new_image = get_ImageItemLocation(image_list[image_index]);
return(new_image);
}
function rotateImage(place) {
var new_image = getNextImage();
document[place].src = new_image;
var recur_call = "rotateImage('"+place+"')";
setTimeout(recur_call, interval);
}

function ValidZip(s, e)
{
  var sNumber = s.GetText();
  if (sNumber.length == 0)  
    bResult = false;
  else
  {
    bResult = true;
    if (isNaN(sNumber.substr(0, 1)))
      bResult = false; 
    if (isNaN(sNumber.substr(1, 1)))
      bResult = false; 
    if (isNaN(sNumber.substr(2, 1)))
      bResult = false; 
    if (isNaN(sNumber.substr(3, 1)))
      bResult = false; 
    if (isNaN(sNumber.substr(4, 1)))
      bResult = false; 
    if (sNumber.substr(5, 1) != '-')
      bResult = false;     
    if (sNumber.substr(6, 4) != '____')
    {
      if (isNaN(sNumber.substr(6, 1)))
        bResult = false; 
      if (isNaN(sNumber.substr(7, 1)))
        bResult = false; 
      if (isNaN(sNumber.substr(8, 1)))
        bResult = false; 
      if (isNaN(sNumber.substr(9, 1)))
        bResult = false; 
    }    
  }
  if (e == null)
    return bResult;
  else
    e.isValid = bResult;
}

 
function ValidDate(s, e)
{  
  if (s.GetDate() == null)
    e.isValid = false;
  else
  {
    var iYear = s.GetDate().getFullYear();
    if (iYear < 1753) 
    {
      e.errorText = 'Invalid year.';
      e.isValid = false;
    }
    else
    {
      var oDate = new Date();
      var nDiff = oDate.valueOf() - s.GetDate().valueOf();
      if (nDiff > 86400000)
      {
        e.errorText = 'Date cannot be less than today.';
        e.isValid = false;
      }
      else
        e.isValid = true;
    }
  }
}
 
function ValidTime(s, e, oDate)
{  
  if (oDate.GetDate() == null)
  {
    e.errorText = 'Date cannot be empty.';
    e.isValid = false;
  }
  else
  {
    var oToday = new Date();
    var oNewDate = oDate.GetDate();
    oNewDate.setHours(s.GetText().substr(0, 2));
    oNewDate.setMinutes(s.GetText().substr(3, 2));
    if (oNewDate < oToday)
    {
      e.errorText = 'Time cannot be less than current time.';
      e.isValid = false;
    }
    else
      e.isValid = true;
  }
}

