﻿var cRTF = null;

function __sf(id) {
try {
	var d = null;

	if ((typeof id) == "string") {
		d = document.getElementById(id);
		if (d) { d.focus(); }
	}
	else {
		var i;



		for (i = 0; i < id.length; i++) {
			// alert(id[i]);
			d = document.getElementById(id[i]);
			if (d) { d.focus(); return; }
		}
	}
}

catch (e) {  }

}

function __write(href, form, _et, _v, _i, _ac) {
	var _a = document.getElementById(_et);
	if (_a.hasChildNodes()) { _a.removeChild(_a.firstChild);}

// if (window.location.host == "test.server-daten.de") { alert(_ac); }

	if (_ac == '') 
		{ _a.appendChild(document.createTextNode((_i > 0 ? String.fromCharCode(_i) : _v))); }

	else { 	// alert('hey');

		var _e;
		var _j = _v.indexOf(_ac);

		if (_j == -1) { _a.appendChild(document.createTextNode(_v));}

		else 	{ 
			_b = document.createElement("big"); 
			_b.appendChild(document.createTextNode(_ac));

			if (_j == 0) { // alert('Hier');
				_a.appendChild(_b);
				_a.appendChild(document.createTextNode(_v.substr(1, _v.length)));
			}

			else	{
				_a.appendChild(document.createTextNode(_v.substr(0, _j)));
				_a.appendChild(_b);

				_a.appendChild(document.createTextNode(_v.substr(_j+1, _v.length)));

			}

		}

	 }

	_a.href = '#';
}

function __wb(_et, _n, _v) {
	var _e = document.getElementById(_et);
	if (_e.hasChildNodes()) { _e.removeChild(_e.firstChild);}
	var _i = document.createElement("input");
	//_i.type = "text";
	with (_i) {
		className = "sd-rel-search";
		name = _n;
		value = _v;}
	_e.appendChild(_i);
	
}

function __sendIt_with_row_pos(formName, eventTarget, pos, anchor) {

	var theform;
	theform = document.forms[formName];
	if (theform && theform.__rt) {
		theform.__rt.value = ((pos.length > 0) ? pos : '0');

		__sendIt(formName, eventTarget, anchor);
		return false;

	}


	var d_list = document.getElementsByName('_oA-' + eventTarget);
	if (d_list && d_list.length > 0) {
		d_list[0].value = d_list[0].value + '-' + pos;
		__sendIt(formName, eventTarget, '');
		return false;
	}
	return false;
}


function __sendIt_with_row_id(formName, eventTarget, row_id, anchor) {

	var theform;
	theform = document.forms[formName];
	if (theform && theform.__rt) {
		theform.__rt.value = ((row_id.length > 0) ? row_id : '0');

		__sendIt(formName, eventTarget, anchor);
		return false;

	}



	var d_list = document.getElementsByName('_oA-' + eventTarget);
	if (d_list && d_list.length > 0) {
		d_list[0].value = d_list[0].value + '-' + ((row_id.length > 0) ? row_id : '0');
		__sendIt(formName, eventTarget, anchor);
		return false;
	}
	return false;
}


function __sendIt(formName, eventTarget, anchor) {

	// alert('__sendIt: ' + formName + ', ' + eventTarget);

	var theform;
	theform = document.forms[formName];

	// theform = document.getElementById(formName);

	// alert(theform.submit);

	// theform.removeAttribute(theform.attributes['onsubmit']);

	if (theform) {

		// alert('form vorhanden');

		if (theform.__et && theform.__et.value) {  alert('Beide Werte gesetzt: ' + theform.__et.value);  /* nix */ }

		else {

			

			if (eventTarget) {

				theform.__fn.value = formName; // formName.split("$").join(":");
				theform.__et.value = eventTarget; // eventTarget.split("$").join(":");


				// alert('Zuweisung von __fn / __et');
			}

			else {  

				// alert('Unterer Abschnitt');


				for (i = 0; i < theform.elements.length; i++) {
		
					if (theform.elements[i].tagName.toLowerCase() == "button" && 
						theform.elements[i].type == "submit") 
					{ 
						theform.__fn.value = formName;
						theform.__et.value = theform.elements[i].id;
					}

				}
			}

		}

		if (cRTF) { 
			var d = document.getElementById('Message'); 
			if (d) { d.value = cRTF.getContent(); } 
			else {
				d = document.getElementById('Mailing_Text');
				if (d) { d.value = cRTF.getContent(); } 

			}
		}


		if ((anchor) && (anchor.length > 0)) {
			theform.action += '#' + anchor;
		}

		// alert('Nun submit: ' + theform.action);

		// theform.onsubmit = null;

		// alert(theform.innerHTML);

		theform.submit(); return false;

	}

}




