// DDS Galéria + Dialog + Tab

function showItem(item,opc) {
	obj=document.getElementById(item);
	//alert(obj.id + ' ' + typeof(opc));
	obj.style.display='block';
	if (typeof(opc)=='number') {
		changeOpacity(opc,item);
	}
}

function hideItem(item,opc) {
	obj=document.getElementById(item);
	obj.style.display='none';
	if (typeof(opc)=='number') {
		changeOpacity(opc,item);
	}
}

function showHideItem(item) {
	obj=document.getElementById(item);
	(obj.style.display=='none')?obj.style.display='':obj.style.display='none';
}


function changeOpacity(opacity, id) {
	var object = document.getElementById(id).style;
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function overlayReload()
{
		if (window.innerHeight && window.scrollMaxY>=0 || window.innerWidth && window.scrollMaxX>=0) {
                yScroll = window.innerHeight + window.scrollMaxY;
                xScroll = window.innerWidth + window.scrollMaxX;
                var deff = document.documentElement;
                var wff = (deff&&deff.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth;
                var hff = (deff&&deff.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight;
                xScroll -= (window.innerWidth - wff);
                yScroll -= (window.innerHeight - hff);

        } else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth){ // all but Explorer Mac
                yScroll = document.body.scrollHeight;
                xScroll = document.body.scrollWidth;
        } else { // Explorer Mac... Explorer 6 Strict, Mozilla, Safari
                yScroll = document.body.offsetHeight;
                xScroll = document.body.offsetWidth;
        }
        olay=document.getElementById('overlay');
        /*var pagesize = getPageSize();
        if(pagesize[1]>yScroll) yScroll=pagesize[1];
        if(pagesize[0]>xScroll) xScroll=pagesize[0];*/
        olay.style.height = yScroll +'px';
        olay.style.width = xScroll +'px';
}

function center(windowname, fwidth, fheight) {
        var successWin = document.getElementById(windowname);
        var pagesize = getPageSize();
        var arrayPageScroll = getPageScrollTop();
        lbtop = (arrayPageScroll[1] + (pagesize[1] - fheight)/3);
        lbleft = (arrayPageScroll[0] + (pagesize[0] - fwidth)/2);
        successWin.style.top = (lbtop < 0) ? "0px" : lbtop + "px";
        successWin.style.left = (lbleft < 0) ? "0px" : lbleft + "px";
}

function getcenter(fwidth,fheight) {
	  var pagesize = getPageSize();
	  var arrayPageScroll = getPageScrollTop();
	  lbtop = (arrayPageScroll[1] + (pagesize[1] - fheight)/3);
	  lbleft = (arrayPageScroll[0] + (pagesize[0] - fwidth)/2);
	  var t = (lbtop < 0) ? "0" : lbtop;
	  var l = (lbleft < 0) ? "0" : lbleft;
	  return [t,l];
}

function getPageSize(){
        var de = document.documentElement;
        var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
        var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight
        arrayPageSize = new Array(w,h)
        return arrayPageSize;
}

function getPageScrollTop(){
        var yScrolltop;
        var xScrollleft;
        if (self.pageYOffset || self.pageXOffset) {
                yScrolltop = self.pageYOffset;
                xScrollleft = self.pageXOffset;
        } else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft ){     // Explorer 6 Strict
                yScrolltop = document.documentElement.scrollTop;
                xScrollleft = document.documentElement.scrollLeft;
        } else if (document.body) {// all other Explorers
                yScrolltop = document.body.scrollTop;
                xScrollleft = document.body.scrollLeft;
        }
        arrayPageScroll = new Array(xScrollleft,yScrolltop)
        return arrayPageScroll;
}


function getImageSizes(xsize,ysize,maxx,maxy) {
	if(xsize>maxx || ysize>maxy) {
		var ax=xsize/maxx;
		var ay=ysize/maxy;
	
		var direction=1;
		if (ay>ax) direction=0;

		if (direction) {
			xsize=Math.floor(xsize/ax);
			ysize=Math.floor(ysize/ax);
		} else {
			xsize=Math.floor(xsize/ay);
			ysize=Math.floor(ysize/ay);
		}
	}
	return [xsize,ysize];
}

function showHideFlash(s) {
	var elemse = document.getElementsByTagName('embed');
	var elemso = document.getElementsByTagName('object');
	var elemss = document.getElementsByTagName('select');
	for(var i=0;i<elemse.length;i++) {
		elemse[i].style.visibility = (s)?'visible':'hidden';
	}
	for(var i=0;i<elemso.length;i++) {
		elemso[i].style.visibility = (s)?'visible':'hidden';
	}
	for(var i=0;i<elemss.length;i++) {
		elemss[i].style.visibility = (s)?'visible':'hidden';
	}
}



DDSDialog = function() {
	var dialogopen = 0;
	var elem = null;
	var dparent = null;
	var dialog = null;
	var title = null;
	var content = null;
	var close = null;
	var error = null;
	this.width = "500";
	this.boxname = "";
	this.onInit = null;
	this.onClose = null;
	
	this.init = function(id,t,box,w) {
	
		dialog = document.getElementById('dds_dialog');
		title = document.getElementById('dds_dialog_title');
		content = document.getElementById('dds_dialog_content');
		close = document.getElementById('dds_dialog_close');
		error = document.getElementById('dds_dialog_error');
		
		this.reset();
		
		/*var dia = this;
		close.onclick= function() {
			dia.hide();
		}*/
		elem = document.getElementById(id);
		if(!elem) return;
		dparent = elem.parentNode;
		var cont = dparent.removeChild(elem);
		content.appendChild(cont);
		cont.style.display = '';
		if(box) this.boxname = box;
		if(w) this.width = w;
		this.show();
		if(typeof(this.onInit) == "function") {
			this.onInit();
			this.onInit=null;
		}
		
	}
	this.show = function() {
		dialog.style.width=this.width+'px';
		dialog.style.display='';
		showItem('overlay');
		center('dds_dialog',this.width,dialog.offsetHeight);
		overlayReload();
		window.onresize=overlayReload;
		showHideFlash();
		this.dialogopen = 1;
	}
	this.hide = function(rl) {
		if(BrowserDetect.browser=="Opera" && rl) {
			window.location.reload();
			return;
		}
		if(typeof(this.onClose) == "function") {
			this.onClose();
			this.onClose=null;
		}
		if(this.boxname) {
			ajax_reload(this.boxname);
		} else {
			var cont = elem;
			if(elem.parentNode) cont = elem.parentNode.removeChild(elem);
			dparent.appendChild(cont);
			cont.style.display = 'none';
		}
		showHideFlash(1);
		dialog.style.display='none';
		hideItem('overlay');
		window.onresize="";
		this.dialogopen = 0;
	}
	this.close = function() {
		this.hide();
	}
	this.setTitle = function(t) {
		//title.innerHTML = t;
	}
	this.setError = function(t) {
		error.innerHTML = t;
		error.style.display = (t=="")?'none':'';
	}
	this.setContent = function(t) {
		content.innerHTML = t;
	}

	this.reset = function() {
		dialogopen = 0;
		this.setTitle("");
		this.setContent("");
		this.setError("");
		this.boxname = "";
		this.width='500';
	}
	this.realign = function() {
		center('dds_dialog',this.width,dialog.offsetHeight);
	}
}

DDSDialog = new DDSDialog();

DDSTabs = function () {
	var tabs = {};
	var rinterval = 10000;
	this.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("DDSTabs.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.offsetWidth,'easeOutSine']},500);
					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['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.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(" ");
	}
}

DDSTabs = new DDSTabs();

