﻿////SlideShow
var prev = 0;
var imgWrapper;
var time;
var CurrentLanguages = $('#LanguageChooser li ul li');
var firstTajm = true;

jQuery(window).load(function () {
    //-----------------------------------
    //Ta bort banners utan länk
    //-----------------------------------
    $(".BannerModule").each(function () {
        try {
            var hlen = $(this)[0].href.length;
            if (hlen == 0)
                $(this).remove();
        } 
        catch (e) {
        }
    });
    //-----------------------------------
});

$(document).ready(function () {
    //killSkype(); //<< Use if the meta-tag is not enough
    $("table.LekTable2 tr:nth-child(even)").addClass("striped");

    // $.fn.DropDownFix();
    // $.fn.slideShowSetHeight();
    if ($('#slideshow div').size() > 1)
        $.fn.slideShow();
    else {
        $('#slideshow div').css("display", "block");
    }
    knowit.googleTranslate($("#translate"));

});


////SKYPE-KILLER --
//var ksEles;
//var ksRuns = 0;
//var ksComplete = false;
//var browserName = navigator.appName;

//function killSkype() {
//    if (ksComplete == false) {
//        ksEles = document.body.getElementsByTagName("*");
//        var ksFound = false;
//        for (i = 0; i < ksEles.length; i++) {
//            if (ksEles[i].id == "__skype_highlight_id") ksEles[i].innerHTML = "";
//            if (ksEles[i].id == "__skype_highlight_originaltext_id") ksEles[i].setAttribute("class", "");
//            if (ksEles[i].className == "skype_pnh_print_container") ksEles[i].setAttribute("class", "");
//            if (ksEles[i].className == "skype_pnh_container") {
//                ksEles[i].innerHTML = "";
//                setTimeout("killSkype()", 10);
//                ksFound = true;
//                if (browserName == "Microsoft Internet Explorer") break;
//            }
//        }
//        if (ksRuns < 200 && ksFound == false) { setTimeout("killSkype()", 10); ksRuns++; } else { if (browserName !== "Microsoft Internet Explorer") ksComplete = true; }
//    } 
//}
////--------------

function redirectFormPost() {
    var frm = document.forms[0];
   frm.target = "_blank";

}

$.fn.DropDownFix = function() {
    $('#LanguageChooser li ul li').hover(
        function() {
           
            $('a', this).css({ color: 'white' }); //mouseover
        },
        function() {
            $('a', this).css({ color: 'black' }); // mouseout
        }
        );
}

$.fn.slideShowSetHeight = function() {
    var MaxHeight = 0;
  
    $('#slideshow').each(function() {
         if ($('img',this).height() > MaxHeight)
            MaxHeight = $(this).height();
    });
    $('#slideshow').css('height', MaxHeight);
}

$.fn.slideSwitch = function() {

  
    var $active = $('#slideshow div.active');
    if ($active.length == 0) $active = $('#slideshow div:last');

    var $next = $active.next().length ? $active.next()
        : $('#slideshow div:first');

    $active.addClass('last-active');

    $next.css({ opacity: 0.0 })
        .addClass('active')
        .animate({ opacity: 1.0 }, 1200, function() {
            $active.removeClass('active last-active');
        });
}
$.fn.slideShow = function() {
   $("#slideshow div:first").addClass("active");
    setInterval("$.fn.slideSwitch()", 7000);


};

/////SlideShow 
//$.fn.slideShow1 = function() {
//    imgWrapper = $('#slideshow > img');
//    if (imgWrapper.size() != 0) {
//        imgWrapper.hide();
//        $(imgWrapper[prev]).show();
//        $.fn.slideSwitch1();
//        time = 6000;
//        setTimeout(function() {
//            $.fn.slideSwitch1();
//        }, 2000);
//        setInterval("$.fn.slideSwitch1()", time);
//    }
//};

//////SlideShow 
//$.fn.slideSwitch1 = function() {
//    imgWrapper.hide();
//    $(imgWrapper[prev]).fadeOut(2000, function() {
//        if (imgWrapper.size() == prev + 1) 
//            prev = 0
//        else
//            prev++;
//        $(imgWrapper[prev]).fadeIn(2000);
//    });
//};

