//alert('file loaded');
<!-- Original:  Simon Tneoh (tneohcb@pc.jaring.my) -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
var Cards = new makeArray(8);
Cards[0] = new CardType("MasterCard", "51,52,53,54,55", "16");
var MasterCard = Cards[0];
Cards[1] = new CardType("VisaCard", "4", "13,16");
var VisaCard = Cards[1];
Cards[2] = new CardType("AmExCard", "34,37", "15");
var AmExCard = Cards[2];
Cards[3] = new CardType("DinersClubCard", "30,36,38", "14");
var DinersClubCard = Cards[3];
Cards[4] = new CardType("DiscoverCard", "6011", "16");
var DiscoverCard = Cards[4];
Cards[5] = new CardType("enRouteCard", "2014,2149", "15");
var enRouteCard = Cards[5];
Cards[6] = new CardType("JCBCard", "3088,3096,3112,3158,3337,3528", "16");
var JCBCard = Cards[6];
var LuhnCheckSum = Cards[7] = new CardType();

/*************************************************************************\
CheckCardNumber(form)
function called when users click the "check" button.
\*************************************************************************/
function CheckCardNumber(form) {
 if (document.snsignup.payment_type[0].checked == true) {
  var tmpyear;
  if (form.CardNumber.value.length == 0) {
   alert("Please enter a Card Number.");
   form.CardNumber.focus();
   return;
  }
  if (form.ExpYear.value.length == 0) {
   alert("Please enter the Expiration Year.");
   form.ExpYear.focus();
   return;
  }
  if (form.ExpYear.value > 96)
   tmpyear = "19" + form.ExpYear.value;
  else if (form.ExpYear.value < 21)
   tmpyear = "20" + form.ExpYear.value;
  else {
   alert("The Expiration Year is not valid.");
   return;
  }
  tmpmonth = form.ExpMon.options[form.ExpMon.selectedIndex].value;
 // The following line doesn't work in IE3, you need to change it
 // to something like "(new CardType())...".
 // if (!CardType().isExpiryDate(tmpyear, tmpmonth)) {
  if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) {
   alert("This card has already expired.");
   return;
  }
  card = form.CardType.options[form.CardType.selectedIndex].value;
  var retval = eval(card + ".checkCardNumber(\"" + form.CardNumber.value + "\", " + tmpyear + ", " + tmpmonth + ");");
  cardname = "";
  if (retval) { 


   // comment this out if used on an order form
   //alert("This card number appears to be valid.");
  }
  else {
  // The cardnumber has the valid luhn checksum, but we want to know which
  // cardtype it belongs to.
   for (var n = 0; n < Cards.size; n++) {
    if (Cards[n].checkCardNumber(form.CardNumber.value, tmpyear, tmpmonth)) {
     cardname = Cards[n].getCardType();
     break;
    }
   }
   if (cardname.length > 0) {
    alert("This looks like a " + cardname + " number, not a " + card + " number.");
    return false;
   }
   else {
    alert("This card number is not valid.");
    return false;
   }
  }
 }
}
/*************************************************************************\
Object CardType([String cardtype, String rules, String len, int year, 
                                        int month])
cardtype    : type of card, eg: MasterCard, Visa, etc.
rules       : rules of the cardnumber, eg: "4", "6011", "34,37".
len         : valid length of cardnumber, eg: "16,19", "13,16".
year        : year of expiry date.
month       : month of expiry date.
eg:
var VisaCard = new CardType("Visa", "4", "16");
var AmExCard = new CardType("AmEx", "34,37", "15");
\*************************************************************************/
function CardType() {
var n;
var argv = CardType.arguments;
var argc = CardType.arguments.length;

this.objname = "object CardType";

var tmpcardtype = (argc > 0) ? argv[0] : "CardObject";
var tmprules = (argc > 1) ? argv[1] : "0,1,2,3,4,5,6,7,8,9";
var tmplen = (argc > 2) ? argv[2] : "13,14,15,16,19";

this.setCardNumber = setCardNumber;  // set CardNumber method.
this.setCardType = setCardType;  // setCardType method.
this.setLen = setLen;  // setLen method.
this.setRules = setRules;  // setRules method.
this.setExpiryDate = setExpiryDate;  // setExpiryDate method.

this.setCardType(tmpcardtype);
this.setLen(tmplen);
this.setRules(tmprules);
if (argc > 4)
this.setExpiryDate(argv[3], argv[4]);

this.checkCardNumber = checkCardNumber;  // checkCardNumber method.
this.getExpiryDate = getExpiryDate;  // getExpiryDate method.
this.getCardType = getCardType;  // getCardType method.
this.isCardNumber = isCardNumber;  // isCardNumber method.
this.isExpiryDate = isExpiryDate;  // isExpiryDate method.
this.luhnCheck = luhnCheck;// luhnCheck method.
return this;
}

