var myVersion='2009-06-17';
var nDebug='';
var SID;
var isCD=false;
var pcFset='';
var aDeactivateOption = new Array(20);
var nProjectcnt=0;

var ua        = navigator.userAgent.toLowerCase(); 
var is_pc_ie  = ( (ua.indexOf('msie') != -1 ) && ( ua.indexOf('win') != -1 ) && ( ua.indexOf('opera') == -1 ) && ( ua.indexOf('webtv') == -1 ) );

/* Global ErrorHandler */
//window.onerror=customHandler;

/** Add Javascript src file to file */
function addJavascript(jsname,pos) {
	var th = document.getElementsByTagName(pos)[0];
	var s = document.createElement('script');
	s.setAttribute('type','text/javascript');
	s.setAttribute('src',jsname);
	th.appendChild(s);
	/** addJavascript('newExternal2.js','head');  */
}

function customHandler(desc,page,line,chr)  {
	iFrameInfo="Version of all.js:\n"+myVersion+"Iframes:\n";
	for(i=0;i<document.getElementsByTagName("IFRAME").length;i++) {
		oIFrame=document.getElementsByTagName("IFRAME")[i];
		iFrameInfo=iFrameInfo+oIFrame.name+" (ID="+oIFrame.id+"):"+oIFrame.src+"\n";
	}
	myPage=page;
	var myPos = page.indexOf("?");
	if(myPos > 0) myPage=page.slice(0,myPos);
	var url = DOWNSERVER+"/error/errorlogger.php?type=JavaScript&desc="+desc+"&page="+escape(page)+"&line="+line+"&chr="+chr+"&info="+iFrameInfo;
	openStreamer(url);
    return true;
}
/* Global ErrorHandler */

function imgChangeOn(name) {
    img = eval('document.images.'+name);
    imgsrc = img.src.replace('_a.gif','.gif');
    img.src = imgsrc.replace('.gif','_a.gif');
}
function imgChangeOff(name) {
    img = eval('document.images.'+name);
    img.src = img.src.replace('_a.gif','.gif');
}

function showPosLeft(elementname) {
	left = 0;
	pos=document.getElementById(elementname);
	while (pos.offsetParent!=null) {
		pos=pos.offsetParent;
		left= left + pos.offsetLeft;
	}
	return left
}

function showPosTop(elementname) {
	y = 0;
	pos=document.getElementById(elementname);;
	while (pos.offsetParent!=null) {
		pos=pos.offsetParent;
		y= y + pos.offsetTop;
	}
	return y
}

//global
var optionname='';
function setOptionname(name) {
	optionname=name;
}

function hideOption() {
	if (optionname && document.getElementById('optioncontent'+optionname).style.visibility=='visible') {
		showOption(optionname,0,0); 
	}
}

// vom Iframe aus die Option ausblenden
function hideParentOption() {
	if (parent.optionname && parent.document.getElementById('optioncontent'+parent.optionname).style.visibility=='visible') {
		parent.showOption(parent.optionname,0,0); 
	}
}

function deactivateOption(nOption,bNotActive) {
	/* Set Array */
	aDeactivateOption[nOption]=bNotActive;
	/*	Deactivate Option - Set style of Header-Object to pulldownd instead of pulldowna */
	if(bNotActive==1) 
		myClass="pulldownd";
	else
		myClass="pulldowna";
	var nTest = nOption*1;
	oHeading=document.getElementById('c_link'+nTest);
	oAHREF 	=getParentElem(oHeading,"A");
	//alert(nOption+":"+oAHREF.className.substr(0,8));
	if (oAHREF && oAHREF.className.substr(0,8)=="pulldown") {
		oAHREF.className=myClass;
	}
}

function showOption(name,difx,dify) {
	//alert("showOption:"+name+"="+optionname);
	/* Hide all Optiondivs if new Option is shown - ettl - 2006-11-08 */
	var nTest = name*1;
	hideAllOptionDiv(nTest);
	if (aDeactivateOption[nTest]) {
		return;
	}

	if (name != optionname) {
		hideOption();
	}
	optionname='';
	
	/*
	alert('Visibility:optioncontent'+name+":"+document.getElementById('optioncontent'+name).style.visibility);
	alert('Display:optioncontent'+name+":"+document.getElementById('optioncontent'+name).style.display);
	*/
	if (document.getElementById('optioncontent'+name).className == "pulldowndivOpen")
		hideOptionDiv(name);
	else
		showOptionDiv(name);
	//alert(document.getElementById('optioncontent'+name).className);
	/*
	if (document.getElementById('optioncontent'+name).style.visibility != 'visible') {
		document.getElementById('optioncontent'+name).style.visibility = 'visible';
		document.getElementById('optioncontent'+name).style.overflow = 'auto';
		//document.getElementById('optioncontent'+name).style.overflow = '-moz-scrollbars-vertical';
		//document.getElementById('optioncontent'+name).style.overflow-y = 'scroll';
		//document.getElementById('optioncontent'+name).style.overflow-x = 'hidden';


	} else {
		document.getElementById('optioncontent'+name).style.visibility = 'hidden';
		document.getElementById('optioncontent'+name).style.overflow = 'hidden';
	}*/
	setTimeout('setOptionname(\''+ name +'\')',300);
	return;
}
/* Close the Option-Pulldown */
function hideOptionDiv(name) {
	var oElem=document.getElementById('optioncontent'+name);
	if(oElem)
		oElem.className = 'pulldowndiv';
}
function showOptionDiv(name) {
	document.getElementById('optioncontent'+name).className = 'pulldowndivOpen';
}
function hideAllOptionDiv(nDoNotHideThis) {
	if ('undefined' == typeof nDoNotHideThis) {nDoNotHideThis = 0;}
	for(i=1;i<=12;i++) {
		nName = (i < 10) ? "0"+i : i;
		if(nDoNotHideThis!=i)
			hideOptionDiv(nName);
	}
}