$.fn.ContactForm = function(serverControls) {
    return {

        feedback: function() {
            var c = $("#feedback-message");
            c.show().overlay({
                api: true,
                expose: {
                    color: "#333",
                    loadSpeed: 50,
                    opacity: 0.75
                },
                top: "25%",
                onClose: function() {
                    c.remove();
                }
            }).load();
            // Close btn
            var closeDiv = c.find("div.close");
            closeDiv.html("Stäng <span>X</span>");
            var closeBtn = closeDiv.find("span");
            function btnHover() { closeBtn.toggleClass("hover"); }
            closeDiv.hover(btnHover, btnHover);

        },

        init: function() {
            $(document).ready(function() {
                var c = $("#contact-form");

                function resetValidationClasses() {
                    c.find("label.error").remove();
                    c.find(".valid").removeClass("valid");
                    c.find(".error").removeClass("error");
                }

                function reset() {
                    c.find("input:text, textarea").val("");
                    resetValidationClasses();
                }

                $("a[rel=#contact-form]").overlay({
                    top: "10%",
                    expose: {
                        color: "#333",
                        loadSpeed: 50,
                        opacity: 0.75
                    },
                    onBeforeLoad: function(event) {
                        reset();
                        jQuery.validator.messages.required = "";
                        jQuery.validator.messages.email = "Adressen är felaktig.";
                        jQuery.validator.messages.number = "Ange nummer med enbart siffror";
                        jQuery.validator.messages.minlength = jQuery.validator.format("Minst {0} tecken krävs");

                        var options = {
                            rules: {},
                            ignore: ".validate-not",
                            submitHandler: function(form) {
                                form.submit();
                            }
                        };

                        options.rules[serverControls.names.name] = { required: true, minlength: 2 };
                        options.rules[serverControls.names.message] = { required: true, minlength: 5 };
                        options.rules[serverControls.names.mailAddress] = {
                            required: "#" + serverControls.ids.phoneNr + ":blank",
                            email: true
                        };
                        options.rules[serverControls.ids.phoneNr] = {
                            required: "#" + serverControls.ids.mailAddress + ":blank",
                            number: true
                        };

                        $.fn.contactFormValidator = $("#aspnetForm").validate(options);

                        c.find("dd").text(this.getTrigger().find("input:first").val());
                        c.find("> fieldset > input[type=hidden]").val(this.getTrigger().find("input:last").val());
                    }
                });

                // Close btn
                var closeDiv = c.find("div.close");
                closeDiv.html("Stäng <span>X</span>");
                var closeBtn = closeDiv.find("span");
                function btnHover() { closeBtn.toggleClass("hover"); }
                closeDiv.hover(btnHover, btnHover);

            });
        }

    };
};


//QuickSearchAjax

var _qsSelectedIndexInSearch;
var _qsDataViewSearch;
var _qsServiceURL;
var _qsTextBox;
var _qsSearchImage;
var _qsSearchingURL;
var _qsNoResult;
var _qsSearchURL;
var _qsButtonTimer;
var _qsFromScratch;
var _qsMaxNrOfResults;
var _qsLanguage;
var _qsErrorMessage;
var _qsSearchText;
var _qsNoResults;
var _qsAllResults;

