$(document).ready(function() {

applyEvents();

});

var imageFunctions = {

    alignImages: function(container, loader, update, useColumnWidth) {
        var $container = $(container);

        if (update) {
            $container.masonry('reload');
        }

        $container.imagesLoaded(function() {

            $(container).removeClass("display-none");
            if ($(container).siblings("#info").length) {
                $(container).siblings("#info").removeClass("display-none");
            }

            if (loader) {
                hideLoader(loader);
            }
            if (useColumnWidth) {
                $container.masonry({
                    itemSelector: '.entry',
                    columnWidth: useColumnWidth
                });
            } else {
                $container.masonry({
                    itemSelector: '.entry'
                });
            }

        });
        imageFunctions.applyExtras(container, '', true, true, -20, 0);

    },
    applyExtras: function(container, ppSelector, useToolTipPosition, useToolTip, toolTipOffsetY, toolTipOffsetX) {

        var toolTipPosition = "";
        if (ppSelector == "") {
            ppSelector = "prettyPhoto[gallery]";
        }
        if (useToolTipPosition) {
            toolTipPosition = "top center";
        }

        if (!toolTipOffsetY) {
            toolTipOffsetY = 0;
        }

        if (!toolTipOffsetX) {
            toolTipOffsetX = 0;
        }


        $(container + " a[rel^='" + ppSelector + "']").prettyPhoto({ theme: 'dark_square', social_tools: false });

        if (useToolTip) {
            

            $(container + " a[title]").tooltip({

                // use the fade effect instead of the default
                effect: 'fade',

                // make fadeOutSpeed similar to the browser's default
                fadeOutSpeed: 50,

                // the time before the tooltip is shown
                predelay: 200,
                
                offset: [toolTipOffsetY,toolTipOffsetX],

                // tweak the position
                position: toolTipPosition
            }).dynamic({ bottom: { direction: 'down', bounce: true} });
        }

        if ($("#noimages").length != 2) {
            $("#noimages").html("<div>Inga bilder hittades.</div>");
        }

    }

}

function ppChange() {
    /*$('.pp_details .pp_close').html("St&auml;ng").css({ 'text-indent': '0px', 'background': 'none', 'color': '#D10064', 'text-align': 'right', 'line-height': '1' });
    $('.pp_next').html("N&auml;sta").css({ 'text-indent': '0px', 'background': 'none', 'color': '#D10064', 'text-align': 'right', 'line-height': '1' });
    $('.pp_previous').html("F&ouml;reg&aring;ende").css({ 'text-indent': '0px', 'background': 'none', 'color': '#D10064', 'text-align': 'right', 'line-height': '1' });*/
}

//Language global variables
var currentHref = "";
var currentLoader = "";
var currentLanguage = "English";
var translationLink = "";
var tabStart = true;
var opacity = 0.7, toOpacity = 1, duration = 250;


