﻿var libero = jQuery.extend({
	closeText : "close"
}, libero);
function __doPostBack(eventTarget, eventArgument) {
	var theform = $('form:last')[0];
	theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
	theform.__EVENTARGUMENT.value = eventArgument;
	if($('#'+eventTarget.replace(/[:\$]/g, '_')).attr('type') != 'submit'){
		theform.submit();
	}
}

(function($){
$.fn.cssBorderRadius = function(){
	function init(){
		if(this.currentStyle['border-radius']){
			var radius = this.currentStyle['border-radius'].match(/^(.+?)px$/)[1];
			if (radius>0){
				if(radius>5){
					radius=10;
				} else {
					radius = radius > 3 ? 5 : 2;
				}
				$(this).append("<span class='topleftradius"+radius+"'></span>").append("<span class='toprightradius"+radius+"'></span>").append("<span class='bottomrightradius"+radius+"'></span>").append("<span class='bottomleftradius"+radius+"'></span>");
			}
		} else {
			if(this.currentStyle['border-top-left-radius']){
			var radius = this.currentStyle['border-top-left-radius'].match(/^(.+?)px$/)[1];
				if (radius>0){
					if(radius>5){
						radius=10;
					} else {
						radius = radius > 3 ? 5 : 2;
					}
					$(this).append("<span class='topleftradius"+radius+"'></span>");
				}
			}
			if(this.currentStyle['border-top-right-radius']){
			var radius = this.currentStyle['border-top-right-radius'].match(/^(.+?)px$/)[1];
				if (radius>0){
					if(radius>5){
						radius=10;
					} else {
						radius = radius > 3 ? 5 : 2;
					}
					$(this).append("<span class='toprightradius"+radius+"'></span>");
				}
			}
			if(this.currentStyle['border-bottom-right-radius']){
			var radius = this.currentStyle['border-bottom-right-radius'].match(/^(.+?)px$/)[1];
				if (radius>0){
					if(radius>5){
						radius=10;
					} else {
						radius = radius > 3 ? 5 : 2;
					}
					$(this).append("<span class='bottomrightradius"+radius+"'></span>");
				}
			}
			if(this.currentStyle['border-bottom-left-radius']){
			var radius = this.currentStyle['border-bottom-left-radius'].match(/^(.+?)px$/)[1];
				if (radius>0){
					if(radius>5){
						radius=10;
					} else {
						radius = radius > 3 ? 5 : 2;
					}
					$(this).append("<span class='bottomleftradius"+radius+"'></span>");
				}
			}
		}
	}
	this.each(init);
	return this;
};
$.fn.cssAfter = function(){
	//Fix for IE6, IE7 (IE 8 sets dubble if combined with :after)
	function init(){
		if (this.currentStyle['after']){
			var after = this.currentStyle['after'].match(/^['"]?(.*?)["']?$/)[1];
			if (after.substr(0,3) == 'url'){
				after=$('<img>').attr('src', after.substr(5,after.length-7)).addClass('after');
			}
			$(this).append(after);
		}
	}
	return this.each(init);
};
$.fn.cssBefore = function(){
	//Fix for IE6, IE7 (IE 8 sets dubble if combined with :before)
	function init(){
		if (this.currentStyle['before']){
			var before = this.currentStyle['before'].match(/^['"]?(.*?)["']?$/)[1];
			if (before.substr(0,3) == 'url'){
				before=$('<img>').attr('src', before.substr(5,before.length-7)).addClass('before');
			}
			$(this).prepend(before);
		}
	}
	return this.each(init);
};
$.fn.cssLastChild = function(){
	//Fix for IE6, IE7, IE8 (in IE8 this only works if styles is not combined with :last-child)
	// combined with the css-class e.g. 'selector: '.classname'; you can specify what object you wnat the last-child of.
	function init(){
		if (this.currentStyle['last-child']){
			var lastChild = this.currentStyle['last-child'].match(/^['"]?(.+?)["']?$/)[1];
			var selector = this.currentStyle['selector'] ? this.currentStyle['selector'].match(/^['"]?(.+?)["']?$/)[1] : '';
			if($(this).is(selector+':last-child')){
				$(this).addClass(lastChild);
			}
		}
	}
	return this.each(init);
};
$.fn.cssFirstChild = function () {
    //Fix for IE6
    // combined with the css-class e.g. 'selector: '.classname'; you can specify what object you wnat the last-child of.
	function init(){
		if (this.currentStyle['first-child']){
			var firstChild = this.currentStyle['first-child'].match(/^['"]?(.+?)["']?$/)[1];
			var selector = this.currentStyle['selector'] ? this.currentStyle['selector'].match(/^['"]?(.+?)["']?$/)[1] : '';
			if($(this).is(selector+':first-child')){
				$(this).addClass(firstChild);
			}
		}
	}
	return this.each(init);
};
$.fn.cssHover = function(){
	//Fix for IE6 to set hover behaviour on all elements
	function init(){
		if (this.currentStyle['hover']){
			var hover = this.currentStyle['hover'].match(/^['"]?(.*?)["']?$/)[1];
			$(this).mouseover(function(){
				$(this).addClass(hover);
			}).mouseout(function(){
				if (!$('.hover', this).length){
					setTimeout(function(){
						$('.'+hover).removeClass(hover);
						}, 2000);
				}
			});
		}
	}
	return this.each(init);
};
$.fn.simpleCycle = function(args, callback){
    var i = 0;
    function init(){
      var slideshow = jQuery.extend({
        duration : 4000,
        speed : 500,
        slides : $('>*', this),
        onmouseover : function(){
            clearInterval(this.sliding);
        },
        onmouseout : function(){
          this.startSlider();
        },
        init : function(){
            this.i=i+=1;
            $(this).css({
                'position' : 'relative',
                'height' : this.slides.first().height(),
                'width' : this.slides.first().width()
            });
            this.slides.css({
                'position' : 'absolute',
                'top' : '0px',
                'left' : '0px'
            }).hide();
            this.current = this.slides.first().show();
          this.startSlider();
        },
        slideNext : function(){
            var slideshow = this;
						var next = this.current.next().length ? this.current.next() : this.slides.first();
            if($.browser.msie&&$.browser.version<8){
                this.current = this.current.hide();//.prependTo(slideshow);
                this.current = next.show();
            } else {
            this.current.animate({'opacity':'toggle'},this.speed, function(){
                //$(this).prependTo($(slideshow));
            });
            this.current = next.animate({'opacity':'toggle'}, this.speed);
            }
        },
        startSlider : function(){
            window['slider'+this.i] = this;
            this.sliding = setInterval("window['slider"+this.i+"'].slideNext();", this.duration);
        }
    }, args);
		if($('>*', this).length<2){
		return;
		}
      $.extend(this,slideshow);
      if(callback){
        this.callback = callback;    
      }
      this.init();
    }
    return this.each(init);
}
$.fn.lightbox = function(args, callback){
	var obj;
	var lightbox = jQuery.extend({
		modal : false,
		DOMtarget : '.content-main',
		fadeout : $('#fadeout').length ? $('#fadeout') : $("<div id='fadeout'></div>"),
		lightbox : $('#lightbox').length ? $('#lightbox') : $("<div id='lightbox'></div>"),
		loader : $('#loader').length ? $('#loader') : $("<div id='loader'></div>"),
		closelink : true,
		stayinboxfor : false,
		leaveboxif: function(){
			return false;
		},
		refreshifresponse : function(){
			return false;
		},
		callback : typeof(callback) != 'undefined' ? callback : function(){ },
		initbox : function(e){
			obj = this;
			if(obj.leaveboxif()){
				return true;	
			}
			obj.loader.appendTo('body').css({top:$(window).scrollTop()+120+'px'});	
			obj.loadContent(function(){
				obj.showLightbox(function(){
					if(obj.stayinboxfor){
						$(obj.stayinboxfor, obj.lightbox).lightbox(args,callback);	
					}
					obj.loader.remove();
					obj.callback($(obj));
				});
				if(obj.closelink){
					obj.lightbox.prepend($("<a class='close' href='#'>"+libero.closeText+"</a>").click(function(){
						obj.closeLightbox();
						return false;
					}) );
				}
			return false;
			});
		},
		loadContent : function(fn){
			if ($(obj).is('[type=submit]')){
				var theform = $(obj).closest('form');
				var url = theform.attr('action');
				$.ajax({
					url : url,
					type : "POST",
					data : theform.serialize()+'&'+$(this).attr('name')+'='+$(this).attr('value'),
					success : function(data){
						if (data == "reload") {
								window.location.reload();
						} else {
							if (obj.refreshifresponse(data)){
									window.location.href = window.location.href;	
							} else {
								var newform = $('<form></form>')
									.attr('method', 'post')
									.attr('action', url)
									.append($('input[type=hidden]', data))
									.append($(obj.DOMtarget, data));
								obj.lightbox.html(newform);
								fn();
							}
						}
					}
				});
			} else {
				var url = $(this).attr('href').split('#');
				
				if (url[0].match(/^.*\.swf$/i)) { //Poiting out a swf
            var swf = $('<embed src="' + url[0] + '" width="100%" height="100%"></embed>');
            obj.lightbox.html(swf).addClass('swf');
            fn();
        } else if (url[0].match(/^.*\.(jpg|png|gif)$/i)) { // is target an image?
            var tmpimg = new Image();
						tmpimg.src = url[0]; 
						var imagewidth = tmpimg.width+50;
						if(imagewidth < 100){
							$(tmpimg).load(function(){
								imagewidth = $(this).appendTo('body').width()-0+50;
								obj.lightbox.html(this)
									.addClass('image')
									.css({'width': imagewidth+'px', 'margin-left':-1*(imagewidth/2)+'px'});
								fn();
							});
						} else {
							obj.lightbox.html(tmpimg)
								.addClass('image')
								.css({'width': imagewidth+'px', 'margin-left':-1*(imagewidth/2)+'px'});
							fn();
						}
						
				} else {  //or just plain ol html
					if (url[1]){
						obj.DOMtarget = '#'+url[1]; 
					}
					$.get(url[0], function(data){																		 
						/* if (obj.refreshifresponse(data)){
							window.location.href = window.location.href;	
						} else { */
							var targetcontent = $(obj.DOMtarget, data);
							if(targetcontent.is('a, button, input[type=submit],input[type=button]')){
								targetcontent.lightbox(args, callback).each(function(){
									this.initbox();
								});
							} else {
								var newform = $('<form></form>')
									.attr('method', 'post')
									.attr('action', url[0])
									.append($('input[type=hidden]', data))
									.append($(obj.DOMtarget, data));
								obj.lightbox.html(newform);
								fn();
							}
						//}		
					});
				}
			}
		},
		showLightbox : function(fn){
			obj.fadeout.show().click(function(){
				if(!obj.modal){
					obj.closeLightbox();
				}
			}).appendTo('body');
			if(!obj.lightbox.is(':visible')){
				obj.lightbox.css({top:$(window).scrollTop()+60+'px'});
			}
			obj.lightbox.appendTo('body').wrapInner('<div class="inner-wrapper"></div>').show();
			fn();
		}, 
		closeLightbox : function(){
			this.lightbox.fadeOut();
			this.fadeout.hide();
		}
	}, args);
	function init(){
		$.extend(this,lightbox);
		$(this).bind('click',function(){
				this.initbox();
				return false;
		});
	}
	return this.each(init);
};
$.fn.createTabs = function(tabselector, headerselector, args, callback){
	var opt = jQuery.extend({
		history : true
	}, args);
	function init(){
		if($(this).length){
			if( !$('body').is('[role]') ){ $('body').attr('role','application'); }
			var container = $(this).addClass('tabbed');
			var sections = $(tabselector, container);
			var tabbar = $('<ul class="tabs"></ul>').attr('role','tablist').insertBefore(sections.first());
			$(sections).each(function(){
				var tab = $('<li class="tab"></li>').attr('role','tab').attr('tabIndex', -1);
				var header = $(this).hide().find(headerselector).addClass('hidden').is('div')?$(this).find(headerselector+'>*:first'):$(this).find(headerselector);
				var tabid = $(this).attr('id') ? $(this).attr('id') : header.text().replace(/ /g, '_').replace(/å/g, 'aa').replace(/ä/g, 'ae').replace(/ö/g, 'oe').toLowerCase();
				var tabsection = $(this).attr('role','tabpanel').attr('aria-hidden', true).attr('aria-labelledby', tabid+'-tab');
				$('<a href="#'+tabid+'" tabindex="-1"></a>').text(header.text()).appendTo(tab.attr('id', tabid+'-tab'));
				if ($(this).is('.right')){
					tab.addClass('right');
				}
				tab.appendTo(tabbar).click(function(){
					$('div.tab.selected', tabsection.parent()).removeClass('selected').hide().attr('aria-hidden', true);
					$('.selected', tabbar).removeClass('selected');
					tab.addClass('selected').attr('tabIndex', '0');
					tabsection.addClass('selected').show().attr('aria-hidden', false);
					if (opt.history){
						window.location.href = window.location.href.split('#')[0]+'#tab-'+tabid;
					}
					return false;
				}).keydown(function(e){
					switch (e.keyCode){
					case 16: 
						$(this).keydown(function(e2){
							if (e2.keyCode == 9){
								$(this).attr('tabindex', -1).prev().attr('tabindex', 0);
							}
						});
						break;
					case 9: 
						if($('a,input,select, textarea, [tabindex]', tabsection).not('[tabindex=-1]').length){
							tabsection.focus();
						} else {
							$(this).attr('tabindex', -1).next().attr('tabindex', 0);
						}
						break;
					case 37:
						$(this).attr('tabindex', -1).prev().attr('tabindex', 0).focus();
						break;
					case 39:
						$(this).attr('tabindex', -1).next().attr('tabindex', 0).focus();
						break;
					case 40:
					case 9:
						if($('a,input,select, textarea, [tabindex]', tabsection).not('[tabindex=-1]').length){
							$('a,input,select, textarea, [tabindex]', tabsection).get(0).focus();
						}
						break;
					default:
					break;
					}
				}).focus(function(){
					$(this).trigger('click');
				});
			});
			$(window).bind("hashchange", function(e) {
				if (window.location.href.split('#').length>1 && window.location.href.split('#')[1].length && ($('#'+window.location.href.split('#')[1]).parents('.tab').length>0 || $('#'+window.location.href.split('#')[1]+'-tab').is('.tab') || $('#'+window.location.href.split('#tab-')[1]).parents('.tab').length>0 || $('#'+window.location.href.split('#tab-')[1]+'-tab').is('.tab'))){
					var id = window.location.href.split('#tab-')[1] ? window.location.href.split('#tab-')[1] : window.location.href.split('#')[1];
					if ($('#'+id, container).parents('.tab').length){
						$('#'+$('#'+id).closest('.tab').attr('aria-labelledby')).trigger('click');
					} else if ($('#'+id+'-tab', tabbar).is('.tab')){
						$('#'+id+'-tab.tab').trigger('click');
					} else {
						var history = opt.history; 
						opt.history = false;
						$('li:first',tabbar).trigger('click');
						opt.history = history;
					}
					$('#'+id).focus();
				} else {
					//never set hashtag on first load, it messes up history
					var history = opt.history; 
					opt.history = false;
					$('li:first',tabbar).trigger('click');
					opt.history = history;
				}
			}).trigger('hashchange');
		}
	}
	return this.each(init);
};
// Create Accordions out of a certain similar objects by selecting the container and the toggle handlers and the togglable area next-to it.
// Create Accordions out of a certain similar objects by selecting the container and the toggle handlers and the togglable area next-to it.
$.fn.createAccordion = function(togglerselector, targetselector, args){
	var opt = jQuery.extend({
		multiple : false,
		starthidden: true,
		slidespeed : 200,
		ignore : false
	}, args);
	$.fn.targetHide = function(spd){
	var speed = spd>-1?spd:opt.speed;
	 if($(this).is('tr')){
		$(this).attr('aria-hidden', true).addClass('hidden');
		return this;
	 } else {
		$(this).slideUp(speed, function(){
			$(this).attr('aria-hidden', true).addClass('hidden');
			return this;
		});
	 }
	};
	$.fn.targetShow = function(){
		if($(this).is('tr')){
			$(this).attr('aria-hidden', false).removeClass('hidden');
			return this;
		} else {
			$(this).attr('aria-hidden', false).removeClass('hidden').slideDown(opt.slidespeed);
			return this;
		}
	};
	if( !$('body').is('[role]') ){ $('body').attr('role','application'); }
	var accordion = $(this);
	$(togglerselector, accordion).attr('role','tab').attr('tabIndex', '0').click(function(event){
		if($(event.target).is(opt.ignore)){
			return false;
		}
		if($(this).is('.collapsed')){
			if (!opt.multiple){
				$(togglerselector+'.expanded', accordion).trigger('click');
			}
			$(this).removeClass('collapsed').addClass('expanded').next(targetselector).targetShow();
		} else {
			$(this).removeClass('expanded').addClass('collapsed').next(targetselector).targetHide();
		}
	}).keyup(function(e){
		if (e.keyCode == 13 || e.keyCode == 32){
			$(this).trigger('click');
		}
	}).each(function(){
		if(opt.starthidden && !($(this).is('.expanded') || opt.starthidden != 'all')){
			$(this).trigger('click');
		}
	});
	return this;
};
jQuery.fn.fixPagination = function(){
	function init(){
		if ($('a',this).length>5){
			var container = $(this);
			var list = $('a',container);
			var current = $('a.selected', container).length?$('a.selected', container):list[0].addClass('selected');
			var stepforward = $('<a href="#">...</a>').addClass('step').click(function(){
				var hiddennext = $('a.pagenumber:not(.hidden):last', container);
				if (hiddennext.next('a.pagenumber.hidden')){
					hiddennext = hiddennext.next('a.pagenumber.hidden');
				}
				filterlist(list, container, list.index(hiddennext));
				return false;
			});
			var stepbackward = $('<a href="#">...</a>').addClass('step').click(function(){
				var hiddenprev = $('a.pagenumber:not(.hidden):first', container);
				if (hiddenprev.prev('a.pagenumber.hidden')){
					hiddenprev = hiddenprev.prev('a.pagenumber.hidden');
				}
				filterlist(list, container, list.index(hiddenprev));
				return false;
			});
			filterlist(list, container, list.index(current));
		}
	
		function filterlist(list, container, curIndex){
			stepbackward.detach();
			stepforward.detach();
			list.each(function(i){
				$(this).addClass('hidden');
				if(curIndex<3){
					if (i<5){
						$(this).removeClass('hidden');
					}
				} else if(curIndex>list.length-3){
					if (i>list.length-5){
						$(this).removeClass('hidden');
					}
				} else {
					for (var j=0;j<5;j++){
						$(list[curIndex-2+j]).removeClass('hidden');
					}
				}
			});
			if(list.length>curIndex+3){			
				container.append(stepforward)
			}
			if(curIndex-2>0){
				container.prepend(stepbackward)
			}
		}
	}
	return this.each(init);
};
$.fn.createSlider = function(target){
function init(){
	function updatestate(){
		if(slider.css('margin-left').split('px')[0] == 0){
			prev.hide();
			next.show();
		} else if(slider.css('margin-left').split('px')[0]+slider.width() == 0){
			prev.show();
			next.hide();
		} else {
			prev.show();
			next.show();
		}
	} 
	var slider = $(this);
	var width = slider.width();
	var sections = $(target, slider).css({'width': width+'px', 'float':'left'});
	slider.width(width*sections.length);
	var next = $('<a style="float:left;" href="#">Next</a>').click(function(){
		slider.css('margin-left', parseFloat(slider.css('margin-left').split('px')[0])-width+'px');
		updatestate();
		return false;
	}).insertAfter(slider);
	var prev = $('<a style="float:left; clear:left;" href="#">Prev</a>').click(function(){
		slider.css('margin-left', parseFloat(slider.css('margin-left').split('px')[0])+width+'px');
		updatestate();
		return false;
	}).insertAfter(slider);
	for (var i = 0, l = sections.lenght; i<l;i++){
		
	}
	updatestate();
}
return this.each(init);
};
function getUrlVars()
{
		var vars = [], hash;
		var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
		for(var i = 0; i < hashes.length; i++)
		{
				hash = hashes[i].split('=');
				vars.push(hash[0]);
				vars[hash[0]] = hash[1];
		}
		return vars;
}
$.fn.initscripts = function(){
	var container = this;
	if ($.browser.msie&&$.browser.version<9){
		$('th', container).cssLastChild();
		$('*:not(textarea):not(button):not(input):not(select)', container).cssBorderRadius();
	}
	if ($.browser.msie&&$.browser.version<8){
		$('#nav li.Club a', container).cssAfter();
		$('#nav .second-level li, #nav .second-level li ul', container).cssHover();
	}
	if ($.browser.msie&&$.browser.version<7){
		$('.tertiary > div,.secondary > div', container).cssFirstChild();
	}
	$('.section.tab', container).parent().not('.tabbed').createTabs('.section.tab','>.header');
	$('.accordions .section', container).createAccordion('.header', '.content');
	$('.slides').createSlider('.section');
	$('#header a.login, a#btnLoginTop, .button a.login, a.lightbox', container).lightbox({'stayinboxfor':':submit', 'refreshifresponse': function(respons){
			if($('.errormsg, .successmsg, .inlightbox', respons).length){
				return false;
			} else {
				return true;
			}
		}
	}, function(){
		$('#lightbox').initscripts();
	});
	$('.content-main .products .prodgroup > ul > li > a', container).lightbox({'DOMtarget': '.content-wrapper'}, function(link){
		var lightbox = $('#lightbox').addClass('product');
		if (link.parent('li').prev('li').length){
			var prev = link.parent('li').prev('li');
			var prevlink = $('<a></a>').addClass('prev').attr('href', prev.find('a').attr('href')).text(prev.find('a p').text());
			lightbox.append(prevlink);
			prevlink.click(function(){
				prev.find('a').trigger('click');
				return false;
			});
		}
		if (link.parent('li').next('li').length){
			var next = link.parent('li').next('li');
			var nextlink = $('<a></a>').addClass('next').attr('href', next.find('a').attr('href')).text(next.find('a p').text());
			lightbox.append(nextlink);
			nextlink.click(function(){
				next.find('a').trigger('click');
				return false;
			});
		}
		$('#lightbox').initscripts();
	});
	$('textarea[maxlength],textarea[data-maxlength]', container).each(function(){
		var maxlength = $(this).attr('maxlength')?$(this).attr('maxlength') : $(this).attr('data-maxlength');
		var counter = $('<div class="counter" />')
		.html('('+maxlength+')')
		.insertAfter($(this));
		$(this).bind('focus change keyup click', function(e){
				if(this.value.length>maxlength){
						e.preventDefault();
						$(this).val($(this).val().substr(0, maxlength));
						return false;
				} else {
						counter.html('('+(maxlength-this.value.length)+')');
				}
		});
	}).trigger('change');
	$('.slideshow', container).simpleCycle({'duration': 8000});
	
	$('.paging-nav div', container).fixPagination();
};
$(document).ready(function(){
	$(this).initscripts();
	//autoclick link by ?target=page-id parameter
	if(getUrlVars()['target']){
		$('a[href$=id='+getUrlVars()['target']+']').focus().trigger('click').each(function(){
			$(window).scrollTop($(this).offset().top)
		});
	}
});
})(jQuery);

