////////////////////////////////////////////////////////////////////////////////////
/* GENERAL TEXT */

var gentext_yourname				= "Your Name";
var gentext_yourphone				= "Your Mobile No.";
var gentext_youremail				= "Your Email Address";
var gentext_yourquestion			= "Your Question";
var gentext_title					= "Title";
var gentext_forename				= "Forename";
var gentext_surname					= "Surname";
var gentext_address					= "Address";
var gentext_town					= "Town";
var gentext_postcode				= "Postcode";
var gentext_telephone				= "Mobile No.";
var gentext_email					= "Email";
var gentext_sex                     = "Sex";
var gentext_location				= "Location";
var gentext_dob                     = "Date of birth";
var gentext_wherehearaboutus		= "Where did you hear about us?";
var gentext_whencallyou				= "When would you like us to call you?";
var gentext_enterpostcode			= "Please enter your postcode";
var gentext_enterthefollowing		= "Please enter the following:";
var gentext_entervalidmemail		= "Please enter a valid email address";
var gentext_entervaliddob           = "Please enter a valid date of birth";
var gentext_preferredclinic         = "Your Preferred Clinic";


////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////



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;
}

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_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_jumpMenu(targ,selObj,restore){ //v3.0
    eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
    if (restore) selObj.selectedIndex= 0;
}

function trim(str) {
	return( (""+str).replace(/^\s*([\s\S]*\S+)\s*$|^\s*$/,'$1') );
}

function checkEmail(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}
	 if (str.indexOf(at,(lat+1))!=-1){
		return false
	 }
	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	 }
	 if (str.indexOf(dot,(lat+2))==-1){
		return false
	 }	
	 if (str.indexOf(" ")!=-1){
		return false
	 }
	 return true					
}

function validateDate(str) {
    var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
    var errorMessage = 'Please enter valid date as month, day, and four digit year.\nYou may use a slash, hyphen or period to separate the values.\nThe date must be a real date. 30/2/2000 would not be accepted.\nFormat dd/mm/yyyy.';
    if ((str.match(RegExPattern)) && (str.value!='')) {
        return true;
    } else {
        return false;
    } 
}

function storeLocatorPuffCheck() {
    
    url =  'http://' + window.location.hostname + '/clinics/';
    targ = document.getElementById('clinics');
    if(targ)
    {
      if(targ.options[targ.selectedIndex].value != '') {
          url = url + targ.options[targ.selectedIndex].value + '.html'; 
          window.location = url;
      }
    }
    else
    {
      window.location = '/';        
    }

}

function storeLocator(postcode) {
	if (postcode == "") 
		var window_url = "http://www.opticalexpress.com/_sites/uk/inserts/uk_store.html";	
	else
		var window_url = "http://www.viamichelin.com/b2b2c/gbr/dyn/controller/DLAmbiguous?withCriteria=false&wnoss=true&productId=66593&strCP="+postcode;	
	var window_name = "storeLocator";		
	var window_options = "toolbar=no,location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,top=60,left=30,width=530,height=700";
	if (window.window_name) {			
		if (window_name.closed) {
			window_name = window.open(window_url,window_name,window_options);	
			window_name.focus();
		}
		else 
			window_name.focus();
	}	
	else {
		window_name = window.open(window_url,window_name,window_options);	
		window_name.focus();
	}		
}

function changeSite() {
	choice = document.countryform.countryselect.value;
	top.location.href = "http://www.opticalexpress.com/" + choice;	
}

