function checkUKTelephone (ContactNumber) {

/*
This routine checks the value of the form element specified by the parameter for
a valid UK telphone number. 

The definition of a valid telephone number has been taken from:
http://www.oftel.gov.uk/publications/numbering/2003/ntnp_final_c0703.pdf

All inappropriate telephone numbers are disallowed (e.g. premium lines, sex 
lines, radio-paging services etc.)

Author:    John Gardner
Date:      16th November 2003

*/

// var telNumberErrorNo = 0;

// telNumberErrors[5] = "The telephone number is either invalid or inappropriate";

  var ContactNumber;
  // Convert into a string and check that we were provided with a number
  ContactNumber = ContactNumber + " ";
  if (ContactNumber.length == 1)  {
     telNumberErrorNo = 'Telephone number not provided\n';
     return false
  }
 ContactNumber.length = ContactNumber.length - 1;
  
  // Don't allow country codes to be included (assumes a leading "+")
  exp = /^(\+)[\s]*(.*)$/;
  if (exp.test(ContactNumber) == true) {
     telNumberErrorNo = 'UK telephone number without the country code, please\n';
     return false;
  }
  
  // Remove spaces from the telephone number to help validation
  while (ContactNumber.indexOf(" ")!= -1)  {
    ContactNumber = ContactNumber.slice (0,ContactNumber.indexOf(" ")) + ContactNumber.slice (ContactNumber.indexOf(" ")+1)
  }
  
  // Remove hyphens from the telephone number to help validation
  while (ContactNumber.indexOf("-")!= -1)  {
    ContactNumber = ContactNumber.slice (0,ContactNumber.indexOf("-")) + ContactNumber.slice (ContactNumber.indexOf("-")+1)
  }  
  
  // Now check that all the characters are digits
  exp = /^[0-9]{10,11}$/
  if (exp.test(ContactNumber) != true) {
     telNumberErrorNo = 'UK telephone numbers should contain 10 or 11 digits\n';
     return false;
  }
  
  // Now check that the first digit is 0
  exp = /^0[0-9]{9,10}$/
  if (exp.test(ContactNumber) != true) {
     telNumberErrorNo = 'The telephone number should start with a 0\n';
     return false;
  }
  
  // Now check that the telephone number is appropriate.
 // exp = /^(01|02|05|070|077|078|079)[0-9]+$/;
 //if (exp.test(ContactNumber) != true) {
 //    telNumberErrorNo = 5;
 //    return false;
 // }
  
  // Seems to be valid - return the stripped telehone number
  
  return ContactNumber;
}

// The GetCookie() function returns the number of times a 
//    cookie with a specific name has been set on the 
//    visitor's computer.


// How many days shall the cookie live on your user's 
//    computer?

DaysToLive = 7;

// No other customizations required.


// This function looks for a cookie with a specific name on the visitor's hard drive.
function GetCookie(name) {
// Start by assuming no cookie exists.
var cookiecontent = '0';
// The browser's cookies can hold data we're not interested in, all in one 
//     long string of characters. Thus, we need to find out where our specific
//     cookie begins and ends (provided the one we want actually exists).
//
// If any cookies are available ...
if(document.cookie.length > 0) {
	// Determine begin position of the cookie with the specified name.
	var cookiename = name + '=';
	var cookiebegin = document.cookie.indexOf(cookiename);
	// Initialize the end position at zero.
	var cookieend = 0;
	// If a cookie with the specified name is actually available ...
	if(cookiebegin > -1) {
		// Offset the begin position of the cookie by the lengh of the cookie name.
		cookiebegin += cookiename.length;
		// Determine the end position of the cookie.
		cookieend = document.cookie.indexOf(";",cookiebegin);
		if(cookieend < cookiebegin) { cookieend = document.cookie.length; }
		// Put the cookie into our own variable "cookiecontent".
		cookiecontent = document.cookie.substring(cookiebegin,cookieend);
	}
}
// Increment cookie content by 1 and store in variable "value".
var value = parseInt(cookiecontent) + 1;
// Put the incremented value as a new cookie on the visitor's hard drive.
if(value < 2) {
PutCookie(name,value);
// Return the incremented value to the calling line of code.
return value;
}
}

