/*
description:	appmosphere gui library
created:		26.08.2002
author:			benjamin nowack
copyright:		2002, appmosphere.com, germany, all rights reserved
language:		JavaScript
version:		1.0
changes:		
comments:		
*/

function get_p(){/* returns parent_win */
	var w_name=window.name;
	if(w_name=="gui_win" || w_name=="server_win1" || w_name=="server_win2" || w_name=="server_win3"){
		var w=parent;
	}
	else{
		if(w_name.indexOf("admin_iframe")!=-1){
			var w=parent.parent;
		}
		else{
			var w=window;
		}
	}
	return w;
}


function get_g(){/* returns gui_win */
	var p=get_p();
	if(p && p.gui_win){
		return p.gui_win;
	}
	if(self==top){
		return self;
	}
}


function get_d(){/* returns gui_win_doc */
	var gui_win=get_g();
	if(gui_win && gui_win.document){
		return gui_win.document;
	}
}

function get_screen_resolution(){
	if(screen && screen.width && screen.height){
		return screen.width+"x"+screen.height; 
	}
	return "";
}

function get_gui_width(){
	var p=get_p();
	if(p.get_ua_cat){
		var ua_cat=p.get_ua_cat();/* l_useragent.js */
		var my_win=get_g();
		var my_doc=get_d();
		if(my_win && my_doc){
			if(ua_cat=="ns4"){
				return my_win.innerWidth+3;
			}
			if(ua_cat=="opera" || ua_cat=="gecko"){
				return my_win.innerWidth;
			}
			if(ua_cat=="ie4" || ua_cat=="ie5" || ua_cat=="ie5mac" || ua_cat=="ie6" || ua_cat=="ie6mac"){
				if(my_doc.body){
					return my_doc.body.clientWidth;
				}
			}
			if(ua_cat=="konqueror"){
				return my_win.innerWidth;
			}
		}
	}
	/* any other case */
	return 770;
}


function get_gui_height(){
	var p=get_p();
	if(p.get_ua_cat){
		var ua_cat=p.get_ua_cat();/* l_useragent.js */
		var my_win=get_g();
		var my_doc=get_d();
		if(my_win && my_doc){
			if(ua_cat=="opera" || ua_cat=="gecko"){
				return my_win.innerHeight;
			}
			if(ua_cat=="ns4"){
				return my_win.innerHeight+4;
			}
			if(ua_cat=="ie4" || ua_cat=="ie5" || ua_cat=="ie5mac" || ua_cat=="ie6" || ua_cat=="ie6mac"){
				if(my_doc && my_doc.body && my_doc.body.clientHeight){
					return my_doc.body.clientHeight;
				}
			}
			if(ua_cat=="konqueror"){
				return my_win.innerHeight;
			}
		}
	}
	/* any other case */
	return 440;
}


function get_gui_y_offset(){
	var p=get_p();
	if(p.get_ua_cat){
		var ua_cat=p.get_ua_cat();/* l_useragent.js */
		var my_win=get_g();
		var my_doc=get_d();
		if(my_win && my_doc){
			if(my_win.pageYOffset){/* ns4, gecko, opera */
				return my_win.pageYOffset;
			}
			if(my_doc.body && my_doc.body.scrollTop){/* ie */
				return my_doc.body.scrollTop;
			}
		}
	}
	/* any other case */
	return 0;
}


/*					*/

function get_el(el_id){
	var p=get_p();
	var r=false;
	if(p && p.get_ua_cat){
		if(window.name.indexOf("admin_iframe")!=-1){
			var my_doc=window.document;
		}
		else{
			var my_doc=get_d();
		}
		var ua_cat=p.get_ua_cat();/* l_useragent.js */
		if(ua_cat=="ns4"){
		}
		else{
			if(ua_cat=="ie4"){
				r=eval("my_doc.all."+el_id);
			}
			else{
				if(my_doc["getElementById"]){
					r=my_doc.getElementById(el_id);
				}
			}
		}
	}
	return r;
}


