// -*- mode: javascript; coding: utf-8 -*-

var videobox = {
	TITLE_REMOVE_TIMEOUT: 3000, // ms
	TITLE_ANIM_INTERVAL: 30, // ms

	videoPlaybackReveal: function (video) {
	        if (video.swf.match('rtsp'))
			document.getElementById (VIDEO_ID + "-playback").parentNode.innerHTML = 
				'<' + 'div id="' + VIDEO_ID + '-playback">' + 
				'  <object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6"' + 
				' codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"' + 
				' width="' + videobox.VIDEO_WIDTH.toString() + 
                                '" height="' + videobox.VIDEO_HEIGHT.toString() + '"><param name="src" value="' + 
				video.swf + '" /><param name="url" value="' +
				video.swf + '" /><param name="width" value="' + videobox.VIDEO_WIDTH.toString() + '" />' +
				'<param name="height" value="' + videobox.VIDEO_HEIGHT.toString() + '" />' + 
				'<embed type="application/x-mplayer2" src="' +
				video.swf + '" width="' + videobox.VIDEO_WIDTH.toString() +
                                '" height="' + videobox.VIDEO_HEIGHT.toString() + '">' +
				'</embed></object>' +
                	        '<\/div>';
		else if (video.swf.match('.mp4'))
			document.getElementById (VIDEO_ID + "-playback").parentNode.innerHTML = 
				'<' + 'div id="' + VIDEO_ID + '-playback">' + 
                                '<object width="' + videobox.VIDEO_WIDTH.toString () + '" height="' + videobox.VIDEO_HEIGHT.toString () + '"' +
                                ' classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"' +
                                ' codebase="http://www.apple.com/qtactivex/qtplugin.cab">' +
                                ' <param name="src" value="' + video.swf + '">' +
				' <param name="autoplay" value="true">' +
				' <param name="controller" value="false">' +
				' <embed src="' + video.swf +'" width="' + videobox.VIDEO_WIDTH.toString () + '" height="' + videobox.VIDEO_HEIGHT.toString () + '" scale="aspect"' +
				' autoplay="true" controller="false"' +
				' pluginspage="http://www.apple.com/quicktime/download/">' +
				' </embed>' +
				' </object>' + 
                	        '<\/div>';
		else if (video.swf.match('http://www.telesur')){
			document.getElementById (VIDEO_ID + "-playback").parentNode.innerHTML = 
				'<' + 'div id="' + VIDEO_ID + '-playback">' + 
				'<iframe width="410px" height="255px" scrolling="no" frameborder="0" src="' + video.swf + '" marginheight="0" marginwidth="0" style="overflow: hidden;"/>' +
                	        '<\/div>';
			 document.getElementById ('video-box-1').style.display="none";
			 document.getElementById ('video-box-2').style.display="none";
			 document.getElementById ('video-box-3').style.display="none";

		}else
			swfobject.embedSWF (video.swf, VIDEO_ID + "-playback", 
					    videobox.VIDEO_WIDTH.toString (), videobox.VIDEO_HEIGHT.toString (), "9.0.0");
		document.getElementById ('video-box-overlay').style.display="none";
	},
	videoOverlaySet: function (videoData) {
		document.getElementById (VIDEO_ID + "-playback").parentNode.innerHTML =
			'<' + 'div id="' + VIDEO_ID + '-playback"><\/div>';
		var over = document.getElementById (VIDEO_ID + "-overlay");
		over.firstChild.src = videoData.thumb;
		over.firstChild.alt = videoData.title;
		over.firstChild.title = videoData.title;
		over.childNodes[1].firstChild.href = videoData.url;
		document.getElementById ('video-box-overlay').style.display="block";
	},

	videoSetCurrent: function (num) {
		videobox.VIDEO_CURRENT = num;
	},

	videoThumbOver: function (a) {
		var num = a.parentNode.id.substr (VIDEO_ID.length + 1);
		var caption = videobox.videoCaption;
		caption.bak = caption.innerHTML;
		caption.innerHTML = VIDEOS[num].title;
	},

	videoThumbOut: function (a) {
		var caption = videobox.videoCaption;
		caption.innerHTML = caption.bak;
	},

	videoSwitch: function (a) {
		var num = a.parentNode.id.substr (VIDEO_ID.length + 1);
		a.parentNode.id = VIDEO_ID + "-" + videobox.VIDEO_CURRENT;
		a.firstChild.src = VIDEOS[videobox.VIDEO_CURRENT].thumb;
		a.firstChild.alt = VIDEOS[videobox.VIDEO_CURRENT].title;
		a.firstChild.title = VIDEOS[videobox.VIDEO_CURRENT].title;

		videobox.videoCaption.bak = VIDEOS[num].title;
		videobox.videoSetCurrent (num);
		videobox.videoOverlaySet (VIDEOS[num]);
	},

	monosRender: function (xml) {
		if (xml)
			videobox.monosXml = xml;
		else
			xml = videobox.monosXml;

		if (videobox.monosBox.style.display == "none")
			return;
		if (videobox.monosRendered)
			return;

		videobox.monosRendered = true;
		videobox.monosMini.style.display = "block";

		var urltoday;
		if (window.CIMPRESADAY) {
			urltoday = window.CIMPRESADAY;			
		} else {			
			urltoday = "";
		}

		var items_data = [];
		var items = xml.getElementsByTagName ("Item");
		for (var i = 0, item; item = items[i]; i++) {
			var data = { h: 100, url: videobox.monosDir + urltoday  + "index.php?section=cartones&id=" + i };
			for (var j = 0, child; child = item.childNodes[j]; j++) {
				if (!child.nodeName)
					continue;
				var val = dodo.renderXml (child, true);
				switch (child.nodeName) {
				case "author": data.credit = val; break;
				case "caption": data.title = val; break;
				case "thumbnail": data.src = urltoday + videobox.monosDir + val; break;
				}
				data.caption = '<span class="title2">' + data.title + 
					'</span>-<span class="credit">' + data.credit + '</span>';
			}
			items_data.push (data);
		}
		var mini = new miniPhoto;
		mini.init (videobox.monosMini, items_data, 0);
		mini.thumbsInit ();
	},

	monosOnLoad: function (req) {
		if (req.readyState == 4) {
			if (req.status == 200 || req.status == 0)
				videobox.monosRender (req.responseXML);
			dodo.finishTasks (1, "monos " + req.status);
		}
	},

	monosShowVideo: function (top) {
		if (!top)
			top = 43;
		top *= 0.75;
		if (top > 1) {
			videobox.monosTitleVideo.style.top = (-top) + "px";
			dodo.delayRun (function () { videobox.monosShowVideo (top); }, videobox.TITLE_ANIM_INTERVAL);
		} else
			videobox.monosTitleVideo.style.top = "0px";
	},

	monosDisplay: function (l, orig) {
		if (!l || l.type) {
			videobox.videoTitleCancelHide ();
			orig = dodo.getComputedStyle (videobox.videoTitleMonos.firstChild, "left");
			orig = parseInt (orig.substr (0, orig.indexOf ("px")));
			l = 232;
			videobox.videoTitleVideo.style.display = "none";
		}
		l *= 0.75;
		if (l > 1) {
			videobox.videoTitleMonos.firstChild.style.left = (l - 43) + "px";
			dodo.delayRun (function () { videobox.monosDisplay (l, orig); }, videobox.TITLE_ANIM_INTERVAL);
		} else {
			videobox.videoBox.style.display = "none";
			videobox.monosBox.style.display = "block";
			videobox.videoTitleMonos.firstChild.style.left = "";
			videobox.videoTitleVideo.style.display = "block";
			videobox.monosTitleVideo.style.top = "-43px";
			dodo.delayRun (function () { 
				videobox.monosShowVideo (); 
				videobox.monosRender (); 
			});
		}
	},

	videoTitleOut: function () {
		videobox.videoTitleTimeout = window.setTimeout (function () {
			if (videobox.videoTitleTimeout) {
				videobox.videoTitleTimeout = undefined;
				videobox.videoHideMonos ();
			}
		}, videobox.TITLE_REMOVE_TIMEOUT);
	},

	videoTitleCancelHide: function () {
		if (videobox.videoTitleTimeout) {
			window.clearTimeout (videobox.videoTitleTimeout);
			videobox.videoTitleTimeout = undefined;
		}
	},

	videoAnimMonos: function (top, orig, func, finalVal) {
		if (!top || top.type) {
			orig = videobox.videoTitleMonos.clientHeight;
			top = orig;
		}
		top *= 0.75;
		if (top > 1) {
			videobox.videoTitleMonos.style.top = func (top, orig) + "px";
			dodo.delayRun (function () { videobox.videoAnimMonos (top, orig, func, finalVal); }, videobox.TITLE_ANIM_INTERVAL);
		} else
			videobox.videoTitleMonos.style.top = finalVal (orig) + "px";
	},

	videoShowMonos: function () {
		videobox.videoTitleVideo.onmouseover = null;
		videobox.videoSensor.style.display = "none";
		videobox.videoAnimMonos (undefined, undefined, 
					function (top, orig) { return -top; }, 
					function () { 
						return 0; 
					});
	},

	videoHideMonos: function () {
		videobox.videoTitleCancelHide ();
		videobox.videoSensor.style.display = "block";
		videobox.videoAnimMonos (undefined, undefined, 
					function (top, orig) { return top - orig; }, 
					function (orig) { 
						videobox.videoTitleVideo.onmouseover = videobox.videoShowMonos;
						return -orig; 
					});
	},

	videoDisplay: function (l, orig) {
		if (!l || l.type) {
			orig = dodo.getComputedStyle (videobox.monosTitleVideo, "left");
			orig = parseInt (orig.substr (0, orig.indexOf ("px")));
			l = orig + 43;
			videobox.monosTitleMonos.style.display = "none";
		}
		l *= 0.75;
		if (l > 1) {
			videobox.monosTitleVideo.style.left = (l - 43) + "px";
			dodo.delayRun (function () { videobox.videoDisplay (l, orig); }, videobox.TITLE_ANIM_INTERVAL);
		} else {
			videobox.monosBox.style.display = "none";
			videobox.videoBox.style.display = "block";
			videobox.monosTitleVideo.style.left = orig + "px";
			videobox.monosTitleMonos.style.display = "block";
			dodo.delayRun (function () { videobox.videoHideMonos (); });
		}
	},

	onLoad: function () {
		videobox.monosBox = document.getElementById (window.MONOS_ID);
		videobox.videoBox = document.getElementById (window.VIDEO_ID);

		if (videobox.monosBox) {
			for (var i = 0, child; child = videobox.monosBox.childNodes[i]; i++) {
				switch (child.className) {
				case "video-title title gui": videobox.monosTitleVideo = child; break;
				case "monos-title title gui": videobox.monosTitleMonos = child; break;
				case "mini-photo": videobox.monosMini = child; break;
				}
			}

			videobox.monosTitleVideo.onclick = videobox.videoDisplay;
		}

		if (videobox.videoBox) {
			for (var i = 0, child; child = videobox.videoBox.childNodes[i]; i++) {
				switch (child.className) {
				case "video-title title gui": videobox.videoTitleVideo = child; break;
				case "monos-title title gui": videobox.videoTitleMonos = child; break;
				case "video-caption": videobox.videoCaption = child; break;
				case "sensor gui": videobox.videoSensor = child; break;
				}
			}

			if (videobox.videoTitleVideo) {
				videobox.videoTitleVideo.onmouseover = videobox.videoShowMonos;
				videobox.videoSensor.onmouseover = videobox.videoShowMonos;

				videobox.videoTitleMonos.onclick = videobox.monosDisplay;
				videobox.videoTitleMonos.onmousemove = videobox.videoTitleCancelHide;
				videobox.videoTitleMonos.onmouseout = videobox.videoTitleOut;
			}
		}
		
		if (videobox.monosBox) {
			videobox.monosDir = "";			
			urltoday = '';
			if (!window.CIMPRESADAY){
				var args = dodo.argsParse (document.location);
				if (args && args.monos) {
					if (args.monos[args.monos.length - 1] != "/")
						args.monos += "/";
					videobox.monosDir = args.monos;
				}
			}else
				urltoday = window.CIMPRESADAY;
			var req = dodo.httpReqGet ();
			dodo.httpReqLoad (req, videobox.monosDir + urltoday  + "cartones.xml", function () { videobox.monosOnLoad (req); }, false);

		}

		if (!videobox.VIDEO_CURRENT)
			videobox.VIDEO_CURRENT = 0;
		if (!videobox.VIDEO_WIDTH)
			videobox.VIDEO_WIDTH = 300;
		if (!videobox.VIDEO_HEIGHT)
			videobox.VIDEO_HEIGHT = 255;
	}
}

dodo.onLoadPush (videobox.onLoad);

