/*
© Copyright
FETS Fortbildung Entwicklung Technik Service GmbH
Mayenner Str. 22
DE-71332 Waiblingen
Telefon +49 (0) 7151 - 9443420 - 0
Telefax +49 (0) 7151 - 9443420 - 10
*/
dashBBoxList = new Array();
dashBDummy = false;
function dashBBox(id,idn) {
	this.id = id;
	this.idn = idn;
	this.tablepos = false;
	this.order = false;
	this.obj = false;
	this.titlebar = false;
	this.titlebar2 = false;
	this.btn_close = false;
	this.cont = false;
	this.contrequest = '';
	this.down = false;
	this.nd = false;
	this.poslist = new Array;
	this.moved = false;
	
	this.loadBoxFromCont = function(cid) {
		obj.obj = document.getElementById(id);
		if(!obj.obj) return false;
		var objs = obj.obj.getElementsByTagName('*');
		for(var i=0; i<objs.length; i++) {
			if(objs[i].className=='title') obj.titlebar = objs[i];
			if(objs[i].className=='righttitle') obj.titlebar2 = objs[i];
			if(objs[i].className=='close') obj.btn_close = objs[i];
			if(objs[i].className=='cont') obj.cont = objs[i];
		}
		
		obj.tablepos = obj.getTablePos();
		obj.order = obj.getOrder();
		
		obj.initEvents();
	};
	
	this.loadCont = function(parms) {
		obj.contrequest = 'request=loadbox&id='+obj.id+(parms?'&'+parms:'');
		var nEl = document.createElement('div');
		nEl.innerHTML = dynquery(obj.contrequest);
		
		var objs = nEl.getElementsByTagName('*');
		for(var i=0; i<objs.length; i++) {
			if(objs[i].className=='title') obj.titlebar.innerHTML = objs[i].innerHTML;
			if(objs[i].className=='righttitle') obj.titlebar2.innerHTML = objs[i].innerHTML;
			if(objs[i].className=='cont') obj.cont.innerHTML = objs[i].innerHTML;
		}
		
	};
	
	this.getTablePos = function() {
		var no = obj.obj;
		while(no.parentNode) {
			if(no.getAttribute('dashBPos')) {
				return no.getAttribute('dashBPos');
			}
			no = no.parentNode;
		}
		return false;
	};
	
	this.getOrder = function() {
		var no = obj.obj;
		var anz = 1;
		while(no.previousSibling) {
			if(no.previousSibling.tagName && no.previousSibling.tagName=='DIV' && no.previousSibling.id) {
				anz++;
			}
			no = no.previousSibling;
		}
		return anz;
	};
	
	this.initEvents = function() {
		if(window.addEventListener) {
			if(obj.btn_close) obj.btn_close.addEventListener('click',obj.evClose,false);
			obj.titlebar.addEventListener('mousedown',obj.evDown,false);
			obj.titlebar2.addEventListener('mousedown',obj.evDown,false);
		} else if(window.attachEvent) {
			if(obj.btn_close) obj.btn_close.attachEvent('onclick',obj.evClose);
			obj.titlebar.attachEvent('onmousedown',obj.evDown);
			obj.titlebar2.attachEvent('onmousedown',obj.evDown);
		}
	};
	
	this.evDown = function(e) {
		
		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;
		}
		
		obj.down = new Array(pX,pY);
		
		if(window.addEventListener) {
			document.body.addEventListener('mousemove',obj.evMove,false);
			document.body.addEventListener('mouseup',obj.evUp,false);
		} else if(window.attachEvent) {
			document.body.attachEvent('onmousemove',obj.evMove);
			document.body.attachEvent('onmouseup',obj.evUp);
			document.attachEvent("onselectstart",evFalse);
		}
		
		obj.poslist = new Array();
		for(var i=0; i<dashBBoxList.length;i++) {
			if(!dashBBoxList[i]) continue;
			dashBBoxList[i].pos = get_bodypos(dashBBoxList[i].obj);
			obj.poslist.push(dashBBoxList[i]);
		}
		
		var els = document.getElementsByTagName('*');
		for(var i=0; i<els.length;i++) {
			if(els[i] && els[i].getAttribute('dashBPos')) obj.poslist.push({obj:els[i],pos:get_bodypos(els[i])});
		}
		
		return false;
	};
	this.evMove = function(e) {
		if(obj.down==false) return;
		obj.moved = true;
		
		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;
		}
				
		var diffX = obj.down[0]-pX;
		var diffY = obj.down[1]-pY;
		
		if(obj.y-diffY>20 && obj.x-diffX>=0){ 
			obj.setPos(obj.x-diffX,obj.y-diffY);
		}
		
		obj.down = new Array(pX,pY);
		
		obj.nd = obj.getNerest(pX,pY);
		obj.drawDummy(obj.nd);
		
		if(window.getSelection) window.getSelection().removeAllRanges();
		return false;
	};
	this.evUp = function(e) {
		obj.down = false;
		if(window.addEventListener) {
			document.body.removeEventListener('mousemove',obj.evMove,false);
			document.body.removeEventListener('mouseup',obj.evUp,false);
		} else if(window.attachEvent) {
			document.body.detachEvent('onmousemove',obj.evMove);
			document.body.detachEvent('onmouseup',obj.evUp);
			document.detachEvent("onselectstart",evFalse);
		}
		
		if(!obj.moved) return false;
		
		if(obj.nd && obj.nd.obj) {
			var nd = obj.nd;
			dashBDummy.style.display = 'none';

			dashBDummy.parentNode.insertBefore(obj.obj,dashBDummy);
			
		}
		
		obj.tablepos = obj.getTablePos();
		obj.order = obj.getOrder();
		
		var str = 'tablepos='+obj.tablepos+'&';
		str += 'idn='+obj.idn+'&';
		str += 'order='+obj.order+'&';
		str += 'show=1&';
		str += 'data='+encodeURIComponent(obj.contrequest);
		dynquery('request=setboxdata&id='+obj.id+'&'+str);
		
		return false;
	};
	this.evClose = function(e) {
		
		closeSingleBox();
		
		dynquery('request=setboxdata&id='+obj.id+'&show=0&data='+encodeURIComponent(obj.contrequest), false,false);
		
		for(var i=0; i<dashBBoxList.length; i++) {
			if(dashBBoxList[i]==obj) dashBBoxList[i]=null;
		}
		
		if(obj.obj && obj.obj.parentNode) obj.obj.parentNode.removeChild(obj.obj);
		
		
		delete obj;
	};
	this.getNerest = function(pX,pY) {
	
		var nearest = false;
		var nearest_diff = false;
		var nearest_after = false;
		var objs = obj.poslist;
				
		for(var i=0; i<objs.length; i++) {
			if(!objs[i]) continue;
			el = objs[i].obj;
			
			//var pos = get_bodypos(el);
			var pos = objs[i].pos;
			
			
			var pos_1 = {x:pos[0],y:pos[1]};									// Top Left
			var pos_2 = {x:pos[0],y:pos[1]+el.offsetHeight};	// Bottom Left
			var pos_3 = {x:pos[0]+el.offsetWidth,y:pos[1]};		// Top Right
			var pos_4 = {x:pos[0]+el.offsetWidth,y:pos[1]+el.offsetHeight};		// Bottom Right
			
			var diff_1 = Math.sqrt(Math.abs(pos_1.x-pX)*Math.abs(pos_1.x-pX)+Math.abs(pos_1.y-pY)*Math.abs(pos_1.y-pY));
			var diff_2 = Math.sqrt(Math.abs(pos_2.x-pX)*Math.abs(pos_2.x-pX)+Math.abs(pos_2.y-pY)*Math.abs(pos_2.y-pY));
			var diff_3 = Math.sqrt(Math.abs(pos_3.x-pX)*Math.abs(pos_3.x-pX)+Math.abs(pos_3.y-pY)*Math.abs(pos_3.y-pY));
			var diff_4 = Math.sqrt(Math.abs(pos_4.x-pX)*Math.abs(pos_4.x-pX)+Math.abs(pos_4.y-pY)*Math.abs(pos_4.y-pY));
						
			var diffX = Math.abs(pos[0]-pX);
			var diffY = Math.abs(pos[1]-pY);
			var diff = Math.sqrt(diffX*diffX+diffY*diffY);
			
			var reldiff = 0;
			var after = false;
			
			if(diff_1<=diff_2 && diff_1<=diff_3 && diff_1<=diff_4) {
				reldiff = diff_1;
			} else if(diff_2<=diff_1 && diff_2<=diff_3 && diff_2<=diff_4) {
				reldiff = diff_2;
				after = true;
			} else if(diff_3<=diff_1 && diff_3<=diff_2 && diff_3<=diff_4) {
				reldiff = diff_3;
			} else {
				reldiff = diff_4;
				after = true;
			}
			
	
			if(!nearest && !nearest_diff || nearest_diff>reldiff) {
				nearest_diff = reldiff;
				nearest_after = after;
				nearest = el;
			}
		}
		
		return {obj:nearest, diff:nearest_diff, afterobj:nearest_after};
	};
	this.drawDummy = function(nd) {
		if(!dashBDummy) {
			dashBDummy = document.createElement('div');
			dashBDummy.className = 'dashBDummy';
		}
		
		dashBDummy.style.height = (obj.obj.offsetHeight-10)+'px';
		dashBDummy.style.display = 'block';
		
		if(nd.obj.tagName!='DIV' && nd.afterobj) {
			nd.obj.appendChild(dashBDummy);
		} else if(nd.obj.tagName!='DIV' && nd.obj.firstChild) {
			nd.obj.insertBefore(dashBDummy,nd.obj.firstChild);
		} else if(nd.afterobj && nd.obj.nextSibling && nd.obj.parentNode) {
			nd.obj.parentNode.insertBefore(dashBDummy,nd.obj.nextSibling);
		} else if(nd.afterobj && nd.obj.parentNode) {
			nd.obj.parentNode.appendChild(dashBDummy);
		} else {
			nd.obj.parentNode.insertBefore(dashBDummy,nd.obj);
		}
		
	};
	
	var obj = this;
	obj.loadBoxFromCont(id);
	dashBBoxList.push(obj);
}