function changePulldown(cValue,cName,nValue,nName) {
  /* Old Function - Generate Message */
  customHandler("changePulldown():Function obsolete - should be myChangePulldown !",document.location.href,0,0);
}

function myChangePulldown(cBase,cName,cPulldown,oDataElem) {
  /* (ettl-me) # 2006-03-01 # Adapted from DerPunkt for Sonoton */
  /* get first element (this must be the default element) - must be cBase+"_ch0" */
  var oBaseElem=document.getElementById(cBase+"_ch0");
  if(! oBaseElem) {
  	return;
  }
  var strBase=document.getElementById(cBase+"_ch0").firstChild.data;
  
  /* The Current choosen Element */
  //alert(cName);
  var strCurr=document.getElementById(cName).firstChild.data;
  // (ettl-me) - 2008-03-21 # error in line 170 - return if object is not found
  if (! strCurr) 
  	return;
  var textCurr=strCurr;
  //ElemCurr=document.getElementById(cName);
  //alert(strCurr+":"+strCurr.length+":");
  
  /* Data of choosen Element - this is the name option in the Tag */
  if(oDataElem) {
	var oData=document.getElementById(cName);
	var strData=getNameAttr(oData);
  	oDataElem.value=strData;	  
  }

  var cHeadDiv,oHead1,oHead
   /* (ettl-me) - 2008-08-29 # Filter-Pulldowns are marked if not using default value */
   if((cPulldown*1) >=2 && (cPulldown*1)<8) {
	  cHeadDiv="option"+cPulldown;
	  oHead1=document.getElementById(cHeadDiv);
	  //alert("PD:"+oHead1.id+":"+strData+":"+strCurr)
	  if(oHead1) {
		  if(strData != "all" && oDataElem) {
			  //oHead1.style.background="#FAE5E6";
			  oHead1.className="pd_option_a";
		  } else {
			  //oHead1.style.background="#ffffff";
			  oHead1.className="pd_option_d";
		  }
	  }
   }
   
  /* Name of DIV Element around first element (initially hidden) in Pulldown */
  cHeadDiv="optionhead"+cPulldown;
  oHead=document.getElementById(cHeadDiv);
  if(oHead) {
  	  var nTbLen;
	  var nPixperChar=9;
	  /* search underlyin table and get width of it */
	  for(cpdi=0;cpdi<oHead.childNodes.length;cpdi++) { 
	  	if(oHead.childNodes[cpdi].tagName == "TABLE") {
	  		nTbLen=oHead.childNodes[cpdi].width;
	  		break;
	  	}
	  }
	  if(! nTbLen) 
	  	var nTbLen=120;
	  var nMaxLen=nTbLen/nPixperChar;
	  //nMaxLen=13;
	  if(strCurr.length > nMaxLen) 
	  	textCurr=strCurr.substr(0,nMaxLen)+"..";
	  else
	  	textCurr=strCurr;
	  //alert(strCurr+":"+strCurr.length+":"+textCurr+":"+nMaxLen);
	  
	  if(strBase==strCurr) {
	  	  /* turn off first element */
		  oHead.style.display='none';
	  } else {
	  	  /* turn on first element */
		  oHead.style.display='block';
	  }
  }
  /* set HeadElement to CurrentElement */
  document.getElementById(cBase).firstChild.data="";
  document.getElementById(cBase).firstChild.data=textCurr;
  //alert("NewData:"+document.getElementById(cBase).firstChild.data);
}

/* Functions for dynamic Pulldown Location 
	- used for FlashPlayer-Pulldown in Project (on Resizing)	*/
function resizePulldown(myPD) {
	oBaseElem = document.getElementById("option"+myPD);
	oMenuElem = document.getElementById("optioncontent"+myPD);
	/* BugFix for "i has no Properties" js-error */
	if (! oBaseElem || ! oMenuElem)
		return;
	/* Get Position of BaseElement (Klickbox)*/
	var myPosTop  = abstop(oBaseElem);
	var myPosLeft = absleft(oBaseElem);
	/* Set Position of MenuBox (Top/Left */
	var nMinHeight = parseInt((oMenuElem.style.height) ? oMenuElem.style.height : 38);
	oMenuElem.style.left = myPosLeft;
	oMenuElem.style.top = myPosTop - nMinHeight;
	return;
}

