// RollOver images
// * This control rollover images preloads them and set the behavior
// * For the behavior to work you need to to do 3 things
// * Place the 2 images in the buttons folder and name them [name]_over and [name]_out fx: button_over.gif and button_out.gif
// * Add the images to the images array using addButtonImages(name) function and only pass the name
// * Add onmouseover="linkBehavior(this, 'over')" onmouseout="linkBehavior(this, 'out')" to the the desired tag
//-------------------------------------
var buttonImages_array = [];
function addButtonImages(name) {
	buttonImages_array.unshift({});
	buttonImages_array[0].name = name;
	buttonImages_array[0].over = new Image;
	buttonImages_array[0].out = new Image;
}
//*************************************
// ADD IMAGES HERE
//*************************************
addButtonImages("topSearchInput");
addButtonImages("topSearchButton");
addButtonImages("denStoreDanskeSoegBtn");
addButtonImages("smallSearchButton");
addButtonImages("layoutList");
addButtonImages("layoutGallery");
addButtonImages("pageForw");
addButtonImages("pageBack");
addButtonImages("grayButton_left");
addButtonImages("grayButton_right");
addButtonImages("orangeButton_left");
addButtonImages("orangeButton_right");
addButtonImages("article_left");
addButtonImages("article_right");
addButtonImages("debate_left");
addButtonImages("debate_right");
addButtonImages("debate_left");
addButtonImages("debate_right");
addButtonImages("share");
addButtonImages("send");
addButtonImages("layoutList");
addButtonImages("layoutGallery");
addButtonImages("xButton");
//-------------------------------------
// linkBehavior set defferents states
//-------------------------------------
var DocumentReady = false;
function getImage(src, state) {
	var src_str = src.toString();
	var returnSrc = src;
	src_str = src_str.substring(src_str.lastIndexOf("/") + 1, src_str.lastIndexOf("_"));
	for (var i = 0; i < buttonImages_array.length; i++) {
		if (src_str == buttonImages_array[i].name) {
			returnSrc = buttonImages_array[i][state].src;
		}
	}
	return returnSrc;
}
function imgBehavior(imgObj, state) {
	if (DocumentReady && $(imgObj).length > 0) {
		var $img = $(imgObj);
		var newImageSrc = getImage($img.attr("src"), state);
		$img.attr("src", newImageSrc);
	}
}
function linkBehavior(linkObj, state) {
	if (DocumentReady && $(linkObj).length > 0) {
		var $img = $("img", linkObj);
		var newImageSrc = getImage($img.attr("src"), state);
		$img.attr("src", newImageSrc);
	}
}
//-------------------------------------
// Preload all images
//-------------------------------------

function preloadImages() {
	if (document.images) {
		for (var i = 0; i < buttonImages_array.length; i++) {
			buttonImages_array[i].over.src = pathPrefix + "images/buttons/" + buttonImages_array[i].name + "_over.gif";
			buttonImages_array[i].out.src = pathPrefix + "images/buttons/" + buttonImages_array[i].name + "_out.gif";
		}
	}
}
//-------------------------------------
// Rating
//-------------------------------------

function ratingClick(aObj, nr, type, id) {
	var cookieVal = $.cookie("GyldendalRating");
	cookieVal = (cookieVal != null) ? cookieVal : "";
	var RegExEmail = new RegExp(id);
	if (RegExEmail.test(cookieVal)) {
		return
	}
	var $A = $(aObj);
	var $LI = $A.parent("li");
	var $UL = $LI.parent("ul");
	$UL.attr("class", "rating star" + nr);
	var $FeedBack = $LI.siblings("li.indicator").children("a");
	$FeedBack.css("background", "url('/images/graphic/ajax-loader.gif')");
	$FeedBack.css("visibility", "visible");
	var $Counter = $LI.siblings("li:last").children("span");
	$Counter.css("left", "95px");
	function ratingSuccess(returnData) {
		if (returnData.success == "True") {
			$FeedBack.css("background", "url('/images/graphic/ratingSucces.gif')");
			$FeedBack.attr("title", "Det nye gennemsnit er " + returnData.rating + " baseret på " + returnData.count + " stemmer");
			$UL.attr("class", "rating star" + returnData.rating);
			$Counter.text("(" + returnData.count + ")");
			var date = new Date();
			date.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000));
			$.cookie("GyldendalRating", cookieVal + "&" + id, {
				path: '/',
				expires: date
			});
		} else {
			$FeedBack.css("background", "url('/images/graphic/ratingError.gif')");
			$FeedBack.attr("title", returnData.message);
		}
	}
	$.getJSON(URL + '/layouts/ajax/rateitem.ashx?item=' + type + '&id=' + id + '&rate=' + nr + '&jsoncallback=?', ratingSuccess);
}
//-------------------------------------
// tabsInit
//-------------------------------------

function tabsInit() {
	var qs = $.getQueryString({
		ID: "tab"
	})
	var tabSelect = 0;
	//qs = (qs == "undefined") ? getHash() : qs;
	if (typeof qs != "undefined" && typeof qs != "undefined") {
		$("ul.ui-tabs-nav a").each(function (index) {
			if ($(this).attr("href").indexOf(qs) > -1) {
				tabSelect = index;
			}
		});
	} else {
		$("ul.ui-tabs-nav a").each(function (index) {
			if ($(this).text().indexOf("(0)") < 0) {
				tabSelect = index;
				return false;
			}
		});
	}
	$("div.ui-tabs").tabs({
		fx: {
			opacity: 'toggle',
			duration: 'fast'
		},
		selected: tabSelect
	});
	$("ul.ui-tabs-nav li:last").addClass("last");
	$('div.ui-tabs').css("visibility", "visible");
}
//-------------------------------------
// sliderInit
//-------------------------------------

