/*From the yahoo design patterns*/


function getElementByID(id){
 if (document.getElementById)
    {
        // this is the way the standards work
        var obj = document.getElementById(id);
    }
    else if (document.all)
    {
        // this is the way old msie versions work
        var obj = document.all[id];
    }
    else if (document.layers)
    {
        // this is the way nn4 works
        var obj = document.layers[id];
    }
    return obj
}


//CREATE COOKIE - SET UP INITIAL COOKIE MAPPINGS
var dacookie = new yg_cookie();
var expirestime = new Date()
expirestime.setTime(expirestime.getTime() + 60*60*24*365*10000);
var temptabcookie = 'u=0';

var initeuropeRESULT1 = dacookie.get("europeRESULT1"); 
var initeuropeRESULTSRC = dacookie.get("europeRESULTSRC");
var assarr = new Array(); //CREATES DIRECT PATH TO COOKIE VALUE OF CATEGORY UNIQUE ID
var mysrcarr = new Array(); //CREATES DIRECT PATH TO COOKIE VALUE OF MYSRC UNIQUE ID
if(initeuropeRESULT1){	
	//SPLIT COOKIE INTO SUBCOOKIE THEN AGAIN INTO INDIVIDUAL CATEGORY NAME/VALUE ARRAY
	var split1 = initeuropeRESULT1.split('&'); //splits into subcookies "u=0&catid=nodekey&catid=nodekey" etc
	for(var subcookiekey in split1){
		var tempsplit = split1[subcookiekey].split('='); //split subcookie -> name values			
		for(var namekey in tempsplit){
			if(namekey == 0){//LOOPS 2x PER NAME/VALUE PAIR 0 & 1, only need once	
				var tempkey = String(tempsplit[0]);
				assarr[tempkey] = tempsplit[1];//ie assarr[716] = 5 (assarr[catid] = openTabKey)
			}	}	}	}
if(initeuropeRESULTSRC){	
	//SPLIT COOKIE INTO SUBCOOKIE THEN AGAIN INTO INDIVIDUAL NAME/VALUE ARRAY
	var split1 = initeuropeRESULTSRC.split(','); //SPLITS VALUE OF COOKIE INDICATING OPEN MY SRC UNITS ONLY
	for(var c in split1){
		mysrcarr[split1[c]] = 1;//PUTS COOKIE ID INTO ARRAY, CHECK TRUE FALSE TO SEE IF IT SHOULD BE OPEN				
	}
}else{//SET BLANK VAR TO BEGIN INITIAL COOKIE
	var mysrcNewCookie = new Array;
	var countsrc = 0;
	var mysrcString = "";
}
//END COOKIE STUFF


function yg_cookie(){
	var dc=document,a=[],c=[];
	if(dc.cookie.length>0){
		a=dc.cookie.split("; "),cl=a.length,ca=[];
		for(var i=cl-1;i>=0;i--){ca=a[i].split("=");c[ca[0]]=ca[1]}
	}
	this.getAll=function(){return a}
	this.get=function(n){return(c[n])?unescape(c[n]):0}
	this.set=function(n,v,e,p,d,s){
		v=escape(v);var today=new Date(),nv=n+"="+v;
		var str=nv+((e)?"; expires="+e:"")+((p)?"; path="+p:"")+((d)?"; domain="+d:"")+((s)?"; secure":"");
		if((n.length>0&&v.length>0)&&(((e)&&(e>today))||(!e))&&(nv.length<4000)){dc.cookie=str;a[a.length]=nv;c[n]=v;return 1}else return 0;
	}
	this.remove=function(n,p,d){
		if(c[n]){
			dc.cookie=n+"="+((p)?"; path="+p:"")+((d)?"; domain="+d:"")+"; expires=Thu, 01-Jan-1970 00:00:01 GMT";
			for(var i=a.length-1;i>=0;i--){if(a[i].indexOf(n)!=-1)a.splice(i,1)}c[n]=null;return 1;
		}else return 0;
	}
}

