var showsContent="";
var cat_id=0;
var toptab=new Array("","","Select a video first.","Select a video first.");

window.addEvent('domready', function() {
	toptab[1]=document.getElementById("liveStream").innerHTML;
	
	if(isFrench()){
		toptab[2]="S&#233;lectionner un clip.";
		toptab[3]="S&#233;lectionner un clip.";
	}	
	
	addEvents();
	
	if(document.location.hash){
		var objarray=["m","p","c"];
		var hashvalue=document.location.hash.substring(1,100);		
		var hasharray=hashvalue.split("_");		
		for(i=0;i<hasharray.length;i++){
			getContent(document.getElementById(objarray[i]+hasharray[i]),objarray[i],hasharray[i]);			
		}			
	}
});

function addEvents(){
	addScrollEvents('show','boxShowHolder');	
	addScrollEvents('section','boxSectionHolder');	
	addScrollEvents('category','boxCategoryHolder');	
	addScrollEvents('video','boxVideosHolder');		
}

function addScrollEvents(objname,holder){
	$(objname+'Down').addEvent('mouseover', function(){scrollDown(holder)});
	$(objname+'Down').addEvent('mouseout', function(){scrollStop()});
	$(objname+'Down').addEvent('mousedown', function(){scrollDown(holder,20)});
	$(objname+'Down').addEvent('mouseup', function(){scrollStop()});
	
	$(objname+'Up').addEvent('mouseover', function(){scrollUp(holder)});
	$(objname+'Up').addEvent('mouseout', function(){scrollStop()});
	$(objname+'Up').addEvent('mousedown', function(){scrollUp(holder,20)});
	$(objname+'Up').addEvent('mouseup', function(){scrollStop()});
}