function sliderInit($Element) {
	var $Sliders = ($Element) ? $Element : $(".ui-slider");
	$Sliders.each(function () {
		var $Slider = $(this),
			ul = $Slider.children().children("ul"),
			noMargin = $Slider.is(".no-margin") || false,
			containerWidth = ($Slider.children(".ui-slider-list").width() > 0) ? $Slider.children(".ui-slider-list").outerWidth() : 926,
			BoxWidth = (Number(ul.children("li").width()) > 0) ? ul.children("li").width() : 180,
			boxShowNumber = (containerWidth * 0.5 > BoxWidth) ? Math.floor(containerWidth / BoxWidth) : 1,
			
			BoxMarginWidth = (boxShowNumber > 1)  ? Math.ceil((containerWidth - (boxShowNumber * BoxWidth))) / (boxShowNumber + (noMargin ? -1 : 1)) : 0,
			
			TotalBoxes = ul.children("li").length,
			TotalBoxesWidth = (BoxWidth + BoxMarginWidth) * TotalBoxes,
			moveWidth = (BoxWidth + BoxMarginWidth) * boxShowNumber,
			page = 0,
			TotalPages = Math.ceil(TotalBoxes / boxShowNumber),
			navDiv, navUl, i, navLiA, aniTime, movToX, forw_btn, prev_btn, timer,
			
			pageTo = function(newPage) {
				navUl.children('li:eq(' + page + ')').children().children().removeClass("ui-slider-nav-selected")
				if (newPage >= TotalPages) {
					page = newPage % TotalPages;
				} else if (0 > newPage) {
					page = newPage + TotalPages;
				} else {
					page = newPage
				}
				navUl.children('li:eq(' + page + ')').children().children().addClass("ui-slider-nav-selected");
				var movToX = -moveWidth * page
				ul.stop(true,true).animate({
					'left': movToX
				}, aniTime);
				navUl.children('li:eq(' + page + ')')
			},
			nextPage = function() {
				pageTo(page + 1)
			};
			
		
		ul.css("width", TotalBoxesWidth + "px"),
		ul.children("li").css(noMargin ? "margin-right" : "margin-left", BoxMarginWidth + "px")
		
		if (TotalPages > 1){ 
			//////////////////////
			navDiv = $(this).append('<div class="ui-slider-nav"><ul></ul></div>').children("div.ui-slider-nav")
			navUl = navDiv.children("ul")
			for (i = 0; i < TotalPages; i++) {
				if (i == page) {
					navLiA = $('<li><a href="javascript:void(0)"><span class="ui-slider-nav-selected"></span></a></li>').appendTo(navUl)
				} else {
					navLiA = $('<li><a href="javascript:void(0)"><span></span></a></li>').appendTo(navUl)
				}
				navLiA.attr("navid", i);
				navLiA.bind("click", function (e) {
					pageTo(parseInt($(this).attr("navid")));
				});
			}
			$("span", navDiv).pngfix();
			navDiv.css("margin-left", (-TotalPages * navUl.children("li").width() / 2) + "px");
			//////////////////////
			aniTime = (boxShowNumber == 1) ? 1000 : "slow";
			
			
			forw_btn = $(this).append('<a class="ui-slider-forw-btn" href="javascript:void(0)"><span></span></a>').children("a.ui-slider-forw-btn")
			prev_btn = $(this).append('<a class="ui-slider-prev-btn" href="javascript:void(0)"><span></span></a>').children("a.ui-slider-prev-btn")
			
			forw_btn.bind('click', function () {
				clearInterval(timer)
				pageTo(page + 1)
			}).pngfix();
			prev_btn.bind('click', function () {
				clearInterval(timer)
				pageTo(page - 1)
			}).pngfix();
			
			
			
			timer = 0;
			
			if (boxShowNumber == 1 || $Slider.is(".autoplay")) {
				timer = setInterval(nextPage, 8000);
			}
		}
	
	}).css("visibility", "visible");
}
//*************************************
//-------------------------------------
// setGalleryList
//-------------------------------------