function openPopup(url,name,width,height,addparam) {
	if ('undefined' == typeof addparam) {addparam = "";}
	debug("openPopup:"+url);
	var _width 	= 791;
	var _height = 573;
	var _left 	= 100;
	var _top 	= 100;
	if(width) _width = width;
	if(height) _height = height;
	
	if (navigator.userAgent.indexOf('MSIE 7') != -1)
		height += 22;
	
	if (addparam!="") addparam=","+addparam;
	var _parameter = "width="+_width+",height="+_height+",left="+_left+" ,top="+_top+""+addparam;

	if (window.name != name) {
		var popup = window.open(url,name,_parameter);
		if(popup)
			popup.focus();
	} else {
		/* (me) - 2006-12-18 # Bugs occurred on Line 255 
		writeSearchInfo(self,"loading <a href='"+url+"'>page</a>");
		*/
		self.location.href = url;
		self.focus();
		popup=1;
	}
    return (popup) ? false : true;
}

function openDownload() {
	openPopup('../basket/showbasket.php?'+SID,'downWin','797','622');
	return false;
}
function openBasket() {
	var bState=openPopup('../html/popup_warenkorb.php?'+SID,'projWin','797','622');
	return bState;
}
function openProject() {
	/* Only open Projects within Main-Window to prevent from not refreshing the project-list */
	//Parent_openProject();
	//return;
	oParent=getMain(parent);
	if (! oParent) {
		customHandler("Error in OpenProject: Missing Master Window - maybe it was closed !",document.location.href,0,0);
		return;
	} 
	oParent.Parent_openProject();
}
function Parent_openProject() {
//	var bState=openPopup('../html/popup_projekte.php?'+SID,'projWin','797','622','resizable=yes,dependent=yes');
	var bState=openPopup('../html/projectmanager.php?'+SID,'projWin','1080','700','resizable=yes,dependent=yes');
	return bState;
}
function openProjectHelp() {
	var bState=openHelp();
	return bState;
}
function openBasketHelp() {
	var bState=openHelp();
	return bState;
}
function openDownloadHelp() {
	var bState=openHelp();
	return bState;
}
function openHelp() {
	var bState=openPopup('../html/popup.php?subject=help','winHelp','408','573');
	return bState;
}
function openFAQ() {
	var bState=openPopup('../html/popup.php?subject=faq','fenster3','408','573');
	return bState;
}
function openSearchInfo() {
	var bState=openPopup('../html/popup.php?subject=searchinfo','fenster3','408','573');
	return bState;
}
function openAGB() {
	var bState=openPopup('../agb/agb_index.html','fenster10','408','573');
	return bState;
}
function openMySonofind()	{
	var bState=openPopup('../customer/mySonofind_index.php','mySonofind','408','573');
	return bState;
}
function openImprint() {
	var bState=openPopup('../html/popup.php?subject=imprint','fenster3','408','573');
	return bState;
}
function debug(txt) {
  	if (nDebug) {
  		alert("DEBUGGING OF "+document.location.href+"\n\nMessage:\n"+txt);
  	}
}

/* JM - wechselt den Player */
function changePlayer(oElem) {
	//var p = oElem.firstChild.id;
	var p = oElem.id;
	//alert(oElem.id);
	switch (p) {
		case 'c_link8_ch1':
			parent.nPlayer = '128';
			break;
		case 'c_link8_ch2':
		  	parent.nPlayer = 'flash';
			break;
		default:
			parent.nPlayer = '128';
	}
}


function PlayerSetPlaylist(aList) {
	if(typeof(parent.oPlayer)=="object") {
		// New Flashplayer Object
		parent.oPlayer.loadPlaylist(aList);
		return;
	}
}

/* JM - �ffnet den Player */
function play(oElem) {
	//alert(navigator.userAgent);
	if(typeof(oElem)=="object") {
		var sCDKurz = getCDKurz(oElem);
	}
	if(typeof(oElem)=="string") {
		var sCDKurz = oElem;
	}

	if(typeof(parent.oPlayer)=="object") {
		// New Flashplayer Object
		parent.oPlayer.playTrack(sCDKurz);
		return;
	} 

	
	//alert(parent.frames.length);
	//for (var i = 0; i < parent.frames.length; i++)
	//  alert(parent.frames[i].name);

	var myQual = 'flash';
	var	myFset='';
	if (parent.nPlayer) {
		myQual=parent.nPlayer;
	}
	
	if (! DOWNSERVER) {
		customHandler("play():DOWNSERVER is not defined !",document.location.href,0,0);
		return;
	}
	
	if (myQual == "flash") {
		var cscript = '/stream/flash_stream.php';
		if (pcFset) {
			/* Frameset for Flashplayer */
			myFset="&fset="+pcFset;
		}
		//openBalloon(sCDKurz);
	} else {
		var cscript = '/stream/stream.php';
	}
	if (isCD==true)
		sample="1";
	else
		sample="0";

	var myurl = DOWNSERVER+cscript+'?cdkurz='+sCDKurz+"&q="+myQual+"&sample="+sample+myFset;
	openStreamer(myurl);
}

function getBalloonFrame(cFrame) {
	if(cFrame != "") {
		cDocu = cFrame+".document";
		oDocu=eval(cDocu);
	} else {
		oDocu=document;
	}
	return(oDocu);
}

