/* BEGIN: flash_detect.js */
/*
Copyright (c) Copyright (c) 2007, Carl S. Yestrau All rights reserved.
Code licensed under the BSD License: http://www.featureblend.com/license.txt
Version: 1.0.3
*/

var FlashDetect = new function(){
	var self = this;
	self.installed = false;
	self.raw = "";
	self.major = -1;
	self.minor = -1;
	self.revision = -1;
	self.revisionStr = "";
	var activeXDetectRules = [
		{
			"name":"ShockwaveFlash.ShockwaveFlash.7",
			"version":function(obj){
				return getActiveXVersion(obj);
			}
		},
		{
			"name":"ShockwaveFlash.ShockwaveFlash.6",
			"version":function(obj){
				var version = "6,0,21";
				try{
					obj.AllowScriptAccess = "always";
					version = getActiveXVersion(obj);
				}catch(err){}
				return version;
			}
		},
		{
			"name":"ShockwaveFlash.ShockwaveFlash",
			"version":function(obj){
				return getActiveXVersion(obj);
			}
		}
	];
	var getActiveXVersion = function(activeXObj){
		var version = -1;
		try{
			version = activeXObj.GetVariable("$version");
		}catch(err){}
		return version;
	};
	var getActiveXObject = function(name){
		var obj = -1;
		try{
			obj = new ActiveXObject(name);
		}catch(err){}
		return obj;
	};
	var parseActiveXVersion = function(str){
		var versionArray = str.split(",");//replace with regex
		return {
			"raw":str,
			"major":parseInt(versionArray[0].split(" ")[1], 10),
			"minor":parseInt(versionArray[1], 10),
			"revision":parseInt(versionArray[2], 10),
			"revisionStr":versionArray[2]
		};
	};
	var parseStandardVersion = function(str){
		var descParts = str.split(/ +/);
		var majorMinor = descParts[2].split(/\./);
		var revisionStr = descParts[3];
		return {
			"raw":str,
			"major":parseInt(majorMinor[0], 10),
			"minor":parseInt(majorMinor[1], 10), 
			"revisionStr":revisionStr,
			"revision":parseRevisionStrToInt(revisionStr)
		};
	};
	var parseRevisionStrToInt = function(str){
		return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision;
	};
	self.majorAtLeast = function(version){
		return self.major >= version;
	};
	self.FlashDetect = function(){
		if(navigator.plugins && navigator.plugins.length>0){
			var type = 'application/x-shockwave-flash';
			var mimeTypes = navigator.mimeTypes;
			if(mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description){
				var version = mimeTypes[type].enabledPlugin.description;
				var versionObj = parseStandardVersion(version);
				self.raw = versionObj.raw;
				self.major = versionObj.major;
				self.minor = versionObj.minor; 
				self.revisionStr = versionObj.revisionStr;
				self.revision = versionObj.revision;
				self.installed = true;
			}
		}else if(navigator.appVersion.indexOf("Mac")==-1 && window.execScript){
			var version = -1;
			for(var i=0; i<activeXDetectRules.length && version==-1; i++){
				var obj = getActiveXObject(activeXDetectRules[i].name);
				if(typeof obj == "object"){
					self.installed = true;
					version = activeXDetectRules[i].version(obj);
					if(version!=-1){
						var versionObj = parseActiveXVersion(version);
						self.raw = versionObj.raw;
						self.major = versionObj.major;
						self.minor = versionObj.minor; 
						self.revision = versionObj.revision;
						self.revisionStr = versionObj.revisionStr;
					}
				}
			}
		}
	}();
};
FlashDetect.release = "1.0.3";
/* END: flash_detect.js */ 
/* BEGIN: flash_tml.js */

/*
Copyright (c) Copyright (c) 2007, Carl S. Yestrau All rights reserved.
Code licensed under the BSD License: http://www.featureblend.com/license.txt
Version: 1.0.2
*/

