// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

// FAQ-toggle
function toggleDown(childElement, mainElementClass, selectedClass, unselectedClass, toggleLink) { 
  var pElements = document.getElementsByClassName(selectedClass);
  for (var i = 0, j = pElements.length; i < j; i++) {
    pElements[i].setAttribute((document.all ? 'className' : 'class'), unselectedClass);
   }  
  
  var liElements = document.getElementsByClassName(mainElementClass);
  for (var i = 0, j = liElements.length; i < j; i++) {
   liElements[i].setAttribute((document.all ? 'className' : 'class'), unselectedClass);
  }  
  
  var toggleLink = document.getElementById(toggleLink); 
  toggleLink.setAttribute((document.all ? 'className' : 'class'), 'nav-selected');
  
  var element = document.getElementById(childElement); 
  element.setAttribute((document.all ? 'className' : 'class'), selectedClass);
}

function simpleBlind(element, linkid, state, unselectedClass, selectedClass) {
  var link = document.getElementById(linkid); 
  var classelement = document.getElementById(element); 
  if (state == 'down') {
    Effect.BlindDown(element, {duration:0.2});
    link.setAttribute((document.all ? 'className' : 'class'), selectedClass);
    link.onclick = new Function("simpleBlind('"+element+"','"+linkid+"', 'up','"+unselectedClass+"', '"+selectedClass+"', {duration:0.2})");
  } else {
    Effect.BlindUp(element, {duration:0.2});
    link.setAttribute((document.all ? 'className' : 'class'), unselectedClass);
    classelement.setAttribute((document.all ? 'className' : 'class'), unselectedClass);
    link.onclick = new Function("simpleBlind('"+element+"','"+linkid+"', 'down','"+unselectedClass+"', '"+selectedClass+"', {duration:0.2})");
  }
}


function replaceOneChar(s,c,n){
  (s = s.split(''))[--n] = c;
  return s.join('');
}

// For asset open/close-link

function setElementValue(element, elementToSet) {
  var element = document.getElementById(element);
  var elementToSet = document.getElementById(elementToSet);
  elementToSet.value = element.onclick;
  element.onclick = "";
}

function setParentElement(element,value,id,state) {
  var valueElement = document.getElementById(value);
  value = valueElement.value;
  value = value.replace(/\n/g, ' ');
  value = value.replace(/\r/g, ' ');
  value = value.replace(/\s+|\s+$/g, ' ') 

  value = value.replace("function onclick(event) {", "displayElement('"+id+"');");
  value = value.replace("function anonymous() {", "displayElement('"+id+"');");
  value = value.replace("; return false; }", "");
  value = value.replace("throw e; } }", "throw e; }")
  value = value.replace("throw e } }", "throw e }")
  element = document.getElementById(element);
  element.onclick = new Function(value);
//	document.getElementById("mp3Container-"+id).innerHTML = '<div id="mp3-45">WÄRZ</div><div class="closeLink" id="mp3CloseLink-45"></div>'
	container = document.getElementById("mp3Container-"+id)
  container.style.display = "none";
}

function displayElement(id) {
	container = document.getElementById("mp3Container-"+id)
  container.style.display = "block";
}

//QT-object
/*
 * QTMp3Object embed
 * http://blog.deconcept.com/2005/01/26/web-standards-compliant-javascript-quicktime-detect-and-embed/
 *
 * by Geoff Stearns (geoff@deconcept.com, http://www.deconcept.com/)
 *
 * v1.0.2 - 02-16-2005
 *
 * Embeds a quicktime movie to the page, includes plugin detection
 *
 * Usage:
 *
 *	myQTMp3Object = new QTMp3Object("path/to/mov.mov", "movid", "width", "height");
 *	myQTMp3Object.altTxt = "Upgrade your Quicktime Player!";    // optional
 
 *  myQTMp3Object.addParam("controller", "false");              // optional
 *	myQTMp3Object.write();
 *
 */

QTMp3Object = function(mov, id, w, h) {
	this.mov = mov;
	this.id = id;
	this.width = w;
	this.height = h;
	this.redirect = "";
	this.sq = document.location.search.split("?")[1] || "";
	this.altTxt = "This content requires the <a href='http://www.apple.com/quicktime/download/'>QuickTime Player</a>.";
	this.bypassTxt = "<p style='margin: 5px 0 5px 0'>Already have QuickTime Player? <a href='?detectqt=false&"+ this.sq +"'><br>Click here to bypass the detection.</a></p>";
	this.params = new Object();
	this.doDetect = getQueryParamValue('detectqt');
}

QTMp3Object.prototype.addParam = function(name, value) {
	this.params[name] = value;
}

QTMp3Object.prototype.getParams = function() {
    return this.params;
}

QTMp3Object.prototype.getParam = function(name) {
    return this.params[name];
}

QTMp3Object.prototype.getParamTags = function() {
    var paramTags = "";
    for (var param in this.getParams()) {
        paramTags += '<param name="' + param + '" value="' + this.getParam(param) + '" />';
    }
    if (paramTags == "") {
        paramTags = null;
    }
    return paramTags;
}

