//CREATE COOKIE - SET UP INITIAL COOKIE MAPPINGS
var dacookie = new yg_cookie();
var expirestime = new Date()
expirestime.setTime(expirestime.getTime() + 4000);
var temptabcookie = 'u=0';

var initYNEWSFRONT = dacookie.get("YNEWSFRONT"); 
var initYNEWSMYSRC = dacookie.get("YNEWSMYSRC");
var assarr = new Array(); //CREATES DIRECT PATH TO COOKIE VALUE OF boxEGORY UNIQUE ID
var mysrcarr = new Array(); //CREATES DIRECT PATH TO COOKIE VALUE OF MYSRC UNIQUE ID
if(initYNEWSFRONT){	
	//SPLIT COOKIE INTO SUBCOOKIE THEN AGAIN INTO INdivIDUAL boxEGORY NAME/VALUE ARRAY
	var split1 = initYNEWSFRONT.split('&'); //splits into subcookies "u=0&boxid=nodekey&boxid=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[boxid] = openTabKey)
			}
		}			
	}
}
if(initYNEWSMYSRC){	
	//SPLIT COOKIE INTO SUBCOOKIE THEN AGAIN INTO INdivIDUAL NAME/VALUE ARRAY
	var split1 = initYNEWSMYSRC.split(','); //SPLITS VALUE OF COOKIE INDIboxING 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 toggleinit(){
	if(!dacookie.get("YNEWSFRONT")) {
		//SET DEFAULT BLANK COOKIE
		dacookie.set("YNEWSFRONT",temptabcookie,expirestime);			
		//alert(temptabcookie);
	}
	if(!dacookie.get("YNEWSMYSRC")){
		mysrcString = mysrcNewCookie.join(",");
		//SET OPENED MYSRC COOKIE
		dacookie.set("YNEWSMYSRC",mysrcString,expirestime);
	}
}

function linkthesetabs(boxid){
    
	var wrapper = document.getElementById(boxid);
	var child1 = wrapper.firstChild;
	
	while(child1){
		if(child1.className == 'newsbox'){
			var child2 = child1.firstChild; 
			while(child2){
				//FIX TOGGLES - DEACTIVATE HREFs - ADD JS FUNCTIONALITY
				if(child2.className == 'tabbtns'){							
					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.onmouseover = opensaysme; //assign for toggle function 
						liar[nodekey].firstChild.boxid = boxid; //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)
						
						//liar[nodekey].firstChild.onmouseover = tt_go; //assign for tooltip function	
						//liar[nodekey].firstChild.onmouseout = tt_Hide; 	
						//liar[nodekey].firstChild.tooltipurl = ; //get HREF split at ; and use first part							
						//liar[nodekey].firstChild.event = ; //this might be hard, mouseevent. might not need it if i just get link X Y with yga DOM script			
					}
					//SET INITIAL TAB STATE WHEN PAGE LOADS
					//REMOVE "c" prefix, cause IE cant read an id that is numeric.
					var onkey = (assarr[ieIsWeak(boxid)]) ? assarr[ieIsWeak(boxid)] : 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';
                                }
                            }
					}
					
					//SET UP THE MYSRC ONCLICKs
					var mysrcobj = headlinear[mysrcnode]; 
					var mysrcheaders = mysrcobj.getElementsByTagName('h4');
					for(var i=0; i<mysrcheaders.length; i++){
						var mysrcparent = mysrcheaders[i].parentNode;
						var mysrckey = mysrcparent.id;
						mysrcheaders[i].onmouseover = openmysrc;//attach open/close function
						mysrcheaders[i].mysrckey = mysrckey;//unique key for mysrc module - on parent div id - can use this to call it later
						
						//CHECK TO SEE IF MYSRC UNIQUE ID IS A KEY IN THE OPEN SRC MOD ARRAY - open if yes
						if(!dacookie.get("YNEWSMYSRC")){
							if(mysrcparent.className == "ynmysrcunit open"){//IF OPEN AND NO COOKIE: ADD VALUE TO COOKIE STRING
								mysrcNewCookie[countsrc++] = ieIsWeak(mysrckey);														
							}
						}else{//IF COOKIE CHECK IF CURRENT ID IS IN THE COOKIE: OPEN
							if(mysrcarr[ieIsWeak(mysrckey)]){
								mysrcparent.className = "ynmysrcunit open";
							}else{
								mysrcparent.className = "ynmysrcunit";
							}
						}				
					}
				}
				
				//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("YNEWSFRONT")){
		temptabcookie+= '&' + ieIsWeak(boxid) +'=' + 0;  
	}
}

