/**
 * @author karlofthedead
 */

// Firebug: avoid errors in other browsers
if ( !window.console || !console.firebug ) {
    var names = ['log', 'debug', 'info', 'warn', 'error', 'assert', 'dir', 'dirxml',
    'group', 'groupEnd', 'time', 'timeEnd', 'count', 'trace', 'profile', 'profileEnd'];

    window.console = {};
    var i = 0, n = names.length;
    for ( ; i < n; i++ ) { window.console[names[i]] = function() {}; }
}

// global variables declaration
var base = document.getElementsByTagName( 'base' )[0].getAttribute( 'href' );
var lang = document.getElementsByTagName( 'html' )[0].getAttribute( 'lang' );

/*** flashmessenger ****/
var FlashMessenger = {
	containerId : 'ul#messenger',
	itemTpl : '<li class="${type}">${message}<span class="close ui-icon ui-icon-circle-close">close</span></li>',
	init: function(){
		$('ul#messenger .close').bind('click',function(){
			$(this).parent().animate({opacity:0},200).slideUp(200,this.remove);
		});
		this.refreshMessages();
	},
	addMessage: function(message,type,messengerTimeout)
	{
		if(type == undefined)
			type = 'notice';

		if(messengerTimeout == undefined)
			messengerTimeout = null;

		$(this.containerId).append($.tmpl(this.itemTpl,{'message':message,'type':type}));
		if(messengerTimeout != null){
			$('li:last',$(this.containerId)).delay(messengerTimeout).fadeOut(200);
		}
		this.init();

	},
	refreshMessages: function(){
		$.get(
			lang + '/default/index/messenger',
			function(data){
				if(data.success != undefined){
					$(data.success).each(function(){ FlashMessenger.addMessage(this,'success',6000); });
				}
				if(data.error != undefined){
					$(data.error).each(function(){ FlashMessenger.addMessage(this,'error',10000); });
				}
				if(data.warning != undefined){
					$(data.warning).each(function(){ FlashMessenger.addMessage(this,'warning',6000); });
				}
				if(data.notice != undefined){
					$(data.notice).each(function(){ FlashMessenger.addMessage(this,'notice',6000); });
				}
			}
		,'json');	
	},
	
	error: function( message ) { this.addMessage( message, 'error' ); },
	success: function( message ) { this.addMessage( message, 'success' ); },
	warning: function( message ) { this.addMessage( message, 'warning' ); },
	notice: function( message ) { this.addMessage( message, 'notice' ); }
};



//var i18n;



// initialization phase
jQuery( function() {
	// init flashmessenger 
	FlashMessenger.init();
	// loading translations
///	i18n = new Translate( translations, lang );

	// Shadowbox initialization, only if loaded
	/*if ( !!Shadowbox ) {
		Shadowbox.init( { skipSetup: true } );
	}*/

	// Tooltips initialization, only if loaded
	/*if ( !!jQuery.tooltip ) {
		jQuery( '*[title]' ).tooltip( {
			track    : true,
			delay    : 0,
			showURL  : false,
			showBody : ' - ',
			fade     : 250
		} );
	}
*/
	// @todo : is it the right place for that?
	/*$('div.preview div.map a.toggle').click(function(e){
		e.preventDefault();
		$('#map_canvas',$(this).parent()).toggle(300);
		return false;
	});*/
} );