function ieIsWeak(anid){//IE CANT DO document.getElementById if id is a numeric value WTf?
	if(anid.indexOf("my") > -1){		return anid.substr(2,anid.length);	}
	else{		return anid.substr(1,anid.length);	}
}

function linkthesetabs(catid){
	var wrapper = getElementByID(catid);
	var child1 = wrapper.firstChild;
	
	while(child1){
		if(child1.className == 'newscat'){
			var child2 = child1.firstChild; 
			while(child2){
				//FIX TOGGLES - DEACTIVATE HREFs - ADD JS FUNCTIONALITY
				if(child2.className == 'toggle'){							
					var liar = child2.getElementsByTagName('LI'); 							
					var liarlen = liar.length;
					var mysrcnode = liarlen - 1; 
					for(var nodekey = 0; nodekey < liarlen; nodekey++){							
						//<A> IS FIRSTCHILD OF LI, ADD ONCLICK CALL FUNCTION WITH JS, ADD PARAMETERS VIA OBJECT PROPERTIES TO SET COOKIES					 
						liar[nodekey].firstChild.onclick = opensaysme; //assign for toggle function 
						liar[nodekey].firstChild.catid = catid; //pass parent container id
						liar[nodekey].firstChild.nodekey = nodekey;	//position in tab set(and array)
						liar[nodekey].firstChild.mysrcnode = mysrcnode; //position of mysrc set(also array list array length)									
					}
					//SET INITIAL TAB STATE WHEN PAGE LOADS
					//REMOVE "c" prefix, cause IE cant read an id that is numeric.
					var onkey = (assarr[ieIsWeak(catid)]) ? assarr[ieIsWeak(catid)] : 0; //check cookie for value to set initial tab position
					if(onkey != 0) liar[0].className = '';//default loads 0 position tab as "on" - if cookie says otherwise turn off	
					var prevkey = onkey - 1; 
					liar[onkey].className = 'on';
					if(prevkey > -1) liar[prevkey].className = 'last'; //"last" is neccesary to hide css border
					if(onkey != mysrcnode) liar[mysrcnode].className = 'last';							
				}				
				//SET DISPLAY PROPERTIES OF HEADLINE PANELS ACCORDING TO TAB STATE
				if(child2.className == 'headlines'){
					var headlinear = child2.getElementsByTagName('DIV'); 	
					//ARRAY POSITION WILL MATCH BECAUSE OF LOAD ORDER - SET ONKEY PANEL TO DISPLAY					
					if(onkey > 0){
                        // loop through all results and set class to moreheadlines
                            var skipmysrc = headlinear.length - 1;
                            for(var m=0; m<skipmysrc; m++){
                                if (m == onkey){
                                    headlinear[m].className = 'showheadlines';
                                } else {
                                    headlinear[m].className = 'moreheadlines';
                                }  }	}	}				
				//more PRoviders panel only applys to Top Stories - open unless mysrc tab open
				if(child2.className == 'moreproviders'){					child2.style.display  = (onkey == mysrcnode) ? 'none' : 'block'; 				}
				child2 = child2.nextSibling;
			}		}
		child1 = child1.nextSibling;
	}
	if (!dacookie.get("europeRESULT1")){
		temptabcookie+= '&' + ieIsWeak(catid) +'=' + 0;  
	}
}
// JavaScript Document