QTMp3Object.prototype.getHTML = function() {
    var qtHTML = "";
//	if (navigator.plugins && navigator.plugins.length) { // not ie
        qtHTML += '<embed type="video/quicktime" src="' + this.mov + '" width="' + this.width + '" height="' + this.height + '" id="' + this.id + '"';
        for (var param in this.getParams()) {
            qtHTML += ' ' + param + '="' + this.getParam(param) + '"';
        }
        qtHTML += '></embed>';
/*    }
    else { // pc ie
        qtHTML += '<object style="border: 1px solid; height: 200px; float: left;" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="' + this.width + '" height="' + this.height + '" id="' + this.id + '">';
        this.addParam("src", this.mov);
        if (this.getParamTags() != null) {
            qtHTML += this.getParamTags();
        }
        qtHTML += '</object>';
    }
    */
    return qtHTML;
}


QTMp3Object.prototype.getVariablePairs = function() {
    var variablePairs = new Array();
    for (var name in this.getVariables()) {
        variablePairs.push(name + "=" + escape(this.getVariable(name)));
    }
    if (variablePairs.length > 0) {
        return variablePairs.join("&");
    }
    else {
        return null;
    }
}

QTMp3Object.prototype.write = function(elementId) {
	if(isQTInstalled() || this.doDetect=='false') {
		if (elementId) {
			document.getElementById(elementId).innerHTML = this.getHTML();
		} else {
      mp3 = document.getElementById('currentMp3');
      mp3.innerHTML = (this.getHTML());
//			document.write(this.getHTML());
		}
	} else {
		if (this.redirect != "") {
        mp3 = document.getElementById('currentMp3');
			  mp3.innerHTML = (this.altTxt +""+ this.bypassTxt)
// 			document.location.replace(this.redirect);
		} else {
			if (elementId) {
			  mp3 = document.getElementById('currentMp3');
			  mp3.innerHTML = (this.altTxt +""+ this.bypassTxt)
//			document.getElementById(elementId).innerHTML = this.altTxt +""+ this.bypassTxt;
			} else {
			  mp3 = document.getElementById('currentMp3');
			  mp3.innerHTML = (this.altTxt +""+ this.bypassTxt)
//			document.write(this.altTxt +""+ this.bypassTxt);
			}
		}
	}		
}

function isQTInstalled() {
	var qtInstalled = false;
	qtObj = false;
	if (navigator.plugins && navigator.plugins.length) {
		for (var i=0; i < navigator.plugins.length; i++ ) {
         var plugin = navigator.plugins[i];
         if (plugin.name.indexOf("QuickTime") > -1) {
			qtInstalled = true;
         }
      }
	} else {
		execScript('on error resume next: qtObj = IsObject(CreateObject("QuickTimeCheckObject.QuickTimeCheck.1"))','VBScript');
		qtInstalled = qtObj;
	}
	return qtInstalled;
}

/* get value of querystring param */
function getQueryParamValue(param) {
	var q = document.location.search;
	var detectIndex = q.indexOf(param);
	var endIndex = (q.indexOf("&", detectIndex) != -1) ? q.indexOf("&", detectIndex) : q.length;
	if(q.length > 1 && detectIndex != -1) {
		return q.substring(q.indexOf("=", detectIndex)+1, endIndex);
	} else {
		return "";
	}
}



/*
JSTarget function by Roger Johansson, www.456bereastreet.com
*/
var JSTarget = {
	init: function(att,val,warning) {
		if (document.getElementById && document.createElement && document.appendChild) {
			var strAtt = ((typeof att == 'undefined') || (att == null)) ? 'class' : att;
			var strVal = ((typeof val == 'undefined') || (val == null)) ? 'non-html' : val;
			var strWarning = ((typeof warning == 'undefined') || (warning == null)) ? '' : warning;
			var oWarning;
			var arrLinks = document.getElementsByTagName('a');
			var oLink;
			var oRegExp = new RegExp("(^|\\s)" + strVal + "(\\s|$)");
			for (var i = 0; i < arrLinks.length; i++) {
				oLink = arrLinks[i];
				if ((strAtt == 'class') && (oRegExp.test(oLink.className)) || (oRegExp.test(oLink.getAttribute(strAtt)))) {
					oWarning = document.createElement("em");
					oWarning.appendChild(document.createTextNode(strWarning));
					oLink.appendChild(oWarning);
					oLink.onclick = JSTarget.openWin;
				}
			}
			oWarning = null;
		}
	},
	openWin: function(e) {
		var event = (!e) ? window.event : e;
		if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return true;
		else {
		    var oWin = window.open(this.getAttribute('href'), '_blank');
			if (oWin) {
				if (oWin.focus) oWin.focus();
				return false;
			}
			oWin = null;
			return true;
		}
	},
	/*
	addEvent function from http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
	*/
	addEvent: function(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]);
		}
	}
};
JSTarget.addEvent(window, 'load', function(){JSTarget.init();});

//JSTarget.addEvent(window, 'load', function(){JSTarget.init("rel","external"," (external website, opens in a new window)");});