

    // New Month Switcher ------------------------------------------ GPK 28/07/09
    var switchid = function(showId) {	
        $$('.month-container').each(function(div) {
            div.setStyle('display',(div.get('id') == showId ? 'block' : 'none'));
        });
    };
    // ---------------------------------------------------------------------- End
    
    // New Gallery Objectified Script ------------------------------ GPK 28/07/09
    var gallery = function(container) {
        this._container = container;
        this._controls  = null;
        this.startIdx   = 0;
        this.currIdx    = 0;
        this.total      = 0;
        this._items     = null;
        this._prev      = null;
        this._currText  = null;
        this._totalText = null;
        this._next      = null;

        this.init = function() {
            this._items     = this._container.getElements('li');
            this._controls  = this._container.getNext();
            this._prev      = this._controls.getElement('.prev');
            this._currText  = this._controls.getElement('.curGal');
            this._totalText = this._controls.getElement('.lenGal');
            this._next      = this._controls.getElement('.next');

            this.setup();
        };

        this.setup = function() {
            this.total = this._items.length;
            this._totalText.set('text',this.total);
            this._items.setStyle('display','none');
            this.showSlide(this.startIdx);
        };

        this.showSlide = function(slideIdx) {
            this._items[this.currIdx].setStyle('display','none');
            this._items[slideIdx].setStyle('display','block');
            this._currText.set('text',slideIdx+1);
            this.setControls(slideIdx);
            this.currIdx = slideIdx;
        };

        this.setControls = function(slideIdx) {
            var gallery = this;
            this._prev.removeEvents('click').addEvent('click',function() {
                gallery.showSlide((slideIdx > 0 ? slideIdx-1 : gallery.total-1));
            });
            this._next.removeEvents('click').addEvent('click',function() {
                gallery.showSlide((slideIdx < gallery.total-1 ? slideIdx+1 : 0));
            });
        };
    };

    window.addEvent('domready',function() {
        $$('.gallery').each(function(slides) {
            new gallery(slides).init();
        });
    });
    // ---------------------------------------------------------------------- End

    //tabber script
    function tabberObj(argsObj) {
        var arg; /* name of an argument to override */
        this.div = null;
        this.classMain = "tabber";
        this.classMainLive = "tabberlive";
        this.classTab = "tabbertab";
        this.classTabDefault = "tabbertabdefault";
        this.classNav = "tabbernav";
        this.classTabHide = "tabbertabhide";
        this.classNavActive = "tabberactive";
        this.titleElements = ['h2','h3','h4','h5','h6'];
        this.titleElementsStripHTML = true;
        this.removeTitle = true;
        this.addLinkId = false;
        this.linkIdFormat = '<tabberid>nav<tabnumberone>';

        for (arg in argsObj) { this[arg] = argsObj[arg]; }

        this.REclassMain = new RegExp('\\b' + this.classMain + '\\b', 'gi');
        this.REclassMainLive = new RegExp('\\b' + this.classMainLive + '\\b', 'gi');
        this.REclassTab = new RegExp('\\b' + this.classTab + '\\b', 'gi');
        this.REclassTabDefault = new RegExp('\\b' + this.classTabDefault + '\\b', 'gi');
        this.REclassTabHide = new RegExp('\\b' + this.classTabHide + '\\b', 'gi');
        this.tabs = new Array();

        if (this.div) {
            this.init(this.div);
            this.div = null;
        }
    }
