/*
 * ----------------------------------------------------------------------
 * Media Popup
 * Author: VRB (rbernaczek@janmedia.com)
 * Date: 20.02.2008
 * ----------------------------------------------------------------------
 */
function addMediaPopup(){
	var allTags = null;
	allTags = document.getElementsByTagName("a");
	if (allTags) {
		for (q=0; q<allTags.length; q++) {
			obj = allTags[q];
			var ext = getFileExt(obj.href);
			if (ext == "mp3" || ext == "flv")
				changeA(obj);
		}
	}
}

function changeA(a){
	var path = a.href;
	var t;
	
	if (a.title)
		if (a.title.length > 1)
			t = a.title;
	
	a.href = "javascript:openPlayer('" + path + "', '" + t + "');";
	if (a.attributes.onclick)
		a.attributes.onclick.value = "";
		
	if (a.target)
		a.target = "";
}

function getFileExt(path){
	var p = path.lastIndexOf(".");
	if (p < 0)
		return path;
	return path.substring(p+1, path.length).toLowerCase( );
}


/* ----------------------------------------------------------------------
	OPEN BROWSER
---------------------------------------------------------------------- */
function openPlayer(path, t){
	var d = BR_CreateBrowser("");
	
	//Content
	var mpContent = BR_CreateNewTag("div", "mpContent", "mediaContent");
	var swf;
	if (getFileExt(path) == "mp3")
		swf = new FlashTag("/swf/music_player.swf", 530, 78);
	else
		swf = new FlashTag("/swf/video_player.swf", 530, 366);
		
	swf.flashVars = "";
	
	if (t != "undefined")
		if (t.length > 1)
			swf.flashVars = "media_title=" + t + "&";
			
	swf.flashVars += "path=" + path;
	
	mpContent.innerHTML = swf.toString();
	d.appendChild(mpContent);
	BR_setPosition(d);
}


/* ----------------------------------------------------------------------
	BROWSER ENGINE
---------------------------------------------------------------------- */
function BR_closeBrowser(){
	var mp = document.getElementById("mp");
	if (!mp)
		return;
	mp.parentNode.removeChild(mp.parentNode.lastChild);
	
	var mpMask = document.getElementById("mpMask");
	if (!mpMask)
		return;
	
	mpMask.parentNode.removeChild(mpMask.parentNode.lastChild);
}

function BR_CreateBrowser(title){
	BR_closeBrowser();
	BR_addMask();
	var d = BR_CreateNewTag("div", "mp");
	BR_addHeader(d, title);
	
	document.body.appendChild(d);
	return d;
}

function BR_resize(d, el_width){
	d.style.width = el_width + "px";
	//alert("mpContent.offsetWidth = " + el_width);
}

function BR_setPosition(d){
	var scrolXY = getScrollXY();
	var size = getClientSize();
	var w = d.offsetWidth;
	//var sw = document.body.offsetWidth;
	d.style.left = ((size[0] - w) / 2) + "px";
	
	var h = d.offsetHeight;
	var sh = document.documentElement.clientHeight;
	//window.pageYOffset
	d.style.top = (((size[1] - h) / 2)+scrolXY[1]) + "px";
}

function BR_addMask(){
	var m = BR_CreateNewTag("div", "mpMask");
	document.body.appendChild(m);	
	m.style.height = document.body.offsetHeight + "px";
}

function BR_addHeader(d, tile){
	var mpHeader = BR_CreateNewTag("div", "mpHeader");
	mpHeader.innerHTML = "<h3 title=" + tile + ">" + tile + "</h3><div class='mpCloseB'><a href='#1' onClick='BR_closeBrowser();'>X</a></div><div class='mpClose'><a href='#1' onClick='BR_closeBrowser();'>x</a></div>";
	d.appendChild(mpHeader);
}

function BR_CreateNewTag(tagName, id, className){
	var tag = document.createElement(tagName);
	var newAttr = document.createAttribute("id");
    newAttr.nodeValue = id;
    tag.setAttributeNode(newAttr);
    if (className != undefined){
    	newAttr = document.createAttribute("class");
    	newAttr.nodeValue = className;
    	tag.setAttributeNode(newAttr);
    }
    return tag;
}


/* ----------------------------------------------------------------------
	HELPER
---------------------------------------------------------------------- */
function getClientSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [myWidth, myHeight]
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}


/* ----------------------------------------------------------------------
	ADD EVENT
---------------------------------------------------------------------- */
function addEvent(obj, type, fn){
  if (obj.addEventListener)
    obj.addEventListener(type, fn, false);
  else if (obj.attachEvent){
    obj["e"+type+fn] = fn;
    obj[type+fn] = function(){obj["e"+type+fn](window.event);}
    obj.attachEvent("on"+type, obj[type+fn]);
	}
}

addEvent(window, "load", addMediaPopup);

