﻿/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

$.easing.easeOutBack = function(x, t, b, c, d, s) {
    if (s == undefined) s = 1.70158;
    return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
}


/* Login
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
var OneClickLogin = {
    _keyPressCount: 0,
	init : function()
	{
		if(this.cssUrl)
		    document.write('<link href="' + this.cssUrl + '" rel="stylesheet" type="text/css" />');
		$(document).bind("keyup", OneClickLogin.eventHandler);
	}, 
	
	eventHandler : function(ev)
	{
		ev = (typeof(ev)== "undefined") ? window.event : ev;
		if(ev.type == "keyup")
			return OneClickLogin.keyHandler(ev);
	}, 
	
	keyHandler : function(ev)
	{
	    var kc = ev.keyCode || ev.which
	    
	    if($("#OneClick_login").length != 0 && kc==27)
	        $("#OneClick_login").remove();
	        
		if(kc == 17 || kc == 32)
			this._keyPressCount++;
		else
			this._keyPressCount = 0;
			
		if(this._keyPressCount > 2)
		{
			window.scrollTo(0,0);
			this.addLoginBox();
			this._keyPressCount = 0;
			this.cancelEvListener(ev);	
			return false;
		}
	}, 
	cancelEvListener : function(ev)
	{
		if(typeof(ev.preventDefault) != "undefined")
		{
			ev.preventDefault();
		}
		ev.returnValue = false;
		ev.cancelBubble = true;
	}, 
	
	addLoginBox : function()
	{
		if($("#ocAdminLogin").length != 0 || $("#ocAdminToolbar").length != 0)
			return;
        $("body").append("<div id='ocAdminLogin'></div>");
        $("#ocAdminLogin").append("<iframe scrolling='no' frameborder='0' hspace='0' src='"+this.loginUrl+'?redirect='+this.scriptName()+ "&random=" + new Date().getTime()+"'></iframe>");

	}, 
	
	hideLoginBox:function()
	{
		if($("#OneClick_login").length != 0)
            $("#OneClick_login").remove();
	},
	scriptName:function()
	{
		var l = location.href;
		if(l.indexOf('http://') == 0)
			l = l.substring(7);
		l = l.substring(l.indexOf("/"));
		return l;		
	}

}
OneClickLogin.loginUrl = "/admin/OneClick_loginbox/OneClick_login.aspx";
//OneClickLogin.cssUrl = "/admin/OneClick_loginbox/oneclick_login.css";
OneClickLogin.init();


/* Popup
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function checkPopWin(url)
{
	if(popWin == null)
	{
		self.location.href = url;
	}
}

function tmSizedPopup(url,winName,w,h) {
    var useScroll = 0;
    if (arguments[4] != undefined)
        useScroll = (arguments[4] == 1) ? 1 : 0;
	popWin = window.open(url,winName,'fullscreen=0,width='+w+',height='+h+',toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars='+useScroll+',resizable=1');
}


/* Email-protection
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function ShowEmail(i_where, i_beforeAt, i_afterAt, i_afterDot, i_additional)
{
    if (i_additional == null)
        i_additional = "";
    builtStr = i_beforeAt + "@" + i_afterAt + "." + i_afterDot;
    $("#" + i_where).append(i_additional + '<a href="mailto:' + builtStr + '">' + builtStr + '</a>');
}


/* Other enhancements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
$(function() {

    if ($('.event-wrapper').length > 0) {

        $('body').bind('click', function() {
            $('.events li').removeClass('active');
        });

        $('.long-description').hide();

        $('.events li').each(function() {
            
            var $longDesc = $(this).find('.long-description');
            if($longDesc.length>0)
                var $moreLink = $('<a />').attr('class', 'more').text('Mer information').data('active', false).insertBefore($longDesc);
            
        });
        $('.events .more').bind('click', function() {
            var $this = $(this);
            if ($this.data('active') == true) {
                $this.text('Mer information').css({ backgroundPosition: '2px -209px' });
                $this.data('active', false);
            }
            else {
                $this.text('Mindre information').css({ backgroundPosition: '0 -491px' });
                $this.data('active', true);
            }
            if ($(this).next().is('.long-description')) {
                $(this).next().animate({ height: 'toggle' }, 300);
            }
        });
    }
    // Changed selector from '.event-wrapper .upcoming li .more' to the one below to make sure we only catch hashtag links
    $('[href^="#event"]').bind('click', function() {
        var $event = $($(this).attr('href'));
        $('.event-wrapper .events li').removeClass('active');
        $.scrollTo($(this).attr('href'), 800, { easing: 'easeOutBack', offset: { top: -50, left: 0 }, onAfter: function() {
            $event.addClass('active');
            if ($event.find('a.more').next().is('.long-description')) {
                $event.find('a.more').text('Mindre information').css({ backgroundPosition: '0 -491px' }).data('active', true).next().animate({ height: 'show' }, 300);
            }
        }
        });
        return false;
    });
});


/* JS Trim
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
