;(function($) {
    
    var helper = {};
    
	$.nav = {
		defaults: {
            'id':	'nav',
            'url':	'',
            loader: null,
            legend: ""
		}
	};

	$.fn.extend({
		nav: function(settings) {
			settings = $.extend({}, $.nav.defaults, settings);
			$.ajax({
				url: settings.url,
				global: false,
				dataType: "html",
				success: function(reponse){
					var xml;
					if($.browser.msie){
						xml = new ActiveXObject("Microsoft.XMLDOM");
						xml.async = false;
						xml.loadXML(reponse);
						xml = $(xml).children();
					}
					else
					{
						xml = $(reponse);
					}
					xml = $(xml).children();
					var UL = $("<ul />");
					draw(xml, UL, $("#" + settings.id), 0);
					
					if (settings.legend != "")
					{
						var leg = $("<h2 />").addClass("legend").html(settings.legend);
						$("#" + settings.id).append(leg);
						UL.addClass("nav-legend");
					}
					
					$("#" + settings.id).append(UL);
					
					if (settings.loader)
					{
						settings.loader.hide();
					}
					
				}
			});
			
		}
	});
	
	function draw(xml, container, nav, profondeur)
	{
		var i=0;
		xml.each(function(){
			var _URL 		= ($(this).attr('URL') == "") ? "#" : $(this).attr('URL');
			var _TARGET 	= ($(this).attr('TARGET') == "") ? "_self" : $(this).attr('TARGET');
			var _TEXT;
			/*if($.browser.msie){
				_TEXT = $(this).getCDATA();
			}
			else
			{
				alert ($(this).html())
				_TEXT = $(this).html().split("<!--[CDATA[")[1].split("]]")[0];
			}*/
			if($.browser.msie){
				_TEXT = $(this).find(">texte").text();
			}
			else
			{
				_TEXT = $(this).find(">texte").html();
			}
			
			i++;
			var _SELECTED	= $(this).attr('SELECTED') == 'true';

			var a = $("<a href='" + _URL + "' />").text(_TEXT).attr('HREF', _URL).attr('TARGET', _TARGET).click(function(){
				
			});
			
			
			var li = $("<li />").append(a);
			
			if (_SELECTED)
			{
				a.addClass('active');
				a.parent().addClass('active');
			}

			container.append(li);
			child = $(this).find('>ITEM');
			
			if (child != null)
			{
				if (child.length > 0)
				{
					var mc = $("<ul />");
					if (profondeur > 0)
					{
						mc.hide();
					}
					draw(child, mc, nav, profondeur + 1);
					li.append(mc);
				}
			}
		});
	}
	
	function settings(element) {
		return $.data(element, "nav");
	}
	
	$.fn.delay = function(delay, method){
	    var node = this;
	    if (node.length){
	        if (node[0]._timer_) clearTimeout(node[0]._timer_);
	        node[0]._timer_ = setTimeout(function(){ method(node); }, delay);
	    }
	    return this;
	};
	
	jQuery.fn.getCDATA = function() {
		if($.browser.msie)
		{
			return this[0].childNodes[0].nodeValue;
		}
		return this[0].childNodes[1].nodeValue;
	};


})(jQuery);

