var runtests=0 ;


//-------------- ein windowser-Skript ??? ---------------------------------------

var CELLWIDTH=20 ;
var CELLDEPTH=18 ;
var frame_name = "browser";
var Xo,Yo;
Xo = 0;
Yo = 0;
//var dlayX=parent.frames["browser"].dlay.style.top ;
//var dlayX=parent.frames["browser"].dlay.style.top ;


BC=new Image() ; BC.src="http://213.155.73.75/icons/folder.gif" ;
BO=new Image() ; BO.src="http://213.155.73.75/icons/folder_o.gif" ;

FO_red=new Image(); FO_red.src="http://213.155.73.75/icons/folder_o_rot.gif";
FC_red=new Image(); FC_red.src="http://213.155.73.75/icons/folder_rot.gif";

FO_green=new Image(); FO_green.src="http://213.155.73.75/icons/folder_o_green.gif";
FC_green=new Image(); FC_green.src="http://213.155.73.75/icons/folder_green.gif";

FO_gelb=new Image(); FO_gelb.src="http://213.155.73.75/icons/folder_o_gelb.gif";
FC_gelb=new Image(); FC_gelb.src="http://213.155.73.75/icons/folder_gelb.gif";


VID=new Image() ; VID.src="http://213.155.73.75/icons/video.gif" ;
VLINE=new Image() ; VLINE.src="http://213.155.73.75/icons/line.gif" ;
CLINE=new Image() ; CLINE.src="http://213.155.73.75/icons/line_mitte.gif" ;
ELINE=new Image() ; ELINE.src="http://213.155.73.75/icons/line_unten.gif" ;
SPACE=new Image() ; SPACE.src="http://213.155.73.75/icons/space.gif" ;

//-------------------------------------- " - HEADER - " ------------------------------------

Object.prototype.getName=gN ;
Object.prototype.setName=sN ;
Object.prototype.Level=0;
Object.prototype.PageNr=0;
Object.prototype.has_video=0;

Object.prototype.namE="undefinedObject" ;
function gN() {
	return this.namE;
	}
function sN(x) {
	if(typeof(x) == typeof("blahFaa")) this.namE=x ;
	}


Array.prototype.init=it ;
Array.prototype.dad=null ;
Array.prototype.visible=false ;
Array.prototype.addFile=aF ;
Array.prototype.addObj=aO ;
Array.prototype.getIt=gI ;
Array.prototype.get=gt ;
Array.prototype.look=lk ;
Array.prototype.changeV=cV ;
Array.prototype.getPath=gPath ;
Array.prototype.inWork=false ;
Array.prototype.plotMe=pM ;
Array.prototype.getRoot=gR ;
Array.prototype.Level=0 ;
Array.prototype.PageNr=0;
Array.prototype.has_video=0;



//-------------------------- InstanzMethoden ---------------------------------------


function cdd() {
	return (this.dad==null) ;
	}

function croot() {
	return (this.dad==this) ;
	}

function it(x) {
	this.dad=this ;
	this.setName(x) ;
	root=this ;
	}

function cV() {
if((this.dad!=null) && checkObj(this.dad)!="undefined") 
	this.visible=!this.visible ;
	}

/*  --  folgende 'addFile(..)'-Fkt. ist stark verbesserungswürdig !!!
	man sollte Files nicht unbedingt als neue Arrays anlegen,
	bzw. wenn man das tut sollten die alten 'deleted' werden um den heap nicht 
	unnötig zu belasten !!
	als Feature wäre denkbar diese fkt. so einzurichten, das ein bereits bestehendes
	File den 'neuen' Eintrag zusätzlich abspeichert, so daß man leztlich eine 
	'File-History' erhält !!
*/
function aF(x) {
var fold = new Array();
if(checkObj(x)=="File") {
	if(!this.look(x)) {
		lg=this.length ;
		fold = this;
		while (checkObj(fold)!="root")
		{
		fold.has_video=1;
		fold=fold.dad;
		
		}
		fold.has_video=1;
		this[lg]=new Array() ;
		this[lg].setName(x.getName()) ;
		(this[lg])[0]=x[0] ;
		(this[lg])[1]=x[1] ;
		this[lg].Level=x[2] ;
		
		}
	}
}

function aO(x,lev,nr) {
	//alert(x.getName() + "<>" + nr);
	if((checkObj(x)=="Folder") && (!this.look(x)) ) {  	//&& (x!=this)) {
		lg=this.length ;
		this[lg]=x ;
		(this[lg]).dad=this ;
		(this[lg]).Level = lev;
		(this[lg]).PageNr = nr;
		(this[lg]).has_video=0;
		return true ;
		}
	else {return false ;}
	}
 
