
var newsNumber = 1;
var newsRandom
var startNews= "0";
var myTitle;
var myWord;
var oldWord;
var myTitleArray;
var oldSearchArray = new Array();
var oldSearchInd = 0;
var usedArray = new Array();
var usedTitle = new Array();

var layerTop = (screen.height/6)*3;
var layerLeft = (screen.width/4); 
var formTop = (screen.height/2)-280;
var formLeft = (screen.width/2)-160;
var newsCount = 0;
var newsY =0
var newsX = 0;
var finalX =0;
var newsWidth;
var partString ="";
var partStringNotFirst ="";
var newsOffset = 0;
var wordFound;
var spaceString="";
var firstMove=true;

 function getFeed(key) {
 newsRandom = Math.round( Math.random(newsNumber)*10);
	var newScript = document.createElement('script');
	newScript.type = 'text/javascript';
	newScript.src = 'http://pipes.yahoo.com/pipes/HBf1bq6L3BGAFMpRy6ky6g/run?&_render=json&_callback=piper&newsRandom='+newsRandom+'&newsNumber='+newsNumber+'&key='+key;
	document.getElementsByTagName("head")[0].appendChild(newScript);
}

function piper(feed) {
	//alert(feed.value.items.length);
	newsNumber = feed.value.items.length+1;
	var found = false;
	for(var j=0; j<newsNumber; j++) {
		if (feed.value.items[j] && !found) {
			//alert(newsX);
			// sposta il form iniziale
			if (firstMove==true ){
				new Effect.Move ('baseForm',{ y: -1000 , mode: 'relative'});
				firstMove=false;
			}
			myTitle = feed.value.items[0].title;
			if(usedTitle.indexOf(myTitle) == -1) {
				usedTitle.push(myTitle);
				//mantiene la dimensione di usedTitle inferiore al valore impostato
				if (usedTitle.length > 10){
					usedTitle = usedTitle.splice(1);
				}
				//determina la larghezza del div che contiene la notizia
				newsWidth = (myTitle.length*12)+18;
				myTitleArray =  myTitle.split(" ");
				var elementiDom = new Array();
				var start = Builder.node('div',{className:'first'},[
					Builder.node('img',{src:'img/sin.png'})
				]);
				elementiDom.push(start);
				// crea i div per le singole parole della notizia
				for (var i=0; i < myTitleArray.length; i++){
					//alert (i+" "+myTitleArray.length)
					if(i == (myTitleArray.length-1)){
						var singleWord = Builder.node('div',{className:'last'},myTitleArray[i]);
						elementiDom.push(singleWord);
					} else {
						var singleWord = Builder.node('div',{style:'position: static; display: inline'},myTitleArray[i]);
						elementiDom.push(singleWord);
					}
				}
				// Calcola le lettere e spazi prima della parola trovata nel titolo
				if(wordFound){
					wordFound = wordFound.toLowerCase();
					var spaceString="";
					for (var i=0; i < myTitleArray.length; i++){
						//alert ("wordFound "+wordFound)
						if (myTitleArray[i].toLowerCase()!= wordFound){
							var spaceString=spaceString+myTitleArray[i]+" ";
							//alert (spaceString+" "+i);
						} else {
							break;
						}
					}
					//alert (spaceString);
					newsOffset = (spaceString.length*12)-12;
					//newsOffset =0;
				}
				//alert ("wordFound "+wordFound)
			
				newsCount = newsCount+1;
				newsY = newsY+40;
				var element = Builder.node('div',{id:'news'+newsCount,className:'container', style:'width: '+newsWidth+'px !important'},[
					Builder.node('a',{href:feed.value.items[0].link,style:'position: static;'},[
						elementiDom	
					])
				]);
				
				//alert ("newsOffset "+newsOffset);
				//alert ("partStringOffset "+partString.length*12);
				// Posiziona la riga news
				document.getElementById('rssLayer').appendChild(element);
				$ ('news'+newsCount).style.left = "4000px";
				$ ('news'+newsCount).style.width = newsWidth;
				//$ ('news'+newsCount).style.border = 'solid 1px red';
				$ ('news'+newsCount).style.top = newsY+"px";
				
				//$ ('news'+newsCount).style.position = "absolute";
				//alert ("partString: "+partString);
				//alert ("partStringNotFirst: "+partStringNotFirst);
				if (partString != ""){
					// la parola trovata NON è la prima della notizia
					newsX = finalX+(partString.length*12)+(partStringNotFirst.length*12);
				} else {
					// la parola trovata è la prima della notizia
					newsX = finalX+(partString.length*12)-12;
				}
				finalX =  newsX-newsOffset;
				partString ="";
				partStringNotFirst ="";
				
				// muove la notizia 
				new Effect.Move ('news'+newsCount,{ x: finalX, y: newsY , mode: 'absolute'});
				
				layerTop = layerTop-40;
				// muove il layer contenitore
				new Effect.Move ('rssLayer',{ x: ((-1*finalX)+layerLeft), y: layerTop, mode: 'absolute'});
				
				// cicla myTitleArray con l'iteratore prototype each
				myTitleArray.each(function(e, ind){
					// controlla se l'elemento dell'array è nel gruppo di quelli usati
					if(usedArray.indexOf(e) == -1) {
						//$('debug').innerHTML += "Cerco:" + e + "<br>";
						partStringNotFirst = e;
						usedArray.push(e);
						oldSearchArray = myTitleArray;
						oldSearchInd = ind;
						getFeed(e);
						wordFound = e;
					//	$('debug').innerHTML += "Trovato:" + wordFound + "<br><br>";
						//alert("2: "+e);
						found = true;
						throw $break;
					}
				});	
			} 
		}
	if(firstMove==true){
			$('msg').innerHTML = "Sorry but your word produced no results. Please try another one"
			$('keyForm').value="";
		}
	}
// se non ha trovato la parola ripete l'azione di ricerca in pipes 
if(!found) {
		if(oldSearchInd < oldSearchArray.length && usedArray.indexOf(oldSearchArray[oldSearchInd+1]) == -1) {
			//alert(partString.length);
			//$('debug').innerHTML += "Cerco2:" + oldSearchArray[oldSearchInd+1] + "<br>";
			partString =  partString+" "+ oldSearchArray[oldSearchInd+1];
			usedArray.push(oldSearchArray[oldSearchInd+1]);
			oldSearchInd++;
			getFeed(oldSearchArray[oldSearchInd+1]);
			wordFound = oldSearchArray[oldSearchInd+1];
			//$('debug').innerHTML += "Trovato2:" + wordFound + "<br><br>";
			if (wordFound == undefined){
				createFinal()
			}
		}else {
			if (firstMove==false ){
				createFinal();
			}
		}	
	}

}