function __sendIt_wD(formName, eventTarget, v, width, height, dest) {

	var theform;
	theform = document.forms[formName];
	theform.__et.value = '';

	var e = 'document.forms["' + formName + '"].elements["' + eventTarget + '-v"].value = "' + v + '"';

	// alert(e);

	eval(e);

	e = 'var d = document.forms["' + formName + '"].elements["' + eventTarget + 
		'-d"]; if (d) { document.forms["' + formName + '"].action = d.value };'; 

	// alert(e);

	eval(e);

	if (!dest) { dest = "sResult"; }

	var par = "resizable=yes,scrollbars=yes,menubar=yes";

	if ((width > 0) && (height > 0))
		{ par = "width=" + width + "px,height=" + height + "px," + par; }


	var d = window.open("", dest, par);

	if (!d) { alert('Ihr Popup-Blocker scheint aktiv zu sein. Bitte lassen Sie PopUps für diese Domain zu');
			return; }
	d.focus();

	// ,location=yes,status=yes

	return __sendIt(formName, eventTarget, '');

}


function __confirm_deletion(src, title) {
	var erg = window.confirm(title);

	if (erg) { location.href = src; }

	return false;

}




function __doPostBack(eventTarget, eventArgument) {
	var theform;
	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
		theform = document.mfC;
	}
	else {
		theform = document.forms["mfC"];
	}

	theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
	theform.__EVENTARGUMENT.value = eventArgument;
	f = theform.submit();
	return false;
}

function open_protocol(type, t, r, u, b) {

	var url = ((type == 1) ? '/lsd' : '') + '/admin/protocol.aspx?t=' + t + '&r=' + 
		r + '&u=' + u + '&b=' + b;

	// alert(url);

	var f = window.open(url, 'sdProtocol',
	 	'dependent=no,scrollbars=yes,resizable=yes,status=no,toolbar=yes,menubar=yes,location=yes,width=450,height=600'); 

	if (f) { f.focus(); } 
	else { alert('Ist Ihr Popup-Blocker aktiv? Zur Anzeige der Protokolldaten müssen Popups für diese Seite zugelassen sein!'); }

	return false;
}


var __c_fPostal_Code = null;
var __c_fCity_Name = null;
var __c_fStreet = null;
var __c_decimalNumberSeparator = null;
var __c_fParent = null;

var __v_Postal_Code = null;
var __v_City_Name = null;
var __v_Street = null;


function __open_geo(__fPostal_Code, __fCity_Name, __decimalNumberSeparator) {

	__c_fPostal_Code = __fPostal_Code;
	__c_fCity_Name = __fCity_Name;



	__v_Postal_Code = document.getElementById(__c_fPostal_Code).value;
	__v_City_Name = document.getElementById(__c_fCity_Name).value;

	var f;

	f = window.open("/geo-selector.html?fPostal_Code=" + __fPostal_Code + "&fCity_Name=" + __fCity_Name + 
		"&Postal_Code=" + __v_Postal_Code + "&City_Name=" + __v_City_Name + "&_dns=" + __decimalNumberSeparator,  
		"geoSelector", "height=400,width=600,scrollbars=yes,resizable=yes,status=yes");

	f.focus();

}


function __open_ggeo(__fPostal_Code, __fCity_Name, __fStreet, __decimalNumberSeparator, __fParent) {

	__c_fPostal_Code = __fPostal_Code;
	__c_fCity_Name = __fCity_Name;
	__c_fStreet = __fStreet;

	__c_fParent = __fParent;



	__v_Postal_Code = document.getElementById(__c_fPostal_Code).value;
	__v_City_Name = document.getElementById(__c_fCity_Name).value;

	__v_Street = document.getElementById(__c_fStreet);
	if (__v_Street) { __v_Street = __v_Street.value; } else { __v_Street = ''; }

	var f;

	var t_url = "/geo-gselector.html?fPostal_Code=" + __fPostal_Code + "&fCity_Name=" + __fCity_Name + 
		"&fStreet=" + __fStreet +
		"&Postal_Code=" + __v_Postal_Code + 
		"&City_Name=" + __v_City_Name + 
		"&Street=" + __v_Street +
		"&_dns=" + __decimalNumberSeparator +
		"&_par=" + __c_fParent;


	f = window.open(t_url, "geoGSelector", "height=700,width=650,resizable=yes,scrollbars=yes,status=yes");

	f.focus();

}





