var bjump=false;
var curPageNum;
var today=new Date();
var expiry=new Date(today.getTime()+365*24*60*60*1000);

function onloadActions(pageNum){
	scoAPI=getAPI();
	doLMSInitialize();
	
	curPageNum=pageNum;

	localizeGUI();

	topMenuInit();
	initTree();
	puzzleVisiState(pageNum);

	var cp=location.href.split("/");
	cp=cp[cp.length-1];
	setCookie("currentPage",cp,expiry);

	if(visited.substring(pageNum-1,pageNum)!=1){
		trackProgress(true)
	}else{
		trackProgress(false)
	}

	if(getCookie("cookies")=="save"){document.getElementById("storageButton").src=common+"/images/chk_enabled.gif"}
	if(includeVG&&(bw.ie7||bw.ie6||bw.ie5||bw.ns6))vgInit(pageNum);

	//doMenuItem(getCookie("dyna"));
	doMenuItem("toc")

	//Dokubox
	plCollection=collectElementsbyClass("callDocubox");
	if(plCollection.length>0)plInit();

	//CollapsableDIVs
	collapsableDIVsInit()

}

function onunloadActions(){
	//puzzleVisiState(curPageNum,1);
	if(scoAPI!=null){
		
		var getHits = getCookie("pagesVisited");
		if(getHits=="null"||getHits=="NaN")getHits=0;
		doScormCommand("scoSetScore",getScore(getHits));

		if(getScore(getHits)!="100"){
			doScormCommand("scoSetStarted")
		}else{
			doScormCommand("scoSetCompleted")
		}
		 //16092008 pr nicht den kompletten Pfadnamen speichern, nur den relativen:
  		//doScormCommand("scoSetLocation",location.href);
  		doScormCommand("scoSetLocation",location.pathname); 
		doScormCommand("scoSetTime",getSessionTime());
//		doScormCommand("scoSetData",getPackedCookie("cfwprops"));
		doScormCommand("scoCommitt");
		if (!bjump){
			initExitX();
		}
		//alert("onunloadActions");
	}
	else
	{
	}
}

function initExitX(){
		var treeVisistate=getCookie("visiState");
		var treeCurrentState=getCookie("currState");
		var bookmarks=getCookie("bookmarks");
		var pagesVisited=0;
		var sessionTime=getSessionTime();

		var score=pagesVisited/treeVisistate.length;
		score=parseInt(round(score)*100);
		if(score>=100){score=100;lessonStatus="completed"}
		var treeData=treeCurrentState+"|"+treeVisistate+"|"+bookmarks+";";
//		alert("treeCurrentState:"+treeCurrentState);
//		alert(treeVisistate);
		doScormCommand("scoSetData",treeData);
		unloadPage();
//		deleteCookie("cfwprops");
	//alert('exit');
	//top.close();
}

function localizeGUI() {
	if(typeof dbText=="undefined")initText();
	for(var i=1;i<dbText.length;i++){
		if(document.getElementById(dbText[i].id)){
			switch(dbText[i].hook){
				case "caption":document.getElementById(dbText[i].id).innerHTML=dbText[i].html;break;
				case "title":document.getElementById(dbText[i].id).title=dbText[i].html;break;
				case "value":document.getElementById(dbText[i].id).value=dbText[i].html;break;
				default:break;
			}
		}
	}
}

function setPageScore(args){
	var scoreToSet=db[curPageNum].pscore;
	//scoreToSet=Math.round(Math.random()*9);
	switch(args){
		case "passed":
			puzzleVisiState(curPageNum,scoreToSet);
			break;
		case "failed":
			puzzleVisiState(curPageNum,9);
			break;
		default:
			return;
	}
		
	if(scoAPI!=null)doScormCommand("scoSendObjectiveStatus",curPageNum+";"+args);
	//doMenuItem("toc");
     //doMenuItem(getCookie("dyna"));
}

function sizeToFit(){
	if(window.opener){
		window.resizeTo(wW,wH-100)
	}else{
		window.resizeTo(wW,wH)
	}
}

function doMenuItem(item){
	document.getElementById("dynaContainer").style.display="block";
    //document.getElementById("dynaContainerOpener").style.display="none";	

	switch(item){
	case "show": break;
	case "glossar":
		newwin=popup("glossar.htm",640,550,1,"no","yes");
		//containerFrame.location.href="glossar.htm";
		//setCookie("dyna",item,expiry);
		break;
	case "files":
		containerFrame.location.href="files.htm";
		//setCookie("dyna",item,expiry);
		break;
	case "toc":
		containerFrame.location.href="tree.htm";
		//setCookie("dyna",item,expiry);
		break;
	case "iwbt":
		containerFrame.location.href="iwbt.htm";
		//setCookie("dyna",item,expiry);
		break;
	case "impressum":
		containerFrame.location.href="impressum.htm";
		//setCookie("dyna",item,expiry);
		break;
	case "isession":
		containerFrame.location.href="isession.htm";
		//setCookie("dyna",item,expiry);
		break;
	case "bookmarks":
		containerFrame.location.href="bookmarks.htm";
		break;	
	case "hide":
		document.getElementById("dynaContainer").style.display="none";		
		document.getElementById("dynaContainerOpener").style.display="block";
		break;
	}
}

