var regions = new Array();
var skigrounds = new Array();
var regionsa = new Array();
var skigroundsa = new Array();
var accommodations = new Array();

function setOptions(select, options, addAll) {	
    for(i=select.options.length-1;i>=0;i--){
        select.options[i]=null;
    }
    select.options.length = 0;        
    $.each(options, function(i,item){
        select.options[select.options.length] = new Option(item, i);
    });    
	if (addAll) {
		select.options[select.options.length] = new Option('Minden', '0');
	}
    select.value='';
}


function getRegionsa(country) {
	var accommodationSelect = $('#szallasa').get(0);
	//setOptions(accommodationSelect, {'': 'Szállás'});
	
	var select = $('#regioa').get(0);
	if (regionsa[country] != undefined) {
		setOptions(select, regionsa[country], true);
	} else {
		$('#regioa').addClass('loading');
		$.getJSON('/index/regions', {countrya: country}, function(data) {
			setOptions(select, data, true);
			regionsa[country] = data;
			$('#regioa').removeClass('loading');
		});
	}
}

function getSkigroundsa(region) {
	var select = $('#siterepa').get(0);
	if ((skigroundsa[region]) != undefined) {
		setOptions(select, skigroundsa[region], true);
	} else {
		$('#siterepa').addClass('loading');
		$.getJSON('/index/skigrounds', {regiona: region}, function(data) {
			setOptions(select, data, true);
			skigroundsa[region] = data;
			$('#siterepa').removeClass('loading');
		});
	}
}


function getRegions(country) {
	var accommodationSelect = $('#szallas').get(0);
	//setOptions(accommodationSelect, {'': 'Szállás'});
	
	var select = $('#regio').get(0);
	if (regions[country] != undefined) {
		setOptions(select, regions[country], true);
	} else {
		$('#regio').addClass('loading');
		$.getJSON('/index/regions', {country: country}, function(data) {
			setOptions(select, data, true);
			regions[country] = data;
			$('#regio').removeClass('loading');
		});
	}
}

function getSkigrounds(region) {
	var select = $('#siterep').get(0);
	if (skigrounds[region] != undefined) {
		setOptions(select, skigrounds[region], true);
	} else {
		$('#siterep').addClass('loading');
		$.getJSON('/index/skigrounds', {region: region}, function(data) {
			setOptions(select, data, true);
			skigrounds[region] = data;
			$('#siterep').removeClass('loading');
		});
	}
}


function getAccommodations(skiground) {
	var select = $('#szallas').get(0);
	if (accommodations[skiground] != undefined) {
		setOptions(select, accommodations[skiground]);
	} else {
		$('#szallas').addClass('loading');
		$.getJSON('/index/accommodations', {skiground: skiground}, function(data) {
			setOptions(select, data);
			accommodations[skiground] = data;
			$('#szallas').removeClass('loading');
		});
	}
}

function scrollTable() {
	$('.price-table  table').each(function(i) {
		var width = $(this).width();
		if (width > 524) {
			var caption = $('caption', this).html();
			$('caption', this).remove();
			var height = $(this).height();
			var firstColWidth = $('tbody tr td', this).get(0).clientWidth;
			var htmlLeft = $(this).clone();
			var htmlRight = $(this).clone();
			$(this).remove();
			$('.price-table').prepend('<div id="left-pane-'+i+'" class="left-pane"></div>');
			$('#left-pane-'+i)
				.css({height: height, width: firstColWidth})
				.html(htmlLeft)
				.after('<div id="right-pane-'+i+'" class="right-pane"></div>');
			$('#right-pane-'+i)
				.css({height: height+20, width: 524-firstColWidth})
				.html(htmlRight)
				.after('<div class="clear"></div>');
			$('#left-pane-'+i+' table').css('margin', '0 0 0 1px');
			$('#right-pane-'+i+' table').css('margin', '0 0 0 ' + (-1*firstColWidth) + 'px');
			if (caption) {
				$('#left-pane-'+i).before('<b class="caption">'+caption+'</b>');
			}
		}
	});
}