function __init_geo() {
	if (location.search.length > 0) {
		var i = 0;
		var j = 0;
		
		var s = location.search;
		s = s.substr(1, s.length - 1);
		//alert(s);

		var v = s.split("&");
		for (i=0; i<v.length; i++) {
			j = v[i].search(/fPostal_Code=/);
			if (j > -1) { __c_fPostal_Code = v[i].substr(13, v[i].length - j); }
			j = v[i].search(/fCity_Name=/);
			if (j > -1) { __c_fCity_Name = v[i].substr(11, v[i].length - j); }
			j = v[i].search(/_dns=/);
			if (j > -1) { __c_decimalNumberSeparator = v[i].substr(5, v[i].length - j); }
			j = v[i].search(/_par=/);
			if (j > -1) { __c_fParent = v[i].substr(5, v[i].length - j); }

		}

		//alert (__c_fPostal_Code);
		//alert (__c_fCity_Name);

		alert(__c_fParent);
	}
}



function __set_Geo_simple() {

	// alert(__c_fParent);

	var dlat = document.getElementById('latitude');
	var dlng = document.getElementById('longitude');
	if ((dlat) && (dlng)) {
		var lat = dlat.value;
		var lng = dlng.value;
		
		if ((lat) && (lng)) {
			// alert('aufruf set_geo');
			__set_geo(lat, lng, null, null, null, null);
		}

	}

	return false;
}

function __set_geo(latitude, longitude, latitude_r, longitude_r, Postal_Code, City_Name) {

	// alert(__c_fParent);

	var d = opener.document.getElementById(__c_fParent + ".latitude");
	if (d) { d.value = latitude.toString().replace(/\./, __c_decimalNumberSeparator); }

	d = opener.document.getElementById(__c_fParent + ".longitude");
	if (d) { d.value = longitude.toString().replace(/\./, __c_decimalNumberSeparator); }

	if (latitude_r) {
		d = opener.document.getElementById(__c_fParent + ".latitude_r");
		if (d) { d.value = latitude_r.toString().replace(/\./, __c_decimalNumberSeparator); }
	}

	if (longitude_r) {
		d = opener.document.getElementById(__c_fParent + ".longitude_r");
		if (d) { d.value = longitude_r.toString().replace(/\./, __c_decimalNumberSeparator); }
	}

	//alert(c_fPostal_Code);

	if (Postal_Code) {
		d = opener.document.getElementById(__c_fPostal_Code);
		if (d) { d.value = Postal_Code; }
	}

	//alert(c_fCity_Name);

	if (City_Name) {
		d = opener.document.getElementById(__c_fCity_Name);
		if (d) { d.value = City_Name; }
	}

}


function open_custWindow(url, wName, height, width) {
	
	var f = null;
	if (height == -1) 
		{ f = window.open(url, wName, 'resizable=yes,dependent=no,scrollbars=yes,menubar=yes'); }
	else 	{ f = window.open(url, wName, 'width=' + width + ',height=' + height + ',resizable=yes,dependent=no,scrollbars=yes,menubar=yes'); }

	if (f) { f.focus(); }

	return false;
}



function open_help(url, type) {
	url = ((type == 1) ? 'http://auer.sql-und-xml.de/server-daten/menu-help/' : 'http://www.sql-und-xml.de/server-daten/menu-help/') +
		url; 
	var f = window.open(url, 'sd_helpWindow',
		'dependent=no,scrollbars=yes,resizable=yes,toolbar=yes,menubar=yes,location=yes,width=950,height=600');
	f.focus();
	return false;
}


var f;
function color_selector(obj, text) {
// alert(obj.name);
// location=yes

	var _w = -250 + Math.ceil(screen.availWidth / 2);
	var _h = -400 + Math.ceil(screen.availHeight / 2);
	var _p = "height=600px,width=660px,resizable=yes,top=" + _h.toString() + "px,left=" + _w.toString() + "px";

	f = window.open("/admin/select-color.aspx?o=" + obj.name + "&t=" + text, "colorSelector", _p);
	// alert(_p);

	f.focus();
}



/* Focus auf ein Eingabeelement. 
	Verwendung: body onload='__do_focus(new Array('erstes Feld', 'zweites Feld'));'
*/


function __do_focus(a) {
    var d;
    var e;
    for (i=0; i < a.length; i++) {
        d = document.getElementById(a[i]);
        if (d) { try { d.focus(); return; } catch (e) { } }
    }
}





/* Funktion für das Duplizieren einer Zeile */