/*************************************************************************\
boolean checkCardNumber([String cardnumber, int year, int month])
return true if cardnumber pass the luhncheck and the expiry date is
valid, else return false.
\*************************************************************************/
function checkCardNumber() {
var argv = checkCardNumber.arguments;
var argc = checkCardNumber.arguments.length;
var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
var year = (argc > 1) ? argv[1] : this.year;
var month = (argc > 2) ? argv[2] : this.month;

this.setCardNumber(cardnumber);
this.setExpiryDate(year, month);

if (!this.isCardNumber())
return false;
if (!this.isExpiryDate())
return false;

return true;
}
/*************************************************************************\
String getCardType()
return the cardtype.
\*************************************************************************/
function getCardType() {
return this.cardtype;
}
/*************************************************************************\
String getExpiryDate()
return the expiry date.
\*************************************************************************/
function getExpiryDate() {
return this.month + "/" + this.year;
}
/*************************************************************************\
boolean isCardNumber([String cardnumber])
return true if cardnumber pass the luhncheck and the rules, else return
false.
\*************************************************************************/
function isCardNumber() {
var argv = isCardNumber.arguments;
var argc = isCardNumber.arguments.length;
var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
if (!this.luhnCheck())
return false;

for (var n = 0; n < this.len.size; n++)
if (cardnumber.toString().length == this.len[n]) {
for (var m = 0; m < this.rules.size; m++) {
var headdigit = cardnumber.substring(0, this.rules[m].toString().length);
if (headdigit == this.rules[m])
return true;
}
return false;
}
return false;
}

/*************************************************************************\
boolean isExpiryDate([int year, int month])
return true if the date is a valid expiry date,
else return false.
\*************************************************************************/
function isExpiryDate() {
var argv = isExpiryDate.arguments;
var argc = isExpiryDate.arguments.length;

year = argc > 0 ? argv[0] : this.year;
month = argc > 1 ? argv[1] : this.month;

if (!isNum(year+""))
return false;
if (!isNum(month+""))
return false;
today = new Date();
expiry = new Date(year, month);
if (today.getTime() > expiry.getTime())
return false;
else
return true;
}

/*************************************************************************\
boolean isNum(String argvalue)
return true if argvalue contains only numeric characters,
else return false.
\*************************************************************************/
function isNum(argvalue) {
argvalue = argvalue.toString();

if (argvalue.length == 0)
return false;

for (var n = 0; n < argvalue.length; n++)
if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
return false;

return true;
}

/*************************************************************************\
boolean luhnCheck([String CardNumber])
return true if CardNumber pass the luhn check else return false.
Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
\*************************************************************************/
function luhnCheck() {
var argv = luhnCheck.arguments;
var argc = luhnCheck.arguments.length;

var CardNumber = argc > 0 ? argv[0] : this.cardnumber;

if (! isNum(CardNumber)) {
return false;
  }

var no_digit = CardNumber.length;
var oddoeven = no_digit & 1;
var sum = 0;

for (var count = 0; count < no_digit; count++) {
var digit = parseInt(CardNumber.charAt(count));
if (!((count & 1) ^ oddoeven)) {
digit *= 2;
if (digit > 9)
digit -= 9;
}
sum += digit;
}
if (sum % 10 == 0)
return true;
else
return false;
}

/*************************************************************************\
ArrayObject makeArray(int size)
return the array object in the size specified.
\*************************************************************************/
function makeArray(size) {
this.size = size;
return this;
}

/*************************************************************************\
CardType setCardNumber(cardnumber)
return the CardType object.
\*************************************************************************/
function setCardNumber(cardnumber) {
this.cardnumber = cardnumber;
return this;
}

/*************************************************************************\
CardType setCardType(cardtype)
return the CardType object.
\*************************************************************************/
function setCardType(cardtype) {
this.cardtype = cardtype;
return this;
}

/*************************************************************************\
CardType setExpiryDate(year, month)
return the CardType object.
\*************************************************************************/
function setExpiryDate(year, month) {
this.year = year;
this.month = month;
return this;
}

