var dom = (document.getElementById) ? true : false;
var ns5 = ((navigator.userAgent.indexOf("Gecko")>-1) && dom) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ns4 = (document.layers && !dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ns4 && !ie4 && !ie5) ? true : false;

var fwin=0;
var smartedit;
var func;
var keypress;

var posx;
var posy;

var pictype="on";
var texttype="on";

var moid;
var mobj;
var moffx;
var moffy;
var zin=100;
var dragit=0;
var scaleit=0;
var dragdrop=0;

var afunc;
var atype;
var aid;
var aobj;

var cbg;
var cobj;
var cid;
var ctype;

var cbg_old;
var cc_old;

var sortrow=2;

var sel="browse";
var browseid=0;

var searchtop="";
var browsetop="";
var browsepath="";

var dato = new Date();
var showicon=1;

// - - - - - - - - - - - - - - - - HTMLElement - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

if (typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){
HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode){
switch (where){
	case 'beforeBegin':	this.parentNode.insertBefore(parsedNode,this);		break;
	case 'afterBegin':	this.insertBefore(parsedNode,this.firstChild);		break;
	case 'beforeEnd':	this.appendChild(parsedNode);			break;
	case 'afterEnd':	if (this.nextSibling) 		this.parentNode.insertBefore(parsedNode,this.nextSibling);
			else 			this.parentNode.appendChild(parsedNode);
			}
		}
HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){
	var r = this.ownerDocument.createRange();
	r.setStartBefore(this);
	var parsedHTML = r.createContextualFragment(htmlStr);
	this.insertAdjacentElement(where,parsedHTML)
	}

HTMLElement.prototype.insertAdjacentText = function(where,txtStr){
	var parsedText = document.createTextNode(txtStr)
	this.insertAdjacentElement(where,parsedText)
	}
}

// - - - - - - - - - - - - - - - - MOUSE FUNCTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function  initpage(){
	var cook=getCookie("collected");
	if (!cook)	setCookie("collected","0",100,"/");	
	if (tabs)	stab(sel);
	if (window["startnode"] != undefined){	
		auto_winsize();
		tree(startnode);
		}
	document.onkeydown = downkey;
	document.onkeyup = upkey;
	document.onmouseup = upMouse;
	document.onmousedown = downMouse;
	document.onmouseout = mouseOut;
	document.onmousemove = moveMouse;
	document.oncontextmenu = function(){return false}
	document.onselectstart = captureEvents;
	document.onselect = captureEvents;
	}

function upkey(e){
	keypress=false;
	}
function downkey(e) {
	if( !e){	if( window.event )	e = window.event;
		else	return;
  		}
	if( typeof(e.keyCode ) == 'number' )		keypress = e.keyCode;
	else if (typeof( e.which ) == 'number')		keypress = e.which;
	else if( typeof( e.charCode ) == 'number' )	keypress = e.charCode;
	if (adminmenu && keypress==13){
			admin_menu(ctype,cid);
			}
	return;
	}

function captureEvents(e){
	if (keypress==17)	return;
	var evtobj=window.event? window.event : e
	var targetobj=window.event? event.srcElement : e.target
	if (targetobj.tagName!="TEXTAREA" && targetobj.tagName!="INPUT" && targetobj.tagName!="B")	return false;
	}

function moveMouse(e){
	posx = (ns4||ns5)? e.pageX: window.event.clientX + document.body.scrollLeft;
	posy = (ns4||ns5)? e.pageY: window.event.clientY + document.body.scrollTop;
	if (dragdrop){
		mobj.style.top=posy;
		mobj.style.left=posx+20;
		}
	if (dragit){
		mobj.style.top=posy-moffy;
		mobj.style.left=posx-moffx;
		}
	if (scaleit){
		if ((posy-moffy)<80)		return;
		getobj(moid+"_body").style.height=posy-moffy-36;
		getobj(moid+"_5").style.height=posy-moffy;
		getobj(moid+"_bottom").style.top=posy-moffy-16;
		}
	}


function upMouse(e){
	dragit=scaleit=0; 
	}

