function wipe(component, toWipe, duration) {
var node = document.getElementById(toWipe);
if (node) {
if (component.className.indexOf('wiper-open') != -1) {
dojo.lfx.html.wipeOut(node.id, duration, null, function(){node.style.height='auto';}).play();
component.className = component.className.replace('wiper-open', 'wiper-closed');
} else { 
dojo.lfx.html.wipeIn(node.id, duration, null, function(){node.style.height='auto';}).play();
component.className = component.className.replace('wiper-closed', 'wiper-open');
}
}
}
function calcRemaining(allowed,threshold,textarea,warningSpan,pluralText,singularText) {
if (!warningSpan) return;
var remaining = allowed - textarea.value.length;
if (remaining <= threshold) {
warningSpan.innerHTML = remaining + " " + ((remaining == 1 || remaining == -1) ? singularText : pluralText);
warningSpan.style.display = 'inline';
} else {
warningSpan.style.display = 'none';
}
}
function getWarningSpan(node) {
var warningSpan = node.nextSibling;
while (warningSpan && (warningSpan.nodeType != 1 || !warningSpan.className || warningSpan.className.indexOf('remainingCharacters') < 0)) {
warningSpan = warningSpan.nextSibling;
}
if (!warningSpan && node.parentNode) {
return getWarningSpan(node.parentNode);
}
return warningSpan;
}
function moveImgWipe() {
var source = document.getElementById("moved-img-wipe");
if (source) {
source.parentNode.removeChild(source);
var target = document.getElementById("content-positioned-div");
target.appendChild(source);
target.style.top = (document.getElementsByName("pic")[0].clientHeight + 35 + 165)+"px";
}
}
function addUserIdToField(choice, fieldId) {
var field = document.getElementById(fieldId); 
var userId = choice.options[choice.selectedIndex].value; 
var str = field.value.replace(/^\s+/, '').replace (/\s+$/, '');;
if (str.length > 0 && str.charAt(str.length-1) != ',') {
userId = ', ' + userId;
}
field.value += userId; 
}