function faderInit() {
	$(".ui-fader").map(function () {
		var $GalleryBox = $(this);
		var $FaderList = $(".ui-fader-list", $GalleryBox);
		var $Pages = $("ul > li", $FaderList);
		var TotalPages = $Pages.length;
		//////////////////////
		var $GalleryPaging = $('<div class="ui-fader-nav"><ul></ul></div>').appendTo($GalleryBox);
		var $GalleryPagingList = $GalleryPaging.children("ul")
		var page = 0;
		//////////////////////
		var aniTime = "slow";
		function pageTo(newPage) {
			if (newPage != page) {
				$("li:eq(" + page + ") a span", $GalleryPagingList).removeClass("ui-fader-nav-selected");
				if (newPage > TotalPages - 1) {
					page = newPage % TotalPages;
				} else if (0 > newPage) {
					page = newPage + TotalPages;
				} else {
					page = newPage;
				}
				$("li:eq(" + page + ") a span", $GalleryPagingList).addClass("ui-fader-nav-selected");
				showPage(page);
			}
		}

		//////////////////////
		var $ActiveLi = $Pages.eq(page);
		var $OldLi = null;
		var $Caption = $(".ui-fader-caption", $GalleryBox);
		function showPage(newPage) {
			$OldLi = $ActiveLi;
			$ActiveLi = $Pages.eq(newPage);
			if ($OldLi == null) {
				$ActiveLi.show();
			} else {
				$Pages.not($OldLi).css("z-index", "50").hide();
				$OldLi.css("z-index", "60");
				$ActiveLi.css("z-index", "65");
				$ActiveLi.fadeIn("slow");
			}
		}
		if (TotalPages > 1) {
			for (var i = 0; i < TotalPages; i++) {
				var $PageA;
				var pageNr = (i + 1);
				$PageA = $('<li><a href="javascript:void(0)"><span></span></a></li>').appendTo($GalleryPagingList);
				$PageA.attr("navid", i);
				$PageA.click(function (e) {
					stopLoop()
					pageTo(parseInt($(this).attr("navid")));
				});
			}
			$("li:eq(" + page + ") a span", $GalleryPagingList).addClass("ui-fader-nav-selected");
		}
		$("span", $GalleryPagingList).pngfix();
		$GalleryPaging.css("margin-left", (-$GalleryPagingList.width() / 2) + "px");
		//////////////////////
		$ActiveLi.css("z-index", "65").show();
		//////////////////////
		var $Forw_btn = $('<a class="ui-fader-forw-btn" href="javascript:void(0)"><span></span></a>').appendTo($GalleryBox);
		var $Prev_btn = $('<a class="ui-fader-prev-btn" href="javascript:void(0)"><span></span></a>').appendTo($GalleryBox);
		$Forw_btn.pngfix();
		$Prev_btn.pngfix();
		$Forw_btn.bind('click', function () {
			stopLoop()
			pageTo(page + 1)
		});
		$Prev_btn.bind('click', function () {
			stopLoop()
			pageTo(page - 1)
		});
		//////////////////////

		function nextPage() {
			pageTo(page + 1)
		}
		var timer = 0;
		function playLoop() {
			timer = setInterval(nextPage, 8000);
		}
		function stopLoop() {
			clearInterval(timer);
		}
		
		
		
		var maxHeight = 0;
		$Pages.find("img").load(function(event){
			maxHeight = Math.max(maxHeight, $(this).height());
			$FaderList.css("height", maxHeight);
			$Pages.css("height", maxHeight);
		}).map(function(){
			maxHeight = Math.max(maxHeight, $(this).height());
		});
		$FaderList.css("height", maxHeight);
		$Pages.css("height", maxHeight);
		playLoop();
	});
}
//-------------------------------------
// mainMenu
//-------------------------------------
var mainMenuItem = 0;
var mainMenuID = "";
var mainMenuDropDown = 0;
function mainMenuInit() {
	$('#headerMenu').each(function () {
		var $headerMenu = $(this),
			$headerMenuDropDownContainer = $('#headerMenuDropDownContainer'),
			$MenuUl = $headerMenu.find('> ul'),
			topListLength = $headerMenu.find('> ul > li').length,
			$lastLi = $headerMenu.find('> ul > li:last'),
			margin = 21,
			padding = Math.floor((926 - $MenuUl.outerWidth(true) - margin*2) / (topListLength-1)),
			leftPadding = Math.floor(padding / 2),
			rightPadding = padding-leftPadding,
			$menuDropDownCurtain = $headerMenuDropDownContainer.find('> div.dropDownCurtain'),
			$sublevelUl = $headerMenu.find('ul > li > ul'),
			$A = $headerMenu.find('> ul > li > a'),
			top, restPadding, firstPadding, lastPadding;
		
		$A.not(":last, :first").css({
			"padding-left": leftPadding + "px", 
			"padding-right": rightPadding + "px"
		})
		
		
		
		
		restPadding = 926-margin*2-$MenuUl.outerWidth(true);
		firstPadding = Math.floor(restPadding / 2);
		lastPadding = restPadding-firstPadding;
		
		$A.first().css({
			"padding-left": margin + "px", 
			"padding-right": firstPadding + "px"
		})
		
		$A.last().css({
			"padding-left": lastPadding + "px", 
			"padding-right": margin + "px"
		})
		
		
		
		
		
		$headerMenuDropDownContainer.css('display', 'block');
		$sublevelUl.each(function (ulIndex) {
			var $menuContainer = $menuDropDownCurtain.clone(),
				ul_array = [],
				$listContainer = $menuContainer.children().children(),
				listTotalLength = $(this).children("li").length,
				columnLength = Math.ceil(listTotalLength / 4),
				col = 0,
				u = 0;
			
			
			
			
			
			for (u = 0; u < 4; u++) ul_array.unshift($("<ul />").prependTo($listContainer));
			
			$(this).children("li").each(function (liIndex) {
				var ll = liIndex + 1,
					lm = ll % columnLength;
					
				$(ul_array[col]).append($(this));
				if (lm === 0) {
					col++
				}
			});
			
			$(this).siblings("a")
				.attr("menuid", "menuContainer_" + ulIndex)
				.bind('mouseover', mainMenuOpen_timer)
				.bind('mouseout', mainMenuClose_timer);
				
			top = -$menuContainer.outerHeight() - 10 + "px"
			$menuContainer
				.attr("id", "menuContainer_" + ulIndex)
				.attr("menuid", "menuContainer_" + ulIndex)
				.bind('mouseover', mainMenu_open)
				.bind('mouseout', mainMenuClose_timer)
				.css({'top': top, 'visibility': 'hidden'});
			
			$headerMenuDropDownContainer.append($menuContainer);
			
			$(this).remove()
		});
		$menuDropDownCurtain.remove();
		$headerMenuDropDownContainer.css('visibility', 'hidden')
	
	}).css("visibility", "visible");
}
function mainMenu_open() {
	mainMenuOpenTimeout_clear()
	mainMenuCloseTimeout_clear()
	//
	if (mainMenuID != $(this).attr("menuid")) {
		mainMenu_close();
		//
		mainMenuID = $(this).attr("menuid");
		mainMenuItem = $("#" + mainMenuID);
		mainMenuItem.css('visibility', 'visible');
		mainMenuItem.animate({
			'top': 0
		}, 'fast');
	}
	$("#headerMenuDropDownContainer").css('visibility', 'visible');
}
function mainMenu_close() {
	if (mainMenuItem != 0) {
		mainMenuItem.css('visibility', 'hidden');
		var top = -mainMenuItem.outerHeight() - 10 + "px";
		mainMenuItem.css('top', top);
		mainMenuItem = 0;
		mainMenuID = "";
	}
	$("#headerMenuDropDownContainer").css('visibility', 'hidden');
}
var mainMenuOpenTime = 400;
var mainMenuCloseTime = 800;
var mainMenuOpenTimeout = 0;
var mainMenuCloseTimeout = 0;
function mainMenuOpen_timer() {
	var thisItem = this;
	mainMenuOpenTimeout_clear()
	mainMenuCloseTimeout_clear()
	mainMenuOpenTimeout = window.setTimeout(function () {
		mainMenu_open.call(thisItem)
	}, mainMenuOpenTime);
}
function mainMenuClose_timer() {
	mainMenuOpenTimeout_clear()
	mainMenuCloseTimeout_clear()
	mainMenuCloseTimeout = window.setTimeout(mainMenu_close, mainMenuCloseTime);
}
function mainMenuCloseTimeout_clear() {
	if (mainMenuCloseTimeout) {
		window.clearTimeout(mainMenuCloseTimeout);
		mainMenuCloseTimeout = null;
	}
}
function mainMenuOpenTimeout_clear() {
	if (mainMenuOpenTimeout) {
		window.clearTimeout(mainMenuOpenTimeout);
		mainMenuOpenTimeout = null;
	}
}
//-------------------------------------
// Light box
//-------------------------------------
var $activeBox = null;
function displayLightBox(id) {
	var $body = $("#container").parent()
	if ($activeBox == null) {
		var $overlay = $body.append("<div class='blackOverlay'></div>").children(".blackOverlay")
		$overlay.click(function () {
			closeLightBox()
		});
	}
	var $box = $(id)
	if ($activeBox != null) {
		$activeBox.attr("class", "lightBoxContainer_hidden");
	}
	$activeBox = $box;
	$box.attr("class", "lightBoxContainer");
	$body.append($box)
	if ($.browser.msie && Number($.browser.version.charAt(0)) < 7) {
		$("#container").css("height", "100%");
		$("#container").css("overflow-y", "hidden");
		$("html").css("overflow-y", "hidden");
		$(".lightBoxContainer").css("position", "absolute");
		$(".blackOverlay").css("position", "absolute");
		$("select").hide();
	}
}
function closeLightBox() {
	var $overlay = $(".blackOverlay");
	$overlay.remove();
	var $box = $(".lightBoxContainer");
	$box.find("input").val("");
	$box.find("input").blur();
	$box.attr("class", "lightBoxContainer_hidden");
	$activeBox = null;
	if ($.browser.msie && Number($.browser.version.charAt(0)) < 7) {
		$("#container").css("height", "auto");
		$("#container").css("overflow-y", "visible");
		$("select").show()
		$("html").css("overflow-y", "auto");
	}
}
//-------------------------------------
// setBookBoxBehaviour
//-------------------------------------
function setBookBoxBehaviour() {
	var $bookBox = $(".bookBox");
	$bookBox.click(function () {
	    if ($bookBox.hasClass("external"))
	    {
		    window.open = $("a", this).attr("href");
		}
		else
		{
		    window.location = $("a", this).attr("href");
		}
	});
	$bookBox.hover(function () {
		$(this).css("background-color", "#fffaf2");
		$(".title, .author", this).css("color", "#ffb107");
	}, function () {
		$(this).css("background-color", "#fff");
		$(".title, .author", this).css("color", "");
	});
	var $listItem = $(".contentBooks .listTable tr.listItem");
	$listItem.click(function () {
		
	    if ($listItem.hasClass("external"))
	    {
		    window.open = $("td.leftBorder a", this).attr("href");
		} 
		else 
		{
		    window.location = $("td.leftBorder a", this).attr("href");
		}
	});
	$listItem.hover(function () {
		$(this).addClass("over")
	}, function () {
		$(this).removeClass("over")
	});
	$(".bookBox img").each(function () {
		setMouseOverBox($(this), $(this).parents(".bookBox").children(".bookOverBox"));
	});
	$("span.bookImg img").each(function () {
		setMouseOverBox($(this), $(this).parent().parent().prev().children(), "bookOver");
	});
	var $sidebarList = $(".sidebarList li");
	$sidebarList.click(function () {
	    if ($sidebarList.hasClass("external"))
	    {
		    window.open = $("a", this).attr("href");
		} 
		else 
		{
		    window.location = $("a", this).attr("href");
		}
	});
	$sidebarList.hover(function () {
		$(this).css("background-color", "#fffaf2");
		$(".title, .author", this).css("color", "#ffb107");
	}, function () {
		$(this).css("background", "none");
		$(".title, .author", this).css("color", "");
	});
}
//-------------------------------------
// setAuthorBoxBehaviour
//-------------------------------------