function downMouse(e){
	if (fwin || dragit || scaleit || keypress==17)	return;
	if (!e) var e = window.event;
	var tobj=window.event? event.srcElement : e.target
	if (e.which) 	var rightclick = (e.which == 3);
	else if (e.button) 	var rightclick = (e.button == 2);

	if (adminmenu && rightclick){
		if (dragdrop && atype=="c")	admin_action(atype,cid,afunc);
		else			admin_menu(ctype,cid,tobj);
		return false;
		}

	switch (ctype){
	case "o":		sortrow=cid;
			if (product[browseid] == undefined)	return;
			var sortarray=new Array();
			for (var i in product[browseid])	sortarray.push(product[browseid][i]);	
			if (product_fields[sortrow][5])		sortarray.sort(sortname);
			else				sortarray.sort(sortnumber);
			product[browseid]=sortarray;
			hideme("admin");
			write_product_list();	
			break;

	case "t":		stab(cid);	
			break;

	case "ptext":	var picframe=getobj(sel+"_picdiv"+cid);
			if (picframe.style.display=="block")	picframe.style.display="none";
			else {	var pro=product_row("get",cid);
				picframe.innerHTML="<B style='position:absolute;width:90%;left:42px;top:2px;height:380px; font: 11px arial;border:1px solid #DDD;padding:2px;overflow:auto;text-align:left'>"+pro[16]+"</B>";
				picframe.style.height=400;
				picframe.style.display="block";
				}
			hideme("admin");		
			break;


	case "p":		if (adminmenu && keypress){
				adminkey(cid);
				break;
				}
			var picframe=getobj(sel+"_picdiv"+cid);
			if (picframe.style.display=="block")	picframe.style.display="none";
			else 				writepictures(cid);
			hideme("admin");		
			break;

	case "c":		gotree(cid);			break;
	case "c2":	browsetree(cid);			break;
	case "info":	listinfo();				break;
	case "e":		return false;
	default:		dragdrop=0;
			hideme("admin");
		}
	return;
	}	

function ov(obj,pid,type){
	if (fwin || dragit || scaleit)	return;
	mouseOut();
	cbg_old=obj.style.backgroundColor;
	cc_old=obj.style.color;
	
	cobj=obj;
	cid=pid;
	ctype=type;
	switch (ctype){

	case "e":						break;
	case "info":
	case "o":		obj.style.color="#024";
			obj.style.backgroundColor="#8ac";
	case "a":						break;
	case "t":		obj.style.color="D8D8D8";		break;
	default:		obj.style.backgroundColor="#D8D8D8";
		}
	}

function mouseOut(){
	if (!cobj) 		return;
	cobj.style.backgroundColor=cbg_old;
	cobj.style.color=cc_old;
	cobj=cid=ctype="";
	return false;
	}

// - - - - - - - - - - - - - - - - MAIN FUNCTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function auto_winsize(){
	var W = document.body.clientWidth;
	var H = document.body.clientHeight
	var obj=getobj("con"+startnode);
	obj.style.height=H-140+"px";

	obj=getobj("topbar");
	obj.style.width=W-240+"px";

	var size=tabs.length;
	for (i=0;i<size; i++){
		obj=getobj(tabs[i][0]);
		obj.style.height=H-77+"px";
		obj.style.width=W-240+"px";
		}
	}

function searching(){	
	sel="search";
	browseid=0;
	stab("search");
	fillbox("search","<div style='font:30px arial;background:#FFF;padding:30px;margin:30px'><img src=img/anim_wait.gif> Søger....vent venligst!</div>");
	}

function file_boxsize(ptype,tid){
	pictype=ptype;
	writepictures(tid);
	}

function remove_all(){
	setCookie("collected","0",100,"/");
	writecollected();
	}

function remove_file(tid){
	var collected=getCookie("collected");
	collected=collected.split(",");
	subobj(collected,tid);
	setCookie("collected",collected.join(","),100,"/");	
	writecollected();
	if (obj=getobj("coll"+tid))	obj.src="img/collect.gif";
	}

function collect_file(tid){
	var collected=getCookie("collected");
	var obj=getobj("coll"+tid);
	collected=collected.split(",");
	var theobj=isobj(collected,tid);
	if (theobj){
		subobj(collected,tid);
		obj.src="img/collect.gif";
		}
	else {	collected.push(tid);	
		obj.src="img/get.gif";					
		}
	setCookie("collected",collected.join(","),100,"/");		
	}

function get_file(tid){
	showme("info",posx-28,posy-200,170,210,"<iframe src=download?id="+tid+" width=100% height=100% frameborder=0 scrolling=no></iframe>","","");
	}

