// JavaScript Document

//ALLOWS EXTERNAL LINKS TO BE OPENED IN A NEW WINDOW WITHOUT THE USE OF TARGET ATTRIBUTE
//LOOPS THROUGH LINKS ON PAGE FINDS EXTERNAL LINKS AND ADDS TARGET//
function externalLinks() {
    //SETS DOMAIN OF SITE
    var domainName=document.domain;
	
    //FIND ALL LINKS ON THE CURRENT PAGE
    var externalLinks=document.getElementsByTagName("a");
    //LOOP THROUGH LINKS ARRAY
    for(var i=0; i<externalLinks.length; i++) {
        //GETS CONTENT OF 'HREF' ATTRIBUTE ON CLICKED LINK
        var attribute=externalLinks[i].getAttribute("href");
        var elementClass=externalLinks[i].className;
		
        //GET VALUE http IN 'HREF' **FOR MOZILLA&&
        var contains_http=attribute.indexOf("http");
		
        //GET VALUE domainName **FOR IE**
        var contains_domain=attribute.indexOf(domainName);
		
        //DOES CONTAIN AN 'http' OR DOES NOT CONTAIN domainName
        if((contains_http>-1 && contains_domain==-1) || elementClass.indexOf('external') > -1) {
            //SET NEW ATTRIBUTE ON LINK
            externalLinks[i].setAttribute("target", "_blank");
        }
		
    }
	
}

//FORM VALIDATION
//LOOPS THROUGH THE ELEMENTS IN A SUBMITTED FORM, CHECKS IF THEY ARE MARKED AS MANDATORY (class='mand') AND HIGHTLIGHTS LABELS

//HIGHLIGHT LABEL IF ELEMENT IS BLANK OR NORMALISE IF COMPLETED
function highlightLabel(form, id, color, weight) {
    var forAttribute="";
    //FIND LABELS ON FORM
    var labels=form.getElementsByTagName("label");
    for(var z=0; z<labels.length; z++) {
        //GET FOR ATTRIBUTE
        //forAttribute=labels[z].getAttribute('for')?labels[z].getAttribute('for'):labels[z].getAttribute('htmlFor');
        if(navigator.appName=="Microsoft Internet Explorer") {
            forAttribute=labels[z].getAttribute('htmlFor');
        }else{
            forAttribute=labels[z].getAttribute('for');
        }
		
        //MATCH FOR WITH ELEMENT ID
        if(forAttribute==id) {
            //APPLY STYLES AS APPROPRIATE
            labels[z].style.color='#'+color;
            labels[z].style.fontWeight=weight;
        }
    }
}


//VALIDATES INPUT FIELDS
function checkInputs(form, fail) {
    //GET INPUTS
    var inputs=form.getElementsByTagName("input");
    for(var x=0; x<inputs.length; x++) {
        //DEFINE ELEMENT ID
        var elementId=inputs[x].getAttribute("id");
        //IS FIELD MANDATORY AND NOT COMPLETED
        if(inputs[x].className=="mand" && inputs[x].value=="") {
            //CHANGE LABEL
            highlightLabel(form, elementId, 'cb0000', 'bold');
            //INCREMENT FAIL VAL
            fail++;
        //THIS COVERS CHECKBOXES
        }else if(inputs[x].className=="auto_width mand checkbox" && inputs[x].checked==false) {
            //CHANGE LABEL
            highlightLabel(form, elementId, 'cb0000', 'bold');
            //INCREMENT FAIL VAL
            fail++;
        }else if(inputs[x].className=="auto_width mand checkbox" && inputs[x].checked==true) {
            //CHANGE LABEL
            highlightLabel(form, elementId, '000', 'normal');
        }else if(inputs[x].className=="mand" && inputs[x].value!="") {
            //CHANGE LABEL
            highlightLabel(form, elementId, '000', 'bold');
        }
		
    }
    //SEND FAIL BACK TO FUNCTION
    return fail;
}

