var is_startup = true;
var pages;
var current_page = 0;
var table_start = '<table class="itelet" cellpadding="0" cellspacing="0" border="0">\n';
var table_end   = '</table>';
var jolmegirt   = false;
var kepes       = false;
var hosszu      = false;
var sort_cim    = true;
var sort_km     = false;
var current_order;
var lines       = 15;
var a           = null;
var show_allpage= false;
var form_fields = { marka_id:           "Márka",
                    tipus_id:           "Típus",
                    modellnev:          "Modell",
                    evjarat:            "Gyártási év",
                    kenyelem:           "Kényelem",
                    teljesitmeny:       "Teljesítmény",
                    fenntart_koltseg:   "Fenntartási kölségek",
                    megbizhatosag:      "Megbízhatóság",
                    szerviztapasztalat: "Szerviztapasztalat",
                    hibalista:          "Ezek romlottak el rajta",
                    szubj_viszony:      "A lényeg: szerette?",
                    ujra_venne:         "Megérte a pénzét?",
                    cim:                "Frappáns összefoglaló" }
var form_date    = null;
var order_path;
Event.observe( window, 'load', function() 
{
    order_path = document.location.href.substring( document.location.href.indexOf( '.hu/' ) + 4 );
    if( typeof tipus_list == 'object' )
    {
        if( getCookie( 'tipus_order' + order_path ) != '' )
        {
            current_order = getCookie( 'tipus_order' + order_path );
            if( getCookie( 'tipus_direction' + order_path ) != '' ) $( 'order_by_' + current_order ).addClassName( getCookie( 'tipus_direction' + order_path ) == 'nov' ? 'csok' : 'nov' );
        }
        if ( current_order == '' ) { current_order = 'tipusnev'; }
        if ( current_order != null ) { tipus_orderby( current_order ); }
        update_tipus_list();
    }
    else
    {
        if( getCookie( 'jolmegirt' + order_path ) == 'true' ) $( 'jolmegirt' ).checked = true;
        if( getCookie( 'kepes' + order_path ) == 'true' ) $( 'kepes' ).checked = true;
        if( getCookie( 'hosszu' + order_path ) == 'true' ) $( 'hosszu' ).checked = true;
        if( getCookie( 'order' + order_path ) != '' )
        {
            current_order = getCookie( 'order' + order_path );
            if( getCookie( 'direction' + order_path ) != '' ) $( 'order_by_' + current_order ).addClassName( getCookie( 'direction' + order_path ) == 'nov' ? 'csok' : 'nov' );
        }
    }
    if( typeof nepiteletek == 'object' )
    {
        orderby( ( current_order == null ) ? 'cim' : current_order );
        create_pager( 0 );
    }
    if( typeof friss != 'undefined' && typeof friss.length != 'undefined' )
    {
        nepiteletek = friss;
        orderby( ( current_order == null ) ? 'date' : current_order );
        orderby( ( current_order == null ) ? 'date' : current_order );
        create_pager( 0 );
    }
    if( $( 'hidden_marka_lista' ) != null ) $( 'hidden_marka_lista' ).hide();   
    if( $( 'itelet_form' ) != null )
    {
        form_date = new Date();
        Event.observe( 'evjarat', 'keypress', function( event ) { if( event.charCode > 31 && event.charCode < 48 || event.charCode > 57 ) event.stop(); } );
        Event.observe( 'itelet_form', 'submit', function( event )
        {
            first_missing = '';
            for( i in form_fields )
            {
                if( typeof $( i ).bcolor == 'undefined' ) $( i ).bcolor = { top: $( i ).getStyle( 'borderTopColor' ),
                                                                            left: $( i ).getStyle( 'borderLeftColor' ),
                                                                            bottom: $( i ).getStyle( 'borderBottomColor' ),
                                                                            right: $( i ).getStyle( 'borderRightColor' ) };
                if( $( i ).value.replace(/^\s+|\s+$/, '') == "" )
                {
                    if( first_missing == '' ) first_missing = i;
                    $( i + '_a' ).setStyle( { color: '#ff0000' } );
                    $( i ).setStyle( { borderColor: '#ff0000' } );
                }
                else
                {
                    $( i + '_a' ).setStyle( { color: '#000000' } );
                    $( i ).setStyle( { borderTopColor: $( i ).bcolor.top,
                                       borderLeftColor: $( i ).bcolor.left,
                                       borderBottomColor: $( i ).bcolor.bottom,
                                       borderRightColor: $( i ).bcolor.right } );
                }
            }
            if( $( 'evjarat' ).value < 1900 || $( 'evjarat' ).value > form_date.getFullYear() )
            {
                $( 'evjarat_a' ).setStyle( { color: '#ff0000' } );
                $( 'evjarat' ).setStyle( { borderColor: '#ff0000' } );
                if( first_missing == '' ) first_missing = 'evjarat';
            }
            if( first_missing != '' )
            {
                event.stop();
                Effect.ScrollTo( first_missing + '_a' );
            }
        } );
    }
} );
function update_tipus_list()
{
    var html = '';
    var list_class = 'odd';
    for( i = 0; len = tipus_list.length, i < len; i++ )
    {
        html += '<tr class="' + list_class + '">\n' +
                '<td class="tipus">\n' +
                '<a href="' + adat_site_url + tipus_list[ i ][ 'path' ] + '">\n';
        if( tipus_list[ i ][ 'img' ] != '' ) html += '<img src="' + tipus_list[ i ][ 'img' ] + '" border="0" alt="" />\n';
        html += '<span>' + tipus_list[ i ][ 'tipusnev' ] + tipus_list[ i ][ 'vege' ] + '</span>\n' +
                '</a>\n' +
                '</td>\n';
        if( tipus_list[ i ][ 'rating' ] > 0 )
        {
            html += '<td class="itelet star star' + ( tipus_list[ i ][ 'rating' ] == 10 ? 10 : '0' + tipus_list[ i ][ 'rating' ] * 1 ) + '">&nbsp;</td>\n' +
                    '<td class="atlag">' + tipus_list[ i ][ 'atlag' ] + '</td>\n' +
                    '<td class="iteletek">' + tipus_list[ i ][ 'itelet' ] + '</td>\n';
        }
        else html += '<td class="nopetxt" colspan="3">Még nincs ítélet :( <a href="' + adat_site_url + folder_name + '/ujatirok">Írjon egyet!</a></td>';
        html += '</tr>\n';
        list_class = list_class == 'odd' ? 'even' : 'odd';
    }
    $( 'itelet_tbody' ).update( html );
}
function update_list()
{
    var html = table_start;
    var line_class = 'odd';
    var page = 0;
    var cnt = 0;
    jolmegirt = $( 'jolmegirt' ).checked;
    kepes = $( 'kepes' ).checked;
    hosszu = $( 'hosszu' ).checked;
    for( i = 0; len = nepiteletek.length, i < len; i++ )
    {
        if( ( jolmegirt ? nepiteletek[ i ][ 'jolmegirt' ] : 1 ) && ( kepes ? nepiteletek[ i ][ 'kepes' ] : 1 ) && ( hosszu ? nepiteletek[ i ][ 'hossz' ] >= 1000 : 1 ) )
        {
            if( cnt % lines == 0 )
            {
                html += table_end + '<table class="itelet" cellpadding="0" cellspacing="0" border="0" id="hidden' + ( page++ ) + '">';
                line_class = 'odd';
            }
            html += '<tr class="' + line_class + '">\n' +
                    '<td class="cim_modell">\n' +
                    '<h3><a href="' + adat_site_url + nepiteletek[ i ][ 'path' ] + '">' + nepiteletek[ i ][ 'cim' ] + '</a>' + ( nepiteletek[ i ][ 'kepes' ] ? ' <span class="ikon galeria">&nbsp;</span>' : '' ) + '</h3>\n' +
                    '<span>' + ( typeof nepiteletek[ i ][ 'markanev' ] != 'undefined' ? nepiteletek[ i ][ 'markanev' ] + ' ' : '' ) + nepiteletek[ i ][ 'tipus' ] + ' ' + nepiteletek[ i ][ 'modell' ] + '</span>\n' +
                    '</td>\n' +
                    '<td class="ido">' + nepiteletek[ i ][ 'date' ] + '</td>\n' +
                    '<td class="hossz" title="' + nepiteletek[ i ][ 'hossz' ] + ' karakter">' + ( nepiteletek[ i ][ 'hossz' ] > 1000 ? '<span class="i_hossz"></span>' : '' ) + ( nepiteletek[ i ][ 'hossz' ] > 200 ? '<span class="i_hossz"></span>' : '' ) + '<span class="i_hossz"></span></td>\n' +
                    '<td class="km">' + nepiteletek[ i ][ 'km' ] + '</td>\n' +
                    '<td class="itelet star star' + ( nepiteletek[ i ][ 'rating' ] == 10 ? 10 : '0' + nepiteletek[ i ][ 'rating' ] * 1 ) + '" title="' + ( nepiteletek[ i ][ 'rating' ] * 1 ) + ' csillag">&nbsp;</td>\n' +
                    '<td class="ertekeles">' + ( nepiteletek[ i ][ 'ertekeles' ] ? nepiteletek[ i ][ 'ertekeles' ] : '-' ) + '</td>\n' +
                    '</tr>';
            line_class = line_class == 'odd' ? 'even' : 'odd';
            cnt++;
        }
    }
    pages = page;
    $( 'itelet_table' ).update( html + table_end );
    $$( "table.itelet" ).each( function( element )
    {
        if( !show_allpage && element.id != 'hidden' + current_page && element.id != '' ) element.hide();
    } );
    cnt = 0;
}
function create_pager( switch_to, force_reload )
{
    var cnt = 0;
    var html = '';
    var pager = new Array();
    var str;
    var start_on;
    var end_on;
    switch_to *= 1;
    if( typeof force_reload == 'undefined' ) force_reload = false;
    if( pages > 1 && !show_allpage )
    {
        start_on = switch_to - 7 > 0 ? switch_to - 7 : 0;
        if( pages >= 14 ) start_on = start_on > pages - 14 ? pages - 14 : start_on;
        for( i = 0; i < ( pages > 14 ? 14 : pages ); i++ )
        {
            if( i + start_on == switch_to ) str = ' class="actual"';
            else str = '';
            if( i + start_on < pages ) pager[ i ] = '<a href="#"' + str + ' id="page_selector_' + ( i + start_on ) + '" onClick="create_pager( \'' + ( i + start_on ) + '\' ); return false;">' + ( i + start_on + 1 ) + '</a>';
        }
        if( start_on )
        {
            pager[ 0 ] = '<a href="#" id="page_selector_0" onClick="create_pager( \'0\' ); return false;">1</a>';
            pager[ 1 ] = '...';
        }
        if( pages > 14 && ( 1 * switch_to + 6 ) < pages )
        {
            pager[ 12 ] = '...';
            pager[ 13 ] = '<a href="#" id="page_selector_' + ( pages - 1 ) + '" onClick="create_pager( \'' + ( pages - 1 ) + '\' ); return false;">' + pages + '</a>';
        }
        $( 'pager_numbers' ).update( pager.implode( ' | ' ) );
        if( current_page != switch_to || force_reload )
        {
            if( $( 'hidden' + current_page ) )
            {
                Effect.Fade( 'hidden' + current_page,
                {
                    queue: 'end',
                    duration: 0.3
                } );
            }
            if( $( 'hidden' + switch_to ) ) Effect.Appear( 'hidden' + switch_to, { queue: 'end', duration: 0.3 } );
            current_page = switch_to;
        }
        if( !switch_to ) Effect.Fade( 'pager_prev', { duration: 0.3 } );
        else Effect.Appear( 'pager_prev', { duration: 0.3 } );
        if( ( switch_to + 1 ) >= pages ) Effect.Fade( 'pager_next', { duration: 0.3 } );
        else Effect.Appear( 'pager_next', { duration: 0.3 } );
        if( $( 'all_in_one_page' ) ) Effect.Appear( 'all_in_one_page', { duration: 0.3 } );
    }
    else 
    {
        if( pages <= 1 ) Effect.Fade( 'all_in_one_page', { duration: 0.3 } );
        else Effect.Appear( 'all_in_one_page', { duration: 0.3 } );
        Effect.Fade( 'pager_prev', { duration: 0.3 } );
        Effect.Fade( 'pager_next', { duration: 0.3 } );
        $( 'pager_numbers' ).update( "" );
    }
    if( !is_startup )
    {
        if( $( 'szukites' ) != null ) Effect.ScrollTo( 'szukites', { duration: 0.5 } );
        else Effect.ScrollTo( 'content', { duration: 0.5 } );
    }
    else is_startup = false;
}
function next_page()
{
    if( ( pages - 1 ) > current_page ) create_pager( current_page + 1 );
}
function prev_page()
{
    if( current_page > 0 ) create_pager( current_page - 1 );
}
function toggle_filter( filter )
{
    switch( filter )
    {
        case 'jolmegirt':
        {
            jolmegirt = $( 'jolmegirt' ).checked;
            setCookie( 'jolmegirt' + order_path, $( 'jolmegirt' ).checked );
        }; break;
        case 'kepes':
        {
            kepes = $( 'kepes' ).checked;
            setCookie( 'kepes' + order_path, $( 'kepes' ).checked );
        }; break;
        case 'hosszu':
        {
            hosszu = $( 'hosszu' ).checked; 
            setCookie( 'hosszu' + order_path, $( 'hosszu' ).checked );
        }; break;
    }
    update_list();
    create_pager( 0 );
}
function sortby( a, b ) { return ( ( a[ current_order ] < b[ current_order ] ) ? -1 : ( ( a[ current_order ] > b[ current_order ] ) ? 1 : 0 ) ); }
function r_sortby( a, b ) { return ( ( b[ current_order ] < a[ current_order ] ) ? -1 : ( ( b[ current_order ] > a[ current_order ] ) ? 1 : 0 ) ); }

