// Forum P common.js

// Car page (kuukaudenauto)
var carPage = 0;
var carMaxPage;

// Pohjakartta
var P2 = true;

// JQuery main function
$(function() {
	// Hide menus at first
	$('.submenu').hide();
	
	// Add menu opening code
	$('a', $('.submenu').prev('h2')).click( function() { return toggleMenu(this); } );

	// Desktop only stuff
	if(display == 'desktop') {
		// Set all ul elements the same size for border between them in the submenu
		$(".submenu").each(function(index) {
			var height = $(this).height() - 30;
			$(this).children().height(height);
		});
		
		// So you can close it by clicking outside the menu
		$('html').click(function() {
			$('.submenu').hide();
			$("li", $("#mainMenu")).removeClass('clicked');
		});
	
		// But allow clicking the menu
		$('#menu').click(function(event) {
			event.stopPropagation();
		});

		$('a', '.submenu').click(function() {
			$('.submenu').hide();
			$("li", $("#mainMenu")).removeClass('clicked');
		});

		// SERVICE
		
		// Change the advertised service every x seconds
		serviceTimer = window.setTimeout(changeService, 6000);
	
		// Service controls
		$('#service_prev').click(prevService);
		$('#service_next').click(nextService);	
		
		// HINNAT
		if(page == 'hinnat') {
			$("table.prices").delegate('th,td','mouseover mouseleave', function(e) {
				if (e.type == 'mouseover') {
					var colgroup = $("colgroup").eq($(this).index());
					if(colgroup.attr('id') == 'P1' || colgroup.attr('id') == 'P2')
						colgroup.addClass("hover");
				}
				else {
					$("colgroup").eq($(this).index()).removeClass("hover");
				}
			});	
		}
		
		// CARS
		if(page == 'kuukaudenauto') {
			carMaxPage = (carsArray.length / 4) - 1;

			// Service controls
			$('#car_prev').click(carScrollLeft);
			$('#car_next').click(carScrollRight);	
			
			changeCars();
			updateNavi();
		}
		
		// POHJAKARTTA
		if(pohjakartta) {
			$('#floormap_show li.title').click(function() { $('.floormap_image').toggleClass("display"); $('.floormap_toggle').toggleClass("selected"); });
			$('#floormap_show .active').click(function() { $('#' + $(this).attr('id') + '_image').toggleClass("display"); $('#' + $(this).attr('id')).toggleClass("selected"); });
			
			$('#floormap_tasot').click(function() { swapPohjakartta() } );
			
			$('#show_P1').click(function() { swapPohjakartta("P1"); } );
			$('#show_P2').click(function() { swapPohjakartta("P2"); } );
			
			$('#floormap_tasot').hover( function() { miniMap(!P2); }, function() { miniMap(P2); });
		}
	}

	//
	if(page == 'maksuvaihtoehdot') {
		$("div.moreInfo").hide();
		
		$("li.trigger").click(function() {
			//
			$(this).toggleClass("open").children("div.moreInfo").slideToggle();

			// 
			$("div.moreInfo").click(function(e) { e.stopPropagation(); })
		});
	}

	// Lightbox
    $("a[rel^='lightbox']").fancybox({
		'titleShow': true,
		'titlePosition': 'over'
	});
	
	$("a[rel^='videobox']").fancybox({
		'type'				: 'iframe'
	});
});

// Pohjakartta
function swapPohjakartta(taso) {
	if(taso == null)
		P2 = !P2;
	else
		P2 = (taso != 'P1');
		
	$(".taso").each( function() {
			var s = $(this).attr("src");
			$(this).attr("src", s.replace(s.charAt(20), (P2 ? '2' : '1')));
		} 
	);
	
	miniMap(P2);
	
	var ylataso, alataso;
	
	switch(lang) {
		case 'fi':
		default:
			ylataso = 'Ylätaso';
			alataso = 'Alataso';
			break;
		case 'sv':
			ylataso = 'Övre planet';
			alataso = 'Nedre planet';
			break;
		case 'en':
			ylataso = 'Upper level';
			alataso = 'Lower level';
			break;
		case 'ru':
			ylataso = 'Верхний ярус';
			alataso = 'Нижний ярус';
			break;

	}
	
	if(P2) {
		$("#show_P2").addClass("selected");
		$("#show_P1").removeClass("selected");
		$("#tasonimi").html(ylataso);
	} else {
		$("#show_P1").addClass("selected");
		$("#show_P2").removeClass("selected");
		$("#tasonimi").html(alataso);
	}
}

function miniMap(taso) {
	if(taso) {
		$("#tasot_p2").show();
		$("#tasot_p1").hide();
	} else {
		$("#tasot_p1").show();
		$("#tasot_p2").hide();
	}	
}

