function setCookie(c_name,value,expiredays) {
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

function getCookie(c_name) {
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=")
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1 
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    } 
  }
return ""
}

//following code from: http://www.ruby-forum.com/topic/112774#262607
Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5))==6;

var VideoPlayer = {};

VideoPlayer.playlistVideos = [];
VideoPlayer.currentVideo = {};
VideoPlayer.storageReady = false;
VideoPlayer.autoPlay = false;
VideoPlayer.usePlaylist = false;
VideoPlayer.currentPlaylistIndex = -1;
VideoPlayer.doHistory = false;
VideoPlayer.ratedVideos = [];
VideoPlayer.MAX_PLAY_LIST = 10;
VideoPlayer.pickedInitalVideo = false;
VideoPlayer.initalLoad = true;
VideoPlayer.comScoreImage = null;
VideoPlayer.WOWZA_SPLIT = 0.75;


VideoPlayer.init = function() {
	//Famclub.init('videos');	
	
//	VideoSponsorship.init();
	
	/*
	//put the storage SWF on the page:
	var fo = new SWFObject("playlistStorage.swf", "playListStorage", "1", "1", "8", "#00ddf4");
	//fo.addParam("wmode", "transparent"); //doesn't work in FF3 + Flash 10
	fo.write("playListStorageContainer");
	*/
	//init our history/bookmark object:
	VideoPlayer.initHistory();
	
	//init the rating:
	//VideoPlayer.initRating();
	
	
	//grab values from the query string:
	var params = VideoPlayer.getQueryParams();
		
	if(params.video) VideoPlayer.play(parseInt(params.video));
	else {

		//lets listen for when the first batch of videos is
		//loaded into the lists area:
		Event.observe('listsArea', 'videolists:loaded', function() {
			if(!VideoPlayer.pickedInitalVideo) {
				VideoPlayer.pickedInitalVideo = true;
				var maxIndex = Math.min(videoList.videoListArray.videosbygroup.length, 4);
				var rand = Math.floor(Math.random()*maxIndex);
				var video = videoList.videoListArray.videosbygroup[rand];
				if(video) VideoPlayer.play(parseInt(video.id));
			}
		});
	}
		
	//load in the list of videos, depending on passed params:
	if(params.showid) {
		videoList.loadByShow(parseInt(params.showid));
	} else if(params.group) {
		videoList.loadVideos(parseInt(params.group));
	} else {
		videoList.loadFeatured();
	}

	//if the video param is there, then play it:
	/*if(params.video) VideoPlayer.play(parseInt(params.video));
	else {

		//lets listen for when the first batch of videos is
		//loaded into the lists area:
		Event.observe('listsArea', 'videolists:loaded', function() {
			if(!VideoPlayer.pickedInitalVideo) {
				VideoPlayer.pickedInitalVideo = true;
				var maxIndex = Math.min(videoList.videoListArray.videosbygroup.length, 4);
				var rand = Math.floor(Math.random()*maxIndex);
				var video = videoList.videoListArray.videosbygroup[rand];
				if(video) VideoPlayer.play(parseInt(video.id));
			}
		});
	}*/
	
	//VideoPlayer.initPlaylist();
	
	//VideoPlayer.initTopVideosLists();
}

VideoPlayer.initHistory = function() {
	if(!Prototype.Browser.WebKit && !Prototype.Browser.IE6) {		
		window.dhtmlHistory.create({
			toJSON: function(o) {
				return Object.toJSON(o);
			}
			, fromJSON: function(s) {
				return s.evalJSON();
			}
		});
		
		var listener = function(newLocation, historyData) {
			if(historyData && historyData.id /*&& !dhtmlHistory.isFirstLoad()*/) {
				VideoPlayer.play(historyData.id);
			}
		};
	
		Event.observe(window, 'load', function() {
			dhtmlHistory.initialize();
			//we don't want to fire history listener on initial
			//page load, as we are already taking care of that!
			dhtmlHistory.fireOnNewListener = false;
			dhtmlHistory.addListener(listener);
		});
		
		VideoPlayer.doHistory = true;
	}
};


VideoPlayer.getQueryParams = function() {
	var qs = dhtmlHistory.getCurrentHash();
	var params = qs.split('&');
	var get = {};
	for(var i = 0, len = params.length; i < len; ++i) {
		var parts = params[i].split('=');
		get[parts[0]] = parts[1];
	}
	return get;
};

