/*
© Copyright Dominik "1ApRiL" Herbst
*/
var g = {
/*
d - the document object
w - the window object
*/
	d : document,
	w : window,
/*
query - Dynamic ajax query
*/
	query : function(requeststr, async, readyfunc) {
		if(window.XMLHttpRequest) {
			var req = new XMLHttpRequest();
		} else {
			if(window.ActiveXObject) {
				var req = new ActiveXObject("Microsoft.XMLHTTP")
			} else {
				var req = false;
			}
		}
		
		if(typeof(async)=='undefined') async = false;
		
		req.open('POST','/user/ajaxdata/'+(document.getElementById('sitename')?document.getElementById('sitename').value:'public')+'.html',async);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		req.send(requeststr);
		
		if(async) {
			req.onreadystatechange = function() {
				if (req.readyState==4) {
					if (req.status == 200) {
						readyfunc(req.responseText);
					}
				}
			};
		} else if(req.readyState==4) {
			//this.id('xmltest').ret = req;
			return req.responseText;
		} else {
			return '';
		}
	},
/*
oInfo - returns an object with infos about the given object
*/
	oInfo : function(obj) {
		if(!obj) return false;
		var x = obj.offsetLeft;
		var y = obj.offsetTop;
		var steps = 0;
		var parent =obj;
		while(steps<=100) {
			parent = parent.offsetParent;
			if(parent!=null && parent.tagName!='body') {
				x+=parent.offsetLeft;
				y+=parent.offsetTop;
			} else {
				break;
			}
			steps++;
		}
		return {
			x:x,
			y:y,
			w:obj.offsetWidth,
			h:obj.offsetHeight
		};
	},
/*
evAdd - adds an eventlistener
*/
	evAdd : function(obj,ev,func) {		
		if(obj.addEventListener) {
			obj.addEventListener(ev,func,false);
		} else if(obj.attachEvent) {
			if(obj==g.w && (ev.indexOf('mouse')!=-1 || ev.indexOf('click')!=-1)) obj = g.d;
			obj.attachEvent('on'+ev,func);
		}
	},
/*
evRem - removes an eventlistener
*/
	evRem : function(obj,ev,func) {
		if(obj.removeEventListener) {
			obj.removeEventListener(ev,func,false);
		} else if(obj.detachEvent) {
			if(obj==g.w && (ev.indexOf('mouse')!=-1 || ev.indexOf('click')!=-1)) obj = g.d;
			obj.detachEvent('on'+ev,func);
		}
	},
/*
evInfo - get info baout the event
*/
	evInfo : function(e) {
		var el = false;
		if(e) {
			if(e.target) el = e.target;
			else if(e.srcElement) el = e.srcElement;
		}
		if(e.clientX && typeof(window.pageXOffset)!='undefined') {
			var pX = e.clientX+window.pageXOffset;
			var pY = e.clientY+window.pageYOffset;
		} else {
			var pX = window.event.clientX+document.documentElement.scrollLeft;
			var pY = window.event.clientY+document.documentElement.scrollTop;
		}
		
		
		return {el:el,x:pX,y:pY};
	},
/*
id - returns the object of an id
*/
	id : function(id) {
		return this.d.getElementById(id);
	},

/*
objsByClass - returns an array with all objects with that classname
*/
	objsByClass : function(classname,obj) {
		var to = g.d;
		if(typeof(obj)=='object') to = obj;
		var sp = classname.split('.');
		var cn = '';
		if(sp.length>1) {
			cn = sp[1];
			var ol = to.getElementsByTagName(sp[0]);
		} else {
			cn = sp[0];
			var ol = to.getElementsByTagName('*');
		}
		var ret = new Array();
		for(var i=0; i<ol.length; i++) {
			if(ol[i] && ol[i].className && ol[i].className.indexOf(cn)!=-1)
				ret.push(ol[i]);
		}
		return ret;
	},
/*
getWs - returns sizes of the window and document
*/
	getWs : function() {
		var s = {ww:0, wh:0, sw:0, sh:0};
		if(g.w.innerWidth) {
			s.ww = g.w.innerWidth
			s.wh = g.w.innerHeight;
		} else if(g.d.documentElement.clientWidth) {
			s.ww = g.d.documentElement.clientWidth;
			s.wh = g.d.documentElement.clientHeight;
		} else if(g.d.body.clientWidth) {
			s.ww = g.d.body.clientWidth;
			s.wh = g.d.body.clientHeight;
		} 
		
		if(g.d.body.scrollWidth) {
			s.sw = g.d.body.scrollWidth;
			s.sh = g.d.body.scrollHeight;
		} else if(g.d.body.offsetWidth) {
			s.sw = g.d.body.offsetWidth;
			s.sh = g.d.body.offsetHeight;
		}
		
		return s;
	},

/*
isChildOf - returns if a object is child of another object
*/
	isChildOf : function(obj,of) {
		var pn = obj;
		while(pn) {
			if(pn==of) return true;
			pn = pn.parentNode;
		}
		
		return false;
	},

/*
addClass - add a classname to an object
delClass - deletes a classname to an object
*/

	addClass : function(obj,classn) {
		if(obj && typeof(obj.className)!='undefined') {
			obj.className += ' '+classn;
		}
	},
	delClass : function(obj,classn) {
		if(obj && typeof(obj.className)!='undefined') {
			obj.className = obj.className.replace(classn,'');
		}
	},
/*
setCookie - set a cookie
getCookie - get a cookie content
*/
	setCookie : function(name,value,expires,path,domain) {
		var str = name;
		if(typeof(value)!='undefined') {
			str += '='+value;
		}
		if(typeof(expires)!='undefined' && expires!='' && expires !=0) {
			str += '; expires='+expires;
		}
		if(typeof(path)!='undefined') {
			str += '; path='+path;
		}
		if(typeof(domain)!='undefined') {
			str += '; domain='+domain;
		}
		document.cookie = str;
	},
	
	getCookie : function(name) {
		var cookies = document.cookie.split(';');
		for(var i=0; i<cookies.length; i++) {
			var sp = cookies[i].split('=');
			sp[0] = sp[0].replace(' ','');
			if(sp[0]==name) return sp[1];
		}
		
	}


};
/*
Slider
*/
g.slider = function(time,steps) {
	var t = this;
	t.time = time;
	t.steps = steps;
	t.ondone = false;
	t.onstep = false;
	
	t.start = function() {
		t.currstep = 1;
		t.timeperstep = Math.round(t.time/t.steps);
		
		window.setTimeout(t.dostep,t.timeperstep);
	};
	t.dostep = function() {
		if(t.currstep<t.steps) {
			if(typeof(t.onstep)=='function') t.onstep(t);
			window.setTimeout(t.dostep,t.timeperstep);
		} else {
			if(typeof(t.ondone)=='function') t.ondone(t);
		}
	};
};


