window.MBOStartLoading = function (targetElement, isModal)
{
    if (isModal == null) isModal = true;
    
    if(targetElement == null)
    {
        if(window._MBOLoadingPopup == null)
        {
            var _currentPopup = document.createElement('div');
            _currentPopup.id = 'MBOLoadingPopup';
            $(_currentPopup).addClass("MBOLoadingPopup");
            $(_currentPopup).html('<div ondlbclick="window.MBOStopLoading()" class="MBOLoadingDiv ui-widget ui-widget-content ui-corner-all"><div class="MBOLoadingDivImage"></div><br/>Caricamento in corso...</div>');

            $(_currentPopup).css('display', 'none');
            $('body').append(_currentPopup);

            window._MBOLoadingPopup = _currentPopup;

            var _currentOverlay = document.createElement('div');
            _currentOverlay.id = 'MBOLoadingOverlay';
            $(_currentOverlay).addClass("MBOLoadingOverlay").addClass('ui-widget-overlay');

            $(_currentOverlay).css('display', 'none');
            $('body').append(_currentOverlay);

            window._MBOLoadingOverlay = _currentOverlay;
        }

        if (isModal) 
        {
            $(window._MBOLoadingOverlay).show();
            $(window._MBOLoadingOverlay).css('height', $(document).height());
            $(window._MBOLoadingOverlay).css('width', $(document).width());
        }
        else
            $(window._MBOLoadingOverlay).hide();

        $(window._MBOLoadingPopup).show();

        var _currentScrollTop = (window.scrollY != null)?(window.scrollY):(document.body.parentNode.scrollTop + document.body.scrollTop);

        $(window._MBOLoadingPopup).css('top', (_currentScrollTop + 200) + 'px');
        $(window._MBOLoadingPopup).css('left', Math.max(0, (document.body.offsetWidth - window._MBOLoadingPopup.offsetWidth) / 2) + 'px');
    }
    else
    {
        $(targetElement).each( function () {
            if(this._MBOLoadingPopup == null)
            {
                var _currentPopup = document.createElement('div');
                $(_currentPopup).addClass("MBOLoadingPopup").addClass('MBOLoadingPopupSmall');
                $(_currentPopup).html('<div class="MBOLoadingDivImageSmall"></div>');

                $(_currentPopup).css('display', 'none');
                $('body').append(_currentPopup);

                this._MBOLoadingPopup = _currentPopup;
                
                var _currentOverlay = document.createElement('div');
                _currentOverlay.id = 'MBOLoadingOverlay';
                $(_currentOverlay).addClass("MBOLoadingOverlay").addClass('ui-widget-overlay');

                $(_currentOverlay).css('display', 'none');
                $('body').append(_currentOverlay);
                
                this._MBOLoadingOverlay = _currentOverlay;
            }
            
            var _targetOffset = $(this).offset();
            
            if (isModal) 
            {
                $(this._MBOLoadingOverlay).css('top', _targetOffset.top).css('left', _targetOffset.left);
                $(this._MBOLoadingOverlay).show();
                $(this._MBOLoadingOverlay).css('height', $(this).height());
                $(this._MBOLoadingOverlay).css('width', $(this).width());
            }
            else
                $(this._MBOLoadingOverlay).hide();
            
            var _finalOffsetTop = 0;
            var _finalOffsetLeft = 0;

            _finalOffsetTop += _targetOffset.top + ($(this).height() / 2) - ($(this._MBOLoadingPopup).height() / 2);
            _finalOffsetLeft += _targetOffset.left + ($(this).width() / 2) - ($(this._MBOLoadingPopup).width() / 2);

            $(this._MBOLoadingPopup).show();
            
            $(this._MBOLoadingPopup).css('top', _finalOffsetTop + 'px').css('left', _finalOffsetLeft + 'px');

        });
    }
}

