/**********************************************
 !   $Id$
 *********************************************/
 jQuery.validator.addMethod("dateFR", function(value, element) { 
  return this.optional(element) || /^\d\d?\-\d\d?\-\d\d\d?\d?$/.test(value); 
}, "Entrer une date valide (jj-mm-yyyy).");
  
function fctError(object, request)
{
 alert('timeout div');
 request.abort();
}
 
(function( $ ){

    var settings = {
      'href'         : ''
    };



  var methods = {
    init : function( options ) {
        if ( options ) { 
         $.extend( settings, options );
      }
    },
  
    link : function( options ) {
        return this.each(function(){
    		var self = $(this);
    		if (!self.hasClass('bn-lnk-ajax-done')){
    			self.addClass('bn-lnk-ajax-done');
  	   			var md = self.metadata();
  	    		var data = {};
  	    		data.params = '';
  	    		for(key in md) {if (key != 'target') data.params += '&' + key + '=' + md[key];
  	    		else data.target = md[key];
  	    		}  	   
  	    		data.loading_img = 'Bn/Img/loading.gif';
  	    		//data.onError = fctError;
	    		self.ajaxify(data);
	    		}
        	});
      	},
      	
    div : function( options ) {
       return this.each(function(){
    		var self = $(this);
      		if (!self.hasClass('bn-div-ajax-done')){
    			self.addClass('bn-div-ajax-done');
  	   			var md = self.metadata();
  	   			var data = {};
  	   			data.link = settings.href + 'index.php';
  	   			data.event = false; //'load';
  	   			data.target = '#' + self.attr('id');
	   			//data.timeout = 10000;
  	   			data.loading_img = 'Bn/Img/loading.gif';
  	   			data.onError = fctError;
  	   			jQuery.ajaxSetup({async:true});
  	   			data.params = '';
  	   			for(key in md) {if (key != 'target') data.params += '&' + key + '=' + md[key];}
	   			self.ajaxify(data);
	   		}
      	});
      },     
      
    btn : function( options ) {
       return this.each(function(){
    		var self = $(this);
      		if (!self.hasClass('bn-btn-ajax-done')){
    			self.addClass('bn-btn-ajax-done');
  	   			var md = self.metadata();
  	   			var data = {};
  	   			data.link = settings.href + 'index.php';
  	   			data.target = md.target;
  	   			data.loading_img = 'Bn/Img/loading.gif';
  	   			data.onError = fctError;
  	   			jQuery.ajaxSetup({async:true});
  	   			data.params = 'ajax=true';
  	   			for(key in md) {if (key != 'target') data.params += '&' + key + '=' + md[key];}
  	   			data.params += '&' + $(this).attr('id') + '=' + $(this).val();
	   			self.ajaxify(data);
	   		}
      	});
      },     
        	
   dlg : function( options ) {
       return this.each(function(){
    		var self = $(this);
      		if (!self.hasClass('bn-dlg-done')){
     			self.addClass('bn-dlg-done');
    			self.click(function(){
      				var md = $(this).metadata();
      				var width=500;
      				var height=380;
					var title='';
      				if (md.width!=undefined) width=md.width;
      				if (md.height!=undefined) height=md.height;
      				if (md.title!=undefined) title=md.title;
      				$('#dlg').dialog('option', 'title', title);
      				$('#dlg').dialog('option', 'width',   width);
      				$('#dlg').dialog('option', 'height', height);
   	  				$("#dlg").dialog('open');
   	  				});
				}
			});
		},
	
   popup : function( options ) {
       return this.each(function(){
    		var self = $(this);
      		if (!self.hasClass('bn-popup-done')){
     			self.addClass('bn-popup-done');
    			self.click(function(){
     				var width=400;
      				var height=300;
      				var top=10;
      				var left=10;
      				var title='SquashNet';
   	  				var md = $(this).metadata();
      				if (md.top!=undefined) top=md.top;
      				if (md.left!=undefined) left=md.left;
      				if (md.width!=undefined) width=md.width;
      				if (md.height!=undefined) height=md.height;
      				if (md.title!=undefined) title=md.title;
   	  				//var url = $(location).attr('href') + '?bnAction=' + md.bnAction;
   	  				var url = 'index.php?bnAction=' + md.bnAction;
   	  				for(key in md) {if (key != 'bnAction') url += '&' + key + '=' + md[key];}
					var now = new Date();
   	  				var name = "bn_" + now.getTime();
   	  				var option = "width=" + width + ",height=" + height + ",top=" + top + ",left=" + left + ",location=no,menubar=no,toolbar=no,scrollbars=no,resizable=yes,status=no";
   	  				window.open(url, name, option);
   	  				});
				}
			});
		},
        	       	
    close : function( options ) {
       return this.each(function(){
    		var self = $(this);
      		if (!self.hasClass('bn-btn-close-done')){
     			self.addClass('bn-btn-close-done');
    			self.click(function(){
   	  				$("#dlg").dialog('option', 'height', 380);
   	  				$("#dlg").dialog('option', 'width', 500);
      				if ($("#dlg").dialog('isOpen') ) {$("#targetDlg").empty();$("#dlg").dialog('close');}
    				});
				}
			});
		},
        	
    del : function( options ) {
       return this.each(function(){
    		var self = $(this);
      		if (!self.hasClass('bn-delete-done')){
     			self.addClass('bn-delete-done');
    			self.click(function(){
      				var md = $(this).metadata();
      				var width=300;
      				var height=150;
      				var title='Suppression';
      				if (md.width!=undefined) width=md.width;
      				if (md.height!=undefined) height=md.height;
      				if (md.title!=undefined) title=md.title;
					$('#dlg').dialog('option', 'title', title);
      				$('#dlg').dialog('option', 'width', width);
      				$('#dlg').dialog('option', 'height', height);
   	  				$("#dlg").dialog('open');
    				});
				}
			});
		},
		
    goto : function( options ) {
       return this.each(function(){
    		var self = $(this);
      		if (!self.hasClass('bn-btn-goto-done')){
     			self.addClass('bn-btn-goto-done');
    			self.click(function(){
	 				var data = $(this).metadata();
	 				var url = settings.href + 'index.php';
	 				var glue = "?";
	 				for(key in data) {
        				url += glue + key + "=" + data[key];
        				glue = "&";
      				}
	 				location = url;
	 				return false;
				});
			}
		});
	},
		
    tooltip : function( options ) {
       return this.each(function(){
    		var self = $(this);
      		if (!self.hasClass('bn-tooltip-done')){
     			self.addClass('bn-tooltip-done');
    			self.tooltip({
					track: true,
					delay: 800,
					showURL: false,
					opacity: 1,
					fixPNG: true,
					showBody: " - ",
					extraClass: "pretty fancy",
					top: 0,
					left: 0
					});
				}
			});
		}
  };

  $.fn.bn = function( method ) {
    
    // Method calling logic
    if ( methods[method] ) {
      return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
    } else if ( typeof method === 'object' || ! method ) {
      return methods.init.apply( this, arguments );
    } else {
      $.error( 'Method ' +  method + ' does not exist on jQuery.bn' );
    }    
    return false;
  };

})( jQuery );



