///////////////////////////////////////////////////////////////////////////
//                            FUCGUBARN.COM                              //
//                        Copyright © 2002-2006                          //
///////////////////////////////////////////////////////////////////////////

//// VARS
// browsers
ie5 = (window.ActiveXObject);
ns6 = (window.XMLHttpRequest);
op9 = (window.opera);
// others
var conf=['ID','TITLE','TYPE','IMAGE','THUMB','URL','CONTENT','SWITCH','RANDOM','INDEX'];
var root = (root)?root:"";
var contentPath = root+"content/";
var galleryPath;
var loadTree = false;
var welcome = false;
var fgb=new Object();
var cnt=new Object();
//var vis = 1;
var targLayout;
var select = new Object();
var timer1;
var timer2;
var info;
var head;
var indx;
var gall;
var currImg;
var xmlhttp;
var loading;
// menu
var active = document.createElement("div");
var inactive = document.createElement("div");
active.id = 'active';
inactive.id = 'inactive';

//// FUNCS
function theTimeOut(){
	var nagl=indx+"<table width=100% cellpadding=0 cellspacing=0 border=0'>";
	nagl+="<tr><td class=marginLeft></td><td class=marginTop>"+head+"</td><td class=marginRight></td></tr>";
	nagl+="<tr><td></td><td>"+info+"</td><td></td></tr></table>";
	// // // //
	targLayout.innerHTML = nagl;
	fgb.loader1.style.visibility="hidden";
	fgb.loader2.style.visibility="hidden";
	if(gall!=0){
		if(document.getElementById("thumbSelect0")){
			for(var i=0; i<gall; i++){
				var thumbSelect = document.getElementById("thumbSelect"+i);
				setOpacity(thumbSelect, 55);
			}
			document.getElementById("thumbSelect0").style.visibility = "visible";
		}
		callImg(select.pic,0);
	}
}
function setAll(){
	//// set primordial vars
	fgb.mainHeader = document.getElementById("mainHeader");
	fgb.container = document.getElementById("content");
	fgb.layout1 = document.getElementById("layout1");
	fgb.layout2 = document.getElementById("layout2");
	fgb.scroll1 = document.getElementById("scroll1");
	fgb.scroll2 = document.getElementById("scroll2");
	fgb.subMenu = document.getElementById("subMenu"); if(op9){fgb.subMenu.style.overflow="hidden"}
	fgb.sizer1 = document.getElementById("sizer1");
	fgb.sizer2 = document.getElementById("sizer2");
	fgb.menu1 = document.getElementById("menu1");
	fgb.menu2 = document.getElementById("menu2");
	fgb.loader1 = document.getElementById("loader1");
	fgb.loader2 = document.getElementById("loader2");
	fgb.message = document.getElementById("message");
	//// admin
	if(root!="") callAdm();
	//// primordial format
	if(ns6){
		fgb.layout1.style.position = 'absolute';
		fgb.layout2.style.position = 'absolute';
	}else{
		fgb.layout1.style.padding = '2';
		fgb.layout2.style.padding = '2';
	}
	fgb.scroll1.style.width = fgb.container.offsetWidth - fgb.subMenu.offsetWidth;
	fgb.scroll1.style.left = fgb.subMenu.offsetWidth;
	fgb.sizer2.style.width = fgb.subMenu.offsetWidth;
	fgb.container.style.visibility = 'visible';
	fgb.container.style.backgroundPosition = '0px 300px';
	//// load tree;
	document.body.style.visibility = 'visible';
	loadXML(contentPath+"tree.xml");
}
//// XML
function loadXML(url){
	var url = url+"?ref="+Math.random();
	xmlhttp=(ie5)?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();
	if(xmlhttp){
		xmlhttp.onreadystatechange=state_Change;
		xmlhttp.open("GET",url,true);
		xmlhttp.send(null);
	}
}
function initNode(num,xmltag,branch){
	branch.node[num] = new Object();
	for(var z=0; z<conf.length; z++){
		if(xmltag[num].getAttribute(conf[z])) branch.node[num][conf[z]] = xmltag[num].getAttribute(conf[z]);
	}
	branch.node[num].PATH=(branch.node[num].TYPE=="link")?"link"+branch.node[num].ID+".xml":"link"+branch.node[num].ID;
}
function state_Change(){
	if (xmlhttp.readyState==4){// if xmlhttp shows "loaded"	
		if (xmlhttp.status==200){// if "OK"
			var doc = xmlhttp.responseXML.documentElement;
			var base=(loadTree==false)?fgb:cnt;
			base.node = new Array();
			var level_0 = doc.getElementsByTagName("level_0");
			for(var i=0; i<level_0.length; i++){
				initNode(i,level_0,base);//level0
				base.node[i].node = new Array();
				var level_1 = level_0[i].getElementsByTagName("level_1");
				for(var e=0; e<level_1.length; e++){
					initNode(e,level_1,base.node[i]);//level1
					var level_2 = level_1[e].getElementsByTagName("level_2");
					base.node[i].node[e].node = new Array();
					for(var a=0; a<level_2.length; a++){
						initNode(a,level_2,base.node[i].node[e]);//level2
					}
				}
			}
			if(loadTree==false){
				////SWITCH CLEANER
				var ii=0;
				var li=fgb.node.length;
				for(var i=0; i<li; i++){
					if(fgb.node[i-ii].SWITCH==0){ fgb.node.splice((i-ii),1); ii++;}
					else{
						var ee=0;
						var le=fgb.node[i-ii].node.length;
						for(var e=0; e<le; e++){
							if(fgb.node[i-ii].node[e-ee].SWITCH==0){ fgb.node[i-ii].node.splice((e-ee),1); ee++;}
							else{
								var aa=0;
								var la=fgb.node[i-ii].node[e-ee].node.length;
								for(var a=0; a<la; a++){
									if(fgb.node[i-ii].node[e-ee].node[a-aa].SWITCH==0){ fgb.node[i-ii].node[e-ee].node.splice((a-aa),1); aa++;}
								}
							}
						}
					}
				}
				/**/
				for(var i=0; i<fgb.node.length; i++){ makeMenu(i);}
				loadTree=true;
			}else{
				info = "";
				info+="<div class='header'>"+cnt.node[0].TITLE+"</div>";
				var j=0;
				for(var i=0; i<cnt.node[0].node.length; i++){
					if(cnt.node[0].node[i].SWITCH==1){
						if(cnt.node[0].node[i].TYPE=="html"){
							var sep = (i>0)?"<hr>":"";
							info+=sep+cnt.node[0].node[i].CONTENT;
						}else if(cnt.node[0].node[i].TYPE=="gallery"){
							var img = cnt.node[0].node[i].node;
							if(img.length>0){
								//////format thumbs
								if(img.length>5){
									var theH = (ie5)?98:92;
									var overflow="overflow:auto;";
								}else{
									var theH = (ie5)?77:71;
									var overflow="overflow:hidden;";
								}
								var theW = (ie5)?506:500;
								var thumblist = "<br><br><div class=thumbs style='width:"+theW+"; height:"+theH+"; "+overflow+"'>";
								for(var e=0; e<img.length; e++){
									thumblist += "<img onClick='callImg(\""+galleryPath+img[e].IMAGE+"\", "+j+", this)' class=thumb style='left:"+(e*101)+"' src='"+galleryPath+img[e].THUMB+"'>";
								}
								thumblist += "<div id=thumbSelect"+j+" class=thumbSelect style='visibility:hidden'></div></div>";
								////
								var borderTop = (img.length>1)?'border-top:0px;':'';
								var picview = "<div id=pics"+j+" class=pics style='width:"+theW+"; "+borderTop+"'>";
								picview += "<img id=theimage"+j+">";
								picview += "</div><br style='font:5px arial'>";
								if(j==0){ select.pic=galleryPath+img[0].IMAGE; }
								info += (img.length==1)?"<br><br>"+picview:thumblist + picview;
								j++;
							}
						}
					}
				}
				gall=j;
				timer1 = window.setTimeout("theTimeOut()", 250);
			}
		}else{
			fgb.message.innerHTML = (xmlhttp.statusText)?"[ e m p t y ]":"Server Error";
		}
	}
}
///// IMAGE FX
function callImg(source, num, targ){
	if(loading!=true||currImg==num){
		if(targ){
			var thumbSelect = document.getElementById("thumbSelect"+num);
			var adj = (ie5)?0:(op9)?-3:3;
			thumbSelect.style.left = targ.offsetLeft + adj;
			thumbSelect.style.visibility = "visible";
		}
		var pics = document.getElementById("pics"+num);
		pics.className = "picsStart";
		var image = document.getElementById("theimage"+num);
		setOpacity(image, 0);
		window.clearTimeout(timer2);
		currImg = num;
		image.onload = initImage;
		loading=true;
		image.src = source;
	}
}
function initImage(){
	var pics = document.getElementById("pics"+currImg);
	pics.className = "picsEnd";
	fadeIn('theimage'+currImg,0);
}
function setOpacity(obj, opacity) {
	opacity = (opacity == 100)?99.999:opacity;
	// IE/Win
	obj.style.filter = "alpha(opacity:"+opacity+")";
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacity/100;
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;
}
function fadeIn(objId,opacity) {
	if (document.getElementById) {
		obj = document.getElementById(objId);
		if (opacity <= 100) {
			setOpacity(obj, opacity);
			opacity += 20;
			timer2 = window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 100);
		}else{loading=false}
	}
}
///// COMPONENTS
function setLoader(full){
	if(welcome==false){
		welcome=fgb.message.innerHTML;
	}
	fgb.message.innerHTML = "<div class='loader1'><div class='loading'></div></div>";
	if(full){
		fgb.loader2.style.visibility = "visible";
	}else{
		fgb.loader1.style.visibility = "visible";
	}
}
function changeClass(targ, name){
	if(targ.className==name+'Out') targ.className=name+'Over';
	else targ.className=name+'Out';
}
function makeMenu(num){
	var divOn = document.createElement("div");
	var divOff = document.createElement("div");
	divOn.id = 'divOn'+Number(num+1);
	divOff.id = 'divOff'+Number(num+1);
	var linksActive="";
	var linksInctive="";
	for(var i=0; i<fgb.node[num].node.length; i++){
		var theFunc = (fgb.node[num].node[i].URL)?"window.location.href='"+fgb.node[num].node[i].URL+"'":"'browse(\"full\", "+num+", "+i+")'";
		linksActive += "&nbsp; <span class='linkOut' onClick="+theFunc+" onMouseOver='changeClass(this, \"link\")' onMouseOut='changeClass(this, \"link\")'>"+fgb.node[num].node[i].TITLE+"</span> &nbsp;"
		linksInctive += "&nbsp; <span class='linkPress'>"+fgb.node[num].node[i].TITLE+"</span> &nbsp;"
	}
	document.getElementById("menu"+(num+1)).appendChild(divOff);
	document.getElementById("menu"+(num+1)).appendChild(divOn);
	divOn.innerHTML = linksActive;
	divOff.innerHTML = linksInctive;
}
function browse(type, lev0, lev1, lev2){
	if(lev2==null) setLoader('full');
	else setLoader();
	//react Menu
	if(type=='full'){
		var mainButs = document.getElementById("divOn"+Number(lev0+1)).getElementsByTagName("span");
		mainButs[lev1].style.visibility='hidden';
		if(select.menu) select.menu.style.visibility = 'visible';
		select.menu = eval(mainButs[lev1]);
	}
	//subMenu
	if(fgb.node[lev0].node[lev1].TYPE=="label"&&fgb.node[lev0].node[lev1].node.length>0){
		targLayout = eval(fgb.scroll1);
		fgb.scroll2.style.visibility = "hidden";
		if(lev2==null) lev2 = (fgb.node[lev0].node[lev1].RANDOM==1)?Math.floor(Math.random()*fgb.node[lev0].node[lev1].node.length):0;
		//make subMenu
		if(type=='full'){
			fgb.subMenu.innerHTML = "";
			var divActive = "<div class=menuTop></div>";
			var divInactive = "<div class=menuTop></div>";
			var ara=fgb.node[lev0].node[lev1].node;
			for(var i=0; i<ara.length; i++){
				if(ara[i].TYPE=="weblink"){
					divActive += "<a href='"+ara[i].URL+"' target='"+ara[i].TARGET+"'><div class=butOut onMouseOver='changeClass(this, \"but\")' onMouseOut='changeClass(this, \"but\")'><span class=margins>"+ara[i].TITLE+"</span></div></a>";
					divInactive += "<div class=butPress><span class=margins>"+ara[i].TITLE+"</span></div>";
				}else{
					divActive += "<div class=butOut onClick='browse(\"menu\", "+lev0+", "+lev1+", "+i+")' onMouseOver='changeClass(this, \"but\")' onMouseOut='changeClass(this, \"but\")'><span class=margins>"+ara[i].TITLE+"</span></div>";
					divInactive += "<div class=butPress><span class=margins>"+ara[i].TITLE+"</span></div>";
				}
			}
			fgb.subMenu.appendChild(inactive);
			fgb.subMenu.appendChild(active);
			active.innerHTML = divActive;
			inactive.innerHTML = divInactive;
		}
		///react subMenu
		var buts = active.getElementsByTagName("div");
		buts[lev2+1].style.visibility='hidden';
		if(type=='menu') select.subMenu.style.visibility = 'visible';
		select.subMenu = eval(buts[lev2+1]);
		///
		var pat = fgb.node[lev0].PATH+"/"+fgb.node[lev0].node[lev1].PATH+"/"+fgb.node[lev0].node[lev1].node[lev2].PATH;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////alert(node[lev0].node[lev1].node[lev2].ID)
		galleryPath = contentPath+fgb.node[lev0].PATH+"/"+fgb.node[lev0].node[lev1].PATH+"/gallery"+fgb.node[lev0].node[lev1].node[lev2].ID+"/";
		indx = (fgb.node[lev0].node[lev1].node[lev2].INDEX)?"<a name='home'></a>":"";
	}else{
		targLayout = eval(fgb.scroll2);
		fgb.scroll2.style.visibility = "visible";
		var pat = (fgb.node[lev0].node[lev1].TYPE!="label")?fgb.node[lev0].PATH+"/"+fgb.node[lev0].node[lev1].PATH:"error.xml";
		galleryPath = contentPath+fgb.node[lev0].PATH+"/gallery"+fgb.node[lev0].node[lev1].ID+"/";
		indx = (fgb.node[lev0].node[lev1].INDEX)?"<a name='home'></a>":"";
	}
	head = (fgb.node[lev0].node[lev1].IMAGE)?"<img src='"+root+fgb.node[lev0].node[lev1].IMAGE+"'>":"";
	loadXML(contentPath + pat);
	//alert(lef2)*/
}
function resetAll(){
	if(welcome!=false){
		window.clearTimeout(timer1);
		select.menu.style.visibility = 'visible';
		fgb.message.innerHTML = welcome;
		welcome = false;
		fgb.loader2.style.visibility = "visible";
	}
}