window.MBOStopLoading = function (targetElement)
{
    if(targetElement == null)
    {
        if(window._MBOLoadingPopup != null)
        {
            $(window._MBOLoadingPopup).hide();
            $(window._MBOLoadingOverlay).hide();
        }
    }
    else
    {
        $(targetElement).each( function () {
            if(this._MBOLoadingPopup != null)
            {
                $(this._MBOLoadingPopup).hide();
                $(this._MBOLoadingOverlay).hide();
            }
        });
    }
}



function mpLoadObject(cod, target, options){
	
	var defaults = 
	{
		cached: false,
		cacheminute: 1,
		async: true,
		loader: true,
		loaderTarget: null,
		loaderModal: true
	};     
	   
	var options = $.extend({}, defaults, options);  
	
	if (options.loader) MBOStartLoading(options.loaderTarget, options.loaderModal);
	$.ajax({
		async: options.async,
		cache: false,
		data: options,
		url: 'common/services/Service.aspx?Mode=getObject&cod_oggetto=' + cod,
		complete: function (data, textStatus) {
		
			var _ret = data.responseText;
			
			$(target).html(_ret);
			
      		if (options.callback!=null) 
      			eval(options.callback);
      		else{
      			$("img[bomenu][bomenu!='']").each(function(){
					$(this).bind("click", Menu)
	      		});
      		}
      		if (options.loader) MBOStopLoading();
      		
		}
	});
}


function LoadRSS(_url){
	_url = "common/services/Service.aspx?Mode=getUrl&xml2json=1&url=" + escape(_url);

	var xml;
	$.ajax({
		async: false,
		cache:false,			
		url: _url,
		complete: function (data) {			
			xml = data.responseText;
		}
	});
	return xml;
}


function TickerFromRSS(rssUrl, target, options){
	var defaults = {showDescription: true, items: 4, loadUrlLocal:true};
	options = $.extend({}, defaults, options||{});
    if ($(target).length==0) 
    	return;
    
    var rss = "";
    var _RSS ="";
    if (options.loadUrlLocal){
    	
	$.jGFeed(rssUrl,
	  function(feeds){
	
	    
		var ticker = "<div class='tickContainer'><ul>";
		var cItem = feeds.entries.length;
		if (options.items>0 && feeds.entries.length> options.items) cItem = options.items;
		for(var i=0; i<cItem; i++){
		    var item = feeds.entries[i];
		    ticker += "<li>";
		    ticker += "<div class='tickItem'>";
		    ticker += "<div class='title'><a href='"+item.link+"' target='_blank'>" + item.title + "</a></div>";
		    ticker += "<div class='date'>"+item.publishedDate+"</div>";

		    if (options.showDescription) ticker += "<div class='content'>" + item.contentSnippet + "</div>";
		    if (options.showDescriptionHTML) ticker += "<div class='content'>" + item.content + "</div>";
			    
		ticker += "</div>";
		    ticker += "</li>";
		    
		};
		ticker += "</ul></div>";
		var t = $(target).html(ticker);
	  }, 10);

    	
    }
    else{
	rss = LoadRSS(rssUrl);
	_RSS = $.parseJSON(rss);
    
	    if (_RSS.error) {
		//alert(_RSS.exception.message);
		return;
	    }

		var ticker = "<div class='tickContainer'><ul>";
		var cItem = 0;
		$(_RSS.rss.channel.item).each(function () {
		    cItem++;
		    ticker += "<li>";
		ticker += "<div class='tickItem'>";
		    ticker += "<div class='title'><a href='"+this.link+"' target='_blank'>" + (this.title["#cdata-section"] ? this.title["#cdata-section"] : this.title) + "</a></div>";
		    ticker += "<div class='date'>"+this.pubDate+"</div>";

		    if (options.showDescription){
			    try{
				ticker += "<div class='content'>" + $(this.description).text() + "</div>";
			    }
			    catch(e){
				ticker += "<div class='content'>" + (this.description["#cdata-section"] ? this.description["#cdata-section"] : this.description) + "</div>";
			    }
		    }
		ticker += "</div>";
		    ticker += "</li>";
		    if (options.items>0 && cItem> options.items) return false;
		});
		ticker += "</ul></div>";
		var t = $(target).html(ticker);
	}
	
	//t.mpTicker(options);
	
            
}