function getBox(id) {
	for(var i=0; i<dashBBoxList.length; i++) {
		if(dashBBoxList[i] && dashBBoxList[i].id==id) return dashBBoxList[i];
	}
	return new Object();
}

function moveableDivBox(id) {
	
	this.obj = document.getElementById(id);
	if(!this.obj) return false;
	this.titlebar = false;
	this.titlebar2 = false;
	this.btn_close = false;
	this.cont = false;
	this.pos = {x:0,y:0};
	this.down = false;
	this.x = 0;
	this.y =0;
	
	this.loadBoxFromCont = function(cid) {
		
		obj.obj = document.getElementById(id);
		if(!obj.obj) return false;
		var objs = obj.obj.getElementsByTagName('*');
		for(var i=0; i<objs.length; i++) {
			if(objs[i].className=='title') obj.titlebar = objs[i];
			if(objs[i].className=='righttitle') obj.titlebar2 = objs[i];
			if(objs[i].className=='close') obj.btn_close = objs[i];
			if(objs[i].className=='cont') obj.cont = objs[i];
		}
		
		var pos = get_bodypos(obj.obj);
		obj.setPos(pos[0],pos[1]);
		document.body.appendChild(obj.obj);
		
		obj.initEvents();
	};
	
	this.initEvents = function() {
		if(window.addEventListener) {
			if(obj.btn_close) obj.btn_close.addEventListener('click',obj.evClose,false);
			obj.titlebar.addEventListener('mousedown',obj.evDown,false);
			obj.titlebar2.addEventListener('mousedown',obj.evDown,false);
		} else if(window.attachEvent) {
			if(obj.btn_close) obj.btn_close.attachEvent('onclick',obj.evClose);
			obj.titlebar.attachEvent('onmousedown',obj.evDown);
			obj.titlebar2.attachEvent('onmousedown',obj.evDown);
		}
	};
	
	this.evDown = function(e) {
		
		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;
		}
		
		obj.down = new Array(pX,pY);
		
		
		
		if(window.addEventListener) {
			document.body.addEventListener('mousemove',obj.evMove,false);
			document.body.addEventListener('mouseup',obj.evUp,false);
		} else if(window.attachEvent) {
			document.body.attachEvent('onmousemove',obj.evMove);
			document.body.attachEvent('onmouseup',obj.evUp);
			document.attachEvent("onselectstart",evFalse);
		}
		
		return false;
	};
	this.evMove = function(e) {
		if(obj.down==false) return;
		obj.moved = true;
		
		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;
		}
				
		var diffX = obj.down[0]-pX;
		var diffY = obj.down[1]-pY;
		
		//if(obj.y-diffY>20 && obj.x-diffX>=0){ 
			obj.setPos(obj.x-diffX,obj.y-diffY);
		//}
		
		obj.down = new Array(pX,pY);
		
		
		if(window.getSelection) window.getSelection().removeAllRanges();
		return false;
	};
	this.evUp = function(e) {
		obj.down = false;
		if(window.addEventListener) {
			document.body.removeEventListener('mousemove',obj.evMove,false);
			document.body.removeEventListener('mouseup',obj.evUp,false);
		} else if(window.attachEvent) {
			document.body.detachEvent('onmousemove',obj.evMove);
			document.body.detachEvent('onmouseup',obj.evUp);
			document.detachEvent("onselectstart",evFalse);
		}
		
		if(!obj.moved) return false;
		
	};
	this.setPos = function(pX,pY) {
		
		obj.x = pX;
		obj.y = pY;
		
		obj.obj.style.left = pX+'px';
		obj.obj.style.top = pY+'px';
		
	};
	
	var obj=this;
	obj.loadBoxFromCont(id);
	
}

