$(window).bind('load', function() {
    $('#content').css('overflow', 'hidden');
    // init functions **********************************************************
    //centered();
    tabs();

    $('.content-holder').corusel({
        btNext: 'a.btn-arrow',
        btPrev: 'a.btn-arrow-back',
        slider: 'div.stripe',
        holderList: '#content',
        scrollElParent: 'ul.main-contant',
        scrollEl: '> li',
        duration: 1000
    });

    // datapicker **************************************************************
    if (typeof $().datepicker == 'function') {

        var _dayNamesShort = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];

        $('input.date:not(.first, .second)').datepicker({
            showOn: 'button',
            buttonImage: '/images/cal.png',
            buttonImageOnly: true,
            dateFormat: 'D dd/mm/yy',
            showOn: 'both',
            dayNamesShort: _dayNamesShort
        });

        var _firstDTP = $('input.date.first');
        var _secondDTP = $('input.date.second');

        function initFirstDatepicker(_date) {
            _firstDTP.datepicker('destroy').datepicker({
                showOn: 'button',
                buttonImage: '/images/cal.png',
                buttonImageOnly: true,
                dateFormat: 'D dd/mm/yy',
                showOn: 'both',
                maxDate: _date,
                dayNamesShort: _dayNamesShort,
                onSelect: function(dateText, inst) {
                    var _dateText = dateText.substr(dateText.indexOf(' ') + 1).split(' / ');
                    var _month = parseInt(_dateText[1]) - 1;
                    var _day = _dateText[0];
                    if (_day.length == 2 && parseInt(_day) == 0) _day = parseInt(_day.substr(1)) + 1;
                    else _day = parseInt(_day) + 1;
                    _date = new Date(parseInt(_dateText[2]), _month, _day);

                    _secondDTP.datepicker('destroy').datepicker({
                        showOn: 'button',
                        buttonImage: '/images/cal.png',
                        buttonImageOnly: true,
                        dateFormat: 'D dd/mm/yy',
                        showOn: 'both',
                        dayNamesShort: _dayNamesShort,
                        minDate: _date,
                        onSelect: function(dateText, inst) {
                            var _dateText = dateText.substr(dateText.indexOf(' ') + 1).split(' / ');
                            _month = parseInt(_dateText[1]) - 1;
                            _day = _dateText[0];
                            if (_day.length == 2 && parseInt(_day) == 0) _day = parseInt(_day.substr(1)) - 1;
                            else _day = parseInt(_day) - 1;
                            _date = new Date(parseInt(_dateText[2]), _month, _day);
                            initFirstDatepicker(_date);
                        }
                    });
                    if (_date && _secondDTP.val() == '')
                        _secondDTP.datepicker('setDate', _date);
                    //console.log(_secondDTP.datepicker('getDate'));
                    //_secondDTP.val(_secondDTP.datepicker( 'getDate' ));
                }
            });
            if (_date && _firstDTP.val() == '')
                _firstDTP.datepicker('setDate', _date);
        }
        function initSecondDatepicker(_date) {
            _secondDTP.datepicker('destroy').datepicker({
                showOn: 'button',
                buttonImage: '/images/cal.png',
                buttonImageOnly: true,
                dateFormat: 'D dd/mm/yy',
                showOn: 'both',
                minDate: _date,
                dayNamesShort: _dayNamesShort,
                onSelect: function(dateText, inst) {
                    var _dateText = dateText.substr(dateText.indexOf(' ') + 1).split(' / ');
                    var _month = parseInt(_dateText[1]) - 1;
                    var _day = _dateText[0];
                    if (_day.length == 2 && parseInt(_day) == 0) _day = parseInt(_day.substr(1)) - 1;
                    else _day = parseInt(_day) - 1;
                    _date = new Date(parseInt(_dateText[2]), _month, _day);

                    _firstDTP.datepicker('destroy').datepicker({
                        showOn: 'button',
                        buttonImage: '/images/cal.png',
                        buttonImageOnly: true,
                        dateFormat: 'D dd/mm/yy',
                        showOn: 'both',
                        dayNamesShort: _dayNamesShort,
                        maxDate: _date,
                        onSelect: function(dateText, inst) {
                            var _dateText = dateText.substr(dateText.indexOf(' ') + 1).split(' / ');
                            _month = parseInt(_dateText[1]) - 1;
                            _day = _dateText[0];
                            if (_day.length == 2 && parseInt(_day) == 0) _day = parseInt(_day.substr(1)) + 1;
                            else _day = parseInt(_day) + 1;
                            _date = new Date(parseInt(_dateText[2]), _month, _day);

                            initSecondDatepicker(_date);
                        }
                    });
                    if (_date && _firstDTP.val() == '')
                        _firstDTP.datepicker('setDate', _date);
                    //_firstDTP.val(_firstDTP.datepicker( 'getDate' ));
                }
            })
            if (_date && _secondDTP.val() == '')
                _secondDTP.datepicker('setDate', _date);
        }

        initSecondDatepicker(false);
        initFirstDatepicker(false);
    }



    // tab function ************************************************************
    function tabs() {
        var _slideDuration = 300;
        var _nav = $('#nav');
        $('> li:has(div.dropdown)', _nav).each(function(i, li) {
            var _tabLink = $('> a', li);
            var _tab = $('> div.dropdown', li);
            var _li = $(li);
            _tabLink.click(function() {
                var _visDrop = $('div.dropdown:visible', _nav).not(_tab);
                _visDrop.slideUp(_slideDuration, function() {
                    $(this).parent().removeClass('active');
                })
                if (_li.hasClass('active')) {
                    _tab.slideUp(_slideDuration, function() {
                        _li.removeClass('active');
                    })
                } else {
                    _li.addClass('active');
                    _tab.hide().slideDown(_slideDuration)
                }
                return false;
            });
        });
    }

    // page centered ***********************************************************
    /*function centered(){
    var _height = 0;
    if (window.innerHeight) _height = window.innerHeight;
    else _height = document.documentElement.clientHeight;
    var _wrp = $('#wrapper');
    if (_wrp.outerHeight() < _height) {
    $('body').css('paddingTop',(_height - _wrp.outerHeight())/2)
    }
    }
    $(window).resize(function(){
    centered();
    });*/

    // fade hover **************************************************************
    var _delay = 200;
    var _fadeDuration = 400;

    $('ul.main-contant > li').each(function(i, li) {
        var _inform = $('div.info', li);
        var _bg = $('> span', _inform);
        _bg.css('opacity', 0.6)
        var _timer = 0;
        $(li).mouseenter(function() {
            _timer = setTimeout(function() {
                _inform.fadeIn(_fadeDuration)
            }, _delay)
        }).mouseleave(function() {
            if (_timer) clearTimeout(_timer);
            _inform.fadeOut(_fadeDuration)
        });
    });
    $('ul.main-contant > li').each(function(i, li) {
        var _inform = $('div.info-box', li);
        var _bg = $('> span', _inform);
        _bg.css('opacity', 0.6)
        var _timer = 0;
        $(li).mouseenter(function() {
            _bg.animate({ 'opacity': 0.6 }, { duration: _fadeDuration, queue: false });
        }).mouseleave(function() {
            _bg.animate({ 'opacity': 0.6 }, { duration: _fadeDuration, queue: false });
        });
    });
    $('div.promo-box > a').each(function(i, link) {
        var _span = $('> span', link);
        _span.css('opacity', 0.6);
        $(link).mouseenter(function() {
            _span.animate({ 'opacity': 0 }, { duration: _fadeDuration, queue: false });
        }).mouseleave(function() {
            _span.animate({ 'opacity': 0.6 }, { duration: _fadeDuration, queue: false });
        });
    });
});

