// AllCameraBatteries Web Site methods - Ben Jay December 2003
// #########################################################/
  var siteTag = 'gb4';

  // include urchin web analysis:
  document.write('<script src="/' + siteTag + '/__utm.js"></script>');


// #########################################################/
// check the email address is reasonable:

  function checkEmail(email)
  {
    if(!isValidEmail(email))
    {
      alert('The email address is invalid.\n It should be similar to:\n\n yourname@yourcompany.com\n\nWith no spaces. Please enter it again.');
      return false;
    }
    return true;
  }

// #########################################################/
// check the email address is reasonable:

  function isValidEmail(email)
  {
    email = email.toLowerCase();

    //  check for one '@':
    var sections = email.split('@');
    if(sections.length != 2)
      return false;

    // now split into sections on '.':
    var username = sections[0].split('.');
    var domain = sections[1].split('.');
    if(domain.length < 2)
      return false;

    // check the username:
    for(var i = 0; i < username.length; i++)
      if(!isValidEmailSection(username[i]))
        return false;

    // check the domain:
    for(var i = 0; i < domain.length; i++)
      if(!isValidEmailSection(domain[i]))
        return false;

    return true;
  }

// #########################################################/
// check this section of an email address is valid
// a-z 0-9 - . _

  function isValidEmailSection(sec)
  {
    if(sec.length < 1)
      return false;

    for(var i = 0; i < sec.length; i++)
    {
      var cc = sec.charCodeAt(i);
      if( ((cc < 97) || (cc > 122)) &&
          ((cc < 48) || (cc > 57)) &&
          ((cc < 45) || (cc > 46)) &&
          (cc != 95) )
  	  return false;
    }
    return true;
  }

// #########################################################/

  function showCountryList(start, selected)
  {
    document.writeln('<SELECT ' + start + '>');

    var countries = ['GB','United Kingdom', 'FR','France',     'DE','Germany', 
	             'AT','Austria',        'BE','Belgium',    'DK','Denmark',
                     'FI','Finland',        'GR','Greece',     'IE','Ireland',
                     'IT','Italy',          'LU','Luxembourg', 'NL','Netherlands',
                     'NO','Norway',         'PT','Portugal',   'ES','Spain',
                     'SE','Sweden' ];

    for(var i = 0; i < countries.length; i = i+2)
    {
      var html = '<OPTION value="' + countries[i] + '"';
      if(countries[i] == selected)
        html += ' selected';
      html += '>' + countries[i+1] + '</OPTION>';
      document.writeln(html);
    }
    document.writeln('</SELECT>');
  }

// #########################################################/

//  function showYearList(start, selected)
//  {
//    document.writeln('<SELECT ' + start + '>');

//    var list = ['1997','1997', '1998','1998', '1999','1999', '2000','2000', '2001','2001', '2002','2002', '2003','2003', '2004','2004', '2005','2005',
//	 '2006','2006', '2007','2007', '2008','2008', '2009','2009', '2010','2010'];

//    for(var i = 0; i < list.length; i = i+2)
//    {
//      var html = '<OPTION value="' + list[i] + '"';
//      if(list[i] == selected)
//        html += ' selected';
//      html += '>' + list[i+1] + '</OPTION>';
//      document.writeln(html);
//    }
//    document.writeln('</SELECT>');
//  }

// #########################################################/

//  function showMonthList(start, selected)
//  {
//    document.writeln('<SELECT ' + start + '>');

//    var list = ['01','01', '02','02', '03','03', '04','04', '05','05', '06','06', '07','07', '08','08', '09','09', '10','10', '11','11', '12','12'];

//    for(var i = 0; i < list.length; i = i+2)
//    {
//      var html = '<OPTION value="' + list[i] + '"';
//      if(list[i] == selected)
//        html += ' selected';
//      html += '>' + list[i+1] + '</OPTION>';
//      document.writeln(html);
//    }
//    document.writeln('</SELECT>');
//  }