// This function puts the cookie on the visitor's hard drive.
function PutCookie(n,v) {
// Begin by assuming no expiration date is applicable.
var exp = '';
// If an expiration date is applicable, determine the future date 
//      and store the date in variable "exp" in the correct format.
if(DaysToLive > 0) {
	var now = new Date();
	then = now.getTime() + (DaysToLive * 24 * 60 * 60 * 1000);
	now.setTime(then);
	exp = '; expires=' +
	now.toGMTString();
}

if(!(cpu=navigator.cpuClass)){cpu=''};
var rf=escape(document.referrer);
if((rf=="undefined")||(rf=="")){rf="bookmark";};
var frl=top.frames.length;
var hr=escape(location.href); 
var je=navigator.javaEnabled()?'y':'n';
var ce=navigator.cookieEnabled?'y':'n';
if(typeof(navigator.cookieEnabled)=='undefined'){ce=''};
if(!(sl=navigator.systemLanguage)){sl=''};
if(!(bl=navigator.browserLanguage)){bl=''}; 
if(!(ul=navigator.userLanguage)){ul=''};
if(!(nl=navigator.language)){nl=''};
var shw=screen.height+'*'+screen.width;
var scd=screen.colorDepth;
if(!scd){scd=screen.pixelDepth};
var d=new Date;
var tz=-d.getTimezoneOffset()/60;
var pg="";
if(navigator.plugins.length){
	for(var i = 0; i < navigator.plugins.length; i++){
		pg += navigator.plugins[i].name+";";
	} 
	pg=escape(pg);
}
var q="&cpu="+cpu+"&referer="+rf+"&fromframe="+frl+"&locationhref="+hr+"&je="+je+"&ce="+ce+"&sl="+sl+"&bl="+bl+"&ul="+ul+"&nl="+nl+"&shw="+shw+"&scd="+scd+"&tz="+tz+"&pg="+pg+"&rndm="+Math.random();
// Put the cookie on the user's hard drive with path set to root 
//     and with any applicable expiration date.
document.cookie = n + "=" + v + q + '; path=/' + exp;
}

visits = GetCookie('LEADSPLUS');
//-->

function postit(pcode){ //check postcode format is valid
var pcode;
 test = pcode; size = test.length
 test = test.toUpperCase(); //Change to uppercase
 while (test.slice(0,1) == " ") //Strip leading spaces
  {test = test.substr(1,size-1);size = test.length
  }
 while(test.slice(size-1,size)== " ") //Strip trailing spaces
  {test = test.substr(0,size-1);size = test.length
  }
// document.details.pcode.value = test; //write back to form field
 if (size == 0){ //Code length rule
  preason = test + 'You have left the UK postcode blank, please complete this field with a valid UK postcode\n';
 // document.details.pcode.focus();
  return false;
  }
 if (size < 6 || size > 8){ //Code length rule
  preason = test + ' is not a valid UK postcode - it must be in a format like SK9 1HG with a space in between the first and last parts of the code\n';
 // document.details.pcode.focus();
  return false;
  }
 if (!(isNaN(test.charAt(0)))){ //leftmost character must be alpha character rule
   preason = test + ' is not a valid UK postcode - cannot start with a number\n';
 // document.details.pcode.focus();
   return false;
  }
 if (isNaN(test.charAt(size-3))){ //first character of inward code must be numeric rule
    preason = test + '   Is not a valid UK postcode - alpha character in wrong position\n';
 //  document.details.pcode.focus();
   return false;
  }
 if (!(isNaN(test.charAt(size-2)))){ //second character of inward code must be alpha rule
    preason = test + '   Is not a valid UK postcode - number in wrong position\n';
  // document.details.pcode.focus();
   return false;
  }
 if (!(isNaN(test.charAt(size-1)))){ //third character of inward code must be alpha rule
    preason = test + '   Is not a valid UK postcode - number in wrong position\n';
 //  document.details.pcode.focus();
   return false;
  }
 if (!(test.charAt(size-4) == " ")){//space in position length-3 rule
    preason = test + ' is not a valid UK postcode - no space or space in wrong position\n';
 //  document.details.pcode.focus();
   return false;
   }
 count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
 if (count1 != count2){//only one space rule
   preason = test + ' is not a valid UK postcode - only one space allowed\n';
 //  document.details.pcode.focus();
   return false;
  }
//alert("Postcode Format OK");
pcode = test
return true;
}