// corusel width slider ********************************************************
jQuery.fn.corusel = function(_options) {
    // defaults options
    var _options = jQuery.extend({
        btPrev: 'a.link-prev',
        btNext: 'a.link-next',
        slider: '.slider',
        sliderNextArrow: '.next',
        sliderPrevArrow: '.prev',
        holderList: 'div',
        scrollElParent: 'ul',
        scrollEl: 'li',

        duration: 1000
    }, _options)

    return this.each(function() {
        var _this = $(this);
        var _holderList = $(_options.holderList, _this);
        var _mover = $(_options.scrollElParent, _holderList);
        var _scrollEl = $(_options.scrollEl, _mover);
        var _gWidth = _holderList.innerWidth();
        _gWidth = (_gWidth - 205)
        var _liWidth = _scrollEl.outerWidth(true);
        var _liSum = 0;
        var _rightArrow = $(_options.btNext, _this);
        var _leftArrow = $(_options.btPrev, _this);

        var _sliderNext = $(_options.sliderNextArrow, _this);
        var _sliderPrev = $(_options.sliderPrevArrow, _this);

        var _sliderHolder = $(_options.slider, _this);
        var _slider = _sliderHolder.find('div.scroll');
        var _sliderHWidth = _sliderHolder.innerWidth();
        var _sliderW = _slider.innerWidth();
        var _pos = _sliderHolder.offset();
        var _left = 0;
        var _currentLi = 0;
        var _liMargin = [];

        var _resizeK = (_sliderHWidth - _sliderW) / 100;
        _liMargin[0] = 0;
        _scrollEl.each(function(i, li) {
            _liSum += $(li).outerWidth(true);
            _liMargin[i + 1] = _liSum - 20;
        });
        var _k = (_sliderHWidth - _sliderW) / (_liSum - _gWidth);

        _leftArrow.hide();
        if (_liSum <= _gWidth) {
            _rightArrow.hide();
            _slider.hide();
            _sliderPrev.addClass('inactive');
            _sliderNext.addClass('inactive');
        } else _rightArrow.show();

        $(window).resize(function() {

            var _animResize = false;
            if (_margin == _liSum - _gWidth) _animResize = true;
            _gWidth = _holderList.innerWidth();
            _gWidth = (_gWidth - 205);
            _gWidth2 = _gWidth;
            _sliderHWidth = _sliderHolder.innerWidth();
            _k = (_sliderHWidth - _sliderW) / (_liSum - _gWidth);

            var _ResLeft = parseInt(_slider.css('left')) / _resizeK;
            _resizeK = (_sliderHWidth - _sliderW) / 100;
            _ResLeft = _ResLeft * _resizeK;
            _slider.animate({ 'left': _ResLeft }, { queue: false, duration: 150 });
            if (_liSum > _gWidth) {

                _rightArrow.show();
                _slider.show();
                _sliderNext.removeClass('inactive');
                if (_ResLeft != 0) _sliderPrev.removeClass('inactive');
            }
            else {
                _rightArrow.hide();
                _leftArrow.hide();
                _slider.hide();
                _sliderPrev.addClass('inactive');
                _sliderNext.addClass('inactive');
                _gWidth = (_gWidth - 205);
            }
            if (_animResize) {
                _rightArrow.hide();
                _mover.animate({ marginLeft: 0 }, { queue: false, duration: _duration });
            }
        });

        var _margin = 0;
        var _duration = _options.duration;

        var _step = _liWidth;
        _rightArrow.click(function() {
            nextSlide();
            return false;
        });
        _leftArrow.click(function() {
            prevSlide();
            return false;
        });
        _sliderNext.click(function() {
            if (!$(this).hasClass('inactive'))
                nextSlide();
            return false;
        });
        _sliderPrev.click(function() {
            if (!$(this).hasClass('inactive'))
                prevSlide();
            return false;
        });
        _scrollEl.bind('click', function() {
            _sliderPrev.removeClass('inactive');
            _sliderNext.removeClass('inactive');
            _rightArrow.show();
            _leftArrow.show();
            _currentLi = _scrollEl.index(this);
            _margin = _liMargin[_currentLi];
            if (_liSum - _gWidth < _margin) {
                _margin = _liSum - _gWidth;
                _rightArrow.hide();
                _sliderNext.addClass('inactive');
            }
            if (_currentLi == 0) {
                _margin = 0;
                _currentLi = 0;
                _leftArrow.hide();
                _sliderPrev.addClass('inactive');
            }
            _mover.animate({ marginLeft: -_margin }, { queue: false, duration: _duration });
            sliderAnimate(_duration);
        });
        if (_liSum <= _gWidth) {
            _scrollEl.unbind('click');
        }
        function nextSlide() {
            _currentLi += 1;
            _margin = _liMargin[_currentLi];
            if (_liSum - _gWidth < _margin) {
                _margin = _liSum - _gWidth;
                _rightArrow.hide();
                _sliderNext.addClass('inactive');
            }
            _sliderPrev.removeClass('inactive');
            _leftArrow.show();
            _mover.animate({ marginLeft: -_margin }, { queue: false, duration: _duration });
            sliderAnimate(_duration);
        }
        function prevSlide() {
            _currentLi -= 1;
            _rightArrow.show();
            if (_currentLi <= 0) {
                _margin = 0;
                _currentLi = 0;
                _sliderPrev.addClass('inactive');
                _leftArrow.hide();
            } else
                _margin = _liMargin[_currentLi];
            _sliderNext.removeClass('inactive');
            _mover.animate({ marginLeft: -_margin }, { queue: false, duration: _duration });
            sliderAnimate(_duration);
        }
        function sliderAnimate(_d) {
            _left = _margin * _k;
            _slider.animate({ left: _left }, { queue: false, duration: _d });
        }

        _slider.click(function() { return false });
        _slider.mousedown(function(e) {
            var _dif = e.pageX - _pos.left;
            var _sl = parseInt(_slider.css('left'));
            $(document).bind('mousemove', function(e) {
                _sliderPrev.removeClass('inactive');
                _sliderNext.removeClass('inactive');
                _left = e.pageX - _pos.left - _dif + _sl;
                if (_left < 0) {
                    _left = 0;
                    _sliderPrev.addClass('inactive');
                }
                if (_left > _sliderHWidth - _sliderW) {
                    _left = _sliderHWidth - _sliderW;
                    _sliderNext.addClass('inactive');
                }
                _slider.css({ left: _left });
                _margin = _left / _k;
                _mover.css({ marginLeft: -_margin });
                if (_margin >= _liSum - _gWidth) _rightArrow.hide();
                if (_margin == 0) _leftArrow.hide();
                setCurrentLi();
                return false;
            });
            $('body').bind('mouseup', leaveScroll);

            function leaveScroll() {
                setCurrentLi();
                $(document).unbind('mousemove');
                $('body').unbind('mouseup', leaveScroll);
                return false;
            }
            return false;
        });
        function setCurrentLi() {
            var _mLeft = parseInt(_mover.css('marginLeft')) * (-1);
            for (var i = 1; i < _liMargin.length; i++) {
                if (_mLeft < _liMargin[i]) {
                    _currentLi = i - 1;
                    break;
                }
            }
            if (_mLeft < _liSum - _gWidth) _rightArrow.show();
            if (_mLeft > 0) _leftArrow.show();
        }

    });
}

