function loading(state, message)
{
    // Set the message if we have one, if not, use Loading...
    $('#working_message').text( message ? message : 'Loading...' );
    
    if (state)
    {
        $('#working_container').fadeIn();
    }
    else
    {
        $('#working_container').fadeOut();
    }
}

function report_advert(advert_id)
{
    if (confirm("Are you sure you want to report this advert as spam or abusive?"))
    {
        $.get('/adverts/report/'+advert_id, function(str) {
            alert(str);
        });
    }
}

function refresh_custom_fields( dropdown )
{
    loading(true);
    var categories = [];
    $(dropdown).find('option:selected').each(function() {
        categories.push( $(this).val() );
    });
    
    $('#custom_fields').slideUp('fast');
    $.post('/ajax/get_custom_fields/', {categories: categories}, function(str) {
        $('#custom_fields').html( str );
        $('#custom_fields').slideDown();
        loading(false);
    });
}

function new_image_added(id, url)
{
    loading(false);
    
    $('ul#images').append('<li onclick="set_default_image('+id+');" id="image_li_'+id+'" class="default"><label for="image_'+id+'"><img src="'+url+'" /></label><br /><a href="javascript:set_default_image('+id+');"><span class="default_text">Current default</span></a><br /><a href="javascript:delete_image('+id+')">Remove</a></li>');
}

function delete_image(id)
{
    if (confirm("Are you sure you want to delete this image, this cannot be undone?"))
    {
        $('#image_li_'+id).fadeTo('fast', 0.5);
        
        $.get('/adverts/delete_image/'+id, function(str) {
            var res = JSON.parse(str);
            if (res['status'] == 'success' && res['id'])
            {
                $('#image_li_'+res['id']).fadeOut();
            }
            else if(res['error'])
            {
                alert(res['error']);
            }
            else
            {
                alert('There was an error with your reqest, please try again.');
            }
        });
    }
}

function setup_menu_closer(div_id)
{
    var mouse_is_inside = false;
    
    $(document).ready(function()
    {
        $('#'+div_id).hover(function(){ 
            mouse_is_inside = true; 
        }, function(){ 
            mouse_is_inside = false; 
        });
    
        $("body").mouseup(function(){ 
            if (!mouse_is_inside) $('#'+div_id).slideUp();
        });
    });
}

function submit_equiry_form( advert_id )
{
    if (!advert_id) return false;
    
    var data = {
        advert_id: advert_id,
        message: $('#enquiry_textarea').val(),
        captcha: $('#captcha').val()
    };
    
    if (data.message.length < 30)
    {
        alert('Please write a longer enquiry.');
        return false;
    }
    
    $.post('/users/send_enquiry/', data, function(str) {
        var res = JSON.parse(str);
        
        if (res['error']) alert(res['error']);
        
        if (res['status'] == 'success') $('#enquiry_form').html('<p>Thank you, your enquiry has been sent.</p>');
    });
}


function set_default_image(image_id)
{
    $('#default_image').val(image_id);
    
    $('ul#images li').removeClass('default');
    $('ul#images li span.default_text').text('Make default');
    
    $('ul#images li#image_li_'+image_id).addClass('default');
    $('ul#images li#image_li_'+image_id+' span.default_text').text('Current default');
}

/* Set up a global 401 handler for AJAX stuff, incase session have expired or whatever */

$.ajaxSetup({
    error: function(xhr, status, err) {
        if (xhr.status == 401)
        {
            alert('Your request was not authorised, has you session expired? Click OK to be taken to the login page.');
            window.location.href = '/users/login/';
        }
        else
        {
            /*
            Comes up when you click links if an xhr is active
            alert('There was an error with your reqest, please try again.');
            alert(xhr.responseText);
            */
        }
    }
});
