var strToJson = function($str)
{
    return eval('(' + $str + ')');
}

//jquery
var fill_select = function(id, json_arr, first_option)
{
	$(id).empty();
	$(id).prepend($('<option value="' + first_option.value + '">' + first_option.name + '</option>'));
    
	start_index = 0;
	for (i = start_index; i < json_arr.length; i++)
    {
        el = json_arr[i];
        $(id).append($('<option value="' + el.id + '">' + el.name + '</option>'));
    }	
}

function jquery_settings(){
	$.ajaxSetup({
		type 		: "POST",
		async		: false,
		dataType	: 'json'
	});
}

function SetTimerForMessages(){
	$('#dialog-message .ok').addClass('on_timer');
	$('#dialog-message .warning').addClass('on_timer');
	
    $('#dialog-message .ok.on_timer').delay(5000).animate({
        opacity: 0.25,
        height: 'toggle'
    	}, 500, function() {
    		$(this).remove();
    		if ($('#dialog-message div').size() == 0) $('#dialog-message').hide();
    });

    $('#dialog-message .warning.on_timer').delay(10000).animate({
        opacity: 0.25,
        height: 'toggle'
    	}, 500, function() {
    		$(this).remove();
    		if ($('#dialog-message div').size() == 0) $('#dialog-message').hide();
    });
            
}

/*	start subscription section	*/
function spool_subscribe(p_object_alias, p_object_id)
{
	spool_subscription_handler('subscribe', p_object_alias, p_object_id);
}

function spool_unsubscribe(p_object_alias, p_object_id)
{
	spool_subscription_handler('unsubscribe', p_object_alias, p_object_id);
}

function spool_subscription_handler(p_action, p_object_alias, p_object_id)
{
	
	$.ajax({
		url: '/spool/' + p_action + '/',
		data : {
			object_alias 	: p_object_alias,
			object_id		: p_object_id
		},
		success: function(json){
            
            if (json.error !== undefined)
            {
                alert(json.error);
            }
            else if ($('#spool_subscription'))
            {
                $('#spool_subscription').replaceWith(json.content);                                
            }
		}
	}); 	

}
/*	end subscription section	*/

/* start system message
 * @string message Сообщение об ошибке
 * @string type Тип ошибки может быть error | ok | warning 
 * 
 */
function Message(message, type)
{
	$('<div class="' + type + '">' + message + '</div>').appendTo('#dialog-message');
	SetTimerForMessages();
}

function insert()
{
	Message('ajax запрос', 'ok');
	Message('ajax запрос', 'warning');
	Message('ajax запрос', 'error');
}
/* end system message*/

//jquery
$(function(){
	jquery_settings();
	
	$('#dialog-message').bind('click', function(){
		   $('#dialog-message').toggle('slow');
		});
	SetTimerForMessages();	
})

var debug = function(obj)
{
	var x; var s='';
	for (x in obj)
	if (x != 'outerText' && x != 'innerText' && x != 'outerHTML' && x != 'innerHTML' && typeof(obj[x]) != 'function')
	s += x + ': ' + obj[x] + ';\t';
	
	return s;
}

