var NN = false;
var IE = false;
var deletecode = 127;
var deletekey = 46;
var backspacecode = 8;
var dash = 45;
var dot = 46;
var underscore = 95;
var colon = 58;
var space = 32;
//if (navigator.appName == 'Netscape')
if (navigator.appName == 'Microsoft Internet Explorer')
  IE = true;
else
  NN = true;
var version = parseInt(navigator.appVersion);

function isValidCreditCardNumber(cardNumber, cardType)
{
  var isValid = false;
  var ccCheckRegExp = /[^\d ]/;
  isValid = !ccCheckRegExp.test(cardNumber);

  if (isValid)
  {
    var cardNumbersOnly = cardNumber.replace(/ /g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;

    switch(cardType)
    {
      case "MasterCard":
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^5[1-5]/;
        break;

      case "Visa":
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
        prefixRegExp = /^4/;
        break;

      case "Amex":
        lengthIsValid = (cardNumberLength == 15);
        prefixRegExp = /^3(4|7)/;
        break;

      case "Discover":
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^6011/;
        break;

      default:
        prefixRegExp = /^$/;
        alert("Card type not found");
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
  }

  if (isValid)
  {
    var numberProduct;
    var numberProductDigitIndex;
    var checkSumTotal = 0;

    for (digitCounter = cardNumberLength - 1; 
      digitCounter >= 0; 
      digitCounter--)
    {
      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
      digitCounter--;
      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
      for (var productDigitCounter = 0;
        productDigitCounter < numberProduct.length; 
        productDigitCounter++)
      {
        checkSumTotal += 
          parseInt(numberProduct.charAt(productDigitCounter));
      }
    }

    isValid = (checkSumTotal % 10 == 0);
  }

  return isValid;
}

function isValidCCV(cardtype, ccv) {
    var ccvOnly = ccv.replace(/ /g,"");
    var ccvLength = ccvOnly.length;
    if (cardtype == "Amex")
      return (ccvLength == 4 ? true : false);
    else
      return (ccvLength == 3 ? true : false);
}
function changelanguage(lang) {
  document.forms['parent'].newlanguage.value = lang;
  document.forms['parent'].formaction.value = 'view';
  document.forms['parent'].submit();
}
function setImage(obj, fromimage, toimage) {
  image = obj.getAttribute('src');
  image = image.substr(0, image.indexOf(fromimage)) + toimage;
  obj.setAttribute('src', image);
}
function setover(obj) {
  setImage(obj, '.jpg', '_over.jpg');
}
function setout(obj) {
  setImage(obj, '_over.jpg', '.jpg');
}
function divover(obj) {
}
function divout(obj) {
}
function cancelupdate() {
  fieldvalue.innerHTML = values[selectedfiledid];
  getEditButton();
}
function updatefield() {
  thisform = document.forms['updatepane'];
  if (mandatory[selectedfiledid] == 'y' && isEmpty(thisform.udpatefield.value)) {
    alert(inputrequired);
    thisform.udpatefield.focus();
    return;
  }
  if (validation[selectedfiledid] == 'e' && !isEmpty(thisform.udpatefield.value) && !isEmail(thisform.udpatefield.value)) {
    alert(invalidemail);
    thisform.udpatefield.focus();
    return;
  }
  thisform.submit();
}
function trrollover(obj) {
  if (obj.id == selectedid)
    return;
  obj.style.backgroundColor = "#FFFFFF";
  obj.style.cursor = 'pointer';
}
function trrollout(obj) {
  if (obj.id == selectedid)
    return;
  obj.style.backgroundColor = "#F3F4F4";
  obj.style.cursor = 'text';
}
function publictrrollover(obj) {
  obj.style.backgroundColor = "#9C9494";
  obj.style.cursor = 'pointer';
}
function publictrrollout(obj) {
  obj.style.backgroundColor = "";
  obj.style.cursor = 'text';
}

function isURL(url) {
  var isurl = new RegExp('^[w]{3}.([a-z0-9-]+.)?[a-z]+.');
  if (window.RegExp)
    return isurl.test(url);
} 

function getWindow(url) {
  newWindow = window.open("http://" + url);
}

function getKeyCode(evt) {
  if (NN)
    return evt.which;
  else
    return window.event.keyCode;
}

function getTargetObject(evt) {
  if (NN)
    return evt.target;
  else
    return window.event.srcElement;
}

function isValidCode(code, type) {
  if (type == 'c' || type == 'm' || type == 'e')
    return true;
  if (code == deletecode || code == backspacecode || code == 0 || code == deletekey)
    return true;
  if (type == 'n' && code <= 57 && code >= 48)
    return true;
  if (type == 'a' && (code <= 90 && code >= 48 || code == space || code <= 122 && code >= 97))     return true;
  if (type == 't' && (code >= 40 && code <= 41 || code == space || code == dash || isValidCode(code, 'n')))
    return true;
  if (type == 'i' && (isValidCode(code, 'a') || isValidCode(code, 't')))
    return true;
  if (type == 'p' && (isValidCode(code, 'n') || code == 46))
    return true;
  if (type == 'd' && (isValidCode(code, 'n') || code == 45))
    return true;
  if (type == 'k' && (isValidCode(code, 'n') || code >= 65 && code <= 90 || code <= 122 && code >= 97 || code == dash))
    return true;
  if (type == 'f' && (isValidCode(code, 'k') || code == underscore || code == dot || code == colon))
    return true;
  if (type == 'z' && (code == colon || isValidCode(code, 'n')))
    return true;
  if (type == 'r' && (code >= 65 && code <= 90 || code <= 122 && code >= 97))
    return true;
  if (type == 'm' && (isValidCode(code, 'r') || code == space))
    return true;
  return false;
}

function checkcode(evt, type) {
  var code = getKeyCode(evt);
  if (!isValidCode(code, type)) {
    if (NN)
      return false;
    else {
      window.event.returnValue=false;
      return false;
    }
  }
  return true;
}

function isDecimal(data) {
  var fullno = /^\d+\.\d{1,5}$/;
  if (window.RegExp)
    return (isNumber(data) || fullno.test(data));
}
function isNumber(data) {
  var isnumber = /\D/;
  if (window.RegExp)
    return !isnumber.test(data);
}

function isEmpty(data) {
  var nonempty = new RegExp('.+');
  if (window.RegExp)
    return !nonempty.test(data);
}

function isEmail(data) {
  var isemail = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,6}|[0-9]{1,3})(\]?)$/;
  var notemail = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
  if (window.RegExp) {
    if (!notemail.test(data) && isemail.test(data))
      return true;
    else
      return false;
  }
}
function getChildWindow(url, name) {
  return window.open(url, name, 'dependent,scrollbars=yes,toolbar=no,location=no,menubar=no, statusbar=no');
}
function getNewChildWindow(url, name, width, height) {
  newWindow = window.open(url, name, 'dependent,width=' + width + ',height=' + height + ',scrollbars=yes,toolbar=no,location=no,menubar=no, statusbar=no,left=50,screenX=50,top=50,screenY=50');
}
function isDate(data) {
  var isdate = new RegExp('[0-9]{1,2}[-]{1}[0-9]{1,2}[-]{1}[0-9]{4}');
  if (!isdate.test(data))
    return false;
  var entries = data.split("-");
  var month = parseInt(entries[1], 10) - 1;
  var date = new Date(parseInt(entries[2], 10), month, parseInt(entries[0], 10));

  if (month != date.getMonth())
    return false;
  return date.getTime();
}
function isID(data) {
  var isid = new RegExp('[A-Z,a-z]{1}[0-9]{6}[(]{1}[0-9]{1}[)]{1}');
  if (window.RegExp)
    return isid.test(data);
}
function isValidWidth(data, from, to) {
  var isvalidaWidth = new RegExp('^[A-Za-z0-9]{' + from + ',' + to + '}$');
  if (window.RegExp) {
    if (!isvalidaWidth.test(data))
      return false;
    else
      return true;
  }
}
function isTime(data) {
  var istime = new RegExp('[0-9]{1,2}[:]{1}[0-9]{1,2}[:]{1}[0-9]{1,2}');
  if (!istime.test(data))
    return false;
  var entries = data.split(":");
  var hh = parseInt(entries[0], 10);
  var mm = parseInt(entries[1], 10);
  var ss = parseInt(entries[2], 10);
  if (hh == 'NA' || mm == 'NA' || ss == 'NA' || hh >= 24 || mm > 60 || ss > 60)
    return false;
  return true;
}
function buttonmouseover(obj) {
  obj.style.color = '#ff0000';
}
function buttonmouseout(obj) {
  obj.style.color = '#000000';
}
function setOverImage(obj) {
  document.getElementById(obj).style.backgroundImage = "url(../images/navigationlinkover.gif)";
}
function setOutImage(obj) {
  document.getElementById(obj).style.backgroundImage = "url(../images/navigationlink.gif)";
}
function hasSpace(data) {
  var space= /\s/;
  if (window.RegExp)
    return space.test(data);
}
function isLetters(data) {
  for (i = 0; i < data.length; i++) {
    if (data.charCodeAt(i) > 127)
      return false;
  }
  return true;
}
function changeObjOpac(obj, opac) {
  obj.opacity = opac * .01;
  obj.MozOpacity = opac * .01;
  obj.KhtmlOpacity = opac * .01;
  obj.filter = "alpha(opacity=" + opac + ")";
}
