// deichkind | specials | functions.js

var DOM = (document.getElementById);

// custom functions

function toggleInfos(id,toggle_class,txt) {
	// id -> id of div to show / hide
	// id + "_toggle" -> name of toggle which controlls toggle-action
	// toggle_class -> basename of toggle class, eg.: toggleClass_on & toggleClass_off
	$('#' +id).slideToggle('slow', function() {
		if ((document.getElementById(id + "_toggle").getAttribute("class") == toggle_class + "_off") || (document.getElementById(id + "_toggle").getAttribute("className") == toggle_class + "_off")) {
			setClass(id + "_toggle", toggle_class + "_on");
			document.getElementById(id + "_toggle").innerHTML = txt + " AUS";
		} else {
			setClass(id + "_toggle", toggle_class + "_off");
			document.getElementById(id + "_toggle").innerHTML = txt + " AN";
		}
  	});
}

// ------------ audio + tracking  ------------ //

function getTrackname(id) {
	return document.getElementById(id).innerHTML;
}

function trackJWPlayer(section, modus, label) {
	_gaq.push(['_trackEvent', section, modus, label]);
	doLog(section + " | " + modus + " | " + label);
}

function playTrack(playerid,trackname,fileurl,nr) {
	// alert("playTrack(" + playerid + "," + trackname + "," + fileurl + "," + nr + ")");
	jwplayer("jwplayer_" + playerid).load( { file:fileurl } ).play();
	// active_track_count -> defined in music_content (around line 131)
	for (i = 1; i <= active_track_count; i++) {
		setClass("track" + i, "track_name_off");
	}
	setClass("track" + nr, "track_name_on");
	document.getElementById("trackname_" + playerid).innerHTML = trackname;
	trackJWPlayer("audio", "load", trackname);
}

/*
function playerStop(id) {
	var player = getFlashMovie(id);
	player.sendEvent("STOP","true");
}

function playerLoad(id,data) {
	// call with: playerLoad('videoplayer','http://www.youtube.com/watch?v=SkAPW7vEvbs');
	var player = getFlashMovie(id);
	player.sendEvent("LOAD",data);
	player.sendEvent("PLAY","true"); 
}
*/



// ------------ flash vs. js ------------ //

function fromFlash(txt) {
	alert(txt);
}

function getFlashMovie(movieName) {
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
}

function callToActionscript(flash, str) {
	// alert("callToActionscript: " + flash + ", " + str);
	getFlashMovie(flash).sendToActionscript(str);
}


// ------------ standard functions ------------ //

function winopen(url,name,style) { 
	// bsp: javascript:winopen('http://www.apple.com','apple_homepage','width=600,height=500,status=no,location=no,scrollbars=no,resizable=no');
	var newWin = window.open(url,name,style);
	newWin.focus();
}

function toggleDesc(id,style) {
	document.getElementById(id).style.display = style;
}

function showMore(id) {
	document.getElementById("show_more_toggle_" + id).style.display = "none";
	$("#show_more_content_" + id).slideDown('slow');
}

function toggle(id,toggle_class) {
	// id -> id of div to show / hide
	// id + "_toggle" -> name of toggle which controlls toggle-action
	// toggle_class -> basename of toggle class, eg.: toggleClass_on & toggleClass_off
	$('#' +id).slideToggle('slow', function() {
		if ((document.getElementById(id + "_toggle").getAttribute("class") == toggle_class + "_off") || (document.getElementById(id + "_toggle").getAttribute("className") == toggle_class + "_off")) {
			setClass(id + "_toggle", toggle_class + "_on");	
		} else {
			setClass(id + "_toggle", toggle_class + "_off");
		}
  	});
}

// thx 2 Robert Nyman, http://www.robertnyman.com, Code/licensing: http://code.google.com/p/getelementsbyclassname/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

function setClass(id, classname) { 
	// alert("node= " + id + " classname= " + classname);
	node = document.getElementById(id);
	if (node) {
		document.getElementById(id).setAttribute("class", classname); 
		document.getElementById(id).setAttribute("className", classname); // ie fix
	}
}

function kill(id) {
	element = document.getElementById(id);
 	if (element) {
  		var parent = element.parentNode;
  		if (parent) {
			parent.removeChild(element);
		}
 	}
 	return false;
}

// peace out
