<!--
function MM_findObj(n, d) { //v3.0
  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); return x;
}
/* Functions that swaps images. */
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
/* Functions that handle preload. */
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_openWindow(theURL,winName,launchWin,features) { //v1.0
  if (launchWin == ''){
    window.open(theURL,winName,features);
  }
  else{
    var controller = window.open(theURL,winName,features);
    if (controller.opener == null){
      controller.opener = self;
    }
    controller.opener.name = launchWin;
    return controller;
  }
}
// Worker Functions
// returns the proper DOM object for an element
function getObject(objElement) {
    var tempObj = null;
    if (document.getElementById) { tempObj = document.getElementById(objElement); }
    else if (document.all) { tempObj = document.all[objElement]; }
    else if (document.layers) { tempObj = document.layers[objElement]; }
    return tempObj;
    }
//Common DIV Functions
function showDiv(whichElement) {
    var obj = getObject(whichElement);
    obj.style.display = "block";
}
function hideDiv(whichElement) {
    var obj = getObject(whichElement);
    obj.style.display = "none";
}
function changeCSS(nr)
{
    if (document.getElementsByTagName)
        x = document.getElementsByTagName('link');
    else if (document.all)
        x = document.all.tags('link');
    else
    {
        alert('This script does not work in your browser');
        return;
    }
    nr--;
    for (var i=0;i<x.length;i++)
    {
        dis = !(i == nr);
        x[i].disabled = dis;
        x[2].disabled = false;
    }
}
 
function CheckRequired(formField, fieldLabel)
{
    var result = true;
    
    if (formField.value == "")
    {
        alert(fieldLabel + ' is required.  Please try again.');
        formField.focus();
        result = false;
    }
    
    return result;
}
function CheckEmail(email)
{
    var emailvalid = true;
    emailvalid = ValidateString(email.value,rexEmail);
/*    if ((email.value.indexOf("@")) <= 0){
        emailvalid = false
    }
    if ((email.value.indexOf(".")) <= 0){
        emailvalid = false
    }
    if ((email.value.indexOf(",")) > 0){
        emailvalid = false
    }
    if ((email.value.indexOf("@.")) > 0){
        emailvalid = false
    }
    if ((email.value.indexOf(" ")) > 0){
        emailvalid = false
    }  */

    if (!emailvalid)
    {
        alert("Invalid E-mail address, please try again.");
        email.focus();
    }
        
    return emailvalid;
}
function CheckEmailNoMsg(email)
{
    var emailvalid = true;
    emailvalid = ValidateString(email.value,rexEmail);

/*    if ((email.value.indexOf("@")) <= 0){
        emailvalid = false
    }
    if ((email.value.indexOf(".")) <= 0){
        emailvalid = false
    }
    if ((email.value.indexOf(",")) > 0){
        emailvalid = false
    }
    if ((email.value.indexOf("@.")) > 0){
        emailvalid = false
    }
    if ((email.value.indexOf(" ")) > 0){
        emailvalid = false
    }  */
    return emailvalid;
}
function CheckPostalCode(formField)
{    //validates Canadian postal codes
    var pcPattern = new RegExp("[A-Za-z][0-9][A-Za-z] ?[0-9][A-Za-z][0-9]");
    var pc = new String(formField.value);
    if (pcPattern.test(pc)) {
        pc = pc.toUpperCase();
        if (pc.charAt(3) != " ")
            pc = pc.substr(0,3) + " " + pc.substr(3,3);
        formField.value = pc;
    }
    else  {
        alert("Please check the format of the postal code");
        formField.focus();
        return false;
    }
    
    return true;
}
function CheckZipCode(formField){    //validates US zip codes
    var message = "";
    if (formField.value != "") {
        var zipPattern = new RegExp("^\\d{5}$");
        if (zipPattern.test(formField.value)) {
            return true;
        }
        else {
            message = "Please check the format of the zip code";
        }
    }
    if (message != "") {
        alert(message);
        return false;
    }
    else {
        return true;
    }
}
function validatePostcode(postcode) {    // validates UK post codes
    var pattern = new RegExp("^([A-Za-z]{1,2}\\d{1,2}|[A-Z]{1,2}\\d{1}[A-Za-z]{1})([ ]{0,1})([ ]*|\\d{1}|\\d{1}[A-Za-z]{2})$");
    return pattern.test(postcode.toUpperCase());
}    
function CheckMessage(field,length,message)
{
    var result = true;
    
    if ((field.value.length) > length){    
        alert(message);
        field.focus();
        result = false;
    }
    
    return result;
}
function CheckZipCodeNoMsg(formField){
    if (formField.value != "") {
        var zipPattern = new RegExp("^\\d{5}$");
        if (zipPattern.test(formField.value)) {
            return true;
        }
        else {
            return false;
        }
    }
    else {
        return true;
    }
}
function CheckPOBox(addrField, msgFlag) {
    var POBoxPattern = new RegExp("box\\s+\\d+");
    if ( POBoxPattern.test(addrField.value.toLowerCase()) ) {
        if ( msgFlag == true ) {
            alert("Please enter a street address");
            addrField.focus();
        }
        return false;
    }
    return true;
}

// Simulate activation of objects
function ieupdate() {
    var theObjects = document.getElementsByTagName("object");
    for (var i = 0; i < theObjects.length; i++) {
        theObjects[i].outerHTML = theObjects[i].outerHTML;
    }
}

// Regex validations
var rexEmail = "^[A-Za-z0-9._%+'-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$";
var rexZip = "^\\d{5}$";
var rexCAPostalCode = "^[A-Za-z][0-9][A-Za-z] {0,1}[0-9][A-Za-z][0-9]$";
var rexFilter = "^[^<>{};\\\\/&=:%#@]*$";
var rexFormattedPhone = "^\\d{3}-\\d{3}-\\d{4}$";

function ValidateString(toValidate, expr) {
    var validator = new RegExp(expr);
    return validator.test(toValidate);
}
function ValidatePhoneNumber(areaCode, exchange, ext) {
    var res = true;
    var phone = areaCode + exchange + ext;
    if ( phone != "" ) {
        res = ValidateString(phone,"^\\d{10}$");
    }
    return res;
}

//-->
