// MIP JavaScript Library
// authored by: Ed Braddock - RAON Consulting
// find me via www.raonsonsulting.com


// load the rollover images used by the Nav bar
function newImage(arg) {
  var rslt
  if (document.images) {
    rslt = new Image();
    rslt.src = arg;
    return rslt;
  }
}

function preloadBWImages() {
  if (document.images) {
    var over_woc_r1_c3 = newImage('/images/head_bw/woc_r1_c3_on.jpg');
    var over_home_r2_c2 = newImage('/images/head_bw/home_r2_c2_on.gif');
    var over_cat_r2_c3 = newImage('/images/head_bw/cat_r2_c3_on.gif');
    var over_new_r2_c4 = newImage('/images/head_bw/new_r2_c4_on.jpg');
    var over_gal_r2_c5 = newImage('/images/head_bw/gal_r2_c5_on.gif');
    var over_sub_r2_c6 = newImage('/images/head_bw/sub_r2_c6_on.gif');
    var over_serv_r2_c7 = newImage('/images/head_bw/serv_r2_c7_on.gif');
    var over_cont_r2_c8 = newImage('/images/head_bw/cont_r2_c8_on.gif');
    var over_about_r2_c9 = newImage('/images/head_bw/about_r2_c9_on.gif');
    var over_prod_r3_c3 = newImage('/images/head_bw/prod_r3_c3_on.gif');
    var over_fram_r3_c4 = newImage('/images/head_bw/fram_r3_c4_on.jpg');
    var over_pric_r3_c5 = newImage('/images/head_bw/pric_r3_c5_on.gif');
    var over_links_r3_c6 = newImage('/images/head_bw/links_r3_c6_on.gif');
    var over_news_r3_c7 = newImage('/images/head_bw/news_r3_c7_on.gif');
  }
}

function preloadColourImages() {
  if (document.images) {
    var over_wobw_r1_c3 = newImage('/images/head_colour/wobw_r1_c3_on.jpg');
    var over_home_r2_c2 = newImage('/images/head_colour/home_r2_c2_on.gif');
    var over_cat_r2_c3 = newImage('/images/head_colour/cat_r2_c3_on.gif');
    var over_new_r2_c4 = newImage('/images/head_colour/new_r2_c4_on.jpg');
    var over_gal_r2_c5 = newImage('/images/head_colour/gal_r2_c5_on.gif');
    var over_sub_r2_c6 = newImage('/images/head_colour/sub_r2_c6_on.gif');
    var over_serv_r2_c7 = newImage('/images/head_colour/serv_r2_c7_on.gif');
    var over_cont_r2_c8 = newImage('/images/head_colour/cont_r2_c8_on.gif');
    var over_about_r2_c9 = newImage('/images/head_colour/about_r2_c9_on.gif');
    var over_prod_r3_c3 = newImage('/images/head_colour/prod_r3_c3_on.gif');
    var over_fram_r3_c4 = newImage('/images/head_colour/fram_r3_c4_on.jpg');
    var over_pric_r3_c5 = newImage('/images/head_colour/pric_r3_c5_on.gif');
    var over_links_r3_c6 = newImage('/images/head_colour/links_r3_c6_on.gif');
    var over_news_r3_c7 = newImage('/images/head_colour/news_r3_c7_on.gif');
  }
}

// redirect from special home page to standard bw page
function changePage() {
  window.location.href="index_bw.php";
}

// reload the current page - used on the home page to update the image
function changeImage() {
  window.location.reload();
}

// swap images for rollover buttons
function changeImages() {
  if (document.images) {
    var img;
    img = null;
    img = document.images[arguments[0]];
    if (img) {img.src = arguments[1];}
  }
}

var newsFadeCounter = 0;
var newsItemCounter = 0;

function runNews() {
  
  if (newsFadeCounter == 0) {
    document.getElementById("newsticker").innerHTML="&nbsp;" + newsItem[newsItemCounter];
    document.getElementById("newsticker").style.fontSize="80%";
    document.getElementById("newsticker").style.color="#FFFFFF";
  }
  if (newsFadeCounter > 7) {
    switch (newsFadeCounter) {
      case 8:
        document.getElementById("newsticker").style.color="#EEDDDD";
      break;
      case 9:
        document.getElementById("newsticker").style.color="#DDBBBB";
      break;
      case 10:
        document.getElementById("newsticker").style.color="#CC9999";
      break;
      case 11:
        document.getElementById("newsticker").style.color="#BB7777";
      break;
      case 12:
        document.getElementById("newsticker").style.color="#AA5555";
      break;
      case 13:
        document.getElementById("newsticker").style.color="#993333";
      break;
      default:
      break;
    }
  }
  if (newsFadeCounter < 44) {
    newsFadeCounter++;
  } else {
    newsFadeCounter = 0;
    if (newsItemCounter < (numberNewsItems - 1)) {
      newsItemCounter++;
    } else {
      newsItemCounter = 0;
    }
  }
}