function get_div_el(div_id, my_doc){
	var p=get_p();
	var r=false;
	if(p && p.get_ua_cat){
		var ua_cat=p.get_ua_cat();/* l_useragent.js */
		if(!my_doc){
			var my_doc=get_d();
		}
		if(ua_cat=="ns4"){
			for(var i=0; i<my_doc.layers.length; i++){
				cur_el=my_doc.layers[i];
				if(cur_el.id==div_id){
					return cur_el;
				}
				else{/* try nested_divs */
					if(cur_el.document.layers.length){
						cur_el=get_div_el(div_id, cur_el.document);
						if(cur_el){
							r=cur_el;
							break;
						}
					}
				}
			}
		}
		else{
			if(ua_cat=="ie4"){
				r=eval("my_doc.all."+div_id);
			}
			else{
				r=my_doc.getElementById(div_id);
			}
		}
	}
	return r;
}


function get_form_el(form_id, form_name, div_id){
	var p=get_p();
	var ua_cat=p.get_ua_cat();/* l_useragent.js */
	var r=false;
	if(ua_cat=="ns4"){
		if(div_id){
			var div_el=get_div_el(div_id);
			if(div_el && div_el.document && div_el.document.forms){
				r=div_el.document.forms[form_name];
			}
		}
		else{
			var my_doc=get_d();
			if(my_doc.forms){
				r=my_doc.forms[form_name];
			}
		}
	}
	else{
		var my_doc=get_d();
		if(ua_cat=="ie4"){
			r=eval("my_doc.all."+form_name);
		}
		else{
			if(my_doc["getElementById"]){
				r=my_doc.getElementById(form_id);
			}
		}
	}
	return r;
}


function get_img_el(img_id, img_name, div_id){
	var p=get_p();
	var ua_cat=p.get_ua_cat();/* l_useragent.js */
	var r=false;
	if(ua_cat=="ns4"){
		if(div_id){
			var div_el=get_div_el(div_id);
			if(div_el && div_el.document && div_el.document.images){
				r=div_el.document.images[img_name];
			}
		}
		else{
			var my_doc=get_d();
			if(my_doc.images){
				r=my_doc.images[img_name];
			}
		}
	}
	else{
		var my_doc=get_d();
		if(ua_cat=="ie4"){
			r=eval("my_doc.all."+img_name);
		}
		else{
			if(my_doc["getElementById"] && img_id){
				r=my_doc.getElementById(img_id);
			}
			else{
				r=my_doc.images[img_name];
			}
		}
	}
	return r;
}


function get_input_el(input_name, form_id, form_name, div_id){
	var r=false;
	var form_el=get_form_el(form_id, form_name, div_id);
	if(form_el){
		var cur_element;
		for(var i=0; i<form_el.elements.length; i++){
			cur_element=form_el.elements[i];
			if(cur_element.name==input_name){
				r=cur_element;
				break;
			}
		}
	}
	return r;
}

/*					*/

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

/*					*/

function submit_form(form_id, form_name, div_id){
	/* get form */
	var form_el=get_form_el(form_id, form_name, div_id);
	if(form_el && form_el.submit){
		form_el.submit();
	}
	else{
		alert("Error: Form not found.");
	}
}


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

function focus_form_fld(form_id, form_name, fld_name){
	/* get form */
	var form_el=get_form_el(form_id, form_name);
	if(form_el && (fld=form_el[fld_name]) && fld["focus"]){
		div_el=get_el(form_id.substring(0, form_id.indexOf("form")));
		if(div_el && div_el.style.visibility!="hidden"){
			var p=get_p();
			var my_ua=p.get_ua();
			if(my_ua && !my_ua.is_ie()){
				fld.focus();
			}
		}
	}
}


/*					*/

