
function doCats(){ // prepcats
	setFeatures.ok=false;
	setBB.ok=false;
	getEl("bb").style.display="none";
	doCatImg.i=0;
	doBody("Catalogues");
	cats=getCats();
	doMainCats();
}

function doMainCats(){
	
	var cat;
	var catImg;
	var z=0;
	for(var i=1;i<cats.length;i++){
		cat=cats[i];
		if(cat.SubCatID==-1){
			z++;
			cat.TargetY=(z*30);
			cat.TargetX=0;
			cat.style.visibility="visible";
			
			if(cat.file!='') catImg=doCatImg(cat);
			
			if(!cat.iKids) countKittens(cat);
			if(cat.iKids>0) cat.innerHTML+=" &raquo;";
			cat.onclick=function(){cleareActive();setActive(this);showSubCats(this);};
			cat.onmouseover=function(){hoverme(this,'over');};
			cat.onmouseout=function(){hoverme(this,'out');};
			
			catImg.cat=cat;
			catImg.onclick=function(){cleareActive();setActive(this.cat);showSubCats(this.cat);};
			setTimeout("ani("+cat.id+")",50);
			
		}else{
			cat.style.visibility="hidden";
		}
	}
}


function showSubCats(cat){
	hideSubCats();
	replaceImgs();
	showActive();
	if(cat.file!='' && getEl(cat.file)){
		doCatImg(cat);
		getEl(cat.file).TargetX=0;
		getEl(cat.file).TargetY=parseInt(cat.offsetTop)+30;
		getEl(cat.file).TargetH=180;
	}
	
	var y=0;
	var x=250;
	for(var i=1;i<cats.length;i++){
		if(cats[i].SubCatID==cat.id){
			cats[i].style.visibility="visible";
			cats[i].TargetX=x;
			cats[i].TargetY=y;
			
			if(!cats[i].iKids){
				countKittens(cats[i]);
				if(cats[i].iKids>0){
					cats[i].innerHTML+=" &raquo;";
				}else{
					makeLink(cats[i]);	
				}
			}
			
			
			
			cats[i].onclick=function(){
				cleareActive();
				setActiveParents(this);
				setActive(this);
				showActive();
				showSubCats(this);
				//showCataloque(this.file);
			};
			cats[i].onmouseover=function(){hoverme(this,'over');};
			cats[i].onmouseout=function(){hoverme(this,'out');};
			setTimeout("ani('"+cats[i].id+"')",50);
			y+=30;
			if(y>330){
				y=0;
				x+=260;
			}
		}
	}
}

function setActive(cat){
	cat.Active=true;
	//hoverme(cat,'over');
}

function setActiveParents(cat){
	var arrP=getParents(cat);
	var s;
	for(var i=0;i<arrP.length;i++){
		arrP[i].Active=true;
		//hoverme(arrP[i],'over');
		
	}
}

function cleareActive(){
	
	for(var i=1;i<cats.length;i++){
		cats[i].Active=false;
		//hoverme(cats[i],'');
	}
}

function showActive(){
	hideAll();
	var cat;
	var y=30;
	
	for(var i=1;i<cats.length;i++){
		cat=cats[i];
		if(cat.Active){
			cat.style.left="0px";
			cat.style.top=y+"px";
			cat.style.visibility="visible";
			//hoverme(cat,'over');
			y+=30
		}
	}
}


function getParents(cat){
	var i=0;
	var arrP=[];
	if(cat.SubCatID==-1) return arrP;
	var p=getEl(cat.SubCatID);
	arrP[i]=p;
	while(p && p.id!=-1){
		arrP[i++]=p;
		p=getEl(p.SubCatID);
		
	}
	return arrP;
}

function hideAll(){
	
	for(var i=1;i<cats.length;i++){
		cats[i].style.visibility="hidden";
	}
}
function hideSubCats(){
	
	var cat;
	for(var i=1;i<cats.length;i++){
		cat=cats[i];
		if(parseInt(cat.style.left)>0){
			cat.TargetX=0;
			cat.TargetY=10;
			setTimeout("ani('"+cat.id+"')",50);
		}
	}
}