/* Opens Balloon for Displaying Information about FlashPlaying File */
function openBalloon(cFrame,cd,nTop,nLeft) {
	if ('undefined' == typeof nTop)  {nTop  = 0;}
	if ('undefined' == typeof nLeft) {nLeft = 0;}
	id="divPlayer" 
	/* Search DivPlayer in cFrame */
	oDocu=getBalloonFrame(cFrame);

	var divcontainer = "FrameBalloonDiv";	
	if(! oDocu.getElementById(divcontainer)){
		//alert("creating new divcontainer");
		var divholder = oDocu.createElement("div");
		divholder.id = divcontainer;
		divholder.className="balloon";
		//divholder.style = "";
		//oBody=oDocu.getElementsByTagName("body")[0];
		oDocu.body.appendChild(divholder);
	}
	oDiv=oDocu.getElementById(divcontainer);
	//alert(oDiv.innerHTML);
	var divinfo = '<div class="balloontxt" style="top:1px;left:1px;">'+cd+'</div>';
	if(nTop > 0) 
		oDiv.style.top=(nTop-123)+"px";
	if(nLeft > 0)
		oDiv.style.left=(nLeft+340)+"px";
	oDiv.innerHTML = divinfo;
	oDiv.style.visibility='visible';
	cClose='closeBalloon("'+cFrame+'")';
	setTimeout(cClose,2000);
}

function closeBalloon(cFrame) {
	//alert("CloseBalloon:"+cFrame);
	oDocu=getBalloonFrame(cFrame);
	var divcontainer = "FrameBalloonDiv";
	oDiv=oDocu.getElementById(divcontainer);
	if(! oDiv){
		oDiv=parent.document.getElementById(divcontainer);
	}
	if (oDiv) {
		oDiv.style.visibility="hidden";
	}
}

/* Write SearchInformation to IFrame */
function writeSearchInfo(oElem,cText) {
 	try {
 		if (! cText.include('<html>')) {
 			cText='<html><body><table border="0" width="100%" height="100%"><tr><td align="center" style="font-family:Verdana,Helvetica; font-size:10px; font-weight:normal; color:#4D4D4D;">'+cText+'</td></tr></table></body></html>';
 		}
		oElem.document.open();
		oElem.document.write(cText);
 		oElem.document.close();
	} catch (e) {
		return(false);
	}
	return;
}

function getCDKurz(oElem) {
	/* CDkurz steht in ParentNode */
	if(typeof(oElem)=="string")
		return(oElem);
	
	var aktElem=oElem.parentNode;
	while(aktElem.tagName != "BODY") {
		//alert(aktElem.tagName+":"+aktElem.id);
		if( aktElem.id.substr(0,3) == 'tr_' || aktElem.id.substr(0,3) == 'cd_' ) {
			if(aktElem.id.substr(0,3) == 'cd_') 
				isCD=true;
			else
				isCD=false;
			break;
		}
		aktElem=aktElem.parentNode;
	}
	var myCdkurz=aktElem.id;
	var sType	=myCdkurz.substr(0,3);
	var sCDKurz	=myCdkurz.substr(3);
	return(sCDKurz);
}

// in den Warenkorb legen - 2006-07-20
function dload(oElem,myfast,mType)
{
	/*  myfast - 0=>D-Basket, 1=>MP3-Download, 2=>Project-Download 
		mType  - 0=>MP3, 1=>WAV	*/
	if (mType == undefined)
		mType='0';
	// pnUserid muss in JScript gesetzt sein
	var sCDKurz=getCDKurz(oElem);
	var cscript='/basket/additem.php';
	var myurl=DOWNSERVER+cscript+'?cdkurz='+sCDKurz+"&fast="+myfast+"&type="+mType+"&"+SID;
	//alert(myurl);	
	if(myfast==0) {
		/* Put Track into Downloadbasket */
		openStreamer(myurl);
	} else {
		/* Open Window (needed to solve PopUp Problem) */
		//openStreamer(myurl);
		openPopup(myurl,'downWin','10','100');	
		/* (ettl - me) - 2008-07-28 # PopUP Window stays in Background with Firefox 
				so don't focus self with Firefox	*/
		if (ua.indexOf('firefox') == -1) {
			self.focus();
		}
	}
}

/* CallBack-Handler for Starting the Download in New Window 
function cb_startDownload(myurl)
{
	alert("cb_startDownload():"+myurl);		
	openPopup(myurl,'downWin','791','573');
}
*/
function note(oElem) {
	var sCDKurz=getCDKurz(oElem);
	//openPopup('popup_cddetails_i.php?cdcdkurz='+sCDKurz+'&w=note','fenster1','791','650');
	openPopup('popup_cddetails_i.php?cdcdkurz='+sCDKurz+'&w=note&'+SID,'fenster1','791','573');
}

function cd(oElem) {
	if ('object' == typeof oElem) {	
		var sCDKurz=getCDKurz(oElem);	
	} else {
		var sCDKurz=oElem;	
	}
	//openPopup('popup_cddetails_i.php?cdcdkurz='+sCDKurz+'&w=cd','fenster1','791','650');
	openPopup('../html/popup_cddetails_i.php?cdcdkurz='+sCDKurz+'&w=cd&'+SID,'fenster1','791','573');
}