/*
Dropbox
*/
g.dropbox = {
	o : false,
	a : false,
	isopen : false,
	open : function(srcobj,obj,mode) {
		if(g.dropbox.isopen) g.dropbox.close();
		g.dropbox.isopen = true;
		g.dropbox.o = obj;
		g.dropbox.a = srcobj;
		
		if(g.dropbox.o.parentNode!=g.d.body) g.d.body.appendChild(g.dropbox.o);
		
		var ai = g.oInfo(g.dropbox.a);
		var nx = ai.x;
		var ny = ai.y;
		
		if(mode==1) {
			ny += ai.h;
		}
		if(mode==2) {
			nx += ai.w;
		}
		
		g.dropbox.o.style.display = 'block';
		g.dropbox.o.style.left = '0px';
		g.dropbox.o.style.top = '0px';
		
		var ws = g.getWs();
		var oi = g.oInfo(g.dropbox.o);
		if(oi.w+nx>ws.sw) nx = ws.sw-oi.w+nx;
		
		
		g.dropbox.o.style.left = nx+'px';
		g.dropbox.o.style.top = ny+'px';
		
		
		g.evAdd(g.w,'click',g.dropbox.onc);
		
	},
	close : function() {
		g.dropbox.o.style.display='none';
		g.dropbox.isopen = false;
		
	},
	onc : function(e) {
		var ei = g.evInfo(e);
		
		if(!g.isChildOf(ei.el,g.dropbox.o) && !g.isChildOf(ei.el,g.dropbox.a)) {
			g.evRem(g.w,'click',g.dropbox.close);
			g.dropbox.close();
		}
		
	}
	
};

