var curUrl = '';
$(document).ready(function() {
    // bind to url routing
    $(window).bind('hashchange', parseUrl);
    setTimeout('parseUrl()', 1000); 
    $('#fadebg').height($(document).height());
    // all done
    
});

/**
 * Parsing url
 *
 */
// TODO event on back button
function parseUrl(){
    var newUrl = document.location.hash.substring(1);
    if (newUrl == curUrl) return;
    // make request
    curUrl = newUrl;
    ajaxRequest(newUrl);
}

/**
 * Get page by url by ajax
 *
 */
function ajaxRequest(url, userparams, callback){
    // if is object 
    // TODO UNITTESTING
    if (is_object(userparams)) userparams.isajax = 1;
    
    if ($('#fadebg').css('display') == 'none') $('#fadebg').fadeIn(500);
    $('#ajax-container').hide();
    if (callback != undefined){
        $.post(url, userparams, callback);
    } else
        $.post(url, userparams, function(data){
        if (data.substring(0,1) == 2) {
            window.location = data.substring(1);
            return true;
        } else if (data.substring(0,1) == 1) {
            $('#ajax-container').html(data.substring(1));
            $('#ajax-container').fadeIn(1000);
            //$('#fadebg').fadeOut(500);
        } else {
            $('#ajax-container').html(data.substring(1));
            $('#ajax-container').fadeIn(1000);
        }
    })
}

function is_object (mixed_var) {
    // Returns true if variable is an object  
    // 
    // version: 1103.1210
    // discuss at: http://phpjs.org/functions/is_object    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Legaev Andrey
    // +   improved by: Michael White (http://getsprink.com)
    // *     example 1: is_object('23');
    // *     returns 1: false    // *     example 2: is_object({foo: 'bar'});
    // *     returns 2: true
    // *     example 3: is_object(null);
    // *     returns 3: false
    if (mixed_var instanceof Array) {return false;
    } else {
        return (mixed_var !== null) && (typeof(mixed_var) == 'object');
    }
}

function sendForm(id, url){
    var formparams = new Object();
    $('#'+id+' input, #'+id+' select').each(function(){
        formparams[$(this).attr('name')] = $(this).val();
    });
    $('#'+id+' input:checked').each(function(){
        formparams[$(this).attr('name')] = $(this).val();
    });
    ajaxRequest(url, formparams);
}

function closeAjax(){
    $('#fadebg').fadeOut(500);
    $('#ajax-container').hide();
}

function setBall(el){
    var num = parseInt($(el).prev().val());
    if (!num) {
        alert('Неправильное число!');
        return false;
    }
    var url = el.href.substring(el.href.indexOf('#')+1)+num+'/';
    $(el).remove();
    var userparams = new Object();
    userparams.lottery_id = $('#lotteryid').val();
    userparams.draw_id = $('#drawid').val();
    ajaxRequest(url, userparams, updateOnline);
    return false;
}

function updateOnline(data){
    closeAjax();
    $('#online').html(data);
}