function setAuthorBoxBehaviour() {
	var $authorBox = $(".authorBox");
	$authorBox.click(function () {
		window.location = $("a", this).attr("href");
	});
	$authorBox.hover(function () {
		$(this).css("background-color", "#fffaf2");
		$(".authorBoxText", this).css("color", "#ffb107");
	}, function () {
		$(this).css("background", "none");
		$(".authorBoxText", this).css("color", "");
	});
	var $listItem = $(".contentAuthors .listTable tr.listItem");
	$listItem.click(function () {
		window.location = $("td.leftBorder > a", this).attr("href");
	});
	$listItem.hover(function () {
		$(this).addClass("over")
	}, function () {
		$(this).removeClass("over")
	});
	$(".authorBox .authorBoxImg img").each(function () {
		setMouseOverBox($(this), $(this).parent().parent().parent().next());
	});
	$("span.authorImg img").each(function () {
		setMouseOverBox($(this), $(this).parent().parent().prev().children(), "authorOver");
	});
}
//-------------------------------------
// setArticleBoxBehaviour
//-------------------------------------

function setArticleBoxBehaviour() {
	var $articleBox = $(".articleBox");
	$articleBox.click(function () {
		window.location = $("a", this).attr("href");
	});
	$articleBox.hover(function () {
		$(this).css("background-color", "#fffaf2");
		$(".articleBoxHeading, .articleBoxText", this).css("color", "#ffb107");
	}, function () {
		$(this).css("background", "none");
		$(".articleBoxHeading, .articleBoxText", this).css("color", "");
	});
	var $listItem = $(".contentArticles .listTable tr.listItem");
	$listItem.click(function () {
		window.location = $("td.leftBorder a", this).attr("href");
	});
	$listItem.hover(function () {
		$(this).addClass("over")
	}, function () {
		$(this).removeClass("over")
	});
}