function format_price(price) {
  var dollars;
  var cents;

  if (price.indexOf(".") == -1) {
    price = price + ".00";
  } else {
    dollars = price.substring(0, price.indexOf("."));
    cents = price.substring((price.indexOf(".") + 1), (price.length));
    if (cents.length == 1) {
      cents = cents + "0";
    }
    price = dollars + "." + cents;
  }
  return price;
}

function validate_purchase_info() {
  // validate all the purchase info entered by a customer
  name_field = document.purchase.name.value;
  if (name_field.length < 2) {
    document.purchase.name.focus();
    alert("You need to supply your name");
    return false;
  }
  address_field = document.purchase.address.value;
  if (address_field.length < 2) {
    document.purchase.address.focus();
    alert("You need to supply an address");
    return false;
  }
  city_field = document.purchase.city.value;
  if (city_field.length < 2) {
    document.purchase.city.focus();
    alert("You need to supply a suburb / city");
    return false;
  }
  state_field = document.purchase.state.value;
  if (state_field.length < 2) {
    document.purchase.state.focus();
    alert("You need to supply a state");
    return false;
  }
  postcode_field = document.purchase.postcode.value;
  if (postcode_field.length < 2) {
    document.purchase.postcode.focus();
    alert("You need to supply a postcode / zipcode");
    return false;
  }
  email_field = document.purchase.email.value;
  if (!email_field.match(/^[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,4}$/)) {
    document.purchase.email.focus();
    alert("You need to supply a valid email address");
    return false;
  }
  cardtype = document.purchase.cardtype;
  if (cardtype[0].checked == false && cardtype[1].checked == false) {
    document.purchase.cardtype[0].focus();
    alert("You need to select a credit card type");
    return false;
  }
  cardnumber1_field = document.purchase.cardnumber1.value;
  cardnumber2_field = document.purchase.cardnumber2.value;
  cardnumber3_field = document.purchase.cardnumber3.value;
  cardnumber4_field = document.purchase.cardnumber4.value;
  
  cardnumber = (cardnumber1_field * 1000000000000) + (cardnumber2_field * 100000000) + (cardnumber3_field * 10000) + (cardnumber4_field * 1);
//  alert(cardnumber)
  // validate credit card number
  if (!isValidCreditCard(cardnumber)) {
    document.purchase.cardnumber1.focus();
    alert("You need to supply a valid credit card number");
    return false;
  }
  cardyear_field = document.purchase.cardyear.value;
  cardmonth_field = document.purchase.cardmonth.value;
  var d=new Date();
  if (cardyear_field == d.getFullYear()) {
    if (cardmonth_field < d.getMonth()) {
      document.purchase.cardmonth.focus();
      alert("Your credit card has expired");
      return false;
    }
  }
  return true;
}

function check_cardnumber1() {
  if (document.purchase.cardnumber1.value.length == 4) {
    document.purchase.cardnumber2.focus();
  }
}

function check_cardnumber2() {
  if (document.purchase.cardnumber2.value.length == 4) {
    document.purchase.cardnumber3.focus();
  }
}

function check_cardnumber3() {
  if (document.purchase.cardnumber3.value.length == 4) {
    document.purchase.cardnumber4.focus();
  }
}

function check_cardnumber4() {
  if (document.purchase.cardnumber4.value.length == 4) {
    document.purchase.cardmonth.focus();
  }
}


// Copyright (c) 1998 Sudhakar Chandrasekharan (thaths@netscape.com)
// All rights reserved
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 dated June, 1991.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA.

// Thanks to Martin Honnen (Martin.Honnen@sector27.de) for some coding
// tips.

// Funtion to return the type of credit card
function typeOfCard(number) {
  /* 
  //	Card Prefixes
  //
  //	Mastercard	51-55
  //	Visa		4
  //	AmEx		34,37
  //	Discover	6011
  */

  var firstNumber = number.substring(0,1);
  var firstThreeNumbers = number.substring(0,3);

  if (firstNumber == 4) {
    return "visa";
  } 

  var firstTwoNumbers = number.substring(0,2);
  if (firstTwoNumbers > 50 && firstTwoNumbers < 56) {
    return "mastercard";
  }

  if (firstTwoNumbers == 34 || firstTwoNumbers == 37) {
    return "amex";
  }

  var firstFourNumbers = number.substring(0,4);
  if (firstFourNumbers == 6011) {
    return "discover";
  }
}

// Function that determines whether a credit card number is valid
// Please note that a valid credit card number is not essentially a
// credit card in good standing.
function isValidCreditCard(number) {
  var total = 0;
  var flag = 0;
  for (var i=(number.length - 1);i>=0; i--) {
    if (flag == 1) {
      var digits = number.charAt(i) * 2;
      if (digits > 9) digits -= 9;
      total += digits;
//			var reminder = digits % 10;
//			var quotient = (digits - reminder) / 10;
//			total = total + parseInt(reminder);
//			total = total + parseInt(quotient);
      flag = 0;
    } else {
      total = total + parseInt(number.charAt(i));
      flag = 1;
    }
  }
  if ((total%10) == 0) {
    return true;
  } else {
    return false;
  }
}