/****************************************
	Table of contents:
		1. Common
		2. Ohjelmataulukko
		3. Digiboksit
*****************************************/

/*********************************************************************************
	1. Common
	----------
	These functions are used in several pages. Like mainmenu's submenu and
	newsletter ordering functions.
	
**********************************************************************************/

var submenuLayer=null;
function submenuOpen(nr) {
	
	submenuReset();
	clearTimeout(submenuLayer);
	
	var id = 'm'+nr;
	if( document.getElementById(id) ){
		document.getElementById(id).style.visibility = 'visible';
	}
}
function submenuReset() {
	var count = 6;
	for( var c = 0; c<count; c++){
		var id = 'm'+(c+1);
		if( document.getElementById(id) ){
			document.getElementById(id).style.visibility = 'hidden';
		}
	}
}
function submenuClose() {
	submenuLayer = setTimeout('submenuReset()', 600);
}
function orderNewsletter(){
	
	// Define function settings
	var elementFormID = "order-newsletter-form";
	var elementEmailName = "email";
	var elementMessageID = "order-newsletter-msg";
	
	// First serialize form and check if content is valid
	var form = document.getElementById(elementFormID);
	if( form ){
		
		// Loop thru elements
		for( var e = 0; e<form.elements.length; e++ ){
			
			// We're looking for email -input field
			if( form.elements[e].name == elementEmailName ){
				
				// Found!
				var value = form.elements[e].value;
				
				// Serialize
				var data = $('#'+elementFormID).serialize();
				
				// Request
				$.ajax({
					type: "POST",
					url: "/handlers/uutiskirje.php",
					data: data,
					success: function(msg){
						var message = msg.split(" ");
						var status = message[0];
						delete message[0];
						message = message.join(" ").replace(/^\s+|\s+$/g, '');
						
						if( status == "OK" ){
							$('#'+elementMessageID).html(message);
							$('#'+elementFormID).hide();
						}
						else if( status == "ERROR" ){
							$('#'+elementMessageID).html(message);
						}
						else{
							$('#'+elementMessageID).html('Tuntematon vastaus, uutiskirjeen tilaaminen epäonnistui.');
						}
						
					}
				});
				
				break;
			}
			
		}
		
	}
	
}
function validEmail(email){
	var reg = /^([a-zA-Z0-9])+(([-_\.])?([a-zA-Z0-9]))+@([a-zA-Z0-9])+(([-\.])?([a-zA-Z0-9]))+\.([a-z]{2,6})$/;
	return reg.test(email);
}
var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var mouseX = 0;
var mouseY = 0;
function getMouseXY(e) {
	if (IE) { // grab the x-y pos.s if browser is IE
		mouseX = event.clientX + document.body.scrollLeft;
		mouseY = event.clientY + document.body.scrollTop;
	}
	else {  // grab the x-y pos.s if browser is NS
		mouseX = e.pageX;
		mouseY = e.pageY;
	}  
	if (mouseX < 0){mouseX = 0;}
	if (mouseY < 0){mouseY = 0;}  
	/*document.Show.MouseX.value = mouseX;
	document.Show.MouseY.value = mouseY;*/
	return true;
}

/*********************************************************************************
	2. Ohjelmataulukko
	------------------
	EPG for Viasat, these functions are used only in "Ohjelmataulukko" section.
	
**********************************************************************************/
function moveToWeek(to){
	
	// Make sure we have parameter defined
	if( typeof(to) == "undefined" ) return;
	
	// Hide all weeks
	$('.weeks .week').hide();
	
	// Show week
	$('#week-'+to).show();
	
	// Loop weeks to X
	for( var w = 0; w<weeks.length; w++){
		if( weeks[w] == to ){
			
			// Define new week number
			to = to.split("-");
			$('.selected-week span').html(to[1]);
			
			// Define new previous and next values
			if( typeof(weeks[w-1]) != "undefined" ){
				$(".select-week-previous a").attr("href", "javascript:moveToWeek('"+weeks[w-1]+"')");
			}
			if( typeof(weeks[w+1]) != "undefined" ){
				$(".select-week-next a").attr("href", "javascript:moveToWeek('"+weeks[w+1]+"')");
			}
			
			break;
		}
	}
	
}
function changeCategory(to){
	if( typeof(to) == "undefined" ) return;
	var url = location.href;
	var segment = url.split("/");
	segment[4] = to;
	location.href = segment.join("/");
}
var tooltipElement = null;
function openTooltip(element, description, imgPath){
	
	// Close up possible opened tooltip
	tooltipReset();
	clearTimeout(tooltipElement);
	
	// We require these parameters
	if( typeof(element) == "undefined" ) return;
	if( typeof(description) == "undefined" ) return;
	
	// Only string or undefiend/null are allowed
	if( !(typeof(imgPath) == "undefined" || typeof(imgPath) == "null" || typeof(imgPath) == "string") ) return;
	
	// Find out location of parent element
	var x = mouseX-5;
	var y = mouseY-25;
	
	// Setup tooltip markup
	var html =	"<div id='tooltip' style='display:none;position:absolute;top:"+y+"px;left:"+x+"px;'><div class='left'><div class='left-top'></div><div class='left-middle'><div class='left-arrow'>&nbsp;</div></div><div class='left-bottom'></div></div><div class='content'><div class='inner-border'>"+
				( typeof(imgPath) == "string" ? "<img src='"+imgPath+"' alt=''/>" : "")+
				"<p>"+description+"</p>"+
				"<a class='button-lisaa-suosikiksi'><span>Lisää suosikiksi</span></a>"+
				"</div></div></div>";
				
}

/*********************************************************************************
	3. Digiboksit
	------------------
	These functions are used on digiboxes pages to navigate thru brands.
	
**********************************************************************************/
function show_category(category){
	
	if( !category ) return;
	
	// Nollaa kaikki
	$('.digibox-navigation li a').removeAttr('class');
	$('.digiboksi-malli').hide();
	
	if( category == 'all' )
	{
		// Näytä kaikki kategoriat
		$('#digibox-navigation-all a').attr('class', 'selected');
		$('.digiboksi-malli').show();
	}
	else
	{
		// Näytä yksi kategoria
		$('#digibox-navigation-'+category+' a').attr('class', 'selected');
		$('#malli-'+category).show();
	}
}

/*********************************************************************************
	4. Header
	------------------
	These functions are copied from header.js, which possibly takes care
	of header navigation?
	
**********************************************************************************/

function goloc(url) { location.href = url; }
function stopErrors() { return true; }
window.onerror = stopErrors;
var tiden=null;
function visa(nr) {
	vakiomeny();
	clearTimeout(tiden);
	if(nr>0&&nr<8) {
		document.getElementById('m'+nr).style.visibility = 'visible';
	}
}
function vakiomeny() {
	document.getElementById('m1').style.visibility = 'hidden';
	document.getElementById('m2').style.visibility = 'hidden';
	document.getElementById('m3').style.visibility = 'hidden';
	document.getElementById('m4').style.visibility = 'hidden';
	document.getElementById('m5').style.visibility = 'hidden';
	document.getElementById('m6').style.visibility = 'hidden';
	document.getElementById('m7').style.visibility = 'hidden';
}
function vakio() {
	tiden=setTimeout('vakiomeny()',600);
}
function displaylayer(x) {
	document.getElementById(x).style.display = 'block';
}
function hidelayer(x) {
	document.getElementById(x).style.display = 'none';
}





/* End of file: viasat.js */
/* Location: ./assets/js/viasat.js */