function displayLoader(loaderParentId, loaderId, backgroundLeftPosition, backgroundTopPosition, heightSetting) {
    if (loaderId) {
        if ($(loaderId).length == 0) {
            $('body').append('<div class="display-none" id="' + loaderId.replace(/\#/g, "") + '"></div>');
        }
    } else {
    loaderId = "#loader";
    }
    currentLoader = loaderId;
    var offset = $(loaderParentId).offset();
    var backgroundLeft = (backgroundLeftPosition != null) ? backgroundLeftPosition : 'center';
    var backgroundTop = (backgroundTopPosition != null) ? backgroundTopPosition : 'center';
    var height = (heightSetting != null) ? heightSetting : $(loaderParentId).height();
    $(loaderId).css({ "position": "absolute", "top": offset.top + "px", "left": offset.left + "px", "width": $(loaderParentId).width() + "px", "height": height, "background-position": backgroundLeft + " " + backgroundTop });
    $(loaderId).removeClass('display-none');
}

function hideLoader(loaderId) {
    if (loaderId) {
        $(loaderId).addClass('display-none');
    } else {
        $(currentLoader).addClass('display-none');
    }
}

function applyStylesheet(styleName) {
    $('link[type=text/css][title]').each(function(i) {
        this.disabled = true;
        if (this.getAttribute('title') == styleName) this.disabled = false;
    });
}

function translateTextCallBack() {
    //alert(currentLanguage);
    //displayLoader('popupinnerright','translationloader');
    if (currentLanguage != 'English') {
        $('#popup_content').translate('English', currentLanguage, {
            not: 'select, #popupnav',
            replace: true,
            onTimeout: function() { hideLoader('#translationloader'); },
            complete: function() { hideLoader('#translationloader'); },
            error: function() { hideLoader('#translationloader'); }
        })

        var translationLink = '<div id="translation_link">Translated by Google Translate.<br/>Help improve the translation by proposing changes at <a class="url" target="_blank" href="http://translate.google.com/translate?client=tmpg&hl=' + currentLanguage + '&langpair=en|' + currentLanguage + '&u=' + currentHref + '/TranslateRedirect/True">translate.google.com</a></div>';
        $(translationLink).appendTo('#popup_content #contenttext');
        $('#popup_content #contenttext').addClass('clear');
    } else {
        hideLoader('#translationloader');
    }

}

function handleOpenInfoClick(elem) {

    if (elem.hasClass("down") || elem.hasClass("darkdown")) {
        if (elem.hasClass("darkdown")) {
            $("#infocontent").removeClass();
            $("#infocontent").addClass("display-block column span-6 norightmargin dark");
            elem.removeClass();
            elem.addClass("darkup");
            elem.blur();
        } else {
            $("#infocontent").removeClass();
            $("#infocontent").addClass("display-block column span-6 norightmargin");
            elem.removeClass();
            elem.addClass("up");
            elem.blur();
        }
    } else {
        if ($("a#openinfo").hasClass("darkup")) {
            $("#infocontent").removeClass();
            $("#infocontent").addClass("display-none column span-6 norightmargin");
            elem.removeClass();
            elem.addClass("darkdown");
            elem.blur();
        } else {
            $("#infocontent").removeClass();
            $("#infocontent").addClass("display-none column span-6 norightmargin");
            elem.removeClass();
            elem.addClass("down");
            elem.blur();
        }


    }

}

function handlePageContactClick(elem) {
    if ($("#pagecontactdetails").hasClass("display-none")) {
        elem.blur();
        $("#pagecontactdetails").slideDown(350, function() {
            $("#pagecontactdetails").removeClass("display-none");
            elem.addClass("open");
        });

    } else {
        elem.blur();
        $("#pagecontactdetails").slideUp(350, function() {
            $("#pagecontactdetails").addClass("display-none");
            elem.removeClass("open");
        });

    }
}

function handlePageEditorClick(elem) {
    if ($("#pageeditordetails").hasClass("display-none")) {
        elem.blur();
        $("#pageeditordetails").slideDown(350, function() {
            $("#pageeditordetails").removeClass("display-none");
            elem.addClass("open");
        });

    } else {
        elem.blur();
        $("#pageeditordetails").slideUp(350, function() {
            $("#pageeditordetails").addClass("display-none");
            elem.removeClass("open");
        });

    }
}

function handleTagCloseClick(elem) {
    $("#tagslist").removeClass();
    $("#tagslist").addClass("display-none");
    elem.removeClass();
    elem.addClass("display-none");
    elem.blur();
}

function handleTagLinkClick(elem) {
    displayLoader('#tagslistheader','','50%','6px','40px');
    $("#tagsclose").removeClass();
    $("#tagsclose").addClass("display-block");
    $("#tagslist").removeClass();
    $("#tagslist").addClass("list column span-50em clear norightmargin display-block");
    $('#tagslist').load(elem[0].href + '/Ajax/True', '', function() { hideLoader(); });
    //$.ajax({url:elem[0].href+'/Ajax/True',cache:true,datatype:"html",success: function(data){$('#tagslist').html(data);hideLoader();}});
    pageTracker._trackPageview(elem[0].href);
    elem.blur();
}

function handleArtWorkListLinkClick(elem) {
    displayLoader('#tagslistheader');
    $("#tagsclose").removeClass();
    $("#tagsclose").addClass("display-block");
    $("#tagslist").removeClass();
    $("#tagslist").addClass("list column span-50em clear norightmargin display-block");
    $('#tagslist').load(elem[0].href + '/Ajax/True', '', function() { hideLoader(); });
    //$.ajax({url:elem[0].href+'/Ajax/True',cache:true,datatype:"html",success: function(data){$('#tagslist').html(data);hideLoader();}});
    pageTracker._trackPageview(elem[0].href);
    elem.blur();
}

function handlePopupLinkClick(elem) {
    displayLoader('#popupinnerright', '#translationloader');
    $('#popup_content').load(elem[0].href + '/f/Translate/Ajax/True', '', translateTextCallBack);
    currentHref = elem[0].href;
    pageTracker._trackPageview(elem[0].href);
    elem.blur();
}

function handleTranslateLinkClick(elem) {
    $('#jq-primaryNavigation').empty();
    applyStylesheet('print_ajax');
    currentHref = elem[0].href;

    $.translate(function() { //when the Google Language API is loaded

        if (!currentLanguage) {
            currentLanguage = 'English';
        }

        $.translate().ui('select', 'option') //generate dropdown
		  .change(function() { //when selecting another language
		      displayLoader('#popupinnerright', '#translationloader');
		      currentLanguage = $.translate().toLanguageCode($(this).val());
		      $('#popup_content').load(currentHref + '/f/Translate/Ajax/True', '', translateTextCallBack);
		  })

		  .val(currentLanguage) //select English as default
		  .appendTo('#jq-primaryNavigation'); //insert the dropdown to the page

        //insert Google's logo after the dropdown:
        $.translate().getBranding().appendTo('#jq-primaryNavigation');

    });

    $("#popup_frame").removeClass();
    $("#popup_frame").addClass("popup display-block");
    $("#popup_inner").removeClass();
    $("#popup_inner").addClass("popupctn display-block");
    displayLoader('#popupinnerright', '#translationloader');
    $('#popup_content').load(currentHref + '/f/Translate/Ajax/True', '', translateTextCallBack);
    elem.blur();
}



function handlePopupcloseLinkClick(elem) {
    currentHref = "";
    currentLanguage = "English";
    applyStylesheet('print');
    $("#popup_frame").removeClass();
    $("#popup_frame").addClass("popup display-none");
    $("#popup_inner").removeClass();
    $("#popup_inner").addClass("popupctn display-none");
}

function handleThumbLinkClick(elem) {
    displayLoader('#topimagearea');
    $('#topimagearea').load(elem[0].href + '/Ajax/True', '', function() { hideLoader(); });
    pageTracker._trackPageview(elem[0].href);
    elem.blur();
}

function handleLinkClick(elem, contentId) {
    displayLoader(contentId);
    $(contentId).load(elem[0].href + '/Ajax/True', '', function() { hideLoader(); });
    pageTracker._trackPageview(elem[0].href);
    elem[0].blur();
}

function showRequest(formData, jqForm, options) {
    /*var queryString = $.param(formData);
    alert('About to submit: \n\n' + queryString);*/
    //var offset = $('#search_form').offset();
    //$('#slideSearch').css({ "position": "absolute", "top": offset.top + "px", "left": offset.left - (300) + "px", "width": "300px", "height": "300px" });
    //$('#slideSearch').slideDown(300, function() { displayLoader('#slideSearchHead', '#arrowloader', '120px', 'top'); });
    return true;
}

function showResponse(responseText, statusText, xhr, $form) {
    $form.find("input[name*='Ajax']").remove();
    $form.find("input[name*='f']").remove();
    //$('#slideSearchContent').addClass("display-none");
    $('#slideSearchContent').slideDown(500, function() { hideLoader('#arrowloader'); });
    $('#searchShow').removeClass('display-block');
    $('#searchShow').addClass('display-none');
    $('#searchClose').removeClass('display-none');
    //$('#slideSearch #loader').addClass('display-none');
    //$('#slideSearch').slideDown(800);
}

function beforeSerializeSearchForm($form, options) {
    $('#slideSearch').slideDown(300, function() { displayLoader('#slideSearchHead', '#arrowloader', '120px', 'top'); });
    $form.append('<input type="hidden" name="Ajax" value="True"/>');
    $form.append('<input type="hidden" name="f" value="AjaxSearchUpdate"/>');
}

function ibShowRequest(formData, jqForm, options) {
    /*var queryString = $.param(formData);
    alert('About to submit: \n\n' + queryString);*/
    //var offset = $('#search_form').offset();
    //$('#slideSearch').css({ "position": "absolute", "top": offset.top + "px", "left": offset.left - (300) + "px", "width": "300px", "height": "300px" });
    //$('#slideSearch').slideDown(300, function() { displayLoader('#slideSearchHead', '#arrowloader', '120px', 'top'); });
    return true;
}

function ibShowResponse(responseText, statusText, xhr, $form) {
    //alert("Response");
   
        $form.find("input[name*='Ajax']").remove();
        $form.find("input[name*='f']").remove();
        imageFunctions.alignImages('#js-container', '#image-loader', true);


}

function beforeSerializeIbSearchForm($form, options) {
    $('#js-container').addClass("display-none");
    $("#ibcontainer #info").addClass("display-none");

    displayLoader('#ibcontainer', '#image-loader', '', 'center', '300px');
    $form.append('<input type="hidden" name="Ajax" value="True"/>');
    $form.append('<input type="hidden" name="f" value="AjaxIbSearchUpdate"/>');
}

function handleSearchCloseClick(elem) {
    //$('#slideSearchContent').slideUp(500, function() { $('#slideSearch').slideUp(400, function() { $('#slideSearch').removeClass('display-block'); $('#slideSearchContent').empty(); }); });
    $('#slideSearchContent').slideUp(500);
    $('#searchClose').removeClass('display-block');
    $('#searchClose').addClass('display-none');
    $('#searchShow').removeClass('display-none');
    elem.blur();
}

function handleSearchLinkClick(elem) {
    displayLoader('#slideSearchHead', '#arrowloader', '120px', 'top')
    $('#slideSearchContent').load(elem[0].href + '&Ajax=True&f=AjaxSearchUpdate', function() { hideLoader('#arrowloader'); });
    pageTracker._trackPageview(elem[0].href);
    elem.blur();
}

function handleSearchShowClick(elem) {
    $('#slideSearchContent').slideDown(500, function() { });
    $('#searchShow').removeClass('display-block');
    $('#searchShow').addClass('display-none');
    $('#searchClose').removeClass('display-none');
    elem.blur();
}

function handleSearchFieldClick(elem) {
    elem.val("");
}


function applyEvents() {
    if (document.getElementById && document.getElementsByTagName) {

        var galleryObject = $("#overlay").overlay({
            api: true,
            mask: { color: '#000', opacity: '0.5' },
            fixed: false,
            top: 'center',

            onBeforeLoad: function() {
                // load the page specified in the trigger
                $(".contentWrap").load(overlayUrl);
            },

            onClose: function() {
                $("#image_wrap").find("img").attr("Src", "");
            }
        });

        //Handle search_form submit

        var searchFormOptions = {
            target: '#slideSearchContent',
            beforeSerialize: beforeSerializeSearchForm,
            beforeSubmit: showRequest,
            success: showResponse
        };
        if($('#search_form').length){
            $('#search_form').ajaxForm(searchFormOptions);
        }

        //Handle ib_search_form submit

        var ibSearchFormOptions = {
            target: '#js-container',
            beforeSerialize: beforeSerializeIbSearchForm,
            beforeSubmit: ibShowRequest,
            success: ibShowResponse
        };
        if ($('#ib_search_form').length) {
            $('#ib_search_form').ajaxForm(ibSearchFormOptions);
        }
        
        

        $("a#openinfo").live('click', function(event) { event.preventDefault(); handleOpenInfoClick($(this)); return false; });
        $("#search_form #q").live('click', function(event) { event.preventDefault(); handleSearchFieldClick($(this)); return false; });
        $(".searchfield #ArtProjectQuery").live('click', function(event) { event.preventDefault(); handleSearchFieldClick($(this)); return false; });
        $("#pagecontact a").live('click', function(event) { event.preventDefault(); handlePageContactClick($(this)); return false; });
        $("#pageeditor a").live('click', function(event) { event.preventDefault(); handlePageEditorClick($(this)); return false; });
        $("a#tagsclose").live('click', function(event) { event.preventDefault(); handleTagCloseClick($(this)); return false; });
        $("a.taglink").live('click', function(event) { event.preventDefault(); handleTagLinkClick($(this)); return false; });
        $("a.artworklist").live('click', function(event) { event.preventDefault(); handleArtWorkListLinkClick($(this)); return false; });
        $("a.popuplink").live('click', function(event) { event.preventDefault(); handlePopupLinkClick($(this)); return false; });
        $("a#translate").live('click', function(event) { event.preventDefault(); handleTranslateLinkClick($(this)); return false; });
        $("a#popup_close").live('click', function(event) { event.preventDefault(); handlePopupcloseLinkClick($(this)); return false; });
        $("#projectinfoinner a.thumb").live('click', function(event) { event.preventDefault(); handleThumbLinkClick($(this)); return false; });
        $("a.selectorforward").live('click', function(event) { event.preventDefault(); handleLinkClick($(this), '#toparea'); return false; });
        $("a.selectorback").live('click', function(event) { event.preventDefault(); handleLinkClick($(this), '#toparea'); return false; });
        $("a.artistinfo").live('click', function(event) { event.preventDefault(); handleLinkClick($(this), '#topimagearea'); return false; });
        $("a.placeinfo").live('click', function(event) { event.preventDefault(); handleLinkClick($(this), '#topimagearea'); return false; });
        $("a.backgroundinfo").live('click', function(event) { event.preventDefault(); handleLinkClick($(this), '#topimagearea'); return false; });
        $("a#searchClose").live('click', function(event) { event.preventDefault(); handleSearchCloseClick($(this)); return false; });
        $("a#searchShow").live('click', function(event) { event.preventDefault(); handleSearchShowClick($(this)); return false; });
        $("a.listresult").live('click', function(event) { event.preventDefault(); handleSearchLinkClick($(this)); return false; });
        $("a.previous").live('click', function(event) { event.preventDefault(); handleSearchLinkClick($(this)); return false; });
        $("a.next").live('click', function(event) { event.preventDefault(); handleSearchLinkClick($(this)); return false; });
        $("a.qArea").live('click', function(event) { event.preventDefault(); handleSearchLinkClick($(this)); return false; });
        $("#tagslist a.thumb").live('click', function(event) {
            event.preventDefault(); // load the overlay
            pageTracker._trackPageview($(this).attr("href"));
            overlayUrl = $(this).attr("href")+'/Ajax/True/f/ShowGallery';
            galleryObject.load();
            return false;
        });

        
        /*$(".picasabox a.thumb").live('click', function(event) {
            event.preventDefault(); // load the overlay
            pageTracker._trackPageview($(this).attr("href"));
            overlayUrl = $(this).attr("href") + '/Ajax/True/f/ShowGallery';
            galleryObject.load();
            return false;
        });*/

        $("div.tabs").tabs("div.pane", { tabs: 'div.tab', effect: 'slide-out', initialIndex: null });
        //$("#leftservice").removeClass('display-none');

      

        /*Shadowbox.setup("#js-container .entry", {
            gallery: "Images",
            viewportPadding: "40"
        });*/

        $("#ibsearcharea #textQuery").live('click', function(event) { event.preventDefault(); handleSearchFieldClick($(this)); return false; });
        if ($('#ibsearcharea').length != 0) {
            displayLoader('#ibcontainer', '#image-loader', '', 'center','300px');
        }
        imageFunctions.alignImages('#js-container', '#image-loader');
        imageFunctions.applyExtras('.picasabox', false, "top center", true, -72, 0);

        $("div.tabs").tabs("div.pane", { tabs: 'div.tab', effect: 'slide-out', initialIndex: null });
        var tabApi = $("div.tabs").data("tabs");
        $("div.closepane").live('click', function(event) {
            event.preventDefault(); tabApi.getCurrentPane().animate({ width: '0' }, duration / 2, '', function() {
                $(this).hide(); tabApi.destroy(); tabStart = true; $("div.tabs").tabs("div.pane", { tabs: 'div.tab', effect: 'slide-out', initialIndex: null }); tabApi = $("div.tabs").data("tabs");
            }); return false;
        });


        $.tools.tabs.addEffect("slide-out", function(tabIndex, done) {
            var paneToOpen = this.getPanes().eq(tabIndex);
            //this.getCurrentTab().fadeTo(duration, opacity);
            if (!tabStart) {
                this.getCurrentPane().animate({ width: '0' }, duration / 2, '', function() {
                    $(this).hide();
                    $(paneToOpen).css({ "display": "block", "position": "absolute", "top": 0 + "px", "width": "0px" });
                    $(paneToOpen).animate({ width: '350' }, duration);
                });
            } else {
                $(paneToOpen).css({ "display": "block", "position": "absolute", "top": 0 + "px", "width": "0px" });
                $(paneToOpen).animate({ width: '350' }, duration);
                tabStart = false;
            }
            // the supplied callback must be called after the effect has finished its job
            done.call();
        });
        
        
        
        if($("#artprojectlist").children().length!=0){
            
            $("#filterpanel").removeClass('display-none');
            var jplist = $("#textarea").jplist({
            sort: { title: "span.artist" },
            filter: { title: "span.artist" },
            filter_path: "#filter",
            filter_field: "#filter input",
            sort_name: "Title",
            items_box: ".list",
            item_path: ".listitem",
            items_on_page: 10
        });

        //paging
        $("#page-by .p10").click(function() {
            jplist[0].paging(10);
        });

        $("#page-by .p25").click(function() {
            jplist[0].paging(30);
        });

        $("#page-by .p50").click(function() {
            jplist[0].paging(60);
        });

        $("#pages_all").click(function() {
            jplist[0].paging("all");
        });
        }

        

        $("a.gallery").live('click', function(event) {
            console.log("Gallery");
            event.preventDefault(); // load the overlay
            pageTracker._trackPageview($(this).attr("href"));
            overlayUrl = $(this).attr("href") + '/Ajax/True/f/ShowGallery';
            galleryObject.load();
            return false;
        });


    }
}