function __open_row(id_sList, pos_sList) {

	// alert('start ' + id_sList);

	var id_list = id_sList.split("|");
	var pos_list = pos_sList.split("|");

	var k = 0;

	if (id_list.length == 1 && id_list[0].length == 0) { return; }
	var id = id_list[0];

	var tName = id.split('.')[0];

	// alert(id);

	var input = document.getElementById('_det.' + id + '.1');

	//alert(input);

	if (!input) { alert('Fehler: input ist null'); return false; }

	var row = input.parentNode.parentNode;

	var table = row.parentNode;
	var last_id = null;
	row = table.lastChild;

	// alert(row.innerHTML);

	var lastElement = null;
	var nextElement = null;


	var newRow = row.cloneNode(true);

	// alert(newRow.innerHTML);

	var t = null;

	// alert(row.lastChild.lastChild);

	// alert(nextElement);
	// alert(last_id);

	var node_element = newRow;

	try {

		change_id(node_element, last_id, tName);
	}
	catch (e) {
		alert(e);
	}

	// alert(newRow.innerHTML);

	// alert(row.lastChild.innerHTML);

	// row.lastChild.removeChild(row.lastChild.lastChild);	



	table.appendChild(newRow);



	node_element = newRow;

	try {

		check_changes(node_element, last_id, tName);
	}
	catch (e) {
		alert(e);
	}


	// alert(newRow.innerHTML);

	t = pos_list[1].split('.');

	try {
		newRow.childNodes[t[0]].childNodes[t[1]].focus();
	}

	catch (e) { }



	delay_remove_child(row.lastChild.lastChild);



	return false;


	/* Alte Variante */

	for(var i = 1;i < 1; i++) {

		// alert(pos_list[i]);

		

		t = pos_list[i].split(".");

		// alert(t[0]);

		// alert(newRow.childNodes[t[0]].innerHTML);

		lastElement = newRow.childNodes[t[0]].childNodes[t[1]];

		// alert(lastElement.innerHTML);

// alert(newRow.childNodes[t[0]].innerHTML);


		if ((lastElement) && (lastElement.id) && (lastElement.id != "undefined")) {

			lastElement_id = lastElement.id;

//			alert(lastElement_id);

			if (lastElement_id.match(/\.\d+\-dt$/)) {

				// wenn es sich um eine Formatierung für Datum/Uhrzeit handelt

				lastElement_id = lastElement_id.substr(0, lastElement_id.length - 3);
				erg = lastElement_id.match(/\.\d+$/);
				nextElement = lastElement_id.substr(0, lastElement_id.lastIndexOf('.')) + '.' + (Number(erg[0].substr(1, erg[0].length - 1)) + 1) + '-dt';
				with (lastElement) {
					id = nextElement;
					name = nextElement;
				}

				//alert(t[1]);

				lastElement = newRow.childNodes[t[0]].childNodes[parseInt(t[1]) + 1];

				// alert(lastElement.id);

				if (!lastElement) { alert( 'Konfigurationsfehler (dt): ' + newRow.innerHTML);
						alert(newRow.childNodes[t[0]].innerHTML); 
						alert(t[1] );
						//alert(newRow.childNodes[t[0]].childNodes[t[1] + 1].id);

						return false; }


				

				lastElement_id = lastElement.id;

				erg = lastElement_id.match(/\.\d+$/);

				// alert(erg);

				if (erg) { 	/* alert('Gefunden'); */
						nextElement = lastElement_id.substr(0, lastElement_id.lastIndexOf('.')) + '.' + (Number(erg[0].substr(1, erg[0].length - 1)) + 1); 
						// alert(nextElement);
					}
				else { /* alert('Nicht gefunden'); */ nextElement = lastElement_id + '.1'; }

				with (lastElement) {
					id = nextElement;
					name = nextElement;
				}



				 k += 1;

			}
			else {

				erg = lastElement_id.match(/\.\d+$/);
				if (erg) { 	/* alert('Gefunden'); */
						last_id = Number(erg[0].substr(1, erg[0].length - 1));
						nextElement = lastElement_id.substr(0, lastElement_id.lastIndexOf('.')) + '.' + (Number(erg[0].substr(1, erg[0].length - 1)) + 1); 
					}
				else { /* alert('Nicht gefunden'); */ nextElement = lastElement_id + '.1'; }

				with (lastElement) {
					id = nextElement;
					name = nextElement;
					if (type != "checkbox") {
						if (id_list[i] == tName + '.' + tName + 'Id') 
							{ if (!value || value.length == 0) 
								{ value = -1; } 
								else { 
									if (value < 0) 
										{ value = lastElement.value - 1; } 
									else { value = -1; }
								} 
							}
						else { value = '';

						 }
					}

					// alert(type);
					if (type == "textarea") {
						// alert(lastElement);
					}
				}

				// alert('Erg: ' + lastElement.innerHTML);
			}

			k += 1;


		}
		else { alert('Konfigurationsfehler (out): ' + 
			newRow.childNodes[t[0]].innerHTML + ': ' + 't0: ' + t[0] + ', t1: ' + t[1] +
			lastElement + ': ' + lastElement.id); return false; }
		


	}





}

