var func = {
	Dom: false,
	IE: false,
	NS: false,
	Body: false,
	init: function() {
		if (typeof(document.getElementsByTagName)!='undefined') this.Dom=true;
		this.IE = (document.all);
		this.NS = (document.getElementById&&!this.IE);
		if (this.IE) this.Body=(document.compatMode!="BackCompat")? document.documentElement : document.body;
	}, ///////////////////////////////////////////////////////////
	q: function(id, show_err){
		var o=false;
		try{ o=document.getElementById(id); } catch(e){
			try{ o=document.getElementByName(id); } catch(e){
				try{ o=document.getElementsByName(id); } catch(e){ o=false; }
			}
		}if(o!==null) return o; else return false;
	}, ///////////////////////////////////////////////////////////
	set_var: function(ob2) {
		return ob2; //ob1=ob2;
	}, ///////////////////////////////////////////////////////////
	getMousePos: function(e) {
		var ex = e || window.event;
		var cursor = {x:0, y:0};
		if (ex.pageX || ex.pageY) { cursor.x = ex.pageX; cursor.y = ex.pageY; }
		else {
			var de = document.documentElement;
			var b = document.body;
			cursor.x = ex.clientX + (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
			cursor.y = ex.clientY + (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
		} return cursor;
	}, ///////////////////////////////
	get_page: function() {
		var pos={w: 0, h: 0}
		if (this.IE) { pos.h = this.Body.clientHeight; pos.w = this.Body.clientWidth}
		else { pos.h = window.innerHeight; pos.w=window.innerWidth;}
		//if(user_name=='Administrator') this.q('show_test').innerHTML+='height='+pos.h+' : width='+pos.w+'<br />';
		return pos;
	}, ///////////////////////////////////////////////////////////
	get_scroll: function() {
		var pos={top: 0, left: 0}
		if (this.IE) { pos.top=this.Body.scrollTop; pos.left=this.Body.scrollLeft;}
		else {pos.top=window.pageYOffset; pos.left=window.pageXOffset;}
		//if(user_name=='Administrator') this.q('show_test').innerHTML+='top='+pos.top+' : left='+pos.left+'<br />';
		return pos;
	}, ///////////////////////////////
	get_pos: function(obj) {
		if (typeof(obj)=='object'){
			var xobj = obj;
			var pos = {x: obj.offsetLeft||0, y: obj.offsetTop||0,
            w: obj.offsetWidth, //-obj.offsetLeft,
            h: obj.offsetHeight //-obj.offsetTop
            };
			while(xobj = xobj.offsetParent) { pos.x += xobj.offsetLeft||0; pos.y += xobj.offsetTop||0; }
			return pos;
		} else return { x:0, y:0, w:0, h:0};
	}, ///////////////////////////////////////////////////////////
	browser_size: function(){
		return this.get_page();
	}, ////////////////////////////
	implode: function(delimiter, ele) {
		var txt='', i=0, l=ele.length;
		for(i; i<l; i++) txt+=(txt.length>0? delimiter : '')+ele[i];
		return txt;
	}, ////////////////////////////
	explode: function(delimiter, ele) {
		tempArray=new Array(1);
		var count=0, z, ix;
		var tmp_Str=new String(ele.trim());
		while ((ix=tmp_Str.indexOf(delimiter))>-1) {
			z=ix==0? '' : tmp_Str.substr(0,ix).trim();
			if(z.length) { tempArray[count]=z; count++;}
			//tmp_Str=tmp_Str.substr( ix+delimiter.length);
			tmp_Str=tmp_Str.substr( ix+delimiter.length, tmp_Str.length-(ix+delimiter.length)+1 );
		}
		tempArray[count]=tmp_Str;
		return tempArray;
	}, ///////////////////////////////////////////////////////////
	create_opt: function(obj, ar, cur){
		obj.options.length = 0;
		var slc_idx=0;
		if (ar.length){
			for (var loop=0; loop<ar.length; loop++) {
				var optObj = document.createElement('option');
				optObj.value = ar[loop][0];
				optObj.text  = ar[loop][1];
				if (cur==optObj.value) slc_idx=loop;
				obj.options.add(optObj);
			}	obj.options.selectedIndex=slc_idx;
		}
	}, ///////////////////////////////
	get_rows: function(tb){
		if (this.Dom) return tb.getElementsByTagName('tr'); else return tb.rows;
	}, ///////////////////////////////
	get_cells: function(ro){
		var c;
		if (this.Dom) c=ro.getElementsByTagName('td'); else c=ro.cells;
		return c;
	}, ///////////////////////////////////////////////////
	create_div_new: function(id, width, height, left, top, bgcolor, html){
		var x=this.create_div(id, width, height, left, top, html);
		if(bgcolor) x.style.background=bgcolor;
		return x;
	}, ///////////////////////////////////////////////////
	create_div: function(id, width, height, left, top, html){
		var newdiv;
        newdiv=this.q(id, true);
		if(newdiv!==false){
			newdiv.innerHTML='';
		}else{
			var xbody=document.getElementsByTagName('body')[0];
			try{ newdiv=document.createElement('div'); newdiv.id=id; xbody.appendChild(newdiv);
			} catch(e){ if(user_name=='Administrator') this.q('show_test').innerHTML+='error: 115: '+e+'<br />'; }
			try{ newdiv.setAttribute('style', "position: absolute; z-index: 99999");}
			catch(e){this.q('show_test').innerHTML+=typeof(newdiv)+':'+newdiv.tagName+':'+e+'<br />';}
        }
		if (left) newdiv.style.left = left+'px';
		if (top) newdiv.style.top = top+'px';
		if (width) newdiv.style.width = width+'px';
		if (height) newdiv.style.height = height+'px';
		if (html) newdiv.innerHTML=html;
		return newdiv;
	}, ///////////////////////////////////////////////////
	div_center: function(ob, top_min){
		var wsize=this.browser_size();
		var wscroll=this.get_scroll();
		var cur_left=wscroll.left + Math.floor((wsize.w - ob.offsetWidth) /2 );
		var cur_top=wscroll.top + Math.floor((wsize.h - ob.offsetHeight) /3 );
		if(top_min==null) top_min=140;
		if (cur_top<top_min) cur_top=top_min;
		if (cur_left<0) cur_left=0;
		if (IE) {	ob.style.pixelTop=cur_top;	ob.style.pixelLeft=cur_left; }
		else{		ob.style.top=cur_top+"px";	ob.style.left=cur_left+"px";	}
	}, ////////////////////////////////
	div_move: function(ob, left, top){
		if (IE||IE7) {	ob.style.pixelTop=top; ob.style.pixelLeft=left; }
		else{
			try{ ob.style.top=top+"px"; ob.style.left=left+"px"; }
			catch(e){
				ob.style.top=top; ob.style.left=left;
			}
		}
	}, ////////////////////////////////
	div_top_center: function(ob){
		var wsize=this.browser_size();
		var wscroll=this.get_scroll();
		var cur_left=wscroll.left + Math.floor((wsize.w - ob.offsetWidth) /2 );
		if (cur_left<0) cur_left=0;
		var cur_top=0;
		if (IE) {	ob.style.pixelTop=cur_top;	ob.style.pixelLeft=cur_left; }
		else{		ob.style.top=cur_top+"px";	ob.style.left=cur_left+"px";	}
	}, ////////////////////////////////
	child_div_center: function(op, ob, top_min){
		var p_size = this.get_pos(op);
		var o_size = this.get_pos(ob);
		var cur_left	=Math.floor((p_size.w - o_size.w) /2 );
		var cur_top		=Math.floor((p_size.h - o_size.h) /2 );
		if(top_min==null) top_min=30;
		if (cur_top<top_min) cur_top=top_min;
		if (cur_left<0) cur_left=0;
		if (IE) {	ob.style.pixelTop=cur_top;	ob.style.pixelLeft=cur_left; }
		else{		ob.style.top=cur_top+"px";	ob.style.left=cur_left+"px"; }
	}, ////////////////////////////////
	script_list: {'test':''},
	load_script: function(nm, src){
		//if(user_name=='Administrator') alert(nm+':'+src);
		var is_script=false;
		eval('is_script=func.script_list.'+nm);
		if(!is_script){
			var head= document.getElementsByTagName('head')[0];
			var script= document.createElement('script');
			script.type= 'text/javascript';
			script.src= src;
			script.language='javascript';
			head.appendChild(script);
			eval('func.script_list.'+nm+'=true');
		}//else if(user_name=='Administrator') alert('Exists Script : '+src);
	}, ////////////////////////////////
	input_box: function(cell, mx, vl){
		if (mx)	cell.innerHTML='<input type="text" class=hk_text value="'+vl+'" maxlength='+mx+' style="width: 100%" />';
		else	cell.innerHTML='<input type="text" class=hk_text value="'+vl+'" style="width: 100%" />';
	}, ////////////////////////////////
	test_err: 'Complete'
}
func.init();

