<!-- Hide from older browsers

if (document.images)
{
HomeMouseOff = new Image();
HomeMouseOff.src = "images/mhomeoff.gif"
HomeMouseOver = new Image();
HomeMouseOver.src = "images/mhome.gif"

InfoMouseOff = new Image();
InfoMouseOff.src = "images/minfooff.gif"
InfoMouseOver = new Image();
InfoMouseOver.src = "images/minfo.gif"

AccountMouseOff = new Image();
AccountMouseOff.src = "images/maccountoff.gif"
AccountMouseOver = new Image();
AccountMouseOver.src = "images/maccount.gif"

ProductsMouseOff = new Image();
ProductsMouseOff.src = "images/mproductsoff.gif"
ProductsMouseOver = new Image();
ProductsMouseOver.src = "images/mproducts.gif"

PurchaseMouseOff = new Image();
PurchaseMouseOff.src = "images/mpurchaseoff.gif"
PurchaseMouseOver = new Image();
PurchaseMouseOver.src = "images/mpurchase.gif"

ContactMouseOff = new Image();
ContactMouseOff.src = "images/mcontactoff.gif"
ContactMouseOver = new Image();
ContactMouseOver.src = "images/mcontact.gif"



}


function turnMouseOff(ImageName) {
        if (document.images != null) {
                document[ImageName].src = eval(ImageName + "MouseOff.src");
        }
}

function turnMouseOver(ImageName) {
        if (document.images != null) {
                document[ImageName].src = eval(ImageName + "MouseOver.src");
        }
}



// -->


function checkKey()
{
   if ((window.event.ctrlKey) && (window.event.keyCode==10))
       document.frm.submit();
}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
function storeCaret ( txtobj )
{
   if (document.all[txtobj].createTextRange)
       document.all[txtobj].caretPos = document.selection.createRange().duplicate();
}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
function insertAtCaret (text, txtobj)
{
   if (document.all[txtobj].createTextRange && document.all[txtobj].caretPos)
   {
      var caretPos  = document.all[txtobj].caretPos;
      caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + '' : text;
   }
   else
       document.all[txtobj].value  += text;

   document.all[txtobj].focus();
}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
function ins_format(open_tag, close_tag, txtobj )
{
    var format_text = document.selection.createRange().text;
    if (format_text != '')
         insertAtCaret (open_tag + format_text + close_tag, txtobj );
    else alert('Select a portion of text!!!');

}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
function ins_image()
{
    winImg = window.open ("",
                          "StorageImgWindow",
                          "dependent=yes,toolbar=no,scrollbars=yes,status=no,menubar=no,resizable=yes,width=600,height=400,top=10,left=10");
    winImg.document.location="/Storage/Storage.php";
    winImg.focus();
}


//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
function ins_link()
{
        var linkURL  = prompt("Enter the complete URL for the link you wish to add.", "http://");
    var linkText = document.selection.createRange().text;
    if (linkURL)
    {
        if (linkText == '')
            linkText = prompt("Enter the title of the web page you wish to reference", "");
        if (!linkText)
            linkText = linkURL

        insertAtCaret ("[LINK]" + linkURL + "[/LINK]" + linkText + "[/ENDLINK]");
    }
}


//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------

function ins_smile(SmileCod)
{
  insertAtCaret (SmileCod);
}

//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------

function validateString( userid )
{
        var regexp=/\W/;

        if (regexp.test(userid))
        {
            return false;
        }
        else
        {
            return true;
        }
}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
function validateNumber( some_number )
{
        var regexp=/\d/;

        if (regexp.test( some_number ))
        {
            return true;
        }
        else
        {
            return false;
        }
}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
function ltrim(s) {
   var count=0;
   var i = 0;
   var space = " ";
   var newLine="\n";
   var cr = "\r";
   var tab = "\t";
   var sRet;

   if( s == '' )
     return '';

   while (
      (s.charAt(i) == space) |
      (s.charAt(i) == newLine) |
      (s.charAt(i) == cr) |
      (s.charAt(i) == tab)){
      count++;
      i++
    }

   if (count > 0)
      sRet = s.substring(count, s.length);
   return(sRet);
}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------