function updateTable(nb, catId,meta){
this.catid = catId ;
var catidcopy = catId;
this.onnodekey = nb;
if (meta == 1){
   listouille=metaList;
}
else if (meta == 2){
	listouille=peopleList;
}
else if (meta ==0){
   listouille=liste; 
}
else if(meta==3){
   listouille=networkList; 
}
else if(meta==4){
	listouille=collectionList; 
}
else if(meta==5){
	listouille=institutionList; 
}

this.mysrcnode = listouille.length -1;

var tempor = getElementByID(catid);
    
	//GET COOKIE PUT IN ARRAY, RESET ARRAY WITH NEW VALUE, EVERYTIME - GAWWD!
	var n = 'europeRESULT1'; //cookie name
	var v = 'u=0'; //dummy var just to start things off
	var e = expirestime; //expirestime.toGMTString(); //expiration DATE OBJECT
	var p = ''; //path
	var d = ''; //'news.yahoo.com'; 
	var s = ''; //secure or not 
		
	var europeRESULT1 = dacookie.get("europeRESULT1");
	if(europeRESULT1){
		var split1 = europeRESULT1.split('&'); //splits into subcookies
		for(var subcookiekey in split1){
			var tempsplit = split1[subcookiekey].split('='); //split subcookie name = values
			for(var namekey in tempsplit){
				//START REBUILDING COOKIE BUT REPLACE VALUE OF THIS CATEGORY WITH CURRENT ON TAB NODEKEY
				if(namekey == 0){					
					if(tempsplit[0] != 'u'){
						if(tempsplit[0] == ieIsWeak(catid)){
							v+= '&' + tempsplit[0] + '=' + onnodekey;
						}else{
							v+= '&' + tempsplit[0] + '=' + tempsplit[1];
						}	}	}	}	}	}
	dacookie.remove('europeRESULT1');//NEED TO REMOVE BEFORE RESET
	dacookie.set(n,v,e,p,d,s);//SET NEW COOKIE
	//END COOKIE
	
	var wrapper = getElementByID(catid);
    var child1 = wrapper.firstChild;
	while(child1){				
		if(child1.className == 'newscat'){
			var child2 = child1.firstChild; 
			while(child2){
				if(child2.className == 'toggle'){						
					var liar = child2.getElementsByTagName('LI'); 							
					var liarlen = liar.length;
					for(var nodekey = 0; nodekey < liarlen; nodekey++){							
						liar[nodekey].className = '';		
					}					
					//MAKE SURE LAST TAB ALWAYS HAS CLASS LAST UNLESS IT IS ON
					var prevkey = onnodekey - 1; 
					liar[onnodekey].className = 'on';
					if(prevkey > -1) liar[prevkey].className = 'last'; 
					if(onnodekey != mysrcnode) liar[mysrcnode].className = 'last';		
				}				
				if(child2.className == 'headlines'){
				/*****************ENCAPSULATE THIS INTO ANOTHER FUNCTION FOR AJAX LATER ON***************/
					var headlinear = child2.getElementsByTagName('DIV'); 							
					for(z = 0; z < headlinear.length; z++){
						if(headlinear[z].className == 'showheadlines'){
							headlinear[z].className = 'moreheadlines';
						}
					}								
					headlinear[onnodekey].className = 'showheadlines';
				/*****************ENCAPSULATE THIS INTO ANOTHER FUNCTION FOR AJAX LATER ON***************/
				}				
				if(child2.className == 'moreproviders'){
					child2.style.display = (onnodekey == mysrcnode) ? 'none' : 'block'; 
				}
				child2 = child2.nextSibling;			}		}
		child1 = child1.nextSibling;
	}	
	updateName(catidcopy);
	return false; 
}

