function superlmSfInit() {
	
	$('#slm_less_params').hide();
	
	$('#slm_clean_form').click(function(){
		$('#sf').clearForm();
		refreshSlmForm();
		return false;
	});
	
	$('#slm_more_params').click(function(){
		showMoreParams();
		refreshSlmForm();
	});
	
	$('#slm_less_params').click(function(){
		hideMoreParams();
		refreshSlmForm();
	});
	
	refreshSlmForm(true);
	
	var smallForm = $(document).getUrlParam('small_form');
	if(smallForm) {
		$('#small_form').val(smallForm);
	}
	
	if($('#small_form').val() == '0') {
		showMoreParams();
	}
	else {
		hideMoreParams();
	}
	$('#sf select').change(function(){ refreshSlmForm() });
	
}


function hideMoreParams() {
	$('.sf_hidden_row').hide();
	$('#slm_less_params').hide();
	$('#slm_more_params').show();
	$('#small_form').val('1');
}

function showMoreParams() {
	$('.sf_hidden_row').show();
	$('#slm_more_params').hide();
	$('#slm_less_params').show();
	$('#small_form').val('0');
}

function refreshSlmForm(onLoad) {
	$('#sf_count').hide();
	$('#sf_loading').show();
	if(onLoad) {
		var formState = creatUrlStateMap();
		var formData = location.search;
	}
	else {
		var formState = createStateMap();
		var formData = '?'+$('#sf').formSerialize();
	}
	var optGroupLine = '----------------------------------';
	var url = '/superlm_form_data.php'+formData;
	$.getJSON(url, function(data) {
		$.each(data, function(entryIndex, entry) {
			if(entryIndex=='count') {
				$('#sf_count').html(entry);
				if(entry == '0') {
					if (typeof(RSS) !== 'undefined' && RSS == true) {
						alert('Tato nabídka již není platná!');
						window.location.href = "http://super.last-minute.cz"; 
					}
					else
						alert('Zvoleným podmínkám nevyhovuje žádný zájezd!');
				}
				return;
			}
			else {
				var selector = '#sf_'+entryIndex;
				var fieldName = $(selector).attr('name');
				var options = '<option value="">nerozhoduje</otpion>';
				var selected = '';
				options += '<option value="" class="gray" disabled="disabled">'+optGroupLine+'</option>';
				$.each(entry, function(key, val) {
					if(val == '--') {
						options += '<option value="'+key+'" class="gray" disabled="disabled">'+optGroupLine+'</option>';
					}
					else {
						selected = '';
						if(formState[fieldName] == key) {
							selected = ' selected';
						}
						options += '<option value="'+key+'"'+selected+'>'+val+'</option>';
					}
				});
				$(selector).html(options);
			}
		});
		$('#sf_count').show();
		$('#sf_loading').hide();
	});
	
}


function creatUrlStateMap() {
	var params = new Array('zeme[]','destinace[]','delka[]','odjezdDay','strava[]','ck_id[]','typ_ubytovani[]','zamereni[]','doprava[]','maxCena[]','osob[]');
	var map = new Array();
	for(var i=0; i<params.length; i++) {
		map[params[i]] = unescape($(document).getUrlParam(params[i]));
	}
	return map;
}
function createStateMap() {
	var formState = $('#sf').formToArray();
	var map = new Array();
	$.each(formState, function(index, o) {
		map[o.name] = o.value;
	});
	return map;
}

// super lm search form end ----------------------------------------------------

var flightStatusMessages = {
	on : "skrýt&nbsp;&laquo;",
	off : "zobrazit&nbsp;&raquo;"
}

var flightStatus = {};

function superLmInit() {
	$("#slm_aktualne tbody tr").click(function() { 
		showFlights(this); 
		return false;
	});
	$("#slm_aktualne tbody tr.flight a").click(function() { 
		showFlights(this.parentNode.parentNode);
		return false; 
	});
	// showFlights($("#slm_aktualne tbody tr:first").get(0));
	//var tableRow = $("#slm_aktualne tbody tr:first").get(0);
	//flightStatus[tableRow.id] = 0;
	//$('a', tableRow).html(flightStatusMessages.on);
}

function showFlights(tableRow) {
	
	// check if there are any:
	var shown = $('.fs_'+tableRow.id);
	var jTableRow = $(tableRow);
	
	if (shown.length > 0) {
		shown.toggle();
		if (flightStatus[tableRow.id]++ % 2) {
			$('a', tableRow).html(flightStatusMessages.on);
			jTableRow.addClass("activeFlight");
			underlinePreviousRow(tableRow, true);
			jTableRow.removeClass("beforeActiveFlight");
		} else {
			$('a', tableRow).html(flightStatusMessages.off);
			jTableRow.removeClass("activeFlight");
			underlinePreviousRow(tableRow, false);
			
			var fRows = $("#"+tableRow.id+" ~ .flight");
			if (fRows.length > 0) {
				if (fRows.get(0).className.indexOf("activeFlight") > -1) {
					jTableRow.addClass("beforeActiveFlight");
				}
			}
		}
	} else {
	
		// show info about loading:
		var infoRow = $('<tr></tr>');
		var infoCell = $('<td colspan="9" class="infoRow"></td>');
		infoCell.html("Vyhledávám ...");
		infoRow.html(infoCell);
		jTableRow.after(infoRow);

		jTableRow.removeClass("beforeActiveFlight");
		underlinePreviousRow(tableRow, true);
		jTableRow.addClass("activeFlight");

		// load content
		var url = $('a', tableRow).get(0).href.replace(/.*\?/,'');
		$.get("/superlm_data.php?"+url, function(data) {
			// hide info about loading, prepare and display data
			infoRow.remove();
			data = data.replace(/tr class="/g,'tr class="fs_'+tableRow.id+' ');
			jTableRow.after(data);

			// change message in "showme" link and add line under shown table
			$('a', tableRow).html(flightStatusMessages.on);		
			flightStatus[tableRow.id] = 0;
			$('.fs_' + tableRow.id + ':last').addClass("lastInList");
			
			// set page height
			setVyskaLevehoSloupce();
		});
	}	
}

function underlinePreviousRow(row, state) {
	var prevRowId = parseInt(row.id.replace(/row_/,"")) - 1;
	if (prevRowId < 1) return;
	prevRowId = "row_" + prevRowId;
	
	var jPrevRow = $("#" + prevRowId);
	if (jPrevRow.length < 1) return;
	
	if (state) {
		if (jPrevRow.get(0).className.indexOf("activeFlight") == -1) {
			$("#" + prevRowId).addClass("beforeActiveFlight");
		}
	} else {
		$("#" + prevRowId).removeClass("beforeActiveFlight");		
	}
}

function hiLite(tableRow, switchOn) {
	// colorIt(tableRow, switchOn);
	//*
	if (switchOn) {
		$(tableRow).addClass("el_hover");
	} else {
		$(tableRow).removeClass("el_hover");
	}
	//*/
}

function refreshme() {
	window.location.reload();
}