// #########################################################/

  function showYearList(start, selected, full)
  {
    var currentYear = (new Date()).getFullYear();
//    var currentYear = 2005;

    document.writeln('<SELECT ' + start + '>');
    var maxYear = currentYear + 10;
    if(full)
    {
      maxYear = currentYear + 1;
      currentYear = currentYear - 5;
      if(selected == ' ')
        document.writeln('<OPTION value=" " selected> </OPTION>');
      else
        document.writeln('<OPTION value=" "> </OPTION>');
    }

    for(var i = currentYear; i < maxYear; i++)
    {
      var html = '<OPTION value="' + i + '"';
      if(i == selected)
        html += ' selected';
      html += '>' + i + '</OPTION>';
      document.writeln(html);
    }
    document.writeln('</SELECT>');
  }

// #########################################################/

  function showMonthList(start, selected, full)
  {
    document.writeln('<SELECT ' + start + '>');

    var list = [' ',' ', '01','01', '02','02', '03','03', '04','04', '05','05', '06','06', '07','07', '08','08', '09','09', '10','10', '11','11', '12','12'];
    var start = 2;
    var end = list.length -2;
    if(full)
      start = start - 2;

    for(var i = start; i <= end; i = i+2)
    {
      var html = '<OPTION value="' + list[i] + '"';
      if(list[i] == selected)
        html += ' selected';
      html += '>' + list[i+1] + '</OPTION>';
      document.writeln(html);
    }
    document.writeln('</SELECT>');
  }

// #########################################################/


// original methods:
// #########################################################/

// function call, embedded within notes etc in the database:
function pl(linkOb, linkValue)
{
// does nothing on powerup site.
}

// #########################################################/

function toPrice4(str)
{
  // round the number to 2 or 4 decimal places:
  num = str.valueOf() * 10000;
  num = Math.round(num) / 10000;
  num2 = str.valueOf() * 100;
  num2 = Math.round(num2) / 100;


  // display with 2 or 4 dp?
  var tz = '0000';
  var dp = 4;
  if(num == num2)
  {
    num = num2;
    tz = '00';
    dp = 2;
  }

  // check not zero:
  if(num != 0)
  {
    // now format to 4dp:
    price = num.toString();
    idx = price.indexOf('.');
    if(idx == -1)
    {
      price += '.' + tz;
    }
    else
    {
      price += tz;
      price = price.substring(0, idx+1+dp);
    }

    // check for a leading zero for items less than 1 pound:
    if(price.charAt(0) == '.')
      price = '0' + price;
  }
  else
    price = 'POA';

  document.write(price);
}

// #########################################################/

function toPrice(str)
{
  if((str == null ) || (str == 'undefined'))
    return document.write('N/A');

  // round the number to 2 decimal places:
  var num = str.valueOf() * 100;
  num = Math.round(num) / 100;

  var tz = '00';
  var dp = 2;

  // check not zero:
//  if(num != 0)
//  {
    // now format to dp:
    price = num.toString();
    idx = price.indexOf('.');
    if(idx == -1)
    {
      price += '.' + tz;
    }
    else
    {
      price += tz;
      price = price.substring(0, idx+1+dp);
    }

    // check for a leading zero for items less than 1 pound:
    if(price.charAt(0) == '.')
      price = '0' + price;
//  }
//  else
//    price = 'POA';

  document.write(price);
}

// #########################################################/
// if a number ends with .0, remove it
function trimdp(str)
{
  if(str.lastIndexOf('.0') == str.length -2)
    str = str.substring(0, str.length -2);

  document.write(str);
}

// #########################################################/

function magnitude(str)
{
  num = str.valueOf();

  if(num > 999)
  {
    num = num / 1000;
    str = num.toString() + "K";
  }
  else if(num > 999999)
  {
    num = num / 1000000;
    str = num.toString() + "M";
  }

  document.write(str);
}

// #########################################################/

function formatInvoice(cc, num)
{
  if(num > 999999)
  {
    document.write(cc + '/' + num);
  }
  else
  {
    var numStr = '00' + num;
    numStr = numStr.substring(numStr.length - 6);
    document.write(cc + '/' + numStr);
  }
}

// #########################################################/