//Trigged by codebehind to start att pageload when script is used in ascx. Else use pageLoad()/onReady()
function searchLoad(searchRootPage, searchUrl, maxNrOfRes, language, serviceLocation, errorMessage, searchText, allResults) {
    _qsSelectedIndexInSearch = -1;
    _qsSearchText = searchText;
    _qsErrorMessage = errorMessage;
    _qsAllResults = allResults;
    _qsSearchImage = document.getElementById("searchGif");
    _qsSearchImageURL = "/Templates/Public/Images/ajax-loader-clear.png";
    _qsSearchingImageURL = "/Templates/Public/Images/ajax-loader.gif";
    _qsTextBox = document.getElementById("txtSearchJS");
    _qsNoResult = document.getElementById("noResult");
    _qsDataViewTemplate = document.getElementById("quickSearchDataView");
    _qsDataViewTemplate.style.display = ("none");
    _qsServiceURL = serviceLocation;
    _qsDataViewSearch = Sys.create.dataView("#quickSearchDataView");
    _qsFromScratch = 0;
    _qsSearchURL = searchUrl;
    _qsSearchRootPage = searchRootPage;
    _qsLanguage = language;
    _qsMaxNrOfResults = maxNrOfRes;
    _qsTextBox.value = _qsSearchText;
    $("#searchGif").click(function() { clearSearch(); });
    //$("#searchGif").click(function() { window.open(_qsSearchURL + _qsTextBox.value); });
    //Basic watermark
    $("#txtSearchJS").click(function() { if (_qsTextBox.value === _qsSearchText) _qsTextBox.value = ""; });
//    $("#txtSearchJS").keydown(onKeyDown(event));
//    $("#txtSearchJS").keyup(populateList(event));
    //_qsTextBox.keypress(populateList(event));    
}
//Fired by event from textbox (keyup)
//$("#txtSearchJS").keydown(function(event) {
    function populateList(event) {
    //Only search when not using up, down or enter key
    if (event.keyCode != 38 && event.keyCode != 40 && event.keyCode != 13) {
        if (_qsTextBox.value.length > 1) {
            _qsSelectedIndexInSearch = -1;
            if (_qsButtonTimer) clearTimeout(_qsButtonTimer);
            _qsButtonTimer = setTimeout("doSearch()", 400);
        }
        else {
            if (_qsButtonTimer) clearTimeout(_qsButtonTimer);
            _qsButtonTimer = setTimeout(function() {
                clearSearch();
            }, 10);

        }

        //_qsDataViewSearch.refresh();
    }
}
//Clears the searchbox
function clearSearch() {
    var quickSearchDiv = $("#quickSearchDiv");

    _qsFromScratch = 1;
    _qsSelectedIndexInSearch = -1;
    //_qsSearchImage.src = _qsSearchImageURL;
    _qsSearchImage.style.visibility = 'hidden';
    _qsSearchImage.src = "";
    document.getElementById("noResult").style.display = 'none';
    $("#quickSearchDataView").slideUp();
    quickSearchDiv.slideUp();
    quickSearchDiv.css("visibility", "hidden");
}

function doSearch() {
    qsContext = Sys.create.dataContext({ serviceUri: _qsServiceURL });
    _qsSearchImage.src = _qsSearchingImageURL;
    _qsSearchImage.style.visibility = 'visible';

    //Felhantering - max 10 ord-----
//    var splitWords = _qsTextBox.value.split(' ');
//    var countWords = splitWords.length;
    //------------------------------

    qsContext.fetchData("LiveSearch",
                  { param: _qsTextBox.value, language: _qsLanguage, searchRootID: _qsSearchRootPage, maxNrOfResults: _qsMaxNrOfResults }, null, null,
                  function searchSuccsess(searchResult) {
                      //If result contains no data
                      if (!searchResult.length) {
                          var quickSearchDiv = $("#quickSearchDiv");
                          //If no result Exist
                          if (_qsFromScratch == 1) {
                              _qsNoResult.style.display = 'block';
                              _qsDataViewTemplate.style.display = 'none';
                              quickSearchDiv.height($("#noResult").height());
                              quickSearchDiv.slideDown();
                              quickSearchDiv.animate({ height: $("#noResult").height() }, "fast", function() { quickSearchDiv.css("visibility", "visible"); });
                              _qsSearchImage.src = _qsSearchImageURL;
                              _qsFromScratch = 0;
                          }
                          //Update with results in list
                          else {
                              _qsDataViewTemplate.style.display = 'none';
                              _qsNoResult.style.display = 'block';
                              quickSearchDiv.animate({ height: $("#noResult").height() }, "fast");
                              _qsSearchImage.src = _qsSearchImageURL;
                          }

                      }
                      //General update
                      else {
                          _qsNoResult.style.display = 'none';
                          $("#noResult").slideUp();
                          _qsDataViewSearch.set_data(searchResult);
                          _qsDataViewSearch.refresh();
                          $("#quickSearchDataView").find("li:nth-child(even)").addClass('alternate');
                          addSearchMoreLink();
                          var c = $("#quickSearchDataView");
                          if (c.height() > 0) {
                              $("#quickSearchDiv").animate({ height: c.height() }, "fast");
                          }
                          //First render
                          else {
                              _qsDataViewTemplate.style.display = 'block';
                              var quickSearchDiv = $("#quickSearchDiv");
                              quickSearchDiv.css("visibility", "hidden");
                              quickSearchDiv.slideDown();
                              quickSearchDiv.animate({ height: c.height() }, "fast", function() { quickSearchDiv.css("visibility", "visible"); });
                          }
                          c.show();
                          _qsSearchImage.src = _qsSearchImageURL;
                      }
                  }
                  ,
                  function searchFetchFailure(error) {
                      _qsTextBox.value = _qsErrorMessage;
                      _qsSearchImage.src = _qsSearchImageURL;
                  });
}
function addSearchMoreLink() {
    var theList = document.getElementById("quickSearchDataView").getElementsByTagName('li');
    var i = theList.length - 1;
    $('<li class="searchMore"><a href="#" class="ArrowLink">' + _qsAllResults + '</a></li>').insertAfter(theList[i]);
    //$('<li class="closeSearch">Stäng</li>').insertAfter(theList[i + 1]);
    $(".searchMore").click(function() {window.location = _qsSearchURL + _qsTextBox.value; });
//    $(".closeSearch").click(function() {
//        clearSearch();
//    });
}


