/*
ns sk				http://www.appmosphere.com/ns/sitekit/3.0#
ns dc				http://purl.org/dc/elements/1.1/
dc:title			l_dom
dc:date				2004-04-13
dc:creator			benjamin nowack
dc:rights			2004, appmosphere.com, germany, all rights reserved
dc:description		sitekit javascript DOM library
sk:fileVersion		1.0
sk:fileChangelog	-
*/


/* basics */

function get_el(el_id, win){
	if(!win){
		win=window;
	}
	if(win.document["getElementById"]){
		return win.document.getElementById(el_id);
	}
	if(win.document["all"]){
		return win.document.all[el_id];
	}
	return false;
}

function set_el_style(style_name, style_value, el, el_id){
	var delimiter=(style_value==parseFloat(style_value)) ? "" : "\'";
	el = (el) ? el : get_el(el_id);
	if(el){
		if(el["style"]){
			el.style[style_name]=style_value;
		}
		else{/* e.g. ns4 */
			el[style_name]=style_value;
		}
	}
	return true;
}

function show_el(el_id, x, y, z){
	if(el=get_el(el_id)){
		if(x){
			set_el_style("left", parseInt(x)+"px", el);
		}
		if(y){
			set_el_style("top", parseInt(y)+"px", el);
		}
		if(z){
			set_el_style("zIndex", z, el);
		}
		set_el_style("visibility", "visible", el);
	}
	return true;
}

function hide_el(el_id){
	if(el=get_el(el_id)){
		set_el_style("visibility", "hidden", el);
	}
	return true;
}

function set_inner_html(el_id, val){
	if((el=get_el(el_id))){
		el.innerHTML=val;
	}
	return true;
}

function set_el_display(el_id, val){
	if(el=get_el(el_id)){
		set_el_style("display", val, el);
	}
}

function tgl_el_display(el_id){
	if(el=get_el(el_id)){
		val=(el.style.display!="none") ? "none" : "block";
		set_el_style("display", val, el);
	}
}

/* events */

function activate_mouse_move_watching(){
	document.onmousemove = watch_mouse_move;
}

function watch_mouse_move(e){/* relative to doc, not win */
	window.cur_mouse_x=get_event_x(e);
	window.cur_mouse_y=get_event_y(e);
	/* ie offset */
	if(!window["ua"]){
		window.ua="";
		if(navigator){
			window.ua=navigator.userAgent;
		}
	}
	var ua_tag=window.ua.toLowerCase();
	if(window.document.body && window.document.body.scrollTop && (ua_tag.indexOf("msie")!=-1) && (ua_tag.indexOf("opera")==-1)){
		window.cur_mouse_y+=window.document.body.scrollTop;
	}
	/* window.status=window.cur_mouse_x+","+window.cur_mouse_y; */
}

function get_event_x(e){
	if(e && e.pageX){
		return e.pageX;
	}
	if(window.event && window.event.x){
		return window.event.x;
	}
	return 0;
}

function get_event_y(e){
	if(e && e.pageY){
		return e.pageY;
	}
	if(window.event && window.event.y){
		return window.event.y;
	}
	return 0;
}

/* out of dom */

function getWinInnerHeight(win){
	if(!win){
		win=window;
	}
	if(win && win.innerHeight){
		return win.innerHeight;
	}
	if(win && win.document && win.document.body && win.document.body.clientHeight){
		return win.document.body.clientHeight;
	}
	return 0;
}

/* forms */

/*					*/

function submit_form(form_id){
	/* get form */
	var el=get_el(form_id);
	if(el && el.submit){
		el.submit();
	}
	else{
		alert("Error: Form '"+form_id+"' not found.");
	}
}


function reset_form(form_id, form_name, div_id){
	/* get form */
	var el=get_el(form_id);
	if(el && el.reset){
		el.reset();
	}
	else{
		alert("Error: Form '"+form_id+"' not found.");
	}
}

function focus_form_fld(form_id, fld_name){
	/* get form */
	var el=get_el(form_id);
	if(el && el[fld_name]){
		el[fld_name].focus();
	}
}

function get_selection_val(el){
	if(el){
		return el[el.selectedIndex].value;
	}
	return false;
}

/*					*/

function showInfoDiv(enc_val, x_pos, y_pos, el_id){
	if(!el_id){
		el_id="infoDiv";
	}
	if(!x_pos){
		x_pos=window.cur_mouse_x+25;
	}
	if(!y_pos){
		y_pos=window.cur_mouse_y-30;
	}
	if(el=get_el(el_id)){
		set_inner_html(el_id, unescape(enc_val));
		show_el(el_id, x_pos, y_pos);
		if(window.hideInfoTO){
			clearTimeout(window.hideInfoTO);
		}
		//window.hideInfoTO=setTimeout("hideInfoDiv('"+el_id+"')", 5000);
	}
	return true;
}

function hideInfoDiv(el_id){
	if(!el_id){
		el_id="infoDiv";
	}
	if(window.hideInfoTO){
		clearTimeout(window.hideInfoTO);
	}
	window.hideInfoTO=setTimeout("hide_el('"+el_id+"')", 100);
	return true;
}

/*					*/

function switch_img_src(img_id, src){
	if(el=get_el(img_id)){
		el.src=src;
	}
	return true;
}

/*					*/