// Show a menu
function toggleMenu(item) {
	// get submenu item
	item = $(item).closest('li');
	var wanted = $(".submenu", item);

	// hide others
	$(".submenu").not(wanted).hide();
	
	// hide selection
	$("li", $("#mainMenu")).not(item).removeClass('clicked');

	// show / hide this menu
	wanted.toggle();
	
	// show selected
	item.toggleClass('clicked');
	
	// skip going to href
	return false;
}

function serviceWindow(id, lang) {
	$.ajax({
		url: "php/JSON_getService.php",
		data: "ID=" + id + "&lang=" + lang,
		type: 'GET',
		dataType: 'json',
		success: function(data){
			var html = '<div><img src="images/services/300x200/' + data[1] + /*'" width="300" height="' + data[6] + */'" alt="service image" /></div><h3>' + data[2] + '</h3><p>' + data[3] + '</p>';
			
			$('#serviceWindow').html(html);
		}
	});
	
	return false;
}

//
// CARS
//
function carScrollLeft() {
	carPage--;
	if(carPage < 0)
		carPage = 0;
	
	changeCars();
	updateNavi();

	return false;
}

function carScrollRight() {
	carPage++;
	if(carPage > carMaxPage)
		carPage = carMaxPage;
		
	changeCars();
	updateNavi();

	return false;
}

function changeCars() {
	$("#car_buttons").html('');
	
	var start = carPage * 4;
	
	for(var i = start; i < start + 4; i++) {
		var text = '<div class="carSmall" onclick="return changeCar(' + carsArray[i][0] + ');">';
		if(carsArray[i][1] != null)
			text += '<div class="carSmallImage"><img src="images/cars/50x47/' + carsArray[i][1] + '" /></div>';
		else
			text += '<div class="carSmallImage"><img src="images/cars/50x47/na.png" /></div>';
		text += '<br />' + carsArray[i][2] + '<br />' + carsArray[i][3] + '</div>';
		
		$("#car_buttons").append(text);
	}
}

function updateNavi() {
	$("#car_scroll_navi").html('');

	for(var i = 0; i <= carMaxPage; i++)
		$("#car_scroll_navi").append('<a href="#" ' + (carPage == i ? 'class="clicked" ' : '') + 'onclick="return carNavi(' + i + ');">');
}

function carNavi(page) {
	carPage = page;
	changeCars();
	updateNavi();
	
	return false;
}

function changeCar(id) {
	$("#car_image").addClass("loading");
	$("#car_image").attr('src', "images/loading.gif");
	
	$.ajax({
		url: "php/JSON_getCar.php",
		data: "ID=" + id,
		type: 'GET',
		dataType: 'json',
		success: function(data){
			$("#car_image").removeClass("loading");
			if(data[12] != null)
				$("#car_image").attr('src', "images/cars/256x232/" + data[12]);
			else
				$("#car_image").attr('src', "images/cars/256x232/na.png");

			$("#car_name").html(data[1]);
			$("#car_year").html(data[2]);
			
			$("#car_engine1").html(data[3]); 
			$("#car_engine2").html(data[4]); 
			$("#car_hp").html(data[5]);
			$("#car_topspeed").html(data[6]); 
			$("#car_length").html(data[7]); 
			$("#car_width").html(data[8]); 
			$("#car_height").html(data[9]); 
			$("#car_weight").html(data[10]); 

			$("#car_description").html(data[11]);
			
		}
	});
	
	return false;	
}

//
// SERVICE
//
// Service Box changing

// Service changing
var serviceAnimation = false;
var serviceID = serviceMinID;
var serviceTimer;
var serviceLoaded = false;

function prevService() {
	clearTimeout(serviceTimer);
	changeService(true);
	
	return false;
}

function nextService() {
	clearTimeout(serviceTimer);
	changeService();
	
	return false;
}


// Load new data in serviceBoxTemp
function loadService(previous) {
	if(previous) {
		serviceID--;
	
		if(serviceID < serviceMinID)
			serviceID = serviceMaxID;
	} else {
		serviceID++;
		
		if(serviceID > serviceMaxID)
			serviceID = serviceMinID;
	}

	$('#serviceBoxTemp').html(servicesArray[serviceID])

	$('img', '#serviceBoxTemp').load(function() {
		serviceLoaded = true;									  
	});
}

// Show the new data
function changeService(previous) { 	
	if(!serviceAnimation) {
		loadService(previous);

		//var wantedDirection = (previous ? "right" : "left");
		//var oppositeDirection = (previous ? "left" : "right");

		serviceAnimation = true;
		$('#serviceBox').fadeOut(750, 'swing', function () {
			if(serviceLoaded) {
				$('#serviceBox').html(servicesArray[serviceID]);

				$('#serviceBox').fadeIn(750);//("slide", {direction:oppositeDirection}, 1500);
				serviceLoaded = false;
			}

			serviceAnimation = false;
			serviceTimer = window.setTimeout(changeService, 6000);
		});	
	}
}