function enquiryFormCheck(form, formType) {
	with (form) {
		fields = new Array;			
		labels = new Array;
		if (formType == "laser") {			
			fields[0] = Title;			labels[0] = gentext_title;
			fields[1] = Forename;		labels[1] = gentext_forename;
			fields[2] = Surname;		labels[2] = gentext_surname;
			fields[3] = Address1;		labels[3] = gentext_address;
			fields[4] = Town;			labels[4] = gentext_town;
			fields[5] = Postcode;		labels[5] = gentext_postcode;	
			fields[6] = Telno;			labels[6] = gentext_telephone;	
			fields[7] = Email;			labels[7] = gentext_email;
			fields[8] = Sex;            labels[8] = gentext_sex;
            fields[9] = Marketing;		labels[9] = gentext_wherehearaboutus;	
            fields[10] = store;          labels[10] = gentext_preferredclinic;   
		}
		else if (formType == "eyeExam") {
			fields[0] = Title;			labels[0] = gentext_title;
			fields[1] = Forename;		labels[1] = gentext_forename;
			fields[2] = Surname;		labels[2] = gentext_surname;
			fields[3] = Address1;		labels[3] = gentext_address;
			fields[4] = Town;			labels[4] = gentext_town;
			fields[5] = Postcode;		labels[5] = gentext_postcode;	
			fields[6] = Telno;			labels[6] = gentext_telephone;	
			fields[7] = Email;			labels[7] = gentext_email;
            fields[8] = store;          labels[8] = gentext_preferredclinic;   
		}		
		required = "";
		count = 0;					
		for (i=0; i<fields.length; i++) {							
			if (trim(fields[i].value).length < 1) {
				count++;				
				required += "\n- " + labels[i];
				if (count == 1)
					first = fields[i];
			}
		}	
							
		if (count == 0) {
			if (!checkEmail(Email.value)) {
				required += "\n- " + gentext_entervalidmemail;
				first = Email;
                count++;
			}
			
			var dob = dob_day.value + '/' + dob_month.value + '/' + dob_year.value;
						
			if(!validateDate(dob)) {
                required += "\n- " + gentext_entervaliddob;
                first = dob_day;
                count++;                		      
			}
		}
		
		if(count == 0) {
            return true;
		}
		
		alert(gentext_enterthefollowing + required);
		first.focus();
		return false;
	}
}
		
function callBackCheck(form) {
	with (form) {
		fields = new Array;			
		labels = new Array;				
		fields[0] = callback_name;		labels[0] = gentext_yourname;
		fields[1] = callback_phone;		labels[1] = gentext_yourphone;
		fields[2] = callback_time;		labels[2] = gentext_whencallyou;		
		required = "";
		count = 0;					
		for (i=0; i<fields.length; i++) {							
			if (trim(fields[i].value).length < 1) {
				count++;				
				required += "\n- " + labels[i];
				if (count == 1)
					first = fields[i];
			}
		}						
		if (count == 0) 			
			return true;
		else {							
			alert(gentext_enterthefollowing + required);
			first.focus();
		}	
		return false;
	}
}		

function askQuestionCheck(form) {
	with (form) {
		fields = new Array;			
		labels = new Array;				
		fields[0] = question_name;		labels[0] = gentext_yourname;
		fields[1] = question_email;		labels[1] = gentext_youremail;
		fields[2] = question;			labels[2] = gentext_yourquestion;		
		required = "";
		count = 0;					
		for (i=0; i<fields.length; i++) {							
			if (trim(fields[i].value).length < 1) {
				count++;				
				required += "\n- " + labels[i];
				if (count == 1)
					first = fields[i];
			}
		}						
		if (count == 0) {
			if (checkEmail(question_email.value)) 
				return true;
			else {
				alert(gentext_entervalidmemail);
				question_email.focus();
			}
		}
		else {							
			alert(gentext_enterthefollowing + required);
			first.focus();
		}	
		return false;
	}
}

function loadInterview(page_id, question_id, contentdiv) {
    var path = '/swf/interviews/' + page_id + '/' + question_id + '.swf';
    var so = new SWFObject(path, question_id, "200", "220", "8", "#000000");
    so.write(contentdiv);
}

Event.observe(window, 'load', initForm);
function initForm() {
    var clearables = $$('input.cleartext');
    for(i = 0; i < clearables.length; i++) {
        clearables[i].observe('focus', clearDefaultText);
        clearables[i].observe('blur', replaceDefaultText);
        
        /* Save the current value */
		if (clearables[i].value != '') {
            clearables[i].defaultText = clearables[i].value;
	    }
        
    }

}
function clearDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == target.defaultText) {
        target.value = '';
    }
}

function replaceDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == '' && target.defaultText) {
        target.value = target.defaultText;
    }
}

function addLoadEvent(func) {
	  var oldonload = window.onload;
	  if (typeof window.onload != 'function') {
	    window.onload = func;
	  } else {
	    window.onload = function() {
	      oldonload();
	      func();
	    }
	  }
	}

	function addUnLoadEvent(func) {
	// we need this to avoid memory leaks
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') {
	  window.onunload = func;
	  } else {
	    window.onunload = function() {
	        oldonunload();
	            func();
	              }
	              }
	}