$(document).ready(function(){
    $('div.tabremote ul li a').text('');
    $('div.tabremote ul li a').attr('title', '');
    $('div.tabremote ul li').click( searchSelected );
    $('div.tabremote').next('fieldset').find('input').click( sendCompare );

    $('div.text fieldset input').each( compareClick );
    $('div.text fieldset input').click( compareClick );

    $('div.tabremote ul li').hide();
});

var cHolder = {
    pos1 : null,
    pos2 : null,
    pos3 : null
};

var toBeRemoved = null;

function searchSelected()
{
    toBeRemoved = $(this).find('a').text();
    $('input.compare').each( removeSelected );
    toBeRemoved = null;

    $('div.text fieldset input').each( compareClick );

    return false;
}

function removeSelected()
{
    console.log('remove: '+ toBeRemoved +' == '+$(this).parent().parent().parent().children('h2').text());
    if( toBeRemoved == $(this).parent().parent().parent().children('h2').text() )
    {
        $(this).attr('checked', false );
        console.log('removed!: '+ toBeRemoved );
    }
}

function sendCompare()
{
    $('#prod_id_1').attr( 'value', cHolder.pos1.id);
    $('#prod_id_2').attr( 'value', cHolder.pos2.id);
    $('#prod_id_3').attr( 'value', cHolder.pos3.id);

    var valid = false;
    for( var i = 0; i <= 3; i++)
        if ( cHolder['pos'+i] != null )
            valid = true;

    return valid;
}

function notListed( _value, _id )
{
    var rtn = true;
    for ( var i in cHolder )
        if ( cHolder[i] != null && cHolder[i].id == _id )
            rtn = false;
    return rtn;
}

function compareClick()
{
    if ( $(this).attr('type') != 'checkbox' ) return;

    var _title  = $(this).parent().parent().parent().children('h2').text();
    var _id     = $(this).val();

    //## check checks and maximize it
    if ( $(this).attr('checked') == true )
    {
        var available = false;
        for( var i in cHolder )
        {
            if ( cHolder[i] == null && notListed( _title, _id ) )
            {
                cHolder[i] = {
                    title : _title,
                    id    : _id
                }
                available = true;
                break;
            }
        }
        $(this).attr('checked', ( available == true || !notListed( _title, _id ) ) );

    } else {
        for( var i in cHolder )
        {
            if ( cHolder[i] != null && cHolder[i].id == _id )
            {
                cHolder[i] = null;
                break;
            }
        }
    }
    //## set the title of selected items
    var cIndex = 0;
    $('div.tabremote ul li a').text( '' );
    for( var i = 0; i <= 3; i++)
    {
        if ( cHolder['pos'+i] != null )
        {
            $('div.tabremote ul li a').eq( cIndex ).text( cHolder['pos'+i].title );
            cIndex++;
        }
    }
    //## animate in or out of selected items
    for( var i = 0; i <= 3; i++)
    {
        if ( $('div.tabremote ul li a').eq( i ).text() == '')
        {
            $('div.tabremote ul li').eq( i ).hide( 150 );
        } else
        {
            $('div.tabremote ul li').eq( i ).show( 300 );
        }
    }

}