var logoutId = 'xd_logout';
var commonOptions = {receiver: 'xdr/xd_receiver.html', loginRewritePrefix: 'xdr_menu_login_txt', loginRewrite: 'xdr_menu_login', rewriteLogutId: logoutId, rewriteLogutTxt: ' | <a class="menu-login login link-login" href="" id="'+logoutId+'">Logg ut</a>', loginPrefix: 'Innlogget som: '}
var initoptions = {commonOptions: commonOptions, reloadclient:0, checklogin: 1, showlogin:0, delaycookie: 60, popup: 0}
var options = {commonOptions: commonOptions, wrappingdiv: 'db_xdr_login', showlogin:1, reloadclient:0, width:368, height:230, popup:1}
var xdr_pwd_url = 'https://konto.dagbladet.no/?op=LostPassword&target='+DB.Utils.urlEncode(DB.Utils.getCurrentUrl());
var xdr_reg_url = 'https://konto.dagbladet.no/?op=RegisterUser&target='+DB.Utils.urlEncode(DB.Utils.getCurrentUrl());




$(document).ready(function() 
{

	$("#loginform #submitbutton").click(function(e){
		e.preventDefault();
		DB.Utils.delCookie(DB.loginDelayCookie, {domain: '.'+DB.Utils.getMasterDomain()});			
		$("#loginform").submit();
	});

	$("#xdr_ext_pwd").click(function(e){
		e.preventDefault();
		DB.Utils.delCookie(DB.loginDelayCookie, {domain: '.'+DB.Utils.getMasterDomain()});
		$(location).attr('href', xdr_pwd_url);
	});
	
	$("#xdr_ext_reg").click(function(e){
		e.preventDefault();
		DB.Utils.delCookie(DB.loginDelayCookie, {domain: '.'+DB.Utils.getMasterDomain()});
		$(location).attr('href', xdr_reg_url);
	});
	
	DB.Client.callOnLoaded({fname: 'postLogin', namespace: '', args: new Array()});
	DB.Client.checkLogin(initoptions);
	
	
});

$(document).ready(function()
{
	$("#xdr_menu_login").click(function(e){
		e.preventDefault();
		hideAds();
		if (parentFrontPage != null){
			DB.Client.doLogin('postLoginUnbind', '', '', options);
		} else {
			DB.Client.doLogin('postLogin', '', '', options);
		}
	});
});

//DB.userId = '1000000003';

function postLogin()
{
	if (DB.userId) {
		$("div.favoritter-og-paminnelser").load("index.php5", {op: "ViewFrontUserFavorites"} );
		$('div.favoritter-og-paminnelser').oneTime(1000, "initButtons", function() {
			initFavButtons("div.favoritter-og-paminnelser div.program a.btn.favorite");
			initReminderButtons("div.favoritter-og-paminnelser div.program a.btn.reminder");
		});
		$("#xdr_menu_login").unbind("click");
	}
	showAds();
}

function postLoginUnbind()
{
	if (DB.userId) {
		$("#xdr_menu_login").unbind("click");
	}
	showAds();
}


$(document).ready(function() 
{
	$("#filter-search").click(function(e){
		e.preventDefault();
		$("#search-form-header").submit();
	});
});	


$(document).ready(function() 
{

	$(".se-button.like").click(function(e){

		e.preventDefault();
		
		likeProgram($(this));
	});
	
	$(".se-button.watch").click(function(e){

		e.preventDefault();
		
		watchProgram($(this));
	});
	

	
	$("a.savequizscores").click(function(e){

		e.preventDefault();
		
		saveQuizScores($(this));
	});
});	


var nextAlarm = "0";
var parentFrontPage = "";
var mail1;
var mail2;
var doRefresh = false;

function writemail(mail1, mail2)
{
  document.open();
  document.writeln('<a href=mailto:' + mail1 + '@' + mail2 + '>');
  document.close();
}

function writesafemail(mail1, mail2)
{
  document.open();
  document.writeln(mail1 + '@' + mail2);
  document.close();
}