function lk(x) {
flag=(checkObj(x)=="undefined") ;
ct=0 ;
while((!flag)&&(ct<this.length)) {
	flag=(this[ct].getName()==x.getName()) ;
	ct++ ;
	}
return flag ;
}


function gI(ObName) {
dmy=new Array() ;
if(typeof(ObName)==typeof("BlahBlh")) {
if((ObName=="")||(ObName==".")) dmy=this ;
else if(ObName=="..") dmy=this.dad ;
	else {
		var ct=0 ;
			for(ct=(this.length-1); ct>=0; ct--)
				 if((this[ct].getName())==ObName) dmy=this[ct] ;
		}
	}
return dmy ;
} 

function gt(ObjName) {
dmy=new Array() ;

if(typeof(ObjName)==typeof("BlahBlah")) {
dlist=new Array() ;	
var k=0 ;
	
	if(ObjName.charAt(0)=="/") dmy=this.getRoot() ;
	else dmy=this ;
	dlist=ObjName.split("/") ;
	k=0 ;
	while((checkObj(dmy)!="undefined") && (k<dlist.length)) {
		dmy=dmy.getIt(dlist[k]) ;
		k++ ;
		}
	}
//alert(dmy.Level);	
return dmy ;
}


function gPath() {
var strg ;
var z ;
strg="" ;
z=this ;
if(checkObj(z)=="Folder") {
	while(checkObj(z)!="root") {
		strg=z.getName()+"/"+strg ;
		z=z.dad ;
		}
	}
return "/"+strg ;
}

function gR() {
var z=this ;
while(checkObj(z)!="root") z=z.dad ;
return z ;
}




//-------------------------- globale Methoden !!!!! -------------------------------------------

function change(x,xpos,ypos) {
var dmy=new Array() ;

Xo = xpos;
Yo = ypos;
dmy=root.get(x) ;

if ((dmy.Level == 0) || ((parent.logged_in) && (parent.level == dmy.Level)))
{
   dmy.changeV() ;
   graph(root,xpos,ypos) ; 
}
else
{
//if (! parent.parent.logged_in){
parent.video.location.href="login.asp?Q=B"
//}
}
}

function checkObj(x) {
TyP="undefined" ;
if(typeof(x) == typeof(new Array())) {
	if(x.dad==null) TyP="File" ;
	else {
		if(x.dad==x) TyP="root" ;
		else TyP="Folder" ;
		}
	}
return TyP ;
}

var counter=0;
var found=false;
var f_obj;

function find_film(obj,film)
{
var i;
var s_str, f_str;
var dummy;
s_str = film;
s_str = s_str.toUpperCase();
counter++;
//alert(s_str);
for (i=0; i<obj.length; i++)
{
 //alert(obj[i][0]);
 if((checkObj(obj[i])!="Folder") && (obj[i][0]))
 {
  f_str = obj[i][0]; //.toUpperCase;
  
  
  f_str = f_str.toUpperCase();
  if (f_str == s_str)
    {
    dummy = obj[i].getName();
    //alert(dummy);
    found = true;
    f_obj = obj[i];
    return obj[i].getName();
    }
    else
   {
      //find_film(obj[i],film);
    }
 }
 else
 {
 find_film(obj[i],film);
 }
}
dummy = counter;
return dummy;
}

function find(film){
var dmy=new Array() ;
var ff_obj;
dmy=root.getRoot() ;
found = false;
f_obj = null
find_film(dmy,film);
if (found)
{
ff_obj = f_obj;
//alert(f_obj);
f_obj.changeV() ;
while (f_obj.dad && (f_obj != f_obj.dad))
{
 f_obj = f_obj.dad;
 //alert(f_obj);
 if (f_obj != null) f_obj.changeV();
}
return ff_obj;
}
else{return null};

 
}


function set_video()

{
var dmy;
dmy=root.getRoot() ;



}

//---------------------------- graphische Ausgabe --------------------------------