//VALIDATES TEXTAREAS FIELDS
function checkTextArea(form, fail) {
    //GET TEXTAREAS
    var textareas=form.getElementsByTagName("textarea");
    for(var n=0; n<textareas.length; n++) {
        //DEFINE ELEMENT ID
        var elementId=textareas[n].getAttribute("id");
        //IS FIELD MANDATORY AND NOT COMPLETED
        if(textareas[n].className=="mand" && textareas[n].value=="") {
            //CHANGE LABEL
            highlightLabel(form, elementId, 'cb0000', 'bold');
            //INCREMENT FAIL VAL
            fail++;
        }else if(textareas[n].className=="mand" && textareas[n].value!="") {
            //CHANGE LABEL
            highlightLabel(form, elementId, '000', 'bold');
        }
		
    }
    //SEND FAIL BACK TO FUNCTION
    return fail;
}

//VALIDATES SELECTS FIELDS
function checkSelects(form, fail) {
    //GET SELECTS
    var selects=form.getElementsByTagName("select");
    for(var b=0; b<selects.length; b++) {
        //DEFINE ELEMENT ID
        var elementId=selects[b].getAttribute("id");
        //IS FIELD MANDATORY AND NOT COMPLETED
        if(selects[b].className=="mand" && (selects[b].value=="0" || selects[b].value=="")) {
            //CHANGE LABEL
            highlightLabel(form, elementId, 'cb0000', 'bold');
            //INCREMENT FAIL VAL
            fail++;
        }else if(selects[b].className=="mand" && (selects[b].value!="0" && selects[b].value!="")) {
            //CHANGE LABEL
            highlightLabel(form, elementId, '000', 'bold');
        }
    }
    //SEND FAIL BACK TO FUNCTION
    return fail;
}

//FINDS THE SUBMITTED FORM
function formValidation() {
    var forms=document.getElementsByTagName("form");
    //LOOP THROUGH FORMS
    for(var i=0; i<forms.length; i++) {
        //FORM HAS BEEN SUBMITTED
        forms[i].onsubmit=function() {
			
            //SET FAIL VAL
            var fail=0;
            //ASSIGN CURRENT FAIL VAL TO CHECKING FUNCTIONS
            fail += checkInputs(this, fail);
            fail += checkTextArea(this, fail);
            fail += checkSelects(this, fail);
			
            //CHECK PASSWORDS MATCH
            if(document.getElementById('password') && document.getElementById('password_1')) {
				
                var password = document.getElementById('password');
                var repassword = document.getElementById('password_1');
				
                var passwordFail = 0;
				
                if(password.value != repassword.value) {
					
                    passwordFail++;
					
                }
				
            }
			
            var emailVars = Array('email', 'email_address', 'Email', 'Email_Address','personal_email');
			
            for(var n=0; n<emailVars.length; n++) {
				
                if(document.getElementById(emailVars[n]) && document.getElementById(emailVars[n]).value!='') {
					
                    if(document.getElementById(emailVars[n]).getAttribute('type')!='checkbox') {
					
                        var isEmail = validateEmail(emailVars[n]);
						
                        if(isEmail == false) {
                            alert('Please enter a valid email address');
                            return false;
                        }
					
                    }
					
                }
				
            }
			
            //VALIDATE EMAIL
            /*if(document.getElementById('email_address') && document.getElementById('email_address').value!='') {
				
				var isEmail = validateEmail('email_address');
				
				if(isEmail == false) {
					alert('Please enter a valid email address');
					return false;
				}
				
			}*/
			
            //RETURN RESULT OF CHECKING
            if(fail>0) {
				
                if(document.getElementById('error')) {
                    var errorText = document.getElementById('error');
                    errorText.style.display='block';
                    //NEED TO PUT A LINK OR INPUT IN THE ERROR PARA TO GET FOCUS - OPTIONAL
                    if(document.getElementById('error_input')) {
                        var errorInput = document.getElementById('error_input');
                        errorInput.focus();
                    }
                }else{
                    alert('Please make sure you have completed all fields marked *\n\n');
                }
				
                return false;
				
            }else{
				
                //CHECK IF PASSWORDS MATCH
                if(passwordFail>0) {
                    if(document.getElementById('passwordError')) {
					
                        var passwordError = document.getElementById('passwordError');
                        passwordError.style.display='block';
                        var errorInput = document.getElementById('error_password');
                        errorInput.focus();
					
                    }else{
                        alert('Please make sure your passwords match\n\n');
                    }
					
                    return false;
					
                }else{
				
                    return true;
				
                }
            }
        }
    }
}