//-------------------------------------
// setArticleBoxBehaviour
//-------------------------------------


function setVideoBoxBehaviour() {
	var $videoBox = $(".videoBox");


	$videoBox.click(function () {
		window.location = $("a", this).attr("href");
	});
	$videoBox.hover(function () {

		$(this).addClass("over")
	}, function () {
		$(this).removeClass("over")
	});
	var $videoListItem = $(".contentVideo .listTable td.leftBorder, .contentVideo .listTable td.videoText");
	$("a", $videoListItem).click(function(event){

		var $TvPlayer = $('.tvPlayer:first')
		
		if($TvPlayer.length){

			var query = $.unparam($(this).attr("href").split("?")[1])
			$('.tvPlayer:first').trigger("playPhoto", [query.photo_id, 1])[0].scrollIntoView();
			event.stopPropagation();
			return false;
		}
	});
	$videoListItem.click(function () {
		$("a", this).click();
	}).mouseover(function () {
		$(this).parent().addClass("over") 
	}).mouseout(function () {
		$(this).parent().removeClass("over")
	});

	$(".contentPlaylist a.minaturButton, .contentPlaylist a.playlistLink").click(function(event){		
		var $TvPlayer = $('.tvPlayer:first');
		
		if($TvPlayer.length){
			var query = $.unparam($(this).attr("href").split("?")[1])
			$('.tvPlayer:first').trigger("playAlbum", [query.album_id, query.photo_id, 1])[0].scrollIntoView();
			event.stopPropagation();
			return false;		
		}
	});
	
	$(".contentPlaylist ul").hide();
	$(".contentPlaylist a.videoButton").click(function(event){
		$(this).parent().find("ul").toggle();
		return false;
	});
	
	$('#videos, #playlists').listPager({
		pageSize:4,
		itemSelector:"tr.listItem",
		navSelector: "div.listPaging"
	});
	
}


//*************************************
// setFlashbox
//-------------------------------------