function track(oElem) {
	var sCDKurz=getCDKurz(oElem);
	//openPopup('popup_cddetails_i.php?cdcdkurz='+sCDKurz+'&w=tr','fenster1','791','650');
	openPopup('../html/popup_cddetails_i.php?cdkurz='+sCDKurz+'&w=tr&'+SID,'fenster1','791','573');
}

function wkorb(oElem) {
	/* Add CD to Order-Basket */
	var sCDKurz=getCDKurz(oElem);
	var myurl="wk_insert.php?cdkurz="+sCDKurz+"&"+SID;
	openStreamer(myurl);
}

/**
 * ---------------------- Flash-Player Functions ---------------------------
 * Functions for Player Pulldown
 */
function changePlayer(cString) {
		parent.nPlayer = cString;
}
function changeUserPlayer(cString) {
		/* change the $pr_user Session vars by opening this url */
		if (! DOWNSERVER) {
			//alert("DOWNSERVER is not defined !");
			customHandler("changeUserPlayer():DOWNSERVER is not defined !",document.location.href,0,0);
			return;
		}
		openStreamer(DOWNSERVER+'/stream/setPlayer.php?quality='+cString+"&"+SID);
}

function setPlayer(cElemName) {
	 if (cElemName=='') {
	 	cElemName='flash';
	 }
     changePlayer(cElemName);
	 /* (ettl-me) # 2006-07-17 # ChangePlayerPulldown 
	  		Elements with id "player_56/player_128/player_flash" must exist
	 */
	cElemName = "player_"+cElemName;
	/* (ettl-me) # 2010-02-04 #  Check for new Player function 
			Object oMyPDPlayer must therefor exist in Page
	*/	
	if(typeof(oMyPDPlayer)=="object") {
		oMyPDPlayer.pdSelectValue(cElemName,false,true);
		return;
	}
	/* (ettl-me) # 2010-02-04 #  Old Stuff - Pre 2010 Release */
	var oElem = $(cElemName);
	if (! oElem) {
		/* check for new Pulldown */
		/* (ettl-me) # 2010-03-15 #  Do not throw an Error */
		//customHandler("Error in PlayerPulldown: PlayerElement not found in page:"+cElemName,document.location.href,0,0);
		return false;
	}
	var CurrValue=oElem.id;
	var CurrString=oElem.firstChild.data;
	var oBaseElem=document.getElementById("player_base");
	var BaseValue = getNameAttr(oBaseElem);
	//alert("BaseValue: "+BaseValue);

	if (BaseValue) {
	 var oldElem=document.getElementById(BaseValue);
	 var nElem=getParentElem(oldElem,'tr');
	 if(nElem)
		 nElem.style.display='block';
	}
	setNameAttr(oBaseElem,CurrValue);
	//alert("Text-Change:"+oBaseElem.firstChild.data+":"+CurrString);
	oBaseElem.firstChild.data=CurrString;
	var nElem=getParentElem(oElem,'tr');
	if(nElem) 
		nElem.style.display='none';
}

/** 
 * get Name Attribute of Element (Firefox/Safari-Workaround) 
 */
function getNameAttr(oElem) {
	/* (ettl-me) # 2006-07-18 # FireFox doesnt use .name  - use attributes[] instead of */
	var cName=oElem.name;
	if (cName == undefined)
		cName=oElem.attributes['name'].nodeValue;
	return(cName);
}
function setNameAttr(oElem,cValue) {
	/* (ettl-me) # 2006-07-18 # FireFox doesnt use .name  - use attributes[] instead of -
	    Safari doesnt accept attributes['name'] ! */
	var cName=oElem.name;
	if (cName == undefined) {
		oElem.attributes['name'].nodeValue=cValue;
	} else {
		oElem.name=cValue;
	}
	return;
}
/**
 * ---------------------- User Functions ---------------------------
 * Requires div id=logged_on
 */
/* SetUserObject - set User Information from Object 
	Object must contain .userid and .user
*/

/* get Frame containing musiksuche.php */
function getMain(oBase) {
	var oCheck=checkMain(oBase);
	if (oCheck) {
		return(oCheck);
	} else {
		if (oBase.opener) {
 	 		/* Need try-catch as IE keeps opener object even it is closed 
 	 			so if we check closed property IE throws an ERROR (access denied)
 	 			which can be handled this way by returning false - 
 	 		*/
	 	 	try {
				bCheck=oBase.opener.closed;	/* 	be carefull sometimes IE has closed property accessible !!	*/
				if (bCheck)	throw false;
			} catch (e) {
				/* alert ("Bug 680: IE has closed the Opener an silent Error occured"); */
				return(false);
			}
			oCheck=checkMain(oBase.opener);
			if (oCheck) {
				return(oCheck);
			}
		}
	}
}
/* Check if Frame or parentframe contains musiksuche.php */
var lastLoc='';
function checkMain(oBase) {
	if(oBase) {
		var cLoc=oBase.location.href;
		//alert("checkMain:"+cLoc);
		if( cLoc.indexOf('musiksuche') > -1 ) {
				//alert("Found Main");
				return(oBase);
		}
		if (cLoc == lastLoc) {
			//alert('Checking same locations');
			return(false);
		}
		lastLoc=cLoc;
	}
	if (oBase.parent && parent.location.href != oBase.parent.location.href ) {
		//alert(parent.location.href+" != "+oBase.parent.location.href);
		if (checkMain(oBase.parent)) {
			return(oBase.parent);
		}
	}
	return(false);
}