//REFRESHES THE CURRENT PAGE AND SHOULD SEND IT DOWN TO DID YOU KNOW AGAIN
function did_you_know() {
	
    if(!document.getElementById('something_else')) return false;
	
    var action = document.getElementById('something_else');
    var currentLocation = window.location;
	
    action.onclick = function () {
		
        window.location.href=currentLocation;
        action.focus();
        return false;
		
    }
	
}

//HIDES THE PET PREFERENCES THEN DISPLAYS THEM WHEN APPROPRIATE PET IS SELECTED
function more_info_pet_preferences() {
	
    if(!document.getElementById('dog_owned') || !document.getElementById('cat_owned')) return false;
	
    var dog_check = document.getElementById('dog');
    var dog_list = document.getElementById('dog_owned');
    var cat_check = document.getElementById('cat');
    var cat_list = document.getElementById('cat_owned');
	
    //HIDE LIST
    dog_list.className='hidden';
    cat_list.className='hidden';
	
    dog_check.onclick=function() {
		
        if(dog_check.checked == true) {
            //SHOW
            dog_list.className='';
        }else{
            //HIDE
            dog_list.className='hidden';
        }
		
    }
	
    cat_check.onclick=function() {
		
        if(cat_check.checked == true) {
            //SHOW
            cat_list.className='';
        }else{
            //HIDE
            cat_list.className='hidden';
        }
		
    }
	
}

//AJAX
var req;
var url;
function Initialize()
{
    try
    {
        req=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
        try
        {
            req=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(oc)
        {
            req=null;
        }
    }

    if(!req&&typeof XMLHttpRequest!="undefined")
    {
        req= new XMLHttpRequest();
    }
}

//UPDATE BREEDS LIST FROM SPECIES
function updateBreed(speciesId, url, id) {
    Initialize();
    var url="ajax_includes/"+url+".php?speciesId="+speciesId;
    if(req!=null) {
        //window.alert("page doesn't exist!");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById(id).innerHTML=req.responseText;
                }else{
                    document.getElementById(id).innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
        }
        req.open("GET", url, true);
        req.send(null);
    }
}

//UPDATE BREEDS LIST FROM SPECIES
function updatePeriod(inoculationId, url, id, type, species) {
    Initialize();
    var url="ajax_includes/"+url+".php?inoculationId="+inoculationId+"&type="+type+"&species="+species;
    if(req!=null) {
        //window.alert("page doesn't exist!");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById(id).innerHTML=req.responseText;
                }else{
                    document.getElementById(id).innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
        }
        req.open("GET", url, true);
        req.send(null);
    }
}

//UPDATE COLOURS LIST FROM BREED
function updateColour(breedId, speciesId, url, id) {
    Initialize();
    var url="ajax_includes/"+url+".php?breedId="+breedId+"&speciesId="+speciesId;
    if(req!=null) {
        //window.alert("page doesn't exist!");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById(id).innerHTML=req.responseText;
                }else{
                    document.getElementById(id).innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
        }
        req.open("GET", url, true);
        req.send(null);
    }
}

//UPDATES HIDDEN COLOUR VALUE FROM SELECTION
function updateHiddenColour(colourId) {
	
    var hiddenInp = document.getElementById('selected_colour');
	
    hiddenInp.value = colourId;
	
}

//LIST VTS
function listVets(postcode, url, id) {
    Initialize();
    var url="ajax_includes/select_vet.php?postcode="+postcode;
    if(req!=null) {
        //window.alert("page doesn't exist!");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById(id).innerHTML=req.responseText;
                }else{
                    document.getElementById(id).innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
        }
        req.open("GET", url, true);
        req.send(null);
    }
}

function diet_info(species, type) {
    Initialize();
    var url="ajax_includes/pet_diet.php?species="+species+"&type="+type;
    if(req!=null) {
        //window.alert("page doesn't exist!");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById('diet_type').innerHTML=req.responseText;
                }else{
                    document.getElementById('diet_type').innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
        }
        req.open("GET", url, true);
        req.send(null);
    }
}

