//data	
hist=new Array();
url='http://data.gbif.org/species/nameSearch?view=JSON&callback=myPlant&mapSize=medium&returnType=nameIdMap&query='
url1='http://data.gbif.org/species/nameSearch?view=JSON&maxResults=50&soundex=true&callback=buildSimilar&mapSize=medium&returnType=nameIdMap&query='
url2='http://data.gbif.org/species/classificationSearch?callback=classify&view=JSON&query='
url3='http://www.flickr.com/services/rest/?method=flickr.photos.search&format=json&api_key=921a660cadad9262da351172a29f4380&extras=owner_name&text='

//settings
Event.observe(window, 'load', function(){ 
   $('details').setStyle('width:'+ ($('container').getWidth() - $('queryTree').getWidth() - 50) +'px');
   //$('details').setStyle('width:'+(1000- $('queryTree').getWidth() - 30) +'px');
   $('go').observe('click', function(){goSearch()})
   if($('que').value)getPhoto($('que').value);
   goSearch(); 
});
Event.observe(window, 'resize', function(){ 
   $('details').setStyle('width:'+ ($('container').getWidth() - $('queryTree').getWidth() - 50) +'px');
});
//functions

function goSearch(){
   var que = $('que').value;
   _gaq.push(['_trackEvent', 'tassonomia', 'ricerca', que, 27]);
   histRec(que);
   $('queryTree').update('Searching for classification...<br/>searching for similar names...<br/><img src="supp/loading.gif" alt="loading..." />');
   if($('op2')) $('op2').parentNode.removeChild($('op2'));
   $('myHead').insert(new Element('script', {id:'op2', 'src': url2 + que, 'type':'text/javascript'}));
   if($('op1')) $('op1').parentNode.removeChild($('op1'));
   $('myHead').insert(new Element('script', {id:'op1', 'src': url1 + que, 'type':'text/javascript'}));
}

function buildSimilar(ar1){
   if($('selectSimilar')) $('topTs').removeChild($('selectSimilar'))
   var a = document.createElement('select');
   a.id = 'selectSimilar'
   //$('selectSimilar').add(b)
   for(var x=0;x<ar1['Resultset']['totalResultsReturned'];x++){
       var b=new Option(ar1['Resultset']['Result'][x]['scientificName']);
       try{a.add(b,null)}
       catch(ex){a.add(b)}
   }
   $('topTs').appendChild(a)
   $('selectSimilar').observe('change',function(){es($('selectSimilar').value)})
}


function getMap(x){
   _gaq.push(['_trackEvent', 'tassonomia', 'mappa', 'test']);
   if($('op')) $('op').parentNode.removeChild($('op'));
   $('myHead').insert(new Element('script', {id:'op', 'src': url + x, 'type':'text/javascript'}));
}


function jsonFlickrApi(payload){
	ih = '';
	photoload=payload.photos.photo
	if(photoload.length==0) ih = 'non trovo immagini con questo nome su flickr....';
	else{
	for (var x=0; x<photoload.length; x++){
		var base='http://farm'
		var farm= photoload[x]['farm']
		var id = photoload[x]['id']
		var base2 = '.static.flickr.com/'
		var server = photoload[x]['server']
		var owner = photoload[x]['owner']
		var secret = photoload[x]['secret']
		var t_url = base + farm + base2+server+'/'+id+'_'+secret+'_s.jpg'
		var url = 'http://www.flickr.com/photos/'+owner+'/'+id
		var ind = ($('nphoto').selectedIndex)
		var limit = ($('nphoto').value)	
		if(x<limit) ih+= '<a href="'+url+'"><img title="'+ photoload[x]['title'] +' by '+ photoload[x]['ownername'] +'" src="'+t_url+'" /></a>';
	}
	}//else
	$('details').update(ih);
	histRec()
}


function getPhoto(cn){
	_gaq.push(['_trackEvent', 'tassonomia', 'flickr', cn, 1]);
	ih='cerco su Flickr..<br><img src="supp/loading.gif" style="border:none"/>';
	$('details').innerHTML=ih;
	url3c=url3+cn
	//elimino lo script se già esiste
	if($('of0'))document.getElementsByTagName('head')[0].removeChild($('of0'))
	var scriptElement = document.createElement('script');
			scriptElement.id='of0';
		scriptElement.src = url3c;
		document.getElementsByTagName('head')[0].appendChild(scriptElement);
	}
/*
function getPhoto(cn){
   	pageTracker._trackEvent('tassonomia', 'flickr', cn);
	if($('of0')) $('of0').parentNode.removeChild($('of0'));
        $('myHead').insert(new Element('script', {id:'of0', 'src':url3+cn, 'type':'text/javascript'}));
	$('details').update('searching on Flickr..<br><img src="supp/loading.gif" style="border:none"/>');
}
*/

function myPlant(ar){
$('details').innerHTML=(ar['Resultset']['Result'][0]['mapHTML'])

	histRec()
//$('results').innerHTML+=ar['Resultset']['Result'][0]['mapHTML']
}

function drill(cn){
	$('que').value=cn
	goSearch()
}