function FlashTML(minVersion, source, width, height){
	var self = this; 
	var baseElement = document.createElement("div");
	var options = arguments[4] || {};
	var winIE = ((navigator.appVersion.toLowerCase().indexOf("win")!=-1) && (navigator.appName=="Microsoft Internet Explorer"));
	var idCount = FlashTML.idCount++;
	var namespaceAdded = false;
	var namespaceName = "flashtml";
	var namespaceURN = "http://www.featureblend.com/2007/flashtml/";
	self.domTemplate = "";
	self.innerHTML = "";
	self.xhtml = "";
	self.inDocumentElement = "";
	var getCabVersion = function(minVersion){
		return minVersion + ",0,0,0";//B+
	};
	var getNameValueAttrFromOptions = function(name){
		return (typeof options[name] != "undefined")?getNameValueAttributes(name, options[name].toString()):"";
	};
	var getNameValueAttributes = function(name, value){
		return {
			"@name":name,
			"@value":value
		};
	};
	var createElementFromRule = function(name, target){
		var newElement = safeCreateElement(name.replace("#",""));
		return target.appendChild(newElement);
	};
	var getID = function(){
		return options.id || FlashTML.idPattern + idCount;
	};
	var setAttributeFromRule = function(name, value, target){
		target.setAttribute(name.replace("@",""), value);
	};
	var safeCreateElement = function(name){
		if((name=="object" || name=="param") && document.namespaces){
			if(!namespaceAdded){
				document.namespaces.add(namespaceName, namespaceURN);
				namespaceAdded = true;
			}
			return document.createElement(namespaceName + ":" + name);
		}else{
			return document.createElement(name);
		}
	};
	var htmlTidy = function(str){
		str = str.replace(/<\?xml([^>]*)>/, "");
		str = str.replace(eval("/"+namespaceName+":/g"),"");
		str = str.replace(/><\/param>/g,">");
		str = str.replace(/(<param )(.*?)(>)/g, "<param $2 \/>");
		return str;
	};
	var parseRules = function(position, target){
		for(var i in position){
			if(i.charAt(0)=="#"){
				var appendedElement;
				if(typeof position[i] == "object" && position[i].length){
					for(var j=0; j<position[i].length; j++){
						if(position[i][j]()!==""){
							appendedElement = createElementFromRule(i, target);
							parseRules(position[i][j](), appendedElement);
						}
					}
				}else if(typeof position[i]=="function" && position[i]()!==""){
					appendedElement = createElementFromRule(i, target);
					parseRules(position[i](), appendedElement);
				}
			}else if(i.charAt(0)=="@"){
				if(typeof position[i]=="function" && position[i]()!==""){
					setAttributeFromRule(i, position[i](), target);
				}else if(typeof position[i] == "string"){
					setAttributeFromRule(i, position[i], target);
				}
			}
		}
	};
	var structuralRules = {
	    "#object":function(){
	    	return {
	    		"@type":function(){
	    			return (!winIE)?"application/x-shockwave-flash":"";
	    		},
		    	"@codebase":function(){
		    		return (winIE)?"http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab#version="+getCabVersion(minVersion):"";
		    	},
		    	"@classid":function(){
		    		return (winIE)?"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000":"";
		    	},
		    	"@data":function(){
		    		return (!winIE)?source:"";
		    	},
		    	"@width":function(){
		    		return width.toString();
		    	},
		    	"@height":function(){
		    		return height.toString();
		    	},
		    	"@id":function(){
		    		return getID();
		    	},
				"@tabindex":function(){
					return options.tabindex || "";
				},
		    	"#param":[
		    		function(){
		    			return (winIE)?getNameValueAttributes("movie", source):"";
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("allowfullscreen");
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("allowscriptaccess");
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("allownetworking");
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("swliveconnect");
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("play");
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("loop"); 
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("menu"); 
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("quality"); 
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("scale"); 
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("align"); 
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("salign"); 
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("wmode"); 
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("bgcolor");
		    		},
		    		function(){
		    			return getNameValueAttrFromOptions("base");
		    		},
		    		function(){
		    			var result = "";
		    			if(options.flashvars){
		    				var flashVarsStr = (typeof options.flashvars == "object")?FlashTML.getQueryStrFromObj(options.flashvars):options.flashvars;
		    				result = getNameValueAttributes("flashvars", flashVarsStr);
		    			}
		    			return result;
		    		}
		    	]
	    	};
	    }
	};
	self.append = function(target){
		return addToElement(target, false);
	};
	self.replace = function(target){
		return addToElement(target, true);
	};
	var addToElement = function(target, replace){
		var result = false;
		var targetObj = (typeof target=="object")?target:document.getElementById(target);
		if(!self.inDocumentElement){
			if(winIE){
				if(replace){
					targetObj.innerHTML = self.xhtml;
				}else{
					targetObj.innerHTML += self.xhtml;
				}
				self.inDocumentElement = document.getElementById(getID());
				window.attachEvent("onunload", self.garbageCollection);
			}else{
				if(replace){
					while (targetObj.firstChild) {
					  targetObj.removeChild(targetObj.firstChild);
					}					
				}
				self.inDocumentElement = targetObj.appendChild(baseElement.childNodes[0]);
			}
			result = self.inDocumentElement;
		}
		return result;
	};
	self.garbageCollection = function(){
		if(winIE && self.inDocumentElement){
			self.inDocumentElement = null;
		}
	};
	self.FlashTML = function(){
		parseRules(structuralRules, baseElement);
		self.domTemplate = baseElement.childNodes[0];
		self.innerHTML = baseElement.innerHTML;
		self.xhtml = htmlTidy(self.innerHTML);
	}();
}
FlashTML.getQueryStrFromObj = function(nameValue){
	var str = "";
	for(var i in nameValue){
		if(nameValue.hasOwnProperty(i)){
			str += (encodeURI(i) + "=" + encodeURI(nameValue[i]) + "&");
		}
	}
	return str.substring(0, str.length-1);
};
FlashTML.idCount = 0;
FlashTML.idPattern = "__FlashTML_";
FlashTML.release = "1.0.2";
/* END: flash_tml.js */


