﻿/***********************/
/** GLOBAL *************/
/***********************/
function $(id){
	return document.getElementById(id);
}

document.getElementsByClassName = function(class_name) {
	var docList = this.all || this.getElementsByTagName('*');
	var matchArray = new Array();

	/*Create a regular expression object for class*/
	var re = new RegExp("(?:^|\\s)"+class_name+"(?:\\s|$)");
	for (var i = 0; i < docList.length; i++) {
			if (re.test(docList[i].className) ) {
					matchArray[matchArray.length] = docList[i];
			}
	}
	return matchArray;
}

function addEvent( obj, evt, fn ){
	if ( typeof obj.attachEvent != 'undefined' ){
		obj.attachEvent( "on" + evt, fn );
	}
	else if ( typeof obj.addEventListener != 'undefined' ){
		obj.addEventListener( evt, fn, false );
	} else {
		//		Do you want to support browser this old? 
		//		If so, you'll need to accomodate it here
	}
}

function findPosX(obj){
	var curleft = 0;
	if(obj.offsetParent)
		while(1) 
		{
			curleft += obj.offsetLeft;
			if(!obj.offsetParent)
			break;
			obj = obj.offsetParent;
		}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj){
	var curtop = 0;
	if(obj.offsetParent)
		while(1)
		{
			curtop += obj.offsetTop;
			if(!obj.offsetParent)
			break;
			obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}

function filterElementsBy(filter, filterLabel){
	if(filterLabel==null)filterLabel=filter;
	//$("galaxieFilterfilter").innerHTML=filterLabel;
	var galaxieFilter = document.getElementById("galaxieFilter").getElementsByTagName("div")
	for(i=0;i<galaxieFilter.length;i++){
		if(galaxieFilter[i].getAttribute("filter")!=null){
			galaxieFilter[i].style.display="none"; // reset view
			//if(filter == "All")galaxieFilter[i].style.display="block"; // enable all events if All is selected
			var filters = galaxieFilter[i].getAttribute("filter").split(",");
			for(var fi in filters){
				if(filters[fi] == filter){ // enable event of selected genre
					galaxieFilter[i].style.display="block";
				}
			}
		}
	}
}

/***********************/
/** PAGE INIT **********/
/***********************/
addEvent( window, 'load', function(){

	// init sub menu if available.
	if($("subMenu"))subMenu();

	// init DropMenuX
	var dmx = "";
	if($("menu1")){
		dmx = new DropMenuX('menu1');
		dmx.position.levelX.left = 2;
		dmx.position.level1.top = 0;
		dmx.init();
	}
});

/********************/
/*** SPECIFIC *******/
/********************/
function showSelectChannel(){
	if($("Chan").className!="open"){
		$("last10").style.display="none";
		$("last10content").style.display="none";
		if($("top10")){
			$("top10").style.display="none";
			$("top10content").style.display="none";
		}
		$("selectChan").style.display="block";
		$("Chan").className="open"
	}else{
		$("last10").style.cssText="";
		if($("top10")){
			$("top10").style.cssText="block";
		}
		$(selectedTop+"content").style.cssText="block";
		$("selectChan").style.display="none";
		$("Chan").className=""
	}	
}

function switchTop(objId, replaceId){
	$(replaceId+"content").style.display="none";
	$(replaceId).className=$(replaceId).className.replace(" selected","");
	$(objId+"content").style.display="block";
	$(objId).className+=" selected";
	selectedTop=objId;
}

function subMenu(){
	var elem = document.getElementsByClassName('subMenuItem');
	for(var i = 0; i < elem.length; i++){
		elem[i].onmouseover = function(){
			if(this.className.indexOf("selected")<0)this.className=this.className+" over";
		}
		elem[i].onmouseout = function(){
			if(this.className.indexOf("selected")<0)this.className=this.className.replace(" over","");
		}
		elem[i].onclick = function(){
			window.location=this.childNodes[0].childNodes[0].href;
		}
		elem[i].style.cssText="cursor:pointer;"; // setAttibute doesn't work in IE
	}
}

function toggleCollapse(id,tIdPrefix){
	if(!/open/.test($(id).className)){
		if(tIdPrefix!='')$(tIdPrefix+id).className+=" open";
		$(id).className+=" open";		
	}else{
		if(tIdPrefix!='')$(tIdPrefix+id).className=$(tIdPrefix+id).className.replace(/ open/,"");
		$(id).className=$(id).className.replace(/ open/,"");
	}
	
}

var showGenreChannelStatus=false;
var genres=new Array();
function showGenreChannel(genre){
	for(var i=0;i<genres.length;i++){
		$(genres[i]).className=$(genres[i]).className.replace(/genre over/,"genre");
	}
	$(genre).className=$(genre).className.replace(/genre/,"genre over");
	$("genreChannelsViewPort").innerHTML=$(genre+"Channels").innerHTML;
	showGenreChannelStatus=true;
}
