﻿$(function() {
    fixPng();
    initSearch();
    initBanner();
    initNav();
    initModulePopupLinks();
    $(".scrollable").scrollable({ vertical: true, mousewheel: true });
    initAutoScroll();
});

function initValidation() {
    try {
        Sys.Application.remove_load(arguments.callee);
        Sys.Mvc.FormContext._Application_Load();
    }
    catch (e) {
        //console.log(e);
    }
}

function initSearch() {
    $("#searchform").hide();
    $("#toggleSearch").click(function() {
        $("#searchform").slideToggle();
        return false;
    });
}

var t = null;
var direction = 0; //0: next, 1: prev
function initAutoScroll() {
    initAutoScrollInterval()
    initMouseenterNews();
    initMouseleaveNews();
}

function initAutoScrollInterval() {
    //only if more than 1 item
    if ($(".items .item").length > 1) {
        if (t == null) {
            t = setInterval(function() {
                scrollNewsItem();
            }, 2500);
        }
    }
}

function scrollNewsItem() {
    var el = $("#actions ." + getClassCurScrollBtn());
    if (el.hasClass("disabled")) {
        switchDirection();
        //not in use, this doubles waittime on switch direction
        //more calm
        //scrollNewsItem();
    }
    el.click();
}

function switchDirection() {
    if (direction == 0)
        direction = 1;
    else
        direction = 0;
}

function getClassCurScrollBtn() {
    if (direction == 0)
        return "next";
    return "prev";
}

function initMouseenterNews() {
    if (bindIfNotBound($(".items"), "mouseenter")) {
        $("#allrssarticles").mouseenter(function() {
            clearInterval(t);
            t = null;
        });
    }
}

function initMouseleaveNews() {
    if (bindIfNotBound($(".items"), "mouseleave")) {
        $("#allrssarticles").mouseleave(function() {
            initAutoScrollInterval();
            scrollNewsItem();
        });
    }
}

function bindIfNotBound(el, event) {
    if (!elementhasDataEvents(el))
        return true;
    else if (!elementhasEvent(el, event))
        return true;
    return false;
}

function elementhasDataEvents(el) {
    return $(el).data('events')
}

function elementhasEvent(el, event) {
    return $(el).data('events')[event];
}

$(window).resize(function() {
    $("#popup").centre();
});

function initScrollTimer() {

}

function initModulePopupLinks() {
    $(".modulelink").each(function() {
        if (!$(this).hasClass("mlinitiated")) {
            $(this).addClass("mlinitiated");
            $(this).click(function() {
                var pw = $(this).attr("pw");
                var ph = $(this).attr("ph");

                var _href = $(this).attr("href");

                track(_href);

                if (_href.indexOf("http") < 0) {
                    _href = "/Ajax" + _href;
                }

                $("#popup").openpopup(_href, pw, ph);
                return false;
            });
        }
    });
}

function initNav() {
    initSucker();
    initAjaxNav();
}

function initAjaxNav() {
    $("#navigation").children("li").children("a").each(function() {
        //if no submenu
        if (!$(this).parent("li").find("ul").length) {
            if (!$(this).hasClass("mainlink"))
                $(this).addClass("mainlink");
        }
        else {
            if (!$(this).hasClass("nolink"))
                $(this).addClass("nolink");
        }
    });

    $("#navigation").find("a").each(function() {
        if (bindIfNotBound($(this), "click")) {
            $(this).click(function() {
                var href = $(this).attr("href");
                
                track(href);
                
                if ($(this).hasClass("mainlink")) {
                    href = getMainLink(href);
                }
                if ($(this).hasClass("avlink")) {
                    return true;
                }
                if ($(this).hasClass("nolink")) {
                    return false;
                }
                if ($(this).hasClass("modulelink")) {
                    return false;
                }
                getDynContent(href);
                return false;
            });
        }
    });
    $(".innerlink").each(function() {
        if (bindIfNotBound($(this), "click")) {
            $(this).click(function() {
                var href = $(this).attr("href");
                
                track(href);

                href = getMainLink(href);
                getDynContent(href);
                return false;
            });
        }
    });
}


function reinit() {
    fixPng();
    initModulePopupLinks();
    initAjaxNav();
}

function getDynContent(href) {
    $.get("/Ajax" + href + getTimeStampForAction("?"),
                function(data) {
                    $('#dyncontent').html(data);
                    reinit();
                });
}

function getMainLink(href) {
    href += "/Main";
    return href;
}

function initSucker() {
    $("ul.sf-menu").supersubs({
        minWidth: 15,       // minimum width of sub-menus in em units 
        maxWidth: 40,       // maximum width of sub-menus in em units 
        extraWidth: 1       // extra width can ensure lines don't sometimes turn over 
        // due to slight rounding differences and font-family 
    }).superfish({
        delay: 50,
        animation: { opacity: 'show' },
        autoArrows: false,
        speed: 150
    });                     // call supersubs first, then superfish, so that subs are 
    // not display:none when measuring. Call before initialising 
    // containing tabs for same reason.
}

var p = "/Content/images/banner/";
var st = 6;
var imagelistobject =
          new Object(
          [
          { src: p + 'header1.jpg' },
          { src: p + 'header2.jpg' },
          { src: p + 'header3.jpg' },
          { src: p + 'header4.jpg' }
          ]
          );

function fixPng() {
    if ($.browser.msie) {
        $('img[src$=.png]').ifixpng();
    }
}

function initBanner() {
    if (imagelistobject != null) {
        //        var p = "../../Content/Images/banners/";
        $('#banner_main').css({ "width": "905px", "height": "378px" });
        $('#banner_main').crossSlide({
            sleep: st,
            fade: 3
        },
          imagelistobject
    );
    }
}

function initDatePickers() {
    $(".datepicker").each(function() {
        var val = $(this).val().replace(" 0:00:00", "");

        $(this).val(val);
        if ($(this).val().indexOf("0001") >= 0) {
            $(this).val('');
        }
    });
    $(".datepicker").datepicker(
		    {
		        dateFormat: 'dd-mm-yy'
		    }
		);
}