/*************************************************************************\
CardType setLen(len)
return the CardType object.
\*************************************************************************/
function setLen(len) {
// Create the len array.
if (len.length == 0 || len == null)
len = "13,14,15,16,19";

var tmplen = len;
n = 1;
while (tmplen.indexOf(",") != -1) {
tmplen = tmplen.substring(tmplen.indexOf(",") + 1, tmplen.length);
n++;
}
this.len = new makeArray(n);
n = 0;
while (len.indexOf(",") != -1) {
var tmpstr = len.substring(0, len.indexOf(","));
this.len[n] = tmpstr;
len = len.substring(len.indexOf(",") + 1, len.length);
n++;
}
this.len[n] = len;
return this;
}

/*************************************************************************\
CardType setRules()
return the CardType object.
\*************************************************************************/
function setRules(rules) {
// Create the rules array.
if (rules.length == 0 || rules == null)
rules = "0,1,2,3,4,5,6,7,8,9";
  
var tmprules = rules;
n = 1;
while (tmprules.indexOf(",") != -1) {
tmprules = tmprules.substring(tmprules.indexOf(",") + 1, tmprules.length);
n++;
}
this.rules = new makeArray(n);
n = 0;
while (rules.indexOf(",") != -1) {
var tmpstr = rules.substring(0, rules.indexOf(","));
this.rules[n] = tmpstr;
rules = rules.substring(rules.indexOf(",") + 1, rules.length);
n++;
}
this.rules[n] = rules;
return this;
}
//  End -->

<!-- Original:  Cyanide_7 (leo7278@hotmail.com) -->
<!-- Web Site:  http://members.xoom.com/cyanide_7 -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode; 
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}
function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}
return true;
}
//  End -->

	function sameinfo1() {
    if(document.snsignup.sameinfo.checked==true)
     remove();
      else
     copy();
    }
    function copy()
   {
    document.snsignup.CCaddress.value = document.snsignup.address.value;
    document.snsignup.CCcity.value = document.snsignup.city.value;
    document.snsignup.CCstate.value = document.snsignup.state.value;
    document.snsignup.CCzipcode.value = document.snsignup.zipcode.value;
   }
  	function remove(){
    document.snsignup.CCaddress.value = '';
    document.snsignup.CCcity.value = '';
    document.snsignup.CCstate.value = '';
    document.snsignup.CCzipcode.value = '';
 	 }
    function strip_field(field,type)
   {
    var fin="";
    var field_full="document.snsignup."+field+".value";
    var val=eval(field_full);
    var ret=true;
    var bNumFound=false;
    
    switch(type)
    {
      case 0: //ACTION: Removes invalid characters: VALID CHARACTERS: numbers only
        for(var i=0;i<val.length;i++) {
          if(val.charCodeAt(i)>=48 && val.charCodeAt(i)<=57)
            fin=fin+val.charAt(i);
          else
            ret=false;
        }
        break;
      case 1: //ACTION: Removes invalid characters. VALID CHARACTERS: takes out invalids. numbers and letters
        for(var i=0;i<val.length;i++) {
          if((val.charCodeAt(i)>=48 && val.charCodeAt(i)<=57) || (val.charCodeAt(i)>=65 && val.charCodeAt(i)<=90) || (val.charCodeAt(i)>=97 && val.charCodeAt(i)<=122))
            fin=fin+val.charAt(i);
          else
            ret=false;
        }
        break;
      case 2:  //ACTION: Removes invalid chars. VALID CHARACTERS: numbers, letters. first char is letter only
        val = val.toLowerCase()
  	  for(var i=0;i<val.length;i++)
        {
          if(i==0)
          {
            if(val.charCodeAt(i)>=48 && val.charCodeAt(i)<=57)
            {
              bNumFound=true;
            }
            else
            {
              if((val.charCodeAt(i)>=65 && val.charCodeAt(i)<=90) || (val.charCodeAt(i)>=97 && val.charCodeAt(i)<=122))
                fin=fin+val.charAt(i);
              else
                ret=false;
            }
          }
          else
          {
            if(val.charCodeAt(i)>=48 && val.charCodeAt(i)<=57)
            {
              if(!bNumFound)
                fin=fin+val.charAt(i);
            }
            else
            {
              if((val.charCodeAt(i)>=65 && val.charCodeAt(i)<=90) || (val.charCodeAt(i)>=97 && val.charCodeAt(i)<=122))
              {
                bNumFound=false;
                fin=fin+val.charAt(i);
              }
              else
                ret=false;
            }
          }
        }
        break;
  
      case 3: //ACTION: Removes invalid chars. VALID CHARACTERS: numbers, letters, comma, period, hyphen, space.
        for(var i=0;i<val.length;i++)
        {
          if(val.charCodeAt(i)==32 || (val.charCodeAt(i)>=44 && val.charCodeAt(i)<=46) || val.charCodeAt(i)==95 || (val.charCodeAt(i)>=48 && val.charCodeAt(i)<=57) || (val.charCodeAt(i)>=65 && val.charCodeAt(i)<=90) || (val.charCodeAt(i)>=97 && val.charCodeAt(i)<=122))
            fin=fin+val.charAt(i);
          else
            return false;
        }
        break;
  
      case 10: //ACTION: Checks for valid characters VALID CHARACTERS: numbers only
        for(var i=0;i<val.length;i++) {
          if(val.charCodeAt(i)>=48 && val.charCodeAt(i)<=57)
          {
          }
          else
            return false;
        }return true;
        break;
      case 11: //ACTION: Checks for valid characters VALID CHARACTERS: numbers and letters
        for(var i=0;i<val.length;i++)
        {
          if((val.charCodeAt(i)>=48 && val.charCodeAt(i)<=57) || (val.charCodeAt(i)>=65 && val.charCodeAt(i)<=90) || (val.charCodeAt(i)>=97 && val.charCodeAt(i)<=122))
          {
          }
          else
            return false;
        }return true;
        break;
      case 12: //ACTION: Checks for valid characters VALID CHARACTERS: numbers, letters. first char is letter only
        for(var i=0;i<val.length;i++)
        {
          if(i==0)
          {
            if((val.charCodeAt(i)>=65 && val.charCodeAt(i)<=90) || (val.charCodeAt(i)>=97 && val.charCodeAt(i)<=122))
            {
            }
            else
              return false;
          }
          else {
            if((val.charCodeAt(i)>=48 && val.charCodeAt(i)<=57) || (val.charCodeAt(i)>=65 && val.charCodeAt(i)<=90) || (val.charCodeAt(i)>=97 && val.charCodeAt(i)<=122))
            {
            }
            else
              return false;
          }
        }return true;
        break;
    }
    eval(field_full+"='"+fin+"'");
    return ret;
  }