function getObj(name) {
	if (document.getElementById) {
		this.obj = document.getElementById(name);
		this.style = document.getElementById(name).style;
	} else if (document.all) {
		this.obj = document.all[name];
		this.style = document.all[name].style;
	} else if (document.layers) {
		if (document.layers[name]) {
			this.obj = document.layers[name];
			this.style = document.layers[name];
		} else {
			this.obj = document.layers.testP.layers[name];
			this.style = document.layers.testP.layers[name];
		}
	}
}

function Switch (id) {
	var hrefs = id.href.split ('#');
	var elem = new getObj(hrefs[1]);
	if (elem.style.display=="none") {
		elem.style.display = "block";
	} else {
		elem.style.display = "none";
	}
	return false;
}

function switchMPSections(show){
    
    var showLink = new getObj('mpShowLink')
    var hideLink = new getObj('mpHideLink')
    var showPara = new getObj('mpSectionShow')
    var hidePara = new getObj('mpSectionHide')
    hideLink.href = "#"
    showLink.href = "#"

    if (!show) {
        hidePara.style.display = 'none'
        showPara.style.display = 'block'
    } else {
        showPara.style.display = 'none'
        hidePara.style.display = 'block'
    }
    
    var rubriky = new getObj('mpSections');
    var children = rubriky.obj.childNodes;    
    for(var i = 0;  i < children.length; i++){	
        if(children[i].tagName == 'UL') {
            var liNodes = children[i].childNodes;
            for(var j = 0; j < liNodes.length; j++){
                if(liNodes[j].tagName == 'LI') {
                    if (show) {
                        if(liNodes[j].style.display == 'none'){
                            liNodes[j].style.display = 'block';
                            liNodes[j].canHide = true;
                        }
                    } else {
                        if(liNodes[j].canHide){
                            liNodes[j].style.display = 'none';
                            liNodes[j].canHide = false;
                        }
                        
                    }
                }
            }
        }
    }
    return false;
}

// tyka se playeru na hlavni strance

function changePlayerColor(obj, typ){
    var src;
    // FIXME - absolutni cesta
    switch(typ){
    case 1:
	src = presentationPathPrefix + '/assets/imgs/player-small-hover.png';
	break;
    case 0:
	src = presentationPathPrefix + '/assets/imgs/player-small.png';
	break;
    }
    obj.src = src;
}

function installMiniPlayer(obj, sound_uri, bitrate, seconds){
    if(FlashDetect.major < 5){
	return true;
    }
    
    var parentNode = obj.parentNode.parentNode;
    var childNodes = parentNode.childNodes;
    var titulek = '';
    for(var i = 0; i < childNodes.length; i++){
	if(childNodes[i].className == 'play-title'){
	    titulek = childNodes[i].textContent;
	}
	else{
	    parentNode.removeChild(childNodes[i]);
	}
    }
    
    // FIXME - absolutni cesta    
    var player = presentationPathPrefix + '/assets/swf/miniplayer.swf';
    var parameters = '?track=' + sound_uri + '&amp;bitrate='+ bitrate + '&amp;mp3length=' + seconds + '&amp;autoplay=yes';
    // alert('Parametry jsou ' + parameters);
    // var flashtmlObj = new FlashTML("7", player + parameters, "75", "15");

    var player_code = '<span class="swf"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="75" height="15">' +
	'<param name="allowScriptAccess" value="sameDomain" />' +
	'<param name="allowFullScreen" value="false" />' + 
	'<param name="movie" value="' + player + parameters + '" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />' + 
	'<embed src="' + player + parameters + '" quality="high" bgcolor="#ffffff" width="75" height="15" name="miniplayer 080105"  allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' +
	'</object></span>';
    
    parentNode.innerHTML = parentNode.innerHTML + player_code;
    
    // aby se nespoustelo stahovani linku
    return false;
}