function setUserObj(oUser,skipLoad) {
	/* SetUser in current Frame IF pnUserid is defined */
	if ('undefined' == typeof skipLoad)
		skipLoad=false;
	if ('undefined' != typeof pnUserid)
		setUserName(oUser.userid,oUser.user);
	/* SetUser in Main Frame */
	oParent=getMain(parent);
	if (oParent) {
		oParent.setUserName(oUser.userid,oUser.user);
		oParent.setUserOption(oUser);
		if(skipLoad==false) {
			/* do not reload Projects if we come from Reloading Projects */
			oParent.loadProjects();
		}
	}
}

/* Deactivate Project Pulldown and Project-Edit ICON */
function deactivateProjectPD(bNotActive) {

	if(typeof(oPDProjects)!="undefined") {
		if(bNotActive==1) {
			oPDProjects.pdDisable();
		} else {
			oPDProjects.pdEnable();
		}
	}

	deactivateOption(bNotActive);
	//alert("deactivateProjectPD("+bNotActive+")");
	var oElem=$("ppdimg");
	if(oElem) {
		if(bNotActive==1) {
			oElem.src="../img/icon_pedit_d.gif";
			oElem.addClassName('active');
		}
		else {
			oElem.src="../img/icon_pedit_a.gif";
			oElem.removeClassName('inactive');
		}
	}
}

/* SetUser Information on Top and change Projects */
function setUser(myUserid,username) {
	if ('object' == typeof myUserid) {	
		setUserObj(myUserid);
		return;
	}
	if(myUserid=='') {
		deactivateProjectPD(1);
		return;
	}
	debug("SetUser:"+pnUser);
	setUserName(myUserid,username);
	/* Further actions - activate and set Projects */
	loadProjects();
}


/* SetUserName sets UserName Display on Top */
function setUserName(myUserid,myUsername) {
	pnUserid=myUserid;
	pnUser=myUsername;
	if (myUserid=='') {
		setElementProperty("logged_on","style.display","none");
		setElementProperty("logged_off","style.display","block");
		setElementProperty("not_logged_on_txt","style.display","block");
		setElementProperty("logged_on_txt","style.display","none");
		
		/* Boosey Login/Logout Box */
		setElementProperty("login_box","style.display","block");
		setElementProperty("logout_box","style.display","none");
	} else {
		var cDelim=getAttr("logged_on","title");
		if (cDelim.length == 2) {
			myUsername=cDelim.substr(0,1)+myUsername+cDelim.substr(1,1);
		} else if (cDelim.length == 1) {
			myUsername=cDelim+myUsername+cDelim;
		}
		setElementProperty("logged_off","style.display","none");
		setElementProperty("logged_on","style.display","block");
		setElementProperty("logged_on","innerHTML",myUsername);
		setElementProperty("not_logged_on_txt","style.display","none");
		setElementProperty("logged_on_txt","style.display","block");
		
		/* Boosey Login/Logout Box */
		setElementProperty("login_box","style.display","none");
		setElementProperty("logout_box","style.display","block");
	}
	if(document.FormSuche && document.FormSuche.userid)
		document.FormSuche.userid.value=pnUserid;
	return;
}

function getAttr(cElem,cattr) {
	var oElem=document.getElementById(cElem);
	if(oElem) {
		cValue=oElem.getAttribute(cattr,0);
		if (cValue) {
			return(cValue);
		}
	}
	return("");
}

/* SetSoundAlike Option for User */
function setUserOption(oUser) {
	if (oUser.soundalike && oUser.soundalike=="T") {
		//alert("Granting SoundAlike Option in: "+document.location.href);
		setElementProperty("soundalike","style.display","block");
	}
}

/**
 * ---------------------- Project Functions ---------------------------
 * Set ProjectHTML  - requires div with id projpulldown 
 */
function aproj(oElem,isArray) {
	if(typeof("isArray")=="undefined")
		isArray=0;
	/* Add to Project */
	var url="add_project.php?"+SID;
	if(isArray==1) {
		var prop="";
		for(z=0;z<oElem.length;z++) {
			prop+="&cdkurz["+z+"]="+oElem[z];
		}
		url+=prop;
	} else {
		var sCDKurz=getCDKurz(oElem);
		url+="&cdkurz="+sCDKurz;
	}
	openStreamer(url);
	return false;
}

// Reload Projects in Parent Window
function loadParentProjects() {
	var oBase=getMain(parent);
	if (oBase) {
		oBase.loadProjects(1);
	}
}
		
/** Load Project from clientPHPHandler 
	this returns array of Projects and calls the CallBackHandler 
*/
function loadProjects(bReload,bsortbydate) {
	bReload=('undefined' == typeof bReload)?0:bReload;
	bsortbydate=('undefined' == typeof bsortbydate)?0:bsortbydate;
	//deactivateOption(11,1);
	deactivateProjectPD(1);
	var myElem=document.getElementById("c_link11");
	if(myElem)
		myElem.innerHTML="loading ...";
	openPHPHandler(Array(Array("action","projpdown"),Array("sortdate",bsortbydate),Array("reload",bReload)));
}