VideoPlayer.displayOldFlashWarning = function() {
	var message = '<div align="center"><br /><br /><strong>SORRY!<br /><br />This video content requires the newest version of Adobe Flash Player.</strong>'
		+ '<br /><br /><a target="_blank" href="http://www.macromedia.com/go/getflash/">Click Here to Get Flash</a></div>';
	$('videoContainer').update(message);
};

VideoPlayer.updatePageView = function(id) {
	
	if(id) {
		s.pageName = 'video: video ' + id;
		s.hier1 = 'video/video ' + id;
	} else {
		s.pageName = 'video: Landing';
		s.hier1 = 'video';
	}
	s.channel = 'video';
	s.eVar1=""
	s.eVar2 = '';
	s.eVar3 = '';
	s.eVar4 = '';
	s.events = '';
	s.pageType = '';
	s.prop1 = '';
	s.prop2 = '';
	s.prop3 = '';
	void(s.t());
};




VideoPlayer.setStorageReady = function(val) {
	VideoPlayer.storageReady = val;
	if(val) {
		VideoPlayer.getPlaylist();
	}
}

VideoPlayer.addHistory = function(url, data) {
	if(VideoPlayer.doHistory) {	
		dhtmlHistory.add(url, data);
		var title = 'Watch Disney Shows Online - Playhouse Disney Canada Video Player';
		document.title = title;
		if(dhtmlHistory.isIE) {
			dhtmlHistory.iframe.contentWindow.document.title = title;
		}
	}
};

VideoPlayer.sendToFriend = function() {
	var friendsEmail = $F('friendsEmail');
	var yourName = $F('yourName');
	var video = VideoPlayer.currentVideo.id;
	
	if(friendsEmail == '' || yourName == '') {
		VideoPlayer.setSendToFriendMessage('Please complete all fields!');
		return false;	
	}
	
	new Ajax.Request('scripts/sendToFriend.php', {
		method:'post',
		parameters: {
			friendsEmail:friendsEmail, 
			yourName:yourName, 
			video:video
		},
		onSuccess: function(transport){
			var json = transport.responseText.evalJSON(true);
			if(json.success) {
				$("yourName").value = "";
				$("friendsEmail").value = "";
				VideoPlayer.setSendToFriendMessage('Your message has been sent!');
				
			} else {
				var msg = (json.message)? json.message + '.' : 'Sorry, we could not send your message!';
				VideoPlayer.setSendToFriendMessage(msg + '  Please try again.');
			}
		},
		onFailure: function(){ 
			VideoPlayer.setSendToFriendMessage('Sorry, we could not send your message!  Please try again.');
		}
	});
};

VideoPlayer.setSendToFriendMessage = function(msg) {
	var message = $('sendMessage');
	message.innerHTML = msg;
	//var fields = $$('#sendMessage .fields')[0];

	//message.down('li').update(msg + '       <a href="javascript:VideoPlayer.closeSendToFriendMessage();">OK</a>');
	message.setStyle({display:'block'});
	//fields.setStyle({display:'none'});
};

VideoPlayer.closeSendToFriendMessage = function() {
	var message = $$('#sendToFriendContainer .result')[0];
	var fields = $$('#sendToFriendContainer .fields')[0];
	
	message.down('li').update('');
	message.setStyle({display:'none'});	
	fields.setStyle({display:'block'});
};


VideoPlayer.videoComplete = function() {
	if(VideoPlayer.autoPlay && VideoPlayer.usePlaylist) {
		
		VideoPlayer.currentPlaylistIndex = VideoPlayer.getPlaylistIndex(VideoPlayer.currentVideo.id);	
		
		VideoPlayer.currentPlaylistIndex++;
		if(VideoPlayer.currentPlaylistIndex >= VideoPlayer.playlistVideos.length) VideoPlayer.currentPlaylistIndex = 0;
	
		var video = VideoPlayer.playlistVideos[VideoPlayer.currentPlaylistIndex];
		VideoPlayer.playFromPlaylist(video.id);
	}
};

VideoPlayer.playVideo = function(id) {
	//VideoPlayer.swapAutoPlay(false);
	//VideoPlayer.usePlaylist = false;
	VideoPlayer.play(id);
}