function initTvPlayer() {
	var PLAYLIST_PATH = (isLocal) ?  "http://gyldendal.test/layouts/ajax/getmedia.ashx" : "/layouts/ajax/getmedia.ashx";
	var VIDEO_PATH = (isLocal) ? "http://gyldendal.test/layouts/ajax/getmedia.ashx" : "/layouts/ajax/getmedia.ashx";
	
	$('.tvPlayer').map(function(){
		var $TvPlayer = $(this);
		
		$TvPlayer.bind("playPhoto", function(event, photo_id, autoplay){
			var $Player = $(".player", this);
			var $Playlist = $(".playlist", this);
			

			$(this).show();
			$.flash.expressInstaller = URL + 'includes/flash/expressInstall.swf';
			if ($(this).data("photo_id") != photo_id) {
				ajax_send(this, VIDEO_PATH, {t:"video", id:photo_id}, function(data){
					var flashVars = {
							photo_id: data.videos[0].id,
							token: data.videos[0].token,
							autoPlay: autoplay
						}
					$(this).data("photo_id", photo_id);
					setSharingUrl({"photo_id": photo_id}, flashVars);

					loadFlash(
						data.videos[0].videoname,
						data.videos[0].longdescription,
						data.videos[0].urls, flashVars);
				});
			} else {
					playFlash($TvPlayer.data("PlayerID"))
			}
			$Playlist.remove();
			
		});
		
		$TvPlayer.bind("playAlbum", function(event, album_id, photo_id, autoplay){

			var $Player = $(".player", this);
			var $Playlist = $(".playlist", this);
			var i = 0;
			$.flash.expressInstaller = URL + 'includes/flash/expressInstall.swf';
			$(this).show();
			ajax_send(this, PLAYLIST_PATH, {t:"playlist", id:album_id}, function(data){

				var shareObj = {};
				var activeVideo = 0;
				if(photo_id){
					shareObj["photo_id"] = photo_id;
									
					for(i=0; i<data.videoplaylists[0].videos.length; i++){
						if(data.videoplaylists[0].videos[i].id == photo_id){
							activeVideo = i;
						}						
					}
				}
				if(album_id) {
					shareObj["album_id"] = album_id;
				}
				var activeVideo_id = data.videoplaylists[0].videos[activeVideo].id;
				var flashVars = {
							photo_id: activeVideo_id,
							token: data.videoplaylists[0].videos[activeVideo].token,
							autoPlay: autoplay
						}
				if($(this).data("photo_id") != activeVideo_id){
					$(this).data("photo_id", activeVideo_id)
					loadFlash(
						data.videoplaylists[0].videos[activeVideo].videoname,
						data.videoplaylists[0].videos[activeVideo].longdescription,
						data.videoplaylists[0].videos[activeVideo].urls,
						flashVars);
				} else {
					playFlash($TvPlayer.data("PlayerID"))
				}
				if(album_id != $(this).data("album_id")){
					
					$(this).data("album_id", album_id)
					$Playlist.remove();
					var liString = "";

					for(i=0; i<data.videoplaylists[0].videos.length; i++){
						liString += '<li><div class="videoBox" id="photo_'+data.videoplaylists[0].videos[i].id+'">';
						liString += '<a href="' + window.location.href.split("?")[0] + '?album_id=' + album_id + '&photo_id=' + data.videoplaylists[0].videos[i].id + '">';
						liString += '<div class="videoBoxImg"> <img src="' + data.videoplaylists[0].videos[i].thumbnail + '" width="160" height="90" /> <span class="play">&nbsp;</span> </div>';
						liString += '<div class="title">' + data.videoplaylists[0].videos[i].videoname + '</div></a>';
						liString += '<div class="videoBoxCornerTL">&nbsp;</div><div class="videoBoxCornerTR">&nbsp;</div><div class="videoBoxCornerBL">&nbsp;</div><div class="videoBoxCornerBR">&nbsp;</div></div></li>';
					}
					$Playlist = $('<div class="ui-slider playlist"><div class="ui-slider-list"><ul class="floatContainer">' + liString + '</ul></div></div>');
					
					/*Tema tjek - if it's placed inside a placeholder - add no margin class*/
					if($(this).parent().hasClass("placeholder")){
						$Playlist = $('<div class="ui-slider no-margin playlist"><div class="ui-slider-list"><ul class="floatContainer">' + liString + '</ul></div></div>');
					}

					$(this).append($Playlist);
					$(".videoBox", $Playlist).hover(function () {
						$(this).addClass("over")
					}, function () {
						$(this).removeClass("over")
					});
					
					
					$("a", $Playlist).click(function(event){		
						var query = $.unparam($(this).attr("href").split("?")[1])
						$TvPlayer.trigger("playAlbum", [query.album_id, query.photo_id, 1])[0].scrollIntoView();
						event.stopPropagation();						
						return false;
					});
					sliderInit($Playlist);
					
				} else {
					$(".active", $Playlist).removeClass("active");
					$("#photo_"+activeVideo_id, $Playlist).addClass("active");				
				}

				setSharingUrl(shareObj, flashVars);
			});
		});
		
		function loadFlash(name, desc, urls, vars){
		

			$(".greyHeader .videoIcon", $TvPlayer).text(name);
			var descString = '<div class="caption">'+desc+'</div>'
			if(urls.length > 0){
				var trans = {author:"Se forfatter", book:"Se bog", article:"Læs artikel"};
				descString += '<a href="' + urls[0].link + '" title="' + urls[0].name + '" class="grayButton"><span>' + trans[urls[0].type] + '</span></a>'; 
			}
			$(".description", $TvPlayer).html(descString);

			var PlayerID = "swfplayer_" + Math.floor(Math.random() * 999999);
			
			if($("#mainContent").hasClass("tema")){
				$(".player", $TvPlayer).flash({
					swf: 								'http://gyldendaltv.23video.com/4176888.swf',
					height:						 	232,//327,
					width: 							413,
					id: 								PlayerID,
					bgcolor: '#2B3132', 
					allowscriptaccess:'always', 
					allowfullscreen:'true',
					flashvars:vars
				}).attr("name", PlayerID);
			}else {
				$(".player", $TvPlayer).flash({
					swf: 								'http://gyldendaltv.23video.com/883559.swf',
					height:						 	327,
					width: 							582,
					id: 								PlayerID,
					allowscriptaccess:'always', 
					allowfullscreen:'true',
					flashvars:vars
				}).attr("name", PlayerID);
			}
			$TvPlayer.data("PlayerID", PlayerID);
		}
		
		
		var titleArr = $TvPlayer.attr("title").split("=")
		var qs = ($TvPlayer.hasClass("single")) ? $.getAllQueryStrings() : {};

		if(typeof qs["album_id"] != "undefined"){			
			$TvPlayer.trigger("playAlbum", [qs["album_id"], (typeof qs["photo_id"] != "undefined") ? qs["photo_id"] : null, 0])		
		
		} else if(typeof qs["photo_id"] != "undefined"){
			$TvPlayer.trigger("playPhoto", [qs["photo_id"], 0])
		
		} else if(titleArr.length > 1){
			if(titleArr[0] == "album_id"){
				$TvPlayer.trigger("playAlbum", [titleArr[1], null, 0])
			} else if(titleArr[0] == "photo_id"){
				$TvPlayer.trigger("playPhoto", [titleArr[1], 0])
			}
			$TvPlayer.attr("title", "")
		} else {
			$TvPlayer.hide();
		}
/*

		function getQuerystring(key, default_){
		  if (default_==null) default_=""; 
		  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
		  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
		  var qs = regex.exec(window.location.href);
		  if(qs == null)
		    return default_;
		  else
		    return qs[1];
		}

		function loadMediaType() {
			var type = getQuerystring('type'),
				typeId = getQuerystring('id');

			if(type === 'playlist') {
				$TvPlayer.trigger("playAlbum", [typeId, null]);
			}
			if(type === 'video') {
				$TvPlayer.trigger("playPhoto", [typeId]);
					
			
			}
		}	
		loadMediaType();
		*/
	});
}
function playFlash(playerID) { 
	var flash = (navigator.appName.indexOf ("Microsoft") !=-1) ?  window.document[playerID] : document[playerID];
	if(typeof(flash.playVideo) != "undefined"){
		flash.playVideo();
	}
	
}

function ajax_send(element, queryUrl, queryData, successFunction) {



	var ajax = $.ajax({
		type: "GET",
		url: queryUrl,
		data: queryData,
		dataType: "jsonp",
		jsonp: "jsoncallback",
		success: function (data, textStatus, XMLHttpRequest) {

			successFunction.call(element, data);


		}, 
		error: function (XMLHttpRequest, textStatus, errorThrown) {

			debug(XMLHttpRequest)
			debug(textStatus)
			debug(errorThrown)
		}
	});
}


//-------------------------------------
// initFlash
//-------------------------------------