/*
 * jQuery mpTicker plugin: simple banner plugin
 * version 1.00 (10-12-2009)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html

 * @name mpTicker
 * @type jQuery
 * @param options object which control the dialog plugin
 * @cat Plugins/Corner
 * @return jQuery
 * @author Christian Avanzo
 */
(function($){
    $.fn.extend( {
        mpTicker: function(options){
       
            var defaults = {
                mode: 'vertical', 
                direction: 'up',
                delay: 2000,
                speed: 1000,
                pageItems: 4
            };

            var options = $.extend(defaults, options);
           
            return this.each(function(){
                var tContainer = $(this); //class=tickContainer: è un contenitore (div) che contiene la lista 
                var containerHeight = $(tContainer).height();
                tContainer.css("overflow", "hidden");
                tContainer.find("ul:first, ul:first>li").css("margin", "0px").css("padding", "0px");

                var cItem=1;
                tContainer.find("ul:first>li").each(function(){
                    
                    $(this).attr("index", cItem++).css("overflow", "hidden").css("background", "#ededed");
                    
                    var liHeight;
                    if (options.mode=="vertical"){ //imposto le altezze degli elementi in funzione del contenitore
                        liHeight = Math.floor(containerHeight/options.pageItems);    
                    }
                    if (options.mode=="horizontal"){
                        liHeight = Math.floor(containerHeight);
                        if ($(this).css("float")=="none")
                            $(this).css("float", "left");
                        $(this).width(Math.floor($(tContainer).width()/options.pageItems));
                     }
                     $(this).height(liHeight);

                    
                });
                
                cItem = 0;
                var intervalID;
                
                function Start(){
                    intervalID = setInterval(function(){Step(tContainer)}, options.delay);
                }
                
                tContainer.mouseover(function(){clearTimeout(intervalID)});
				tContainer.mouseout(function(){Start()});
                Start();

                function Step(c){
                
                    if (options.mode=="vertical"){
                        var offset = $(c).find("ul:first").css("marginTop").replace("px", "");
                        var theight = $(c).height();
                        var newoffset = (offset-theight);
                        var ulHeight = $(c).find("ul:first").height();
                        if (Math.abs(newoffset)>=Math.abs(ulHeight)) newoffset=0; 
                        $(c).find("ul:first").animate({marginTop: newoffset+"px"}, options.speed, function(){});
                    }
                    if (options.mode=="horizontal"){
                        var offset = $(c).find("ul:first").css("marginLeft").replace("px", "");
                        var twidth = $(c).width();
                        var newoffset = (offset-twidth)+1; //+1 per aggiustamento
                        var ulWidth = 0; //$(c).find("ul:first>li").length*twidth;
                        $(c).find("ul:first>li").each(function(){ulWidth+=$(this).width()});
                        if (Math.abs(newoffset)>=Math.abs(ulWidth)) newoffset=0; 
                        $(c).find("ul:first").animate({marginLeft: newoffset+"px"}, options.speed, function(){});
                    }
                }
                
            });

        }    
    });
    
    $.fn.mpTickerStop = function() {
	return this.each(function(){ 
		//$(this).dialog('close');
	});
    };

})(jQuery);



/*	tramite le api di google carica e ritorna un rss (cross domain)
	http://plugins.jquery.com/project/jgfeed
*/
(function($){
  $.extend({
    jGFeed : function(url, fnk, num, key){
      // Make sure url to get is defined
      if(url == null) return false;
      // Build Google Feed API URL
      var gurl = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q="+url;
      if(num != null) gurl += "&num="+num;
      if(key != null) gurl += "&key="+key;
      // AJAX request the API
      $.getJSON(gurl, function(data){
        if(typeof fnk == 'function')
		  fnk.call(this, data.responseData.feed);
		else
		  return false;
      });
    }
  });
})(jQuery);