VideoPlayer.play = function(id) {

	$('videoLoading').setStyle({display:'block'});

	//$('videoContainer').update('');
	var complete = function() {

		new Ajax.Request('scripts/loadVideo.php', {
			method:'post',
			parameters: {play:id},
			onSuccess: function(transport){
				var json = transport.responseText.evalJSON(true);
				if(json.success) {
					var video = json.video;
					VideoPlayer.currentVideo = video;
	
					//update the video title:
					$('bigVideoTitle').update(video.title);	

					//Display throw graphic
					VideoPlayer.throwGraphic(video);

					//update the video:
					VideoPlayer.updateVideoSWF(video);
					//record in history:
					VideoPlayer.addHistory('#video=' + video.id, {id:video.id});
		
					//display the marketing area:
					MarketingArea.nextBox();

					//track the new video:
					VideoPlayer.updatePageView(video.id);
					
					//fire event to let others know that a video has loaded:
					document.body.fire('video:load');
				} else {
					$('bigVideoTitle').update('<strong>Sorry, could not load the video: ' + json.message + '</strong>');
					$('bigVideoTitle').update('<strong>Sorry, could not load the video: ' + json.message + '</strong>');
				}
			},
			onFailure: function(){ 
					$('bigVideoTitle').update('<strong>Sorry, could not load the video: ' + json.message + '</strong>');
					$('bigVideoTitle').update('<strong>Sorry, could not load the video: ' + json.message + '</strong>');
			}
		});
				$('videoLoading').setStyle({display:'none'});
	};
		//new Effect.Fade('bigVideoTitle', {duration:0.3, afterFinish:complete});
	complete();

};

VideoPlayer.updateVideoSWF = function(video) {

	if(!video.secure) {
		var rand = Math.random();
		if(rand <= VideoPlayer.WOWZA_SPLIT) {
			//we will use wowza, which means that we are going to
			//not need the video as secure (it already should be false anyways):
			video.secure = false;
		} else {
			//don't send to wowza.  So we want to label the
			//video as secure so that it is streamed off of limelight
			video.secure = true;
		}
	}

	
	$('videoPlayer').update('');

	var autoplay = (VideoPlayer.initalLoad)? 'false' : 'true';
	var still = '/images/video/bigbox/' + ((video.bigboxImage != '')? video.bigboxImage : 'default_still.gif');
	var secure = (video.secure)? 'true' : 'false';
	var preroll = (video.preroll)? 'true' : 'false';
	var fo = new FlashObject("player.swf", "videosPlayer", "448", "377", "9", "#000000");
	fo.addParam("allowFullScreen", "true");
	fo.addParam("allowScriptAccess", "always");

	fo.addVariable("ap", autoplay);

	fo.addVariable("fn", video.filename);
	fo.addVariable("id", video.id);
	fo.addVariable("st", still);
	fo.addVariable("sc", secure);
	fo.addVariable("pr", preroll);
	if(video.preroll && video.prerollZone != '') {
		fo.addVariable("pz", video.prerollZone);
	}
	if(video.showTitleForBanners) {
		fo.addVariable("sh", video.showTitleForBanners);
	}
	if(video.preSlate) {
		fo.addVariable("s1", '/images/video/slates/' + video.preSlate);
		fo.addVariable("t1", video.preSlateDuration);
	}
	if(video.postSlate) {
		fo.addVariable("s2", "/images/video/slates/" + video.postSlate);
		fo.addVariable("t2", video.postSlateDuration);
	}
	fo.addVariable("ff", 'true');
	fo.addVariable('r', Math.random());
	fo.write("videoPlayer");

	VideoPlayer.initalLoad = false;


	if(!video.preroll) {
		VideoPlayer.randomBigBox();
	}
};

VideoPlayer.randomBigBox = function() {
	VideoPlayer.setBigBoxIFrame('scripts/bigboxAd.php');
};

VideoPlayer.setBigBoxIFrame = function(url) {
	var bigbox = $('bigBoxContent');
	bigbox.update('<iframe src="'+url+'" id="bigBoxIFrame" class="bigBoxIFrame" height="250" border="0" scrolling="no" frameborder="0" ></iframe>');
};

VideoPlayer.throwGraphic = function(video) {
	var throwGrapihc = $('throwGraphic');
	throwGrapihc.update('<img src="/images/video/throws/'+video.throwGraphic+'" border=0>');
};