function initFront()
{
	parentFrontPage = $('div#parentFrontPage').attr("innerHTML");	
	
	// Init featured content
	var currentId = 1;
	$('div.promotop').oneTime(7000, "switchPromoContent", function() {switchToNext(); });
	$('.promoitem a').click(function() {
		var idArr = $(this).parent().attr("id").split('_');
		var id = parseInt(idArr[1]);
		switchTo(id);
		return false;
	});
	
	function switchTo(id) 
	{
		id = parseInt(id);
		
		currentId = id;
		
		$('#curtain').css("z-index",301);
		$("#curtain").animate( { opacity:"1"}, 200, 'linear', function() {
			$(".titleshadow-left").css("opacity",0);
			$(".left-text").css("opacity",0);
			
			$('div.mainitem').addClass("invisible");
			$('div#promo_' + id).removeClass("invisible");
			
			$('div.promoitem').addClass("inactive");
			$('div#promothumb_' + id).removeClass("inactive");
			
			$("#curtain").animate( { opacity:"0" } , 200, 'linear', function() {
				$('#curtain').css("z-index",-1);
				$('div.promotop').stopTime("switchPromoContent");
				$("div#promo_" + currentId).oneTime(500, "showDescription", function() {
					$(".titleshadow-left").animate( { opacity:"0.5" } , 200);
					$(".left-text").animate( { opacity:"1" } , 200);
				});
				
				$('div.promotop').oneTime(7000, "switchPromoContent", function() {switchToNext(); });
			});
		})
	}
	
	function switchToNext() 
	{
		if (currentId < 4) {
			currentId = currentId + 1;
		}
		else {
			currentId = 1;
		}
		
		switchTo(currentId);
	}
	
	// Init buttons and events
	$('#myChannelsToggler').click(function(){
		toggleAlternatives();
		return false;
	});
	
	$('#myChannelsToggler2').click(function(){
		toggleAlternatives();
		return false;
	});
	
	$('#myChannelsToggler3').click(function(){
		window.scrollTo(0,0);
		toggleAlternatives();
		return false;
	});
	
	$('a#mainmenu-item-tvguide').hover(
		function(){
			$('#tvguide-alternatives').stopTime("hideHover");
			$('#tvguide-alternatives').css("display","block");
			return false;
		},
		function(){
			$('#tvguide-alternatives').oneTime(500, "hideHover", function() { $('#tvguide-alternatives').css("display","none"); });
			return false;
	});
	
	$('#tvguide-alternatives').hover(
		function(){
			$('#tvguide-alternatives').stopTime("hideHover");
			$('#tvguide-alternatives').css("display","block");
			return false;
		},
		function(){
			$('#tvguide-alternatives').oneTime(500, "hideHover", function() { $('#tvguide-alternatives').css("display","none"); });
		return false;
	});
	
	if (parentFrontPage != "ViewFavoritesReminders"){
		
		$("div#onTvNow").load("index.php5", {op: "OnTvNow"}, function(){
			initFavButtons("#onTvNow a.btn.favorite");	
		});
		
		$('div#onTvNow').everyTime(60000, "updateOnTvNow", function() {
			$("div#onTvNow").load("index.php5", {op: "OnTvNow"}, function(){
				initFavButtons("#onTvNow a.btn.favorite");	
			});
		});
		
	} else {
		$('input.alertRadio').click(function(){
			if($(this).attr('id') == 'radioAlert5Min'){
				$.post("index.php5", { op: "ChangeAlertDelay", alertDelay: '5'});
			} else if($(this).attr('id') == 'radioAlert30Min'){
				$.post("index.php5", { op: "ChangeAlertDelay", alertDelay: '30'});
			} else if($(this).attr('id') == 'radioAlert60Min'){
				$.post("index.php5", { op: "ChangeAlertDelay", alertDelay: '60'});
			}
		});
	}
	
	initFavButtons("#onTvNow a.btn.favorite"); // Oppdatert på TV akkurat nå
	initFavButtons("div.program a.btn.favorite");
	initFavButtons("div.program-result a.btn.favorite");
	initFavButtons("div.movie-entry a.btn.favorite");
	initReminderButtons("div.program a.btn.reminder");
	initReminderButtons("div.movie-entry a.btn.reminder");
	initReminderButtons("div.program-result a.btn.reminder");
	
	$('div.program-result a.link-favorite').click(function() {
		$(this).parent().children('h2.tools').children('a.btn.favorite').trigger('click');
		return false;
	});
	
	$('div.program-result a.link-reminder').click(function() {
		$(this).parent().children('h2.tools').children('a.btn.reminder').trigger('click');
		return false;
	});
}

function initFavButtons(buttons)
{
	
	$(buttons).click(function(e) {
		e.preventDefault();
		
		var btcontainer = $(this).parent();
			
		if ($(btcontainer).attr("class") == "tools"){
			btcontainer = $(btcontainer).parent();
		}
		
		var params = $(btcontainer).attr("id").split("_");
		var channelId = params['1'];
		var programId = params['2'];
		var date = params['3'];
		var category = $("#"+btcontainer.attr("id")+" div.category").attr("innerHTML");
		var title = $("#"+btcontainer.attr("id")+" div.realtitle").attr("innerHTML");
		
		$(this).addClass("loader");
		if ($(this).hasClass("marked")) {
		
			if (DB.userId) {
				addRemoveFavorite("removeFavorite", channelId, programId, title, category, date);
			} else {
				hideAds();
				DB.Client.doLogin('addRemoveFavorite', '', new Array("removeFavorite", channelId, programId, title, category, date), options);
			}
		}
		else {
		
			if (DB.userId) {
				addRemoveFavorite("add", channelId, programId, title, category, date);
			} else {
				hideAds();
				DB.Client.doLogin('addRemoveFavorite', '', new Array("add", channelId, programId, title, category, date), options);
			}
		}
	});
}

