﻿window.addEvent('domready',function(){Page.setup();});

var Search = {
    init: function() {
        $('s').addEvent('focus', function(e) {
            if ($('s').value == 'search our site')
                $('s').value = '';
        });
        $('s').addEvent('blur', function(e) {
            if ($('s').value == '')
                $('s').value = 'search our site';
        });
    }
}

var Page = {
    setup: function() {

        Search.init();
        Sections.init();
        Page.MainGallery = new Gallery('#widepic .images', { 'captions': false });
        new Gallery('#sectioninfo .images', { 'captions': false, 'showPageCount': true, 'showNav': true });
        new Gallery('#hotelinfo .images', { 'captions': false, 'showPageCount': true, 'showNav': true });
        Page.DropDown = new Dropdown();

        $$('a.offsite').addEvent('click', function(e) {
            var el = new Element(e.target);
            while (el.get('tag') != 'a')
                el = el.getParent();
                
            if (!el.hasClass('nowarning'))
                alert('A new window will now open with content from an external website.\r\nPlease note that Seasons in Style are not responsible for the content of external websites');

        });

        Hotels.init()

        if ($('flashintro') != null) {
            var so = new SWFObject("seasonsintro.swf", "flashintro", "543", "292", "7", "#000000", "low");
            so.addParam("wmode", "transparent");
            so.addParam("quality", "best");
            so.write("flashintro");
        }

    }
}

var Hotels = {
    init: function() {
        if ($('hotelinfo') != null) {
            var min = 400;
            if ($('imageextra') != null)
                min += $('imageextra').getSize().y + 30;

            var sc = $$('.sectioncontent')[0].getSize().y;
            var eNav = 0;
            if ($$('.extranav').length > 0)
                eNav = $$('.extranav')[0].getSize().y;
            var navSize = ($$('.pagenav')[0].getSize().y) + eNav + 50;
            var textSize = 0;
            var textTop = 0;

            $$('.pagesection').each(function(e) {
                var offers = e.getElements('.offerPage');
                if (offers.length > 0) {
                    offers.each(function(o) {

                        if (o.getSize().y + o.getPosition().y - e.getPosition().y> textSize) {
                            textSize = o.getSize().y + (o.getPosition().y - e.getPosition().y);
                            textTop = e.getPosition().y;
                        }

                    });

                } else
                    if (e.getSize().y > textSize) {
                    textSize = e.getSize().y;
                    textTop = e.getPosition().y;

                }
            });
            var offset = textTop - $$('.content')[0].getPosition().y;
            textSize += offset;

            var resize = (navSize > textSize) ? navSize : textSize;

            resize = sc > resize ? sc : resize;
            resize = min > resize ? min : resize;


            $('hotelinfo').setStyle('height', resize + 'px');
        }
    }
}

