<!-- hide from non-supported browsers
function ButtonOut(button) {
  document.getElementById(button).className = "Button ButtonOut";
}

function ButtonOver(button) {
  document.getElementById(button).className = "Button ButtonOver";
}

function isWhitespace(s) {   
  var i;
  var whitespace = " \t\n\r";
  for (i = 0; i < s.length; i++) {   
    var c = s.charAt(i);
    if (whitespace.indexOf(c) == -1) 
      return false;
  }
  return true;
}

function FormClear(F) {
  F.reset();
  F.elements[0].focus();
  return;
}

// We only accept numeric amounts.
function valid_amount(s) {
  if (s < 10)
    return false;
  var i = 0;
  while (i < s.length) { 
   if (s.charAt(i) < "0" || s.charAt(i) > "9")
     return false;
   i++
  }
  return true;
}

// An offer must be higher than the previous highest offer.
function valid_offer(offer,amount) {
  var high_offer = parseInt(offer);
  var your_offer = parseInt(amount);
  if (high_offer > 0 && your_offer <= high_offer)
    return false;
  return true;
}

// The E-mail address must be in 'foo@bar.com' format; in other words:
// - There must be at least one character before the '@'.
// - There must be at least one character before and after the '.'.
// - The characters '@' and '.' are both required.
function valid_email(s) {
  var i = 1;
  var sLength = s.length;
  if (s.indexOf('@') != s.lastIndexOf('@'))
     return false;
  while ((i < sLength) && (s.charAt(i) != "@")) {
    i++
  }
  if ((i >= sLength) || (s.charAt(i) != "@")) 
    return false;
  else 
    i += 2;
  while ((i < sLength) && (s.charAt(i) != ".")) {
    i++
  }
  if ((i >= sLength - 1) || (s.charAt(i) != ".")) 
    return false;
  return true;
}

// We only list .com, .net, .org and .eu domains and don't list domain
// names that contain hyphens and combinations of letters and numbers. 
function valid_domain(s) {
  if (s.indexOf('.') != s.lastIndexOf('.'))
     return false;
  if (s.indexOf('.') == 0 || s.indexOf('.') == -1) 
     return false;
  var i = 1;
  while (i < s.length && s.charAt(i) != ".") { 
   if (s.charAt(i) < "a" || s.charAt(i) > "z")
     return false;
   i++
  }
  var domain = s.substr(s.indexOf('.') + 1);
  if (domain != "com" && domain != "net" && domain != "org" && domain != "eu")
     return false;
  return true; 
}

// We only accept at least 10 valid chars in the Phonenumber field.
function valid_phone(s) {
  var i, j = 0;
  var phone = " +-0123456789";
  for (i = 0; i < s.length; i++) {   
    var c = s.charAt(i);
    if (phone.indexOf(c) == -1) 
      return false;
    j++;
  }
  if (j < 10)
    return false;
  return true;
}

// All form fields must be entered. An offer must be higher than the
// previous highest offer. The the E-mail field must contain a valid
// address.
function BuyFormValidate(F) {
  if (!valid_amount(F._Amount.value)) {
    alert("Please enter a valid value for the Amount field.");
    if (F._Highoffer.value > 0)
      F._Amount.value = parseInt(F._Highoffer.value) + 1;
    else {
      if (F._Price.value > 0)
        F._Amount.value = F._Price.value;
      if (F._Listcurrency.value == '0')
        F._Currency.options[0].selected = true; // USD
      else
        F._Currency.options[1].selected = true; // EUR
    }
    F._Amount.focus();
    return false;
  }
  if (!valid_offer(F._Highoffer.value,F._Amount.value)) {
    alert("Please make an offer higher than " + F._Highoffer.value + " " + F._Currency.value);
    F._Amount.value = parseInt(F._Highoffer.value) + 1;
    F._Amount.focus();
    return false;
  }
  for (i = 1; i < F.elements.length - 5; i++) {
    if (isWhitespace(F.elements[i].value)) {
      alert("Please enter a value for the " + F.elements[i].id + " field.");
      F.elements[i].focus();
      return false ;
    }
  }
  if (!valid_email(F._Email.value)) {
    alert("Please enter a valid address in the E-mail field.");
    F._Email.focus();
    return false;
  }
  if (!valid_phone(F._Phonenumber.value)) {
    alert("Please enter a valid number (10 Digits -or- more) in the Phone number field.");
    F._Phonenumber.focus();
    return false;
  }
  alert("Your offer has been submitted.")
  F.submit();
  return;
}

// All form fields must be entered. The Domain name field must contain
// a valid domain and the E-mail field must contain a valid address.
function ListFormValidate(F) {
  for (i = 0; i < F.elements.length; i++) {
    if (isWhitespace(F.elements[i].value)) {
      alert("Please enter a value for the " + F.elements[i].id + " field.");
      F.elements[i].focus();
      return false ;
    }
  }
  if (!valid_domain(F._Domainname.value)) {
    alert("Please enter a valid domain in the Domain name field.");
    F._Domainname.focus();
    return false;
  }
  if (F.Category.value == "Choose category") {
    alert("Please choose a category from the list.");
    F._Category.focus();
    return false;
  }
  if (!valid_email(F._Email.value)) {
    alert("Please enter a valid address in the E-mail field.");
    F._Email.focus();
    return false;
  }
  if (!valid_phone(F._Phonenumber.value)) {
    alert("Please enter a valid number (10 Digits -or- more) in the Phone number field.");
    F._Phonenumber.focus();
    return false;
  }
  alert("Your listing request has been submitted.")
  F.submit();
  return;
}

// All form fields must be entered.
function ContactFormValidate(F) {
  for (i = 0; i < F.elements.length; i++) {
    if (isWhitespace(F.elements[i].value)) {
      alert("Please enter a value for the " + F.elements[i].id + " field.");
      F.elements[i].focus();
      return false ;
    }
  }
  if (!valid_email(F._Email.value)) {
    alert("Please enter a valid address in the E-mail field.");
    F._Email.focus();
    return false;
  }
  if (F._Enquiry.value.length > 512) {
    alert("Too much data in the Enquiry/Feedback box! Please remove " +
    (F._Enquiry.value.length - 512)+ " characters.");
    F._Enquiry.focus();
    return false ;
  }
  alert("Your contact request has been submitted.")
  F.submit();
  return;
}

// Cancel a forwarded buy request.
function CancelForward(F,home) {
  F.action = home;
  F.submit();
  return;
}

// Cancel a list request.
function CancelList(F,home) {
  F.action = home;
  F.submit();
  return;
}

// Cancel a contact request.
function CancelContact(F,home) {
  F.action = home;
  F.submit();
  return;
}

// Cancel a search request.
function CancelSearch(F,home) {
  F.action = home;
  F.submit();
  return;
}
// -->
