function XmlToHighSlide() {
    var i = 1;
    $("a.diaporama").each(function() {
        var linqToXml = this;
        var fileXml = $(linqToXml).attr("href");
        var xmlContent = getXmlObjectFromXmlFile(fileXml);
		
        var linqTag = '';
		var innerBaliseLinq = $(linqToXml).html();
		if (jQuery.trim(innerBaliseLinq) != '') {
			linqTag = '<a id="group' + i + '" href="' + fileXml +
			'">' + innerBaliseLinq + '</a>';
		} else {
			$(xmlContent).find('image:first').each(function() {
				var filename = $(this).find('main').text();
				var thumb = $(this).find('thumb').text();
				linqTag = '<a id="group' + i + '" href="' + fileXml +
							'"><img src="http://www.lafranceagricole.fr/Thumb/105/' + thumb + '" alt=""></a>';
			});
		}
        $(linqToXml).replaceWith(linqTag);

/*
        $("#group" + i).click(function() {
            createAndOpenGallery(this);
            return false;
        });
*/

        $("#group" + i).live("click", function() {
          createAndOpenGallery(this);
          return false;
        });

        i++;
        
    });
}

function getXmlObjectFromXmlFile(fichierXml) {
    var xmlResult = $.ajax({
        async: false,
        type: "GET",
        url: fichierXml,
        dataType: "xml"
    });
    return xmlResult.responseXML;
}

function createAndOpenGallery(linqToXml) {
    if ($(linqToXml).next().attr("class") != "highslide-gallery hidden-container") {
        var fileXml = $(linqToXml).attr("href");
        var innerHTML = getAndTransformXmlToHighslide(fileXml, linqToXml.id);
        $(linqToXml).after('<div class="highslide-gallery hidden-container">' + innerHTML + '</div>');
    }
    hs.updateAnchors();
    hs.Expander.prototype.onAfterExpand = function() { cacheMiniatureAfterExpand(); };
    $(linqToXml).next().children().eq(0).click();
}

function cacheMiniatureAfterExpand() {
    $(".highslide-thumbstrip-inner img").each(function() {
        $(this).attr("src", $(this).attr("rel"));
    });
}

function getAndTransformXmlToHighslide(fichierXml, group) {
    var xmlContent = getXmlObjectFromXmlFile(fichierXml);
    return transformXmlToHighslide(xmlContent, group);
}

function transformXmlToHighslide(xmlContent, group) {
    var imageLinqList = '';
    $(xmlContent).find('image').each(function() {
        var filename = $(this).find('main').text();
        var thumb = $(this).find('thumb').text();
        var caption = $(this).find('caption').text();
        imageLinqList += '<a class="highslide" href="' + filename + '" onclick="return hs.expand(this, ' + updateConfig(config1, group) + ')" title="' + caption +
	            '"><img src="images/defaultThumb.jpg" alt="" rel="' + thumb + '" /></a>';
    });
    return imageLinqList;
}

function updateConfig(configInitial, group) {    
    var configString = '{ ';
    for (var propertyName in configInitial) {
        if (propertyName != 'slideshowGroup') {
            configString += propertyName + ': [' 
            if (propertyName.propertyIsEnumerable) {
                $(configInitial[propertyName]).each(function() {
                    configString += '\'' + this + '\',';
                });

                configString = configString.substring(0, configString.lastIndexOf(','));
                configString += '], ';
            } else {
                configString += propertyName + ': \'' + configInitial[propertyName] + '\', ';
            }
        }
    }
    return configString + 'slideshowGroup:\'' + group + '\' }';
}