function opensaysme(){	
	//THIS FUNCTION IS WHAT IS ATTACHED TO TOGGLE LINKS TO ACTIVATE STATE CHANGING AND CONTENT SWAPPING
	var thiscookieID = this.catid;//container unique
	var onnodekey = this.nodekey;//on tab array position
	var mysrcnode = this.mysrcnode;//tab array length (last position)
	var catidcopy = thiscookieID;	
    var tempor = getElementByID(thiscookieID);
    
	//GET COOKIE PUT IN ARRAY, RESET ARRAY WITH NEW VALUE, EVERYTIME - GAWWD!
	var n = 'europeRESULT1'; //cookie name
	var v = 'u=0'; //dummy var just to start things off
	var e = expirestime; //expirestime.toGMTString(); //expiration DATE OBJECT
	var p = ''; //path
	var d = ''; //'news.yahoo.com'; 
	var s = ''; //secure or not 
		
	var europeRESULT1 = dacookie.get("europeRESULT1");
	if(europeRESULT1){
		var split1 = europeRESULT1.split('&'); //splits into subcookies
		for(var subcookiekey in split1){
			var tempsplit = split1[subcookiekey].split('='); //split subcookie name = values
			for(var namekey in tempsplit){
				//START REBUILDING COOKIE BUT REPLACE VALUE OF THIS CATEGORY WITH CURRENT ON TAB NODEKEY
				if(namekey == 0){					
					if(tempsplit[0] != 'u'){
						if(tempsplit[0] == ieIsWeak(thiscookieID)){
							v+= '&' + tempsplit[0] + '=' + onnodekey;
						}else{
							v+= '&' + tempsplit[0] + '=' + tempsplit[1];
						}	}	}	}	}	}
	dacookie.remove('europeRESULT1');//NEED TO REMOVE BEFORE RESET
	dacookie.set(n,v,e,p,d,s);//SET NEW COOKIE
	//END COOKIE	
	var wrapper = getElementByID(thiscookieID);  
    var child1 = wrapper.firstChild;
	while(child1){				
		if(child1.className == 'newscat'){
			var child2 = child1.firstChild; 
			while(child2){
				if(child2.className == 'toggle'){						
					var liar = child2.getElementsByTagName('LI'); 							
					var liarlen = liar.length;
					for(var nodekey = 0; nodekey < liarlen; nodekey++){							
						liar[nodekey].className = '';		
					}					
					//MAKE SURE LAST TAB ALWAYS HAS CLASS LAST UNLESS IT IS ON
					var prevkey = onnodekey - 1; 					
					liar[onnodekey].className = 'on';				
					if(prevkey > -1)
						liar[prevkey].className = 'last';
					if(onnodekey != mysrcnode) 
						liar[mysrcnode].className = 'last';
				}
				if(child2.className == 'headlines'){
				/*****************ENCAPSULATE THIS INTO ANOTHER FUNCTION FOR AJAX LATER ON***************/
					var headlinear = child2.getElementsByTagName('DIV'); 							
					for(z = 0; z < headlinear.length; z++){
						if(headlinear[z].className == 'showheadlines'){
							headlinear[z].className = 'moreheadlines';
						}
					}								
					headlinear[onnodekey].className = 'showheadlines';
				/*****************ENCAPSULATE THIS INTO ANOTHER FUNCTION FOR AJAX LATER ON***************/
				}				
				if(child2.className == 'moreproviders'){
					child2.style.display = (onnodekey == mysrcnode) ? 'none' : 'block'; 
				}
				child2 = child2.nextSibling;
			}		}
		child1 = child1.nextSibling;
	}
	updateName(catidcopy);	
	return false; 	
}

function updateName(catid){;
	var wrapper = getElementByID(catid);
	var child1 = wrapper.firstChild;
	var memoire = "";
	while(child1){				
		if(child1.className == 'newscat'){
			var child2 = child1.firstChild; 
			while(child2){
				if(child2.className == 'toggle'){						
					var liar = child2.getElementsByTagName('LI'); 							
					var liarlen = liar.length;
					for(var nodekey = 0; nodekey < liarlen; nodekey++){
					//var emTag = liar[nodekey].getElementsByTagName('EM')[0];	
					var emTag = liar[nodekey];						
						if (liar[nodekey].className == "on"){							
							emTag.innerHTML = listouille[nodekey];	
							memoire = listouille[nodekey]
							}							
						else
							emTag.innerHTML = listouille[nodekey];								
					}	}				
				child2 = child2.nextSibling;
			}	}
		child1 = child1.nextSibling;
	}
}	


var liste = ["Sc.Names", "HigherTaxa", "Genus", "Family","Common"," Country", "Collector" ," Institution", "Collection", "Basis"];

var metaList=["Country","Region","Town","Metadata"];

var peopleList=["People","Role","Country","Metadata"];

var networkList=["Network","Town","Region","Country"];

var collectionList=["Collection","Category","Object","Town","Region","Country"];

var institutionList=["Institution","Category","Town","Region","Country"];