function rtrim(s) {
   var count=0;
   var i;
   var space = " ";
   var newLine="\n";
   var cr = "\r";
   var tab = "\t";
   var sRet;

   if( s !== ' ' )
     return s;

   i = s.length - 1
   while (
      (s.charAt(i) == space) |
      (s.charAt(i) == newLine) |
      (s.charAt(i) == cr) |
      (s.charAt(i) == tab)) {
      count++;
      i--
   }
   if (count > 0)
      sRet = s.substring(0, s.length - count);

   return(sRet);
}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------

function trim(s) {
   return(rtrim(ltrim(s)));
}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
function demoTicket()
            {
              var rVal;
              rVal = window.showModalDialog( 'demo_ticket.php',null,'DialogHeight:600px;DialogWidth:800px;help:no;status:no' );
              ans_amount = rVal.substring(0, 1);
              ans_time   = rVal.substring( 1, rVal.length - 1 );
              ans_time = 4000 - ans_time;
              rVal = window.showModalDialog( 'demo_results.php?ans_amount=' + ans_amount + '&ans_time=' + ans_time,null,'DialogHeight:600px;DialogWidth:800px;help:no;status:no' );
            }
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------

function validEmail ( email )
{
  var re_email = new RegExp("^\[^@\t< ]+@\[^@.\t]+(\.\[^@.\n> ]+)+$","g");
  if (!re_email.test( email ))
  {
     return false
  }
  else
  {
     return true
  }
}

//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------

   var submitted = false;

    function doSubmit(form) {
            if (!submitted) {
                    submitted = true;
                    form.submit();
            }
    }
    var submitted = false;

    function doSubmit(form) {
            if (!submitted) {
                    submitted = true;
                    form.submit();
            }
    }

var whitespace = " \t\n\r";

//**********************************************************************
// Description:  set focus to form field
//
//  Parameters:  form field control
//     Returns:  none
//**********************************************************************
function SetFocus (thisControl)
{
        thisControl.focus();
        return;
}

//**********************************************************************
// Description:  edit email address
//
//  Parameters:  string
//     Returns:  none
//**********************************************************************
function checkEmail(checkString)
{
    var emptystr = "";
    var newstr = "";
    var at = false;
    var dot = false;

    // IF EMAIL ADDRESS HAS A '@' CHARACTER
    if (checkString.indexOf("@") != -1) {
      at = true;

    // IF EMAIL ADDRESS HAS A '.' CHARACTER
    } else if (checkString.indexOf(".") != -1) {
      dot = true;
    }
    // PARSE REMAINDER OF STRING
    for (var i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i + 1)
        if ((ch >= "A" && ch <= "Z") || (ch >= "a" && ch <= "z")
                || (ch == "@") || (ch == ".") || (ch == "_")
                || (ch == "-") || (ch >= "0" && ch <= "9")) {
                newstr += ch;
                if (ch == "@") {
                    at=true;
                }
                if (ch == ".") {
                    dot=true;
                }
        }
    }
    if ((at == true) && (dot == true)) {
        return newstr;
    }
    else {
      // DISPLAY ERROR MESSAGE
      return emptystr;
    }
}

//**********************************************************************
// Description:  strip whitespace
//
//  Parameters:  string
//     Returns:  none
//**********************************************************************
function stripWhitespace (s)
{   return stripCharsInBag (s, whitespace)
}