function view_picture(tid,W,H){
	if (W>H){		H=Math.round((H/W)*400);	W=400; }
	else {		W=Math.round((W/H)*400);	H=400; }
	showme("admin",posx-20,posy-20,W,H,"<img src='img.php?t=p&id="+tid+"' style='border:1px solid #448' onmousedown=hideme('admin');>","","");
	}

function collectpictures(type){
	fillbox("collect","<iframe src='collected.php?type="+type+"' width=100% height=100% frameborder=0 scrolling=no></iframe>");
	}

function listinfo(){
	obj=getobj("admin");
	if (obj.style.display=="block"){	
		obj.style.display="none";
		return;
		}
	var txt="<table>";
	for (i=2;i<product_fields.length; i++){
		txt+="<tr><td><img src=img/";
		txt+=(product_fields[i][4])?	"checked":"unchecked";
		txt+=".gif onmousedown=listtext(this,"+i+");></td><td>"+product_fields[i][1]+"</td></tr>";
		}
	txt+="</tr></table>";
	showme("admin",242,77,100,200,"<div class=context>"+txt+"</div>","","");
	}

function listtext(t,i){
	t.src=(product_fields[i][4])? "img/unchecked.gif":"img/checked.gif";
	product_fields[i][4]=(product_fields[i][4])? 0:1;
	write_product_list();
	}

function picsearch(){
	fillbox("topbar","<div style='padding:10px'><a href=javascript:stab('search');><img src=img/lookingglass.gif> Søg på produkter med billeder</a></div>");
	fillbox("search","<iframe src='ajaxlist.php' width=100% height=95% frameborder=0 scrolling=no></iframe>");
	}

// - - - - - - - - - - - - - - - - FORM FUNCTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function formit(keys){
	var txt=	"<form method=post action=data.php target=actionframe><input type=hidden name=f value=seak><table cellpadding=0 cellspacing=0 class=seakform><tr>"
		+"<td colspan=2 style='font:bold 16px arial;height:50px'>Søgning på produkter</td></tr><tr>";
	var ns=(startnode==2454 || startnode==616)?	keys.length:keys.length-7;

	for (i=3;i<ns; i++){
		if (keys[i][3])	txt+="<tr><th>"+keys[i][1]+"</th><td><input type=text name=\"form["+keys[i][0]+"]\" value='' style='width:"+keys[i][2]+"px' class=seaktext2> </td></tr>";
		}
	return txt+"<tr><td></td><td height=40><input type=submit value='søg'></td></tr></form></table>";
	}
// - - - - - - - - - - - - - - - - MAIN TAB FUNCTION - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function stab(val){
	switch(val){
	case "browse":		fillbox("topbar",browsepath+browsetop);			break;
	case "search":		browseid=0;
				fillbox("search",formit(product_fields));
				fillbox("topbar","<div style='padding:10px'><a href=javascript:picsearch();><img src=img/lookingglass.gif> Search based on picture information</a></div>");		break;
	case "collect":		writecollected();						break;
	case "help":		fillbox("topbar","");						break;
	case "administration":	fillbox("administration","<iframe src=\"administration.php\" name=adminframe width=100% height=100% frameborder=0 scrolling=yes></iframe>");
				}

	var txt="<table><tr>";
	var size=tabs.length;
	var name;
	var tab;
	for (i=0;i<size; i++){
		name=tabs[i][0];
		if (val==name){
			sel=name;
			tab="tabON";
			getobj(name).style.display="block";
			}
		else 	{	
			tab="tabOFF";
			getobj(name).style.display="none";
			}
		txt+="<td class='"+tab+"' onmouseover=ov(this,'"+name+"','t');>"+tabs[i][1]+"</td><td class='"+tab+" end'></td>";
		}
	txt+="</tr></table>";
	fillbox("tabsdiv",txt);
	}

// - - - - - - - - - - - - - - - - THREE FUNCTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function refreshpage(tnode){
	var row=getrow(catalogue,tnode,0);
	actionframe.location.href="data.php?s[cat]="+row[0];
	}

