var xmlDisplay = {
	
	mapLang: function(lg) {
		return lg == 'en' ? 'gb' : lg;
	},
	
	initCallAjax:function(){
		var lg = xmlDisplay.mapLang((document.documentElement || document.getElementsByTagName('html')[0]).lang);
		
		var rq = new Ajax.Request(
			'/hotel-cms/'+lg+'/widget/fluxInfo.xml',
			{
				method:'get',
				asynchronous: true,
				onSuccess: xmlDisplay.prepareResponse,
				onFailure: xmlDisplay.reportError
			}
		);
	},
	
	getNodeContent: function(n) {
		var r = null;
		if(n && n.firstChild) {
			var i = n.childNodes.length;
			while(i--) {
				if(n.childNodes[i].nodeType == 4) {
					r = n.childNodes[i].nodeValue;
					break;
				}
			}
		}
		return r;
	},
	
	prepareResponse:function(datas){
		var response = datas.responseXML, categorie = response.getElementsByTagName('categorie');
		var tplWhatsNew = '', tplLimitedEdition = '', displayedTitle = null;
		var i;
		
		for(i = 0, categorieLen = categorie.length; i < categorieLen; i++) {
			var templateCode = categorie[i].getElementsByTagName('template')[0].firstChild.nodeValue;
			
			if(templateCode == '5' || templateCode == '6') {
				var item = categorie[i].getElementsByTagName('item');
				var blocTitle = categorie[i].getElementsByTagName('title')[0].firstChild.nodeValue;
				
				if(templateCode == '6') {
					displayedTitle = blocTitle;
				}
				
				for(var j=0, itemLen = item.length; j < itemLen; j++) {
					var title = null, price = null, text = null, img = null, link = null, c;
					
					title = xmlDisplay.getNodeContent(item[j].getElementsByTagName('title')[0]);
					price = xmlDisplay.getNodeContent(item[j].getElementsByTagName('link')[0]);
					text = xmlDisplay.getNodeContent(item[j].getElementsByTagName('text')[0]);
					img = xmlDisplay.getNodeContent(item[j].getElementsByTagName('image')[0]);
					link = item[j].getElementsByTagName('link')[0].getAttribute('url');
					
					if(templateCode == '5') {
						// template WhatsNew (5)
						var cls = img ? ' class="hasImg"' : '';
						tplWhatsNew += '<li'+ cls +'><a href="'+ link +'">';
						if(img) {
							tplWhatsNew += '<img src="'+img+'" alt="" />';
						}
						if(text) {
							if(img) {
								text = text.truncate(90, " [...]");
							} else {
								text = text.truncate(90, " [...]");
							}
							tplWhatsNew += '<span class="text">'+text+'</span>';
						}
						tplWhatsNew += '<span class="readmore">'+price+'</span></a></li>';
					} else if(templateCode == '6') {
						// template Limited Edition (6)
						
						tplLimitedEdition += '<li><a href="'+link+'"><span class="hotelName">'+title+'</span>';
						if(price) {
							tplLimitedEdition += '<span class="price">'+price+'</span>';
						}
						tplLimitedEdition += '</li>';
					}
				}
			}
		}
		
		// insertion dans whats new
		var targetWhatsNew = $$('#nouveautes ul')[0];
		targetWhatsNew.innerHTML = tplWhatsNew;
		var maxItemWhatsNew = 4;
		var ItemWhatsNewLength = $$('#nouveautes ul li').length;
		var oLis = $$('#nouveautes ul li');
		if(ItemWhatsNewLength >= maxItemWhatsNew) {
			for(i = maxItemWhatsNew; i < ItemWhatsNewLength; i++) {
				oLis[i].remove();
			}
		}
		var newLis = targetWhatsNew.getElementsByTagName('li');
		if(newLis.length > 0) {
			newLis[newLis.length-1].style.border = '0';
		}
		
		// insertion dans Limited edition
		var targetLimitedEditionTitle = $$('#limited-edition h2 span')[0];
		targetLimitedEditionTitle.innerHTML = displayedTitle;
		var targetLimitedEdition = $$('#limited-edition ul')[0];
		targetLimitedEdition.innerHTML = tplLimitedEdition;
		var maxItemLimitedEdition = 6;
		var oLiLEsLength = $$('#limited-edition li').length;
		var oLisLE = $$('#limited-edition li');
		if(oLiLEsLength >= maxItemLimitedEdition) {
			for(i = maxItemLimitedEdition; i < oLiLEsLength; i++) {
				oLisLE[i].remove();
			}
		}
		if(oLiLEsLength < 2) {
			document.getElementById('limited-edition').style.background = 'none';
		}
	},

	reportError: function(){
		//alert('error')
	}

};

Event.observe(window, 'load', xmlDisplay.initCallAjax, false);