function getContent(obj,cat,id,isFlash) {					
	if(obj) {						
		clearClass(obj.parentNode);
		obj.className="selected";								
	}	
	
	// Deal with the sort dropdown
	var dd_obj=document.getElementById('sort');							
	if(cat_id>0){
		removeEvent(dd_obj,"change",sortVideos,false);	
		cat_id=0;
	}
	
	switch(cat) {
		case "m":									
			divname="boxSectionHolder";
			clr("boxCategoryHolder");
			clr("boxVideosHolder");
			locationHash(0,id);
			qs="mid="+id;
			break;
		case "p":
			divname="boxCategoryHolder";
			clr("boxVideosHolder");
			locationHash(1,id);
			qs="pid="+id;
			break;
		case "c":			
			setEvent(dd_obj,"change",sortVideos,false);			
			cat_id=id;
			divname="boxVideosHolder";			
			locationHash(2,id);
			qs="cid="+id+"&sor="+dd_obj.options[dd_obj.selectedIndex].value;
			break;
		case "g":
			if(isIE() && isFlash==null){												
				if(document.getElementById('Player')==null) loadWM();
				divname="currentVideo";				
				qs="gid="+id+"&ie=1";				
			}else{				
				if(isIE() && document.getElementById('Player')!=null){
					document.getElementById('Player').controls.stop();
					document.getElementById('Player').url="";
				}
				divname="playerContent";
				qs="gid="+id;
			}			
			break;
		case "l":
			if(isIE()){
				if(document.getElementById('Player')==null) loadWM();
				divname="currentVideo";				
				qs="lid="+id+"&ie=1";				
			}else{				
				divname="playerContent";
				qs="lid="+id;
			}
			break;
		case "s":
			divname="videoBoxes";
			if(id){
				if(showsContent=="")showsContent=document.getElementById(divname).innerHTML;
				qs="src="+id;				
			}else{
				if(showsContent)document.getElementById(divname).innerHTML=showsContent;
				showsContent="";
			}				
			break;
	}
	qs+="&"+Math.random();
		
	if(id){				
		var req = new Request.HTML({	
			url:'/portals/video/ajax_content.asp?'+qs, 
			method:'get',
			update:divname,
			onRequest: function() { $(divname).set('html','<img class="loader" src="/portals/video/_images/ajax-loader.gif" />') },
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				//$(divname).set('text','');
				//$(divname).adopt(responseTree);
								
				// Highlight selection
				if(document.getElementById(cat+id) && !obj) document.getElementById(cat+id).className="selected";
				
				if(cat=="g" || cat=="l"){										
					toptab[2]=document.getElementById("liveStream").innerHTML;					
					toptab[3]=document.getElementById("share").innerHTML;
				}
				//if(cat=="s")$(divname).set('text',responseHTML);
			},
			onFailure: function() {$(divname).set('text', 'The request failed.');}
		}).send();		
	}	
}
function locationHash(idx,id){			
	var hash="";
	
	if(idx>0){
		var hashvalue=document.location.hash.substring(1,100)+"_";
		var hasharray=hashvalue.split("_");				
		for(i=0;i<idx;i++){
			hash+=hasharray[i]+"_";
		}		
		document.location.hash=hash+id;
	}
	else document.location.hash=id;
}
function isFrench(){
	return (location.href.indexOf("tvrogers.com")>0)
}
function selectText(obj){
	obj.focus();
	obj.select();
}
function switchTab(obj){
	for(var i=1;i<=3;i++)document.getElementById("toptab"+i).className="tab"+i;
	obj.className+=" selected";
		
	document.getElementById("liveStream").innerHTML=toptab[obj.id.substring(7,6)];	
}
function sortVideos(){	
	getContent(null,"c",cat_id,null);	
}
function removeEvent(obj,type,fn){
  if(obj.removeEventListener) obj.removeEventListener(type,fn,false);
  else if(obj.detachEvent){
    obj.detachEvent("on"+type,fn);
    obj[type+fn]=null;
    obj["e"+type+fn]=null;
  }
}
function setEvent(obj,evt,fnc,useCapture){
	if (!useCapture) useCapture=false;
	if (obj.addEventListener){
		obj.addEventListener(evt,fnc,useCapture);
		return true;
	} else if (obj.attachEvent) return obj.attachEvent("on"+evt,fnc);
	else{
		MyAttachEvent(obj,evt,fnc);
		obj['on'+evt]=function(){ MyFireEvent(obj,evt) };
	}
} 
//The following are for browsers like NS4 or IE5Mac which don't support either
//attachEvent or addEventListener
function MyAttachEvent(obj,evt,fnc){
	if (!obj.myEvents) obj.myEvents={};
	if (!obj.myEvents[evt]) obj.myEvents[evt]=[];
	var evts = obj.myEvents[evt];
	evts[evts.length]=fnc;
}
function MyFireEvent(obj,evt){
	if (!obj || !obj.myEvents || !obj.myEvents[evt]) return;
	var evts = obj.myEvents[evt];
	for (var i=0,len=evts.length;i<len;i++) evts[i]();
}
function isIE()
{
  return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}
function loadWM(){	
	var str='';
	str+='					<p><object id="Player" width="320" height="312" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">							  ';
	str+='						<param name="autoStart" value="true"\/>																					 ';
	str+='						<param name="url" value="" \/>								  ';
	str+='						<embed name="WMplay" width="320" height="312" type="application\/x-mplayer2"';
	str+='							pluginspage="http:\/\/www.microsoft.com\/Windows\/Downloads\/Contents\/Products\/MediaPlayer\/"';
	str+='							src="" 																		 ';
	str+='							ShowControls="1"';
	str+='							wmode="transparent" ';
	str+='							AutoStart="True" \/>';
	str+='					<\/object><\/p>';
	document.getElementById('videoPlayer').innerHTML=str;
}
function tab1(obj){
	if(document.getElementById('src').value.length>0){
		document.getElementById('src').value='';
		getContent(obj,'s','');
		addEvents();
	}
}
function search(e){	
	if(e==0){
		if(document.getElementById('src').value)
			getContent(document.getElementById('tab2'),'s',escape(document.getElementById('src').value));	
	}else{		
		var evt = e || window.event;
		var keyCode = evt.which || evt.keyCode;		
		if (keyCode == 13)
			if(document.getElementById('src').value)
				getContent(document.getElementById('tab2'),'s',escape(document.getElementById('src').value));	
		else
		return true;
	}
}

function clr(divname) {
	$(divname).set('text','');	
	document.getElementById(divname+'_count').innerHTML="";	
}

function clearClass(obj) {
	var items=obj.getElementsByTagName('li');
	for(var i=0; i<items.length ;i++) {
	    items[i].className='';
    }
}