function changeSettings(setting,value){
	switch(setting){
		case "audio":
			if(includeVG&&(bw.ie7||bw.ie6||bw.ie5||bw.ns6)){changeAudioState()}
			break;
		case "vguide":
			if(includeVG&&(bw.ie7||bw.ie6||bw.ie5||bw.ns6)){changeState()}else{alert(eval("vgNotAvailable"+language))}
			break;
		case "storage":
			if(getCookie("cookies")=="save"){
				setCookie("cookies","delete",expiry);
				document.getElementById("storageButton").src=common+"/images/chk_disabled.gif"
			}else{

				setCookie("cookies","save",expiry);
				document.getElementById("storageButton").src=common+"/images/chk_enabled.gif"
			}
			break;
		case "reset":
			if(confirm(eval("resetMsg"+language))){
				initCfwprops();
				cfwprops=getPackedCookie("cfwprops");
				document.getElementById("storageButton").src=common+"/images/chk_enabled.gif";
				if(includeVG&&(bw.ie7||bw.ie6||bw.ie5||bw.ns6))vgInit(curPageNum);
				initTree();
				var pageCount=db.length-1;
				setCookie("pageCount",pageCount,expiry);
				break;
			}
		case "suspend":
				setPackedCookie("cfwprops",value,expiry);
				break;
	}
}

function faq(){
	window.open(faqURL);
}


function writeShockwave(swfile,w,h,xml){
	if(w==0)w=shockwaveDefaultWidth;
	if(h==0)h=shockwaveDefaultHeight;
	var sw1=xml;
	var sw2="sound_on";
	var soundEnabled=getCookie("vgSettings");
	if(soundEnabled!=null){
		pos=soundEnabled.indexOf("audioEnabled")
		soundEnabled=soundEnabled.substring(soundEnabled.indexOf("=",pos)+1,soundEnabled.indexOf(";",pos));
		if(soundEnabled=="false")sw2="sound_off";
	}
	var sw="<object classid='"+swClsid+"' codebase='"+swHomeIE+"' width='"+w+"' height='"+h+"'>";
	sw+="<param name='src' value='"+swfile+"'><param name='bgcolor' value='"+swbg+"'>";
	sw+="<param name='sw1' value='"+sw1+"'>";
	sw+="<param name='sw2' value='"+sw2+"'>";
	sw+="<embed src='"+swfile+"' width='"+w+"' height='"+h+"' sw1='"+sw1+"' sw2='"+sw2+"'";
	sw+=" type='application/x-director' pluginspage='"+swHomeMoz+"'></embed></object>";
	document.getElementById("divcontent").innerHTML=sw;
}


function writeFlash(flfile,w,h){
	var fl="<object classid='"+flClsid+"' codebase='"+flHomeIE+"' width='"+w+"' height='"+h+"'>";
	fl+="<param name='movie' value='"+flfile+"'><param name='menu' value='false'><param name='wmode' value='transparent'>";
	fl+="<param name='quality' value='high'><param name='bgcolor' value='"+flbg+"'>";
	fl+="<embed src='"+flfile+"' quality='high' bgcolor='"+flbg+"' width='"+w+"' height='"+h+"' wmode='transparent'";
	fl+=" type='application/x-shockwave-flash' pluginspage='"+flHomeMoz+"'>"
	fl+="</embed></object>";
	document.getElementById("divcontent").innerHTML=fl;
}

function exit(){
	location.href="exit.htm"
}

/*Browsercheck*/
function browserCheck(){
	agent = navigator.userAgent.toLowerCase();
	this.major = parseInt(navigator.appVersion);
	this.minor = parseFloat(navigator.appVersion);

	this.mac=agent.indexOf("Mac")>-1;

	this.ns = ((agent.indexOf('mozilla') != -1) && (agent.indexOf('spoofer') == -1) && (agent.indexOf('compatible') == -1) && (agent.indexOf('opera') == -1) && (agent.indexOf('webtv') == -1) && (agent.indexOf('hotjava') == -1));
	this.ns2 = (this.ns && (this.major == 2));
	this.ns3 = (this.ns && (this.major == 3));
	this.ns4 = (this.ns && (this.major == 4));
	this.ns6 = (this.ns && (this.major >= 5));

	this.ie = ((agent.indexOf("msie") != -1) && (agent.indexOf("opera") == -1));
	this.ie3 = (this.ie && (this.major < 4));
	this.ie4 = (this.ie && (this.major == 4) && (agent.indexOf("msie 4") != -1));
	this.ie5 = (this.ie && (this.major == 4) && (agent.indexOf("msie 5.") != -1) && (agent.indexOf("msie 5.5") == -1) && (agent.indexOf("mac") == -1));
	this.iem5 = (this.ie && (this.major == 4) && (agent.indexOf("msie 5.") != -1) && (agent.indexOf("mac") != -1));
	this.ie55 = (this.ie && (this.major == 4) && (agent.indexOf("msie 5.5") != -1));
	this.ie6 = (this.ie && (this.major == 4) && (agent.indexOf("msie 6.") != -1));
	this.ie7 = (this.ie && (this.major == 4) && (agent.indexOf("msie 7.0") != -1));

	this.nsdom = (this.ns4 || this.ns6);
	this.ie5dom = (this.ie5 || this.iem5 || this.ie55);
	this.iedom = (this.ie4 || this.ie5dom || this.ie6);
	this.w3dom = (this.ns6 || this.ie6 || this.ie7);
	this.dom = (this.iedom || this.w3dom)
	return this;
}
var bw=new browserCheck();