(function( $ ){


	var options = {
		active: 0,
		animated: "slide",
		event: "click"
	};

  var methods = {
    init : function( options ) {
    	var self = $(this);
        self.addClass( "bn-dynpref" );
		self.find('ul').addClass( "bn-dynpref-menu" );		
		self.find('div').addClass( "bn-dynpref-content" );		
        self.find('li')
          .addClass( "bn-dynpref-item" )
          .bind( "click", function(event) {
            $(this).parent().find('li').removeClass('bn-dynpref-item-active');
		    $(this).addClass('bn-dynpref-item-active');
		    var md = $(this).metadata();
			$(this).parent().parent().find('div').load('index.php', md);
		});
		
		
		var md = self.find('#bn-item-'+options.active).addClass('bn-dynpref-item-active').metadata();
		self.find('div').load('index.php', md);
		
      }
  };

  $.fn.bndynpref = function( method ) {
    
    // Method calling logic
    if ( methods[method] ) {
      return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
    } else if ( typeof method === 'object' || ! method ) {
      return methods.init.apply( this, arguments );
    } else {
      $.error( 'Method ' +  method + ' does not exist on jQuery.tooltip' );
    }    
  
  };

})( jQuery );

(function( $ ){

  var methods = {
    init : function( options ) {
    	$(".unload").livequery('click', nodeLoad);
	    $('.node').livequery('click', nodeToggle);
      },
    show : function( ) {   },
    hide : function( ) {  },
    update : function( content ) {  }
  };

	function nodeToggle() 
	{
		if ($(this).hasClass('collapsable-node')) 
		{
			$(this).parent().find(">ul").hide();
		} 
		else 
		{
			$(this).parent().find(">ul").show();
		}
		$(this).parent().toggleClass('expandable');
		$(this).parent().toggleClass('collapsable');
		$(this).toggleClass('expandable-node');
		$(this).toggleClass('collapsable-node');

		if ($(this).hasClass('lastExpandable-node') ||
			$(this).hasClass('lastCollapsable-node')) 
		{
			$(this).parent().toggleClass('lastExpandable');
			$(this).parent().toggleClass('lastCollapsable');
			$(this).toggleClass('lastExpandable-node');
			$(this).toggleClass('lastCollapsable-node');
		}
		return false;
	}

	function nodeLoad() 
	{
		$(this).removeClass('unload');
		$(this).unbind('click', nodeLoad);
		var md = $(this).metadata();
		var cible = $(this).parent().attr('id');
		var html = "<div id='formLoading'><img src='Bn/Img/loading.gif' alt='Loading...' title='Loading...' ></div>";
		$('#' + cible).append(html);
		$.post('index.php', md, function(aData) {
			$('#formLoading').remove();
			$('#' + cible).append(aData);
		});
	}

  $.fn.bndynlist = function( method ) {
    
    // Method calling logic
    if ( methods[method] ) {
      return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
    } else if ( typeof method === 'object' || ! method ) {
      return methods.init.apply( this, arguments );
    } else {
      $.error( 'Method ' +  method + ' does not exist on jQuery.tooltip' );
    }    
  
  };

})( jQuery );
 

