/* Iguana v1.0
 * (c) DDS     
 * * * * * * * */

Iguana = function () {
	this.browser = BrowserDetect.browser + BrowserDetect.version;
	this.placeholder = document.createElement("div");
	this.placeholder.className="placeholder";
	this.placeholder.id="placeholder";
	var areas=[];
	var boxes=[];
	var tmplbyid={};
	var minclass = [];
	minclass[0]="mincontrol";
	minclass[1]="mincontroloff";
	this.tbi = {};
	var boxdata;
	var max = 5;
	var min = 0;
	this.data = boxdata;
	var tabs = {};
	var rinterval = 10000;
	this.tabs = {};
	this.init = function(data) {
		boxdata = data;
		for(var i in boxdata) {
			areas.push('a3_bb_'+i);
			var tmpls = boxdata[i];
			for(var a=0;a<tmpls.length;a++) {
				if(tmpls[a]['par'].search('fix')==-1) {
					boxes.push('a3_bi_'+tmpls[a]['id']);
				}
				tmplbyid[tmpls[a]['id']]=tmpls[a];
			}
				
		}
		this.tbi = tmplbyid;
		for(var i=0;i<boxes.length;i++) {
			dragInit(boxes[i].replace(/a3_bi_/,''),boxes[i]);
		}
	}
	this.getAreas = function() {
		return areas;
	}
	this.getBoxes = function() {
		return boxes;
	}
	this.changeNum = function(id,dir) {
		if(!tmplbyid[id]) return;
		var num = parseInt(tmplbyid[id]['num']);
		if(isNaN(num)) num = min;
		var plusctrl = document.getElementById('biplusz_'+id);
		var minusctrl = document.getElementById('biminusz_'+id);
		
		if(dir) {
			num++;
			if(num > max) {
				num = max;
				return;
			}
		} else {
			num--;
			if(num < 0) {
				num = 0;
				return;
			}
		}
		tmplbyid[id]['num']=num;
		/*var pbi = null;
		var te = document.getElementById('a3_bi_'+id);
		if(te) pbi = te.parentNode.id;*/
		this.rebuildBoxdata('a3_bi_'+id);
	}
	this.min = function(id) {
		if(!tmplbyid[id]) return;
		var ctrl = document.getElementById('bimin_'+id);
		var cont = document.getElementById('bic_'+id);
		if(!cont || !ctrl) return;
		if(cont.style.display=='none') {
			dir=0;
		} else {
			dir=1;
		}
		ctrl.className=minclass[dir];
		var par = tmplbyid[id].par;
		if(par!="") {
			par=par.split(',');
		} else {
			par=[];
		}
		if(dir) {
			cont.style.height=cont.offsetHeight;
			cont.style.overflow='hidden';
			cont.hide = 1;
			DDSanim.animate(cont.id,{"height":[0,"easeOutSine"]},250);
			//cont.style.display="none";
			if(!in_array('mn',par))	par.push("mn");
		} else {
			cont.style.overflow='';
			cont.style.display="";
			cont.style.height='';
			var f=0;
			for(var a=0;a<par.length;a++) {
				if(par[a]=='mn') {
					par.splice(a,1);
					break;
				}
			}
		}
		tmplbyid[id]['par']=par.join(',');
		this.rebuildBoxdata();
	}

	this.rebuildBoxdata = function(rl) {
		var b = {};
		for(var i=0;i<areas.length;i++) {
			var box = document.getElementById(areas[i]);
			var boxname = areas[i].replace(/a3_bb_/,'');
			b[boxname]=new Array();
			if(!box) {
				if(!boxdata[boxname]) continue;
				b[boxname]=boxdata[boxname];
				continue;
			}
			var nodes = box.childNodes;
			var c=1;
			for(var t=0;t<nodes.length;t++) {
				if(nodes[t].nodeType==1 && nodes[t].id.substr(0,6)=='a3_bi_') {
					var id=nodes[t].id.replace(/a3_bi_/,'');
					var o_data = tmplbyid[id];
					if(o_data) {
						o_data['prio']=c;
						b[boxname].push(o_data);
						c++;
					}
				}
			}
		}
		boxdata=b;
		//this.data=b;
		save(rl);		
	}
	var save = function (rl) {
		var spl="";
		if(rl) spl="&rl="+rl;
		setTimeout("ajax_post('settings.php','tb="+Base64.encode(JSON.stringify(boxdata))+spl+"')",500);
	}
	
	// tabs
	this.addTabs = function(box,tab,mode,auto,t) {
		/* mode 1: fade, 2: slide */
		if(tabs[box]) {
			if(tabs[box]['timer']) clearTimeout(tabs[box]['timer']);
			delete tabs[box];
		}
		tabs[box]=tab;
		tabs[box]['mode']=mode;
		if(mode==2) tabs[box]['sdir']=1;
		tabs[box]['interval']=(t)?t:10000;
		if(auto) {
			tabs[box]['timer'] = setTimeout("Iguana.rotateTabs('"+box+"')",tabs[box]['interval']);
			tabs[box]['auto']=1;
		}
		
	}
	this.switchTab = function(b,t) {
		var tab = tabs[b];
		if(!tab || !tab['num']) return;

		var ctab = (tab['cnum'])?tab['cnum']:1;
		if (ctab==t) return;
		
		var pre = b+'_tab_';
		var spre = b+'_sw_';
		
		var curr = document.getElementById(pre+ctab);
		
		if(!curr) return;
		switch(tab['mode']) {
			case 1: DDSanim.fadeOutH(pre+ctab,500); break;
			case 2: //DDSanim.animate(pre+'wrapper',{'scrollLeft':[(t-1)*curr.parentNode.offsetWidth,'easeOutSine']});
					break;
			default: curr.style.display='none';
		}
		
		var csw = document.getElementById(spre+ctab);
		if(tab['class'] && csw) csw.className=tab['class'];
		
		tabs[b]['cnum']=t;
		curr = document.getElementById(pre+t);
		if(!curr) return;
		
		curr.style.display='';
		if(tab['mode']==1) DDSanim.fadeInS(pre+t,500);
		if(tab['mode']==2) {
			var sl=0;
			for(var i=1;i<t;i++) {
				sl+=document.getElementById(pre+i).parentNode.offsetWidth;
			}
			DDSanim.animate(pre+'wrapper',{'scrollLeft':[sl,'easeOutSine']});
		}
		
		if(tab['auto']) {
			if(tab['timer']) clearTimeout(tab['timer']);
			tab['timer'] = setTimeout("Iguana.rotateTabs('"+b+"')",tab['interval']);
		}
		
		var csw = document.getElementById(spre+t);
		if(tab['class'] && csw) csw.className=tab['class']+'_on';
		
		this.tabs=tabs;
	}
	this.rotateTabs = function(b) {
		var tab = tabs[b];
		if(tab['mode']==2) {
			if(tab['sdir']==1) {
				var nxt = ((tab['cnum']+1)>tab['num'])?1:(tab['cnum']+1);
				if(nxt == 1) {
					tab['sdir']=-1;
					this.prevTab(b);
				} else {
					this.nextTab(b);
				}
			} else {
				var prv = ((tab['cnum']-1)==0)?tab['num']:(tab['cnum']-1);
				if(prv == tab['num']) {
					tab['sdir']=1;
					this.nextTab(b);
				} else {
					this.prevTab(b);
				}
			}
			
		} else {
			this.nextTab(b);
		}
		
	}
	this.nextTab = function(b,u) {
		var tab = tabs[b];
		var nxt = ((tab['cnum']+1)>tab['num'])?1:(tab['cnum']+1);
		if(u) {
			if(nxt == 1) return;
			else tab['sdir']=1;
		}
		//if(tab['cnum']>tab['num']) tabs[b]['cnum'] = tab['cnum'] = 2;
		this.switchTab(b,nxt);
	}
	this.prevTab = function(b,u) {
		var tab = tabs[b];
		var prv = ((tab['cnum']-1)==0)?tab['num']:(tab['cnum']-1);
		if(u) {
			if(prv == tab['num']) return;
			else tab['sdir']=-1;
		}
		this.switchTab(b,prv);
	}
	
	this.EQTabs = function(b) {
		var tab = tabs[b];
		var maxheight = 0;
		for(var i=1;i<=tab['num'];i++) {
			var elem = document.getElementById(b+"_tab_"+i);
			var h = 0;
			if(tab['cnum'] == i) {
				h=getHeight(elem);
			} else {
				elem.style.display='';
				h=getHeight(elem);
				elem.style.display='none';
			}
			if(h>maxheight) {
				maxheight=h;
			}
		}
		for(var i=1;i<=tab['num'];i++) {
			document.getElementById(b+"_tab_"+i).style.height=maxheight+'px';
		}
	}
	
	var addClass = function(e,c) {
		if(!e || !c) return;
		if(!e.className) {
			e.className=c;
			return;
		}
		var cl = e.className.split(" ");
		var found = 0;
		for(var a=0;a<cl.length;a++) {
			if(cl[a]==c) {
				found=1;
				break;
			}
		}
		if(found) return;
		cl.push(c);
		e.className=cl.join(" ");
	}
	var delClass = function(e,c) {
		if(!e || !c) return;
		if(e.className == c) {
			e.className='';
			return;
		}
		var cl = e.className.split(" ");
		for(var a=0;a<cl.length;a++) {
			if(cl[a]==c) {
				cl.splice(a,1);
				break;
			}
		}
		e.className=cl.join(" ");
	}
}
var Iguana = new Iguana();