function find_postcode_one(postcode, id) {
    Initialize();
    var url="ajax_includes/new_address_one.php?postcode="+postcode;
    if(req!=null) {
        //window.alert("page doesn't exist!");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById(id).innerHTML=req.responseText;
                }else{
                    document.getElementById(id).innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
        }
        req.open("GET", url, true);
        req.send(null);
    }
}
//FIND ADDRESS
function find_postcode(postcode, id) {
    Initialize();
    var url="ajax_includes/new_address.php?postcode="+postcode;
    if(req!=null) {
        //window.alert("page doesn't exist!");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById(id).innerHTML=req.responseText;
                }else{
                    document.getElementById(id).innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
        }
        req.open("GET", url, true);
        req.send(null);
    }
}

function find_vet_postcode(postcode, id) {
    Initialize();
    var url="ajax_includes/vet_new_address.php?postcode="+postcode;
    if(req!=null) {
        //window.alert("page doesn't exist!");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById(id).innerHTML=req.responseText;
                }else{
                    document.getElementById(id).innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
        }
        req.open("GET", url, true);
        req.send(null);
    }
}

function setSpecies(species) {
	
    Initialize();
    var url="ajax_includes/pet_diet.php?species="+species;
    if(req!=null) {
		
        req.onreadystatechange = function () {
			
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById('diet_type').innerHTML=req.responseText;
                }else{
                    document.getElementById('diet_type').innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
			
        }
		
        req.open("GET", url, true);
        req.send(null);
		
    }
	
}

function setTreats(species) {
	
    Initialize();
    var url="ajax_includes/treats.php?species="+species;
    if(req!=null) {
        //window.alert("page doesn't exist!");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById('fav_treat').innerHTML=req.responseText;
                }else{
                    document.getElementById('fav_treat').innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
        }
        req.open("GET", url, true);
        req.send(null);
    }
	
}

function checkTreatType(species, speciesSelected) {

    var label = document.getElementById('other_treat_label');
    var input = document.getElementById('other_treat');
	
    if(speciesSelected == 'Other') {
	
        label.className = '';
        input.className = '';
        input.value = '';
	
    }else{
		
        label.className = 'hidden';
        input.className = 'hidden';
		
    }

}

function dentaStixQuestion(answer) {

    var yes = document.getElementById('answer_yes');
    var no = document.getElementById('answer_no');
	
    if(answer == 'N') {
	
        no.className = 'clear';
        yes.className = 'clear hidden';
	
    }else if(answer == 'Y') {
	
        no.className = 'clear hidden';
        yes.className = 'clear';
	
    }

}

//TAKES PET BREED, ETC FROM AJAX AND DISPLAYS ON CLUB PAGES
function updatePetDetails() {
	
    if(!document.getElementById('pet_species')) return false;
	
    var pet_species = document.getElementById('pet_species');
    var pet_breed = document.getElementById('pet_breed');
    var pet_colour = document.getElementById('pet_colour');
	
    var selected_species = document.getElementById('selected_species');
    var selected_breed = document.getElementById('selected_breed');
    var selected_colour = document.getElementById('selected_colour');
	
    pet_species.value = selected_species.value;
    pet_breed.value = selected_breed.value;
    pet_colour.value = selected_colour.value;
	
    setSpecies(selected_species.value);
	
    setTimeout('setTreats("'+selected_species.value+'")', 50);
	
}

function select_town() {
	
    var selected_vet = document.getElementById('vet');
    var practice = document.getElementById('practice');
	
    practice.value = selected_vet.value;
	
}

