$(document).ready(function()
{
    $('a.load').bind( "click", function()
    {
        var toLoad = String($(this).attr('href'));
        var target = $(this);

        loadContent( toLoad, target );

        return false;
    });

    $('a.orderlink').live('click', function()
    {
        var orderCol = $(this).attr('id').substr(6);
        setDomainOrder( orderCol );
        getDomains( 'order', 0 );

        $('#reset_table').show(0);

        return false;
    });

    $('.filter select').bind("change keyup", function()
    {
        var filterBox = $(this).parent().parent().parent().parent().attr('id');
        $('#' + filterBox).fadeOut(200);

        getDomains( 'filter', 0 );
        $('#table_status').html( txt_filtered );

        $('#reset_table').show(0);

        return false;
    });

    $('#reset_table').bind('click', function()
    {
        $('#reset_table').hide(0);
        reset();

        return false;
    });


    $('.button_bookmark').live('click', function()
    {
        var theField = $(this);
        var bookmark_id = $(this).attr('id').split("_");

        $.ajax(
        {
           async: false,
           type: 'POST',
           url: domain + 'domains/bookmark/' + bookmark_id[1] + '/',
           success: function( data )
           {
               if( data == 1 )
               {
                   $(theField).attr('src', domain + 'images/icons/bookmark_off.gif');
                   $('#table_status').html( txt_bookmark_deleted );
               }
               else if( data == 2 )
               {
                   $(theField).attr('src', domain + 'images/icons/bookmark_on.gif');
                   $('#table_status').html( txt_bookmark_added );
               }

               return false;
           }
        });
    });

    $('.delete_bookmark').live('click', function()
    {
        var theField = $(this);
        var bookmark_id = $(this).attr('id').split("_");

        $.ajax(
        {
           async: false,
           type: 'POST',
           url: domain + 'domains/bookmark_delete/' + bookmark_id[1] + '/',
           success: function( data )
           {
               if( data == 1 )
               {
                   $('#domain_' + bookmark_id[1] ).fadeOut('slow');
                   $('#table_status').html( txt_bookmark_deleted );
               }

               return false;
           }
        });
    });

});

/*** loads ajax content ***/

function setPage( pageNum, obj )
{
    getDomains( 'pages', pageNum );

    $('#pagination > a').removeClass('pagination_on').addClass('pagination');
    $('.page_' + pageNum).addClass('pagination_on');$('div.tooltip_filter').fadeOut(200);

    return false;
}

/*** reset ***/

function reset()
{
    $('#domain_info_tld').val( $("#domain_info_tld option:first").val() );
    $('#domain_info_check_date').val( $("#domain_info_check_date option:first").val() );

    $('#domain_details_char_count').val( $("#domain_details_char_count option:first").val() );
    $('#domain_details_nums').val( $("#domain_details_nums option:first").val() );
    $('#domain_details_hyph').val( $("#domain_details_hyph option:first").val() );
    $('#domain_details_idn').val( $("#domain_details_idn option:first").val() );

    $('#olg_links').val( $("#olg_links option:first").val() );
    $('#olg_hosts').val( $("#olg_hosts option:first").val() );
    $('#olg_domains').val( $("#olg_domains option:first").val() );
    $('#olg_networks').val( $("#olg_networks option:first").val() );
    $('#olg_edu_links').val( $("#olg_edu_links option:first").val() );
    $('#olg_gov_links').val( $("#olg_gov_links option:first").val() );

    $('#sistrix_links').val( $("#sistrix_links option:first").val() );
    $('#sistrix_hosts').val( $("#sistrix_hosts option:first").val() );
    $('#sistrix_domains').val( $("#sistrix_domains option:first").val() );
    $('#sistrix_networks').val( $("#sistrix_networks option:first").val() );

    $('#linkscape_links').val( $("#linkscape_links option:first").val() );
    $('#linkscape_mozrank').val( $("#linkscape_mozrank option:first").val() );
    $('#linkscape_pageauth').val( $("#linkscape_pageauth option:first").val() );
    $('#linkscape_domauth').val( $("#linkscape_domauth option:first").val() );

    $('#lrt_theme').val( $("#lrt_theme option:first").val() );
    $('#lrt_gov_links').val( $("#lrt_gov_links option:first").val() );
    $('#lrt_edu_links').val( $("#lrt_edu_links option:first").val() );

    $('#domain_age_archive').val( $("#domain_age_archive option:first").val() );
    $('#domain_age_netcraft').val( $("#domain_age_netcraft option:first").val() );

    $('#price_price').val( $("#price_price option:first").val() );

    getDomains( 'pages', 0, 1 );

    return false;
}

var q_order = 'asc';
var q_orderby = 'id';
var set_reset = 0;

function setDomainOrder( varName )
{
    $('input#val_orderby').val( varName );
    $('td.sort').removeClass('desc asc').addClass('desc_off');

    if( $('input#val_order').val() == 'asc' || $('input#val_order').val() == '' )
    {
        q_order = 'desc';

        $('input#val_order').val( q_order );
    }
    else
    {
        q_order = 'asc';

        $('input#val_order').val( q_order );
    }
    
    return false;
}