/* MENU */
function makeMenu(obj,nest,show,move,speed,overflow){
	nest=(!nest) ? "":'document.'+nest+'.'
	this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
	this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;		
	this.x=this.css.left||this.css.pixelLeft||this.el.offsetLeft||0
	this.y=this.css.top||this.css.pixelTop||this.el.offsetTop||0
	this.state=1; this.go=0; this.mup=b_mup; this.show=show; this.mdown=b_mdown; 
	this.height=bw.ns4?this.css.document.height:this.el.offsetHeight
	this.moveIt=b_moveIt; this.move=move; this.speed=speed;
	this.obj = obj + "Object";
	eval(this.obj + "=this")	
}
var px = bw.ns4||window.opera?"":"px";

function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x+px; this.css.top=this.y+px;}
function b_mup(){//Menu in
	if(this.y>-this.height+this.show+menu_offset_y0){
		this.go=1; this.moveIt(this.x,this.y-this.move)
		setTimeout(this.obj+".mup()",this.speed)
	}else{this.go=0; this.state=1}	
}

function b_mdown(){//Menu out
	if(this.y<eval(scrolled)+menu_offset_y0){
		this.go=1; this.moveIt(this.x,this.y+this.move)
		setTimeout(this.obj+".mdown()",this.speed)
	}else{this.go=0; this.state=0}	
}

function moveTopMenu(num){
	if(!oMenu[num].go){
		if(!oMenu[num].state)oMenu[num].mup()	
		else oMenu[num].mdown()
	}
	for(i=0;i<oMenu.length;i++){
		if(i!=num && !oMenu[i].state){ oMenu[i].mup()}
	}
}

function topMenuInit(){
	oMenu=new Array()
	oMenu[0]=new makeMenu('divMenu0',"",tShow,tMove,tSpeed) 
	oMenu[1]=new makeMenu('divMenu1',"",tShow,tMove,tSpeed) 
	oMenu[2]=new makeMenu('divMenu2',"",tShow,tMove,tSpeed) 
	scrolled=bw.ns4||bw.ns6?"window.pageYOffset":"document.body.scrollTop"
	for(i=0;i<oMenu.length;i++){
		oMenu[i].moveIt(oMenu[i].x,-oMenu[i].height+oMenu[i].show+menu_offset_y0);
		oMenu[i].css.visibility='visible';
	}
/*	divColl=document.body.getElementsByTagName("div");
	for(j=0;j<divColl.length;j++){
		if(divColl[j].id.indexOf("_ui")>0)divColl[j].innerHTML=getJsText(language,divColl[j].id)
	}
	aColl=document.body.getElementsByTagName("a");
	for(k=0;k<aColl.length;k++){
		if(aColl[k].id.indexOf("_ui")>0)aColl[k].innerHTML=getJsText(language,aColl[k].id)
	}*/
}

/*Language dependend text elements*/
function initText(){
	totalText=1;
	dbText = new Array();
	fillText(language);
}

function dbTextAdd( id, html, hook ) {
	dbText[totalText] = new Object;
	dbText[totalText].id = id;
	dbText[totalText].html = html;
	dbText[totalText].hook = hook;
	totalText++;
}

function getJsText(languageCode,textCode) {
	var langstring="(...)"
	if(typeof dbText=="undefined")initText(languageCode);
	for(i=1;i<totalText;i++){
		if(dbText[i].code==textCode){
			langstring=dbText[i].text;
			break;
		}
	}
  	return langstring;
}

//Navigation
var innerNavActive_back=false;
var innerNavActive_fwd=false;
function jump(url,direction){
	bjump=true;

	switch(true){
		case(innerNavActive_back&&direction==1):cycleback();break;
		case(innerNavActive_fwd&&direction==2):cycleforward();break;
		default:
			location.href=url;
			innerNavActive_back=false;
			innerNavActive_fwd=false;
	}
}