function initFlash(){
	
	if($("#mainContent").hasClass("tema")){
		$('.tema .column .audioPlayer').map(function(){
			var PlayerID = "audioPlayer" + Math.floor(Math.random() * 999999);
			$(this).flash({
				swf: 								URL+'/includes/flash/theme/mp3player.swf',
				height:						 	32,
				width: 							433,
				id: 								PlayerID,
				allowscriptaccess:'always', 
				allowfullscreen:'true',
				flashvars: "stream_url=" + $(this).attr("title")
			}).attr("name", PlayerID);
			/*$(this).attr("title", "")*/
		});
		$('.tema .column .column .audioPlayer').map(function(){
			var PlayerID = "audioPlayer" + Math.floor(Math.random() * 999999);
			$(this).flash({
				swf: 								URL+'/includes/flash/theme/mp3player.swf',
				height:						 	32,
				width: 							206,
				id: 								PlayerID,
				allowscriptaccess:'always', 
				allowfullscreen:'true',
				flashvars: "stream_url=" + $(this).attr("title")
			}).attr("name", PlayerID);
			/*$(this).attr("title", "")*/
		});

	}else {
		$('.audioPlayer').map(function(){
			var PlayerID = "audioPlayer" + Math.floor(Math.random() * 999999);
			$(this).flash({
				swf: 								URL+'/includes/flash/mp3player.swf',
				height:						 	33,
				width: 							582,
				id: 								PlayerID,
				allowscriptaccess:'always', 
				allowfullscreen:'true',
				flashvars: $(this).attr("title")
			}).attr("name", PlayerID);
			$(this).attr("title", "")
		});

	}
	



	
	
	$('.videoPlaylist').map(function(){
		var PlayerID = "videoPlaylist" + Math.floor(Math.random() * 999999);
		$(this).flash({
			swf: 								URL+'/includes/flash/video_player.swf',
			height:						 	482,
			width: 							582,
			id: 								PlayerID,
			allowscriptaccess:'always', 
			allowfullscreen:'true',
			flashvars: $(this).attr("title")
		}).attr("name", PlayerID);
		$(this).attr("title", "")	
	});
	
	$('.videoPlayer').map(function(){
		var PlayerID = "videoPlayer" + Math.floor(Math.random() * 999999);
		$(this).flash({
			swf: 								URL+'/includes/flash/simpleplayer.swf',
			height:						 	350,
			width: 							582,
			id: 								PlayerID,
			allowscriptaccess:'always', 
			allowfullscreen:'true',
			flashvars: $(this).attr("title")
		}).attr("name", PlayerID);
		$(this).attr("title", "")
	});
	
	$('.frontFlash').map(function(){
		var PlayerID = "videoPlayer" + Math.floor(Math.random() * 999999);
		$(this).flash({
			swf: 								$(this).attr("title"),
			height:						 	155,
			width: 							280,
			id: 								PlayerID,
			allowscriptaccess:'always', 
			allowfullscreen:'true'
		}).attr("name", PlayerID);
		$(this).attr("title", "")
	});
	
	$('.frontVideoFlash').map(function(){
		var PlayerID = "videoPlayer" + Math.floor(Math.random() * 999999);
		$(this).flash({
			swf: 								'http://gyldendaltest.23video.com/883560.swf',
			height:						 	155,
			width: 							280,
			id: 								PlayerID,
			allowscriptaccess:'always', 
			allowfullscreen:'true',
			flashvars: $(this).attr("title")
		}).attr("name", PlayerID);
		$(this).attr("title", "")
	});

}
//-------------------------------------
// Mouse over box
//-------------------------------------

function setMouseOverBox($This, $OverBox, className) {
	var $OverBoxParent = $OverBox.parent();
	$OverBox.pngfix()
	$This.hover(function () {
		showMouseOverBox($This, $OverBox, className)
	}, function () {
		hideMouseOverBox($This, $OverBox, $OverBoxParent)
	});
}
function showMouseOverBox($This, $OverBox, className) {
	var $Container = $('#container');
	var $Box = $("<div id='ActiveOverBox' />")
	var left = $This.offset().left - $Container.offset().left
	var top = $This.offset().top - $Container.offset().top
	$Box.addClass(className)
	$Box.css({
		"position": "absolute",
		"z-index": "5678",
		"left": left + "px",
		"top": top + "px"
	});
	$Box.append($OverBox)
	$Container.append($Box)
	$Box.children().show()
	$.data($This.get(0), "thisOverBox", $Box)
}
function hideMouseOverBox($This, $OverBox, $OverBoxParent) {
	$OverBoxParent.append($OverBox);
	$OverBox.hide()
	$("#ActiveOverBox").remove();
}
//-------------------------------------
// setAuthorBg
//-------------------------------------

function setAuthorBg() {
	var $Settings = $("#authorBgSettings");
	if ($Settings.length == 0) return;
	var $BgColor = $(".bgcolor", $Settings);
	if ($BgColor.length > 0) {
		if ($BgColor.val() != "") {
			$("#main").css("background", $BgColor.val())
		}
	}
/*
	var $BgPicture = $(".bgimg" ,$Settings);
	if($BgPicture.length > 0){
		$("#main").css("background-image", "url("+$BgPicture.val()+")")
	}
	var $BgRepeat = $(".bgrepeat" ,$Settings);
	if($BgRepeat.length > 0){
		var repeat = (Boolean(parseInt($BgRepeat.val()))) ? "repeat" : "no-repeat";
		$("#main").css("background-repeat", repeat);
	}
	*/
}
//-------------------------------------
// setTwitterFeed
//-------------------------------------

function setTwitterFeed() {
	var $TwitterFeed = $(".twitterFeed");
	$TwitterFeed.map(function () {
		var $This = $(this);
		var titleArray = $This.attr("title").split(';')
		$This.removeAttr("title");
		var userName = titleArray[0];
		var avatarImg = titleArray[1];
		var number = titleArray[2];
		$(".twitterList", $This).tweet({
			username: userName,
			join_text: "",
			avatar_src: avatarImg,
			avatar_size: 32,
			count: number,
			auto_join_text_default: "vi ,",
			auto_join_text_ed: "vi",
			auto_join_text_ing: "vi var",
			auto_join_text_reply: "vi svarede på",
			auto_join_text_url: "vi kiggede på",
			loading_text: "henter tweets..."
		});
	});
}
//-------------------------------------
// setLighboxDeepLink
//-------------------------------------

function getHash() {
	var hash = window.location.hash || "undefined",
		end = hash.indexOf('?');
	
	return (end == -1) ? hash.substring() : hash.substring(1, end);
}
function setLighboxDeepLink() {
	var hash = getHash();
	if (hash != "" && hash != "#" && $(hash).hasClass("lightBoxContainer_hidden")) displayLightBox(hash);
}