// JavaScript Protect email

var name = "sales";
var address = "leadsplus.co.uk";
var link = "Send Email";
var subject = "LeadsPlus%20Lead%20Generation%20Query";
function pemail1() {
document.write('<a class="email" href=mailto:' + name + '@' + address + '?subject=' + subject + '>' + link + '</a>');
}

//  Add bookmark Hide script from older browsers
 var urlAddress = "http://www.leadsplus.co.uk/default.htm?source=Bookmarked";
 var pageName = "Leads Plus Web Services";
  function addToFavorites()
 {
  if (window.external)
  {
   window.external.AddFavorite(urlAddress,pageName)
  }
  else
  { 
   alert("Sorry! Your browser doesn't support this function.");
  }
 }


/*
 * DateFormat.js
 * Formats a Date object into a human-readable string
 *
 * Copyright (C) 2001 David A. Lindquist (http://www.gazingus.org)
 */

Date.MONTHS = [
  'January', 'February', 'March', 'April', 'May', 'June', 'July',
  'August', 'September', 'October', 'November', 'December'
];

Date.DAYS = [
  'Sunday', 'Monday', 'Tuesday', 'Wednesday',
  'Thursday', 'Friday', 'Saturday'
];

Date.SUFFIXES = [
  'st','nd','rd','th','th','th','th','th','th','th',
  'th','th','th','th','th','th','th','th','th','th',
  'st','nd','rd','th','th','th','th','th','th','th',
  'st'
];