//Fix for onsubmit to allow Google Analytics to work



/** WMS Template additions
/**  Eddie Foreman Nov 2009
**************************/
$(document).ready(function() {

    //fix for Google analytics - adds onsubmit to page form 



    /*window.__doPostBack = function(eventTarget, eventArgument) {
    //var pageForm =  $("#headerForm");
    var originalvalues = [
    theForm.__EVENTTARGET.value,
    theForm.__EVENTARGUMENT.value
    ];
    theForm.__EVENTTARGET.value = eventTarget;
    theForm.__EVENTARGUMENT.value = eventArgument;
    try {
    __utmLinkPost(this);
    //alert(this);
    $(theForm).submit();
    }
    finally {
    theForm.__EVENTTARGET.value = originalvalues[0];
    theForm.__EVENTARGUMENT.value = originalvalues[1];
    }
    }*/






    //hide all forms
    $('li.enquiry div.dropdown div.holder div.form').hide();

    //set up default form and selected item
    $('li.enquiry div.dropdown div.holder div.acc').show();
    $('.subnav li a.acc').parent().addClass('selected');

    //onclick event
    $('.subnav li a').click(function() {
        $('.subnav li').removeClass('selected');
        $(this).parent().addClass('selected');
        var forms = $('li.enquiry div.dropdown div.holder div.form');
        forms.hide();
        if (forms.is("." + $(this).attr('class'))) {
            $('li.enquiry div.dropdown div.holder div.form.' + $(this).attr('class')).show();
        }
        return false;
    });

    //Gallery Count Display
    var totalCount = $('#gallery > li').size()
    $('span.number').text(totalCount);
    $('span.number').each(function(intIndex) {
        $(this).text((intIndex + 1) + " of " + totalCount);
    });

    //Menu Styling
    //$('#sidebar li:has(> ul)').addClass("active");
    $('#sidebar ul ul ul li').addClass("active");


    //To fix WMS navigation bug.
    $('#sidebar ul ul ul ul').append("</li>");
    //hide 3rd and 4th sub levels
    $('#sidebar ul ul ul').hide();

    $currLev2 = $('#sidebar ul ul a[class = current]');
    $currLev3 = $('#sidebar ul ul ul a[class = current]');
    $currLev4 = $('#sidebar ul ul ul ul a[class = current]');

    if ($currLev2.length == 1) {
        $currLev2.next().show();
    }
    if ($currLev3.length == 1) {
        $currLev3.parent().parent().show();
        $currLev3.next().show();
    }
    if ($currLev4.length == 1) {
        $currLev4.parent().parent().show();
        $currLev4.parent().parent().parent().parent().show();
    }

    $currA = $('a[class = current]');
    if ($currA.length == 1) {
        $currA.parent().addClass("current");
    };

    $('a[href*=meet_team]').next("ul").hide();
    $('a[href*=tourist_attractions]').next("ul").hide();

    //Hide Captcha's
    $('#formsTab_appForm_appFormCaptcha_subtext_captcha').hide();
    $('#formsTab_dinForm_dinFormCaptcha_subtext_captcha').hide();
    $('#formsTab_accForm_accFormCaptcha_subtext_captcha').hide();
    $('#formsTab_conForm_conFormCaptcha_subtext_captcha').hide();

    //hide all text areas
    $('.options').hide();

    //toggle text areas    
    $('.more-options').toggle(function() {
        $(this).addClass("toggled");
        $('.options').show();
        return false;
    }, function() {
        $(this).removeClass("toggled");
        $('.options').hide();
        return false;
    });
    $('.more-options').click(function() {
        $(this).next(".text").slideToggle("fast");
    });

    //set external links
    $('a[rel = external]').attr('target', 'blank');

    //set active language options
    $('.top-info > ul li a').each(function(i) {
        if ($(this).html() == $('.lang').val()) {
            $(this).parent().addClass('active');
        }
    });
});