//TAKES VALUES FROM AJAX PAGE AND UPDATES MEMBER DETAILS
function updateAddressOne() {

    if(!document.getElementById('your_psc'))return false;

    //NEW ADDRESS VALUES FROM AJAX
    var address1 = document.getElementById('new_address_1');
    var address2 = document.getElementById('new_address_2');
    var address3 = document.getElementById('new_address_3');
    var town = document.getElementById('new_town');
    var county = document.getElementById('new_county');
    var postcode = document.getElementById('new_postcode');
    //var country_code = document.getElementById('new_country_code');
    //var eastings = document.getElementById('new_eastings');
    //var northings = document.getElementById('new_northings');
	
    //ADDRESS INPUTS ON PAGE
    var old_address1 = document.getElementById('address_1');
    var old_address2 = document.getElementById('address_2');
    var old_address3 = document.getElementById('address_3');
    var old_town = document.getElementById('town');
    var old_county = document.getElementById('county');
    var old_postcode = document.getElementById('postcode');
    //var old_eastings = document.getElementById('eastings');
    //var old_northings = document.getElementById('northings');
    //var old_country_code = document.getElementById('country_code');
	
    old_address1.value = address1.value;
    old_address2.value = address2.value;
    old_address3.value = address3.value;
    old_town.value = town.value;
    old_county.value = county.value;
    old_postcode.value = postcode.value;
    //old_eastings.value = eastings.value;
    //old_northings.value = northings.value;
    //old_country_code.value = country_code.value;
	
    return false;
	
}

//TAKES VALUES FROM AJAX PAGE AND UPDATES MEMBER DETAILS
function updateAddress() {

    //if(!document.getElementById('edit_member_details') || !document.getElementById('join_submit')) alert('Not here'); return false;

    //NEW ADDRESS VALUES FROM AJAX
    var address1 = document.getElementById('new_address_1');
    var address2 = document.getElementById('new_address_2');
    var address3 = document.getElementById('new_address_3');
    var town = document.getElementById('new_town');
    var county = document.getElementById('new_county');
    var postcode = document.getElementById('new_postcode');
    var country_code = document.getElementById('new_country_code');
    var eastings = document.getElementById('new_eastings');
    var northings = document.getElementById('new_northings');
	
    //ADDRESS INPUTS ON PAGE
    var old_address1 = document.getElementById('address_1');
    var old_address2 = document.getElementById('address_2');
    var old_address3 = document.getElementById('address_3');
    var old_town = document.getElementById('town');
    var old_county = document.getElementById('county');
    var old_postcode = document.getElementById('postcode');
    if(document.getElementById('eastings')) {
        var old_eastings = document.getElementById('eastings');
        var old_northings = document.getElementById('northings');
    }
    if(document.getElementById('country_code')) {
        var old_country_code = document.getElementById('country_code');
    }
	
    old_address1.value = address1.value;
    old_address2.value = address2.value;
    old_address3.value = address3.value;
    old_town.value = town.value;
    old_county.value = county.value;
    old_postcode.value = postcode.value;
    if(document.getElementById('eastings')) {
        old_eastings.value = eastings.value;
        old_northings.value = northings.value;
    }
    if(document.getElementById('country_code')) {
        old_country_code.value = country_code.value;
    }
	
    return false;
	
}

//TAKES VALUES FROM AJAX PAGE AND UPDATES MEMBER DETAILS
function updateDeliveryAddress() {

    //if(!document.getElementById('edit_member_details') || !document.getElementById('join_submit')) alert('Not here'); return false;

    //NEW ADDRESS VALUES FROM AJAX
    var address1 = document.getElementById('new_address_1');
    var address2 = document.getElementById('new_address_2');
    var address3 = document.getElementById('new_address_3');
    var town = document.getElementById('new_town');
    var county = document.getElementById('new_county');
    var postcode = document.getElementById('new_postcode');
    var country_code = document.getElementById('new_country_code');
    var eastings = document.getElementById('new_eastings');
    var northings = document.getElementById('new_northings');
	
    //ADDRESS INPUTS ON PAGE
    var old_address1 = document.getElementById('delivery_address_1');
    var old_address2 = document.getElementById('delivery_address_2');
    var old_address3 = document.getElementById('delivery_address_3');
    var old_town = document.getElementById('delivery_town');
    var old_county = document.getElementById('delivery_county');
    var old_postcode = document.getElementById('delivery_postcode');
    if(document.getElementById('eastings')) {
        var old_eastings = document.getElementById('eastings');
        var old_northings = document.getElementById('northings');
    }
    if(document.getElementById('country_code')) {
        var old_country_code = document.getElementById('country_code');
    }
	
    old_address1.value = address1.value;
    old_address2.value = address2.value;
    old_address3.value = address3.value;
    old_town.value = town.value;
    old_county.value = county.value;
    old_postcode.value = postcode.value;
    if(document.getElementById('eastings')) {
        old_eastings.value = eastings.value;
        old_northings.value = northings.value;
    }
    if(document.getElementById('country_code')) {
        old_country_code.value = country_code.value;
    }
	
    return false;
	
}