function gotree(tnode){

browsetop="";
stab("browse");
var row=getrow(catalogue,tnode,0);
var obj=getobj("con"+tnode);
var thref=getobj("tree_"+tnode);
	switch(row[3]){
	case "close":	
		thref.innerHTML="<img src=img/open.gif>"+row[2];
		row[3]="open";
		obj.style.display="block";
		tree(tnode);
		return;	
	case "open":	
		row[3]="close";
		thref.innerHTML="<img src=img/close.gif>"+row[2];
		obj.style.display="none";
		return;							

	case "empty":
		if (dragdrop) admin_action(atype,tnode,afunc);
		else {	browseid=tnode;
			treepath(tnode);
			if (product[tnode] !=undefined)	write_product_list();
			else	actionframe.location.href="data.php?s[cat]="+row[0];
			}
		}
	}

function tree(tnode){
var txt="";
for(var i=0; i<catalogue.length; i++){
	if (catalogue[i][1] == tnode){
		catalogue[i][3]=(getrow(catalogue,catalogue[i][0],1))?	"close":"empty";
		txt+="<span id='tree_"+catalogue[i][0]+"' onmouseover=ov(this,"+catalogue[i][0]+",'c');><img src=img/"+catalogue[i][3]+".gif>"+catalogue[i][2]+"</span><div id=con"+catalogue[i][0]+"></div>";
		}
	}
	fillbox("con"+tnode,txt);
	}

// - - - - - - - - - - - - - - - - Tree PATH - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function treepath(tnode){
var txt2="";

var row=getrow(catalogue,tnode,0);
if (row[0] == undefined){
	browsepath="";
	fillbox("topbar",browsepath);
	return;
	}

browsepath="<table width=100%><tr><td style='width:20px;padding:6px'><img src=\"img/arrow.gif\" onclick=browsetree("+row[1]+");></td><td style='font:12px arial;color:#FFF'>";
do {	txt2=row[2]+" / "+txt2;
	} while (row=getrow(catalogue,row[1],0));
	browsepath+=txt2;
	if (adminmenu){
		browsepath+="</td><td style='text-align:right;font:12px arial;color:#FFF;padding:6px'><a href=javascript:admin_action('c',"+tnode+",'newproduct'); style='color:#bbF'>NEW product</a>";
		}
	browsepath+="</td></tr></table>";
	fillbox("topbar",browsepath);
	}

// - - - - - - - - - - - - - - - - BROWSE PATH - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function browsetree(tnode){
var txt="";
var row=getrow(catalogue,tnode,0);
treepath(tnode);

if (row[3]=="empty"){
	browseid=tnode;
	if (product[tnode] !=undefined)	write_product_list();
	else				actionframe.location.href="data.php?s[cat]="+row[0];
	return;
	}

for(var i=0; i<catalogue.length; i++){
	if (catalogue[i][1] == tnode){
		catalogue[i][3]=(getrow(catalogue,catalogue[i][0],1))?	"close":"empty";
		txt+="<span onmouseover=ov(this,"+catalogue[i][0]+",'c2');><img src=img/"+catalogue[i][3]+".gif>"+catalogue[i][2]+"</span>";	
	}}
	fillbox("browse","<div class=\"indextext\">"+txt+"</div>");
	}


// - - - - - - - - - - - - - - - - WRITE LIST FUNCTION - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function formatdate(thisdate){
	dato.setTime(thisdate*1000);
	return dato.getDate()+'/'+(1+dato.getMonth())+'-'+dato.getFullYear();
	}