function orderby( order )
{
    if( a == null )
    {
        a = new Array();
        for( i in nepiteletek )
        {
            a[ i ] = nepiteletek[ i ];
        }
    }
    if( typeof $( 'order_by_' + order ) != null )
    {
        current_order = order;
        setCookie( 'order' + order_path, order, 7 );
        if( $( 'order_by_' + order ).hasClassName( 'nov' ) )
        {
            class_name = 'csok';
            a.sort( r_sortby );
            nepiteletek = a;
        }
        else
        {
            class_name = 'nov';
            a.sort( sortby );
            nepiteletek = a;
        }
        setCookie( 'direction' + order_path, class_name, 7 );
        $$( '.nov' ).each( function( element ) { element.removeClassName( 'nov' ); } );
        $$( '.csok' ).each( function( element ) { element.removeClassName( 'csok' ); } );
        $( 'order_by_' + order ).addClassName( class_name );
        update_list();
    }
}
function tipus_orderby( order ) 
{
    if( a == null )
    {
        a = new Array();
        for( i in tipus_list )
        {
            a[ i ] = tipus_list[ i ];
        }
    }
    if( typeof $( 'order_by_' + order ) != null )
    {
        current_order = order;
        setCookie( 'tipus_order' + order_path, order, 7 );
        if( $( 'order_by_' + order ).hasClassName( 'nov' ) )
        {
            class_name = 'csok';
            a.sort( r_sortby );
            tipus_list = a;
        }
        else
        {
            class_name = 'nov';
            a.sort( sortby );
            tipus_list = a;
        }
        setCookie( 'tipus_direction' + order_path, class_name, 7 );
        $$( '.nov' ).each( function( element ) { element.removeClassName( 'nov' ); } );
        $$( '.csok' ).each( function( element ) { element.removeClassName( 'csok' ); } );
        $( 'order_by_' + order ).addClassName( class_name );
        update_tipus_list();
    }
}
function nepitelet_search()
{
    var checked = 0;
    $$( '.nepitelet_checkbox' ).each( function( element )
    {
        if( element.checked ) checked++; 
    } );
    if( checked == 6 ) $( 'verdikt' ).checked = true;
    else $( 'verdikt' ).checked = false;
}
function change_verdikt()
{
    $$( '.nepitelet_checkbox' ).each( function( element ) { element.checked = $( 'verdikt' ).checked; } );
}
function markalist_toggle( type )
{
    Effect.toggle( 'visible_marka_lista', 'slide', { queue: 'end' } );
    Effect.toggle( 'hidden_marka_lista', 'slide', { queue: 'end' } );
    if( $( 'lista_nyito_link' ).hasClassName( 'open' ) )
    {
        $( 'lista_nyito_link' ).removeClassName( 'open' ).addClassName( 'close' ).update( 'Csak a főbb ' + type + 'márkák megjelenítése' );
        $( 'iteletek_szama' ).update( 'Ítéletek az összes ' + type + 'márka szerint (' + hidden_overall + ' db)' );
    }
    else
    {
        $( 'iteletek_szama' ).update( 'Ítéletek fõbb ' + type + 'márkák szerint (' + overall + ' db)' );
        $( 'lista_nyito_link' ).removeClassName( 'close' ).addClassName( 'open' ).update( 'Minden ' + type + 'márka megjelenítése' );
        Effect.ScrollTo( 'content' );
    }
    $( 'lista_nyito_link' ).blur();
}
function toggle_allpage()
{
    show_allpage = show_allpage ? 0 : 1;
    $( 'all_in_one_page' ).update( show_allpage ? 'Oldalakra bontás' : 'Az összes ítélet egy oldalon' ).blur();
    update_list();
    create_pager( 0 );
    Effect.ScrollTo( 'szukites', { duration: 0.5 } );
}
function getCookie( c_name )
{
    if( document.cookie.length > 0 )
    {
        c_start = document.cookie.indexOf( c_name + "=" );
        if( c_start != -1 )
        {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf( ";", c_start );
            if( c_end == -1 ) c_end = document.cookie.length;
            return unescape( document.cookie.substring( c_start, c_end ) );
        }
    }
    return "";
}
function setCookie( c_name, value, expiredays )
{
    var exdate = new Date();
    exdate.setDate( exdate.getDate() + expiredays );
    document.cookie = c_name + "=" + escape( value ) + ( ( expiredays == null ) ? "" : ";expires=" + exdate.toGMTString() );
}