// welho.sc.ajax.js
var DEBUGMODE = false;

var BACKEND_ERROR = "Backend error. (ERR001)";
var NO_CONTENT_ERROR = "Sisältöä ei saatavilla. (ERR002)";
var CONTENT_LOADER = "Sisältö ladataan";

var activeLeagues = new Array();

var currentNavigation = "navi_1";
var leagueArrayAsString = "";

var mouseStatus = false;

var currentRecommendation = -1;
var totalRecommendations = 0;
pic1= new Image(); 
pic1.src="images/header_bg2.jpg"; 


$(document).ready(function() {
	$(".span").css('background-position', '0px 0px');
	$(".customcheckbox").attr('checked', false);
	
	$('#sports_button').click(function() {
		changeBrowseStyle("sports");
	});
	
	$('#channels_button').click(function() {
		changeBrowseStyle("channels");
	});
	
});

function startAgain() {
		$("span").css('background-position', '0px 0px');
		$(".customcheckbox").attr('checked', false);
		activeLeagues = new Array();
		loadDynamic('channels', activeLeagues, 'array');
}

function __globalDebugger(data) {
	if(DEBUGMODE==true) {
		alert(data);
	}
}

function changeBrowseStyle(targetStyle){
	if(targetStyle=="sports") {
		$("#main_header").css("background", "url(../images/header_bg.jpg)");
		$("#sport_navigation").show();
		$("#channel_navigation").hide();
	}
	if(targetStyle=="channels") {
		$("#main_header").css("background", "url(../images/header_bg2.jpg)");
		$("#sport_navigation").hide();
		$("#channel_navigation").show();	
	}
	$('div[class|=league_tooltip]').hide();
	$('div[class*=sport_link]').removeClass().addClass("sport_link");
	$('div[class*=channel_link]').removeClass().addClass("channel_link");
}

function showElement(targetObj) {
	$("#"+currentNavigation).fadeOut('fast', function() {
        currentNavigation = targetObj;
		$("#"+currentNavigation).fadeIn('fast');
    });
	
}

function loadDynamic(targetObject, containerArray, dataType) {
	loading = true;
	
	if(dataType=="array") {
		leagueArrayAsString = "";
		for(x=0; x<containerArray.length; x++) {
			leagueArrayAsString = leagueArrayAsString + containerArray[x] + ",";
		}
	} else {
		leagueArrayAsString = containerArray;	
	}
	
	if(containerArray.length<=9) {
		multiple = true;
	} else {
		multiple = false;
	}
	
	__globalDebugger("Active leagues as string: " + leagueArrayAsString);
	
	$.ajax({
		url : "functions/dev_func.readcontent.php?type="+targetObject+"&id="+leagueArrayAsString+"&multiple="+multiple,
		success : function (data) {
			
			//if(data.length<1) data = NO_CONTENT_ERROR;
			
			switch(targetObject) {
				case "channels":
					$("#"+targetObject).fadeOut('fast', function() {
						$("#"+targetObject).html(CONTENT_LOADER);
						$("#"+targetObject).html(data);
						$("#"+targetObject).fadeIn('fast');
					});
				break;
				
				case "recommendations":
				if(containerArray.length<4) { data = '<div class="box-rounded oblique">Valittuasi kiinnostavimmat urheiluohjelmat Sporttinaattori antaa sinulle suosituksensa kanavapaketeista. Kannattaa tsekata myös vaihtoehtoiset kanavapaketit!</div><a href="https://kauppa.welho.fi/" target="_blank"><img src="images/suosittelee_kanavat_3.jpg" border="0" /></a>';
				}
					$("#"+targetObject).fadeOut('fast', function() {
						$("#"+targetObject).html(CONTENT_LOADER);
						$("#"+targetObject).html(data);
						$("#"+targetObject).fadeIn('fast');
					});
				break;
				
				default:
					alert(BACKEND_ERROR);
				break;
			}
			
		}
	});
}

function hideElement(targetObj) {
	$("#"+targetObj).hide();
}

function removeFromLeagueArray(leagueId) {
	$("input[id="+leagueId+"]").attr("checked", false);
	$("input[id=alt_"+leagueId+"]").attr("checked", false);
	activeLeagues = jQuery.grep(activeLeagues, function(value) {
		return value != leagueId;
	});
	
	$("span[id="+leagueId+"]").css('background-position', '0px 0px');
	$("span[id=alt_"+leagueId+"]").css('background-position', '0px 0px');
	loadDynamic('channels', activeLeagues, 'array');
	
	
	
}

function updateLeagueArrayFromLabel(leagueId) {
	
	if($("input[id="+leagueId+"]").attr('checked')==false) {
		$("span[id="+leagueId+"]").css('background-position', '0px -30px');
		$("input[id="+leagueId+"]").attr("checked", true);
		
		$("span[id=alt_"+leagueId+"]").css('background-position', '0px -30px');
		$("input[id=alt_"+leagueId+"]").attr("checked", true);
		
		activeLeagues.push(leagueId);
	}
	else {
		$("input[id="+leagueId+"]").attr("checked", false);
		$("span[id="+leagueId+"]").css('background-position', '0px 0px');
		
		$("input[id=alt_"+leagueId+"]").attr("checked", false);
		$("span[id=alt_"+leagueId+"]").css('background-position', '0px 0px');
		
		activeLeagues = jQuery.grep(activeLeagues, function(value) {
			return value != leagueId;
		});
	}
	loadDynamic('channels', activeLeagues, 'array');
	
}