//Key down/up functions
function onKeyDown(event) {
    var searchURL = _qsSearchURL + _qsTextBox.value;
    var theList = document.getElementById("quickSearchDataView").getElementsByTagName('li');
    if (event.keyCode === 13) {
        if (_qsSelectedIndexInSearch === -1 || _qsSelectedIndexInSearch === theList.length - 1) {
            window.location = searchURL;
            clearSearch();
            _qsTextBox.value = ""
            if (event.preventDefault) event.preventDefault();
            else event.returnValue = false;
        }
//        else if (_qsSelectedIndexInSearch === theList.length - 1) {
//            clearSearch();
//            _qsTextBox.value = ""
//            if (event.preventDefault) event.preventDefault();
//            else event.returnValue = false;
//        }
        else {
            window.location = theList[_qsSelectedIndexInSearch].getElementsByTagName('a')[0].href;
            clearSearch();
            _qsTextBox.value = ""
            if (event.preventDefault) event.preventDefault();
            else event.returnValue = false;
        }
    }
    if (event.keyCode === 40)
        arrowDown();
    if (event.keyCode === 38)
        arrowUp();

}

function arrowDown() {
    var theList = document.getElementById("quickSearchDataView").getElementsByTagName('li');
    if (theList.length > 0 && _qsSelectedIndexInSearch < theList.length - 1) {
        if (_qsSelectedIndexInSearch == -1) {
            _qsSelectedIndexInSearch++;
            theList[_qsSelectedIndexInSearch].className += ' active';
        }
        else {
            $("#quickSearchDataView li").removeClass("active");
            _qsSelectedIndexInSearch++;
            theList[_qsSelectedIndexInSearch].className += ' active';
        }
    }
}

function arrowUp() {
    var theList = document.getElementById("quickSearchDataView").getElementsByTagName('li');
    if (theList.length > 0 && _qsSelectedIndexInSearch > -1) {
        if (_qsSelectedIndexInSearch == 0) {
            _qsSelectedIndexInSearch--;
            $("#quickSearchDataView li").removeClass("active");
        }
        else {
            $("#quickSearchDataView li").removeClass("active");
            _qsSelectedIndexInSearch--;
            theList[_qsSelectedIndexInSearch].className += ' active';
        }
    }

}

var knowit = knowit || {};

knowit.googleTranslate = function ($container) {
    var context = $container.get(0);
    var find = function (sel) {
        return $(sel, context);
    };
    var $trigger = find("#google-translate");
    var $gadget = find("#google_translate_element");

    $trigger.click(function () {
        $gadget.fadeIn("fast");
        return false;
    });

    $gadget.click(function () {
        return false;
    });
    $(document.body).click(function () {
        $gadget.fadeOut("fast");
    });


};

// Denna funktion måste vara publik för att nås via cb-parametern i URL:en 
// translate.google.com/translate_a/element.js?cb=googleTranslateElementInit
googleTranslateElementInit = function () {
    var $gadget = $("#google_translate_element");
    $gadget.html({});

    //    new google.translate.TranslateElement({
    //        pageLanguage: 'sv'
    //    }, 'google-translate-element');

    $gadget.find("select").change(function () {
        var $this = $(this);
        $this.trigger("languagechanged", [$this.val()]);
        $gadget.fadeOut("fast");
    });
};