function initReminderButtons(buttons)
{
	
	$(buttons).click(function() {
		
		var btcontainer = $(this).parent();
		
		if ($(btcontainer).attr("class") == "tools"){
			btcontainer = $(btcontainer).parent();
		}
		
		var params = $(btcontainer).attr("id").split("_");
		
		var channelId = params['1'];
		var programId = params['2'];
		var date = params['3'];
		
		var category = $("#"+btcontainer.attr("id")+" div.category").attr("innerHTML");
		var title = $("#"+btcontainer.attr("id")+" div.realtitle").attr("innerHTML");
		var channelName = $("#"+btcontainer.attr("id")+" div.channelname").attr("innerHTML");
		var startReal = $("#"+btcontainer.attr("id")+" div.startreal").attr("innerHTML");
		var startTimestamp = $("#"+btcontainer.attr("id")+" div.start_timestamp").attr("innerHTML");
		
		if (DB.userId){
		
			if (category == "film"){
				$(this).addClass("loader");
				
				if ($(this).hasClass("marked")) {
					nextAlarm = "0";
					addRemoveAlarm(title, channelId, programId, date, category, startTimestamp, startReal, channelName, nextAlarm);
				} else {
					nextAlarm = "2"; // episode ( marked )
					addRemoveAlarm(title, channelId, programId, date, category, startTimestamp, startReal, channelName, nextAlarm);
				}
			} else {
			
				$(this).addClass("loader");
				
				if ($(this).hasClass("series")) {
					nextAlarm = "2";
					addRemoveAlarm(title, channelId, programId, date, category, startTimestamp, startReal, channelName, nextAlarm);
				} else if ($(this).hasClass("marked")) {
					nextAlarm = "0";
					addRemoveAlarm(title, channelId, programId, date, category, startTimestamp, startReal, channelName, nextAlarm);
				} else {
					nextAlarm = "1";
					addRemoveAlarm(title, channelId, programId, date, category, startTimestamp, startReal, channelName, nextAlarm);
				}
			}
		
			return false;
		}
		else { 
				
			$(this).addClass("loader");
			if (category == "film"){
				nextAlarm = "2"; //til episode
				hideAds();
				DB.Client.doLogin('addRemoveAlarm', '', new Array(title, channelId, programId, date, category, startTimestamp, startReal, channelName, nextAlarm), options);
			} else {
				nextAlarm = "1"; //til serie
				hideAds();
				DB.Client.doLogin('addRemoveAlarm', '', new Array(title, channelId, programId, date, category, startTimestamp, startReal, channelName, nextAlarm), options);
			}
			return false;
		}
	});
}

function addRemoveAlarm(title, channelId, programId, date, category, startTimestamp, startReal, channelName, nextAlarm) 
{
	if (DB.userId) {
		$.post("index.php5", { op: "AddRemoveAlert", date: date, alertTime: nextAlarm, title: title, channelId: channelId, programId: programId, category: category, startTimestamp: startTimestamp, startReal: startReal, channelName: channelName }, addRemoveAlertCallback );
	}
	showAds();
	postLoginUnbind();
	return false;
}

function addRemoveAlertCallback(responseText, textStatus, XMLHttpRequest) 
{
	var response = eval("(" + responseText + ")");

	if (response.status == 'ok') {
		
		$.each( response.elements, function(i, n){
			
			var progid = n.split("div#prog");
			progid = progid['1'];
			
			if (nextAlarm == "1"){ // marked series
			
				if (parentFrontPage == "ViewFavoritesReminders"){
					$("div#progAlerts"+progid+" a.btn.reminder").addClass("marked");
					$("div#progAlerts"+progid+" a.btn.reminder").addClass("series");
					$("div#progAlerts"+progid+" a.btn.reminder").removeClass("loader");
					
					$("div#progFavs"+progid+" a.btn.reminder").addClass("marked");
					$("div#progFavs"+progid+" a.btn.reminder").addClass("series");
					$("div#progFavs"+progid+" a.btn.reminder").removeClass("loader");
				}
				else {
					$("div#progTop"+progid+" a.btn.reminder").addClass("marked");
					$("div#progTop"+progid+" a.btn.reminder").addClass("series");
					$("div#progTop"+progid+" a.btn.reminder").removeClass("loader");
				}
			} else if (nextAlarm == "2"){ // marked
				
				if (parentFrontPage == "ViewFavoritesReminders"){
					$("div#progAlerts"+progid+" a.btn.reminder").addClass("marked");
					$("div#progAlerts"+progid+" a.btn.reminder").removeClass("series");
					$("div#progAlerts"+progid+" a.btn.reminder").removeClass("loader");
					
					$("div#progFavs"+progid+" a.btn.reminder").addClass("marked");
					$("div#progFavs"+progid+" a.btn.reminder").removeClass("series");
					$("div#progFavs"+progid+" a.btn.reminder").removeClass("loader");
				} else {
					$("div#progTop"+progid+" a.btn.reminder").addClass("marked");
					$("div#progTop"+progid+" a.btn.reminder").removeClass("series");
					$("div#progTop"+progid+" a.btn.reminder").removeClass("loader");
					
					$("div#progMovie"+progid+" a.btn.reminder").addClass("marked");
					$("div#progMovie"+progid+" a.btn.reminder").removeClass("series");
					$("div#progMovie"+progid+" a.btn.reminder").removeClass("loader");
				}
			} else {
				
				if (parentFrontPage == "ViewFavoritesReminders"){
					$("div#progAlerts"+progid+" a.btn.reminder").removeClass("marked");
					$("div#progAlerts"+progid+" a.btn.reminder").removeClass("series");
					$("div#progAlerts"+progid+" a.btn.reminder").removeClass("loader");
					
					$("div#progFavs"+progid+" a.btn.reminder").removeClass("marked");
					$("div#progFavs"+progid+" a.btn.reminder").removeClass("series");
					$("div#progFavs"+progid+" a.btn.reminder").removeClass("loader");
				}
				else {
					$("div#progTop"+progid+" a.btn.reminder").removeClass("marked");
					$("div#progTop"+progid+" a.btn.reminder").removeClass("series");
					$("div#progTop"+progid+" a.btn.reminder").removeClass("loader");
					
					$("div#progMovie"+progid+" a.btn.reminder").removeClass("marked");
					$("div#progMovie"+progid+" a.btn.reminder").removeClass("series");
					$("div#progMovie"+progid+" a.btn.reminder").removeClass("loader");
				}
			}
		});

		if (parentFrontPage == "ViewFavoritesReminders"){
			window.location.href = "index.php5?op=ViewFavoritesReminders";
		} else {
			
			$("div.favoritter-og-paminnelser").load("index.php5", {op: "ViewFrontUserFavorites"} );
			$('div.favoritter-og-paminnelser').oneTime(1000, "initButtons", function() {
				initFavButtons("div.favoritter-og-paminnelser div.program a.btn.favorite");
				initReminderButtons("div.favoritter-og-paminnelser div.program a.btn.reminder");
			});
		}
	}	
}