VideoPlayer.getVolume = function() {
	var volObj = {volume:100, isMuted:false};
	var cookieValue = getCookie('PHDVideoPlayerSectionVolume');
	if(cookieValue != '') {
		var parts = cookieValue.split('|');
		volObj.volume = parts[0];
		volObj.isMuted = (parts[1] == 'true');
	}
	//alert('v: ' + volObj.volume + ' m: ' + volObj.isMuted);
	return volObj;
};

VideoPlayer.storeVolume = function(volObj) {
	volObj.isMuted = new Boolean(volObj.isMuted);
	volObj.volume = parseInt(volObj.volume);
	volObj.volume = (volObj.volume < 0 || volObj.volume > 100)? 100 : parseInt(volObj.volume);
	//alert('v: ' + volObj.volume + ' m: ' + volObj.isMuted);
	setCookie('PHDVideoPlayerSectionVolume', volObj.volume+'|'+volObj.isMuted, 1);
};


MarketingArea = {};

MarketingArea.boxes = [];
MarketingArea.currentBoxIndex = -1;

MarketingArea.nextBox = function() {

	if(MarketingArea.boxes.length < 1) return;
	
	MarketingArea.currentBoxIndex++;
	if(MarketingArea.currentBoxIndex + 1 > MarketingArea.boxes.length) {
		MarketingArea.currentBoxIndex = 0;
	}
	var box = MarketingArea.boxes[MarketingArea.currentBoxIndex];
	
	if(box.image.substring(box.image.length - 4) == '.swf') {
		var fo = new SWFObject("/images/video/marketingbox/"+box.image, "mktArea" + box.id, "304", "157", "9", "#000000");
		fo.addParam("wmode", "transparent");
		fo.write("marketingAreaContent");
	} else {
		var content = '<img src="/images/video/marketingbox/'+box.image+'" border=0 />';
		if(box.url) {
			var target = (box.target == 1)? ' target="_blank" ' : '';
			content = '<a href="'+box.url+'" '+target+'>'+content+'</a>';
		}
		$('marketingAreaContent').update(content);	
	}
};


VideoSponsorship = {};

VideoSponsorship.init = function() {
	Event.observe(document.body, 'video:load', VideoSponsorship.listener);
};

VideoSponsorship.isOpen = function() {
	return ($('videoSponsorship').getStyle('display') == 'block');
};

VideoSponsorship.open = function(url, image, target) {		
	var complete = function() {
		VideoSponsorship.setImage(url, image, target);
	};
	
	if(!VideoSponsorship.isOpen()) {
		new Effect.SlideDown('videoSponsorship', {duration:0.2, afterFinish:complete});
	} else {
		complete();
	}
};

VideoSponsorship.close = function() {
	if(!VideoSponsorship.isOpen()) {
		return;
	}
	
	var complete = function() {
		VideoSponsorship.setImage(null, '/images/spacer.gif', null);
	};
	new Effect.SlideUp('videoSponsorship', {duration:0.2, afterFinish:complete});
};

VideoSponsorship.setImage = function(url, image, target) {
	var content = '<img src="/images/video/sponsorship/'+image+'" />';
	if(url) {
		var target = (target == 1)? ' target="_blank" ' : '' ;
		content = '<a href="'+url+'" '+target+'>' + content + '</a>';	
	}
	$('videoSponsorship').update(content);	
};

VideoSponsorship.listener = function() {
	var v = VideoPlayer.currentVideo;
	
	if(v.videoSponsorship) {
		VideoSponsorship.open(v.videoSponsorship.url, v.videoSponsorship.image, v.videoSponsorship.target);
	} else {
		VideoSponsorship.close();
	}
};

//DART Motif is expecting a function with this name to exist.
//So use this function to call our function that will update
//the big box iframe
function syncRoadBlock(adTag) {
	VideoPlayer.setBigBoxIFrame(adTag);
}

function getVideo() {
	alert('hi');	
}


var VideoHeader = {};

VideoHeader.swapLoginForm = function() {
	var visible = 'loginFormMessage'
	var invisible = 'loginFormContent';
	if($('loginFormContent').getStyle('display') == 'block') {
		visible = 'loginFormContent';
		invisible = 'loginFormMessage';
	} 
	
	$(visible).setStyle({display:'none'});
	$(invisible).setStyle({display:'block'});
};

VideoHeader.logout = function() {
	$('logoutForm').submit();
};




