// Dreamweaver functions
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}

// Flipside functions

function checkpwd(again) {
var pwdok = 0;
var strength = '';
var mypwd = document.pwdform.newpassword.value;
if(mypwd.length == 0) { pwdok = 1 }
else {
if (mypwd.length < 6 && mypwd.length > 0) { strength = 'Too short' }
else if (mypwd.length > 0 && (!mypwd.match(/[a-z]/) || !mypwd.match(/[A-Z]/) || !mypwd.match(/[0-9]/))) { strength = 'Does not contain UPPER, lower and numbers' }

if (strength) { strength = '<strong class="warning">' + strength + '</strong>'; document.pwdform.submitbutton.disabled = true; }
else { strength = '<strong class=ok>Good</strong>'; pwdok = 1; }
var pwdstr = document.getElementById('pwdstr');
pwdstr.innerHTML = strength;
if (!again) { chkpwdmatch(1) }
}
return pwdok;
}

function chkpwdmatch(quiet) {
var gotgoodpwd = checkpwd(1);
if (!quiet && !gotgoodpwd) { alert('Please fill in a valid password before repeating it'); return; }
var match = '<strong class=ok>Matches</strong>';
var pwdrpt = document.getElementById('pwdrpt');
if (!document.pwdform.newpassword.value || !document.pwdform.repeatnewpassword.value) { match = ''; document.pwdform.submitbutton.disabled = true; }
else if (document.pwdform.newpassword.value != document.pwdform.repeatnewpassword.value) { match = '<strong class="warning">Does not match</strong>' ; document.pwdform.submitbutton.disabled = true; }
else { document.pwdform.submitbutton.disabled = false }
pwdrpt.innerHTML = match;
}

function chkform(myform) {
var error = '';
if (!myform.password.value) { error = error + 'Please enter your CURRENT password\\n' }
if (!myform.newpassword.value) { error = error + 'Please enter your NEW password\\n' }
if (myform.newpassword.value == myform.password.value) { error = error + 'New password must not be the same as your current password\\n' }
if (myform.newpassword.value != myform.repeatnewpassword.value) { error = error + 'New passwords don\'t match\\n' }
if (error) { alert(error); return false; }
return true;
}

function checkQuickEnquiry(myform) {
var error = '';
if (!myform.quick_Name.value) { error = error + 'Please enter your name\\n' }
if (error) { alert(error); return false; }
return true;
}

function cancelForm() {
// This 'cancels' the current action by submitting the second form - and is called by a button nested in the first form that has no action on the first form
document.getElementById('cancel').submit();
}

function setOnwardAction(myAction) {
  document.getElementById('action').value = myAction;
}

function setOnwardDisplay(myDisplay) {
  document.getElementById('display').value = myDisplay;
}

function revealOnDigit(data,elementToReveal,contentElement) {
  if (document.getElementById(data).value.match(/[0-9]/)) {
    document.getElementById(elementToReveal).style.visibility = 'visible';
    document.getElementById(elementToReveal).innerHTML = document.getElementById(contentElement).innerHTML;
  }
  else {
    document.getElementById(elementToReveal).style.visibility = 'hidden';
    document.getElementById(elementToReveal).innerHTML = '';
  }
}

// Combo selection / text input
function activate(field) {
  field.disabled=false;
  if(document.styleSheets)field.style.visibility  = 'visible';
  field.focus();
}

function last_choice(selection) {
  return selection.selectedIndex==selection.length - 1;
}

function process_choice(selection,textfield) {
  if(last_choice(selection)) {
    activate(textfield);
  }
  else {
    textfield.disabled = true;
    if(document.styleSheets)textfield.style.visibility  = 'hidden';
    textfield.value = '';
  }
}

function check_choice(formName,choice,choiceNew) {
  if(!last_choice(document.formName.choice)) {
    document.formName.choiceNew.blur();
    alert('Please check your menu selection first');
    document.formName.choice.focus();
  }
}

function trace( text ) {
  var traceArea = document.getElementById('traceArea');
  traceArea.innerHTML += text + "<br />\n";
}

function hideField(formId, checkId, toHideId) {
  var form    = document.getElementById(formId);
  var control = document.getElementById(checkId).checked;
  var field   = document.getElementById(toHideId);
  var prompt  = document.getElementById(toHideId + "Prompt");
//  trace(control);
  if (control) {
    field.disabled = true;
    field.style.visibility  = 'hidden';
    prompt.style.visibility = 'hidden';
    field.value = '';
  } else {
    field.disabled = false;
    field.style.visibility  = 'visible';
    prompt.style.visibility = 'visible';
  }
}

function altTextOnMatch(formId, checkId, toChangeId, pattern, text, altText) {
  var form    = document.getElementById(formId);
  var control = document.getElementById(checkId).value;
  var field   = document.getElementById(toChangeId);
  var patt=new RegExp(pattern, '');
  if (control.match(patt)) {
    field.innerHTML = altText;
  } else {
    field.innerHTML = text;
  }
}

String.prototype.ucfirst = function() {
    return this.charAt(0).toUpperCase() + this.substr(1);
}

// Strip leading/trailing spaces. Check input against pattern
function checkField(data, match, message) {
  var error = '';
  data.value = data.value.replace(/^\s+|\s+$/g, '');
  var patt=new RegExp(match, '');
  if (!data.value.match(patt)) {
    alert(message);
  }
}

// Strip leading/trailing spaces. Check input against pattern
function checkPostcodeField(data, match, message) {
  var error = '';
  trace("m:"+match);
  data.value = data.value.replace(/^\s+|\s+$/g, '');
  data.value = data.value.toUpperCase();
  var patt=new RegExp(match, '');
  if (!data.value.match(patt)) {
    alert(message);
  }
}

// Strip leading/trailing spaces. Check input against pattern
function checkProperNameField(data, match, message) {
  var error = '';
  trace("1:"+data.value);
  data.value = data.value.replace(/^\s+|\s+$/g, '');
  trace("2:"+data.value);
  data.value = data.value.ucfirst();
  trace("3:"+data.value);
  var patt=new RegExp(match, '');
  if (!data.value.match(patt)) {
    alert(message);
  }
}

function checkQuickEnquiry(name, email, phone, message, callback) {
  var error = '';

  if (!name.value) {
    error = error + 'Please enter your name\n'
  }
  if (!phone.value) {
    if (callback.checked) {
      error = error + 'Please enter a phone number\n'
    } else if (!email.value) {
      error = error + 'Please enter a means to contact you\n'
    }
  }
  if (!message.value && !callback.checked) {
    error = error + 'Please enter a message or request a call.\n' }
  if (error) { alert(error); return false; }
  return true;
}