function addRemoveFavorite(mode, channelId, programId, title, category, date) 
{
	if (DB.userId) {
		if (category == "film"){
			var favoriteType  = "single";
		} else {
			var favoriteType = "series";
		}
		
		if (mode == 'add') {
			var op = "AddFavorite";
			var callback = "addFavoriteCallback";
		} else {
			var op = "RemoveFavorite";
			var callback = "removeFavoriteCallback";
		}
		$.post("index.php5", { op: op, date: date, title: title, channelId: channelId, programId: programId, category: category, favoriteType: favoriteType }, eval(callback) );
	}
	showAds(); 
	postLoginUnbind();
	return false;
}

function addFavoriteCallback(responseText, textStatus, XMLHttpRequest) 
{
	var response = eval("(" + responseText + ")");
	
	if (response.status == 'ok') {
		if (doRefresh) {
			window.location.href = "index.php5";
		} else {
			$('.program-info .tools a.favoritt').unbind('click'); 
			$('.program-info .tools a.favoritt').addClass("favoritt-active");
			$('.program-info .tools a.favoritt-active').click(function() {return addRemoveFavorite("remove");});
			
			$.each(response.elements, function(i, n){
				var progid = n.split("div#prog");
			
				progid = progid['1'];
				$("div#progNow"+progid+" a.btn").removeClass("loader");
				$("div#progNow"+progid+" a.btn").addClass("marked");
				
				$("div#progNext"+progid+" a.btn").removeClass("loader");
				$("div#progNext"+progid+" a.btn").addClass("marked");
				
				$("div#progTop"+progid+" a.btn.favorite").removeClass("loader");
				$("div#progTop"+progid+" a.btn.favorite").addClass("marked");
				
				$("div#progMovie"+progid+" a.btn.favorite").removeClass("loader");
				$("div#progMovie"+progid+" a.btn.favorite").addClass("marked");
				
				if (parentFrontPage == "ViewFavoritesReminders"){
					$("div#progAlerts"+progid+" a.btn.favorite").removeClass("loader");
					$("div#progAlerts"+progid+" a.btn.favorite").addClass("marked");
					
					$("div#progFavs"+progid+" a.btn.favorite").removeClass("loader");
					$("div#progFavs"+progid+" a.btn.favorite").addClass("marked");
				}
			});
					
			if (parentFrontPage == "ViewFavoritesReminders"){
				window.location.href = "index.php5?op=ViewFavoritesReminders";
			} else {
			
				$("div.favoritter-og-paminnelser").load("index.php5", {op: "ViewFrontUserFavorites"} );
				$('div.favoritter-og-paminnelser').oneTime(1000, "initButtons", function() {
					initFavButtons("div.favoritter-og-paminnelser div.program a.btn.favorite");
					initReminderButtons("div.favoritter-og-paminnelser div.program a.btn.reminder");
				});
			}
		}
	}
}