var Sections = {
    CurrentPage: 0,
    SetSectionInfo: function() {

        $$('#sectioninfo .sectiondetail').each(function(e) {
            e.addEvent('click', function(j) {
                if (e.getElements('a').length > 0)
                    location.href = e.getElements('a')[0].getProperty('href');
            });
        });

    }
    ,
    init: function() {


        Sections.SetSectionInfo();


        if ($$('.pagenav').length > 0) {

            if (!$$('.pagenav')[0].hasClass('noprocess')) {

                Sections.pages = $$('.pagesection');
                Sections.links = $$('.pagenav li a');


                if (Sections.pages.length > 0) {

                    Sections.pages.setOpacity(0);
                    Sections.pages.removeClass('hidden');

                    Sections.pages.setStyle('visibility', 'hidden');
                    Sections.pages.each(function(i) { i.getElements('table').setStyle('display', 'block'); });

                    var pg = $get('#') * 1;
                    if (pg > 0) {
                        if (Sections.pages[pg] != null)
                            Sections.CurrentPage = pg;
                    }



                    if (Sections.links[Sections.CurrentPage].hasClass('refer'))
                        Sections.CurrentPage++;

                    var o = 0;
                    Sections.links.each(function(i) {
                        if (Sections.links[o].hasClass('selitem'))
                            Sections.CurrentPage = o;
                        o++
                    });


                    var k = 0;
                    Sections.links.each(function(i) {
                        if (k == Sections.CurrentPage) {
                            Sections.links[k].addClass('selected');
                            if (Sections.links[k].hasClass('groupoffers')) {
                                $$('.images').addClass('hidden');
                            }
                            else {
                                $$('.images').removeClass('hidden');
                            }
                        }
                        k++;
                    });

                    Sections.pages[Sections.CurrentPage].fade(1);


                    if (Sections.ExtraNav == null) {
                        var bc = $$('#breadcrumbs li');
                        bc[bc.length - 1].removeClass('last');

                        Sections.ExtraNav = new Element('li', { 'class': 'last' });
                        Sections.ExtraNav.inject($$('#breadcrumbs ul')[0]);

                        Sections.ExtraNavLink = new Element('a', { 'href': '#' });
                        Sections.ExtraNavLink.inject(Sections.ExtraNav);
                        Sections.ExtraNavLink.set('html', Sections.links[Sections.CurrentPage].get('html'));
                    }


                    if (Browser.Engine.trident != null && Browser.Engine.version < 5) {
                        if ($$('.pagesection').length > 0) {
                            var h1 = $$('.content h1')[0];
                            var top = h1.getPosition().y + h1.getSize().y;

                            if ($$('.content h2').length > 0) {
                                if ($$('.content .pagesection h2').length > 0) {
                                    if ($$('.content .pagesection h2')[0] != $$('.content h2')[0]) {
                                        top += $$('.content h2')[0].getSize().y;
                                    }
                                }
                                else {
                                    top += $$('.content h2')[0].getSize().y;
                                }
                            }
                            //if (top + 20 > $$('.pagesection')[0].getPosition().y) {

                            $$('.pagesection').setStyle('top', ((top + 20) - h1.getPosition().y) + 'px');
                            //}


                        }
                    }



                    Sections.links.addEvents({ 'click': function(e) {

                        var ext = false;
                        var j = 0;
                        $$('.offerPage').each(function(i) {
                            i.setOpacity(0);
                            i.setStyle('visibility', 'hidden');
                        });

                        Sections.pages[Sections.CurrentPage].fade(0);
                        Sections.links.each(function(i) {
                            var clicked = new Element(e.target);

                            if (clicked.get('tag') == 'a')
                                clicked = clicked.getElements('span')[0];

                            if (i.getElements('span')[0] == clicked) {
                                if (i.hasClass('ext')) {
                                    ext = true;
                                }
                                else {
                                    i.addClass('selected');
                                    if (Sections.pages[j] != null) {
                                        Sections.pages[j].fade(1);
                                        Sections.CurrentPage = j;
                                        Sections.ExtraNavLink.set('html', Sections.links[Sections.CurrentPage].get('html'));
                                        location.href = location.href.split('#')[0] + '#' + Sections.CurrentPage;
                                    }
                                }

                                if (i.hasClass('groupoffers')) {
                                    $$('.images').addClass('hidden');
                                }
                                else {
                                    $$('.images').removeClass('hidden');
                                }
                            }
                            else {
                                i.removeClass('selected');
                            }
                            j++;
                        });

                        if (!ext)
                            e.stop();
                    }
                    });
                }
            }
            else {
                if ($$('.pagesection').length > 0) {
                    $$('.pagesection').setOpacity(0);
                    $$('.pagesection')[0].fade(1);
                }
            }
        }

        $$('.pricingLink').addEvent('click', function(e) { e = new Event(e); e.stop(); e.target = $$('.pricingLinkTarget span')[0]; e.target.getParent().fireEvent('click', e); });
        $$('.offerLink').addEvent('click', function(e) { e = new Event(e); e.stop(); e.target = $$('.offerLinkTarget span')[0]; e.target.getParent().fireEvent('click', e); });

        $$('.offerPage').each(function(i) {
            i.setOpacity(0);
            i.removeClass('hidden');
        });

        $$('.offers a').addEvent('click', function(e) {
            e = new Event(e);
            e.stop();

            var el = new Element(e.target);

            while (el.get('tag') != 'a')
                el = el.getParent();

            $$('.offerPage').each(function(i) {
                if (i.get('rel') == el.get('rel')) {
                    i.fade(1);
                }
                else {
                    i.fade(0);
                }
            });
        });

        var s = $get('s') * 1;
        if (s > 0 || s == -1) {

            var e = new Object();
            e.stop = function() { }

            e.target = $$('.offerLinkTarget span')[0];
            e.target.getParent().fireEvent('click', e);

            $$('.offerPage').each(function(i) {
                if (i.get('rel') == s)
                    i.fade(1);
            });
        }
    }
}