function getValueFromURIData(data,field) {
	var rows = data.split('&');
	if(rows.length>1) {
		for(var i=0; i<rows.length; i++) {
			var kv = rows[i].split('=');
			if(kv[0]==field) return decodeURIComponent(kv[1]);
		}
	}
	return false;
}

function dynquery(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) {
		return req.responseText;
	} else {
		return '';
	}
}

singlebox = false;
singlebox_darkobj = false;
function openSingleBox(id,width,height) {
	if(singlebox_darkobj==false) {
		singlebox_darkobj = document.createElement('div');
		singlebox_darkobj.className = 'darkobj';
		document.body.appendChild(singlebox_darkobj);
	}
	if(singlebox==false) {
		singlebox = document.createElement('div');
		singlebox.style.position = 'absolute';
		document.body.appendChild(singlebox);
	}
	singlebox.style.display = 'block';
	if(typeof(width)=='undefined') 
		singlebox.style.width = '40%';
	else
		singlebox.style.width = width+'px';
	
	if(typeof(height)=='undefined') 
		singlebox.style.height = '30%';
	else
		singlebox.style.height = height+'px';
	
	singlebox_darkobj.style.display = 'block';
	
	if(window.innerWidth) {
		var disp_w = window.innerWidth;
		var disp_h = window.innerHeight;
	} else if(document.documentElement) {
		var disp_w = document.documentElement.clientWidth;
		var disp_h = document.documentElement.clientHeight;
	} else if(document.body) {
		var disp_w = document.body.clientWidth;
		var disp_h = document.body.clientHeight;
	}
	singlebox_darkobj.style.width = disp_w+'px';
	singlebox_darkobj.style.height = disp_h+'px';
		
	singlebox.innerHTML = dynquery('request=loadbox&id='+id);
	
	singlebox.style.left = Math.floor(disp_w/2-singlebox.offsetWidth/2)+'px';
	singlebox.style.top = Math.floor(disp_h/2-singlebox.offsetHeight/2)+'px';
	
	singlebox.style.zIndex = 101;
	
	new dashBBox(id);
	
	if(window.addEventListener) {
		window.addEventListener('resize',resizeDarkObj,false);
	} else if(window.attachEvent) {
		window.attachEvent('onresize',resizeDarkObj);
	}
	
}

