function validate_required(field) {
	with (field) {
		if (value==null || value=="") {
			return false
		}

		return true;
	}
}

/*
function sucess_validate(){
	alert("Thank you.\n\nYou should receive your FREE brochure, sample and price pack\n in the next few days.\n");
}
*/

function validate_form(thisform)
{
	var errstr = "Please complete the following fields:\n\n";

	with (thisform) {
		var error = 0;
		if (validate_required(name1) == false) {
			errstr = errstr + "First name\n";
			name1.focus(); 
			error = 1;
		}
		if (validate_required(name2) == false) {
			errstr = errstr + "Last name\n";
			if(!error) {
				name2.focus();
				error = 1;
			}
		}
		if (validate_required(addr1) == false) {
			errstr = errstr + "First line of address\n";
			if(!error) {
				addr1.focus();
				error = 1;
			}
		}
		if (validate_required(town) == false) {
			errstr = errstr + "Town\n";
			if(!error) {
				town.focus();
				error = 1;
			}
		}
		if (validate_required(county) == false) {
			errstr = errstr  + "Country\n";
			if(!error) {
				county.focus();
				error = 1;
			}
		}

		if ((validate_required(postcode) == false) || (checkPostCode($F('postcode')) == false)){
			errstr = errstr + "Valid UK Postcode\n";
			if(!error) {
				postcode.focus();
				error = 1;
			}
		}
  	if (document.infoform.samples[0].checked == false &&
        document.infoform.samples[1].checked == false &&
        document.infoform.samples[2].checked == false &&
        document.infoform.samples[3].checked == false &&
        document.infoform.samples[4].checked == false) {
	errstr = errstr + "Selection of free sample door";
			error = 1;
		}

		if(error == 1) {
			var i, j, finalerr, parts, newpart;
			
			alert(errstr);
			return false;

		} else {
			//sucess_validate();
			return true;
		}
	}
}

/* display map regions */

var region = "";
var region_up = false;

function show_region(region){

    var ie=document.all
    var ns6=document.getElementById && !document.all
    
    ie = ie ? 1 : 0;
    //ie = true;

    if(!region_up){
        var regionDiv = document.createElement('div');
        regionDiv.setAttribute('class','region');
        regionDiv.setAttribute('id','region');
        regionDiv.onclick=close_region;
        regionDiv.style.left= '570px';
        regionDiv.style.position= 'absolute';
        regionDiv.style.top= '20%';
        //regionDiv.style.backgroundColor = 'white';
        regionDiv.style.color= 'white';
        regionDiv.style.padding= '0px';
        regionDiv.style.margin= '0px';
        //regionDiv.style.border= '1px solid black';
    
        var contentDiv = document.getElementById('content');
        contentDiv.appendChild(regionDiv);
        regionDiv.innerHTML='<img src="/images/map/'+region+'.gif" />';
        region_up= true;

        x_dots_on_map(region,ie,dots_html);
    }
}

function dots_html(html){
    var regionDiv = document.getElementById("region");
    regionDiv.innerHTML=regionDiv.innerHTML+html;
}

function close_region() {
    var regionDiv = document.getElementById("region");
    regionDiv.parentNode.removeChild(regionDiv);
    region_up=false;
}

/*
function retailer_hover() {
   var hover = document.createElement('div');
   hover.

}*/

function apsolvaPopup(anAction)
{
  if (anAction == "close"){
    $('veil').setStyle({display: 'none'});
    $('questions').setStyle({display: 'none'});

  }else{
    $('veil').setStyle({display: 'block'});
    $('questions').setStyle({display: 'block'});
  }
}

function checkPostCode(toCheck)
{
  // Permitted letters depend upon their position in the postcode.
  var alpha1 = "[abcdefghijklmnoprstuwyz]";                       // Character 1
  var alpha2 = "[abcdefghklmnopqrstuvwxy]";                       // Character 2
  var alpha3 = "[abcdefghjkstuw]";                                // Character 3
  var alpha4 = "[abehmnprvwxy]";                                  // Character 4
  var alpha5 = "[abdefghjlnpqrstuwxyz]";                          // Character 5

 
  // Array holds the regular expressions for the valid postcodes
  var pcexp = new Array ();

  // Expression for postcodes: AN NAA, ANN NAA, AAN NAA, and AANN NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  // Expression for postcodes: ANA NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));

  // Expression for postcodes: AANA  NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  // Exception for the special postcode GIR 0AA
  pcexp.push (/^(GIR)(\s*)(0AA)$/i);
  
  // Standard BFPO numbers
  pcexp.push (/^(bfpo)(\s*)([0-9]{1,4})$/i);
  
  // c/o BFPO numbers
  pcexp.push (/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);

  // Load up the string to check
  var postCode = toCheck;

  // Assume we're not going to find a valid postcode
  var valid = false;
  
  // Check the string against the types of post codes
  for ( var i=0; i<pcexp.length; i++) {
    if (pcexp[i].test(postCode)) {
    
      // The post code is valid - split the post code into component parts
      pcexp[i].exec(postCode);
      
      // Copy it back into the original string, converting it to uppercase and
      // inserting a space between the inward and outward codes
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      
      // If it is a BFPO c/o type postcode, tidy up the "c/o" part
      postCode = postCode.replace (/C\/O\s*/,"c/o ");
      
      // Load new postcode back into the form element
      valid = true;
      
      // Remember that we have found that the code is valid and break from loop
      break;
    }
  }
  
  // Return with either the reformatted valid postcode or false
  if (valid) {return postCode;} else return false;
}