//-------------------------------------
// share twitter and facebook 
//-------------------------------------

function shareWin(type, url) {
	var $Link = $(this),
		width = 550,
		height = 450,
		screenWidth = screen.height,
		screenWidth = screen.width,
		left = Math.round((screenWidth * 0.5) - (width * 0.5)),
		top = (screenWidth > height) ? Math.round((screenWidth * 0.5) - (height * 0.5)) : 0,
		windowName = type+"_win",
		shareWin = window[windowName] || null,
		url= (url || $Link.attr("href") || location.href),
		
		getFacebook = function(){
			var facebookUrl = 'http://www.facebook.com/share',
				query = '.php?src=bm&v=4&i=1310737312&u=' + encodeURIComponent(url) + '&t=' + encodeURIComponent(document.title);
			return facebookUrl + 'r' + query;		
		},
		
		getTwitter = function(){
			var param = {
				url : url,
				text: decodeURIComponent(document.title),
				_: ((new Date()).getTime())
			}
			return "http://twitter.com/share?" + $.param(param);		
		},
		
		openShareWindow = function(){
			
			if(type === "twitter"){
				url = getTwitter(url)
			} else if(type === "twitter"){
				url = getTwitter(url)
			} else if(type === "facebook") {
				url = getFacebook(url)
			}
			
			if (shareWin && shareWin.location) {
				shareWin.location = url;
				shareWin.focus()
			} else {
				shareWin = window[windowName] = window.open(url, windowName, 'left=' + left + ',top=' + top + ',width=' + width + ',height=' + height + ',personalbar=0,toolbar=0,scrollbars=1,resizable=1');
				if(url === ""){
					window.focus()
				}	
			}
			return shareWin;
		};
		
		openShareWindow()
	
}








function openShareWindow(windowName, url, w, h){
	var width = w || 550,
		height = h || 450,
		screenWidth = screen.height,
		screenWidth = screen.width,
		left = Math.round((screenWidth * 0.5) - (width * 0.5)),
		top = (screenWidth > height) ? Math.round((screenWidth * 0.5) - (height * 0.5)) : 0,
		shareWin = window[windowName] || null;
	
	if (shareWin && shareWin.open) {
		shareWin.location.href = url;
		shareWin.focus()
	} else {
		shareWin = window[windowName] = window.open(url, windowName, 'left=' + left + ',top=' + top + ',width=' + width + ',height=' + height + ',personalbar=0,toolbar=0,scrollbars=1,resizable=1');	
	}
	return shareWin;
}

function openFacebookShare (url){
	return openShareWindow('facebookShareWindow', url, 960, 550);
}

function facebookShare (url){
	var $Link = $(this),
		f = 'http://www.facebook.com/share',
		url= (url || $(this).attr("href") || location.href),
		p = '.php?src=bm&v=4&i=1310737312&u=' + encodeURIComponent(url) + '&t=' + encodeURIComponent(document.title);
	
	return openFacebookShare (f + 'r' + p);
}
function openTwitterShare (url){
	openShareWindow('twitterShareWindow', url, 960, 550);
}	
function twitterShare (url){
	var param = {
			text: decodeURIComponent(document.title),
			url: (url || $(this).attr("href") || location.href),
			_: ((new Date()).getTime())
		},
		twttrUrl = "http://twitter.com/share?" + $.param(param);
	
	return openTwitterShare (twttrUrl);
}

function initActionbar($Container) {

	_videoshare = function(){
		//console.log("_videoshare");
		var $shareContainer = $(".video-embed-container");
			
		//console.log($player.find("object[").find("param").attr("name").val();	
		$shareContainer.toggle();
		return false; 
	};

	
	$('.share-container', $Container).map(function(){
		$("a.facebook", this).bind("click", function(){
			openFacebookShare();
			return false;
		});
		$("a.twitter", this).bind("click", function(){
			openTwitterShare();
			return false;
		});
		$("a.videoembed", this).bind("click", _videoshare);
	});


}

//-------------------------------------
// setSharingURL - twitter and facebook
//-------------------------------------

function setSharingUrl(obj, flashvars){
	//console.log(obj)
	var prop,
		queryString = "?",
		videoIframe,
		$videoContainer = $(".video-embed-container");

	for(prop in obj) {
		queryString += prop + "=" + obj[prop] + "&";
	}

	queryString = queryString.substr(0, queryString.length - 1);
	//$("a.twitter, a.facebook").attr("href",  window.location.href.split("?")[0] + queryString);
	
	$("a.twitter, a.facebook",".tvPlayer").map(function() {
		var baseUrl = $(this).attr("href");
		if(baseUrl != "#" && baseUrl != ""){
			$(this).attr("href", baseUrl + queryString);
		}
	});

	videoIframe = '<textarea><iframe src="http://gyldendaltv.23video.com/v.ihtml?photo_id='+ flashvars["photo_id"]+'&token='+ flashvars["token"] + '" width="582" height="327" frameborder="0" border="0" scrolling="no"></iframe></textarea>';
	$videoContainer.empty().append(videoIframe);
};


//-------------------------------------
// debug
//-------------------------------------

function debug(msg) {
	if (window.console && window.console.log) window.console.log(msg);
}
var isLocal = (window.location.href.indexOf("file:") > -1);
var pathPrefix = (isLocal) ? "" : "/";
var URL = (isLocal) ? "http://gyldendal.test" : "";
//-------------------------------------
// On ready events
//-------------------------------------
$(document).ready(function () {
	mainMenuInit();
	preloadImages();
	setBookBoxBehaviour();
	setAuthorBoxBehaviour();
	setArticleBoxBehaviour();
	
	setAuthorBg();
	runFormScripts();
	sliderInit();
	faderInit();
	tabsInit();
	initTvPlayer();
	setTwitterFeed();
	setLighboxDeepLink();
	initFlash();
	
	initActionbar();
	setVideoBoxBehaviour();
	
	DocumentReady = true;
});
