function setclassname(obj, classname, value){
	if(!obj)return;
	var reg=new RegExp("(^|\\s)"+classname+"(\\s|$)");
	var found=reg.exec(obj.className);
	if(value){
		if(found)return;
		obj.className+=' '+classname;
	}
	else{
		if(!found)return;
		obj.className=obj.className.replace(reg, '$1');
	}
}



function setstyle(e, sobj){
	var i, i2;
	if(typeof(e)=='string'){
		e=document.getElementsByName(e);
	}
	else if(e.style){
		e=[e];
	}
	if(e && e.length){
		for(i=0; i<e.length; i++){
			for(i2 in sobj) e[i].style[i2]=sobj[i2];
		}
	}
}

function settextstyle(f, e, sobj){
	if(typeof(e)=='string' || e instanceof String) e=[e];
	var r=[];
	for(i=0; i<e.length;i++){
		if(e[i]=='textarea'){
			e1=f.getElementsByTagName('textarea');
			for(i2=0;i2<e1.length;i2++) r.push(e1[i2]);
		}
		else if(e[i]=='input'){
			e1=f.getElementsByTagName('input');
			for(i2=0; i2<e1.length;i2++){
				atr=e1[i2].getAttribute('type');
				if(atr=='text' || atr=='file' || atr=='password') r.push(e1[i2]);
			}
		}
	}
	for(i=0; i<r.length; i++){
		if(r[i].className) continue;
		for(i2 in sobj) r[i].style[i2]=sobj[i2];
	}
}
function brokenimgcheck(name){
	var img=document.getElementsByName(name);
	for(var i=0; i<img.length; i++){
		if(!(img[i].complete) && img[i].fileSize && !(img[i].fileSize>2)){
			img[i].className='hidden';
		}
		else img[i].className='shown';
	}
}

function toggletr(id){
	var color, color1, color2;
	var tr=document.getElementById(id);
	if(arguments[1])color1=arguments[1];
	if(arguments[2])color2=arguments[2];
	if(!color1)color1=sysdt.style.schtrcolor[0];
	if(!color2)color2=sysdt.style.schtrcolor[1];
	color=color2;
	if(tr==null)return;
	for(tr=tr.nextSibling; tr!=null; tr=tr.nextSibling){
		color=color==color1 ? color2 : color1;
		tr.style.backgroundColor=color;
	}
}

function showhide(e, sh){
	if(!e)return;
	var i, j, v;
	var d=[{display : 'none', visibility : 'hidden'}, {display : '', visibility : ''}];
	if(arguments[2]) d[1].display=arguments[2];

	v=sh ? 1 : 0;
	var o;
	if(typeof(e)=='string' || e instanceof String){
		o=document.getElementsByName(e);
	}
	else o=[e];
	for(i=0; i<o.length; i++){
		if(o[i] && o[i].style){
			o[i].style.display=d[v].display;
			o[i].style.visibility=d[v].visibility;
		}
	}
}

function getoffset(obj){
	var p, ol=0, ot=0, or=0, ob=0;
	for(o=obj;o;o=o.offsetParent){
		ol+=o.offsetLeft;
		ot+=o.offsetTop;
	}
	or=ol+obj.offsetWidth;
	ob=ot+obj.offsetHeight;
	return [ol, ot, or, ob];
}

function relplace(obj, x, y){
	var ref, os;
	if(arguments[3])ref=arguments[3];
	if(typeof(obj)=='string' || obj instanceof String) obj=document.getElementById(obj);
	if(typeof(ref)=='string' || ref instanceof String) ref=document.getElementById(ref);
	if(ref) os=getoffset(ref);
	else os=[0,0,0,0];
	obj.style.position='absolute';
	obj.style.left=os[0]+x;
	obj.style.top=os[1]+y;
}

function rangeelements(sid, eid, n){
	var e1, e2, ee;
	var i, r=[];

	e1=document.getElementById(sid);
	e2=document.getElementById(eid);
	if(n>0){
		for(i=0;i<n;i++) {
			e1=e1.parentNode;
			e2=e2.parentNode;
		}
	}
	e2=e2.nextSibling;
	for(ee=e1; ee && ee!=e2; ee=ee.nextSibling)r.push(ee);
	return r;
}
