//
// Objekt for å laste inn widgets dynamisk ved behov
var widget = new WidgetLoader();

// FeedbackHelper Globalt objekt for håndtering av feedback til bruker
var feedbackHelper;

$(function() {

    feedbackHelper = new FeedbackHelper($("#section_feedback"), $("#section_feedback_extended"));

    // Full visning av generisk feed (bruker google AJAX Feed API)
    widget.addTemplate('catalog', 'catalogWidget', {});
    
    // Initialiserer tab-funksjonaliteten
    $(".tp-tab-box").snTabBox();

    $("ul.catalog-entry-list > li.catalog > a").live('click', function () {
        var self = this;
        var url = "/catalog/async-ordning/";
        var $detailsPlaceHolder = $(this).parent().children("div.details");

        if( !$detailsPlaceHolder.length ) {
            $detailsPlaceHolder = $("<div></div>").attr('class', "details hidden")
                                                  .appendTo( $(this).parent() );
        }

        //
        // Hvis elementet allerede har detaljene lastet, trenger vi kun å toggle
        if( $detailsPlaceHolder.children().length ) {
            $detailsPlaceHolder.toggle("fast");
            $(self).toggleClass("selected");
            return ;
        }

        //
        // Markerer som aktiv
        $(self).addClass("selected");

        //
        // Henter inn detaljene
        $.ajax({
            url: url,
            data: {
                id: $(self).attr('rel')
            },
            dataType: "html",
            success: function ( htmlResponse ) {
                $detailsPlaceHolder.html( htmlResponse ).slideDown("fast");
            }
        });

        return ;
    });
	
    $("ul.catalog-entry-list > li.catalog-search > a").live('click', function () {
        var self = this;
        var url = "/catalog/async-search-ordning/";
        var $detailsPlaceHolder = $(this).parent().children("div.details");

        if( !$detailsPlaceHolder.length ) {
            $detailsPlaceHolder = $("<div></div>").attr('class', "details hidden")
                                                  .appendTo( $(this).parent() );
        }

        //
        // Hvis elementet allerede har detaljene lastet, trenger vi kun å toggle
        if( $detailsPlaceHolder.children().length ) {
            $detailsPlaceHolder.toggle("fast");
            $(self).toggleClass("selected");
            return ;
        }

        //
        // Markerer som aktiv
        $(self).addClass("selected");
        var splitString = $(self).attr('rel').split("/");


        //
        // Henter inn detaljene
        $.ajax({
            url: url,
            data: {
                id: splitString[0],
                query: splitString[1]
            },
            dataType: "html",
            success: function ( htmlResponse ) {
                $detailsPlaceHolder.html( htmlResponse ).slideDown("fast");
            }
        });

        return ;
    });
	$("ul.catalog-entry-list > li.catalog-private > a").live('click', function () {
        var self = this;
        var url = "/catalog/async-privordning/";
        var $detailsPlaceHolder = $(this).parent().children("div.details");

        if( !$detailsPlaceHolder.length ) {
            $detailsPlaceHolder = $("<div></div>").attr('class', "details hidden")
                                                  .appendTo( $(this).parent() );
        }

        //
        // Hvis elementet allerede har detaljene lastet, trenger vi kun å toggle
        if( $detailsPlaceHolder.children().length ) {
            $detailsPlaceHolder.toggle("fast");
            $(self).toggleClass("selected");
            return ;
        }

        //
        // Markerer som aktiv
        $(self).addClass("selected");

        //
        // Henter inn detaljene
        $.ajax({
            url: url,
            data: {
                id: $(self).attr('rel')
            },
            dataType: "html",
            success: function ( htmlResponse ) {
                $detailsPlaceHolder.html( htmlResponse ).slideDown("fast");
            }
        });

        return ;
    }); 
    
	

    $("#hide-all-details").click('click', function() {
        $(this).next("ul.tp-listing").children("li").each(function() {
            $(this).children("div.details").slideUp();
            $(this).children("a").removeClass('selected');
        });
        return false;
    });
    $("input.clear-field").clearField();
});

(function($) {
    $.fn.clearField = function( options ) {

        var settings = $.extend({
        }, options);
        this.each(function() {

            this.defaultValue = this.value;

            $(this).click(function(){
                if(this.value == this.defaultValue){
                    $(this).val("");
                }
                return false;
            });

            $(this).blur(function(){
                if(this.value == ""){
                    $(this).val(this.defaultValue);
                }
            });
        });
    }
})(jQuery);