function trackLinkClickPageview(evt){
_trackLinkClick(evt, function(link){_gaq.push(['_trackPageview', '/outgoing/'+link])});
}
function trackLinkClickEvent(evt) {
_trackLinkClick(evt, function(link){trackEvent("outgoing", link)})
}
function trackLinkClickDebug(evt) {
_trackLinkClick(evt, function(link){console.debug("tracking: "+link)})
}
function _trackLinkClick(e, tracker) {
var link;
var label;
if (!e) var e = window.event;
if (e.target) link = e.target;
else if (e.srcElement) link = e.srcElement;
if (link.nodeType == 3)  link = link.parentNode;
while (link && link.nodeName != 'A') {
 if (link.className && link.className.indexOf("trackLabel") > -1) {
label = link.innerHTML;
}
link = link.parentNode;
}
if(!link || link.href.indexOf(location.host) > -1 || link.href.indexOf('javascript:') > -1) return
if (link.className && link.className.indexOf("trackLabel") > -1) {
label = link.innerHTML;
}
var toTrack = link.href.replace(/http:\/\//g, "").replace(/\/$/g, "");
if (toTrack.indexOf('/') < 0) {
 toTrack = toTrack + '/'
}
if (label) {
toTrack = toTrack + (toTrack.indexOf('?') > 0 ? '&' : '?') + "trackLabel=" + encodeURIComponent(label);
}
try{
tracker(toTrack);
} catch(err){
if (window.console) window.console.debug("error: " + err)
}
}
function buildCustomPath(path, params) {
if (!params && !path) return;
var cp = !path ? window.location.pathname : path;
var search = window.location.search;
if (search) cp = cp + search;
if (params) cp = cp + (search ? '&' : '?') + params;

return cp;
}
function createTransaction(orderId, storeName, priceTotal, tax, shipping, city, state, country) {
_gaq.push(['_addTrans',
orderId, 
storeName,
priceTotal, 
tax, 
shipping, 
city, 
state,
country 
]);
}
function addItem(orderId, asin, productName, category, unitPrice, quantity) {
_gaq.push(['_addItem',
orderId,  asin,  productName,  category,  unitPrice,  quantity  ]);
}
function submitTransaction() {
_gaq.push(['_trackTrans']);
}
function trackEvent(category, action, label, value) {
_gaq.push(['_trackEvent', category, action, label, value]);
}

function search(query) {
var f = document.forms['searchBox']
if (f) {
if (f.elements['q']) {
f.elements['q'].value = query
} else if (f.elements['query']) {
f.elements['query'].value = query
} else {
f.elements[0].value = query
}
f.submit();
return null;
} else return query
}

var szm_mccookie = "szm_mc";
var szm_prefix='http://mclient2.ivwbox.de/cgi-bin/ivw/CP/';
var szm_prefixssl='https://mclientssl2.ivwbox.de/cgi-bin/ivw/CP/';
function szm_client(szm_site, szm_hcode, szm_isssl) {
if (szm_getcookie() != szm_hcode)
{ szm_getmclient(szm_site,szm_isssl,szm_hcode); szm_setcookie(szm_hcode);
}
}
function szm_clear() {
szm_setcookie("spring.de");
}
function szm_getcookie() {
var split = new Array();
split = document.cookie.split(";");
for(var i=0; i<split.length;i++) {
if(split[i].match(".*"+szm_mccookie+".*")) {
return (split[i].split("="))[1];
}
} return "";
}
function szm_getmclient(szm_site,szm_isssl,szm_hcode) {
var img = new Image();
if(szm_isssl) img.src = szm_prefixssl+szm_site+'/'+szm_hcode;
else img.src = szm_prefix+szm_site+'/'+szm_hcode;
}
function szm_setcookie(code) {
document.cookie = szm_mccookie+"="+code;
}


if (typeof(YouTubeSearch) == "undefined")
YouTubeSearch = { };
YouTubeSearch.init = function() {
this.init = function(){}
youTubePlayer = document.createElement("div");
document.getElementsByTagName('body')[0].appendChild(youTubePlayer)
html = []
html.push('<div id="youTubePlayer" style="display: none">')
html.push('<div class="youTubePlayerHeader"><a class="youTubePlayerClose" href="javascript:YouTubeSearch.close()" title=""><span><wicket:message key="closeVideo">Close</wicket:message></span></a></div>');
if (YouTubeSearch.childHtml) {
html.push(YouTubeSearch.childHtml);
}
html.push('<div class="youTubePlayerObject" id="youTubePlayerContainer"></div>')
html.push('</div>')
youTubePlayer.innerHTML=html.join('');
}
YouTubeSearch.search = function(artist, title, results, startPlaying) {
this.init();
document.getElementById('youTubePlayer').style.display="none";
if (this.indicator) {
document.getElementById(this.indicator).style.display = "block"; 
}
var query = (title) ? encodeURIComponent(artist) + " " + encodeURIComponent(title) : encodeURIComponent(artist);
var callback = (startPlaying == true) ? "_displayPlay" : "_displayWait";
var url = "http://gdata.youtube.com/feeds/api/videos?v=2&q="+query+"&alt=json-in-script&callback=YouTubeSearch."+callback+"&max-results="+results+"&format=5";
if (this.youTubeScript) {
this._jsonUnload(this.youTubeScript);
}
this.youTubeScript = this._jsonLoad(url);
this.currentQuery = query;
}
YouTubeSearch._jsonLoad = function(url, callback) {
var script = document.createElement("script")
script.setAttribute("type", "text/javascript")
script.setAttribute("src", url)
script.setAttribute("charset", "utf-8")
document.getElementsByTagName('head')[0].appendChild(script);
if (callback) {
if (script.addEventListener) {
 script.addEventListener("load", callback, false)
} else if (document.all && !window.opera) {
 script.onreadystatechange=function(){
if (script.readyState == "loaded" || script.readyState == "complete") {
callback()
script.onReadyStateChange = null
}
}
}
}
return script;
}
YouTubeSearch._jsonUnload = function(script) {
document.getElementsByTagName('head')[0].removeChild(script);
}
YouTubeSearch.play = function(playerUrl, startPlaying) {
var id = "youTubePlayerObject";
if (!document.getElementById(id)) {
var c = document.createElement("div");
c.setAttribute("id", id);
document.getElementById("youTubePlayerContainer").appendChild(c);
}
var att = {
data:playerUrl + '&rel=0&border=0&fs=1&showsearch=0&enablejsapi=1&autoplay=' + (startPlaying?1:0),
width:"405",
height:"245"
}
var par = {allowfullscreen: 'true', allowscriptaccess: 'always'}
document.getElementById('youTubePlayer').style.display="block"
player = swfobject.createSWF(att, par, id)
}
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("youTubePlayerObject");
ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}
function onytplayerStateChange(newState) {
switch(newState) {
case 0: if (YouTubeSearch.onVideoEnded) YouTubeSearch.onVideoEnded(); break;
case 1: if (YouTubeSearch.onVideoPlaying) YouTubeSearch.onVideoPlaying(); break;
case 2: if (YouTubeSearch.onVideoPause) YouTubeSearch.onVideoPause(); break;
case 3: if (YouTubeSearch.onVideoBuffering) YouTubeSearch.onVideoBuffering(); break;
case 5: if (YouTubeSearch.onVideoCued) YouTubeSearch.onVideoCued(); break;
}
}
YouTubeSearch._displayPlay=function(data) {
this._display(data, true);
}
YouTubeSearch._displayWait=function(data) {
this._display(data, false);
}
YouTubeSearch._display=function(data, startPlaying) {
var feed = data.feed;
this.entries = feed.entry || [];
var html = ['<ul class="videos">'];
for (var i = 0; i < this.entries.length; i++) {
var entry = this.entries[i];
var title = entry.title.$t;
var thumbnailUrl = entry.media$group.media$thumbnail[0].url;
var playerUrl = entry.media$group.media$content[0].url;
html.push('<li><a href="javascript:YouTubeSearch.play(\'', playerUrl, '\', true)" title="', title,
'"><img src="',
thumbnailUrl, '" width="130" height="97"/><span class="title"><strong>', title, '</strong></span></a></li>');
}
html.push('</ul><div class="youTubeBranding"><a href="http://www.youtube.com/" target="_blank"><img src="http://code.google.com/apis/youtube/images/badge3.gif" /></a></div>')
document.getElementById('youTubeResults').innerHTML = html.join('');
if (this.entries.length > 0 && startPlaying) {
this.play(this.entries[0].media$group.media$content[0].url, true);
}
if (this.onLoad) {
this.onLoad();
}
if (this.indicator) {
document.getElementById(this.indicator).style.display = "none"; 
}
}
YouTubeSearch.close = function() {
swfobject.removeSWF('youTubePlayerObject');
document.getElementById('youTubePlayer').style.display="none";
 }