function get_div_width(div_id, el){
	var r=0;
	var p=get_p();
	el = (el) ? el : get_div_el(div_id);
	if(el){
		var my_ua=p.get_ua();
		var ua_cat=p.get_ua_cat();/* ua_branch */
		if(ua_cat=="ns4"){
			return el.document.width;
		}
		if(my_ua.is_ie()){
			return el.offsetWidth;
		}
		if(ua_cat=="gecko"){
			var cur_cn; /* cur_child_node */
			for(var i=0; i<el.childNodes.length; i++){
				cur_cn=el.childNodes.item(i);
				if(cur_cn["offsetWidth"]){
					r+=cur_cn.offsetWidth;
				}
			}
			return r;
		}
	}
	return r;
}


function get_div_height(div_id, el){
	var r=0;
	var p=get_p();
	el = (el) ? el : get_div_el(div_id);
	if(el){
		var my_ua=p.get_ua();
		var ua_cat=p.get_ua_cat();/* ua_branch */
		if(ua_cat=="ns4"){
			return el.document.height;
		}
		if(my_ua.is_ie()){
			return el.offsetHeight;
		}
		if(ua_cat=="gecko"){
			var cur_cn; /* cur_child_node */
			for(var i=0; i<el.childNodes.length; i++){
				cur_cn=el.childNodes.item(i);
				if(cur_cn["offsetHeight"]){
					r+=cur_cn.offsetHeight;
				}
			}
			return r;
		}
	}
	return r;
}


function set_div_style(style_name, style_value, div_id, el){
	var delimiter=(style_value==parseFloat(style_value)) ? "" : "\'";
	el = (el) ? el : get_div_el(div_id);
	var ua_cat=parent.get_ua_cat();/* ua_branch */
	if(el){
		if(ua_cat=="ns4"){
			eval("el."+style_name+"="+delimiter+style_value+delimiter+";");
		}
		else{
			eval("el.style."+style_name+"="+delimiter+style_value+delimiter+";");
		}
	}
	return true;
}


function get_div_style(style_name, div_id, el){
	el = (el) ? el : get_div_el(div_id);
	var ua_cat=parent.get_ua_cat();/* ua_branch */
	if(el){
		if(ua_cat=="ns4"){
			/* eval("return el."+style_name+";"); */
			return el[style_name];
		}
		else{
			return el.style[style_name];
		}
	}
	return true;
}


function get_div_x(div_id, el){
	return parseInt(get_div_style("left", div_id, el));
}


function get_div_y(div_id, el){
	return parseInt(get_div_style("top", div_id, el));
}


function set_div_x(x, div_id, el){
	var x=parseFloat(x);
	var ua_cat=parent.get_ua_cat();/* ua_branch */
	if(ua_cat=="ns4"){
		set_div_style("left", x, div_id, el);
	}
	else{
		set_div_style("left", x+"px", div_id, el);
	}
	return true;
}


function set_div_y(y, div_id, el){
	var y=parseFloat(y);
	var ua_cat=parent.get_ua_cat();/* ua_branch */
	if(ua_cat=="ns4"){
		set_div_style("top", y, div_id, el);
	}
	else{
		set_div_style("top", y+"px", div_id, el);
	}
	return true;
}


function set_div_z(z, div_id, el){
	var z=parseInt(z);
	set_div_style("zIndex", z, div_id, el);
	return true;
}


function show_div(div_id, el, set_display){
	set_div_style("visibility", "visible", div_id, el);
	if(set_display && get_div_style("display", div_id, el)!=""){
		set_div_style("display", "", div_id, el);
	}
}

function hide_div(div_id, el, set_display){
	set_div_style("visibility", "hidden", div_id, el);
	if(set_display){
		set_div_style("display", "none", div_id, el);
	}
}


function show_form_el(form_id, form_name, div_id){
	var el=get_form_el(form_id, form_name, div_id);
	if(el){
		var ua_cat=parent.get_ua_cat();/* ua_branch */
		if(ua_cat=="ns4"){
			el.visibility="visible";
		}
		else{
			el.style.visibility="visible";
		}
	}
	return true;
}