//**********************************************************************
// Description:  strip specified char from string
//
//  Parameters:  string, specified char
//     Returns:  none
//**********************************************************************
function stripCharsInBag (s, 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 < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

//**********************************************************************
// Description:  check fields - automatically replace all single quotes with a pair of
//                                                       single quotes (SQL Syntax requirement)
//  Parameters:  text
//     Returns:  altered string
//**********************************************************************
function replaceQuotes(checkString)
{
    newString = "";    // REVISED/CORRECTED STRING
    count = 0;         // COUNTER FOR LOOPING THROUGH STRING

    // ENSURE THAT AT LEAST ONE SINGLE-QUOTE EXISTS
    if (checkString.indexOf("'")) {
        for (i = 0; i < checkString.length; i++) {
            ch = checkString.substring(i, i+1);

            // IF CHARACTER IS A SINGLE-QUOTE
            if (ch == "'") {

                // REMOVE ALL SEQUENTIAL SINGLE-QUOTE CHARACTERS
                while (ch == "'") {
                    i++;
                    ch = checkString.substring(i, i+1);
                }
                // ADD A SECOND ' CHARACTER
                newString += "''";

                // CHECK CURRENT CHARACTER - KEEP PRINTABLE CHARACTER
                //if (ch >= " " && ch <= "~") {
                    newString += ch;
                //}
            }
            // CHARACTER IS NOT A ' CHARACTER
            else {
                // KEEP ALL PRINTABLE CHARACTERS
                //if (ch >= " " && ch <= "~") {
                    newString += ch;
                //}
            }
        }
    }

                if (newString != "")
                        {
                                return newString;
                        }
                else
                        {
                                return checkString;
                        }

}


var Cards = new makeArray(8);
Cards[0] = new CardType("MasterCard", "51,52,53,54,55", "16");
var MasterCard = Cards[0];
Cards[1] = new CardType("Visa", "4", "13,16");
var Visa = Cards[1];
Cards[2] = new CardType("AMEX", "34,37", "15");
var AMEX = Cards[2];
Cards[3] = new CardType("DinersClub", "30,36,38", "14");
var DinersClub = Cards[3];
Cards[4] = new CardType("Discover", "6011", "16");
var Discover = 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 CheckCardNumber(form) {

        if (form._cc_number.value.length == 0) {
                alert("Your billing information is incomplete. Please enter a credit card number.");
                form._cc_number.focus();
                return false;
        }

        /* Can not be zero length as it is selected from a dropdown.
        if (form._cc_expyear.value.length == 0) {
                alert("Please enter the Expiration Year.");
                form._cc_expyear.focus();
                return false;
        }
        */

        //var tmpyear = form._cc_expyear.value;
        var tmpyear = form._cc_expyear.options[form._cc_expyear.selectedIndex].value;

        /*
        if (form._cc_expyear.value > 96)
                tmpyear = "19" + form._cc_expyear.value;
        else if (form._cc_expyear.value < 21)
                tmpyear = "20" + form._cc_expyear.value;
        else {
                alert("The Expiration Year is not valid.");
                form._cc_expyear.focus();
                return false;
        }
        */

        var tmpmonth = form._cc_expmonth.options[form._cc_expmonth.selectedIndex].value;

        //alert("tmpyear: "+ tmpyear + " tmpmonth: "+ tmpmonth);

        // 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 credit card appears to have expired.");
                form._cc_expmonth.focus();
                return false;
        }

        card = form.cc_type.options[form.cc_type.selectedIndex].value;
        var retval = eval(card + ".checkCardNumber(\"" + form._cc_number.value +
                "\", " + tmpyear + ", " + tmpmonth + ");");
        cardname = "";

        if (retval)
                // comment this out if used on an order form
                //alert("This card number appears to be valid.");
                return true;
        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._cc_number.value, tmpyear, tmpmonth)) {
                                cardname = Cards[n].getCardType();
                                break;
                        }
                }
                if (cardname.length > 0) {
                        alert("This appears to be a " + cardname + " number, not a " + card + " number. " +
                                        "Please correct the card type or the card number.");
                        form.cc_type.focus();
                        return false;
                }
                else {
                        alert("This is not a valid credit card number. " +
                                        "Please correct the card number.");
                        form._cc_number.focus();
                        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 Visa = new CardType("Visa", "4", "16");
var AMEX = 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;

        var today = new Date();
        var 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;
}

//**********************************************************************
// Description:  form validation rules
//**********************************************************************
function verifyInformation(thisForm)
{
        if (stripWhitespace(thisForm.card_holder.value) == '')
        {
            alert("Your billing information is incomplete. Please enter Cardholder`s name.");
               SetFocus(thisForm.card_holder);
               return false;
                }

        if (!CheckCardNumber(thisForm))
             return false;

        return true;
}


function openPrivacy()
{
    window.open("privacy.htm","msg",'top=5,left=150,resizable=no,width=620,height=550,scrollbars=yes,menubar=0');
}

function openSafe( lang )
{
    window.open("safe.php?lang=$lang","msg",'top=5,left=150,resizable=no,width=590,height=400,scrollbars=yes,menubar=0');
}
