function fnTextSize(textSize) {
    document.body.className = textSize;
    var menuLinks = document.getElementById("menu").getElementsByTagName("A");
    for(i=0;i<menuLinks.length;i++) {
        menuLinks[i].href = menuLinks[i].href.split("?")[0]+"?tSize="+textSize;
    }
}

function fnPrint() {
    window.print();
};

function fnBodyId(newID) {
    document.body.id = newID;
}

// Popup
function fnPopUp(filePath,height,width,attributes){
    var sScreenX = screen.width
    var sScreenY = screen.height
    var x = sScreenX - width
    var y = sScreenY - height
    var winLeft = x/2
    var winTop =  y/2
    window.open(filePath,"","width=" + width + ",height=" + height + "," + attributes + ",left=" + winLeft + ",top=" + winTop)
}

function showOverlay (url, callback) {
    if (callback === undefined){
        callback = function(){ return true; }
    }
    var page = $.get(url, function(data) {
        $.modal(data,{containerId:"overlay", onShow: callback});
    });
    return false;
}

function setupAjaxForm(form, url){
    $(form).ajaxForm({
        url: url,
        success: function(response){
            $('.modalData').html(response);
            setupAjaxForm(form, url);
        }
    })
}

$(function () {
    $("a[href^='/send-to-friend']").click(function (evt) {
        evt.preventDefault();
        var villaId = this.id.replace(/[^0-9]*/, '');
        var url = $(this).attr('href') + '/villa/' + villaId;
        showOverlay(url, function(){
            setupAjaxForm('.contact-form', url);
        });
    })
});

function getWeekFromSlider(){
    var sel = $('.slider li.selected a');
    if (sel.length > 0){
        if (sel.length == 1){
            var href = sel.attr('href');
        }else{
            var href = sel.eq(0).attr('href');
        }
        weekId = href.replace(/[^0-9]*/, '');
        return weekId;
    }
    return false;
}

/*
$.fn.fadeToggle = function(speed,callback){
    if ($(this).is(':hidden')){
        $(this).fadeIn(speed,callback);
    }else{
        $(this).fadeOut(speed,callback);
    }
}
*/

function showShortlist () {
    if ($("#top_nav #shortlist-popup>div").length == 0) {
        $.get("/shortlist/popup",
            function(data) {
                    $("#top_nav .view-shortlist>a").after(data);
                    $("#shortlist-popup #close").click(
                        function(evt) {
                                $("#shortlist-popup").slideUp('fast');
                                $("#top_nav .view-shortlist>a").removeClass("selected");
                                evt.preventDefault();
                            });
                    $("#shortlist-popup").hide().slideDown('fast');
                    $("#top_nav .view-shortlist>a").addClass("selected");
                }
            );
    }
    else {
        $("#shortlist-popup").slideToggle('fast');
        $("#top_nav .view-shortlist>a").toggleClass("selected");
    }

    return false;
}

function refreshShortlist () {
    if ($("#shortlist-popup").is(':visible')){
        $("#shortlist-popup").slideUp();
    }
    $("#shortlist-popup #popup-content").load("/shortlist/popup #popup-content");
    if ($("#shortlist-popup").is(':visible')){
        $("#shortlist-popup").slideDown();
        $("#top_nav .view-shortlist>a").addClass("selected");
    }
}

function checkShortlist(){
    if ($('#content_main .list-item').length == 0){
        $('#content_main .earlat, #content_main .list-clear, #content_main .search-cont').remove();
        $('#content_main').append($('<p class="noresults">You have no villas in your shortlist. Click the \'Add to shortlist\' links on any villa page to add villas to your shortlist.</p>'));
    }
}

function shortlist(obj){
    var p = $(obj).parent();
    var action = (obj.id.indexOf('remove') > -1) ? 'remove' : 'add';
    $.post('/shortlist/' + action, {villa: obj.id}, function(data, status){
        $(p).html(data.message.html);
        switch(action){
            case 'remove':
                $(p).addClass('add').removeClass('remove');
                break;
            default:
            case 'add':
                $(p).addClass('remove').removeClass('add');
                break;
        }
        shortlistCount(data.message.count);
        refreshShortlist();
        $(p).find('a').click(function(evt){
            shortlist(this);
        });
    }, 'json');
}

function shortlistCount(count){
    var count = '(' + count + ')';
    $('#shortlist-total').html(count);
}

function view(tag, img, cap, alt){
    $('#' + tag).attr('src', img).attr('alt', alt);
    $('#caption').html(cap + '&nbsp;');
}

function aEarlier(){
    if (false == $('.availability-panel > ul > li:first').is(':hidden'))
    {
        return;
    }
    $('.availability-panel > ul > li:visible:first').prev().show();
    $('.availability-panel > ul > li:visible:last').hide();
    aLabel();
}

function aLater(){
    if (false == $('.availability-panel > ul > li:last').is(':hidden'))
    {
        return;
    }
    $('.availability-panel > ul > li:visible:first').hide();
    $('.availability-panel > ul > li:visible:last + li:hidden:first').show();
    aLabel();
}

function aLabel(){
    var startDate = $('.availability-panel > ul > li:visible:first > ul > li:first .week-start').val().replace(/\-.*/, '');
    var endDate = $('.availability-panel > ul > li:visible:last > ul > li:last .week-start').val().replace(/\-.*/, '');
    $('.availability-nav .availability-label').html(startDate + ' to ' + endDate);
}
