/**
* this script will grab the meta keyword contents of the current page
* and search through a data structure for each of the keywords to find
* relevant pages
*
* Warning:  Just testing out ideas, not terribly clean and tidy
*/


function addRelevantPagesToNavigation(){
	if(!document.getElementsByTagName || !document.createTextNode || typeof pages =='undefined') return;
	var relevantPages=getRelevantPages();
	var parentEl=document.getElementById('relevantPagesDiv');
	if(! parentEl) return;
	if(relevantPages.length==0){ 
		while(parentEl.childNodes[0])parentEl.removeChild(parentEl.childNodes[0]);
		//parentEl.parentNode.removeChild(parentEl);
	}else{
		parentEl.removeChild(parentEl.firstChild.nextSibling);
		parentEl=parentEl.appendChild(document.createElement('ul'));
		for( var i=0;i<10;i++ ){
			if(typeof relevantPages[i]!='undefined'){
				createAndAppendA(parentEl, relevantPages[i].url, relevantPages[i].title, relevantPages[i].language );// + '('+relevantPages[i].relevancyScore+')');
			}else{
				continue;
			}
		}
	}
	// timestamp 
	var date = getMetaInformation('date');
	if(date){
		parentEl.appendChild(document.createElement('p')).appendChild(document.createTextNode(date)).parentNode.className='date';
	}
}


function getRelevantPages(){
	var relevantPages=new Array();
	var keywords = getMetaInformation('keywords', true);
	if( ! keywords ) return [];
	for(j=0;j<pages.length;j++){
		for(i=0;i<keywords.length;i++){
			keywords[i]=keywords[i].replace(/^\s|\s$/, '');
			var relevancyScore=(typeof pages[j].relevancyScore!='undefined') ? parseInt(pages[j].relevancyScore): 0;
			relevancyScore+=(pages[j].title.indexOf(keywords[i]) > -1) ? .5: 0;
			relevancyScore+=(pages[j].url.indexOf(keywords[i]) > -1) ? .5: 0;
			relevancyScore+=(pages[j].keywords.indexOf(keywords[i]) > -1) ? 1.5: 0;
			relevancyScore+=(pages[j].description.indexOf(keywords[i]) > -1) ? 2: 0;
			pages[j].relevancyScore=relevancyScore;
			//opera.postError(keywords[i] +' '+pages[j].keywords +': '+pages[j].relevancyScore );
		}
		if(pages[j].relevancyScore>2 && pages[j].url!=location.pathname) relevantPages[relevantPages.length]=pages[j];
	}
	
	return relevantPages.sort(arrayRelevancySort);

}

function getMetaInformation( name, dosplit ){
	var meta=document.getElementsByTagName('meta');
	for(  var i=0,el; el=meta[ i ]; i++ ){
		if(  el.name.toLowerCase()==name && meta[i].content ){
			return (dosplit) ? el.content.split(',') : el.content;
		}
	}

	
}

function createAndAppendA(parentEl, url, title, language ){
	a=document.createElement('a');
	a.href=url;
	a.appendChild(document.createTextNode(title));
	parentEl=parentEl.appendChild(document.createElement('li'));
	parentEl.appendChild(a);
	if(language){
		var img=parentEl.appendChild(document.createElement('img'));
		img.src='/img/lflagg_'+language;
		img.style.verticalAlign='middle';
		img.alt=img.title=language;
	}
}

function arrayRelevancySort(a, b){ 
	return parseInt(b.relevancyScore) - parseInt(a.relevancyScore) ;
}

window.onload=addRelevantPagesToNavigation;