function closeSingleBox() {
	if(singlebox) {
		singlebox.style.display = 'none';
		singlebox_darkobj.style.display = 'none';
	}
}

function resizeDarkObj() {
	if(window.innerWidth) {
		var disp_w = window.innerWidth;
		var disp_h = window.innerHeight;
	} else if(document.body) {
		var disp_w = document.body.clientWidth;
		var disp_h = document.body.clientHeight;
	} else {
		var disp_w = document.documentElement.clientWidth;
		var disp_h = document.documentElement.clientHeight;
	}
	singlebox_darkobj.style.width = disp_w+'px';
	singlebox_darkobj.style.height = disp_h+'px';
}

function saveUserField(setting,value) {
	dynquery('request=saveuserfield&setting='+encodeURIComponent(setting)+'&value='+encodeURIComponent(value));
}

function loadNaviContent(id,activeid,dstid) {
	if(document.getElementById(dstid)) {
		var cont = dynquery('request=navicontent&id='+encodeURIComponent(id)+'&active='+encodeURIComponent(activeid));
		if(cont!=false) {
			document.getElementById(dstid).innerHTML = cont;
		} else {
			document.getElementById(dstid).innerHTML = '';
		}
	}
}


function selectBox(aobject,itemsobject) {
	this.a = aobject;
	this.i = itemsobject;
	this.on = false;
	this.active = false;
	
	this.initEvents = function() {
		if(window.addEventListener) {
			obj.a.addEventListener('click',obj.onAClick,false);
		} else if(window.attachEvent) {
			obj.a.attachEvent('onclick',obj.onAClick);
		}
		
		document.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];
			}
			if(window.addEventListener) {
				objs[i].addEventListener('click',obj.itemClick,false);
			} else if(window.attachEvent) {
				objs[i].attachEvent('onclick',obj.itemClick);
			}
		}
		if(!active)
			active = first;
		
		if(active) {
				obj.setActive(active);
		}
		
		if(obj.a.offsetWidth<obj.i.offsetWidth) {
			obj.a.style.width = obj.i.offsetWidth+15+'px';
		}
		
	};
	this.loadOpt = function(opt,init) {
		var data = dynquery('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 = document.createElement('a');
			if(opt.indexOf('loadregions')!=-1) {
				nEl.href = 'javascript:void(0)';
				var splits = lines[l].split(';');
				nEl.innerHTML = splits[1];
				nEl.setAttribute('onclick','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;
					setInputField('formdata[state]',splits[0]);
				}
				if(typeof(init)!='undefined' && init && l==0) {
					nEl.className='active';
					obj.active = nEl;
					obj.a.innerHTML = nEl.innerHTML;
					setInputField('formdata[state]',splits[0]);
				}
			}
			
			if(window.addEventListener) {
				nEl.addEventListener('click',obj.itemClick,false);
			} else if(window.attachEvent) {
				nEl.attachEvent('onclick',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 pos = get_bodypos_def(obj.a);
		obj.i.style.left = pos[0]+'px';
		obj.i.style.top = pos[1]+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(pos[1]+obj.a.offsetHeight+obj.i.offsetHeight>document.body.offsetHeight) {
			obj.i.style.top = pos[1]-obj.i.offsetHeight+'px';
		}
		
		if(window.addEventListener) {
			document.addEventListener('click',obj.disable,false);
		} else if(window.attachEvent) {
			document.attachEvent('onclick',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';
		
		if(window.addEventListener) {
			document.removeEventListener('click',obj.disable,false);
		} else if(window.attachEvent) {
			document.detachEvent('onclick',obj.disable);
		}
		
	};
	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/,'');
			}
		}
		
		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();
	
}
var selectboxes = new Array();
function initSelectBoxes() {
	var objs = document.getElementsByTagName('*');
	var p1 = false;
	var items = new Array();
	for(var i=0; i<objs.length; i++) {
		if(objs[i].parentNode && objs[i].parentNode!=document.body) {
			if(objs[i] && objs[i].className && objs[i].className.indexOf('selectbox_drop')==-1 && objs[i].className.indexOf('selectbox')!=-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]});
				p1 = false;
			}
		}
	}
	for(var i=0; i<items.length; i++) {
		selectboxes.push(new selectBox(items[i].a,items[i].o));
	}
}
function selectBoxById(id) {
	for(var i=0; i<selectboxes.length; i++) {
		if(selectboxes[i].a.id && selectboxes[i].a.id==id) {
			return selectboxes[i];
		}
	}
}

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