function ani(id){
	var cat=getEl(id);
	var x=parseInt(cat.style.left);
	var y=parseInt(cat.style.top);
	
	if(x<cat.TargetX){
		x+=parseInt((cat.TargetX-x)/2)+1;
		cat.style.left=x+"px";
		setTimeout("ani('"+cat.id+"')",50);
		return;
	}
	
	if(y<cat.TargetY){
		y+=parseInt((cat.TargetY-y)/2)+1;
		cat.style.top=y+"px";
		setTimeout("ani('"+cat.id+"')",50);
		return;
	}
	if(y>cat.TargetY){
		y-=parseInt((y-cat.TargetY)/2)+1;
		cat.style.top=y+"px";
		setTimeout("ani('"+cat.id+"')",50);
		return;
	}
	
	if(x>cat.TargetX){
		x-=10;
		cat.style.left=x+"px";
		setTimeout("ani('"+cat.id+"')",50);
		return;
	}


}

function doCatImg(cat){
	var catImg=getEl(cat.file);
	if(!doCatImg.i) doCatImg.i=0;
	if(!catImg) return;
	
	catImg.style.width=120+"px";
	catImg.TargetH=parseInt(catImg.style.height);
	catImg.style.height="1px";
	catImg.style.left="0px";
	
	doCatImg.i++;

	catImg.TargetX=250+(140*((doCatImg.i-1) % 4));
	catImg.TargetY=190*((Math.round(((doCatImg.i)+1)/4))-1);
	
	
	catImg.style.display='block';
	//w=window.open('');
	//w.document.write(getEl("catDiv").innerHTML);
	setTimeout("aniImg('"+cat.file+"')",150);
	return catImg;
}
function replaceImgs(){
	var imgs=getEl("catDiv").getElementsByTagName("IMG");
	for(var i=0;i<imgs.length;i++){
		imgs[i].TargetX=0;
		imgs[i].TargetY=0;
		imgs[i].TargetH=0;
		setTimeout("aniImg('"+imgs[i].id+"')",50);
	}
}

function aniImg(id){
	
	var catImg=getEl(id);
	var x=parseInt(catImg.style.left);
	var y=parseInt(catImg.offsetTop);
	var h=catImg.offsetHeight;
	
	
	if(x<catImg.TargetX){
		x+=parseInt((catImg.TargetX-x)/2)+1;
		catImg.style.left=x+"px";	
		setTimeout("aniImg('"+id+"')",50);
		return;
	}
	
	
	if(h<catImg.TargetH){
		h+=parseInt((catImg.TargetH-h)/2)+1;
		catImg.style.height=h+"px";
		setTimeout("aniImg('"+id+"')",50);
		return;
	}
	
	if(h>catImg.TargetH){
		h-=parseInt((h-catImg.TargetH)/2)+1;
		catImg.style.height=h+"px";	
		setTimeout("aniImg('"+id+"')",50);
		return;
	}else{
		//catImg.TargetH=140;
	}
	
	if(x>catImg.TargetX){
		x-=parseInt((x-catImg.TargetX)/2)+1;
		catImg.style.left=x+"px";	
		setTimeout("aniImg('"+id+"')",50);
		return;
	}
	
	if(y<catImg.TargetY){
		
		y+=parseInt((catImg.TargetY-y)/2)+1;
		catImg.style.top=y+"px";	
		setTimeout("aniImg('"+id+"')",50);
		return;
	}
	
	if(y>catImg.TargetY){
		
		y-=10;
		catImg.style.top=y+"px";	
		setTimeout("aniImg('"+id+"')",50);
		return;
	}
	
}


function countKittens(cat){
	var id=cat.id;

	var c=0;
	for(var i=1;i<cats.length;i++){
		if(cats[i].SubCatID==id) c++;
	}
	cat.iKids=c;
	
}



function getCats(){
	var cats;
	cats=getEl("catDiv").getElementsByTagName("DIV");
	
	for (var i=0;i<cats.length;i++){
		cats[i].SubCatID=cats[i].getAttribute('subcatid');
		cats[i].file=cats[i].getAttribute('file');	
		
	}
	return cats;
	
}

function showCataloque(id){
	if(id=='' || id==undefined) return;
	if(!getEl(id)) return;
	var theCat="cats/"+id;
	window.open(theCat);
}

function makeLink(cat){
	if (cat.HasLink) return;
	var f=cat.file;
	if (f=="") return;
	
	var tmp=cat.innerHTML;
	cat.innerHTML="";
	
	
	var a=newA(cat,"cats/"+f,tmp);
	cat.HasLink=true;
	
	if (f.toLowerCase().indexOf("pdf")!=-1){
		cat.innerHTML+=" <i class='tiny'>(pdf)</i>";	
	}

}