/*
g.atable - makes a dynamic table
*/
g.atables = new Array();
g.atable = function(elid) {
	var t=this; // object this as t always available
	t.id = elid;
	t.obj = g.id(elid);
	if(!t.obj) return false;
	t.cols = new Array();
	t.resizer = new Array();
	t.ison = false;
	t.islock = false;
	t.resizer_nr = false;
	t.rowlen = 0;
	t.rowlimitmove = 100;
	
	t.init = function() {
		t.width = t.obj.offsetWidth;
		var cookie = g.getCookie('atable_'+t.id);
		var cookiesizes = new Array();
		if(cookie && cookie!='') {
			cookiesizes = cookie.split(',');
		}
		var colregex = /td_minwidth_(\d+)/;
		var rows = g.objsByClass('div.tr_',t.obj);
		if(rows.length>0) {
			t.rowlen = rows.length;
			var cols = g.objsByClass('div.td_',rows[0]);
			var sumwith = 0;
			for(var i=0; i<cols.length; i++) {
				colregex.exec(cols[i].className);
				var colinfo = {nr:i};
				if(RegExp.$1>0) {
					colinfo.minw = RegExp.$1*1;
				} else {
					colinfo.minw = 20;
				}
				colinfo.w = cols[i].offsetWidth*1;
				
				if(cookiesizes[i]) {
					colinfo.w = cookiesizes[i]*1;
				}
				
				sumwith += colinfo.w;
				if(sumwith>t.width) {
					colinfo.w -= sumwith-t.width;
					sumwith -= sumwith-t.width;
				}
				colinfo.o = cols[i];
				t.cols[i] = colinfo;
																
				if(i<cols.length-1) {
					var nres = g.d.createElement('div');
					nres.style.display = 'none';
					nres.style.top = '0px';
					nres.style.left = sumwith-3+'px';
					nres.style.height = t.obj.offsetHeight+'px';
					nres.resizer_nr = i;
					nres.resizer_x = sumwith-3;
					nres.className = 'td_resizer';
					g.evAdd(nres,'mousedown',t.evresdown);
					t.obj.appendChild(nres);
					t.resizer[i] = nres;
					
				}
				
			}
			
		}
		t.resizecols(true);
		
		g.evAdd(t.obj,'mouseover',t.evover);
		g.evAdd(t.obj,'mouseout',t.evout);
		
	};
	
	t.evover = function(e) {
		if(t.ison) return;
		t.ison = true;
		for(var i=0; i<t.resizer.length; i++) {
			t.resizer[i].style.display = 'block';
			t.resizer[i].style.height = t.obj.offsetHeight+'px';
		}
	};
	
	t.evout = function(e) {
		if(!t.islock && t.ison) {
			t.ison = false;
			for(var i=0; i<t.resizer.length; i++) {
				t.resizer[i].style.display = 'none';
			}
		}
	};
	
	t.evresdown = function(e) {
		if(!t.islock) {
			var ei = g.evInfo(e);
			g.addClass(ei.el,'active');
			t.islock = true;
			t.resizer_nr = ei.el.resizer_nr;
			ei.el.resizer_curr_x = ei.x;
			
			g.evAdd(g.w,'mousemove',t.evmove);
			g.evAdd(g.w,'mouseup',t.evup);
		}
	};
	t.evmove = function(e) {
		if(t.islock) {
			var ei = g.evInfo(e);
			var resizer = t.resizer[t.resizer_nr];
			
			var diff = ei.x-resizer.resizer_curr_x;
			if(diff!=0) {
				t.resizetable(resizer.resizer_nr,diff);
				resizer.resizer_curr_x = ei.x;
			}
			
			if(window.getSelection) window.getSelection().removeAllRanges();
			return false;
		}
	};
	t.evup = function(e) {
		if(t.islock) {
			t.islock = false;
			var resizer = t.resizer[t.resizer_nr];
			
			if(t.rowlen>t.rowlimitmove) {
				t.resizecols(true);
			}
			
		 	g.delClass(resizer,'active');
			g.evRem(g.w,'mousemove',t.evmove);
			g.evRem(g.w,'mouseup',t.evup);
		}
	};
	t.resizetable = function(nr,diff) {
		var left = true;
		if(diff>0) {
			left = false;
		} else diff *= -1;
		
		var minw_left = 0;
		var minw_right = 0;
		var w_left = 0;
		var w_right = 0;
		for(var i=0; i<t.cols.length; i++) {
			if(i<=nr) {
				minw_left += t.cols[i].minw*1;
				w_left += t.cols[i].w*1;
			} else {
				minw_right += t.cols[i].minw*1;
				w_right += t.cols[i].w*1;
			}
		}
		var left_place = w_left-minw_left;
		var right_place = w_right-minw_right;
		
		
				
		if(left && left_place<diff) {
			diff -= diff-left_place;
		} else if(!left && right_place<diff) {
			diff -= diff-right_place;
		}
		
		if(diff>0 && left) {
			var place = diff;
			for(var i=nr; i>=0; i--) {
				var minwdiff = place;
				if(t.cols[i].w-minwdiff<t.cols[i].minw) {
					minwdiff = t.cols[i].w-t.cols[i].minw;
					t.cols[i].w -= minwdiff;
				} else {
					t.cols[i].w -= minwdiff;
				}
				place -= minwdiff;
				
				for(var r=i; r<=nr; r++) {
					t.resizer[r].resizer_x -= minwdiff;
				}
				
				if(place==0) break;
			}
			var i=nr+1;
			t.cols[i].w += diff-place;
			
		} else if(diff>0) {
			var place = diff;
			for(var i=nr+1; i<t.cols.length; i++) {
				var minwdiff = place;
				if(t.cols[i].w-minwdiff<t.cols[i].minw) {
					minwdiff = t.cols[i].w-t.cols[i].minw;
					t.cols[i].w -= minwdiff;
				} else {
					t.cols[i].w -= minwdiff;
				}
				if(i-1<t.resizer.length && i>nr+1) t.resizer[i-1].resizer_x += minwdiff;
				for(var r=nr+1; r<i-1; r++) {
					t.resizer[r].resizer_x += minwdiff;
				}
				place -= minwdiff;
												
				if(place==0) break;
			}
			
			t.cols[nr].w += diff-place;
			t.resizer[nr].resizer_x += diff-place;
		}
		if(diff>0) {
			t.resizecols();
		}
		
		
	};
	
	t.resizecols = function(doit) {
		if(typeof(doit)=='undefined') var doit = false;
		var rows = g.objsByClass('div.tr_',t.obj);
		var sizes = '';
		for(var r=0; r<rows.length; r++) {
			var cols = g.objsByClass('div.td_',rows[r]);
			for(var i=0; i<cols.length; i++) {
				if(i<cols.length-1 && r==0) {
					t.resizer[i].style.left = t.resizer[i].resizer_x +'px';
				}
				if(r==0) {
					sizes += t.cols[i].w+',';
				}
				if(t.rowlen<=t.rowlimitmove || doit) {
					cols[i].style.width = t.cols[i].w+'px';
				}
			}
			if(t.rowlen>t.rowlimitmove && !doit) {
				break;	
			}
		}
		
		g.setCookie('atable_'+t.id,sizes,0,'/');	
		
	};
	
	for(var i=0; i<g.atables.length; i++) {
		if(g.atables[i].id==elid) return false;
	}
	g.atables.push(t);
	t.init();
};



