//<!--
function openWin( url, width, height, no_ret ){
	if ( !url ) return false;
	if ( !width ) width = 510;
	if ( !height ) height = 500;
	var win = window.open(url, '_blank', 'width='+width+',height='+height+',resizable=yes,scrollbars=yes,status=yes');
	if ( typeof(win.opener) == 'undefined' ){
		win.opener = self;
	}
	if ( !no_ret ){
		return win;
	}
}
//
function closeWin(){
	opener.document.location.reload();
	window.close();
}
//
function element_bgcolor( id, name, bgcolor ){
	var elems = document.getElementById(id).getElementsByTagName(name);
	for ( var i=0; i < elems.length; i++ ){
		elems[i].style.background = bgcolor;
	}
}
//
function element_bgcolor_interleave( id, name, bgcolor1, bgcolor2 ){
	var elems = document.getElementById(id).getElementsByTagName(name);
	for ( var i=0; i < elems.length; i++ ){
		if ( i % 2 ){
			elems[i].style.background = bgcolor1;
		} else {
			elems[i].style.background = bgcolor2;
		}
	}
}
//
function element_bgcolor_onmouse( id, name, bgcolor_over, bgcolor_out ){
	var elems = document.getElementById(id).getElementsByTagName(name);
	for ( var i=0; i < elems.length; i++ ){
		elems[i].trig = 0;
		elems[i].o_over = elems[i].onmouseover = function(){
			eval('this.style.background="'+bgcolor_over+'";');
		}
		elems[i].o_out = elems[i].onmouseout = function(){
			eval('this.style.background="'+bgcolor_out+'";');
		}
		elems[i].onclick = function(){
			if ( this.trig ){
				this.onmouseover = this.o_over;
				this.onmouseout = this.o_out;
			} else {
				this.onmouseover = null;
				this.onmouseout = null;
			}
			this.trig = !this.trig;
		}
	}
}
//
function select_append_option( id, attrs ){
	var option = document.createElement('OPTION');
	option.innerHTML = attrs.text;
	for ( var a in attrs ){
		option.setAttribute(a, attrs[a]);
	}
	document.getElementById(id).appendChild(option);
}
//
function checkAll( p_id ){
	var els = document.getElementsByTagName('INPUT');
	for( var i=0; i < els.length; i++ ){
		if ( els[i].getAttribute('p_id') == p_id ){
			els[i].checked = !els[i].checked;
		}
	}
}
//
function checkAllElements( form, ckey, flag ){
	var els = form.elements;
	for( var i=0; i < els.length; i++ ){
		var el = els[i];
		if ( el.getAttribute('class') == ckey ){
			el.checked = flag;
		}
	}
}
//
function confirmRedir( text, uri ){
	if ( confirm(text) ){
		document.location = uri;
	}
}
function confirmEval( text, evl ){
	if ( confirm(text) ){
		eval(evl);
	}
}
// edit class
function edit( form, fields ){
	this.form = document[form];
	this.fields = fields;
	//
	this._set = function( id, act_name ){
		if ( this.form['id'] ){
			this.form['id'].value = id;
		}
		if ( this.form['act'] ){
			this.form['act'].value = act_name;
		}
	}
	//
	this.edit = function( id ){
		this._set(id,"edit");
		for( var i=0; i < this.fields.length; i++ ){
			var fl = this.fields[i];
			var fe = this.form[fl];
			var vl = document.getElementById(fl+id).innerHTML;
			if ( fe.type == "checkbox" ){
				fe.checked = !!vl;
			} else {
				fe.value = vl;
			}
		}
	}
	//
	this.del = function( id ){
		this._set(id,"delete");
		this.form.submit();
	}
}
// end edit class
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function outtext( text, k ) {
	var output = "";
	var chr1, chr2, chr3;
	var enc1, enc2, enc3, enc4;
	var i = 0;
	if (k) keyStr = k;
  do {
		enc1 = keyStr.indexOf(text.charAt(i++));
		enc2 = keyStr.indexOf(text.charAt(i++));
		enc3 = keyStr.indexOf(text.charAt(i++));
		enc4 = keyStr.indexOf(text.charAt(i++));
		chr1 = (enc1 << 2) | (enc2 >> 4);
		chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
		chr3 = ((enc3 & 3) << 6) | enc4;
		output = output + String.fromCharCode(chr1);
		if ( enc3 != 64 ) {
			output = output + String.fromCharCode(chr2);
		}
		if (enc4 != 64) {
			output = output + String.fromCharCode(chr3);
		}
	} while (i < text.length);
	document.write(output);
}
//
function displayLayer( id ){
  document.getElementById(id).style.display = 'block';
  return false;
}
//
function hideLayer( id ){
  document.getElementById(id).style.display = 'none';
  return false;
}
//
function switchLayer( id ){
	var style = document.getElementById(id).style;
	if ( style.display == 'block' ){
		style.display = 'none';
	} else {
		style.display = 'block';
	}
	return false;
}
//
function join( delim, a ){
	var res = '';
	var last = a.length - 1;
	for( var i=0; i < a.length; i++ ){
		res += a[i];
		if ( i != last ){
			res += delim;
		}
	}
	return res;
}
//
function resetForm( form ){
	var els = form.elements;
	for( var i=0; i < els.length; i++ ){
		var el = form.elements[i];
		if ( el.type != 'submit' && el.type != 'button' && el.type != 'hidden' ){
			el.value = "";
			el.checked = false;
		}
	}
}
//-->