function validateForm() {
var ret = true;

if (document.snsignup.mid.value.length < 4) {
 document.snsignup.mid.style.background = "yellow";
 ret = false;
} else {
 document.snsignup.mid.style.background = "white";
}

if (document.snsignup.loginid.value.length < 2) // validate User Id length
{
 document.snsignup.loginid.style.background = "yellow";
 ret=false;
} else {
 if (strip_field("loginid",12))
  document.snsignup.loginid.style.background = "white";
 else document.snsignup.loginid.style.background = "Aqua";
}
if (document.snsignup.atr.value == "true") {
 if (document.snsignup.password.value.length < 4) // validate Password length
 {
  document.snsignup.password.style.background = "yellow";
  ret=false;
  } else {
  if (strip_field("password",11))
   document.snsignup.password.style.background = "white";
  else document.snsignup.password.style.background = "Aqua";
 }
}

if (document.snsignup.firstname.value.length < 2) // validate First Name length
{
 document.snsignup.firstname.style.background = "yellow";
 ret=false;
} else {
 document.snsignup.firstname.style.background = "white";
}

if (document.snsignup.lastname.value.length < 2) // validate Last Name length
{
 document.snsignup.lastname.style.background = "yellow";
 ret=false;
} else {
 document.snsignup.lastname.style.background = "white";
}

/*if (document.snsignup.nickname.value.length < 1) // validate Nickname length
{
 document.snsignup.nickname.style.background = "yellow";
 ret=false;
} else {
 document.snsignup.nickname.style.background = "white";
}*/

/*if (document.snsignup.pfirstname.value.length < 2) // validate PFirst Name length
{
document.snsignup.pfirstname.style.background = "yellow";
ret=false;
}else{
document.snsignup.pfirstname.style.background = "white";
}
if (document.snsignup.plastname.value.length < 2) // validate PLast Name length
{
document.snsignup.plastname.style.background = "yellow";
ret=false;
}else{
document.snsignup.plastname.style.background = "white";
}*/

/*if (document.snsignup.address.value.length < 2) // validate Address length
{
document.snsignup.address.style.background = "yellow";
ret=false;
}else{
document.snsignup.address.style.background = "white";
}
if (document.snsignup.city.value.length < 2) // validate City length
{
document.snsignup.city.style.background = "yellow";
ret=false;
}else{
document.snsignup.city.style.background = "white";
}
if (document.snsignup.state.value.length < 2) // validate State length
{
document.snsignup.state.style.background = "yellow";
ret=false;
}else{
document.snsignup.state.style.background = "white";
}
if (document.snsignup.zipcode.value.length < 5) // validate Zip Code length
{
document.snsignup.zipcode.style.background = "yellow";
ret=false;
}else{
if (strip_field("zipcode",10))
document.snsignup.zipcode.style.background = "white";
else document.snsignup.zipcode.style.background = "Aqua";
}
*/

if (document.snsignup.company.value.length == 0) // validate Company and Work Phone length
{
 if (document.snsignup.homephonearea.value.length < 3) // validate Home Phone Area length
 {
  document.snsignup.homephonearea.style.background = "yellow";
  ret=false;
 } else {
  if (strip_field("homephonearea",10))
   document.snsignup.homephonearea.style.background = "white";
  else
   document.snsignup.homephonearea.style.background = "Aqua";
 }
 if (document.snsignup.homephoneexch.value.length < 3) // validate Home Phone Exchange length
 {
  document.snsignup.homephoneexch.style.background = "yellow";
  ret=false;
 } else {
  if (strip_field("homephoneexch",10))
   document.snsignup.homephoneexch.style.background = "white";
  else
   document.snsignup.homephoneexch.style.background = "Aqua";
 }
 if (document.snsignup.homephonesuff.value.length < 4) // validate Home Phone Suffix length
 {
  document.snsignup.homephonesuff.style.background = "yellow";
  ret=false;
 } else {
  if (strip_field("homephonesuff",10))
   document.snsignup.homephonesuff.style.background = "white";
  else
   document.snsignup.homephonesuff.style.background = "Aqua";
 }
}
if (document.snsignup.payment_type[0].checked == true) {
 if (document.snsignup.CardNumber.value.length < 14) // validate Credit Card Number length
 {
  document.snsignup.CardNumber.style.background = "yellow";
  ret=false;
 } else {
  if (strip_field("CardNumber",10))
   document.snsignup.CardNumber.style.background = "white";
  else
   document.snsignup.CardNumber.style.background = "Aqua";
 }
 if (document.snsignup.CIDNumber.value.length < 3) // validate Credit Card ID Number length
 {
 document.snsignup.CIDNumber.style.background = "yellow";
 ret=false;
 }else{
 if (strip_field("CIDNumber",10))
 document.snsignup.CIDNumber.style.background = "white";
 else document.snsignup.CIDNumber.style.background = "Aqua";
 }
 if (document.snsignup.ExpMon.selectedIndex == 0) // validate Credit Card Expire Month length
 {
 document.snsignup.ExpMon.style.background = "yellow";
 ret=false;
 }else{
 document.snsignup.ExpMon.style.background = "white";
 }
 if (document.snsignup.ExpYear.selectedIndex == 0) // validate Credit Card Expire Year length
 {
 document.snsignup.ExpYear.style.background = "yellow";
 ret=false;
 }else{
 document.snsignup.ExpYear.style.background = "white";
 }
}
if (document.snsignup.cardname.value.length < 2) // validate Name On Credit Card length
{
document.snsignup.cardname.style.background = "yellow";
ret=false;
}else{
document.snsignup.cardname.style.background = "white";
}
if (document.snsignup.CCaddress.value.length < 2) // validate Credit Card Address length
{
document.snsignup.CCaddress.style.background = "yellow";
ret=false;
}else{
document.snsignup.CCaddress.style.background = "white";
}
if (document.snsignup.CCcity.value.length < 2) // validate Credit Card City length
{
document.snsignup.CCcity.style.background = "yellow";
ret=false;
}else{
document.snsignup.CCcity.style.background = "white";
}
if (document.snsignup.CCstate.value.length < 2) // validate Credit Card State length
{
document.snsignup.CCstate.style.background = "yellow";
ret=false;
}else{
document.snsignup.CCstate.style.background = "white";
}

//This is where we look to see if you have a company and No work phone
//Start Here
if (document.snsignup.company.value.length > 0) // validate Company and Work Phone length
{
if (document.snsignup.workphonearea.value.length < 3 || document.snsignup.workphoneexch.value.length < 3 || document.snsignup.workphonesuff.value.length < 4){
 document.snsignup.workphoneexch.style.background = "yellow";
 document.snsignup.workphonearea.style.background = "yellow";
 document.snsignup.workphonesuff.style.background = "yellow";
 ret=false
 }else{
if (strip_field("workphoneexch",10) || strip_field("workphonearea",10) || strip_field("workphonesuff",10)){
 alert(stripfield("workphoneexch",10));
 document.snsignup.workphoneexch.style.background = "red";
 document.snsignup.workphonearea.style.background = "red";
 document.snsignup.workphonesuff.style.background = "red";
 ret=false;
}else{
document.snsignup.company.style.background = "white";
 document.snsignup.workphoneexch.style.background = "white";
 document.snsignup.workphonearea.style.background = "white";
 document.snsignup.workphonesuff.style.background = "white";
}
}
}
//End Here

if (document.snsignup.CCzipcode.value.length < 2) // validate Credit Card ZipCode length
{
document.snsignup.CCzipcode.style.background = "yellow";
ret=false;
}else{
if (strip_field("CCzipcode",10))
document.snsignup.CCzipcode.style.background = "white";
else document.snsignup.CCzipcode.style.background = "Aqua";
}

/*if (document.snsignup.agreeterms.checked == false) // validate Agree To Terms
{
alert('You Must Agree To The Terms');
document.snsignup.agreeterms.style.background = "red";
document.snsignup.agreeterms.focus();
ret=false;
}else{
document.snsignup.agreeterms.style.background = "white";
}
*/
if (ret == true){
return //confirm('Please Confirm Submit');
//return confirm('Please make sure that this is the correct merchant number:'+document.snsignup.mid.value);
//document.snsignup.jvalid.value="yes";
}
else alert('Please Fill in all the felds in yellow and/or correct any felds in red'); return false;
}