//TAKES VALUES FROM AJAX PAGE AND UPDATES MEMBER DETAILS
function updateVetAddress() {

    //if(!document.getElementById('edit_member_details') || !document.getElementById('join_submit')) alert('Not here'); return false;

    //NEW ADDRESS VALUES FROM AJAX
    var number = document.getElementById('new_number');
    var address1 = document.getElementById('new_address_1');
    var address2 = document.getElementById('new_address_2');
    var address3 = document.getElementById('new_address_3');
    var town = document.getElementById('new_town');
    var county = document.getElementById('new_county');
    var postcode = document.getElementById('new_postcode_2');
    var country_code = document.getElementById('new_country_code');
    var eastings = document.getElementById('new_eastings');
    var northings = document.getElementById('new_northings');
	
    //ADDRESS INPUTS ON PAGE
    var old_number   = document.getElementById('house_num');
    var old_address1 = document.getElementById('address_1');
    var old_address2 = document.getElementById('address_2');
    var old_address3 = document.getElementById('address_3');
    var old_town = document.getElementById('town');
    var old_county = document.getElementById('county');
    var old_postcode = document.getElementById('postcode');
    if(document.getElementById('eastings')) {
        var old_eastings = document.getElementById('eastings');
        var old_northings = document.getElementById('northings');
    }
    if(document.getElementById('country_code')) {
        var old_country_code = document.getElementById('country_code');
    }
	
    //old_address1.value = number.value;
    //if(number.value != '') old_address1.value += ' ';
    old_number.value = number.value;
    old_address1.value = address1.value;
    old_address2.value = address2.value;
    old_address3.value = address3.value;
    old_town.value = town.value;
    old_county.value = county.value;
    old_postcode.value = postcode.value;
    if(document.getElementById('eastings')) {
        old_eastings.value = eastings.value;
        old_northings.value = northings.value;
    }
    if(document.getElementById('country_code')) {
        old_country_code.value = country_code.value;
    }
	
    return false;
	
}

function updateHouseNumber(number) {
	
    var numberinput = document.getElementById("new_number");
	
    numberinput.value = number;
	
}

function displayNews(n, text, x) {
	
    var content=document.getElementById('latestnews');
    var links = content.getElementsByTagName('a');
	
    var lgth=text.length;
	
    links[x].firstChild.nodeValue=text.substring(0, n)+"_";
	
    if(n!=lgth) {
		
        n++;
		
        setTimeout('displayNews("'+n+'", "'+text+'", "'+x+'")', 100);
		
    }
	
}

function loopHeadlines(headlinetext) {
	
    for(var e=0; e<headlinetext.length; e++) {
		
        setTimeout('displayNews("'+0+'", "'+headlinetext[e]+'", "'+e+'")', 500);
		
    }
	
}

function news() {
    if(document.getElementById("latestnews")) {
		
        var latest_news = document.getElementById('latestnews');
        var headlines=latest_news.getElementsByTagName('a');
        var headlinetext = Array();
		
        //GET HEADLINES FROM LINKS
        for(var i=0; i<headlines.length; i++) {
			
            //ADD TO THE HEADLINE ARRAY
            headlinetext [i] = headlines[i].firstChild.nodeValue;
			
        //displayNews(0, headlinetext, i);
			
        }
		
        loopHeadlines(headlinetext);
		
    }
	
}

function passwordValidation() {
	
    if(!document.getElementById('password_1')) return false;
	
    var pass1 = document.getElementById('password');
    var pass2 = document.getElementById('password_1');
	
    pass2.onblur = function () {
		
        if(pass1.value!=pass2.value) {
            alert('Please make sure your passwords match\n\n');
            return false;
        }
		
    }
	
}

