﻿if ((navigator.appVersion.indexOf("Mac") != -1)) {
	document.write("<link href='/Includes/CSS/mac.css' rel='stylesheet' type='text/css' />"); }

if (navigator.appName == "Opera") {
	document.write("<link href='/Includes/css/opera.css' rel='stylesheet' type='text/css' />"); }
	
var Site = {
	start: function() {
	    ExternalLinks.start();
	    DynamicContactForm.start();
	    ResourceSelector.start();
	    ClearDefault.start();
	    UsefulLinks.start();
	    __CMS_CurrentUrl = document.location;
    }
};

var ExternalLinks = {
    start: function() {
        if (!document.getElementsByTagName) return;
        var anchors = document.getElementsByTagName('a');
        for (var i=0; i<anchors.length; i++) {
            var anchor = anchors[i];
            try {
            if (anchor.getAttribute('href') && anchor.getAttribute('rel') == 'external')
                anchor.target = '_blank';
            }catch(err) {}
        }
    }
};

var DynamicContactForm = {
    start: function() 
    {
        var enquirybox = $$('.enquirybox')[0];//The whole control
        var formElement = $('contactForm');//Just the form
        var linkElement = $('OpenFormLink');//The open link
        var enquirybot = $('enquirybot');//The footer of the form
        var closeButton = $$('.enquiryclose')[0];
        
        if (!formElement) 
        {
            return;
        }
        
        var fx = new Fx.Styles(formElement, {duration:800, wait:false});
        var fx2 = new Fx.Styles(enquirybox, {duration:800, wait:false});
        var fx3 = new Fx.Styles(enquirybot, {duration:800, wait:false});
        
        //If the thanks message is in the DOM then we have submitted and the box doesn't need to be as big
	    var thanksMessage = $$('.formthanks');
        if (thanksMessage.length > 0) 
        {
            window.addEvent('domready', function()
            {
                //Expand the thank you message
                fx.start({
                    'height' : '70px',
                    'padding-bottom' : '12px'
                });
                               
                //Move the footer of the control down too otherwise it will end up behind the form
                if ($defined($('homeheadcontent'))) 
                {
                    fx3.start({
                        'margin-top' : '80px',
                        'margin-bottom' : '-80px'
                    });
                }
            });
        }
        else 
        {
	        linkElement.addEvent('click', function()
	        {
                //Expand the form
                if(window.ie7)
                {
                    fx.start({
	                    'height' : '295px',
	                    'padding-bottom' : '8px'
                    });
                }
                else if(window.ie6) 
                {
                    fx.start({
	                    'height' : '290px',
	                    'padding-bottom' : '8px'
                    });
                }
                else 
                {
                    fx.start({
	                    'height' : '301px',
	                    'padding-bottom' : '8px'
                    });
                }

                //On the home page, move the control up so it doesn't obscure the latest news	                
                if ($defined($('homeheadcontent')))
                {
                    fx2.start({
                        'margin-top' : '-70px'
                    });
                    
                    //Move the footer of the control down too otherwise it will end up behind the form
                    if(window.ie7)
                    {
                        fx3.start({
                            'margin-top' : '300px',
                            'margin-bottom' : '-300px'
                        });
                    }
                    else if(window.ie6) 
                    {
                        fx3.start({
                            'margin-top' : '298px',
                            'margin-bottom' : '-298px'
                        });
                    }
                    else
                    {
                        fx3.start({
                            'margin-top' : '309px',
                            'margin-bottom' : '-300px'
                        });
                    }
                }
	        });
	    }
	    
	    closeButton.addEvent('click', function()
	    {
	        fx.start({
	            'height' : '0',
	            'padding-bottom' : '0'
	        });
	    
	        if ($defined($('homeheadcontent'))) {
	            if(window.ie6) {
	                fx2.start({
	                        'margin-top' : '110px'
	                    });
	            }
	            else {
	                fx2.start({
	                        'margin-top' : '120px'
	                    });
	            }
	        }
	    });
    }
}

var ClearDefault = {
    start: function() {
        var els = $$('.clearDefault');
        els.each(function(el) {
            el.addEvent('focus', function() {
                if (el.defaultValue==el.value) {
                    el.value = ""
                 }
            });
        });
    }
}