function updateLeagueArray(leagueId) {
	if(jQuery.inArray(leagueId, activeLeagues)>-1) {
		activeLeagues = jQuery.grep(activeLeagues, function(value) {
			return value != leagueId;
		});
		__globalDebugger("Removed item. Length: " + activeLeagues.length);

	} else {
		activeLeagues.push(leagueId);	
		__globalDebugger("Added item. Length: " + activeLeagues.length);
	}
	
	loadDynamic('channels', activeLeagues, 'array');
}

function initiateHover(targetObj, targetNav) {
	if(targetNav=="sports") {
		// Sport Navigation
		$("#link_"+targetObj).mouseenter(function() {
			heightToScale = $("#navi_"+targetObj).height();
			$('div[class*=sport_link]').removeClass().addClass("sport_link");
			$("#link_"+targetObj).removeClass().addClass("sport_link sport_link_hover");
			$('div[class|=league_tooltip]').hide();
			$("#navi_"+targetObj).show();
			$("#navi_"+targetObj).topZIndex();
			mouseStatus = true;
		});
		
		$("#navi_"+targetObj+" .header").mouseleave(function(){
			mouseStatus=false;
			setTimeout(function(){ hideTooltip(targetObj) }, 5);
		});
		
		$("#navi_"+targetObj+" .content").mouseenter(function(){
			mouseStatus = true;
		});
															  
		$("#navi_"+targetObj+" .content").mouseleave(function(){
			mouseStatus = true;
			$("#navi_"+targetObj).hide();
			$("#link_"+targetObj).removeClass().addClass("sport_link");
		});
	}
	else {
		// Channel navigation
		$("#chan_link_"+targetObj).mouseenter(function() {
			heightToScale = $("#navi_"+targetObj).height();
			$('div[class*=channel_link]').removeClass().addClass("channel_link");
			$("#chan_link_"+targetObj).removeClass().addClass("channel_link channel_link_hover");
			$('div[class|=league_tooltip]').hide();
			$("#chan_navi_"+targetObj).show();
			$("#chan_navi_"+targetObj).topZIndex();
			mouseStatus = true;
		});
		
		$("#chan_navi_"+targetObj+" .header").mouseleave(function(){
			mouseStatus=false;
			setTimeout(function(){ hideTooltip(targetObj) }, 5);
		});
		
		$("#chan_navi_"+targetObj+" .content").mouseenter(function(){
			mouseStatus = true;
		});
															  
		$("#chan_navi_"+targetObj+" .content").mouseleave(function(){
			mouseStatus = true;
			$("#chan_navi_"+targetObj).hide();
			$("#chan_link_"+targetObj).removeClass().addClass("channel_link");
		});
	}
}

function hideTooltip(targetObj) {
		if(mouseStatus == false) {
			$("#navi_"+targetObj).hide();
			$("#link_"+targetObj).removeClass().addClass("sport_link");
		}	
}

function bindTooltip(targetObj) {
	$(".tooltip_link_"+targetObj).mouseenter(function(){
		$(this).parent().find('.tooltip_'+targetObj).show();	  
	});
	
	$(".tooltip_link_"+targetObj).mouseleave(function(){
		//$(".tooltip_"+targetObj).fadeOut('fast');
		$(this).parent().find('.basetooltip').hide();
	});
	
	$(".tooltip_"+targetObj).mouseenter(function(){
		//$(".tooltip_"+targetObj).fadeOut('fast');
		$(this).parent().find('.basetooltip').hide();
	});
}


function zIndexWorkaround()
{
        var zi = 1000;
        $("div.block").each(function() {
			zi = zi-10;
			var p = $(this);
            p.css("z-index", zi);
        });
		
		$("div.channelLine").each(function() {
			zi = zi-10;
			var p = $(this);
            p.css("z-index", zi);
        });
}

function changeRecommendation(direction) {
	
	
	if(direction=="next"  && currentRecommendation<totalRecommendations-1) {
		$(".floatingRecommendation").hide();
		$("#rec_"+(currentRecommendation+1)).show();
		$("#prev").fadeIn();	
		currentRecommendation++;
			if(currentRecommendation==totalRecommendations-1) {
					$("#next").fadeOut();
			}
	} else if(direction=="prev" && currentRecommendation>-1) {
		$(".floatingRecommendation").hide();
		$("#rec_"+(currentRecommendation-1)).show();
		$("#next").fadeIn();
		currentRecommendation--;
			if(currentRecommendation==-1) {
				$("#prev").fadeOut();
			}
	}
	//alert("Total: " + totalRecommendations + " Current: " + currentRecommendation);
}