//Popups
var maxW,maxH,fromX,fromY,toX,toY,adjX,adjY,zBox,zStep=0,zLink,zNew;
function zoomBox(evt,zlink,maxw,maxh,tox,toy) {
	if (arguments.length > 2) zNew=1;
	scrollH=(window.pageYOffset!=null)?window.pageYOffset:document.body.scrollTop;
	maxW=maxw?maxw:window.innerWidth?innerWidth:document.body.clientWidth;
	maxH=maxh?maxh:window.innerHeight?innerHeight:document.body.clientHeight;
	toX=tox?tox:0;
	toY=(toy?toy:0)+scrollH;
	fromX=evt.pageX?evt.pageX:evt.clientX;
	fromY=(evt.pageY?evt.pageY:evt.clientY)+(document.all?scrollH:0);
	adjX=toX+evt.screenX-fromX;
	adjY=toY+evt.screenY-fromY;
	if (document.createElement && document.body.appendChild && !zBox) {
		zBox=document.createElement("div");
		zBox.style.position="absolute";
		document.body.appendChild(zBox);
	} else if (document.all && !zBox) {
		document.all[document.all.length-1].outerHTML+='<div id="zBoxDiv" style="position:absolute"></div>';
		zBox=document.all.zBoxDiv;
	} else if (document.layers && !zBox) {
		zBox=new Layer(maxW);
		zBox.style=zBox;
	}
	zLink=zlink;
	doZoom();
}

function doZoom() {
	zStep+=1;
	zPct=(10-zStep)/10
	if (document.layers) {
		zBox.moveTo(toX+zPct*(fromX-toX),toY+zPct*(fromY-toY));
		zBox.document.open();
		zBox.document.write("<table width='"+maxW*(1-zPct)+"' height="+maxH*(1-zPct)+" border=2 cellspacing=0><tr><td></td></tr></table>");
		zBox.document.close();
	} else {
		zBox.style.border="2px solid #999999";
		zBox.style.left=toX+zPct*(fromX-toX);
		zBox.style.top=toY+zPct*(fromY-toY);
		zBox.style.width=maxW*(1-zPct);
		zBox.style.height=maxH*(1-zPct);
	}
	zBox.style.visibility="visible";
	if (zStep < 10) setTimeout("doZoom("+fromX+","+fromY+","+toX+","+toY+")",30);
	else {
		zBox.style.visibility='hidden';
		zStep=0;
		if (zLink && !zNew) location.href=zLink.href;
		else if (zLink && zNew) {
			var w=window.open(zLink.href,'','width='+(maxW+40)+',height='+(maxH+40)+',left='+adjX+',top='+adjY+',scrollbars=yes,resizable');
			zNew=null;
		}
	}
}

function gotClick(arg) {
	evt=arg?arg:event;
	evtFrom=evt.target?evt.target:evt.srcElement;
	if (evtFrom.parentNode) evtFrom=evtFrom.parentNode.href?evtFrom.parentNode:evtFrom;
	if (evtFrom.href && !evtFrom.onclick) {
		zoomBox(evt,evtFrom);
		return false;
	} else {
		if (document.routeEvent) document.routeEvent(evt);
		if (evtFrom.href) return false;
	}
}