function removeFavoriteCallback(responseText, textStatus, XMLHttpRequest) 
{
	var response = eval("(" + responseText + ")");

	if (response.status == 'ok') {
		
		if (doRefresh) {
			window.location.href = "index.php5";
		}
		else if (parentFrontPage == "ViewFavoritesReminders"){
			window.location.href = "index.php5?op=ViewFavoritesReminders";
		} else {
		
			$('.program-info .tools a.favoritt-active').unbind('click'); 
			$('.program-info .tools a.favoritt').removeClass("favoritt-active");
			$('.program-info .tools a.favoritt').click(function() {return addRemoveFavorite("add");});
			
			$.each( response.elements, function(i, n){
				
			var progid = n.split("div#prog");
					
				progid = progid['1'];
				$("div#progNow"+progid+" a.btn").removeClass("loader");
				$("div#progNow"+progid+" a.btn").removeClass("marked");
					
				$("div#progNext"+progid+" a.btn").removeClass("loader");
				$("div#progNext"+progid+" a.btn").removeClass("marked");
				
				$("div#progTop"+progid+" a.btn.favorite").removeClass("loader");
				$("div#progTop"+progid+" a.btn.favorite").removeClass("marked");
				
				$("div#progMovie"+progid+" a.btn.favorite").removeClass("loader");
				$("div#progMovie"+progid+" a.btn.favorite").removeClass("marked");
			});
			
			$("div.favoritter-og-paminnelser").load("index.php5", {op: "ViewFrontUserFavorites"} );
			$('div.favoritter-og-paminnelser').oneTime(1000, "initButtons", function() {
				initFavButtons("div.favoritter-og-paminnelser div.program a.btn.favorite");
			});
		}
	}
}

function toggleAlternatives() 
{
	if ( $("#alternatives-container").css( "display") == "block") {
		$('.ad-972x150').css('visibility', 'visible');
		$("#alternatives-container").css( "display", "none");
		$("#alternatives-content-container").attr( "innerHTML", "");
	}
	else {
		$('.ad-972x150').css('visibility', 'hidden');
		$("#alternatives-container").css( "display", "block");
		$("#alternatives-content-container").attr( "innerHTML", '<div class="loader">Laster alternativer...<br/><img src="http://gfx.dagbladet.no/tv-program/ikoner/whiteonblack.gif" /></div>');
		$("#alternatives-content-container").load("index.php5", {op: "ViewAlternatives"}, initAlternatives);
	}
}

function initAlternatives() 
{
	var altChannelClick = function() {
	$(this).toggleClass("channel-selected");
		return false;
	};
	
	$('.channelsSortable').sortable({ 
		containment: 'parent',
		update: function(event, ui) { 
            ui.item.unbind("click");
            ui.item.one("click", function (event) { 
                event.stopImmediatePropagation();
                $(this).click(altChannelClick);
            }); 
		}
	});

	$('.channelsSortable').disableSelection();	
	$('#channels div.alt-channel').click(altChannelClick);
	$('button#button-alternatives-save').click(function() {
		var userChannels = new Array();
		var counter = 0;
		$('div.channel-selected').each(function(){
			var params = $(this).attr("id").split("_");
			//$(this).css("display", "none");
			userChannels[counter] = params[2];
			++counter;
		});

		window.location.href = "index.php5?op=SaveUserAlternatives&returnTo=tv&channels=" + userChannels;
		return false;
	});	
	
	$('a.channels-preset').click(function() {
		var params = $(this).attr("href").split("_");
		var channels = params[1].split(",");
		resetAlternativesChannels();
		
		$.each(channels, function(intIndex, objValue) {
			$("#channels div#alt_channel_" + objValue).addClass("channel-selected");
		});

		return false;
	});
	
	$('a#channels-reset').click(function() {
		resetAlternativesChannels();
		return false;
	});
		
	$('a#channels-setall').click(function() {
		setAlternativesChannels();
		return false;
	});
}

function resetAlternativesChannels() 
{
	$('#channels div.alt-channel').removeClass("channel-selected");
}

function setAlternativesChannels() 
{
	$('#channels div.alt-channel').addClass("channel-selected");
} 

function hideAds()
{
	$('.ad').css("display","none");
}

function showAds()
{
	$('.ad').css("display","");
}


function likeProgram(el) 
{
	
	hideAds();

	
	if (DB.userId) {
	
		if (el.hasClass("active")) {
			var mode = "dislike";
			//el.addClass("inactive");
			//el.removeClass("active");
		}
		else {
			var mode = "like";
			//el.addClass("active");
			//el.removeClass("inactive");
		}
		/*if (category == "film"){
			var favoriteType  = "single";
		} else {
			var favoriteType = "series";
		}*/
		
	
		var op = "LikeProgram";
		var callback = "likeProgramCallback";
	
		$.post("index.php5", { op: op, mode: mode, programDate: el.attr("prop_programDate"), channelId: el.attr("prop_channelId"), programIndex: el.attr("prop_programIndex"), pictureUrl: el.attr("prop_pictureUrl") }, eval(callback) );
		
	}
	else {
		var html = $('#fb-login-message').attr("innerHTML");
		$.fancybox(
			html,
			{
	        		'autoDimensions'	: false,
				'width'         		: 450,
				'height'        		: 'auto',
				'showCloseButton' : true,
				'centerOnScroll' : true,
				'transitionIn'		: 'none',
				'transitionOut'		: 'none',
				'overlayColor'	: '#000000',
				'overlayOpacity'	: '0.5'
			}
		);
		

		$('#fancybox-inner #fb-login').click(function(e) {
			e.preventDefault();
			FB.login(function(response) {
				if (response.session) {
					window.location.reload();
				}
				else {
					$.fancybox.close();
				}
			});
		});
		
		
	}
		
		showAds(); 
		
		//showAds(); 
		
	return false;
}