function delay_remove_child(el) {

    if ((el) && (el.parentNode)) {

	    window.setTimeout(function() {
        	try { el.parentNode.removeChild(el); return false; } 
		catch (e) { return false; }
	    }, 250);
	return false;
    }
}



function check_changes(n, i, tName) {



	var child = null;

	if (!n) { return; }
	if (n.hasChildNodes()) {


		child = n.firstChild;

		while (child) {
			check_changes(child, i, tName);
			child = child.nextSibling;
		}

	}

	try {

		if ((n.attributes) && (n.attributes['jsnewcell'])) {

			// alert(n.attributes['jsnewcell']);

			var cmd = n.attributes['jsnewcell'].nodeValue.replace('this.id', '"' + n.id + '"');
				

			try {
				//alert(cmd);

				eval(cmd);

			}

			catch (e) {
				// alert(e);
			}

		}
		else {  }


	}

	catch (e) {

		// alert(e);

	}

}


function change_id(n, i, tName) {

	var child = null;

	var t = null;
	var terg = null;


	if (!n) { return; }
	if (n.hasChildNodes()) {

		child = n.firstChild;

		while (child) {
			change_id(child, i, tName);
			child = child.nextSibling;
		}

	}

	try {	if ((n.nodeType == 1) && (n.id) && (n.id != "undefined")) {


			n_id = n.id;
			baseElement = null;

//			alert(n_id);

			if (n_id.match(/\.\d+\-dt$/)) {

				// wenn es sich um eine Formatierung für Datum/Uhrzeit handelt

				n_id = n_id.substr(0, n_id.length - 3);
				erg = n_id.match(/\.\d+$/);
				nextElement = n_id.substr(0, n_id.lastIndexOf('.')) + '.' + (Number(erg[0].substr(1, erg[0].length - 1)) + 1) + '-dt';
				with (n) {
					id = nextElement;
					name = nextElement;
				}

				//alert(t[1]);

			}
			else {

				// alert(n_id);

				if (n_id.match(/.\d+?_file$/)) {

					n_id = n_id.substr(0, n_id.length - 5);
					erg = n_id.match(/\.\d+$/);
					nextElement = n_id.substr(0, n_id.lastIndexOf('.')) + '.' + (Number(erg[0].substr(1, erg[0].length - 1)) + 1) + '_file';
					with (n) {
						id = nextElement;
						name = nextElement;
						value = null;
					}

				}

				else
				{

					erg = n_id.match(/\.\d+$/);
					if (erg) { 	/* alert('Gefunden'); */
							last_id = Number(erg[0].substr(1, erg[0].length - 1));
							nextElement = n_id.substr(0, n_id.lastIndexOf('.')) + '.' + (Number(erg[0].substr(1, erg[0].length - 1)) + 1); 
							baseElement = n_id.substr(0, n_id.lastIndexOf('.')); 

						with (n) {
							id = nextElement;
							name = nextElement;
							if (type != "checkbox") {
								if (baseElement == '_det.' + tName + '.' + tName + 'Id') 
									{ 
									if (!value || value.length == 0) 
										{ value = -1; } 
										else { 
											if (value < 0) 
												{ value = n.value - 1; } 
											else { value = -1; }
										} 
									}
								else { value = '';

								 }
							}

							// alert(type);
							if (type == "textarea") {
								// alert(n);
							}
						}

						/* Test auf onclick */

						if ((0 == 0) && (n.attributes['onchange'] && n.attributes['onchange'].value.substring(0, 8) == '__sendIt')) {

							// alert('gefunden!');
							t = n.attributes['onchange'].value;
							terg = null;
							t = t.substr(t.indexOf(',') + 2, t.length);
							t = t.substr(0, t.indexOf('"'));

							erg = t.match(/\.\d+$/)
		
							if (erg) { 	/* alert('Gefunden'); */
								last_id = Number(erg[0].substr(1, erg[0].length - 1));
								tnew = t.substr(0, t.lastIndexOf('.')) + '.' + (Number(erg[0].substr(1, erg[0].length - 1)) + 1); 

								terg = n.attributes['onchange'].value.replace(t, tnew);

								// alert('Vor onchange - Löschung');
								n.removeAttributeNode(n.attributes['onchange']);



								// n.attributes['onchange'] = null;

								if (terg.indexOf('return false;') > -1) { terg = terg.replace('return false;', ''); }

								// alert('Vor onchange - Zuweisung');

								n.onchange = function(evt) { eval(terg); };

								// alert('Nach onchange - Zuweisung');


/*
element.onclick = function(evt) { 
   this.setAttribute('style','background: red'); 
}
*/


								// n.addEventListener('change', t, false);
							}


							// window.alert(n.attributes['onchange'].value);

							/* onchange="__sendIt(&quot;myForm&quot;,&quot;_r__det.AuftragsdatenDetails_343.1&quot;, &quot;&quot;) */


						}

					}
					else { /* alert('Nicht gefunden'); */  }

					// alert('Erg: ' + n.innerHTML);

				}
			}






		/*
			var a_id = n.getAttribute('id');
			if (a_id) {
				//alert(a_id);
				erg = a_id.match(/\.\d+$/);
				if ((erg)) {
					nextElement = a_id.substr(0, a_id.lastIndexOf('.')) + '.' + (Number(erg[0].substr(1, erg[0].length - 1)) + 1); 

					// alert(nextElement);

					n.setAttribute('id', nextElement);
					n.setAttribute('name', nextElement);
				}
			} 

		*/


		}



	}
	catch (e) { alert('Fehler: ' + e); }

	

}