var AgntUsr=navigator.userAgent.toLowerCase();
	
	var DomYes
	if (document.getElementById) DomYes =1; else DomYes =0;				// DOM
	
	var NavYes
	if ((AgntUsr.indexOf('mozilla')!=-1)&&(AgntUsr.indexOf('compatible')==-1)) NavYes =1; else NavYes =0;	// Netscape
	
	var ExpYes
	if (AgntUsr.indexOf('msie')!=-1) ExpYes =1 ; else ExpYes =0;				// IExplorer
	
	var Opr5
	if ((AgntUsr.indexOf('opera 5')!=-1)||(AgntUsr.indexOf('opera/5')!=-1)) Opr5 = 1; else Opr5 = 0;	// Opera 5
	
	var DomNav
	if (DomYes&&NavYes) DomNav = 1; else DomNav = 0;					// Netscape 6 up
 	var DomExp
 	if (DomYes&&ExpYes) DomExp = 1; else DomExp = 0;					// IExplorer 5 up
	var Nav4
	if (NavYes && (!DomYes)) Nav4 = 1 ; else Nav4 = 0;			//  && (window.document.layers)Netscape 4 
	//Nav4 = 1
	var Exp4
	//if (ExpYes&&!DomYes&&document.all) Exp4 = 1; else Exp4 = 0;				// IExplorer 4

var g_Browser;
if (Nav4) g_Browser="Nav4";
if (Exp4) g_Browser="Exp4";
if (DomExp) g_Browser="Exp5";
if (DomNav) g_Browser="Nav6";

function writehead(O) {
	
	parent.frames["browser"].document.writeln("<html><head><title>TreeView Servlet</title>");
	parent.frames["browser"].document.writeln("<script language=\"JavaScript\">");
	parent.frames["browser"].document.writeln("<!--");
	parent.frames["browser"].document.writeln("var sender_id");
	parent.frames["browser"].document.writeln("sender_id=" + sender_id);
	
	parent.frames["browser"].document.writeln("function navi(pg,pgnr)");
	if (navigator.appName=="Netscape")
	{
	parent.frames["browser"].document.writeln("{parent.frames['objects'].change(pg,window.pageXOffset,window.pageYOffset);}");
	}
	else
	{
	parent.frames["browser"].document.writeln("{parent.frames['objects'].change(pg,window.document.body.scrollLeft,window.document.body.scrollTop);");
	//parent.frames["browser"].document.writeln("window.open('shots.asp?pnr='+pgnr+ '&id=' +)");
	parent.frames["browser"].document.writeln("parent.frames.content.shots.location.href=\"shots.asp?pnr=\" +pgnr + \"&id=\" + sender_id");
	
	parent.frames["browser"].document.writeln("}");
	}
	parent.frames["browser"].document.writeln("//-->");
	parent.frames["browser"].document.writeln("</script>");
      parent.frames["browser"].document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"pvb.asp?target=tree&id=" + sender_id + "\">");
	parent.frames["browser"].document.writeln("</head>");
	
	parent.frames["browser"].document.writeln("<body>") ; // bgcolor=white link=white vlink=white alink=white>");
	//parent.frames["browser"].document.writeln("<STYLE TYPE='text/css'>");
	
	//parent.frames["browser"].document.writeln("td {font-size: 10px; font-family: Verdana,Arial; } </style>");
	//parent.frames["browser"].document.writeln("<center><font size=2 face='Verdana, Arial'>" + O.getName() + "</font></center><br>") ;
	parent.frames["browser"].document.writeln("<font face='Verdana, Arial' size=-2>");
	//parent.frames["browser"].document.write("<div id=\"dlay\" style=\"position: absolute; ") ;
	//parent.frames["browser"].document.writeln("left: "+0+" px; top: "+0+" px; visibility: visible\" >") ;
	
}

function graph(O,X,Y) {
//var Xo,Yo
//Xo = 0;
//Yo = 0;

parent.frames["browser"].document.open() ;
writehead(O) ;
parent.frames["browser"].document.writeln("<table cellspacing=0 cellpadding=0 border=0>") ;
parent.frames["browser"].document.writeln("<tr>") ;
for(g=0; g<CELLDEPTH ; g++) parent.frames["browser"].document.writeln("<th width="+CELLWIDTH+"></th>") ;
parent.frames["browser"].document.writeln("</tr>") ;

if(checkObj(O)=="root") {

	O.plotMe() ;
//.........................


} else if(checkObj(O)=="Folder") {
	dummy=new Array() ;
	dummy=O.dad ;
	O.dad=O ;

//..........................

	O.dad=dummy ;
	}

if(typeof(X)!=typeof(2)) X=0 ;
if(typeof(Y)!=typeof(2)) Y=0 ;
if (Y>0) Y = Y + 20;
parent.frames["browser"].document.writeln("</table>") ;
//parent.frames["browser"].document.writeln("</div>") ;
parent.frames["browser"].document.writeln("<script language=\"JavaScript\">");
//parent.frames["browser"].document.writeln("alert(" + Y + ")");
parent.frames["browser"].document.writeln("window.scrollTo(" + X + "," + Y + ")");
parent.frames["browser"].document.writeln("</script>");
parent.frames["browser"].document.writeln("</body>") ;
parent.frames["browser"].document.writeln("</html>") ;

parent.frames["browser"].document.close() ;
}