function validateEmail(varname) {
	
    var valid = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
    var emailAddress = document.getElementById(varname);
	
    if(valid.test(emailAddress.value)) return true;
	
    return false;
	
}

function more_informationValidation() {
	
    if(!document.getElementById('more_information') || !document.getElementById('email')) return false;
	
    var emailCheck = document.getElementById('email');
    var emailField = document.getElementById('email_address');
    var telCheck = document.getElementById('contact_tel');
    var telField = document.getElementById('telephone_number');
    var smsCheck = document.getElementById('tel');
    var smsField = document.getElementById('mobile_number');
	
    emailCheck.onclick = function() {
		
        if(emailCheck.checked == true) {
            emailField.className = 'mand';
        }else{
            emailField.className = '';
        }
		
    }
	
    telCheck.onclick = function() {
		
        if(telCheck.checked == true) {
            telField.className = 'mand';
        }else{
            telField.className = '';
        }
		
    }
	
    smsCheck.onclick = function() {
		
        if(smsCheck.checked == true) {
            smsField.className = 'mand';
        }else{
            smsField.className = '';
        }
		
    }
	
}

var lgth=0;
var newsitems = newsArticles;
var newslinks = newsLinks;

// ****  Do not alter below this line *****************************************
var ini=0;
var st=0;
var x=newsitems[0].length;
	
function newsclicker() {
	
    var temp=newsitems[ini].substring(0,st);
    var thislink=newslinks[ini];
    var thing = unescape(temp);
	
    var displaynews = document.getElementById('tickertextbox');
	
    displaynews.innerHTML="PSM News <a href=\"latest_news.html\">"+thing+"</a> ";
	
    if(st++==x) {
        //Adjust timer for delay between messages
        st=0;
        setTimeout("newsclicker()",3000);
        ini++;
        if(ini==newsitems.length) ini=0;
        x=newsitems[ini].length;
    } else {
        //adjust timer for "clicking speed" eg letter,letter,letter....
        setTimeout("newsclicker()",10);
    }
		
}

// otherVetPractice()
//
// displays the other vet field on PSC registration page when other in selected in vet drop down
//
// return bool
function otherVetPractice() {
	
    if(!document.getElementById('vet')) return false;
	
    var vet = document.getElementById('vet');
	
    var field = document.getElementById('other_vet');
	
    vet.onchange = function() {
		
        if(vet.value == 'Other') {
			
            field.className = '';
			
        }else{
			
            field.className = 'hidden';
			
        }
		
    }
	
}

function smsOptions() {
	
    if(!document.getElementById('mobile_list')) return false;
	
    var mobile_list = document.getElementById('mobile_list');
    var offers = document.getElementById('mobile_offers');
    var reminders = document.getElementById('sms_reminders');
	
    //MAKE MOBILE LIST ELEMENT DISAPPEAR
    mobile_list.className='hidden';
	
    offers.onclick = displayMobileField;
    reminders.onclick = displayMobileField;
	
}

function displayMobileField() {
	
    var mobile_list = document.getElementById('mobile_list');
    var offers = document.getElementById('mobile_offers');
    var reminders = document.getElementById('sms_reminders');
	
    if(offers.checked == true || reminders.checked == true) {
        mobile_list.className = 'mand';
    }else{
        mobile_list.className = 'hidden';
    }
	
}

function Alerts() { 

    var links = document.getElementsByTagName('a');
	
    for(var i=0; i<links.length; i++) {
		
        if(links[i].className=='confirm') {
			
            links[i].onclick=function() {
				
				
                if(confirm('Are you sure you wish to perform this action?\n\n')!=true) return false;
					
            }
			
        }
		
    }

}

function otherVet(vetName) {

    var otherfield = document.getElementById('other_vet');
	
    if(vetName == 'Other') {
        otherfield.parentNode.className	= '';
    }else{
        otherfield.parentNode.className = 'hidden';
    }
	

}