function likeProgramCallback(responseText, textStatus, XMLHttpRequest) 
{

	var response = eval("(" + responseText + ")");

	//alert('response');
	if (response.status == 'ok') {
		
		if (response.mode == 'like') {

			var counter = 0;
			var buttonId = 0;
			$.each(response.ids, function(i, n){

				$('.se-button.like.' + n).addClass("active");
				$('.se-button.like.' + n).removeClass("inactive");
				
				if (counter == 0) {
					buttonId = '.se-button.like.' + n;
				}
				++counter;
			});
			
			
			
			if (DB.facebookLoggedIn) {
			
				var html = $('#fb-publish-like').attr("innerHTML");
				
				html = html.replace(/:::FB_MESSAGE:::/g, 'liker «:::PROGRAM_TITLE:::» på TV');
				
				if ($(buttonId).attr("prop_programTitle")) {
					var programTitle = $(buttonId).attr("prop_programTitle")
				}
				else {
					var programTitle = response.currentProgram.programTitle;
				}
				html = html.replace(/:::PROGRAM_TITLE:::/g, programTitle);
				
				if ($(buttonId).attr("prop_programLink")) {
					var programLink = $(buttonId).attr("prop_programLink");
				}
				else {
					var programLink = 'http://www.se.no/tv/?channel=' + response.currentProgram.tv_kanal_esv_id + '&date=' + response.currentProgram.date + '&program=' + response.currentProgram.index;
				}
				html = html.replace(/:::PROGRAM_LINK:::/g, programLink);
				
				if ($(buttonId).attr("prop_programDescription")) {
					var programDescription = $(buttonId).attr("prop_programDescription")
				}
				else {
					var programDescription = response.currentProgram.shareDescription;
				}
				html = html.replace(/:::PROGRAM_DESCRIPTION:::/g, programDescription);
				
				if ($(buttonId).attr("prop_pictureUrl")) {
					var pictureUrl = $(buttonId).attr("prop_pictureUrl");
				}
				else {
					var pictureUrl = response.currentProgram.pictureUrl;
				}
				html = html.replace(/:::PROGRAM_PICTURE_URL:::/g, pictureUrl);
				
						
				$.fancybox(
					html,
					{
			        		'autoDimensions'	: false,
						'width'         		: 450,
						'height'        		: 'auto',
						'showCloseButton' : true,
						'centerOnScroll' : true,
						'transitionIn'		: 'none',
						'transitionOut'		: 'none',
						'overlayColor'	: '#000000',
						'overlayOpacity'	: '0.5'
					}
				);
				
				$('#fancybox-inner .fb_post_button').click(function(e) {
					e.preventDefault();
					var message = $('#fancybox-inner .fb_feed_message').attr("innerHTML");
					var link = $('#fancybox-inner .fb_feed_link').attr("innerHTML");
					var name = $('#fancybox-inner .fb_feed_name').attr("innerHTML");
					var description = $('#fancybox-inner .fb_feed_description').attr("innerHTML");
					var picture = $('#fancybox-inner .fb_feed_picture').attr("innerHTML");
					var callback = 'fbPostFeedCallback';
					$.post("index.php5", { op: 'FBPostFeed', message: message, link: link, name: name, description: description, picture: picture }, eval(callback) );
					$.fancybox.close();
				});
				
				$('#fancybox-inner .fancybox_close_button').click(function(e) {
					e.preventDefault();
					$.fancybox.close();
				});
			}
			
		}
		else {
		
		
			$.each(response.ids, function(i, n){

				$('.se-button.like.' + n).addClass("inactive");
				$('.se-button.like.' + n).removeClass("active");
			});
		}
		
						
			/*if (parentFrontPage == "ViewFavoritesReminders"){
				window.location.href = "index.php5?op=ViewFavoritesReminders";
			} else {
			
				$("div.favoritter-og-paminnelser").load("index.php5", {op: "ViewFrontUserFavorites"} );
				$('div.favoritter-og-paminnelser').oneTime(1000, "initButtons", function() {
					initFavButtons("div.favoritter-og-paminnelser div.program a.btn.favorite");
					initReminderButtons("div.favoritter-og-paminnelser div.program a.btn.reminder");
				});
			}*/
		
	}
	
	
	
}