//Script created by Jim Young (www.requestcode.com)
//Submitted to JavaScript Kit (http://javascriptkit.com)
//Visit http://javascriptkit.com for this script

//Set the tool tip message you want for each link here.
     var X=0;
	 var Y=0;
	 var par;
	 var prevheight;           
     function showtip(current,e,text)
        {
         if (document.layers) // Netscape 4.0+
            {
             theString="<DIV CLASS='ttip'>"+text+"</DIV>"
             document.tooltip.document.write(theString)
             document.tooltip.document.close()
             document.tooltip.left=e.pageX+14
             document.tooltip.top=e.pageY+2
             document.tooltip.visibility="show"
            }
         else
           {
            if(document.getElementById) // Netscape 6.0+ and Internet Explorer 5.0+
              {
               elm=document.getElementById("tooltip")
               elml=current
			   par=current.parentNode;
			   prevheight=0;
			   X=0
			   Y=0
				while(par.parentNode!=null)
				{
				  //alert("Type: " +par + "\nOffset: "+par.offsetLeft);
				  X+=par.offsetLeft;
  				    if(prevheight!=par.offsetHeight)
				  Y+=par.offsetTop;
				  prevheight=par.offsetHeight;
 				  par=par.parentNode;
				}
				//alert("Final Coords: " +X +" " + Y);
               elm.innerHTML=text
               //elm.style.height=elml.style.height
               elm.style.top=Y+-20
               elm.style.left=X
               elm.style.visibility = "visible"
              }
           }
        }
function hidetip(){
if (document.layers) // Netscape 4.0+
   {
    document.tooltip.visibility="hidden"
   }
else
  {
   if(document.getElementById) // Netscape 6.0+ and Internet Explorer 5.0+
     {
      elm.style.visibility="hidden"
     }
  } 
}
function why() {
 if (document.snsignup.company.value.length > 0) {
  document.getElementById('workPhone').innerHTML = '<font face=arial size=1><b>Work Phone</b></font><font face="verdana,arial" size="2" color="red">*</font>';
  document.getElementById('homePhone').innerHTML = '<font face=arial size=1><b>Home Phone</b></font>';
  document.snsignup.homephonesuff.style.background = "white";
  document.snsignup.homephoneexch.style.background = "white";
  document.snsignup.homephonearea.style.background = "white";
 } else {
  document.getElementById('homePhone').innerHTML = '<font face=arial size=1><b>Home Phone</b></font><font face="verdana,arial" size="2" color="red">*</font>';
  document.getElementById('workPhone').innerHTML = '<font face=arial size=1><b>Work Phone</b></font>';
  document.snsignup.workphoneexch.style.background = "white";
  document.snsignup.workphonearea.style.background = "white";
  document.snsignup.workphonesuff.style.background = "white";
 }
}