function change_textBox(id, i) {

	var d = document.getElementById(id);
	if (d && (d.rows != 'undefined')) {
		if (i > 0) { d.rows = parseInt(d.rows) + i; }
		else {
			if (parseInt(d.rows) + i > 3) { d.rows = parseInt(d.rows) + i; }
			else { d.rows = 3; }
		}
	}


}


function __write_full_frame(full, frame) {
	var e = document.getElementById('__link_full_frame');
	if (e) {

		e.href = (( top != self) ? full : frame);
		var d = document.createTextNode(((top != self) ? 'Vollbild' : 'Teilansicht'));

		if (e.hasChildNodes()) { e.removeChild(e.firstChild); }
		e.appendChild(d);


	} else { alert('Kein Element __link_full_frame gefunden'); }
}



function __reload_me_in_frame(dest) {
	if (top == self) {
		p=(document.all)?'scroll':'offset';

		q = "document.location = '" + dest;

		var d = document.getElementsByTagName('body');

		if ((d) && (d[0])) {

			q += "?h=' + document.getElementsByTagName('body')[0]." + p + "Height + 'px'";
		} else { q += "'"; }

		eval(q);
	}
}


function __break_frame() {
	if(top!=self)
	  { top.location=self.location; }
}


function __init_textcounter(obj, i) {
	// alert(obj);
	var id = obj.id;
	// alert(id);
	var d = document.getElementById(id + '.counter');
	if (!d) { return; }
	// alert(d.title);
	var max_chars = parseInt(d.title.substr(4, 100));
	var cur_chars = obj.value.length;

	d.innerHTML = ((i < 3) ? (max_chars >= cur_chars ? (max_chars - cur_chars).toString() : 
		'<span style="background-color:red; color:#ffffff; ">' + (max_chars - cur_chars).toString() + '</span>')
		: '');
}



function __throw_this(s) {

	var d = document.getElementById(s);
	var colName = null;
	var prefix = null;

	if (d) {
		var l = location.search;
		if (l.length > 1) {
			l = l.substr(1);
			var a = l.split('&');
			if (a.length = 2) {
				if (a[0].substr(0, 2) == 'f=') {
					f = a[0].substr(2);
				}
				if (a[1].substr(0, 2) == 'i=') {
					i = a[1].substr(2);
					if (i.indexOf('.') > -1) {
						prefix = i.substr(0, i.indexOf('.'));
						colName = i.substr(i.indexOf('.') + 1);

					}
				}
			}
		}

		if ((prefix) && (colName) && (d.firstChild.data)) {

			// alert(prefix);alert(colName);alert(d.firstChild.data);

			window.opener.insert_wiki_element('', '', d.firstChild.data, 1, colName, prefix)

		}
	}

	else { alert('Object not found: ' + s); }
}