//Picture Popup
function popupPic(imageURL){
	if (bw.ie6||bw.ie5||bw.ie7){
		var ppicOptIE="scrollbars=no,width=150,height=100,left="+ppicPosX+",top="+ppicPosY;
		imgWin=window.open("about:blank","",ppicOptIE)
	}else{
		var ppicOptNonIE="scrollbars=no,width="+ppicDefaultW+",height="+ppicDefaultH+",left="+ppicPosX+",top="+ppicPosY;
		imgWin=window.open("about:blank","",ppicOptNonIE);
	}

	with (imgWin.document){
		writeln('<html><head><title>'+eval("ppicWaitMsg"+language)+'</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
		writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
		writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
		writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
		writeln('width=100-(document.body.clientWidth-document.images[0].width)+20;');
		writeln('height=100-(document.body.clientHeight-document.images[0].height);');
		writeln('window.resizeTo(width,height);}');writeln('if (isNN){');       
		writeln('window.innerWidth=document.getElementById("pic").width;');writeln('window.innerHeight=document.getElementById("pic").height;}}');
		writeln('function doTitle(){document.title="'+eval("ppicImageTitle"+language)+'";}');writeln('</sc'+'ript>');
		if (!ppicAutoClose){
			writeln('</head><body bgcolor="#ffffff" scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
		}else{
			writeln('</head><body bgcolor="#ffffff" scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
			writeln('<img id="pic" src='+imageURL+' style="display:block"></body></html>');
		}
		close();		
	}
}


//Popup-Fenster (wegen Abwärts-Kompatibilität)
var myWin=null;
function popup(filename,dimX,dimY,attrScroll,attrCenter,attrResize,param,attrTool){
	var topPos=0;
	var leftPos=0;
	if(!dimX)dimX=800;
	if(!dimY)dimY=600;
	if(!attrScroll)attrScroll=1;
		if(attrCenter=="yes"){

leftPos= (screen.width - dimX) / 2;
topPos = (screen.height - dimY) / 2;

//leftPos=(screen.availWidth) ? (screen.availWidth-dimX-10) : 0;
}
	if(attrCenter=="offset"){
		leftPos=(screen.availWidth) ? (screen.availWidth-dimX-10) : 0;
		topPos=(screen.width) ? (screen.width-dimX)/2 : 0;
	}
		var openArgs="width="+dimX+",height="+dimY+",top="+topPos+",left="+leftPos+",resizable="+attrResize+",scrollbars="+attrScroll+",toolbar="+attrTool;
	if(param){
		myWin=window.open(filename+"?"+param,"myWindow",openArgs);
	}else{
		myWin=window.open(filename,"myWindow",openArgs);

	}
	//myWin.window.focus();
}

function showImageWithSizeNoMargin(filename,dimX,dimY){
	popupPic(filename);
}

//Bookmarks
function setBookmark(id) {
   	var pageId=curPageNum;
	if(typeof id=="number")pageId=id;


	var currentBookmarks=getCookie("bookmarks");
	if(currentBookmarks==0){
		setCookie("bookmarks",pageId);
	}else{
		currentBookmarks=currentBookmarks.split(",");
		for(i=0;i<currentBookmarks.length;i++){
			if(currentBookmarks[i]==pageId)return;
		}
		currentBookmarks.push(pageId)
		currentBookmarks.sort(numsort);
		setCookie("bookmarks",currentBookmarks.join(","));
	}
}

function numsort(a, b){return a-b;} 

function processBookmarks(){
	var wo=parent;
	var htmlOut=""; 
	var currentBookmarks=wo.getCookie("bookmarks");
	if(currentBookmarks==0){
		htmlOut="<p>"+eval("wo.bmNotYetBookmarked"+wo.language)+"</p>";;
		
	}else{
		htmlOut="<div style='height:85%;overflow-y:scroll'><form name='myForm'>";
		currentBookmarks=currentBookmarks.split(",");
		for(i=0;i<currentBookmarks.length;i++){
			htmlOut+="<input class='chkBox' type='checkbox' name='del"+i+"' value='"+currentBookmarks[i]+"' />";
			htmlOut+="<a class='jumpLink' title='"+eval("wo.bmTitle"+wo.language)+"' href='javascript:jumpTo(\""+wo.db[currentBookmarks[i]].URL+"\");'>"+wo.db[currentBookmarks[i]].display+"</a><br/>";
		}
		htmlOut+="</form></div><hr/>";
		htmlOut+="<input type='button' value='"+eval("wo.bmDelSelectedBookmarks"+wo.language)+"' onClick='delSelectedBookmarks()'/>&nbsp;";
		if(currentBookmarks.length>1)htmlOut+="<input type='button' value='"+eval("wo.bmDelAllBookmarks"+wo.language)+"' onClick='delAllBookmarks()'/>&nbsp;";	
	}
	document.write(htmlOut);
}

function delSelectedBookmarks(){
	var wo=parent;
	var htmlOut="";
	var currentBookmarks=wo.getCookie("bookmarks").split(",");
	var frm=document.myForm;
	var delArr=new Array();
	var j=0;
	for(var i=0;i<frm.elements.length;i++) {
		if(eval("frm.del"+i+".checked")==true){
			delArr[j]=eval("frm.del"+i+".value");
			j++;
		}
    	}
	for(i=0;i<currentBookmarks.length;i++){
		for(j=0;j<delArr.length;j++)if(delArr[j]==currentBookmarks[i])currentBookmarks.splice(i,1)
	}
	wo.setCookie("bookmarks",currentBookmarks.join(","));
	location.reload();
	//alert(wo.getCookie("bookmarks")+"\n"+delArr+"\n"+currentBookmarks.join(","))
}

function delAllBookmarks() { //called by bookmarks.htm
	parent.setCookie("bookmarks",0);
	location.reload();
}

function jumpTo(linkUrl)
{
	top.bjump=true;
//	alert("bjump: "+bjump);
	parent.location.href=linkUrl;
}



//CFW Property Cookie handlers
var cfwprops=null;

function getCookie(name){
  cfwprops=getPackedCookie("cfwprops");
  if(!cfwprops){initCfwprops();cfwprops=getPackedCookie("cfwprops")}
  return getValue(cfwprops,name)
}

function getPackedCookie(name) {
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len,end));
}


function deleteCookie (name,path,domain) {
	if (getPackedCookie(name)) {
		document.cookie = name + "=" +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		"; expires=Wed, 01-May-02 00:00:01 GMT";
		}
}

function setCookie (name,value,expires) {
      if (name=="pageCount"&&(!cfwprops)){initCfwprops();cfwprops=getPackedCookie("cfwprops")} //erforderlich für default.html
      if (!cfwprops)cfwprops=getPackedCookie("cfwprops"); //erforderlich für springen.html
	SetValue(cfwprops,name,value);
	cfwprops=getPackedCookie("cfwprops");
}

function setPackedCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

function initCfwprops() {
    var defaults = 	"aiccStatus=on§" +
    			"aiccSID=§" +
			"aiccURL=§" +
			"currentPage=§" +
			"currState=§" +
                    "cookies=save§" +
			"lessonStatus=Not attempted,a§" +
			"assStatus=0:0§" +
			"logonTime=11:11:11§" +
			"pageCount=0§" +
			"dyna=toc§" +
			"bookmarks=0§" +
			"pagesVisited=0§" +
			"score=0§" +
			"time=0§" +
			"totaltime=0§" +
			"vgSettings=enabled=true;audioEnabled=true;§" +
			"visiState=§";
    setPackedCookie("cfwprops",defaults,expiry)
}

function getValue(string,elementName) {
    var startPos = string.indexOf(elementName + "=")
    if (startPos > -1) {
        startPos = startPos + elementName.length + 1;
        var endPos = string.indexOf("§",startPos);
        if (endPos == -1) endPos = string.length;
        var elementValue = unescape(string.substring(startPos,endPos));
	  return elementValue;
    }
}

function SetValue(string,elementName,newValue) {
	var stringToBeReplaced=getValue(string,elementName,"dummy");
	var stringReplacement=unescape(newValue);
	var newString = replaceString(string,elementName+"="+stringToBeReplaced,elementName+"="+stringReplacement)
	setPackedCookie("cfwprops",newString,expiry);
}

//Rollover
function findObj(n, d) {
var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;}

function swapImage() {
var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=findObj(a[i]))!=null){document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function swapImgRestore() {
var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}


//Preload Images
function preloadImages() {
 var d=document; if(d.images){ if(!d.p) d.p=new Array();
   var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

//Helper Functions
function replaceString(str,searchFor,replaceWith) {
  var i = str.indexOf(searchFor);
  while ( i!=-1 ) {
    var j = i+searchFor.length;
    str = str.substring(0,i)+replaceWith+str.substring(j,str.length);
    i = str.indexOf(searchFor,i+replaceWith.length);
  }
  return str;
}

function getProtocol(url){
	return url.substring(0,url.indexOf(":"));
}

function trackProgress(update){
	var getHits = getCookie("pagesVisited");
	if(getHits=="null"||getHits=="NaN")getHits=0;
	
	if(update){//Seite wird erstmalig aufgerufen
		getHits=parseInt(getHits)+1;
		setCookie("pagesVisited",""+getHits+"",expiry);
		setCookie("score",getScore(getHits),expiry);
	}

	setCookie("currentPage",location.href,expiry);
	if(scoAPI!=null){
		doScormCommand("scoSendObjectiveStatus",curPageNum+";"+"browsed")		
	
	}
}


function getScore(countCurrent){
	if(countCurrent==0)return 0;
	var countTotal=getCookie("pageCount");
	var score=countCurrent/countTotal;
	score=parseInt(round(score)*100);
	if(score>100)score=100;
	if(scoAPI!=null){}else{score+="%"}
	//score+="%";
	return score;
}

function round(number,decPlace){
	decPlace = (!decPlace ? 2 : decPlace);
	return Math.round(number * Math.pow(10,decPlace)) / Math.pow(10,decPlace);
}

function testResult(result){
	switch(result.split(":")[0]){
	case "started":
		testStatus="started";
		window.status="Testsitzung gestartet";
		//setCookie("lessonStatus","Not attempted,a",expiry);
		break;
	case "finished":
		var action;
		var procResult=parseInt(round(result.split(":")[1]/parseInt(gQwMaxScore))*100);
		switch(true){
		case(procResult<mcPassed):
			testStatus="failed";
			setPageScore(testStatus);
			break;
		case(procResult>=mcPassed):
			testStatus="passed";
			setPageScore(testStatus);
			break;
		}

		if(result.split(":")[2]){
			var testID=result.split(":")[2];
			var assStatus=new Array();
			assStatus=getCookie("assStatus").split(",");
			for(var i=0;i<assStatus.length;i++){
				id=assStatus[i].split(":")[0];
				if(id==testID){assStatus[i]=id+":"+result.split(":")[1];}
			}
			setCookie("assStatus",assStatus.join(","),expiry);
		}
		setCookie("lessonStatus",testStatus+":"+result.split(":")[1],expiry);

		if(result.split(":")[3]){
			var bookmarksArr=new Array();
			bookmarksArr=result.split(":")[3].split(";");
			for(var i=0;i<bookmarksArr.length;i++){
				action="bookmarks";
				setBookmark(parseInt(bookmarksArr[i])+9) //+9 nur für Demo
			}
		}
		if(action=="bookmarks"){doMenuItem("bookmarks")}else{doMenuItem(getCookie("dyna"))};
		break;
	}
}

/*ISESSION.HTM*/
function doSessionInfo(){

	scoAPI=getAPI();
	var out="";

	//var completeURL=getCookie("completeURL");
	//TESTONLY
	//completeURL="http://www.dummy.de/dummy.htm?AICC_SID=1&AICC_URL=http://devel.ets-online.de/dls/dls/aicc_listener.phtml&"

	var onlineMode=getProtocol(location.href).indexOf("http")>=0?true:false;
	var ionlineMode=onlineMode?eval("ionlineModeTrue"+language):eval("ionlineModeFalse"+language);

	var aiccPresent=false;
	if(getCookie("aiccURL"))aiccPresent=true;	
	var iaiccPresent=aiccPresent?eval("iaiccPresentTrue"+language):eval("iaiccPresentFalse"+language);

	var scormPresent=false;
	if(scoAPI!=null)scormPresent=true;
	var iscormPresent=scormPresent?eval("iscormPresentTrue"+language):eval("iscormPresentFalse"+language);

	var lmsPresent=(scormPresent||aiccPresent)?eval("iLmsPresentYes"+language):eval("iLmsPresentNo"+language);

	var treeVisistate=getCookie("visiState");
	var treeCurrentState=getCookie("currState");
	var pagesVisited=0;
	var sessionTime=getSessionTime();

	var isScore=0;
	for (var i=0;i<treeVisistate.length;i++){
		if(parseInt(treeVisistate.substring(i,i+1))>0){
			pagesVisited++;
			isScore+=parseInt(treeVisistate.substring(i,i+1));
		}
	}

	var lessonStatus="incomplete"; //Not Started, Incomplete, Completed, Passed, Failed

	var pageScore=isScore/getMaxScore();
	pageScore=parseInt(round(pageScore)*100);
	setCount(parseInt(pageScore));

	var lessonStatus=getCookie("lessonStatus");
	var showLessonStatus=false;
	switch(true){
		case(lessonStatus.indexOf("failed")!=-1):lessonStatus=eval("ilessonStatusB"+language);showLessonStatus=true;break;
		case(lessonStatus.indexOf("passed")!=-1):lessonStatus=eval("ilessonStatusC"+language);showLessonStatus=true;break;
		default:lessonStatus=eval("ilessonStatusA"+language);break;
	}

	if(getCookie("logonTime")=="11:11:11"){logonTime="00:00:00"}
	var sessionTime=getSessionTime();
	var totalTime=getCookie("totaltime");

	out="<table width='100%' border='0' cellspacing='0' cellpadding='4'>";
	out+="<tr><td>"+ionlineMode+"<br />"+eval("iLmsPresent"+language)+lmsPresent+"</td></tr>";
	out+="<tr><td>"+eval("ipageCount"+language)+treeVisistate.length+eval("ipagesVisited"+language)+pagesVisited+"</td></tr>";
	out+="<tr><td>"+eval("iIsScore"+language)+isScore+eval("iMaxScore"+language)+getMaxScore()+"<br/>"+eval("ipageScore"+language)+pageScore+"%</td></tr>";
	out+="</table>";
	document.getElementById("divInfo1").innerHTML=out;

	out="<table width='100%' border='0' cellspacing='0' cellpadding='4'>";



	if(showLessonStatus)out+="<tr><td>"+eval("ilessonStatus"+language)+lessonStatus+"</td></tr>";
	out+="<tr><td>"+eval("ilogonTime"+language)+getCookie("logonTime")+"</td></tr>";
	out+="<tr><td><b>"+eval("isessionTime"+language)+sessionTime+"</b></td></tr>";
	if(parseInt(totalTime)>0)out+="<tr><td>"+eval("itotalTime"+language)+totalTime+"</td></tr>";
	out+="</table>";

	document.getElementById("divInfo2").innerHTML=out;
}

function getMaxScore(){
	var sum=0;
	for (var i=1;i<parent.db.length;i++)sum+=parent.db[i].pscore;
	return sum;
}


function setCount(prcnt){
	if (prcnt>0){
		if(prcnt>100)prcnt=100;
		loaded=prcnt;
		if(loaded<0)loaded=0;
		perdone.style.width=blocksize*loaded;
	}
}

function progressBarInit(){
	perouter=document.getElementById("perouter");
	perdone=document.getElementById("perdone");
	perdone.style.width=0;
	perouter.style.visibility="visible";
}

function getSessionTime() { 
	var now=new Date();
	var offSeconds=now.getSeconds();
	var offMinutes=now.getMinutes();
	var offHours=now.getHours();
	var onTime=getCookie("logonTime").split(":");
	var onHours = parseInt(onTime[0]);
	var onMinutes = parseInt(onTime[1]);
	var onSeconds = parseInt(onTime[2]);

	if(onHours==11&&onMinutes==11&&onSeconds==11)return("00:00:00")

	if (offSeconds>=onSeconds) { 
     		logSeconds=offSeconds-onSeconds
	}else{
		offMinutes-=1;
		logSeconds=(offSeconds+60)-onSeconds;      
	}

	if(offMinutes>=onMinutes) { 
		logMinutes=offMinutes-onMinutes; 
	}else{
		offHours-=1;
		logMinutes=(offMinutes+60)-onMinutes;
	}
  
	logHours = offHours - onHours;
	logHours= ((logHours < 10) ? "0" : "") + logHours;
	logMinutes=((logMinutes < 10) ? ":0" : ":") + logMinutes;
	logSeconds=((logSeconds < 10) ? ":0" : ":") +logSeconds;
	//alert("on: "+onHours+":"+onMinutes+":"+onSeconds+"\n"+"off: "+offHours+":"+offMinutes+":"+offSeconds)

	return(logHours+logMinutes+logSeconds);
}


/* Files */
/*-------*/
function doFilesOnload(){
	document.title=eval("fiTitle"+language);
	aColl=document.getElementsByTagName("a");
	for(i=0;i<aColl.length;i++){
		if(aColl[i].id.substring(1,aColl[i].id.indexOf("_"))==parent.curPageNum){
			aColl[i].className="jumpLinkHilite";
			document.getElementById("fiHiliteInfo").innerHTML=eval("fiHiliteInfo"+language);
		}
	}
}

/* Help */
/*------*/
var ids=new Array();

function helpInit(){
	var tids=document.getElementsByTagName("div");
	for(i=0;i<tids.length;i++)if(tids[i].className=="helptopic")ids[ids.length]=tids[i];
	for(i=0;i<ids.length;i++)ids[i].onmouseup=setstate;
}

function setstate(){
	collapseAllHelptopics();
	for(i=0;i<ids.length;i++){
		if(ids[i]==this){
			var d=this.parentNode.getElementsByTagName("div")[1];
			if(d.style.display=="block")d.style.display="none";
			else d.style.display="block";
		}
	}
}

function expandAllHelptopics(){
	for(i=0;i<ids.length;i++)ids[i].parentNode.getElementsByTagName("div")[1].style.display="block";
}

function collapseAllHelptopics(){
	for(i=0;i<ids.length;i++)ids[i].parentNode.getElementsByTagName("div")[1].style.display="none";
}

/* Margins */
/*---------*/

function margChange(num){
	var divObj;
	for(var i=1;i<=5;++i){		
		margHeadObj=document.getElementById("divmarginhead"+i);
		margContentObj=document.getElementById("divmargincontent"+i);
		if(i==num){
			margHeadObj.className="divmarginhead_active";
			margContentObj.style.display="block";
			if(includeVG&&(bw.ie7||bw.ie6||bw.ie5||bw.ns6))vgStart(i+2) //Marg.1 = Event 3, 2=4, 3=5, 4=6, 5=7
		}else{
			margHeadObj.className="divmarginhead_passive";
			margContentObj.style.display="none";
		}
	}
}

//

function mcPlay(file){
	setTimeout("mcObj.SetVariable('variablesFile','"+file+"');mcObj.Play()",swfWaitCycles)
}



//Collapsable DIVs
var ids=new Array();

function collapsableDIVsInit(){
	var tids=document.getElementsByTagName("div");
	for(i=0;i<tids.length;i++)if(tids[i].className=="collAnchor")ids[ids.length]=tids[i];
	for(i=0;i<ids.length;i++)ids[i].onmouseup=setCollState;
}

function setCollState(){
	collapseAll();
	for(i=0;i<ids.length;i++){
		if(ids[i]==this){
			var d=this.parentNode.getElementsByTagName("div")[1];
			if(d.style.display=="block")d.style.display="none";
			else d.style.display="block";
		}
	}
}

function collapseAll(){
	for(i=0;i<ids.length;i++)ids[i].parentNode.getElementsByTagName("div")[1].style.display="none";
}



//Docubox
var plCollection=new Array();

function plInit(){
	for(var i=0;i<plCollection.length;i++){
		plCollection[i].onclick = new Function("callFilefromDocubox('"+plCollection[i].href.substring(plCollection[i].href.lastIndexOf("/")+1)+"')");
		plCollection[i].setAttribute("href", "javascript:void(0)", 0);
	}
}

function collectElementsbyClass(classname){
	var collection=new Array;
	var inc=0;
	var allTags=document.getElementsByTagName("*");
	for (i=0;i<allTags.length;i++){
		if(allTags[i].className==classname){
			collection[inc++]=allTags[i];
		}
	}
	return collection;
}

function callFilefromDocubox(id){
	var getUrl;var getTarget="_blank";var getWidth="auto";var getHeight="auto";var getCaption=CAPTION;
	for(var i=0;i<files.length;i++){
		if(files[i].id==id){
			getUrl=files[i].url;
			getTarget=files[i].target;
			getCaption=files[i].caption;
			if(files[i].popupWidth)getWidth=files[i].popupWidth;
			if(files[i].popupHeight)getHeight=files[i].popupHeight;
			break;
		}
	}

	if(getUrl){
		switch(getTarget){
			case "_blank":
			case "popup": //divPopup(getUrl,getWidth,getHeight,getCaption)
			default:
				//popup(filename,dimX,dimY,attrScroll,attrCenter,attrResize,param,attrTool){
				popup(getUrl,725,525,"no","yes","yes","","no")
				//window.open(getUrl, target="_blank");
		}
	}else{
		alert("Datei nicht gefunden oder Datei beschädigt: files["+id+"]")
	}
}