function watchProgram(el) 
{
	
	hideAds();

	
	if (DB.userId) {
	
		if (el.attr("prop_showinfo")) {
			var html = $('#' + el.attr("prop_showinfo")).attr("innerHTML");
			$.fancybox(
				html,
				{
		        		'autoDimensions'	: false,
					'width'         		: 450,
					'height'        		: 'auto',
					'showCloseButton' : true,
					'centerOnScroll' : true,
					'transitionIn'		: 'none',
					'transitionOut'		: 'none',
					'overlayColor'	: '#000000',
					'overlayOpacity'	: '0.5'
				}
			);
		}
		else {
			
		}
		
		if (el.hasClass("active")) {
			var mode = "unwatch";
			//el.addClass("inactive");
			//el.removeClass("active");
		}
		else {
			var mode = "watch";
			//el.addClass("active");
			//el.removeClass("inactive");
		}
		/*if (category == "film"){
			var favoriteType  = "single";
		} else {
			var favoriteType = "series";
		}*/
		
	
		var op = "WatchProgram";
		var callback = "watchProgramCallback";
	
		$.post("http://www.se.no/index.php5", { op: op, mode: mode, programDate: el.attr("prop_programDate"), channelId: el.attr("prop_channelId"), programIndex: el.attr("prop_programIndex"), pictureUrl: el.attr("prop_pictureUrl"), forward: el.attr("prop_forward"), share: el.attr("prop_share") }, eval(callback) );
		
	}
	else {
		var html = $('#fb-login-message').attr("innerHTML");
		$.fancybox(
			html,
			{
	        		'autoDimensions'	: false,
				'width'         		: 450,
				'height'        		: 'auto',
				'showCloseButton' : true,
				'centerOnScroll' : true,
				'transitionIn'		: 'none',
				'transitionOut'		: 'none',
				'overlayColor'	: '#000000',
				'overlayOpacity'	: '0.5'
			}
		);
		

		$('#fancybox-inner #fb-login').click(function(e) {
			e.preventDefault();
			FB.login(function(response) {
				if (response.session) {
					window.location.reload();
				}
				else {
					$.fancybox.close();
				}
			});
		});
		
		
	}
		
		showAds(); 
		
		//showAds(); 
		
	return false;
}

function watchProgramCallback(responseText, textStatus, XMLHttpRequest) 
{

	var response = eval("(" + responseText + ")");

	if (response.status == 'ok') {
		
		if (response.mode == 'watch') {

			var counter = 0;
			var buttonId = 0;
			$.each(response.ids, function(i, n){

				$('.se-button.watch.' + n).addClass("active");
				$('.se-button.watch.' + n).removeClass("inactive");
				
				if (counter == 0) {
					buttonId = '.se-button.watch.' + n;
				}
				++counter;
			});
			
			if (response.newBadges) {
				var badgeHTML = '<div class="badge-preview"><img src="http://gfx.dagbladet.no/se/badges/:::BADGE_NAME:::.png" /><h1>:::BADGE_TITLE:::</h1><p>:::BADGE_DESCRIPTION:::</p></div>';
				
				var badgesHTML = '';
				$.each(response.newBadges, function(i, n){
					var thisBadgeHTML = badgeHTML;
					thisBadgeHTML = thisBadgeHTML.replace(/:::BADGE_NAME:::/g, i);
					thisBadgeHTML = thisBadgeHTML.replace(/:::BADGE_TITLE:::/g, n.title);
					thisBadgeHTML = thisBadgeHTML.replace(/:::BADGE_DESCRIPTION:::/g, n.description);

					badgesHTML = badgesHTML + thisBadgeHTML;

					++counter;
				});

				var badgesDialogHTML = $('#new-badges-dialog').attr("innerHTML");
				badgesDialogHTML = badgesDialogHTML.replace(/:::BADGES_HTML:::/g, badgesHTML);

			}
			else {
				var noBadges = true;
			}
			
			if (DB.facebookLoggedIn && response.share != "false") {
			
				var fbHtml = $('#fb-publish-like').attr("innerHTML");
				
				fbHtml = fbHtml.replace(/:::FB_MESSAGE:::/g, 'ser «:::PROGRAM_TITLE:::» på TV');
				
				if ($(buttonId).attr("prop_programTitle")) {
					var programTitle = $(buttonId).attr("prop_programTitle")
				}
				else {
					var programTitle = response.currentProgram.programTitle;
				}
				
				fbHtml = fbHtml.replace(/:::PROGRAM_TITLE:::/g, programTitle);
				
				if ($(buttonId).attr("prop_programLink")) {
					var programLink = $(buttonId).attr("prop_programLink");
				}
				else {
					//var programLink = 'http://www.se.no/tv/?channel=' + response.currentProgram.tv_kanal_esv_id + '&date=' + response.currentProgram.date + '&program=' + response.currentProgram.index;
					var programLink = 'http://www.se.no/guide/tdf/';
				}
				fbHtml = fbHtml.replace(/:::PROGRAM_LINK:::/g, programLink);
				
				if ($(buttonId).attr("prop_programDescription")) {
					var programDescription = $(buttonId).attr("prop_programDescription")
				}
				else {
					var programDescription = response.currentProgram.shareDescription;
				}
				fbHtml = fbHtml.replace(/:::PROGRAM_DESCRIPTION:::/g, programDescription);
				
				if ($(buttonId).attr("prop_pictureUrl")) {
					var pictureUrl = $(buttonId).attr("prop_pictureUrl")
				}
				else {
					var pictureUrl = response.currentProgram.pictureUrl;
				}
				fbHtml = fbHtml.replace(/:::PROGRAM_PICTURE_URL:::/g, pictureUrl);
				
				if (badgesDialogHTML) {
					badgesDialogHTML = badgesDialogHTML.replace(/:::NEXT_HTML:::/g, fbHtml);
					displayNewBadgesDialog(badgesDialogHTML, true);
				}
				else {
					displayFBPostDialog(fbHtml);
				}
			}
			else {
				
				if (noBadges) {
					window.location.href = 'http://www.se.no/?op=WatchLive';
				}
				else if (response.forward == "true") {
					displayNewBadgesDialog(badgesDialogHTML, false, true);
				}
				else {
					displayNewBadgesDialog(badgesDialogHTML, false);
				}
				
			}
			
			
			
		}
		else {
		
		
			$.each(response.ids, function(i, n){

				$('.se-button.watch.' + n).addClass("inactive");
				$('.se-button.watch.' + n).removeClass("active");
			});
		}
		
						
			/*if (parentFrontPage == "ViewFavoritesReminders"){
				window.location.href = "index.php5?op=ViewFavoritesReminders";
			} else {
			
				$("div.favoritter-og-paminnelser").load("index.php5", {op: "ViewFrontUserFavorites"} );
				$('div.favoritter-og-paminnelser').oneTime(1000, "initButtons", function() {
					initFavButtons("div.favoritter-og-paminnelser div.program a.btn.favorite");
					initReminderButtons("div.favoritter-og-paminnelser div.program a.btn.reminder");
				});
			}*/
		
	}
	
	
	
}


