/********************************************************
   bm-contact.js - Specific Contact form routines
   Copyright 2004 Better-Mortgages.co.uk Limited
   All rights reserved. Version 2.0
 ********************************************************/

/* ---- validation alert arrays --------- */
var validText = new makeArray(8);
validText[0] = "Please enter your email address.";
validText[1] = "Please enter your First and Last Names.";
validText[2] = "Please enter your message.";
validText[3] = "Please select a message type.";
validText[4] = "";
validText[5] = "";
validText[6] = "";
validText[7] = "Please enter your Application Reference Number.";

// --- initialise form display 
function doInit() {
	testOption(document.forms['form']);
}

function turnField(status, row, form) {
  (status == "ON") ? disableStat = false : disableStat = true;
//  if (row == "R7") {form.elements['message'].disabled = disableStat;}
  if (row == "R9") {form.elements['AppRef'].disabled = disableStat;}
  showItem(status, row);
}

function testOption(form) {
	if (form.elements['m_type'].value == "AppQuery") {
		turnField("ON", "R9",form); form.elements['AppRef'].disabled = false;
	} else {
		turnField("OFF", "R9",form); form.elements['AppRef'].disabled = true;
	}
}

/* -- Check form for readiness to submit -- */
function isValid(form) {
  var fObj;
  fObj = form.elements['m_type'];
  if ( fObj.value == "Select") { alert (validText[3]); return false; }
  fObj = form.elements['realname']; 
  if ( fObj && !isFilled( fObj, validText[1] ) ) { refocus(fObj); return false; } // not empty?
  re = /^[\w]+ [\w'-]+$/; // check for only valid characters
  if (!re.test(fObj.value)) { alert (validText[1]); refocus(fObj); return false; }
  fObj = form.elements['email']; if (!isEmail(fObj)) return false;	// email address?
  fObj = form.elements['message']; 
  if ( fObj && !isFilled( fObj, validText[2] ) ) { refocus(fObj); return false; } // not empty?
  re = /<(.+\n+)*.+>/; // check for valid characters - no general HTML
  if (re.test(fObj.value)) { alert (validText[2]); refocus(fObj); return false; }
  re = /(<\?|<!|\&\#|\/\/|<\/|\/>|=")+/i; // check for code type HTML - belt & braces
  if (re.test(fObj.value)) { alert (validText[2]); refocus(fObj); return false; }
 	if (form.elements['m_type'].value == "AppQuery") {
	  fObj = form.elements['AppRef'];
	  re = /^[MIC][IL]?[\d]{14}\-[\d]{1,10}$/i;  // AppRef Regex
 	  if (!re.test(fObj.value)) { alert (validText[7]); refocus(fObj); return false;  }  // check its an appref
  }
  // Add more anti-spam tests here as required
  return true;
}
