/*
Base Page object for all pages and templates in the site
*/

Site.Page = Class.create
(
    Site.Base,
    {
        initialize: function($super) {
            $super();

            this.addObservers("windowOnLoad", "domOnLoad", "searchFieldOnClick", "searchTypeSelect", "searchDropdownOnClick", "searchFieldOnSubmit", "signInOnClick");
            this.addBlocks("getWelcomeMenuOffset");

            addEvent(window, 'load', this.observers.windowOnLoad);
            Event.observe(document, 'dom:loaded', this.observers.domOnLoad);
        },

        windowOnLoad: function(event) {

        },

        domOnLoad: function($super, event) {
            // Setup the browse categories and menu drop downs

            if ($('categories-menu')) {
                this.categoriesDropDown = new Site.Widgets.DropDown($('navigation-browse-categories'), $('categories-menu'), { hideDelay: 1500 });
            }

            var welcomeOther = $('welcome-other');
            var welcomeMenu = $('welcome-menu');

            if (welcomeOther) {
                // CHANGED: 08 Feb 2008
                this.welcomeDropDown = new Site.Widgets.Tooltip(welcomeMenu, welcomeOther, { offsetY: -76, showOnClick: true, offsetX: Prototype.Browser.IE ? 196 : 27, getElementOffset: this.blocks.getWelcomeMenuOffset });
            }




            // Setup the sign in module

            var signInTrigger = $('signin_module_trigger');
            var signInModule = $('signin_module');

            if (signInTrigger) {
                this.signInDropDown = new Site.Widgets.Tooltip(signInModule, signInTrigger, { offsetY: -76, offsetX: Prototype.Browser.IE ? 102 : -67, getElementOffset: this.blocks.getWelcomeMenuOffset, showOnClick: true });
            }



            //setup the search field dropdown
            this.searchtype_select = $('search-anchor-ul').select("a.searchtype_dd");

            this.searchtype_select.each
           (
                function(link) {
                    addEvent(link, "click", this.observers.searchTypeSelect);
                },
                this
            );

            // Setup the ticker
            this.ticker = new Site.Widgets.Ticker($('ticker'));

            addEvent($('s'), "click", this.observers.searchFieldOnClick);

            // addEvent($('s2'), "click", this.observers.searchFieldOnClick);  */
            // addEvent($('username'), "click", this.observers.searchFieldOnClick); 
            // addEvent($('password'), "click", this.observers.searchFieldOnClick); 

            addEvent($('search-1'), "submit", this.observers.searchFieldOnSubmit);

            // addEvent($('search-2'), "submit", this.observers.searchFieldOnSubmit);*/
            //alert($('signin_module_trigger_li').id);
            if ($('signin_module_trigger_li')) {
                addEvent($('signin_module_trigger_li'), "click", this.observers.signInOnClick);
            }

            if ($('search-widget')) {
                addEvent($('search-anchor'), "click", this.observers.searchDropdownOnClick);
            }

        },
                
        searchDropdownOnClick: function(event) {

            /*
            if($('search-anchor-ul').style.display == 'none'){
            $('search-anchor-ul').show();                
            } else {
            $('search-anchor-ul').hide();
            }
            */
            $('search-anchor-ul').toggle();
            Event.stop(event);

        },

        getWelcomeMenuOffset: function() {
            return [$('welcome').offsetLeft + $('welcome-other').offsetLeft, 0];
        },

        searchTypeSelect: function(event) {

            var element = Event.element(event);
            $('search-anchor-ul').hide();
            $('searchtype_hdn').value = element.rel;
            $('search_term_type').innerHTML = element.innerHTML;
            $('s').focus();

            this.reset_search_li = $('search-anchor-ul').select("li");
            this.reset_search_li.each
            (
                function(link) {
                    Element.removeClassName(link, "selected");
                },
                this
            );

            Element.addClassName(element.parentNode, "selected");

            Event.stop(event);

        },

        searchFieldOnClick: function(event) {

            var element = Event.element(event);
            element.value = '';

            removeEvent(element, "click", this.observers.searchFieldOnClick);
        },

        searchFieldOnSubmit: function(event) {
            var element = Event.element(event);

            if (element.id == 'search-1') {
                if ($F('s') == '' || $F('s') == 'Enter search term') {
                    alert('You must enter a search term.');
                    //alert($F('s'));
                    Event.stop(event);
                }
            } else {
                if ($F('s2') == '' || $F('s2') == 'Enter search term') {
                    alert('You must enter a search term.');
                    Event.stop(event);
                }
            }


        },

        signInOnClick: function(event) {

            $('username').focus();
        },

        destroy: function($super) {
            removeEvent($('s'), "click", this.observers.searchFieldOnClick);
            //alert($('signin_module_trigger_li'));
            if ($('signin_module_trigger_li')) {
                removeEvent($('signin_module_trigger_li'), "click", this.observers.signInOnClick);
            }
            //removeEvent($('s2'), "click", this.observers.searchFieldOnClick);

            this.release(this.categoriesDropDown, this.welcomeDropDown, this.ticker);

            $super();

        }
    }
);

function trackPdfDownload(pdfName) {
    var s = s_gi("christiesprod");
    s.linkTrackVars = 'eVar29,events,prop8';
    s.linkTrackEvents = 'event11';
    s.eVar29 = 'PDF';
    s.prop8 = pdfName;
    s.events = 'event11';
    s.tl(this, 'o', 'Download');
}
