var $D = YAHOO.util.Dom;
var $E = YAHOO.util.Event;
var $A = YAHOO.util.Easing;
var $ = $D.get;

var tabbing = (function() {
	function toggle(ev) {
		//alert(this.id);
		var tabzone=this.id.substring(0,3);
		var tab=this.id.substring(0,(this.id.indexOf('tab'))+4);
		var alltabcontents=$D.getElementsByClassName('tabcontent','div',$(tabzone));
		var alltabs=$D.getElementsByClassName('tabbutton','li',$(tabzone));

		//hide all but the current tabcontent
		for(var i=0;i<alltabcontents.length;i++){
			alltabcontents[i].style.display=(alltabcontents[i].id==tab) ? 'block' : 'none';
		}
		
		//unset all tab button from being active
		for(var j=0;j<alltabs.length;j++){
			$D.removeClass(alltabs[j], 'active');
		}
		
		$D.addClass(this.parentNode, 'active');
		
	}

	function init() {
		var tabzones = $D.getElementsByClassName('tabbed','div');
		
		for(var i=0;i<tabzones.length;i++){
			var tabblist = $D.getElementsByClassName('tabs','ul',tabzones[i]);
			//give it an identifier
			tabzones[i].id="tz" + i;
			
			//identify each tab within this group of tabs
			var tabcontainers = $D.getElementsByClassName('tabcontent','div',tabzones[i]);
			for(var k=0;k<tabcontainers.length;k++){
				
				tabcontainers[k].id="tz" + i + "tab" + k
				if(k){
					tabcontainers[k].style.display='none';
				}		
				//identify headings
				var headings=tabcontainers[k].getElementsByTagName('h3');
				if(!headings.length){
					var headings=tabcontainers[k].getElementsByTagName('h2');
				}
				//generate tab
				var tabitem = document.createElement("li");
				tabitem.className="tabbutton";
				tabitem.id="tz" + i + "tab" + k + "item" + k;
			
				var tablink = document.createElement("a");
				tablink.id="tz" + i + "tab" + k + "item" + k + "toggle";//tabitem.id=
				tablink.appendChild(document.createTextNode(headings[0].innerHTML)); 
			
				$E.on(tablink,'click',toggle);
				tabitem.appendChild(tablink);
				tabblist[0].appendChild(tabitem);
			
				//headings can now be hidden
				$D.setStyle(headings, 'display','none');
				$D.setStyle(headings, 'border', 'none'); //seems to be necessary for ie7
			
				//activate first tab
				if(k==0){
					$D.addClass(tabitem, 'active');
				}
				
				
			}
		}
	}
/*val additionnal code: opening the page on one specific thumbnails*/
	function mediaThumbnail(){
		var elt = document.getElementById('tz0tab2item2toggle');
		var browser=navigator.appName;
		if (browser=="Microsoft Internet Explorer"){
			elt.click();
		}else{
			var e = document.createEvent('MouseEvents');
			e.initMouseEvent('click',true,true,document.defaultView,1,0,0,0,0,false,false,false,false,0,null);
			elt.dispatchEvent(e);
		}
	}

	function worldwideThumbnail(){
		var elt = document.getElementById('tz0tab1item1toggle');
		var browser=navigator.appName;
		if (browser=="Microsoft Internet Explorer"){
			elt.click();
		}else{
			var e = document.createEvent('MouseEvents');
			e.initMouseEvent('click',true,true,document.defaultView,1,0,0,0,0,false,false,false,false,0,null);
			elt.dispatchEvent(e);
		}
	}

	return {
		toggle: toggle,
		mediaThumbnail: mediaThumbnail,
		worldwideThumbnail: worldwideThumbnail,
		init: init
	}
})();

$E.onDOMReady(tabbing.init);


