function OpenPopup(href,target,width,height) {
	if(!target) { target='_blank'; }
	if(!width) { width=650; }
	if(!height) { height=700; }
	var popup=self.open(href,target,'width='+width+'px,height='+height+'px,status=no,toolbar=no,scrollbars=yes,resizable=yes,menubar=no,location=no');
	popup.focus();
	return popup;
}

function OpenPopupNoReturn(href,target,width,height) {
	OpenPopup(href,target,width,height);
}


function AppendURLParameter(reftext,parameter) {
	if(reftext.indexOf('?') > 0) {
		return reftext + '&' + parameter;
	}
	return reftext + '?' + parameter;
}

//Popup Sperre:
var popup_running=false;
var popup_window;
function is_popup_active() {
	if(popup_running) {
		alert("Popup bereits offen!");
		popup_window.focus();
		return false;
	}
	return true;
}
// !!!ACHTUNG php_self muss via PHP gesetzt werden (Session ID!!)!!!
function CheckPopup() {
	if(!php_self) {
		Alert("Fehlendes php_self in js");
	}
	popup_running=true;
	if(popup_window) {
		if(popup_window.closed == false) {
			window.setTimeout("CheckPopup()", 500);
			return;
		}
	}
	popup_running=false;
	var reftext=php_self;
	self.open(reftext,'_self');
}

//value des selektierten combo feldes oder false:
function get_selected(select_field,alert_user) {
	var sel=select_field.selectedIndex;
	if((sel<0) || isNaN(sel)) {
		if(alert_user) { alert('Bitte zuerst auswaehlen'); }
		select_field.focus();
		return false;
	}
	var typ_id=select_field[sel].value;
	if(typ_id<1) {
		if(alert_user) { alert('Bitte zuerst auswaehlen'); }
		select_field.focus();
		return false;
	}
	return typ_id;
}

/**ergibt ein <div id="name"> HTML Objekt**/
function GetDocItem(name) {
	var obj;
	if(!obj) {						//netscape 7
		obj=document.getElementById(name);
	}
	if(!obj) {
		if(document.all) {  		//ie
			obj=document.all[name];
		}
	}
	if(!obj) {
		if(document.layers) {		//netscape < 7
			obj=document.layers[name];
		}
	}
	if(!obj) {
		alert("**kw**GetDocItem Failed: "+name);
		return 0;
	}
	return obj;
}

/*********************************************
verarbeitung positionen und sizes
*********************************************/
/**
Ergibt Koordinaten von Objekt
@param:
sx...0=linker punkt, 1=rechter punkt des objekts
sy...0=oberer punkt, 1=unterer punkt des objekts
*/
function getObjectCoords(name,sx,sy) {
	obj=document.getElementById(name);
	var w=obj.offsetWidth;
	var h=obj.offsetHeight;
	var x=0,y=0;
	while(obj) {
		if(obj.offsetLeft) { x+=obj.offsetLeft; }
		if(obj.offsetTop) { y+=obj.offsetTop; }
		obj=obj.offsetParent;
	}
	if(sx==1) { x+=w; }
	if(sy==1) { y+=h; }
	return Array(x,y);
}
/**
Ergibt vom übergebenen Object die Position unten links
*/
function getBottomLeft(name) {
	return getObjectCoords(name,0,1);
}


/**
Übergebener Div-Name muß 2x vorhanden sein
div_mini_[divname]
div_maxi_[divname]
Die Funktion toggle schaltet ein div sichtbar,  das andere div wird versteckt
*/
function toggle(divname) {
	var mini = document.getElementById("div_mini_"+divname);
	var maxi = document.getElementById("div_maxi_"+divname);
	if(mini.style.display=="none") {
		mini.style.display=maxi.style.display;
		maxi.style.display="none";
	} else {
		maxi.style.display=mini.style.display;
		mini.style.display="none";
	};			
};

function getScrollCoords() {
	var x,y;
	if (self.pageYOffset) {
		x = self.pageXOffset;
		y = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	} else if (document.body) {
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}
	return Array(x,y);
}