/** Load Projects - Show Projects if already loaded */
function loadAndShowProjects() {
	//alert(nProjectcnt);
	if (nProjectcnt==0) {
		loadProjects();
	}
}

function setActiveProject(nActive) {
	var nProject = document.FormProject.projid.value;
	openPHPHandler(Array(Array("action","projset"),Array("projid",nProject)));	
}

function cb_setProjectFromArray(aProj) {
	/** New Pulldowns */
	if(typeof(oPDProjects)!="undefined") {
		var cActive="all";
		var hProj=new Hash();
		for(i=0;i<aProj.length;i++) {
			hProj.set(aProj[i][0],aProj[i][1]);
			if(aProj[i][2]=='1') {
				cActive=aProj[i][0];
			}
		}
		if(aProj.length==0) {
			// Reset Projects Pulldown
			oPDProjects.drawList(hProj);
			oPDProjects.pdResetFull();
		} else {
			deactivateProjectPD(0)
			oPDProjects.drawList(hProj);
			oPDProjects.pdSelectValue(cActive,false,true);
		}
		return;
	}
	
	/** Old Pulldowns */
	//alert("cb_setProjectFromArray:"+aProj.length);
	var nActive=0;
	var nEmpty=0;
	nProjectcnt=aProj.length;
	var cNHtml='<table cellpadding="0" cellspacing="0" border="0" width="100%">';
	for(i=0;i<aProj.length;i++) {
		cNHtml += cb_setProject(i+1,aProj[i][0],aProj[i][1]);
		//alert(i+":"+aProj[i][1]+":"+aProj[i][2])
		if(aProj[i][2] == '1')
			nActive=i+1;
		if(aProj[i][2] == '-1') {
			/* Empty Project-Array contains 1 key with -1 */
			nActive=i+1;
			nEmpty=1;
		}
	}
	if (aProj.length > 20) {
		/* "More than 20 Projects require Scrolling ! */
		oElem=document.getElementById("optioncontent11");
		if(oElem)
			oElem.style.height = '300px';
		//document.getElementById("optioncontent11").style.width = '272px';
	}
	
	cNHtml += '<tr><td><img class="us_02" src="../img/us.gif" alt="" /></td></tr></table>';
	
	oElem=parent.document.getElementById("projpulldown");
	if (! oElem) {
		//customHandler("cb_setProjectFromArray:projpulldown is not defined !",document.location.href,0,0);
		return;
	} 
	oElem.innerHTML=cNHtml;
	myChangePulldown('c_link11','c_link11_ch'+nActive,'11',document.FormProject.projid);
	setProjPulldownOpener(parent,cNHtml,nActive);

	/* Activate only when not empty */
	if (nEmpty==0)
		deactivateProjectPD(0);
//		deactivateOption(11,0);
}

/* Setzen des Projekt-Pulldowns im Opener */
function setProjPulldownOpener(myBase,cNHtml,nActive) {
	/* Find Window containing musiksuche.php */
	//alert("setProjPulldownOpener()");
	var oBase=getMain(myBase);
	if (oBase) {
		//alert("setProjPulldownOpener::"+oBase.location.href);
		var oElem=oBase.document.getElementById("projpulldown");
		if (! oElem) {
			customHandler("cb_setProjectFromArray:projpulldown is not defined !",oBase.document.location.href,0,0);
			return;
		}
		oElem.innerHTML=cNHtml;
		oBase.myChangePulldown('c_link11','c_link11_ch'+nActive,'11',oBase.document.FormProject.projid);
		oBase.deactivateProjectPD(0);
		//oBase.deactivateOption(11,0);
	}
}

function cb_setProject(nCount,projid,projname) {
	var cHtml  = '<tr><td height="3"><img class="us_01" src="../img/us.gif" alt="" /></td></tr>';
	cHtml += '<tr><td valign="top"><a href="javascript:void(-1);" '+
		'onclick="myChangePulldown(\'c_link11\',\'c_link11_ch'+nCount+'\',\'11\',document.FormProject.projid);showOption(\'11\',0,17);setActiveProject(\''+nCount+'\');return false;" '+
		'class="pulldown_entry"><span id="c_link11_ch'+nCount+'" name="'+projid+'">'+projname+'</span></a></td></tr>';
	return(cHtml);
}

function logoff() {
	openStreamer("../html/logout.php");
}
function cb_logoff() {
	//alert("cb_logoff Handler");
	/* Reset User-Information and Project */
	setUser('','');
	setUserName('','');
	cb_setProjectFromArray('');
	deactivateProjectPD(1);
}
/**
 * ---------------------- Global Functions ---------------------------
 */


/**
 * Set Property of Element if Element exists 
 */
function setElementProperty(cElem,cProp,cValue) {
	var oElem=document.getElementById(cElem);
	if(oElem) {
		var cValue=cValue.replace("/'/", "\'");
		var cProp="oElem."+cProp+"='"+cValue+"'";
		try {
			eval(cProp);
		} catch (e) {
			
		}
	}
}
/**
 * OpenClient Handler Page - 
 * required to set Session-Vars dynamically without page refreshing 
 */