function parse_date(yyyy_MM_dd, type) {

	var erg = null;

	if ((yyyy_MM_dd) && (8 <= yyyy_MM_dd.length) && (yyyy_MM_dd.length <= 10)) {
		var v1 = yyyy_MM_dd.split("-");

		if ((v1.length == 3) && (v1[0].length == 4) & (1 <= v1[1].length) && (v1[1].length <= 2) && (1 <= v1[2].length) && (v1[2].length <= 2)) {

			if (v1[1].substr(0, 1) == '0') { v1[1] = v1[1].substr(1); }
			if (v1[2].substr(0, 1) == '0') { v1[2] = v1[2].substr(1); }

			erg = new Date(parseInt(v1[0]), (parseInt(v1[1]) - 1), parseInt(v1[2]));

			if ((erg) && (erg != "NaN")) { if (type == 1) {return 1} return erg; }

		}

		var v2 = yyyy_MM_dd.split(".");
		
		if ((v2.length == 3) && (1 <= v2[0].length) && (v2[0].length <= 2) && (1 <= v2[1].length) && (v2[1].length <= 2) && (v2[2].length == 4)) {

			if (v2[0].substr(0, 1) == '0') { v2[0] = v2[0].substr(1); }
			if (v2[1].substr(0, 1) == '0') { v2[1] = v2[1].substr(1); }

			erg = new Date(parseInt(v2[2]), (parseInt(v2[1]) - 1), parseInt(v2[0]));

			if ((erg) && (erg != "NaN")) { if (type == 1) {return 2} return erg; }
		}

	}

	return erg;
}


function insert_date(input, format) {
	var d = document.getElementById(input);

	if (d) {

		// alert(format);

		d.value = parse_date_out(new Date(), 

				((format == 'dd.MM.yyyy') ? 2 : 
					((format == 'yyyy-MM-dd') ? 1 :
						((format == 'dd.MM.yyyy HH:mm:ss') ? 3 : 1))));

		return false;
	}
}


function insert_date2(input, format, numdays) {
	var d = document.getElementById(input);

	if (d) {
		var nDate = new Date();
		nDate = new Date(nDate.getTime() + (86400 * 1000 * numdays));
		

		// alert(format);

		d.value = parse_date_out(nDate, 

				((format == 'dd.MM.yyyy') ? 2 : 
					((format == 'yyyy-MM-dd') ? 1 :
						((format == 'dd.MM.yyyy HH:mm:ss') ? 3 : 1))));

		return false;
	}
}



function parse_date_out(dT, type) {

//alert(type);

if (!dT) { return null; }

var erg = (type == 1) ? 
		(dT.getFullYear().toString() + '-' + (dT.getMonth() < 9 ? '0' : '') + (dT.getMonth() + 1).toString() +
			'-' + (dT.getDate() < 10 ? '0' : '') + dT.getDate().toString()
		)
	: (type == 2) ? 
		((dT.getDate() < 10 ? '0' : '') + dT.getDate().toString() + '.' +
			(dT.getMonth() < 9 ? '0' : '') + (dT.getMonth() + 1).toString() + '.' +
			dT.getFullYear().toString()
		)
		: (type == 3) ?
			((dT.getDate() < 10 ? '0' : '') + dT.getDate().toString() + '.' +
				(dT.getMonth() < 9 ? '0' : '') + (dT.getMonth() + 1).toString() + '.' +
				dT.getFullYear().toString()
			) + ' ' + (dT.getHours() < 10 ? '0' : '') + dT.getHours().toString() + ':' +
				(dT.getMinutes() < 10 ? '0' : '') + dT.getMinutes().toString() + ':' +
				(dT.getSeconds() < 10 ? '0' : '') + dT.getSeconds().toString()
			

			: ''
				;

	return erg;

}


function __change_Member() {

	var m_list = document.getElementsByName('is_member');

	if (m_list.length > 0) {
		var erg = (!m_list[0].checked);

		for (i = 0; i < m_list.length; i++ ) {
			m_list[i].checked = erg;
		}

	}

}


function get_KalenderWoche(uDatum) {

  j = uDatum.getFullYear();


  m = uDatum.getMonth(); 
  t = uDatum.getDate();


  Datum = new Date(j,m,t,0,0,1);

	// alert(Datum);

  var tag = Datum.getDay(); if (tag == 0) tag = 7;
  var d = new Date(2004,0,1).getTimezoneOffset();
  var Sommerzeit = (Date.UTC(j,m,t,0,d,1) - Number(Datum)) /3600000;
  Datum.setTime(Number(Datum) + Sommerzeit*3600000 - (tag-1)*86400000);
  var Jahr = Datum.getFullYear();
  var kw = 1;
  if (new Date(Jahr,11,29) > Datum) {
    var Start = new Date(Jahr,0,1);
    Start = new Date(Number(Start) + 86400000*(8-Start.getDay()));
    if(Start.getDate() > 4) Start.setTime(Number(Start) - 604800000);
    kw = Math.ceil((Datum.getTime() - Start) /604800000);
  }
  return kw;
}


/* Code funktioniert nicht gescheit - liefert 0 bei 01.01.2010 zurück */