/*
Formular Handling
*/
g.sendForm = function(fobj,field,value) {
	if(fobj.className.match(/inactive/)) return false;
	while(fobj.parentNode) {
		if(fobj.tagName=='FORM') {
			
			if(typeof(field)!='undefined') {
				var nEl = g.d.createElement('input');
				nEl.type = 'hidden';
				nEl.name = field;
				if(typeof(value)!='undefined') nEl.value = value;
				fobj.appendChild(nEl);
			}
			fobj.submit();
			break;
		}
		fobj = fobj.parentNode;
	}
}

g.handleFormKeyPress = function(e) {
	var el = this;
	if(e) {
		if(e.target) el = e.target;
		else if(e.srcElement) el = e.srcElement;
	}
	var k=e.charCode?e.charCode:e.keyCode?e.keyCode:0;
	if(k==13 && typeof(el.form)!='undefined') el.form.submit();
}
g.initForms = function() {
	if(g.w.attachEvent) {
		var objs = g.d.getElementsByTagName('form');
		for(var i=0; i<objs.length; i++) {
			var inps = objs[i].getElementsByTagName('input');
			for(var i2=0; i2<inps.length; i2++) {
				if(inps[i2].type!='hidden') {
					g.d.attachEvent('onkeypress',g.handleFormKeyPress);
				}
			}
		}
	}
}