function openPHPHandler(aVars) {
	var myUrl="../html/client_handler.php?"+SID+"&";
	for (i=0; i < aVars.length;i++) {
		if(aVars[i].length==2) {
			myUrl += aVars[i][0]+"="+aVars[i][1]+"&";
		}
	}
	openStreamer(myUrl);
}

/**
 * openStreamer()  -  open the hidden iFrameStreamer 
 *		or generate new Hidden DIV
 */
function openStreamer(myurl) {
	var oTarget = parent.document.getElementById("IFrameStreamer");
	//oTarget = window.open(myurl);
	if (oTarget) {
		var divcontainer="IFrameStreamer";
		oTarget.src = myurl;
	} else {
		var divcontainer = "FrameStreamerDiv";
		if(! parent.document.getElementById(divcontainer)){
			var divholder = parent.document.createElement("div");
			divholder.id = divcontainer;
			parent.document.body.appendChild(divholder);
		}
		//parent.document.getElementById(divcontainer).innerHTML = "";
		//var divinfo = '<iframe src="'+myurl+'" width=0 height=0 id="IFrameStreamer"></iframe>';
		parent.document.getElementById(divcontainer).innerHTML = '<iframe src="'+myurl+'" style="width:0px;height:0px;border:0px;padding:0px;margin:0px" id="IFrameStreamer"></iframe>';
	}
	return(divcontainer);
}

/**
 * getParentElem(oElem,mytagName)  -  get ParentElement with TagName
 *  returns Element or false
 */
function getParentElem(oElem,mytagName) {
	if(! oElem) return;
	var aktElem=oElem.parentNode;
	while(aktElem.tagName != "BODY") {
		//alert(aktElem.tagName+":"+aktElem.id);
		if( aktElem.tagName == mytagName.toUpperCase() ) {
			//alert(aktElem.tagName);
			return(aktElem);
		}
		aktElem=aktElem.parentNode;
	}
	return;
}

/* Functions for OpenCover 150x150 */
/* get top-position of element */	
function abstop(i)	{ return (i.offsetParent) ? i.offsetTop+abstop(i.offsetParent) : i.offsetTop; }
function absleft(i){ return (i.offsetParent) ? i.offsetLeft+absleft(i.offsetParent) : i.offsetLeft; }

var imgTimer=0;
function resetImgTimer() {	imgTimer=0;	}

function popup150(thisElem, img, cdkurz) {
	if ('undefined' == typeof cdkurz) {cdkurz = "";}
	if (imgTimer==1) {			return;		}
	var oDiv=$("popupDiv");
	var oImg=$("popupImg");
	if (! oDiv || ! oImg ) { 	return;		}

	if ( img=='' ) {
	//if (oDiv.style.display == "block") {
		oImg.src = "../img/us.gif";
		oDiv.style.display = "none";
	} else {
		var yPos = abstop(thisElem)+5;
		var xPos = absleft(thisElem)+5;
		oImg.src = img;
		// Delete old Element Observer
		oImg.stopObserving('click');
		// Add Element Observer
		oImg.observe('click', function(event){
			  //alert("Event:"+cdkurz+":"+Event.element(event).innerHTML);
			  cd(cdkurz);
		 });
		oDiv.setStyle({
				top: yPos+"px",
				left: xPos+"px",
				display: 'block'
		});
		imgTimer=1;
		setTimeout('resetImgTimer()',900);
		}
}
/* /Functions for OpenCover 150x150 */

/* Functions to get Inner-Window-Height/Width - all browsers */
	function getWindowHeight() {
		var y;
		if (self.innerHeight) // all except Explorer
		{
			y = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
			// Explorer 6 Strict Mode
		{
			y = document.documentElement.clientHeight;
		}
		else if (document.body) // other Explorers
		{
			y = document.body.clientHeight;
		}
		return y;
	}
	
	function getWindowWidth() {
		var x;
		if (self.innerHeight) // all except Explorer
		{
			x = self.innerWidth;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
			// Explorer 6 Strict Mode
		{
			x = document.documentElement.clientWidth;
		}
		else if (document.body) // other Explorers
		{
			x = document.body.clientWidth;
		}
		return x;
	}


function openPrint() {
	alert("feature coming soon.");
}

function saveResult() {
	alert("feature coming soon.");
	genError();
}
function genError() {
	ErrorElem = document.getElementById("fehlerTest");
	alert("generating Error - only for Test-Purposes !!");
	ErrorElem.xxx='12';
}

function goTop() {
	alert("feature coming soon.");
}

// resize the active window - 2007-01-04 by MJ
function resizeWindow(x, y) {
	// if browser = IE 7 height increases by 22 px -> locationbar
	if (navigator.userAgent.indexOf('MSIE 7') != -1)
		y += 22;
	window.resizeTo(x, y);
}

/////////////////////////////////////////////
// new - added: 2007-06-27 by Martin Jäger //
/////////////////////////////////////////////

// open the notesearch
function openNotesearch() {
	loadProjects();
	showDiv('07');
	showDivMen(4);
}


function getFlexApp(appName){
	if (navigator.appName.indexOf ("Microsoft") !=-1){
	return window[appName];
	}
	else{
	return document[appName];
	}
}