/*
 * @Version				1.0.0
 * @Package				AnsJsObserver
 * @Author				Giuliano Losi
 * @Creation Date		2008-10-05
 * @Last Mod Date		2008-10-05
 * @Last Mod Author		Giuliano Losi
 *
 *	<b>ChangeLog (Versione - DataRilascio)</b>
 *
 *	1.0.0 - 05/10/2008 - Giuliano Losi
 *		• Definizione metodo per l'avviso all'utenza
 *
 *	<h1>Plugin ANCF per JQuery da usare con un generico browser</h1>
 *	Plugin per la definizione delle caratteristiche del Athenae Noctua Client Framework con un generico browser.
 *	Testato con Mac Safari 2,3; Mac Firefox 2,3; Win Internet Explorer 6,7; Win Firefox 2,3; Win Safari 2,3.
 */
/* Definizione del plugin secondo */
(function($){ //Definizione dell'alias $
    $.fn.handleanchor = function(options){
    
        var settings = {};
        
        if (options) {
            $.extend(settings, options);
        }
        
        $("a._blank").each(function(){
            this.target = "_blank";
        });
        
		/*$.addObserver("handleanchor","confirm","a.confirm", 'click', requireConfirm);
        $.addObserver("handleanchor","doubleConfirm","a.double_confirm", 'click', requireDoubleConfirm);
        $.addObserver("handleanchor","ajaxRequest","a.ajax", 'click', catchLink);
		$.addObserver("handleanchor","ajaxModalRequest","a.modalajax", 'click', catchLinkForModalbox);*/
    }
    
    /* */
    $.fn.catchLink = function(){
    
        $(this).addClass("caller");
        $(this).click(function(event){
        	
        	/* Prevengo il normale comportamento del tag anchor */
	        event.preventDefault();
	        
	        if($(this).hasClass("confirm") && !confirm('Sei sicuro di compiere questa operazione?')) {
	        	return false;
	        }
	        
	        /* Eseguo la chiamata via ajax*/
	        $.ajax({
	            global: true,
	            type: "GET",
	            url: $(this).attr('href'),
	            dataType: "xml",
	            success: function(data, textStatus){
	                $.handleResponseData(data);
	            },
	            error: function(XMLHttpRequest, textStatus, errorThrown){
	                $.showAlert(textStatus);
	            }
	        });
	        return false;
        });
    };
	
	function catchLinkForModalbox(event){
    
        $(this).addClass("caller");
        
        /* Prevengo il normale comportamento del tag anchor */
        event.preventDefault();
      
        /* Eseguo la chiamata via ajax*/
        $.ajax({
            global: true,
            type: "GET",
            url: $(this).attr('href'),
            dataType: "xml",
            success: function(data, textStatus){
                //$.handleResponseData(data);
				
				var options = {
					messages: '',
					title: ' ',
					text: ' ',
					time: 3000
				}
				
				$(data).find('document').find('payload').find('placeholder').each(function(){  
					var placeholder 		= $(this);
					var placeholderName 	= placeholder.attr("name");
					var placeholderContent	= placeholder.find("content").text();
					//alert(placeholderName);
					//alert(placeholderContent);
					//ChangePlaceholderContent(placeholderName,placeholderContent);
					
					options.text = placeholderContent;
				
					$.modal(options.text,{
						opacity: options.opacity,
						onOpen: function(dialog) {
							dialog.overlay.fadeIn(options.speed, function() {
								dialog.data.hide();
								dialog.container.fadeIn(options.speed, function() {
									dialog.data.fadeIn(options.speed);
								});
							});
							
							//$.loadPlugins('.modalbox');
							//$.bindObservers($('.modalbox'));
							$.loadPlugins(dialog.container);
							$.bindObservers($(dialog.container));
							
							
							
							
						},
						onClose: function(dialog) {
							dialog.data.fadeOut(options.speed, function () {
								dialog.container.fadeOut(options.speed, function () {
									dialog.overlay.fadeOut(options.speed, function () {
										$.modal.close();
									});
								});
							});
						}
					});
				});
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $.showAlert(textStatus);
            }
        });
    }
    
    function requireConfirm(event){
        event.preventDefault();
        var href = $(this).attr("href");
        var text = $(this).attr("title");
        if (text === "") 
            text = 'Sei sicuro di compiere questa operazione?';
        if (confirm(text)) {
            location.href = href;
        }
    }
    
    function requireDoubleConfirm(event){
        event.preventDefault();
        var href = $(this).attr("href");
        var text = $(this).attr("title");
        if (text === "") 
            text = 'Sei sicuro di compiere questa operazione?';
        if (confirm(text)) {
            if (confirm('Sei davvero sicuro?')) {
                location.href = href;
            }
        }
    }
    
})(jQuery);