/*
SelectBoxes
*/
g.selectBox = function(aobject,itemsobject,noselect) {
	this.a = aobject;
	this.i = itemsobject;
	this.on = false;
	this.active = false;
	this.currsign=false;
	this.currsigncount=0;
	this.lastkeyup=false;
	
	this.initEvents = function() {
		g.evAdd(obj.a,'click',obj.onAClick);
		
		g.d.body.appendChild(obj.i);
		
		if(obj.i.innerHTML=='' && obj.a.getAttribute('loadopt')) {
			obj.loadOpt(obj.a.getAttribute('loadopt'),true);
		}
		
		var active = false;
		var first = false;
		var objs = obj.i.getElementsByTagName('A');
		for(var i=0; i<objs.length; i++) {
			if(!first) first = objs[i];
			if(objs[i] && objs[i].className && objs[i].className.indexOf('active')!=-1) {
				active = objs[i];
			}
			g.evAdd(objs[i],'click',obj.itemClick);
		}
		if(!active)
			active = first;
		
		if(active) {
			obj.setActive(active);
		}
		
		g.evAdd(obj.a,'keyup',obj.keyup);
		
	};
	this.loadOpt = function(opt,init) {
		var data = g.query('request='+opt);
		var lines = data.split('\n');
		obj.i.innerHTML='';
		if(typeof(init)=='undefined') obj.a.innerHTML='';
		for(var l=0; l<lines.length-1; l++) {
			var nEl = g.d.createElement('a');
			if(opt.indexOf('loadregions')!=-1) {
				nEl.href = 'javascript:void(0)';
				var splits = lines[l].split(';');
				nEl.innerHTML = splits[1];
				nEl.setAttribute('onclick','g.setInputField(\'formdata[state]\','+splits[0]+')');
				if(splits[2] || typeof(init)=='undefined' && obj.a.innerHTML=='') { 
					nEl.className='active';
					obj.active = nEl;
					obj.a.innerHTML = nEl.innerHTML;
					g.setInputField('formdata[state]',splits[0]);
				}
				if(typeof(init)!='undefined' && init && l==0) {
					nEl.className='active';
					obj.active = nEl;
					obj.a.innerHTML = nEl.innerHTML;
					g.setInputField('formdata[state]',splits[0]);
				}
			}
			
			g.evAdd(nEl,'click',obj.itemClick);
						
			if(nEl.innerHTML==obj.a.innerHTML) {
				obj.active = nEl;
				nEl.className = 'active';
			}
			obj.i.appendChild(nEl);
		}
	};
	
	this.onAClick = function(e) {
		if(!obj.on) {
			
			if(obj.i.innerHTML=='' && obj.i.getAttribute('loadopt')) {
				obj.loadOpt(obj.i.getAttribute('loadopt'),true);
			}
			
			obj.show();
		} else {
			obj.disable();
		}
	};
	this.itemClick = function(e) {
		var el = this;
		if(e) {
			if(e.target) el = e.target;
			else if(e.srcElement) el = e.srcElement;
		}
		
		obj.setActive(el);
		
		obj.disable();
		
	};
	this.show = function() {
		obj.on = true;
		obj.i.style.display = 'block';
		var oi = g.oInfo(obj.a);
		obj.i.style.left = oi.x+'px';
		obj.i.style.top = oi.y+obj.a.offsetHeight+'px';
		
		if(obj.a.offsetWidth+20>obj.i.offsetWidth) {
			obj.i.style.width = obj.a.offsetWidth+20+'px';
		}
		if(obj.i.offsetHeight>300) {
			obj.i.style.height='300px';
		}
		
		if(oi.y+obj.a.offsetHeight+obj.i.offsetHeight>g.d.body.offsetHeight) {
			obj.i.style.top = oi.y-obj.i.offsetHeight+'px';
		}
		
		g.evAdd(g.d,'keyup',obj.keyup);
		
		g.evAdd(g.d,'click',obj.disable);
		
		obj.scrollCenter();
		
	};
	this.disable = function(e) {
		if(typeof(e)!=='undefined') {
			var el = this;
			if(e) {
				if(e.target) el = e.target;
				else if(e.srcElement) el = e.srcElement;
			}
			
			if(el==obj.i || el==obj.a) return false;
			var objs = obj.i.getElementsByTagName('*');
			for(var i=0; i<objs.length; i++) {
				if(objs[i]==el) return false;
			}
			
		}
		obj.on = false;
		obj.i.style.display = 'none';
		
		g.evRem(g.d,'keyup',obj.keyup);
		g.evRem(g.d,'click',obj.disable);
		
	};
		
	this.keyup = function(e) {
		if(obj.lastkeyup==e) return;
		else obj.lastkeyup=e;
		if(e.which) 
			var key = e.which; 
		else 
			var key = e.keyCode;

		var sign = unescape('%'+Number(key).toString(16));
		
		var objs = obj.i.getElementsByTagName('A');
		var count = 0;
		var found = false;
		for(var i=0; i<objs.length; i++) {
			var str = objs[i].innerHTML.replace(/<.*?>/,'');
			str = str.replace(/( |\t)/,'');
			var fsign = str.substr(0,1).toUpperCase();
			if(objs[i]==obj.active && i<objs.length-1 && key==40) {
				found = objs[i+1];
				break;
			}
			if(objs[i]==obj.active && i>0 && key==38) {
				found = objs[i-1];
				break;
			}
			if(fsign==sign) {
				found = objs[i];
				count++;
				if(obj.currsign!=sign || count>obj.currsigncount) {
					break;
				}
				
			}
		}
		if(found) {
			obj.currsign=sign;
			obj.currsigncount=count;
			if(typeof(found.onclick)=='function') found.onclick();
			obj.setActive(found);
			obj.scrollCenter();
		}
		
	};
	
	this.setActive = function(active) {
		
		var objs = obj.i.getElementsByTagName('A');
		for(var i=0; i<objs.length; i++) {
			if(objs[i].className.indexOf('active')!=-1 && objs[i]!=active) {
				objs[i].className = objs[i].className.replace(/active/,'');
			}
		}
		
		if(typeof(noselect)=='undefined' || !noselect) {
			obj.a.innerHTML = active.innerHTML;
		
			obj.active = active;
			if(active.className.indexOf('active')==-1)
				if(active.className!='')
					active.className += ' active';
				else
					active.className = 'active';
		}
	};
	
	this.scrollCenter = function() {
		var objs = obj.i.getElementsByTagName('A');
		for(var i=0; i<objs.length; i++) {
			if(objs[i].className.match(/active/)) {
				obj.i.scrollTop = objs[i].offsetTop-obj.i.offsetHeight/2+objs[i].offsetHeight/2;
			}
		}
	};
	
	
	this.onChange = function() {
		
	}
	
	var obj = this;
	obj.initEvents();
	
}
g.selectboxes = new Array();
g.initSelectBoxes = function() {
	var objs = g.d.getElementsByTagName('*');
	var p1 = false;
	var items = new Array();
	for(var i=0; i<objs.length; i++) {
		if(objs[i].parentNode && objs[i].parentNode!=g.d.body) {
			if(objs[i] && objs[i].className && objs[i].className.indexOf('selectbox_drop')==-1 && objs[i].className.indexOf('selectbox_btn_drop')==-1 && objs[i].className.indexOf('selectbox')!=-1) {
				p1 = objs[i];
			}
			if(objs[i] && objs[i].className && objs[i].className.indexOf('selectbox_drop')==-1 && objs[i].className.indexOf('selectbox_btn_drop')==-1 && objs[i].className.indexOf('selectbox_btn')!=-1) {
				p1 = objs[i];
			}
			if(objs[i] && p1 && objs[i].className && objs[i].className.indexOf('selectbox_drop')!=-1) {
				items.push({a:p1,o:objs[i],ns:false});
				p1 = false;
			}
			if(objs[i] && p1 && objs[i].className && objs[i].className.indexOf('selectbox_btn_drop')!=-1) {
				items.push({a:p1,o:objs[i],ns:true});
				p1 = false;
			}
		}
	}
	for(var i=0; i<items.length; i++) {
		g.selectboxes.push(new g.selectBox(items[i].a,items[i].o,items[i].ns));
	}
}
g.selectBoxById = function(id) {
	for(var i=0; i<g.selectboxes.length; i++) {
		if(g.selectboxes[i].a.id && g.selectboxes[i].a.id==id) {
			return g.selectboxes[i];
		}
	}
}