function findVet(user_postcode) {

    var practice = document.getElementById('practice');
    var othervet = document.getElementById('other_vet');
	
    Initialize();
    var url="ajax_includes/select_vet.php?postcode="+user_postcode+"&practice="+practice.value+"&vet_postcode="+othervet.value;
    if(req!=null) {
        //window.alert("page doesn't exist!");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById('your_vet').innerHTML=req.responseText;
                }else{
                    document.getElementById('your_vet').innerHTML="There was a problem retrieving data:<br />"+req.statusText;
                }
            }
        }
        req.open("GET", url, true);
        req.send(null);
    }

}

function liHeights() {

    if(!document.getElementsByTagName('ul'));
	
    var uls = document.getElementsByTagName('ul');
	
    var elementHeight = 0;
	
    for(var i=0; i<uls.length; i++) {
	
        if(uls[i].className == 'product_list') {
		
            var listElements = uls[i].getElementsByTagName('li');
			
            for(var x=0; x<listElements.length; x++) {
			
                if(listElements[x].offsetHeight > elementHeight) {
					
                    elementHeight = listElements[x].offsetHeight;
					
                }
			
            }
			
            for(x=0; x<listElements.length; x++) {
			
                listElements[x].style.height=elementHeight + 'px';
			
            }
		
        }
	
    }

}

function deliveryAddress() {

    if(!document.getElementById('as_delivery')) return false;
	
    var check = document.getElementById('as_delivery');
	
    check.parentNode.className = 'clear';
	
    var fields = new Array('firstname', 'surname', 'email', 'tel', 'address_1', 'address_2', 'address_3', 'town', 'county', 'postcode', 'title');
	
    for(var i=0; i<fields.length; i++) { //SET VARS
		
        if(document.getElementById(fields[i])) {
		
            eval('var ' + fields[i] + ' = document.getElementById(fields[i]);');
		
        }
		
        if(document.getElementById('delivery_' + fields[i])) {
		
            eval('var delivery_' + fields[i] + ' = document.getElementById("delivery_" + fields[i]);');
		
		
        }
		
    }

    check.onclick = function() { //USE BILLING ADDRESS AS DELIVEY

        if(this.checked == true) {
			
            for(var i=0; i<fields.length; i++) { //SET VARS
		
                if(document.getElementById('delivery_' + fields[i])) {
		
                    eval('delivery_' + fields[i] + '.value = ' + fields[i] + '.value;');
				
                }
				
            }
			
        } else {
			
            for(var i=0; i<fields.length; i++) { //SET VARS
		
                if(document.getElementById('delivery_' + fields[i])) {
		
                    eval('delivery_' + fields[i] + '.value = ""');
					
                    if(fields[i] == 'title') {
					
                        eval('delivery_' + fields[i] + '.value = "0"');
					
                    }
				
                }
				
            }
			
        }
	
    }

}

function login_slider() {
	
    $('#shop_login').addClass('hidden');
   
    $('.login_slider a').click(function() { //SHOW/HIDE CUSTOMER LOGIN DETAILS
		
        $('#shop_login').slideToggle('slow');
        return false;
		
    });
	
}



$(document).ready(function() {
   
    login_slider();
   
});


//EXECUTES ONLOAD FUNCTIONS
function loadfunctions() {
    externalLinks();
    formValidation();
    passwordValidation();
    did_you_know();
    more_info_pet_preferences();
    more_informationValidation();
    newsclicker();
    otherVetPractice();
    smsOptions();
    Alerts();
    liHeights();
    deliveryAddress();
//news();
}

//LOADS IN MULTIPLE FUNCTIONS ONLOAD
window.onload=loadfunctions;

(function($) {
    $(document).ready(function() {
        $('input.ucfirst').blur(function() {
            var value = ( $(this).val() );    
            value = value.substr(0,1).toUpperCase() + value.substr(1).toLowerCase();
            $(this).val( value );
        });

        $('input.touppercase').blur(function() {
            var value = ( $(this).val() );
            value = value.toUpperCase();
            $(this).val( value );
        });
    });
})(jQuery);

function upperCase(e){
    return e.value = e.value.toUpperCase();
}

function ucw(e){  
    return e.value = e.value.substr(0,1).toUpperCase() + e.value.substr(1).toLowerCase();
}