/*--------------------------------------------------
Methods for tabberObj
--------------------------------------------------*/
    tabberObj.prototype.init = function(e) {
        var childNodes, /* child nodes of the tabber div */
        i, i2, /* loop indices */
        t, /* object to store info about a single tab */
        defaultTab=0, /* which tab to select by default */
        DOM_ul, /* tabbernav list */
        DOM_li, /* tabbernav list item */
        DOM_a, /* tabbernav link */
        aId, /* A unique id for DOM_a */
        headingElement; /* searching for text to use in the tab */

        if (!document.getElementsByTagName) return false;
        if (e.id) {
            this.id = e.id;
        }
        this.tabs.length = 0;
        childNodes = e.childNodes;
        for(i=0; i < childNodes.length; i++) {
            if(childNodes[i].className && childNodes[i].className.match(this.REclassTab)) {
                t = new Object();
                t.div = childNodes[i];
                this.tabs[this.tabs.length] = t;
                if (childNodes[i].className.match(this.REclassTabDefault)) {
                    defaultTab = this.tabs.length-1;
                }
            }
        }
        DOM_ul = document.createElement("ul");
        DOM_ul.className = this.classNav;
        for (i=0; i < this.tabs.length; i++) {
            t = this.tabs[i];
            t.headingText = t.div.title;
            if (this.removeTitle) { t.div.title = ''; }
            if (!t.headingText) {
                for (i2=0; i2<this.titleElements.length; i2++) {
                    headingElement = t.div.getElementsByTagName(this.titleElements[i2])[0];
                    if (headingElement) {
                        t.headingText = headingElement.innerHTML;
                        if (this.titleElementsStripHTML) {
                            t.headingText.replace(/<br>/gi," ");
                            t.headingText = t.headingText.replace(/<[^>]+>/g,"");
                        }
                        break;
                    }
                }
            }
            if (!t.headingText) t.headingText = i + 1;
            DOM_li = document.createElement("li");
            t.li = DOM_li;
            DOM_a = document.createElement("a");
            DOM_a.appendChild(document.createTextNode(t.headingText));
            DOM_a.href = "javascript:void(null);";
            DOM_a.title = t.headingText;
            DOM_a.onclick = this.navClick;
            DOM_a.tabber = this;
            DOM_a.tabberIndex = i;
            if (this.addLinkId && this.linkIdFormat) {
                aId = this.linkIdFormat;
                aId = aId.replace(/<tabberid>/gi, this.id);
                aId = aId.replace(/<tabnumberzero>/gi, i);
                aId = aId.replace(/<tabnumberone>/gi, i+1);
                aId = aId.replace(/<tabtitle>/gi, t.headingText.replace(/[^a-zA-Z0-9\-]/gi, ''));
                DOM_a.id = aId;
            }
            DOM_li.appendChild(DOM_a);
            DOM_ul.appendChild(DOM_li);
        }
        e.insertBefore(DOM_ul, e.firstChild);
        e.className = e.className.replace(this.REclassMain, this.classMainLive);
        this.tabShow(defaultTab);
        if (typeof this.onLoad == 'function') this.onLoad({tabber:this});
        return this;
    };

    tabberObj.prototype.navClick = function(event) {
        var rVal, /* Return value from the user onclick function */
        a, /* element that triggered the onclick event */
        self, /* the tabber object */
        tabberIndex, /* index of the tab that triggered the event */
        onClickArgs; /* args to send the onclick function */
        a = this;
        if (!a.tabber) { return false; }
        self = a.tabber;
        tabberIndex = a.tabberIndex;
        a.blur();
        if (typeof self.onClick == 'function') {
            onClickArgs = {'tabber':self, 'index':tabberIndex, 'event':event};
            if (!event) { onClickArgs.event = window.event; }
            rVal = self.onClick(onClickArgs);
            if (rVal === false) { return false; }
        }
        self.tabShow(tabberIndex);
        return false;
    };

    tabberObj.prototype.tabHideAll = function() {
        var i; /* counter */
        for (i = 0; i < this.tabs.length; i++) {
            this.tabHide(i);
        }
    };

    tabberObj.prototype.tabHide = function(tabberIndex) {
        var div;
        if (!this.tabs[tabberIndex]) { return false; }
        div = this.tabs[tabberIndex].div;
        if (!div.className.match(this.REclassTabHide)) {
            div.className += ' ' + this.classTabHide;
        }
        this.navClearActive(tabberIndex);
        return this;
    };

    tabberObj.prototype.tabShow = function(tabberIndex) {
        var div;
        if (!this.tabs[tabberIndex]) { return false; }
        this.tabHideAll();
        div = this.tabs[tabberIndex].div;
        div.className = div.className.replace(this.REclassTabHide, '');
        this.navSetActive(tabberIndex);
        if (typeof this.onTabDisplay == 'function') {
            this.onTabDisplay({'tabber':this, 'index':tabberIndex});
        }
        return this;
    };

    tabberObj.prototype.navSetActive = function(tabberIndex) {
        this.tabs[tabberIndex].li.className = this.classNavActive;

// Added this line for switching month on tab change ----------- GPK 28/07/09
        switchid($$('.tabbertab')[tabberIndex].getElement('div').get('id'));
// ---------------------------------------------------------------------- End

        return this;
    };

    tabberObj.prototype.navClearActive = function(tabberIndex) {
        this.tabs[tabberIndex].li.className = '';
        return this;
    };

    function tabberAutomatic(tabberArgs) {
        var tempObj, /* Temporary tabber object */
        divs, /* Array of all divs on the page */
        i; /* Loop index */
        if (!tabberArgs) { tabberArgs = {}; }
        tempObj = new tabberObj(tabberArgs);
        divs = document.getElementsByTagName("div");
        for (i=0; i < divs.length; i++) {
            if (divs[i].className &&
                divs[i].className.match(tempObj.REclassMain)) {
                tabberArgs.div = divs[i];
                divs[i].tabber = new tabberObj(tabberArgs);
            }
        }
        return this;
    }

    function tabberAutomaticOnLoad(tabberArgs) {
        var oldOnLoad;
        if (!tabberArgs) { tabberArgs = {}; }
        oldOnLoad = window.onload;
        if (typeof window.onload != 'function') {
            window.onload = function() {
                tabberAutomatic(tabberArgs);
            };
        } else {
            window.onload = function() {
                oldOnLoad();
                tabberAutomatic(tabberArgs);
            };
        }
    }

    if (typeof tabberOptions == 'undefined') {
        tabberAutomaticOnLoad();
    } else {
        if (!tabberOptions['manualStartup']) {
            tabberAutomaticOnLoad(tabberOptions);
        }
    } 