function spaceOut(Ob, pos) {

if(checkObj(Ob)=="Folder") {
	var ctr ;
	var cr=0 ;
	var limit=0 ;
	ctr=Ob ;
	var img;
	var img_nr;
	var wstr;
	dmy=new Array() ;
	while(checkObj(ctr)!="root") {
		dmy[dmy.length]=ctr ;
		ctr=ctr.dad ;
		}
	dmy[dmy.length]=ctr ;
	if(pos==-1) limit=1 ;
	for(cr=(dmy.length-1); cr>=limit; cr--) 
	   if (Nav4)
	   {
	   if ((dmy[cr].inWork))
		  { 
		  
		  wstr = "/icons/line.gif"
		 	}
			else
			{ 
			wstr = "/icons/space.gif"
		   
            }
            if (cr > limit)	
            {
            parent.frames["browser"].document.writeln("<td align=right><img src=\"" +wstr+ "\" width="+((7/8)*CELLWIDTH)+" border=0></td>") ;
            }	
	   }
	   else
	   {
		parent.frames["browser"].document.writeln("<td align=right><img src=\"/icons/line.gif\" width="+((7/8)*CELLWIDTH)+" border=0></td>") ;
		img_nr = parent.frames["browser"].document.images.length-1;
		img = parent.frames["browser"].document.images[img_nr]; 
		if(dmy[cr].inWork)
		  { 
		  img.src=VLINE.src ;
			}
			else
			{ 
			
		  img.src=SPACE.src ;
            }		
 		
	}
	if (Nav4)
	{
	
	if((pos>=0) && (pos==Ob.length-1)) parent.frames["browser"].document.writeln("<td align=right><img src=\"/icons/line_unten.gif\" width="+((7/8)*CELLWIDTH)+" border=0></td>") ;
		
	else {
		
		if((pos==-1) && (!(Ob.dad.inWork))) 
		 {
		 parent.frames["browser"].document.writeln("<td align=right><img src=\"/icons/line_unten.gif\" width="+((7/8)*CELLWIDTH)+" border=0></td>") ;
		
		 }
		 else
		 {
		 parent.frames["browser"].document.writeln("<td align=right><img src=\"/icons/line_mitte.gif\" width="+((7/8)*CELLWIDTH)+" border=0></td>") ;
		
		 }
		}
		
	}
	else
	{
	if((pos>=0) && (pos==Ob.length-1)) img.src=ELINE.src ;
	else {
		img.src=CLINE.src ;
		if((pos==-1) && (!(Ob.dad.inWork))) img.src=ELINE.src ;
		}
      
	}
	}  // end for
}