var ResourceSelector = {
    start: function() {
        var els = $$('.resourceselector');
        els.each(function(el) {
            // set the initial state of the control
            ResourceSelector.init(el);
            
            // hook up action to add link
            var add = el.getElements('.add')[0];
            add.selector = el;
            add.addEvent('click', function() {
                ResourceSelector.addRow(this.selector);
            });
        });
    },
    
    init : function(selector) {
        var drop = selector.getElements('select')[0];
        var tb = selector.getElements('.selectedvalue')[0];
        
        // init selected options        
        var selectedOptions = new Array();
        for(var i=0; i<drop.options.length; i++) {
            if(tb.value.indexOf(drop.options[i].value) >= 0)
                selectedOptions[selectedOptions.length] = drop.options[i];
        }
        selectedOptions.each(function(opt) {
            opt.selected = true;
            ResourceSelector.addRow(selector);
        });
        
        // sort options
        ResourceSelector.sortDrop(drop);
    },
    
    addRow : function(selector) {
        var drop = selector.getElements('select')[0];
        var tb = selector.getElements('.selectedvalue')[0];
        var lastRow = selector.getElements('.dropdown')[0];
        
        if(drop.selectedIndex >= 0) {
            // get selected option
            var opt = drop.options[drop.selectedIndex];
            var val = opt.value;
            var txt = opt.text;
            var txt_l = txt.toLowerCase();
            
            // remove from drop down
            drop.options[drop.selectedIndex] = null;
            drop.selectedIndex = 0;
            if(drop.options.length == 0) {
                drop.disabled = true;
                drop.setStyle('background-color', 'f7f7f7');
            }
            
            // add to text box
            if(tb.value.indexOf(val) < 0)
                tb.value += val;
            
            // work out where to inject this row
            var before = null;
            var trs = selector.getElements('tr');
            trs.each(function(tr) {
                if(!tr.hasClass('dropdown')) {
                    var trval = tr.getElements('input')[0].value.toLowerCase();
                    var comp = (trval < txt_l) - (txt_l < trval);
                    if(comp > 0)
                        before = tr;
                }
            });
            if(before == null)
                before = lastRow;
            
            // add new row to table
            var newRow = new Element('tr').injectAfter(before);
            var tbCell = new Element('td').injectInside(newRow);
            var tbNew = new Element('input').addClass('text').injectInside(tbCell);
            tbNew.type = 'text';
            tbNew.value = txt;
            var dlCell = new Element('td').injectInside(newRow);
            
            // add delete link
            var link = new Element('a').addClass('delete').injectInside(dlCell);
            link.innerHTML = 'x';
            link.selectedValue = val;
            link.selectedText = txt;
            link.row = newRow;
            link.selector = selector;
            link.href = 'javascript:void(0)';
            link.addEvent('click', function() {
                ResourceSelector.deleteRow(this.selector, this, this.row);
            });
        }
    },
    
    deleteRow : function(selector, link, row) {
        var drop = selector.getElements('select')[0];
        var tb = selector.getElements('.selectedvalue')[0];
        var lastRow = selector.getElements('.dropdown')[0];
        
        // put option back in drop down
        var opt = new Option(link.selectedText, link.selectedValue);
        drop.options[drop.options.length] = opt;
        opt.selected = true;
        ResourceSelector.sortDrop(drop);
        drop.disabled = false;
        drop.setStyle('background-color', 'ffffff');
        //lastRow.setStyle('display', 'block');
        
        // remove row from table
        row.remove();
        
        // remove from selected text
        tb.value = tb.value.replace(link.selectedValue, '');
    },
    
    sortDrop : function(drop) {
        // collect current options in array
        var copyOption = new Array();
        for (var i = 0; i < drop.options.length; i++)
            copyOption[i] = new Array(drop.options[i].text, drop.options[i].value, drop.options[i].selected);

        // sort array by text
        copyOption.sort(
            function(a, b) { 
                return (b[0].toLowerCase() < a[0].toLowerCase()) - (a[0].toLowerCase() < b[0].toLowerCase()); 
            }
        );

        // clear current options
        drop.options.length = 0;

        // add sorted options back to dropdown
        for (var i = 0; i < copyOption.length; i++) {
            var opt = new Option(copyOption[i][0], copyOption[i][1], copyOption[i][2]);
            drop.options[drop.options.length] = opt;
        }
    }
};

var UsefulLinks = {
    start: function() {
        var linkCats = $$('.usefulLinksCat');
        linkCats.each(function(linkCat) {
            var linkCatId = linkCat.getProperty('id');
            linkCatId = linkCatId.replace("cat", "links_")
            var mySlide = new Fx.Slide(linkCatId);
            mySlide.hide();
            linkCat.addEvent('click', function(e){
	            e = new Event(e);
	            mySlide.toggle();
	            e.stop();
	            var parent = $(linkCat.parentNode);
	            if (parent.getStyle('background-image').indexOf('down') > -1) {
	                parent.setStyle('background-image', 'url(../../Images/linksuparrow.png)');
	            }
	            else {
	                parent.setStyle('background-image', 'url(../../Images/linksdownarrow.png)');
	            }
            });
        });
    }
}

window.addEvent('domready', Site.start);

function validateEnquiryForm() {
    var message = "Please enter the following information:\n";
    var errorCount = 0;
    
    if($$('.formName').getValue() == "") {
        message += "- your name\n";
        errorCount++;
    }
    
    var emailValidate = "^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$";
    if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($$('.formEmail').getValue())) {
        message += "- a valid email address\n";
        errorCount++;
    }
    
    if($$('.formEnquiry').getValue() == "") {
        message += "- your enquiry";
        errorCount++;
    }
    
    if (errorCount == 0) {
        return true;
    }
    else {
        alert(message);
        return false;
    }
}

// fix rad editor width
function OnClientModeChange(editor)
{
    var htmlArea = document.getElementById("RadEContentTextarea" + editor.Id); 
    htmlArea.style.width = (editor.GetWidth() - 24) + "px";
}

function GoogleConversion()
{
    var google_conversion_id = 1040898129;
    var google_conversion_language = "en_GB";
    var google_conversion_format = "1";
    var google_conversion_color = "ffffff";
    if (11) {
      var google_conversion_value = 11;
    }
    var google_conversion_label = "buWpCLutRBDRsKvwAw";
}