function evFalse() {
	return false;
}
checkFormFieldRunning = false;
checkFormFieldObj = false;
checkFormFieldReq = false;
function checkFormField(fobj) {
	
	checkFormFieldObj = fobj;
	var regexp = /^formdata\[(.+?)\]/;
	regexp.exec(fobj.name);
	var fname = RegExp.$1;
	var fvalue = fobj.value;
	
	if(!checkFormFieldReq) {
		if(window.XMLHttpRequest) {
			checkFormFieldReq = new XMLHttpRequest();
		} else {
			if(window.ActiveXObject) {
				checkFormFieldReq = new ActiveXObject("Microsoft.XMLHTTP")
			} else {
				checkFormFieldReq = false;
			}
		}
	}
	var req = checkFormFieldReq;
	req.abort();
	req.open('POST',window.location.pathname,true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	req.send('checkfield='+encodeURIComponent(fname)+'&value='+encodeURIComponent(fvalue));
	
	req.onreadystatechange = function() {
		if (req.readyState==4) {
			if (req.status == 200) {
				doFormCheck(fobj,req.responseText);
			}
		}
	};


	return true;
}
function doFormCheck(fobj,ret) {
	//if(checkFormFieldRunning) return false;
	checkFormFieldRunning = true;
	var regexp = /^formdata\[(.+?)\]/;
	regexp.exec(fobj.name);
	var fname = RegExp.$1;
	var fvalue = fobj.value;
	
	checkFormFieldRunning = false;
	if(fvalue.length<1) return false;
	
	var objs = document.getElementsByTagName('span');
	var regexp = new RegExp('^'+fname+'_err_(\\d+?)$');
	for(var i=0; i<objs.length; i++) {
		if(objs[i].className=='err' && regexp.exec(objs[i].id)!=null) {
			if(ret==RegExp.$1) objs[i].style.display='';
			else objs[i].style.display='none';
		}
	}
	if(ret==0) {
		fobj.className = fobj.className.replace(/formerr/,'');
	}
	else if(fobj.className.indexOf('formerr')==-1) fobj.className += ' formerr';
	checkFormFieldRunning = false;
}

function get_bodypos(obj) {
	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 new Array(x,y);
}
function handleFormKeyPress(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();
}
function initForms() {
	if(window.attachEvent) {
		var objs = document.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') {
					document.attachEvent('onkeypress',handleFormKeyPress);
				}
			}
		}
	}
}