function formatDateTime(rawdate, style)
{
  if((rawdate.length != 21) || (rawdate.substring(0,4) == '1970'))
    return '';

  year = rawdate.substring(0, 4);
  numMonth = rawdate.substring(5, 7);
  numDay = rawdate.substring(8, 10);
  rawTime = rawdate.substring(11, 16);

  if(style == 'short_date')
  {
    if(numDay.charAt(0) == '0')
      numDay = numDay.charAt(1);
    val = numDay + ' ' + getMonth(numMonth) + ' ' + year;
  }
  else
    val = '';
  document.write(val);
}

// #########################################################/

function toVatCode(num)
{
  switch(num)
  {
    case 1:  document.write('A'); break;
    case 2:  document.write('B'); break;
    case 3:  document.write('C'); break;
    default: document.write('D'); break;
  }
}

// #########################################################/

function getMonth(num)
{ 
  switch(Number(num))
  {
    case 1:  mnt = 'Jan'; break;
    case 2:  mnt = 'Feb'; break;
    case 3:  mnt = 'Mar'; break;
    case 4:  mnt = 'Apr'; break;
    case 5:  mnt = 'May'; break;
    case 6:  mnt = 'Jun'; break;
    case 7:  mnt = 'Jul'; break;
    case 8:  mnt = 'Aug'; break;
    case 9:  mnt = 'Sep'; break;
    case 10: mnt = 'Oct'; break;
    case 11: mnt = 'Nov'; break;
    case 12: mnt = 'Dec'; break;
    default: mnt = '';
  }
  return mnt;
}

// #########################################################/
// check there is a value:
function isblank(str)
{
  for(var i = 0; i < str.length; i++)
  {
    var ch = str.charAt(i);
    if((ch != ' ') && (ch != '\n') && (ch != '\t'))
      return false;
  }
  return true;
}

// #########################################################/
// check there is a value:
function validCardNo(val, min, max)
{
  var count = 0;
  for(var i = 0; i < val.length; i++)
  {
    var ch = val.charAt(i);
    if((ch == '0') || (ch == '1')|| (ch == '2') || (ch == '3') || (ch == '4') || 
       (ch == '5') || (ch == '6') || (ch == '7') || (ch == '8') || (ch == '9'))
      count++;
    else if(ch != ' ')
      return false;
  }

  if((count.valueOf() < min) || ((count.valueOf() > max) && (max > -1)))
    return false;

  return true;
}

// #########################################################/
//  function showCountryList(selected)
//  {
//    var countries = ['GB','United Kingdom', 'FR','France',     'DE','Germany', 
//	             'AT','Austria',        'BE','Belgium',    'DK','Denmark',
//                     'FI','Finland',        'GR','Greece',     'IE','Ireland',
//                     'IT','Italy',          'LU','Luxembourg', 'NL','Netherlands',
//                     'NO','Norway',         'PT','Portugal',   'ES','Spain',
//                     'SE','Sweden' ];

//    for(var i = 0; i < countries.length; i = i+2)
//    {
//      var html = '<OPTION value="' + countries[i] + '"';
//      if(countries[i] == selected)
//        html += ' selected';
//      html += '>' + countries[i+1] + '</OPTION>';
//      document.writeln(html);
//    }
//  }

// #########################################################/

function showHelp(helpTopic)
{
//  var win = window.open('/' + siteTag + '/help/' + helpTopic + '.html', '_help','status=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes, width=650, height=400');
  var win = window.open('/' + siteTag + '/e/Page.Filler?_page=help/' + helpTopic, '_help','status=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes, width=650, height=400');
  win.focus();
  return false;
}

// #########################################################/

    function stockMessage(level, order)
    {
      if(level > 0)
	document.write('In Stock');
      else if(order > 0)
	document.write('On Order');
      else
	document.write('Order On Request');
    }

  // #########################################################/
  // turn the text into lowercase 1-z, 0-9 no spaces or other characters. For use in searching part numbers.
  function filterSearch(original)
  {
    original = original.toLowerCase();
    var tmp = '';
    for(var i = 0; i < original.length; i++)
    {
      var ch = original.charAt(i);
      if(((ch >= 'a') && (ch <= 'z')) || ((ch >= '0') && (ch <= '9')))
        tmp += ch;
    }
    return tmp;
  }

  // #########################################################/
