/*variabili e funzioni per leggere i dati da passare al coverflow*/

	
/**
* @param xmlFile path to xml file
* @enableDateRange true if you want to filter outdate data, false to keep everything
*/			
function collectCoverflowDataFromXML(xmlFile, enableDateRange){
	//objXml = parseCoverflowXml(xmlFile);
	
	var itemNodes = xmlFile.getElementsByTagName("item");
	//var itemNodes = xmlFile.documentElement.childNodes;
	var dataArray = new Array();
	var i=0;
	var counter = 0;
	var dateOk = true;
	
	//alert("XML Root Tag Name: " + xmlFile.documentElement.tagName+ '; childs item = ' +itemNodes.length);
	//alert('leggixml: '+type +' <-> '+ itemNodes[0].childNodes[0].text +' <-> '+ itemNodes[0].getElementsByTagName('type')[0].text);
	
	while (counter < itemNodes.length){
		//.textContent works in FF, .text works in Explorer
		var type, titolo, cover, img, link, categoria, wtarget, data_validita, data_scadenza;
		if(isExplorer()){
			type = itemNodes[counter].getElementsByTagName("type")[0].text;
			titolo = itemNodes[counter].getElementsByTagName("titolo")[0].text;
			cover = itemNodes[counter].getElementsByTagName("cover")[0].text;
			img = itemNodes[counter].getElementsByTagName("img")[0].text;
			link = itemNodes[counter].getElementsByTagName("link")[0].text;
			categoria = itemNodes[counter].getElementsByTagName("categoria")[0].text;
			wtarget = itemNodes[counter].getElementsByTagName("wtarget")[0].text;
			data_validita = itemNodes[counter].getElementsByTagName("data_validita")[0].text;
			data_scadenza = itemNodes[counter].getElementsByTagName("data_scadenza")[0].text;
		}
		else{
			type = itemNodes[counter].getElementsByTagName("type")[0].textContent;
			titolo = itemNodes[counter].getElementsByTagName("titolo")[0].textContent;
			cover = itemNodes[counter].getElementsByTagName("cover")[0].textContent;
			img = itemNodes[counter].getElementsByTagName("img")[0].textContent;
			link = itemNodes[counter].getElementsByTagName("link")[0].textContent;
			categoria = itemNodes[counter].getElementsByTagName("categoria")[0].textContent;
			wtarget = itemNodes[counter].getElementsByTagName("wtarget")[0].textContent;
			data_validita = itemNodes[counter].getElementsByTagName("data_validita")[0].textContent;
			data_scadenza = itemNodes[counter].getElementsByTagName("data_scadenza")[0].textContent;
		}

		if (enableDateRange)
			dateOk = checkDateRange(data_validita, data_scadenza);

		//if (dateOk)
			dataArray.push([{'type': type, 'titolo':titolo, 'cover':cover, 'img':img, 'link':link, 'categoria': categoria,
				'wtarget':wtarget, 'data_validita':data_validita, 'data_scadenza':data_scadenza}]); //, 'img_size':100
				
		counter++;	
	}//end while
	return dataArray;
	
	
	
	/*--SUPPORT FUNCTIONS--*/
	
	/**
	@param dateStart start date
	@param dateEnd end date
	@return true if now is between dateStart and dateEnd, false otherwise
	*/
	function checkDateRange(dateStart, dateEnd){
	
		if (dateStart == undefined || dateEnd == undefined)
			return true;//disable checkDateRange
			
		var now = new Date();
		var mm = now.getMinutes(); //Number of minutes (0-59)
		var hh = now.getHours(); //Number of hours (0-23)
		//var dayWeek = now.getDay(); // Day of the week(0-6). 0 = Sunday, ... , 6 = Saturday
		var day = now.getDate(); // Day of the month
		var month =now.getMonth(); // Number of month (0-11)
		var yy = now.getFullYear();	
		
		var startDateString = dateStart.split(' ')[0]; 	
		var startTimeString = dateStart.split(' ')[1];
		var endDateString = dateEnd.split(' ')[0];
		var endTimeString = dateEnd.split(' ')[1];
		
		var startYY = startDateString.split('-')[2];
		var endYY = endDateString.split('-')[2];
		var startMonth = startDateString.split('-')[1];
		var endMonth = endDateString.split('-')[1];
		var startDD = startDateString.split('-')[0];
		var endDD = endDateString.split('-')[0];
		var startHH = startTimeString.split(':')[0];
		var endHH = endTimeString.split(':')[0];
		var startmm = startTimeString.split(':')[1];
		var endmm = endTimeString.split(':')[1];
	
		var startDate = new Date();
		var endDate = new Date();
		startDate.setFullYear(startYY);
		endDate.setFullYear(endYY);
		startDate.setMonth(startMonth-1);
		endDate.setMonth(endMonth-1);
		startDate.setDate(startDD);
		endDate.setDate(endDD);
		startDate.setHours(startHH);
		endDate.setHours(endHH);
		startDate.setMinutes(startmm);
		endDate.setMinutes(endmm);
		//alert(startDate + '---' +endDate);
		
		if(startDate<=now && now<=endDate)
			return true;
		return false;
	};//end checkDateRange


	/**Reads an XML file
	*@param xmlFile the XML file
	*@return the loaded XML object
	*/
	function parseCoverflowXml(xmlFile){
		if(isExplorer()){
			//Load an XML String 
			var objXml = new ActiveXObject("Microsoft.XMLDOM");
			objXml.async = false;
			objXml.load(xmlFile);//xmlFile is an XML string
			
			/*var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
			xmlhttp.open("GET",xmlFile,false);		
			xmlhttp.send();
			objXml=xmlhttp.responseXML;*/
		}
		else{		
			//Load an XML Document
			var xmlhttp;
			if (window.XMLHttpRequest)
				xmlhttp = new XMLHttpRequest();
			else // IE 5/6		TODO test if never reached	  
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			//xmlhttp.setRequestHeader ("Accept", "text/xml");
			xmlhttp.open("GET",xmlFile,false);		
			xmlhttp.send();
			objXml=xmlhttp.responseXML;
		}	
		RemoveWhitespace(objXml);
		return objXml;
		
		
		/**Function that Removes Whitespace, Useful in Firefox Broswer*/
		function RemoveWhitespace(xml) {
			var loopIndex;
			for (loopIndex=0; loopIndex<xml.childNodes.length; loopIndex++) {
				var currentNode = xml.childNodes[loopIndex];
				if (currentNode.nodeType == 1) {
					RemoveWhitespace(currentNode);
				}
				if (((/^\s+$/.test(currentNode.nodeValue))) && (currentNode.nodeType == 3)) {
					xml.removeChild(xml.childNodes[loopIndex--]);
				}
			}
		};
		
	};//end parseCoverflowXml
	
	
	/**Checks if actual browser is Windows Explorer*/
	function isExplorer() {
		if (window.XMLHttpRequest && !(window.ActiveXObject)) {
			return( false );
		} else {
			if (window.ActiveXObject) {
				return( true );
			}
		}
		return( false );
	};
}