function write_product_list(){

var	obj=getobj(sel);
var	objw=parseInt(obj.style.width)-18;
var	data=product[browseid];
var	dlen=data.length;
var	fields=product_fields.length;
var	txt="";	
var	dw=350;

if (dlen<1){	browsetop="";
		fillbox(sel,"<div style='position:absolute;top:20px;left:20px;font: 17px arial;color:#999;'>No products</div>");
		return false;
		}

		browsetop='<div class=browsetop style="position:absolute;top:34px;left:0px"><b class=ic onmouseover=ov(this,0,"info");>INFO</b><H3 onmouseover=ov(this,3,"o");>'+product_fields[3][1]+'</H3>';
for(i=4;i< fields;i++){
	if (product_fields[i][4]){	
		browsetop+='<H1 onmouseover=ov(this,'+i+',"o");>'+product_fields[i][1]+'</H1>';
		dw+=100;
		}
	}
	browsetop+='</div>';

	if (sel=="browse")	fillbox("topbar",browsepath+browsetop);
	else		fillbox("topbar",browsetop);

	if (objw>dw)	dw=objw;

for (var tr in data){
	if (data[tr][1]==1)	txt+='<div class=rw style="width:'+dw+'px" onmouseover=ov(this,'+data[tr][0]+',"ptext"); id=tr'+data[tr][0]+'><img src="img/text.jpg"';
	else 		txt+='<div class=rw style="width:'+dw+'px" onmouseover=ov(this,'+data[tr][0]+',"p"); id=tr'+data[tr][0]+'><img src="img.php?id='+data[tr][2];
			txt+='" class=ic><H3>'+data[tr][3]+'</H3>';
	for(i=4;i<fields;i++){	
		if (product_fields[i][4]){
			txt+='<H1>';
			switch (i){
			case 7:	txt+="<a href=class/ean.php?code="+data[tr][i]+">"+data[tr][i]+"</a>";	break;
			case 13:	
			case 14:	txt+=formatdate(data[tr][i]);						break;
			default:	txt+=data[tr][i];
				}
			txt+='&nbsp;</H1>';
			}
		}
	txt+='</div><div id="'+sel+'_picdiv'+data[tr][0]+'" style="position:relative;display:none"></div>';
	}
	obj.innerHTML=txt;
	return false;
	}

// - - - - - - - - - - - - - - - -DOWNLOAD MENU- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function download_asset(id){
	func="download";
	var txt="";
	var row=asset_row("get",id);
	var files=row[6].split(",");
	var sz=row[4].split("x");
	var isjpg="";
	var isgif="";
	txt+="<div class=downloadmenu>";
	if (sz[0])	txt+="<div class=downtext><b>High-res</b><br>"+Math.round(sz[0]/120)+"x"+Math.round(sz[1]/120)+"cm 300dpi</div>\n";	
	else	txt+="<div class=downtext style='height:70px;padding-top:50px'><b>DOWLOAD</b></div>\n";	
	for (var i in files){
		if (!files[i])		break;
		var type=files[i].split("|");
		if (type[0]=="jpg")	isjpg=type[1];
		if (!type[2])	type[2]=(type[0]=="jpg")?	"RGB":"CMYK";
		if (type[0]=="gif")	var isgif=type[1];
		else {	txt+="<a href=\"download.php?t="+type[0]+"&id="+id+"\" target=actionframe class=down onmouseover=ov(this,0,'e');><img src=img/empty.gif>";
			txt+="<div class=a>"+type[0]+"</div><div class=b>"+type[2]+"</div><div class=c>"+type[1]+"kb</div></a>\n";
			}}
	if (sz[0]){	txt+="<div class=downtext><b><br>Low-res til powerpoint</b></div>\n"
		+"<a href=\"download.php?t=jpg&sz=p&id="+id+"\" target=actionframe class=down onmouseover=ov(this,0,'e');><img src=img/empty.gif>"
		+"<div class=a>jpg</div><div class=b>RGB</div><div class=c>30 kb</div></a>";
	if (isgif)	txt+="<a href=\"download.php?t=gif&id="+id+"\" target=actionframe class=down onmouseover=ov(this,0,'e');><img src=img/empty.gif>"
		+"<div class=a>gif</div><div class=b>INDEX</div><div class=c>"+isgif+" kb</div></a>";
		}
		txt+="</div>\n";


	showme("admin",posx-28,posy-200,170,210,txt,"","");
	}

// - - - - - - - - - - - - - - - - COLLECT LIST - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 


function writecollected(){

var coll=getCookie("collected").split(",");
var wsize=112;
var ww=document.body.clientWidth-240-wsize;
var txt="";
var txt2="";
var y=10;
var x=10;
var cols=0;
for(var tr in coll){
	if (coll[tr]>"0"){
	if (x>ww){	
		x=10;
		y+=140;	
		}
     	  txt+='<div class=ix style="width:'+wsize+'px;top:'+y+';left:'+x+'"><img src="img.php?id='+coll[tr]+'"><br><img src=img/del.gif onclick=remove_file('+coll[tr]+'); style="cursor:pointer"></div>';
		x+=wsize+10;
		cols++;
		}
	}
if (cols<1){	txt="<div class=indextext>No files collected</div>";
		txt2="";
		}

else {			txt+="<div style='position:absolute;left:5px;top:"+(y+130)+"px'><input type=button value='Download files' onclick=collectpictures(1);> ";
			txt+=" <input type=button value='clear download list' onclick=remove_all();>";
	if (adminmenu)	txt+="<br><br><input type=button value='email links to files' onclick=mail_link();> <input type=button value='get download page' onclick=page_link();>";
			txt+"</div>";
	}
	//fillbox("topbar",txt2);
	fillbox("collect",txt);	
	}