function opensaysme(){	 
	//THIS FUNCTION IS WHAT IS ATTACHED TO TOGGLE LINKS TO ACTIVATE STATE CHANGING AND CONTENT SWAPPING
	var thiscookieID = this.boxid;//container unique
	var onnodekey = this.nodekey;//on tab array position
	var mysrcnode = this.mysrcnode;//tab array length (last position)
	
    var tempor = document.getElementById(thiscookieID);

    
	//GET COOKIE PUT IN ARRAY, RESET ARRAY WITH NEW VALUE, EVERYTIME - GAWWD!
	var n = 'YNEWSFRONT'; //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 YNEWSFRONT = dacookie.get("YNEWSFRONT");
	if(YNEWSFRONT){
		var split1 = YNEWSFRONT.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 boxEGORY 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('YNEWSFRONT');//NEED TO REMOVE BEFORE RESET
	dacookie.set(n,v,e,p,d,s);//SET NEW COOKIE
	//END COOKIE
	
	var wrapper = document.getElementById(thiscookieID);
  
    var child1 = wrapper.firstChild;
	while(child1){				
		if(child1.className == 'newsbox'){
			var child2 = child1.firstChild; 
			while(child2){
				if(child2.className == 'tabbtns'){						
					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;
	}	
	return false; 	
}

function openmysrc(){
	var mysrckey = this.mysrckey;	
	
	//GET COOKIE PUT IN ARRAY, RESET ARRAY WITH NEW VALUE, EVERYTIME - GAWWD!
	var n = 'YNEWSMYSRC'; //cookie name
	var v = ''; //
	var e = expirestime; //expirestime.toGMTString(); //expiration DATE OBJECT
	var p = ''; //path
	var d = ''; //'news.yahoo.com'; //domain
	var s = ''; //secure or not 
		
	var YNEWSMYSRC = dacookie.get("YNEWSMYSRC");
	var mysrcNewCookie = new Array;
	var mysrcOpen = new Array;
	if(YNEWSMYSRC){
		var valarr = YNEWSMYSRC.split(','); //splits values
		for(var themysrckey in valarr){
			if(valarr[themysrckey] != ""){
				//THIS ONE IS SO I CAN USE array.splice ON STRING
				mysrcNewCookie[themysrckey] = valarr[themysrckey];
				//THIS IS SO I CAN DO A ONE STOP LOOKUP FOR EXISTING VALUES
				mysrcOpen[valarr[themysrckey]] = themysrckey;
			}
			
		}

	}
	//END COOKIE FOR NOW SEE BELOW FOR MORE 
	
	var dasrc = document.getElementById(mysrckey);
	
	//THIS IS FOR DOING THE COOKIE
	if(mysrcOpen[ieIsWeak(mysrckey)]){//IF CURRENT ID IS IN COOKIE: REMOVE
		var removekey = mysrcOpen[ieIsWeak(mysrckey)];
		var dumpfromarray = mysrcNewCookie.splice(removekey,1);//(startindex, howmany to remove after startindex)	
	}else{//ADD
		mysrcNewCookie.push(ieIsWeak(mysrckey));
	}
	//IMPLODE NEW OPEN MYSRC COOKIE STRING -/+ CLICKED ON ID
	v = mysrcNewCookie.join(",");
	dacookie.remove('YNEWSMYSRC');//NEED TO REMOVE BEFORE RESET
	dacookie.set(n,v,e,p,d,s);	
	//EVERY CLICK OF THE MYSRC TAB WILL RESAVE COOKIE									
		
	if(dasrc.className == 'ynmysrcunit') dasrc.className = 'ynmysrcunit open';
	else dasrc.className = 'ynmysrcunit';							
	
	return false; 
}

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 loadingmsg(){

	var thiscookieID = this.boxid;//container unique
    var block = thiscookieID.substring(1);

    var headlinekey = "h" + block;
    var headlinecont = document.getElementById(headlinekey);
    var headarr = headlinecont.childNodes;
    
   
    for(var j=0; j<headarr.length; j++){
        if (headarr[j].className == 'showheadlines') {
            var msg = "Content loading..."
            headarr[j].innerHTML = msg;
        }
    }
    	return false; 
}


function linktabstemp(boxid){
    
	var wrapper = document.getElementById(boxid);
	var child1 = wrapper.firstChild;
	
	while(child1){
		if(child1.className == 'newsbox'){
			var child2 = child1.firstChild; 
			while(child2){
				//FIX TOGGLES - DEACTIVATE HREFs - ADD JS FUNCTIONALITY
				if(child2.className == 'tabbtns'){							
					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 = loadingmsg; //assign for toggle function 
						liar[nodekey].firstChild.boxid = boxid; //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)
						
						//liar[nodekey].firstChild.onmouseover = tt_go; //assign for tooltip function	
						//liar[nodekey].firstChild.onmouseout = tt_Hide; 	
						//liar[nodekey].firstChild.tooltipurl = ; //get HREF split at ; and use first part							
						//liar[nodekey].firstChild.event = ; //this might be hard, mouseevent. might not need it if i just get link X Y with yga DOM script			
					}
				}
				
				child2 = child2.nextSibling;
			}
		}
		child1 = child1.nextSibling;
	}
}