function pM() {
var ausgabe;
var fold;
fold = "folder";
ausgabe = "";
ausgabe = this.getName();
if (ausgabe.substring(0,1) == "@")
{
   ausgabe = ausgabe.substring(1,ausgabe.length);
}   

parent.frames["browser"].document.writeln("<tr>") ;
spaceOut(this,-1) ;
//if(!(this.dad.inWork)) 
//if(parent.frames[0].document.images.length>=0) parent.frames[0].document.images[0] ; //.images[0].src=ELINE.src ;//images[(parent.frames[0].document.images.length)-1].src=ELINE.src ;


parent.frames["browser"].document.writeln("<td align=right><a href=\"javascript:navi('"+escape(this.getPath())+"'," + this.PageNr+")\">") ;
parent.frames["browser"].document.writeln("<img src=\"/icons/folder.gif\" width="+((6/8)*CELLWIDTH)+"  border=0></a></td>") ;

parent.frames["browser"].document.writeln("<td align=left colspan=18 nowrap><a href=\"javascript:navi('"+escape(this.getPath())+"'," + this.PageNr+")\">&nbsp;"+unescape(ausgabe.replace('+++','/'))+ "</a></td>") ;
parent.frames["browser"].document.writeln("</tr>") ;
if (this.has_video == 0)
    {
    BO.src = FO_red.src;
    BC.src = FC_red.src;
    }
if (this.has_video == 1)
    
    {
    if (this.level > 0)
    {
    BO.src = FO_gelb.src;
    BC.src = FC_gelb.src;
    }
    else
    {
    BO.src = FO_green.src;
    BC.src = FC_green.src;
    }
    }
if(this.visible) {
    
	parent.frames["browser"].document.images[parent.frames["browser"].document.images.length-1].src=BO.src ;
	var ct=0 ;
	for(ct=0; ct<this.length; ct++) {
		this.inWork=(ct<(this.length-1)) ;
		if(checkObj(this[ct])=="Folder") this[ct].plotMe() ;
		else if(checkObj(this[ct])=="File") {
			parent.frames["browser"].document.writeln("<tr>") ;
			spaceOut(this, ct) ;
			parent.frames["browser"].document.writeln("<td align=right>") ;
			parent.frames["browser"].document.writeln("<img src=\"/icons/video.gif\" width="+((7/8)*CELLWIDTH)+" border=0></td>") ;
			
			parent.frames["browser"].document.writeln("<td align=left colspan=18 nowrap><a href=videos.asp?id=" + sender_id + "&VideoNr="+(this[ct])[1]+"&L=" + this[ct].Level+"&B=" + g_Browser + " target=video alt=\"" + (this[ct])[0] +"\" >&nbsp;"+(this[ct])[0].replace('+++','/')+"</a></td>") ;
			
			
			
			parent.frames["browser"].document.writeln("</tr>") ;
			parent.frames["browser"].document.images[parent.frames["browser"].document.images.length-1].src=VID.src ;
			}
		}
	}
else parent.frames["browser"].document.images[parent.frames["browser"].document.images.length-1].src=BC.src ;

}


//------------------------------ root generieren + Verzeichnisverwaltung ----------------------------------

root=new Array() ;
root.init("root") ;

iWork=new Array() ;
iWork=root ;

function mkdir(dName,dLev,pnr) {
if(checkObj(dName)=="Folder") iWork.addObj(dName,dLev) ;
else if(typeof(dName)==typeof("blahblahh")) {
	dmy=new Array() ;
	dmy.dad="dummy" ;
	dmy.setName(dName) ;
	
	iWork.addObj(dmy,dLev,pnr) ;
	}
}

function mkfile(fName, dName, fNr, fLev) {
if(checkObj(fName)=="File") iWork.addFile(fName) ;
else if(typeof(fName)==typeof("blahblahh")) {
	if(dName==null) dName=fName ;
	if(fNr==null) fNr=-1 ;

	dmy=new Array() ;
	dmy.setName(fName) ;
	dmy[0]=dName ;
	dmy[1]=fNr ;
	dmy[2]=fLev;
	iWork.addFile(dmy) ;
	}
}

function cd(pAth) {
if(typeof(pAth)==typeof("blahblahh")){
tmp=new Array() ;
tmp=iWork ;
	if(pAth=="..") iWork=iWork.dad ;
	else iWork=iWork.get(pAth) ;
	if(iWork==null) iWork=tmp ;
	}
}
	
function readFiles(Fds){
var k=0 ;

for(k=0 ; k<Fds.length ; k++) {
	var x=Fds[k] ;
	if(typeof(x)==typeof("BlaBlaa!!")) {
		if((x.charAt(0)==".") || (x.charAt(0)=="/")) cd(x) ;
		else {
			if(x.charAt(0)=="@") {
				var dirName="Blah!!" ;
				dirName=x ;
				
				if (typeof(Fds[k+2]) == typeof("Bla"))
				{
				mkdir(dirName,Fds[k+1],0) ;
				k = k + 1;
				}
				else
				{
				mkdir(dirName,Fds[k+1],Fds[k+2]) ;
				k = k + 2;
				}
				}
			else 	if((k+3)<Fds.length) {
			    
				mkfile(x, Fds[k+1], Fds[k+2], Fds[k+3]) ; 
				k=k+3 ;
				}
			}
		}
	else if( (typeof(x)==typeof(new Array())) && (x.length>0)) {
		y=new Array() ;
		y.setName(x[0]) ;
		if(x.length>2) {
			if(x[1]!= null) y[0]=x[1] ;
			else y[0]=x[0] ;
			if(x[2]!= null) y[1]=x[2] ;
			else y[1]=-1 ;
			if(x[3]!= null) y[2]=x[3] ;
			else y[2]=-1 ;
			}
		mkfile(y) ;
		}
	}
}

function display(x) {
	if(typeof(x)==typeof("blah") && (x!="")) root.setName(x) ;
	graph(root) ;
}

