////////////////////////////////////////////////////////////////////////////////////
/* 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_employer                = "Employer";
var gentext_position                = "Position";
var gentext_clinic                  = "Clinic";
var gentext_apptime                 = "Preferred Appointment Time";
var gentext_appdate                 = "Preferred Appointment Date";
var gentext_treatment				= "Treatment";

var gentext_location                = "Location";
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_entervalidemail         = "Please enter a valid email address";
var gentext_entervalidpostcode      = "Please enter a valid postcode";
var gentext_entervalidphone         = "Please enter a valid phone number";

var gentext_noOptionsEntered        = 'Please enter a town or postcode and select a search option:\n\n - Spectacles & contact lenses\n - Laser eye surgery\n - Intraocular lenses';
////////////////////////////////////////////////////////////////////////////////////
// Does the top navigation
function initNav() {
	/* Check for DOM support */
	if (!(document && document.implementation && document.implementation.hasFeature))
		return;

	/* Check for image support */
	if (!document.images)
		return;

	var topNav = document.getElementById('topNav-list');
	var navOptions = topNav.childNodes;
	var isFirst = true;
	var navEntries = new Array();

	for (i = 0; i < navOptions.length; i++) {
		if (navOptions[i].nodeName == 'LI') {
			// It's a link!
			var imgLink = '';
			var page_id = navOptions[i].id.substr(2);
			// The first child is the <A> tag, and it's child is the button text
			var alttext = navOptions[i].firstChild.firstChild.nodeValue;

			if (navOptions[i].className == 'active') {
				navOptions[i].style.marginTop = '-80px';
			} else {
				navOptions[i].onmouseover = function() {
					this.style.marginTop = '-40px';
				};
				navOptions[i].onmouseout = function() {
					this.style.marginTop = '0';
				};
			}
			imgLink = '<img src="/img/topNav/topNav-' + page_id + '.jpg" alt="'
					+ alttext + '" />';

			// Set the link contents
			navOptions[i].firstChild.innerHTML = imgLink;

			if (!isFirst) {
				if (navOptions[i].id) {
					navEntries.push(navOptions[i]);
				}
			}

			isFirst = false;

		}
	}

	for (i = 0; i < navEntries.length; i++) {
		var listItem = document.createElement('li');
		var divider = document.createElement('img');
		divider.setAttribute('alt', '');
		divider.setAttribute('src', '/img/topNav/topNav-divider.jpg');
		listItem.appendChild(divider);

		topNav.insertBefore(listItem, navEntries[i]);
	}

}

/* Removes the default text from a field when you click on it */
Event.observe(window, 'load', initForm);
function initForm() {
	var clearables = $$('.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();
		}
	}
}

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 checkPostcode( p ) {
    
    var postcodeRegEx = /^[A-Z]{1,2}[0-9]{1,2}[A-Z]? ?[0-9][A-Z]{2}$/i;
    return postcodeRegEx.test( p );
    
}

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

function checkPhoneNumber( p ) {
    
    p = p.split(' ').join('');
    var phoneRegEx = /^[0][0-9]{10}$/i;
    return phoneRegEx.test( p );
    
}

function enquiryFormCheck(form, formType) {
    with (form) {
        fields = new Array;         
        labels = new Array;
         
        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] = Treatment;      labels[8] = gentext_treatment;
        fields[9] = Marketing;      labels[9] = gentext_wherehearaboutus;

        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 (Postcode.value.length > 0 && !checkPostcode(Postcode.value)) {
            count++;
            required += "\n- " + gentext_entervalidpostcode;
            if (count == 1) 
                first = Postcode;
        }
        if (Telno.value.length > 0 && !checkPhoneNumber(Telno.value)) {
            count++;
            required += "\n- " + gentext_entervalidphone;
            if (count == 1) 
                first = Telno;
        }       
        if (Email.value.length > 0 && !checkEmail(Email.value)) {
            count++;
            required += "\n- " + gentext_entervalidemail;
            if (count == 1) 
                first = Email;
        }   
                
        if (count == 0) {
            return true;
        }
        else {                          
            alert(gentext_enterthefollowing + required);
            first.focus();
        }   
        return false;
    }
}

function contactFormCheck(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_entervalidemail);
                question_email.focus();
            }
        }
        else {                          
            alert(gentext_enterthefollowing + required);
            first.focus();
        }   
        return false;
    }
}