g.setInputField = function(name,value) {
	var objs = g.d.getElementsByTagName('input');
	for(var i=0; i<objs.length; i++) {
		if(objs[i].name==name) {
			objs[i].value=value;
		}
	}
	return true;
}

g.tableOrder = function(name,field,type) {
	if(type==0) {
		type = 1;
	} else if(type==1) {
		type = 2;
	} else if(type==2) {
		type = 1;
	}
	g.query('request=saveuserfield&setting['+encodeURIComponent(name+'_orderby')+']='+encodeURIComponent(field)+
					'&setting['+encodeURIComponent(name+'_ordertype')+']='+encodeURIComponent(type));
	location.reload();
}

g.tooltip = function(aobj,tobj) {
	var t = this;
	t.a = aobj;
	t.t = tobj;
	
	t.init = function() {
		
		t.a.ttip = t;
		t.t.ttip = t;
		
		g.evAdd(t.a,'mouseover',t.evover);
		g.evAdd(t.a,'mousemove',t.evmove);
		g.evAdd(t.a,'mouseout',t.evout);
		
		if(t.t.parentNode!=g.d.body) {
			g.d.body.appendChild(t.t);	
		}
		
	};
	
	t.evover = function(e) {
		e = g.evInfo(e);
		t.showTip(e.x,e.y);
	};
	t.evmove = function(e) {
		e = g.evInfo(e);
		t.showTip(e.x,e.y);
	};
	t.evout = function(e) {
		t.hideTip();
	};
	t.showTip = function(x,y) {
		var ws = g.getWs();
		
		var x = (x*1+10);
		var y = (y*1+10);
		
		t.t.style.left = x+'px';
		t.t.style.top = y+'px';
		t.t.style.display = 'block';
		
		var oi = g.oInfo(t.t);
		if(x+oi.w>ws.sw) {
			x = ws.sw-oi.w;	
		}
		if(y+oi.h>ws.sh) {
			y = y-oi.h-20;	
		}
		t.t.style.left = x+'px';
		t.t.style.top = y+'px';
		
		
	};
	t.hideTip = function() {
		t.t.style.display='none';
	};
	t.correctPos = function(x,y,w,h) {
		var ws = g.getWs();
		if(x+w>ws.sw) {
			x = ws.sw-w;	
		}
		if(y+h>ws.sh) {
			y = y-h-20;	
		}
		return {x:x,y:y};
	}
	
	if(!t.a || !t.t) return false;
	if(t.a.ttip && t.t.ttip) return false;
	t.init();
}

g.initTooltips = function(pobj) {
	if(typeof(pobj)=='undefined') pobj = g.d.body;
	
	var objs = pobj.getElementsByTagName('*');
	for(var i=0; i<objs.length; i++) {
		if(objs[i].getAttribute('tooltip')) {
			new g.tooltip(objs[i],g.id(objs[i].getAttribute('tooltip')));
			
		}
	}
}

g.initOnLoad = function(e) {
	
	// Init ATables
	var atables = g.objsByClass('div.atable');
	for(var i=0; i<atables.length; i++) {
		if(!atables[i].id || atables[i].id.length==0) {
			atables[i].id = 'atid_'+(new Date().getTime());
		}
		new g.atable(atables[i].id);
	}
	
	// Init Forms
	g.initForms();
	
	// Init selectboxes
	g.initSelectBoxes();
	
	g.initTooltips();
	
}

g.evAdd(g.w,'load',g.initOnLoad);

