;(function($) {
    
	$.parseAnimation = {
		defaults: {
            'url': '',
            'complete': function(object){},
            'champs':null
		}
	};

	$.fn.extend({
		parseAnimation: function(settings) {
			settings = $.extend({}, $.parseAnimation.defaults, settings);
			$.ajax({
				url: settings.url,
				global: false,
				dataType: "html",
				success: function(reponse){
					var xml;
					if(jQuery.browser.msie)
					{
						xml = new ActiveXObject("Microsoft.XMLDOM");
						xml.async = false;
						xml.loadXML(reponse);
						xml = jQuery(xml).find("animation");
					}
					else
					{
						xml = jQuery(reponse).find("animation");
					}
					settings.complete(parse(xml, settings.champs));
				}
			});
		}
	});
	
	function parse(xml, champs)
	{
		var _array = new Array();
		xml.each(function(){
			var _object	= {
				"titre" : 	getXmlValue(jQuery(this).find("titre")),
				"texte" : 	getXmlValue(jQuery(this).find("texte")),
				"image" : 	(jQuery.browser.msie) ? jQuery(this).find("image").attr('url') : jQuery(this).find("img").attr('url'),
				"delay":	getXmlValue(jQuery(this).find("delai")),
				"url" : 	getXmlValue(jQuery(this).find("url")),
				"target" : 	getXmlValue(jQuery(this).find("nouvellefenetre")) == "1" ? "_blank" : "_self"
			};
			
			for (var i=0; i<champs; i++)
			{
				_object["description" + i] = getXmlValue(jQuery(this).find("description[id="+i+"]"));
			}
			
			_array.push(_object);
		});
		return _array;
	}
	
	function getXmlValue(value)
	{
		if(jQuery.browser.msie){
			return value.text();
		}
		else
		{
			return value.html();
		}
	}
	
	function settings(element)
	{
		return $.data(element, "parseAnimation");
	}

})(jQuery);