function hide_form_el(form_id, form_name, div_id){
	var el=get_form_el(form_id, form_name, div_id);
	if(el){
		var ua_cat=parent.get_ua_cat();/* ua_branch */
		if(ua_cat=="ns4"){
			el.visibility="hidden";
		}
		else{
			el.style.visibility="hidden";
		}
	}
	return true;
}

/*					*/

function place_div(x_ref, y_ref, x_diff, y_diff, div_id, el){
	el = (el) ? el : get_div_el(div_id);
	if(el){
		/* x */
		var gui_width=get_gui_width();
		var div_width=get_div_width(div_id, el);
		if(x_ref=="center"){
			set_div_x(x_diff+(gui_width-div_width)/2, div_id, el);
		}
		if(x_ref=="left"){
			set_div_x(x_diff, div_id, el);
		}
		if(x_ref=="right"){
			set_div_x(x_diff+(gui_width-div_width), div_id, el);
		}
		/* y */
		var gui_height=get_gui_height();
		var div_height=get_div_height(div_id, el);
		if(y_ref=="middle"){
			set_div_y(y_diff+(gui_height-div_height)/2, div_id, el);
		}
		if(y_ref=="top"){
			set_div_y(y_diff, div_id, el);
		}
		if(y_ref=="bottom"){
			set_div_y(y_diff+(gui_height-div_height), div_id, el);
		}
	}
	return true;
}

function set_el_class(el_id, class_name){
	var el=get_el(el_id);
	if(el){
		el.className=class_name;
	}
	return true;
}


/*					*/

function get_el_height(el_id){
	var el=get_el(el_id);
	if(el){
		return parseInt(el.style.height);
	}
	return 0;
}

function set_el_height(el_id, h){
	var el=get_el(el_id);
	h=parseInt(h);
	//alert(el_id+":"+h);
	if(el && h){
		el.style.height=h;
	}
	else{
		if(h!=parseInt(h)){
			//alert("no:"+h);
		}
		else{
			//alert("yes:"+h);
			var el=document.getElementById(el_id);
			if(el){
				el.style.height=h;
			}
			else{
				//alert("no el");
				setTimeout("el=document.getElementById('"+el_id+"');el.style.height="+h+";", 500);
			}
		}
	}
	return true;
}

function resize_el(el_id, y_diff, x_diff){
	var el=get_el(el_id);
	if(el){
		if(y_diff && y_diff!=0){
			el.style.height=Math.max(0, parseInt(el.style.height)+y_diff);
		}
		if(window.focus){
			window.focus();
		}
	}
}

function tgl_el(el_id, tgl_img_id, tgl_img_src_on, tgl_img_src_off){
	var el=get_el(el_id);
	if(el && el.style && (el.style.display=="" || el.style.display=="none")){
		if(el.style.display!="none"){
			el.style.visibility="hidden";
			el.style.display="none";
			if(tgl_img_id && tgl_img_src_off){
				img=get_el(tgl_img_id);
				if(img){
					img.src=tgl_img_src_off;
				}
			}
		}
		else{
			el.style.display="";
			el.style.visibility="visible";
			if(tgl_img_id && tgl_img_src_on){
				img=get_el(tgl_img_id);
				if(img){
					img.src=tgl_img_src_on;
				}
			}
		}
		if(window.focus){
			window.focus();
		}
	}
}

/*					*/

function save_input_value(var_name, input_name, form_id, form_name, div_id){
	/* save form input value as temp var */
	var p=get_p();
	var input_el=get_input_el(input_name, form_id, form_name, div_id);
	if(input_el && input_el.value){
		var val=input.value;
		p.set_temp_var(var_name, val);
	}
	return true;
}


/*					*/

if(!window.libs_loaded){
	window.libs_loaded=1;
}
else{
	window.libs_loaded++;
}