//www.websageinc.com
//Used for mouseovers
function newImage(arg) {
  if (document.images) {
    rslt = new Image();
    rslt.src = arg;
    return rslt;
  }
}

//Used for mouseovers
function changeImages() {
  if (document.images && (preloadFlag == true)) {
    for (var i=0; i<changeImages.arguments.length; i+=2) {
      document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
    }
  }
}

//Used for preloading mouseovers
var preloadFlag = false;
function preloadImages() {
  if (document.images) {
    Image01 = newImage("images/sbtn_Home02.gif");
    Image02 = newImage("images/sbtn_About02.gif");
    Image03 = newImage("images/sbtn_Area02.gif");
    Image04 = newImage("images/sbtn_FAQ02.gif");
    Image05 = newImage("images/sbtn_Terms02.gif");
    Image06 = newImage("images/sbtn_Rates02.gif");
    Image07 = newImage("images/sbtn_Partners02.gif");
    preloadFlag = true;
  }
}

function validate () {
  /* check for empty or unselected field */
  switch (validate.arguments[1]) {
    case ('empty'):  /* check for empty textbox, i.e. validate('txtName','empty','Please enter a name') */
      if (document.forms[0].elements[validate.arguments[0]].value == '') {
        alert(validate.arguments[2]);
        document.forms[0].elements[validate.arguments[0]].focus();
        return true;
      }
      break;
    case ('numeric'):  /* check for numeric, i.e. validate('txtTel','numeric','Please enter numbers only. Avoid slashes & dashes.') */
      if (isNaN (document.forms[0].elements[validate.arguments[0]].value) == true) {
        alert(validate.arguments[2]);
        document.forms[0].elements[validate.arguments[0]].focus();
        return true;
      }
      break;
    case ('telephone'): /* check for valid telephone characters [0-9, ()-]. i.e. validate('txtTel','telephone','Please enter a valid telephone number') */
      var validNum = "0123456789 ()-";
      a = new String(document.forms[0].elements[validate.arguments[0]].value);
      for(i=0; i<a.length;i++){
        if(validNum.indexOf(a.charAt(i)) < 0){
          alert(validate.arguments[2]);
          document.forms[0].elements[validate.arguments[0]].focus();
          return true;
        }
      }
      break;
    case ('comma'): /* check for valid numerals [0-9 ,&. ]. i.e. validate('txtPayment','comma','Please enter a valid amount') */
      var validNum = " 0123456789,.";
      a = new String(document.forms[0].elements[validate.arguments[0]].value);
      for(i=0; i<a.length;i++){
        if(validNum.indexOf(a.charAt(i)) < 0){
          alert(validate.arguments[2]);
          document.forms[0].elements[validate.arguments[0]].focus();
          return true;
        }
      }
      break;
    case ('email'):    /* check for valid email, i.e. validate('txtEMail','email','Please enter a valid email address') */
      /* assumes valid email has '@' from 2nd char onwards     */
      /* assumes valid email has '.' from 4th char onwards     */
      /* assumes valid email has at least 2 char after the '.' */
      if (validate.arguments[1] == 'email') {
        var a, i;
        a = document.forms[0].elements[validate.arguments[0]].value;
        i = a.indexOf('.') + 3;
        if(a.indexOf('@') < 1 || a.indexOf('.') < 3 || a.length < i) {
          alert(validate.arguments[2]);
          document.forms[0].elements[validate.arguments[0]].focus();
          return true;
        }
      }
      break;
    case ('unselected1'):    /* check unselected drop downs, i.e. validate('selCountry','unselected1','Please select a country') */
      if (document.forms[0].elements[validate.arguments[0]].selectedIndex == 0) {
        alert(validate.arguments[2]);
        document.forms[0].elements[validate.arguments[0]].focus();
        return true;
      }
      break;
    case ('unselected2'):    /* check unselected radio buttons, i.e. validate('rdoTel','unselected2','Please select type of contact number',4) where 4 is the total rdo */
      var j = false;
      for (i=0; i<validate.arguments[3]; i++) {
        if (document.forms[0].elements[validate.arguments[0]][i].checked == true){j = true;}
      }
      if (j == false){
        alert(validate.arguments[2]);
        document.forms[0].elements[validate.arguments[0]][0].focus();
        return true;
      }
      break;
    case ('unselected3'):    /* check unselected checkboxes, i.e. validate('chkService','unselected3','Please enter or select type of service',12) where 12 is the total chk */
      var j = false;
      var strArgument, k;
      for (i=0; i<validate.arguments[3]; i++) {
        k = i+1;
        strArgument = validate.arguments[0] + k;
        if (document.forms[0].elements[strArgument].checked == true){j = true;}
      }
      if (j == false){
        alert(validate.arguments[2]);
        strArgument = validate.arguments[0] + 1;
        document.forms[0].elements[strArgument].focus();
        return true;
      }
      break;
    case ('range'):    /* check if value is between a range, i.e. validate('txtYear','range','Please enter valid year',1800,2100) where 1800 is the min and 2100 is max */
      /* minimum and maximum value must be present                 */
      /* minimum and maximum value = 0 is unchecked                */
      /* minimum value must preceed maximum value in the arguments */
      if ((validate.arguments[3] > 0 && document.forms[0].elements[validate.arguments[0]].value < validate.arguments[3]) ||
          (validate.arguments[4] > 0 && document.forms[0].elements[validate.arguments[0]].value > validate.arguments[4])) {
        alert(validate.arguments[2]);
        document.forms[0].elements[validate.arguments[0]].focus();
        return true;
      }
      break;
    case ('length'):  /* check the length of textbox value, i.e. validate('txtName','length','Tel number must be at least 7 digits',7) */
      var a = document.forms[0].elements[validate.arguments[0]].value;
      if(a.length < validate.arguments[3]){
        alert(validate.arguments[2]);
        document.forms[0].elements[validate.arguments[0]].focus();
        return true;
      }
      break;
    case ('maxlength'):  /* check if length of textbox value is less than max, i.e. validate('txtName','maxlength','message must be 100 characters or less',100) */
      var a = document.forms[0].elements[validate.arguments[0]].value;
      if(a.length > validate.arguments[3]){
        alert(validate.arguments[2]);
        document.forms[0].elements[validate.arguments[0]].focus();
        return true;
      }
      break;
    }
  }

//Get cookie string
function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}  

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

//Set cookie string
function SetCookie (name, value) {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;
  document.cookie = name + "=" + escape (value) +
  ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
  ((path == null) ? "" : ("; path=" + path)) +
  ((domain == null) ? "" : ("; domain=" + domain)) +
  ((secure == true) ? "; secure" : "");
}

//format numbers from xxx.x into xx,xxx.xx
function formatMoney(num) {
  num = num.toString().replace(/\$|\,/g,'');
  if(isNaN(num)) num = "0";
  cents = Math.floor((num*100+0.5)%100);
  num = Math.floor((num*100+0.5)/100).toString();
  if(cents < 10) cents = "0" + cents;
  for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
  num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
  return (num + '.' + cents);
}

//format numbers from xx,xxx.xx into xxxxx.x
function unformatMoney(str){
  re = /^\$|,/g;
  return str.replace(re, "");
}

//for IE only, detect keyPress. Computes when decimal .xx is typed
function detectDecimal(num){
  num = num.toString().replace(/\$|\,/g,'');
  x = num.substring(num.indexOf('.')+1);
  alert(x.length);
}