function classify(ar2){
	maps=new Array()
	ih='<div id="classify">'
	sp=0
	classl=(ar2['classificationSearch']['classification'].length)
	for (var x=0;x<classl;x++){
		var rk=ar2['classificationSearch']['classification'][x]['rank']
		cn=ar2['classificationSearch']['classification'][x]['scientificName']
		if(rk!=rkm) sp+=5
		id=ar2['classificationSearch']['classification'][x]['id']
		//ih+='<p id="'+id+'" style="width:'+parseInt(300-sp)+'px;padding-left:'+sp+'px;background-color:#aaff' + dec2hex(3*sp)+'" class="rank '+ rk+'">'
		ih+='<p id="'+id+'" style="padding-left:'+sp+'px;background-color:#aaff' + dec2hex(3*sp)+'" class="rank '+ rk+'">'
		ih+='<span class="getMap"><a href="javascript:void(0);" onclick="getMap(\''+cn+'\')">mappa</a></span>'
		if ((rk=='species')||(rk=='genus')||(rk=='family')||(rk=='order')) {
	   	    ih+='<span class="photo"><a title="'+cn+'" class="flk" href="javascript:void(0);" onclick="getPhoto(\''+ cn +'\')">foto</a></span>'
		}
		 if (rk=='species')ih+='<span class="addPlant"><a href="javascript:void(0);" id="'+cn+'" onclick="setAddText(this)">aggiungi</a></span> ';
		ih+=translate(rk)
		
		ih+=': <a href="javascript:void(0)" onclick="drill(\''+cn+'\')"><span class="scientificName">'+cn+'</a></span>'
		ih+='</p>';
		var rkm=rk;
	}
	ih+='\n</div>'
	//ih+='<br><br/><br/><br/><a href="'+urlc+'">'+urlc+'</a><br>'
	//ih+='<a href="'+url2c+'">'+url2c+'</a>'
	if (classl==0) ih='no data.... <br/><br/>:-('
	$('queryTree').innerHTML=ih
searchSymbol('')
}

function setAddText(cc){
   var family = $$('p.rank.family span.scientificName')[0] ? $$('p.rank.family span.scientificName')[0].innerHTML : $$('p.rank.genus span.scientificName')[0].innerHTML; 
   if($$('div.loginHomeLogged')[0]) $('details').update(
      '<hr>sezione in fase di sviluppo<hr>'+
      '<p>indica il nome comune della pianta da inserire:'+
      '<form method="post" onsubmit="return checkInput(this);">'+
      '<input type="hidden" name="ns" value="'+ cc.id +'"/>'+
      '<input type="hidden" name="fm" value="'+ family +'"/>'+
      '<input type="text" name="nc" /> '+
      '<input type="submit" value="inserisci la pianta nel database" />'+
      '</form>'+
      '</p>'
   );
   else alert('Effettua l\'accesso o iscriviti per inserire una nuova pianta.');
}
function checkInput(f){
   try {
      var el = $(f).elements;
      if(!el['nc'].value){
	 alert('Indicare un nome per la pianta da inserire');
         return false;
      }
      else return confirm('vuoi inserire '+ el['nc'].value +' ('+ el['ns'].value +') nel database delle piante?');
   }
   catch(er) {alert(er); return false;}
}

function translate(s){
	if($('lan').value=='italiano'){	
if (s=='kingdom') s='regno'
if (s=='class') s='classe'
if (s=='order') s='ordine'
if (s=='family') s='famiglia'
if (s=='subfamily') s='sottofamiglia'
if (s=='genus') s='genere'
if (s=='tribe') s='tribu'
if (s=='subtribe') s='sottotribu'
if (s=='subgenus') s='sottogenere'
if (s=='species') s='specie'
if (s=='subspecies') s='sottospecie'
if (s=='variety') s='varietà'
if (s=='section') s='sezione'
if (s=='subsection') s='sottosezione'
if (s=='series') s='serie'
if (s=='form') s='forma'
}
return(s)
}

function searchSymbol(x){
	if (x!='') {flashBox(1);query=x}
	else {flashBox(0);}

}

function flashBox(y){
}
function dec2hex(n){
    n = parseInt(n); var c = 'ABCDEF';
    var b = n / 16; var r = n % 16; b = b-(r/16); 
    b = ((b>=0) && (b<=9)) ? b : c.charAt(b-10);    
    return ((r>=0) && (r<=9)) ? b+''+r : b+''+c.charAt(r-10);
}


function es(what){
	$('que').value=what
	goSearch()
}
function histRec(what){
	if($('hist')) $('details').removeChild($('hist'))
	var ih='<div id="hist">'
	if(what) hist.push(what)
	for (var x=0; x<hist.length;x++){
		ih+='<p><a href="javascript:void(0);" onclick="es(\''+hist[x]+'\')" >'+hist[x]+'</a></p>';
	}
	ih+='<div id="credits"><p>data by <a href="http://www.gbif.org">Global Biodiversity Facility Index (www.gbif.org)</a>, <a href="http://www.flickr.com">flickr</a></p></div>'
	ih+='</div>'
$('details').innerHTML+=ih

}

