//|
//| Copyright 2010 by Ulf Haueisen Systementwicklung, Oberursel, DE. All rights reserved.
//|
var abspath = new String(document.location.pathname.match (/.*\//));
abspath = abspath.replace(/\/shared\/cms\/$/, '/');
abspath = abspath.replace(/^\/[a-z][a-z]\//, '/');
function gebid (id)
{
return document.getElementById (id);
}
function addClass (elem, classname)
{
var re = new RegExp ('\s*' + classname + '\s*');
if (elem.className.search (re) < 0) {
elem.className = elem.className + ' ' + classname;
}
}
function removeClass (elem, classname)
{
var re = new RegExp ('\s*' + classname + '\s*');
elem.className = elem.className.replace (re, '');
}
function equals (o1, o2)
{
var i;
var r = true;
if ((typeof o1 == 'object') && (typeof o2 == 'object')) {
for (i in o1) {
if (o1.hasOwnProperty (i)) {
if ((!o2.hasOwnProperty (i)) || (o1[i] != o2[i])) {
r = false;
break;
}
}
}
if (r) {
for (i in o2) {
if (!o1.hasOwnProperty (i)) {
r = false;
break;
}
}
}
} else {
r = (o1 == o2);
}
return r;
}
function cloneobject (o)
{
var r;
if (typeof o == 'object') {
r = {};
for (i in o) {
if (o.hasOwnProperty (i)) {
r[i] = o[i];
}
}
} else {
r = o;
}
return r;
}
function addEvent (element, type, handler)
{
var handlers;
if (typeof handler != 'function') throw ('addEvent: handler must be a function');
if (element.addEventListener) {
element.addEventListener (type, handler, false);
} else {
if (!handler.dvlp_guid) handler.dvlp_guid = addEvent.guid++;
if (!element.events) element.events = {};
handlers = element.events[type];
if (!handlers) {
handlers = element.events[type] = {};
if (element['on' + type]) handlers[0] = element['on' + type];
}
handlers[handler.dvlp_guid] = handler;
element['on' + type] = handleEvent;
}
}
addEvent.guid = 1;
function removeEvent (element, type, handler)
{
if (typeof handler != 'function') throw ('removeEvent: handler must be a function');
if (element.removeEventListener) {
element.removeEventListener (type, handler, false);
} else {
if (element.events && element.events[type]) {
delete element.events[type][handler.dvlp_guid];
}
}
}
function handleEvent (event)
{
var result = true;
var handlers;
var i;
event = event || fixEvent (((this.ownerDocument || this.document || this).parentWindow || window).event);
handlers = this.events[event.type];
for (i in handlers) {
if (!Object.prototype[i]) {
this.dvlp_handler = handlers[i];
if (this.dvlp_handler (event) === false) {
result = false;
break;
}
}
}
this.dvlp_handler = null;
return result;
}
function fixEvent (event)
{
event.preventDefault = fixEvent.preventDefault;
event.stopPropagation = fixEvent.stopPropagation;
return event;
}
fixEvent.preventDefault = function ()
{
this.result = false;
};
fixEvent.stopPropagation = function ()
{
this.cancelBubble = true;
};
if (!window.addEventListener) {
document.onreadystatechange = function ()
{
if (window.onload && window.onload != handleEvent) {
addEvent (window, 'load', window.onload);
window.onload = handleEvent;
}
};
}
if ((typeof dontdestroyframeset == 'undefined') && (self != top)) top.location = self.location;
if (document.execCommand) {
try {
document.execCommand ('BackgroundImageCache', false, true);
} catch(e) {
}
}
function Forum ()
{
this.username = '';
this.formular = null;
this.scrollto = -1;
this.currenteid = null;
}
Forum.prototype.respond = function (cid, eid)
{
var elem;
var s;
var n;
var i;
var aul;
var y;
var html;
if (eid != this.currenteid) {
if (!this.formular) {
this.formular = document.createElement ('li');
this.formular.className = 'forumnew';
s  = '<form action="/cmsforum.html" method="post" name="forumf" id="forumf" class="forumnew">\n';
s += '	<div class="forumheader">\n';
s += '		Neuer Beitrag von <b>'+this.username+'</b>:\n';
s += '	</div>\n';
s += '	<div class="forumformcontainer">\n';
s += '		<div class="forumformtextarea"><textarea class="forumformtextarea" rows="7" name="forumt" id="forumt"></textarea></div>\n';
s += '		<input type="hidden" name="forumref" id="forumref" value="" />\n';
s += '		<input type="hidden" name="forumcid" id="forumcid" value="" />\n';
s += '		<input type="hidden" name="forumeid" id="forumeid" value="" />\n';
s += '		<input type="submit" name="forums" id="forums" value="Senden" />\n';
s += '		<input type="button" name="forumc" id="forumc" value="Abbrechen" onclick="forum.cancel();" />\n';
s += '	</div>\n';
s += '</form>\n';
this.formular.innerHTML = s;
}
this.cancel ();
if (eid == 0) {
aul = document.getElementById ('forumroot');
} else {
elem = document.getElementById ('forumentry'+eid);
aul = null;
for (i = 0; i < elem.childNodes.length; i++) {
if (elem.childNodes[i].tagName == 'UL') {
aul = elem.childNodes[i];
break;
}
}
if (!aul) {
aul = document.createElement ('UL');
aul.className = 'forum';
elem.appendChild (aul);
}
}
aul.appendChild (this.formular);
document.getElementById ('forumref').value = document.location.pathname;
document.getElementById ('forumcid').value = cid;
document.getElementById ('forumeid').value = eid;
this.currenteid = eid;
}
html = document.getElementsByTagName('HTML')[0];
elem = this.formular;
y = 0;
while (elem) {
y += elem.offsetTop;
elem = elem.offsetParent;
}
this.scrollto = (y - Math.round(html.clientHeight / 2) + Math.round(this.formular.offsetHeight / 2));
if (this.scrollto < 0) {
this.scrollto = 0;
} else if (this.scrollto > html.scrollHeight - html.clientHeight) {
this.scrollto = html.scrollHeight - html.clientHeight;
}
setTimeout (forum.scroll, 25)
elem = document.getElementById ('forumt');
if (elem) elem.focus();
};
Forum.prototype.scroll = function ()
{
var html;
var i;
if (forum.scrollto >= 0) {
html = document.getElementsByTagName('HTML')[0];
i = html.scrollTop - forum.scrollto;
if ((i < 4) || (i > 4)) {
i = Math.round (i / 4);
if (i < -20) i = -20; else if (i > 20) i = 20;
} else {
if (i < 0) i = -1; else i = 1;
}
html.scrollTop = html.scrollTop - i;
if ((i != 0) && (html.scrollTop + html.clientHeight < html.scrollHeight)) {
setTimeout (forum.scroll, 25);
} else {
forum.scrollto = -1;
}
}
};
Forum.prototype.cancel = function ()
{
var elem;
if ((forum.formular.parentNode) && (forum.formular.parentNode.ownerDocument != null)) {
elem = forum.formular.parentNode;
elem.removeChild (forum.formular);
if ((elem.id != 'forumroot') && (elem.childNodes.length == 0) && (elem.parentNode)) {
elem.parentNode.removeChild (elem);
}
}
forum.currenteid = -1;
};
//| eof