// - - - - - - - - - - - - - - - - DIV OBJEKT FUNCTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function writepictures(pid){
var txt=' ';
var wsize=(pictype=="on")?	350:106;
var y=2;
var x=42;
var sizepic;
var picid;
var ww=document.body.clientWidth-240-wsize;
var ass=asset[pid];

if (asset[pid] == undefined)	txt="<div style='position:absolute;top:20px;left:20px;font: 17px arial;color:#999;'>No pictures </div>";
if (ass){
var collected=getCookie("collected");
if (collected == undefined){	
		setCookie("collected","0",100,"/");
		collected="";
		}
collected=collected.split(",");

var prod=product_row("get",pid);
if (prod&& prod[16].length>1){
	txt+="<B style='position:absolute;width:90%;left:42px;top:"+y+"px;height:75px; font: 10px arial;border:1px solid #DDD;padding:2px;overflow:auto;text-align:left'>"+prod[16]+"</B>";
	y=84;	
	}

	txt+='<img src="img/'+pictype+'.gif" style="position:absolute;cursor:pointer;left:12px;top:'+y+'" onclick=file_boxsize("';
	txt+=(pictype=="on")?	"off":"on";
	txt+='",'+pid+');>';

for (var tr in ass){
	picid=ass[tr][0];
	if (x>ww){		x=42;y+=130; }
	if (ass[tr][4])	sizepic=ass[tr][4].split("x");
	else		sizepic=[100,100];

		txt+='<div id=ix'+picid+' class=ix style="width:'+wsize+'px;top:'+y+';left:'+x+';">'
		+'<img src="img.php?id='+picid+'" onclick=view_picture('+picid+','+sizepic[0]+','+sizepic[1]+') onmouseover=ov(this,'+picid+',"a");><br>';
if (ass[tr][6]){	txt+='<img src=\"img/'
		+ ((isobj(collected,picid))?	"get.gif":"collect.gif")
	   	+'\" id=\"coll'+picid+'\" onclick=collect_file('+picid+');><img src=img/downloadit.gif onclick=download_asset('+picid+')>';
		}
if (pictype=="on"){       	txt +='<div class=ix2><table class=ixtab><tr><td colspan=4 style="font-size:11px;border-bottom:1px solid #eee">'+ass[tr][1]+'</td></tr>'
			     +'<tr><th>id: </th><td>'+ass[tr][0]+'</td><th>created: </th><td>'+formatdate(ass[tr][2])+'</td></tr>';
	if (ass[tr][3])	txt +='<tr><th>by: </th><td colspan=3>'+ass[tr][3]+'</td></tr>';
	if (ass[tr][4])	txt +='<tr><th>size: </th><td colspan=3>'+ass[tr][4]+' px</td></tr>';
	if (ass[tr][5])	txt +='<tr><td colspan=4 style="border-top:1px solid #eee">'+ass[tr][5]+'</td></tr>';
			txt +='</table></div>';
			}
			txt+='</div>';
	x+=wsize+10;
	}}

	var obj=getobj(sel+"_picdiv"+pid);
	obj.innerHTML=txt;
	obj.style.height=y+130;
	obj.style.display="block";
	}

// - - - - - - - - - - - - - - - - DIV OBJEKT FUNCTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function fillbox(ID,txt,bg,height,disp){
	if (obj = getobj(ID)){
if (height)	obj.style.height=height;
if (bg)	obj.style.background=bg;
	obj.display=(disp)?	"none":"block";
	obj.innerHTML=txt;
	}}

function getobj(ID) {
	if (dom)	obj =document.getElementById(ID);
	else	obj = (ns4)? document.ID.document: (ie4)? document.all[ID]: (ie5||ns5)? document.getElementById(ID): null;
	return obj;
	}

function hideme(id){
	obj=getobj(id);
	if (!obj) return false;
	obj.style.display= 'none';
	if (!dom)	obj.style.visibility= 'hidden';
	func="";
	}