function getDomains( calltype, page, set_reset )
{
    var filter_domaininfo_tld = $('#domain_info_tld').val();
    var filter_domaininfo_checkdate = $('#domain_info_check_date').val();

    var filter_domaindetails_charcount = $('#domain_details_char_count').val();
    var filter_domaindetails_nums = $('#domain_details_nums').val();
    var filter_domaindetails_hyph = $('#domain_details_hyph').val();
    var filter_domaindetails_idn = $('#domain_details_idn').val();

    var filter_olg_links = $('#olg_links').val();
    var filter_olg_hosts = $('#olg_hosts').val();
    var filter_olg_domains = $('#olg_domains').val();
    var filter_olg_classc = $('#olg_classc').val();
    var filter_olg_edu_links = $('#olg_edu_links').val();
    var filter_olg_gov_links = $('#olg_gov_links').val();

    var filter_strx_links = $('#sistrix_links').val();
    var filter_strx_hosts = $('#sistrix_hosts').val();
    var filter_strx_domains = $('#sistrix_domains').val();
    var filter_strx_classc = $('#sistrix_networks').val();

    var filter_linkscape_links = $('#linkscape_links').val();
    var filter_linkscape_mozrank = $('#linkscape_mozrank').val();
    var filter_linkscape_pageauth = $('#linkscape_pageauth').val();
    var filter_linkscape_domauth = $('#linkscape_domauth').val();

    var filter_lrt_theme = $('#lrt_theme').val();
    var filter_lrt_edu_links = $('#lrt_edu_links').val();
    var filter_lrt_gov_links = $('#lrt_gov_links').val();

    var filter_domainage_archive = $('#domain_age_archive').val();
    var filter_domainage_netcraft = $('#domain_age_netcraft').val();

    var filter_price = $('#price_price').val();

    var output_order = $('#val_order').val();
    var output_orderby = $('#val_orderby').val();

    $.ajax(
    {
       async: false,
       type: 'POST',
       url: domain + 'domains/ajax/',
       data: ({
           reset: set_reset,
           type:calltype,
           page:page,
           order:output_order,
           orderby:output_orderby,
           f_domaininfo_tld: filter_domaininfo_tld,
           f_domaininfo_checkdate: filter_domaininfo_checkdate,
           f_domaindetails_charcount: filter_domaindetails_charcount,
           f_domaindetails_nums: filter_domaindetails_nums,
           f_domaindetails_hyph: filter_domaindetails_hyph,
           f_domaindetails_idn: filter_domaindetails_idn,
           f_strx_links: filter_strx_links,
           f_strx_hosts: filter_strx_hosts,
           f_strx_domains: filter_strx_domains,
           f_strx_classc: filter_strx_classc,

           f_olg_links: filter_olg_links,
           f_olg_hosts: filter_olg_hosts,
           f_olg_domains: filter_olg_domains,
           f_olg_classc: filter_olg_classc,
           f_olg_edu_links: filter_olg_edu_links,
           f_olg_gov_links: filter_olg_gov_links,

           f_linkscape_links: filter_linkscape_links,
           f_linkscape_mozrank: filter_linkscape_mozrank,
           f_linkscape_pageauth: filter_linkscape_pageauth,
           f_linkscape_domauth: filter_linkscape_domauth,
           f_lrt_theme: filter_lrt_theme,
           f_lrt_edu_links: filter_lrt_edu_links,
           f_lrt_gov_links: filter_lrt_gov_links,
           f_domainage_archive: filter_domainage_archive,
           f_domainage_netcraft: filter_domainage_netcraft,
           f_price: filter_price
       }),
       beforeSend: function()
       {
            $('#table_status').html('<img class="icon" src="' + domain + 'images/loader_a.gif" alt="" />&nbsp;' + txt_load);
            $('div.tooltip_filter').fadeOut(200);
            
       },
       success: function(data)
       {
            $('table.domains > tbody').html( data );

            if( calltype == 'reset')
            {
                $('#table_status').html( txt_reset );
            }
            else if( calltype == 'pages')
            {
                $('#table_status').html( txt_page_loaded.replace('{num}', page + 1 ) );
            }
            else if( calltype == 'order')
            {
                var theorder;
                theorder = 'txt_filter_';
                theorder = String(theorder.concat(output_orderby));

                if( output_order == 'asc' )
                {
                    $('#table_status').html( txt_table_sorted_by + ' ' + eval(theorder) + ' (' + txt_asc + ')' );
                }
                else
                {
                     $('#table_status').html( txt_table_sorted_by + ' ' + eval(theorder) + ' (' + txt_desc + ')' );
                }

                $('#order_' + output_orderby).parent('td').removeClass('desc_off').addClass( output_order );
            }
            
       },
       complete: function()
       {
           $('#val_num').val( $('#num').val() );
           $('#result_num').html( $('#num').val() );

            $.ajax(
            {
               async: false,
               type: 'POST',
               url: domain + 'domains/pagination/' + page + '/',
               data: ({ num: $('#num').val() }),
               beforeSend: function()
               {
                    
               },
               success: function( data )
               {
                   $('#pagination').html( data );
               }
            });
       }
    });
}
