function showMenu( wh )
{
	var o1 = findObject( 'mbg_'+wh );
	var o2 = findObject( 'm_'+wh );
	if( !o1 || !o2 )
		 return;
	o1.className = 'smenubg ' + wh;
	o2.className = 'smenu ' + wh;
}

function hideMenu( wh )
{
	var o1 = findObject( 'mbg_'+wh );
	var o2 = findObject( 'm_'+wh );
	if( !o1 || !o2 )
		 return;
	o1.className = 'nmenubg ' + wh;
	o2.className = 'nmenu ' + wh;
}

function checkFields()
{
    var f1 = findObject( 'fio1' );
    if( f1 && f1.value == '' )
	{
	alert( 'Заполните, пожалуйста, ФИО пассажиров.' );
	f1.focus();
	return false;
	}
    var dr = findObject( 'dr' );
    if( dr && dr.value == '' )
	{
	alert( 'Заполните, пожалуйста, желаемую дату вылета.' );
	dr.focus();
	return false;
	}
    dr = findObject( 'from' );
    if( dr && dr.value == '' )
	{
	alert( 'Заполните, пожалуйста, место, из которого вы желаете вылететь.' );
	dr.focus();
	return false;
	}
    dr = findObject( 'to' );
    if( dr && dr.value == '' )
	{
	alert( 'Заполните, пожалуйста, место, куда вам необходимо прилететь.' );
	dr.focus();
	return false;
	}
    dr = findObject( 'how' );
    if( dr && dr.value == '' )
	{
	alert( 'Заполните, пожалуйста, предполагаемую продолжительность поездки.' );
	dr.focus();
	return false;
	}
    dr = findObject( 'phone' );
    if( dr && dr.value == '' )
	{
	alert( 'Заполните, пожалуйста, ваш контактный телефон.' );
	dr.focus();
	return false;
	}
    return true;
}

var currAir = new Array();
var sortOrder = 3;
var sortDest = 1;
var airPort = 1;
var raceType = 0;

function setAirPort( idx )
{
    airPort = idx;
    updatePorts();
    setupAir();
    updateAirTable();
}

function setFlightType( idx )
{
    raceType = idx;
    updateFlights();
    setupAir();
    updateAirTable();
}

function updatePorts()
{
    var p1 = findObject( 'a1' );
    var p2 = findObject( 'a2' );
    if( !p1 || !p2 )
	return;
    p1.className = ( airPort == 1 ? 'ssw adn' : 'nsw adn' );
    p2.className = ( airPort == 2 ? 'ssw akv' : 'nsw akv' );
}

function updateFlights()
{
    var f1 = findObject( 'ff1' );
    var f2 = findObject( 'ff2' );
    var f3 = findObject( 'ff0' );
    if( !f1 || !f2 || !f3 )
	return;
    f1.className = ( raceType == 2 ? 'ssw ain' : 'nsw ain' );
    f2.className = ( raceType == 1 ? 'ssw aot' : 'nsw aot' );
    f3.className = ( raceType == 0 ? 'ssw aal' : 'nsw aal' );

}

function sortAir( idx )
{

    var s1 = findObject( 'ss'+sortOrder );
    var s2 = findObject( 'ss'+idx );
    if( !s1 || !s2 )
	return;
    if( sortOrder == idx )
	{
	sortDest *= -1;
	if( sortDest == -1 )
	    s1.className = 'd';
	else
	    s1.className = 'a';
	}
    else
	{
	sortDest = 1;
	s1.className = 'n';
	s2.className = 'a';
	}
    sortOrder = idx;
    setupAir();
    updateAirTable();

}

function updateAirTable()
{
    var f = findObject( 'flights' );
    if( !f )
	return;
    s = ''; o = true;
    for( i=0; i<currAir.length; i++ )
	{
	oc = ( o ? ' class=o' : '' );
	lc = ( currAir[i].late ? ' class=lt' : '' );
	s += '<tr ' + oc + '><td>' + currAir[i].ac + '</td><td>' +
	    currAir[i].rn + '</td><td>' + currAir[i].dest + '</td><td>' +
	    currAir[i].pt + '</td><td' + lc + '>' + currAir[i].state +
	    '</td><td>' + currAir[i].ft + '</td></tr>';	
	o = !o;	    
	}
    f.innerHTML = s;
}

function sortRaces( i1, i2 )
{
    switch( sortOrder )
	{
	case 1:
	    if( i1.rn > i2.rn )
		return 1*sortDest;
	    if( i1.rn < i2.rn )
		return -1*sortDest;
	    return 0;
	case 2:
	    if( i1.dest > i2.dest )
		return 1*sortDest;
	    if( i1.dest < i2.dest )
		return -1*sortDest;
	    return 0;
	case 3:
	    if( i1.pt > i2.pt )
		return 1*sortDest;
	    if( i1.pt < i2.pt )
		return -1*sortDest;
	    return 0;
	case 4:
	    if( i1.state > i2.state )
		return 1*sortDest;
	    if( i1.state > i2.state )
		return 1*sortDest;
	case 5:
	    if( i1.ft > i2.ft )
		return 1*sortDest;
	    if( i1.ft < i2.ft )
		return -1*sortDest;
	    return 0;
	}    
    return 0;
}

function setupAir()
{
    while( currAir.length )
	currAir.pop();
    for( i=0; i<airData.length; i++ )
	if( airData[i].port == airPort && 
	    (raceType==0 || (raceType!=0 && airData[i].type == raceType ) ) )
	    currAir.push( airData[i] );
    currAir.sort( sortRaces );
}