function saveQuizScores(el) 
{
	
	hideAds();

	
		var html = $('#fb-login-message').attr("innerHTML");
		$.fancybox(
			html,
			{
	        		'autoDimensions'	: false,
				'width'         		: 450,
				'height'        		: 'auto',
				'showCloseButton' : true,
				'centerOnScroll' : true,
				'transitionIn'		: 'none',
				'transitionOut'		: 'none',
				'overlayColor'	: '#000000',
				'overlayOpacity'	: '0.5'
			}
		);


		$('#fancybox-inner #fb-login').click(function(e) {
			
			e.preventDefault();
			FB.login(function(response) {
				if (response.session) {
					var query = insertParam("claim", "1");
					
					window.location.href = 'http://www.se.no/quiz/?' + query;
					//window.location.reload();
				}
				else {
					$.fancybox.close();
				}
			});
		});
		
		
	
	
		showAds(); 
		
	return false;
}

function insertParam(key, value)
{
    key = escape(key); value = escape(value);

    var kvp = document.location.search.substr(1).split('&');

    var i=kvp.length; var x; while(i--) 
    {
        x = kvp[i].split('=');

        if (x[0]==key)
        {
                x[1] = value;
                kvp[i] = x.join('=');
                break;
        }
    }

    if(i<0) {kvp[kvp.length] = [key,value].join('=');}

    //this will reload the page, it's likely better to store this until finished
    //document.location.search = kvp.join('&');
    
    return kvp.join('&'); 
}

function displayFBPostDialog(html) {
	$.fancybox(
		html,
		{
        		'autoDimensions'	: false,
			'width'         		: 450,
			'height'        		: 'auto',
			'showCloseButton' : true,
			'centerOnScroll' : true,
			'transitionIn'		: 'none',
			'transitionOut'		: 'none',
			'overlayColor'	: '#000000',
			'overlayOpacity'	: '0.5'
		}
	);
	
	$('#fancybox-inner .fb_post_button').click(function(e) {
		e.preventDefault();
		var message = $('#fancybox-inner .fb_feed_message').attr("innerHTML");
		var link = $('#fancybox-inner .fb_feed_link').attr("innerHTML");
		var name = $('#fancybox-inner .fb_feed_name').attr("innerHTML");
		var description = $('#fancybox-inner .fb_feed_description').attr("innerHTML");
		var picture = $('#fancybox-inner .fb_feed_picture').attr("innerHTML");
		var callback = 'fbPostFeedCallback';
		$.post("http://www.se.no/index.php5", { op: 'FBPostFeed', message: message, link: link, name: name, description: description, picture: picture }, eval(callback) );
		$.fancybox.close();
	});
	
	$('#fancybox-inner .fancybox_close_button').click(function(e) {
		e.preventDefault();
		$.fancybox.close();
		window.location.reload();
	});	
}

function displayNewBadgesDialog(html, includeFBposting, forward) {
	$.fancybox(
		html,
		{
        		'autoDimensions'	: false,
			'width'         		: 450,
			'height'        		: 'auto',
			'showCloseButton' : true,
			'centerOnScroll' : true,
			'transitionIn'		: 'none',
			'transitionOut'		: 'none',
			'overlayColor'	: '#000000',
			'overlayOpacity'	: '0.5'
		}
	);
	
	if (forward) {
		$('#fancybox-inner .ok-button').click(function(e) {
			e.preventDefault();
			$.fancybox.close();
			//window.location.reload();
			//window.location.href = 'http://www.se.no/?op=WatchLive';
		});
	}
	else if (includeFBposting) {
		$('#fancybox-inner .ok-button').click(function(e) {
			e.preventDefault();
			var fbHtml = $('#fancybox-inner .next-html-container').attr("innerHTML");
			$.fancybox.close();
			displayFBPostDialog(fbHtml);
		});
	}
	else {
		$('#fancybox-inner .ok-button').click(function(e) {
			e.preventDefault();
			$.fancybox.close();
			window.location.reload();
		});	
	}
	
}


function fbPostFeedCallback(responseText, textStatus, XMLHttpRequest) 
{
	window.location.reload();
	//alert(responseText);
	//var response = eval("(" + responseText + ")");
	
	
}