var ticketsVisible = false;
var busTicketsVisible = false;
$(function() {
	$('#orszag').change(function() {
		getRegions($(this).val());
	});
	
	$('#regio').change(function() {
		getSkigrounds($(this).val());
	});
    
    $('#orszaga').change(function() {
		getRegionsa($(this).val());
	});
	
	$('#regioa').change(function() {
		getSkigroundsa($(this).val());
	});
    
	/*
	$('#siterep').change(function() {
		getAccommodations($(this).val());
	});
	*/
	
	$('div.description a.more, div.desc a.more').click(function() {
		$(this).parents('.short').hide(0);
		$(this).parents('.short').siblings('.long').show(0);
		return false;
	});

	$('div.description a.less, div.desc a.less').click(function() {
		$(this).parents('.long').hide(0);
		$(this).parents('.long').siblings('.short').show(0);
		return false;
	});
	
	$('a.ski-ticket-more').click(function() {
		//$('div.ski-tickets').toggle();
		if (!ticketsVisible) {
			$(this).html('síbérlet árak -');
			$('div.ski-tickets').slideDown('normal');
		} else {
			$(this).html('síbérlet árak +')
			$('div.ski-tickets').slideUp('normal');
		}
		ticketsVisible = !ticketsVisible;
		return false;
	});

	$('a.bus-ticket-more').click(function() {
		//$('div.bus-tickets').toggle();
		if (!busTicketsVisible) {
			$(this).html('buszos utak -');
			$('div.bus-tickets').slideDown('normal');
		} else {
			$(this).html('buszos utak +');
			$('div.bus-tickets').slideUp('normal');
		}
		busTicketsVisible = !busTicketsVisible;
		return false;
	});
/*
	$('table:not(.nostyle, .tracks, .accentuated)').each(function() {
		$(this).addClass('sionline');
	});
*/
	$('table').each(function() {
		if (!$(this).hasClass('nostyle') && !$(this).hasClass('tracks') && !$(this).hasClass('accentuated')) {
			$(this).addClass('sionline');
		}
	});
	scrollTable();

	$('table.sionline').each(function() {
		var margin = $(this).get(0).style.margin;
		$(this).attr('style', '');
		$(this).css('width', '100%');
		$(this).css('margin', margin);
		if ($('th', this).length == 0) {
			$('tr:first-child td', this).addClass('th');
		}
	});

	$('table.sionline tbody tr').each(function(i) {
		if (i % 2 == 1) {
			$(this).addClass('even');
		}
	});

	var $p = $('<p style="display:none"></p>');
	$('#header .accentuated').append($p);
	$('#header .accentuated p').each(function() {
		$p.html($(this).html());
		if ($p.width() > $(this).width()) {
			$(this).mouseover(function() {
				var p = $(this).position();
				$(this).next('span')
					.show(0)
					.css({left: p.left + 150, top: p.top - 49});
			});
			$(this).mouseout(function() {
				$(this).next('span').hide(0);
			});
		}
	});
	$p.remove();
	
	var mainImageCount = $('#header .mainimage .image').length;
	var currentMainImage = 1;
	if (mainImageCount > 1) {
		setInterval(function() {
			/*
			if (currentMainImage == mainImageCount) {
				currentMainImage = 1;
			}
			*/
			$('#header .mainimage .image:nth-child('+currentMainImage+')').fadeOut(1500);
			$('#header .mainimage .image:nth-child('+(currentMainImage == mainImageCount ? 1 : currentMainImage+1)+')').fadeIn(1500, function() { 
				if (currentMainImage == mainImageCount) {
					currentMainImage = 1;
				} else {
					currentMainImage++;
				}
			});
		}, 5000);
	}

	$('#newsletter-form').ajaxForm({
		dataType: 'json',
		beforeSubmit: function() {
			$('#newsletter-form .submit').attr('disabled', 'disabled');
			$('#newsletter-form .errors').html('');
			return true;
		},
		success: function(data) {
			var messages = new Array();
			var ok = false;
			for (var i in data) {
				if (i == 'ok') {
					ok = true;
				} else {
					messages.push(data[i]);
				}
			}
			if (typeof(alertErrors) != 'undefined') {
				alert(messages.join("\n").replace(/<br ?\/?>/g, "\n"));
			} else {
				$('#newsletter-form .errors').html(messages.join('<br />'));
			}
			if (ok) {
				$('#newsletter-form').clearForm();
			}
			$('#newsletter-form .submit').removeAttr('disabled');
		}
	});

	$('ul.navigation a.accname').hover(function() {
		if (span = $('+ul', this).find('.menuimage span')) {
			$(span).replaceWith('<img src="'+$(span).html()+'" width="166" height="110" alt="" />');
		}
	});

});