YouTubeSearch.setPlaylist = function(playList, startPlaying) {
this._playList = playList
if (startPlaying) this.playIndex(0)
}
YouTubeSearch.playIndex = function(index, lang) {
if (this._playList && this._playList['length'] && this._playList.length > index) {
this.defaultSearch(this._playList[index]['artist'], this._playList[index]['song'], 1, true, lang)
YouTubeSearch.onVideoEnded = function(){YouTubeSearch.playIndex(index + 1, lang)};
}
}
YouTubeSearch.defaultSearch = YouTubeSearch.search

var script = undefined;
function write() {
if (!song) alert("no song");
document.getElementById('lyrics').innerHTML = song.lyrics ? song.lyrics.replace(/\n/g, "<br />") : "";
document.getElementById('lyrics').style.display = 'block';
if (song.url)
document.getElementById('lyricsSourceLink').innerHTML = song.url;
else
document.getElementById('lyricsSourceLink').parentNode.style.display = 'none';
document.getElementById('lyricsSource').style.display = 'block';
document.getElementById('lyricsIndicator').style.display = 'none';
}
function loadJavaScript(url, callback) {
var head = document.getElementsByTagName('head')[0]
if (script) {
script.onReadyStateChange = null
head.removeChild(script)
}
script = document.createElement("script")
script.setAttribute("type", "text/javascript")
script.setAttribute("src", url)
script.setAttribute("charset", "utf-8")
head.appendChild(script)
if (script.addEventListener) {
 script.addEventListener("load", callback, false)
} else if (document.all && !window.opera) {
 script.onreadystatechange=function(){
if (script.readyState == "loaded" || script.readyState == "complete") {
callback()
script.onReadyStateChange = null
}
}
}
}
function getSong(artistName, songName) {
var url = getEscapedURL(artistName, songName);
document.getElementById('lyrics').style.display = 'none';
document.getElementById('lyricsSource').style.display = 'none';
document.getElementById('lyricsIndicatorLink').innerHTML = url;
document.getElementById('lyricsSourceLink').innerHTML = url;
document.getElementById('lyricsIndicator').style.display = 'block';
loadJavaScript(url, write);
}
function getSong(artistName, songName, id) {
var url = getEscapedURL2(artistName, songName, id);
var url2 = getEscapedURL(artistName, songName);
document.getElementById('lyrics').style.display = 'none';
document.getElementById('lyricsSource').style.display = 'none';
document.getElementById('lyricsIndicatorLink').innerHTML = url2;
document.getElementById('lyricsSourceLink').innerHTML = url2;
document.getElementById('lyricsIndicator').style.display = 'block';
loadJavaScript(url, write);
}
function getSongByLyrics(url, shortUrl, artistName, songName, id) {
var loadUrl = getEscapedURL3(artistName, songName, id); 
document.getElementById('lyrics').style.display = 'none';
document.getElementById('lyricsSource').style.display = 'none';
document.getElementById('lyricsIndicatorLink').innerHTML = url;
document.getElementById('lyricsSourceLink').innerHTML = shortUrl;
document.getElementById('lyricsSourceLink').setAttribute('title', url);
document.getElementById('lyricsIndicator').style.display = 'block';
loadJavaScript(loadUrl, write);
}
function getEscapedURL(artistName, songName) {
artistName = escape(artistName.replace(/ /g, "_"));
songName = escape(songName.replace(/ /g, "_"));
return "http://lyrics.wikia.com/lyrics/" + artistName + ":" + songName
}
function getEscapedURL2(artistName, songName, id) {
artistName = escape(artistName.replace(/ /g, "_"));
songName = escape(songName.replace(/ /g, "_"));
return "http://www.songtexte.com/api?artist=" + artistName + "&song=" + songName + "&id=" + id + "&fmt=json"
}
function getEscapedURL3(artistName, songName, id) {
artistName = escape(artistName.replace(/ /g, "_"));
songName = escape(songName.replace(/ /g, "_"));
return "http://www.songtexte.com/api?artist=" + artistName + "&song=" + songName + "&lid=" + id + "&fmt=json"
}