function showme(ID,L,T,W,H,contents,classname,framestyle){
if (obj=getobj(ID)){
	var rightedge = document.body.clientWidth;
	var bottomedge = document.body.clientHeight;
	if (rightedge<L+W)		L= rightedge-W-20;
	if (bottomedge<T+H)	T=bottomedge-H-20;

	obj.innerHTML=contents;
	obj.style.top=T;
	obj.style.left=L;
	obj.style.width=W;
	obj.style.height=H;
	obj.style.display= 'block';
	if (!dom)	obj.style.visibility= 'show';
	}}

// - - - - - - - - - - - - - -  COOKIE  FUNCTIONS- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function getCookie(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 setCookie(name,value,expires,path,domain,secure){
	var today = new Date();
	today.setTime(today.getTime());
	if (expires)	expires = expires * 1000 * 60 * 60 * 24;
	var expires_date = new Date(today.getTime() + (expires));
	document.cookie = name+"="+escape( value ) +
    	( ( expires ) ? ";expires="+expires_date.toGMTString() : "" ) + //expires.toGMTString()
    	( ( path ) ? ";path=" + path : "" ) +
    	( ( domain ) ? ";domain=" + domain : "" ) +
    	( ( secure ) ? ";secure" : "" );
	}
function deleteCookie( name, path, domain ) {
  	if ( getCookie( name ) ) document.cookie = name + "=" +
   	 ( ( path ) ? ";path=" + path : "") +
    	( ( domain ) ? ";domain=" + domain : "" ) +
 	   ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
	}

// - - - - - - - - - - - - - -   ARRAY FUNCTIONS- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

function sortname(a,b) {
	var x = a[sortrow].toLowerCase();
	var y = b[sortrow].toLowerCase();
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
	}

function sortnumber(a, b) {
	return a[sortrow]-b[sortrow];
	}	

function catalogue_row_insert(data){
	catalogue.push(data);
	tree(data[1]);
	}

function catalogue_row(func,id,data){
	for (var i in catalogue){
	    if (id==catalogue[i][0]){
		var parent=catalogue[i][1];
		switch (func){
		case "get": 	return	catalogue[i];
		case "delete":	catalogue.splice(i,1);
				tree(parent);
				return;
		case "replace":	catalogue[i]=data;
				return;
			}
	} } } 

function product_row_insert(i,data){
	browseid=i;
	if (product[i] !=undefined){
		var ln=product[i].length+1
		product[i][ln]=data;
		hideme("admin");
		write_product_list();
		}
	else	actionframe.location.href="data.php?s[cat]="+i;
	}

function product_row(func,id,data,pid){
	for (var i in product){
	  for (var r in product[i]){
	    if (id==product[i][r][0]){
		switch (func){
		case "get": 	return	product[i][r];
		case "replace":	product[i][r]=data;
				write_product_list();
				return;
		case "move":	if (product[pid] !=undefined){
					var ln=product[pid].length+1
					product[pid][ln]=product[i][r];
					}
		case "delete":	delete product[i][r];
				hideme("tr"+id);
				hideme(sel+"_picdiv"+id);
				hideme("admin");
				return;
			}
	} } } }

function asset_row(func,id,data,pid){
	for (var i in asset){
	  for (var r in asset[i]){
	    if (id==asset[i][r][0]){
		var parent=i;
		switch (func){
		case "get":	return	asset[i][r];
		case "replace":	asset[i][r]=data;	
				writepictures(parent);
				return;
		case "move":	if (asset[pid] == undefined){
					asset[pid]=[];
					asset[pid][0]=asset[i][r];
					}
				else {	var ln=asset[pid].length+1;
					asset[pid][ln]=asset[i][r];
					}
				setCookie("collected","0",100,"/");
		case "delete":	delete asset[i][r];
				hideme("ix"+id);
				return;
			}
	} } } }

function subobj(thisarray,name){
	for(var i=0; i<thisarray.length; i++){
		if (thisarray[i].toLowerCase() == name){
			thisarray.splice(i,1);
			break;
			}
		}
	}
function getrow(thisarray,name,r){
	if (!r)	r=0;
	for(var i=0; i<thisarray.length; i++){
		if (thisarray[i][r] == name)	return thisarray[i];
		}
	return false;
	}

function isobj(thisarray,name){
	for(var i=0; i<thisarray.length; i++){
		if (thisarray[i] == name)	return true;
		}
	return false;
	}