/**
* Returns the week number for this date. dowOffset is the day of week the week
* "starts" on for your locale - it can be from 0 to 6. If dowOffset is 1 (Monday),
* the week returned is the ISO 8601 week number.
* @param int dowOffset
* @return int
*/
Date.prototype.getWeek = function (dowOffset) {
/*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */

alert(dowOffset);

dowOffset = (typeof(dowOffset) == 'int' || typeof(dowOffset) == 'number') ? dowOffset : 0; //default dowOffset to zero
var newYear = new Date(this.getFullYear(),0,1);
var day = newYear.getDay() - dowOffset; //the day of week the year begins on



day = (day >= 0 ? day : day + 7);
var daynum = Math.floor((this.getTime() - newYear.getTime() -
(this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1;



var weeknum;
//if the year starts before the middle of a week
if(day < 4) {
alert('oben');
weeknum = Math.floor((daynum+day-1)/7) + 1;
if(weeknum > 52) {
nYear = new Date(this.getFullYear() + 1,0,1);
nday = nYear.getDay() - dowOffset;
nday = nday >= 0 ? nday : nday + 7;
/*if the next year starts before the middle of
the week, it is week #1 of that year*/
weeknum = nday < 4 ? 1 : 53;
}
}
else {
alert('unten');
weeknum = Math.floor((daynum+day-1)/7);

if (weeknum == 0) {
	oYear = new Date(this.getFullYear() - 1, 0, 1);
	oday = oYear.getDay() - dowOffset;

	alert('oYear: ' + oYear + '\n' + 'oday: ' + oday);
	oday = oday >= 0 ? oday : oday + 7;
	weeknum = oday < 4 ? 1 : 53;
}

}

alert('newYear: ' + newYear + '\n' + 'day: ' + day + '\n' + 'daynum: ' + daynum + '\n' + 'weeknum: ' + weeknum);

return weeknum;
};



function getFirstDayOfWeeknumber (intValue, dowOffset, year, setEndOfWeek) {

	var firstDayOfWeek = null;

	var thisDay = new Date();

	dowOffset = (typeof(dowOffset) == 'int' || typeof(dowOffset) == 'number') ? dowOffset : 0; //default dowOffset to zero

	year = (typeof(dowOffset) == 'int' || typeof(dowOffset) == 'number') ? year : thisDay.getFullYear();

	var newYear = new Date(year, 0, 1);
	var day = newYear.getDay() - dowOffset; //the day of week the year begins on

	// alert('Erster Tag des Jahres: ' + day);

	day = (day >= 0 ? day : day + 7);
	var firstDay = 1 + 6 - day + dowOffset;

	var firstWeekDayOfYear = new Date(year, 0, firstDay);


	firstDayOfWeek = new Date(firstWeekDayOfYear.getTime() + (intValue - get_KalenderWoche(firstWeekDayOfYear)) * 7 * 86400 * 1000);

	

	// alert('newYear: ' + newYear + ', day: ' + day + ', firstDay: ' + firstDay + ', offset: ' + dowOffset + ', firstWeekDayOfYear: ' + firstWeekDayOfYear + ', firstDayOfWeek: ' + firstDayOfWeek);	

	if (setEndOfWeek == 1) {
		firstDayOfWeek = new Date(firstDayOfWeek.getTime() + 6 * 86400 * 1000);

	}

	return firstDayOfWeek;



	return parse_date_out(firstDayOfWeek, type);
	

}



/* Funktionen für globale Funktionen - bsp. ein Berechnungsfeld */


var __global_id = null;
var __global_function = null;


function __exec_onkeyup(e) {

	var keyCode = null; 

	if ((e) && (e.keyCode)) { keyCode = e.keyCode; }

	if ((window.event) && (window.event.keyCode)) { keyCode = window.event.keyCode; }


	if ((keyCode) && (keyCode == 13) && (__global_id) && (__global_function)) { 
		var t = __global_function + '("' + __global_id + '")';
		eval(t);
	}
}





function __define_onkeyhandler(id, type, funct) {
var d = document.getElementById(id);
var t = null;

if ((d)) {
	__global_id = id;
	__global_function = funct;
	if (type == 'onkeyup') { t = 'document.getElementById("' + id + '").onkeyup = __exec_onkeyup'; eval(t); return; }
}

else { alert(id + ' ist noch undefiniert'); }

}

function __calculate_this(id) {

var d = document.getElementById(id);

if (d) {

  var c = d.value;
  if (eval(c)) { c = 'document.getElementById("' + id + '").value = eval(' + c + ');'; eval(c); }

	}
}