//Crea il box finale
function createFinal(){
	if (!$('msgFinal')){msgString = 'Your word tiled '+newsCount+' news. Do you want to '
	var finalBox = Builder.node('div',{id:'msgFinal'},[
		msgString,
		Builder.node('a',{onclick:'window.location.reload()', href:'#'},'try another word?')
		]
	)
	document.getElementById('rssLayer').appendChild(finalBox);
	new Effect.Move ('msgFinal',{ x: finalX, y: (newsY +60), mode: 'absolute'});
}
}


// Stampa la data corrente
function writeDate(){
var m_names = new Array("january", "february", "march", 
	"april", "may", "june", "july", "august", "september", 
	"october", "november", "december");
		var currentTime = new Date();
		var month = m_names[currentTime.getMonth()];
		var day = currentTime.getDate();
		var year = currentTime.getFullYear();
	$('date').innerHTML = day + " " + month + " " + year;
}   

// Gestione Description
function initDescription(){
	var descLeft = (screen.width/2)-300;
	$('description').style.left = descLeft+"px";
	
	var descriptionVisible = false;
	
	$('description').onmouseover = function (){
		if (descriptionVisible == false){
			new Effect.Move ('description',{ x: descLeft, y: 0, mode: 'absolute'});
	 			descriptionVisible = true;
			} 
		}
	$('baseForm').onmouseover = function (){
		if (descriptionVisible == true){
			new Effect.Move ('description',{ x: descLeft, y: -95, mode: 'absolute'});
			descriptionVisible = false;
			} 
		}
	$('rssLayer').onmouseover = function (){
		if (descriptionVisible == true){
			new Effect.Move ('description',{ x: descLeft, y: -95, mode: 'absolute'});
			descriptionVisible = false;
			} 
		}	
	}
	
	
	  
function checkBrowser(){
	if(BrowserDetect.browser == "Safari" || BrowserDetect.OS == "Mac"){
		$('rssLayer').style.letterSpacing = "-1px"
	}
}
   
// Si esegue all'onload  
window.onload = function inizializza(){ 
	writeDate();
	$('baseForm').style.top = formTop+"px";
	$('baseForm').style.left = formLeft+"px";;
  	$$('body')[0].style.overflow= "hidden";
	$('rssLayer').style.top = layerTop+"px";
	$('rssLayer').style.left = layerLeft+"px";
	$('rssLayer').style.cursor = "move";
	new Draggable('rssLayer',{revert:false, ghosting: false});
	document.getElementById('invia').onclick = function ricerca(){
		var valKey = document.getElementById('keyForm').value;
		getFeed(valKey);		
   }
   initDescription()
   BrowserDetect.init();
   checkBrowser();

}