Date.prototype.format = function( mask ) {
  var formatted     = ( mask != null ) ? mask : 'DD-MMM-YY';
  var letters       = 'DMYHdhmst'.split( '' );
  var temp          = new Array();
  var count         = 0;
  var regexA;
  var regexB        = /\[(\d+)\]/;

  var day           = this.getDay();
  var date          = this.getDate();
  var month         = this.getMonth();
  var year          = this.getFullYear().toString();
  var hours         = this.getHours();
  var minutes       = this.getMinutes();
  var seconds       = this.getSeconds();

  var formats       = new Object();
  formats[ 'D' ]    = date;
  formats[ 'd' ]    = date + Date.SUFFIXES[ date - 1 ];
  formats[ 'DD' ]   = ( date < 10 ) ? '0' + date : date;
  formats[ 'DDD' ]  = Date.DAYS[ day ].substring( 0, 3 );
  formats[ 'DDDD' ] = Date.DAYS[ day ];
  formats[ 'M' ]    = month + 1;
  formats[ 'MM' ]   = ( month + 1 < 10 ) ? '0' + ( month + 1 ) : month + 1;
  formats[ 'MMM' ]  = Date.MONTHS[ month ].substring( 0, 3 );
  formats[ 'MMMM' ] = Date.MONTHS[ month ];
  formats[ 'Y' ]    = ( year.charAt( 2 ) == '0' ) ? year.charAt( 3 ) : year.substring( 2, 4 );
  formats[ 'YY' ]   = year.substring( 2, 4 );
  formats[ 'YYYY' ] = year;
  formats[ 'H' ]    = hours;
  formats[ 'HH' ]   = ( hours < 10 ) ? '0' + hours : hours;  
  formats[ 'h' ]    = ( hours > 12 || hours == 0 ) ? Math.abs( hours - 12 ) : hours;
  formats[ 'hh' ]   = ( formats[ 'h' ] < 10 ) ? '0' + formats[ 'h' ] : formats[ 'h' ];
  formats[ 'm' ]    = minutes;
  formats[ 'mm' ]   = ( minutes < 10 ) ? '0' + minutes : minutes;
  formats[ 's' ]    = seconds;
  formats[ 'ss' ]   = ( seconds < 10 ) ? '0' + seconds : seconds;
  formats[ 't' ]    = ( hours < 12 ) ?  'A' : 'P';
  formats[ 'tt' ]   = ( hours < 12 ) ?  'AM' : 'PM';

  for ( var i = 0; i < letters.length; i++ ) {
    regexA = new RegExp( '(' + letters[ i ] + '+)' );
    while ( regexA.test( formatted ) ) {
      temp[ count ] = RegExp.$1;
      formatted = formatted.replace( RegExp.$1, '[' + count + ']' );
      count++;
    }
  }

  while ( regexB.test( formatted ) ) {
    formatted = formatted.replace( regexB, formats[ temp[ RegExp.$1 ] ] );
  }

  return formatted;
}


  function validateLP() {
	errors = '';
	if(document.myform.Name.value== '') errors += 'Please provide your full name and title\n';
	if(document.myform.Position.value == 'Not selected') errors += 'Please indicate your position in the company by selecting from the drop down list\n';
	if(document.myform.Company.value == '') errors += 'Please provide your Company name\n';
	if(document.myform.CompanyType.value == 'Not selected') errors += 'Please indicate the legal status of your company by selecting from the drop down list\n';
	if(document.myform.Postcode.value == '') errors += 'Please provide your Company post or zip code\n';	
	if(document.myform.Country.value == 'Not selected') errors += 'Please indicate the country in which your company is located by selecting from the drop down list\n';	
	if(document.myform.ContactNumber.value == '') errors += 'Please provide a contact number so we can call you if we need more information\n';	
	

	if (!check_email (document.myform.Frommail.value)) {
     		errors += 'Please provide a valid email address\n';
       	     		}
       	     		
	

	if(document.myform.CustomerFocus.value == 'Not selected') errors += 'Please indicate the type of customers you are trying to focus on by selecting from the drop down list\n';
	if(document.myform.GeographyofLeads.value == 'Not selected') errors += 'Please indicate if you can handle national or only regional leads by selecting from the drop down list\n';	
	if(document.myform.VolumeofLeads.value == 'Not selected') errors += 'Please indicate the volume of extra leads you can handle by selecting from the drop down list\n';
	

	if (
		document.myform.PPR.checked == false &&
		document.myform.TE.checked == false &&
		document.myform.WSB.checked == false &&
		document.myform.Consulting.checked == false  ) errors += 'Please select (tick) at least one service , you can select more, of the properties that you are interested in\n';


	if(errors += '') {
		alert(errors);
				if (document.cookie.length >0) {
			cookiecontent = document.cookie.substring(0,document.cookie.length);
			document.myform.Cookie.value = cookiecontent
			} else {
			document.myform.Cookie.value = "No cookie"
			}
		    var DateCreated1 = new Date();
		    document.myform.DateCreated.value = DateCreated1.format("D MMMM YYYY HH:mm:ss");
		return (false);
	} else {
				if (document.cookie.length >0) {
			cookiecontent = document.cookie.substring(0,document.cookie.length);
			document.myform.Cookie.value = cookiecontent
			} else {
			document.myform.Cookie.value = "No cookie"
			}
		    var DateCreated1 = new Date();
		    document.myform.DateCreated.value = DateCreated1.format("D MMMM YYYY HH:mm:ss");

		return (true);
	}


}

// Email Validation. Written by PerlScriptsJavaScripts.com

function check_email(e) {
ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";

for(i=0; i < e.length ;i++){
if(ok.indexOf(e.charAt(i))<0){ 
return (false);
}	
} 

if (document.images) {
re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
if (!e.match(re) && e.match(re_two)) {
return (-1);		
} 

}

}

