// memo funktionen
	function editMemoText (textId, memoId) {
		$memo_text = $(textId).text();
		// $(textId).bind("dblclick", function(){
			$(textId).html('<textarea name="text" rows="" cols="" style="width:670px; height:50px" class="memo_save_'+memoId+'">' + $memo_text + '</textarea>');
			// $(textId).html('<textarea name="text" rows="" cols="" style="width:670px; height:50px" class="memo_save_'+memoId+'" onmousedown="return false;">' + $(textId).text() + '</textarea>');
		// });
	}
	function change_read_status ($thisElement, $memoId, $_read) {
		// alert($(this).children('img').attr('src'));
		if($_read == '0') {
			$('#memo_read_'+$memoId).val('1');
			jquery_ajax_get('app/memo.php?action=change_read_status&memo_id='+$memoId+'&_read='+$_read, $thisElement);
		} else {
			$('#memo_read_'+$memoId).val('0');
			jquery_ajax_get('app/memo.php?action=change_read_status&memo_id='+$memoId+'&_read='+$_read, $thisElement);
		}
	}
	function change_checked_status ($thisElement, $memoId, $_checked) {
		// alert($(this).children('img').attr('src'));
		if($_checked == '0') {
			$('#memo_checked_'+$memoId).val('1');
			jquery_ajax_get('app/memo.php?action=change_checked_status&memo_id='+$memoId+'&_checked='+$_checked, $thisElement);
		} else {
			$('#memo_checked_'+$memoId).val('0');
			jquery_ajax_get('app/memo.php?action=change_checked_status&memo_id='+$memoId+'&_checked='+$_checked, $thisElement);
		}
	}

// nl2br funktion für java-script
	function nl2br(str) {
		return str.replace(/\n/g, '<br />');
	}

// logout funktion mit jquery
	function ovs_logout(){
		if(confirm('Wollen Sie sich wirklich ausloggen?')) {
			$.get('logout.php', function(){
				$('#page').fadeOut('slow', function(){
					document.location='index.php';
				});
			});
		}
	}
	
// set link mit id des elements
	function setLink(id, link){
		e = document.getElementById(id).href = link;
	}

// jquery ajax request mit growl notification
	function jquery_ajax_growl(URL, header, text, redirectUrl){
		if(URL){
			if($.get(URL)){
				growl(header, text);
			}
		}else{
			growl(header, text);
		}
		if(redirectUrl){
			window.location = redirectUrl;
		}
	}
	
// jquery growl (blockUI)
	function growl(header, text){
		$.growlUI(header, text);
	}

// jquery ajax get-request
	function jquery_ajax_get(URL, container, hide){
		if(hide) {
			$.get(URL, function(text) {
				$(container).html(text);
			});
		} else {
			$.get(URL, function(text){
				$(container).fadeOut('fast',function(){
					$(container).html(text).fadeIn('fast');
				});
			});
		}
	}

// jquery ajax post
	function jquery_ajax_post(URL, data, container){
		$.post(URL, data, function(text){
			$(container).fadeOut('fast',function(){
				$(container).html(text).fadeIn('normal');
			});
		});
	}

// set form field value
	function replaceUploadFile(values, container){
		values_array = values.split(';');
	
		document.getElementById('UL_produkt_datei_id').value = values_array[0];
		document.getElementById('UL_datei_name').value = values_array[1];
		$(container).slideToggle(200);
	}
	function replaceUploadPic(values, container){
		values_array = values.split(';');
	
		document.getElementById('UL_produkt_bild_id').value = values_array[0];
		document.getElementById('UL_bild_name').value = values_array[1];
		$(container).slideToggle(200);
	}

// url-variablen abfragen
	function getURLVar(urlVarName) {
		//divide the URL in half at the '?' 
		var urlHalves = String(document.location).split('?');
		var urlVarValue = '';
		if(urlHalves[1]){
			//load all the name/value pairs into an array 
			var urlVars = urlHalves[1].split('&');
			//loop over the list, and find the specified url variable 
			for(i=0; i<=(urlVars.length); i++){
				if(urlVars[i]){
					//load the name/value pair into an array 
					var urlVarPair = urlVars[i].split('=');
					if (urlVarPair[0] && urlVarPair[0] == urlVarName) {
						//I found a variable that matches, load it's value into the return variable 
						urlVarValue = urlVarPair[1];
					}
				}
			}
		}
		return urlVarValue;   
	}
// --------------------------------------------------------------------------------------

// elemente nach class-name
	function getElementsByClassName(classname, node)  {
	    if(!node) node = document.getElementsByTagName("body")[0];
	    var a = [];
	    var re = new RegExp('\\b' + classname + '\\b');
	    var els = node.getElementsByTagName("*");
	    for(var i=0,j=els.length; i<j; i++)
	        if(re.test(els[i].className))a.push(els[i]);
	    return a;
	}
// --------------------------------------------------------------------------------------

// text nicht markierbar machen
	function disableTextSelection(e) {
		e.onselectstart = function() { return false; } // ie
		e.onmousedown = function() { return false; } // mozilla
	}
// --------------------------------------------------------------------------------------

// image replace 
	function imgReplace(ID, image){
		document.getElementById(ID).src = image;
	}
// --------------------------------------------------------------------------------------

// zeichen-convertierung ----------------------------------------------------------------
	function convertText(input){
		
		/*input=input.replace('ö',"%C3%B6");
		input=input.replace('Ö',"%C3%96");
		input=input.replace('ü',"%C3%BC");
		input=input.replace('Ü',"%C3%9C");
		input=input.replace('ä',"%C3%A4");
		input=input.replace('Ä',"%C3%84");
		input=input.replace('ß',"%C3%9F");*/
		
		input = escape(input);
		
		linebs = '<br>';
		
		var noBreaks = input;
		noBreaks = noBreaks.replace(/\r\n/g,"[-LB-]");
		noBreaks = noBreaks.replace(/\n/g,"[-LB-]");
		noBreaks = noBreaks.replace(/\r/g,"[-LB-]");
		
		re1 = /\s+/g;
		noBreaks = noBreaks.replace(re1," ");
		re4 = /\[-LB-\]\[-LB-\]/gi;
		noBreaks = noBreaks.replace(re4,linebs+"\r\n"+linebs+"\r\n");
		
		re5 = /\[-LB-\]/gi;
		noBreaks = noBreaks.replace(re5,linebs+"\r\n");
		
		return noBreaks;
		
	}
// --------------------------------------------------------------------------------------

// fahrtkostenpauschale enablen, wenn test abgerechnet werden soll
	function setStatusCheckbox(checkbox1, checkbox2){
		if(document.getElementById(checkbox1).checked == true){
			document.getElementById(checkbox2).disabled = false;
		}else{
			document.getElementById(checkbox2).disabled = true;
		}
	}

// überprüfen ob datum im eingabefeld kleiner gleich heute
	function checkDate_Spesenerfassung(datum){
		datum2 = datum.value;
		datum2 = datum2.split(".");
		datum2 = new Date(datum2[2], datum2[1], datum2[0]);
		heute = new Date();
		if(datum2 > heute){
			datum.value = '';
			alert('Es ist nicht möglich, ein Datum in der Zukunft zu wählen!');
		}
	}

// wert eines form-feldes in ein anderes schreiben
	function setValueF1_F2( feld1, feld2 ){
		feld2.value = feld1.value;
	}
//------------------------------------------------------------------------------------------


// funktion zum erstellen einer direkten gruppe (händisches erstellen der abfrage/gruppe)
	function addToTextfield(element, wert){
		document.getElementById(element).value=document.getElementById(element).value+' '+wert;
		document.getElementById(element).focus();
		return;
	}
//------------------------------------------------------------------------------------------

// anzahl der tage berechnen und in ein formularfeld schreiben
	function calculateDays(){
		var start = document.getElementById('geburtstag').value;
		var ende = document.getElementById('now').value;
		var result = document.getElementById('age');
		
		start = start.split(".");
		start = new Date(start[2], start[1], start[0]);
		ende = ende.split(".");
		ende = new Date(ende[2], ende[1], ende[0]);
		starttime = start.getTime();
		endetime = ende.getTime();
		
		differenz = ((endetime - starttime) / (1000*60*60*24*365));
		result.value = Math.round(differenz);
	}
//------------------------------------------------------------------------------------------

// berechnen des alters 
	function calculateAge(){
		var start = document.getElementById('geburtstag').value;
		var ende = document.getElementById('now').value;
		var result = document.getElementById('age');
		
		start = start.split(".");
		ende = ende.split(".");
		
		differenz = ende[2] - start[2]
		result.value = Math.round(differenz);
	}
//------------------------------------------------------------------------------------------

// getElements -> getElementsByName
	function getElements(element){
		var x=document.getElementsByName(element);
		return x;
	}

// linkTo javascript
	function linkTo(url){
		location.href = url;
	}

// checkboxen bei link-klick selektieren oder deselektieren
	function check_boxes_check(){
	  void(d=document);
	  void(el=d.getElementsByTagName('INPUT'));
	  for(i=0;i<el.length;i++)
		void(el[i].checked=1) 
	}
	function check_boxes_uncheck(){
	  void(d=document);
	  void(el=d.getElementsByTagName('INPUT'));
	  for(i=0;i<el.length;i++)
		void(el[i].checked=0) 
	}
	// alle input-objekte in einem id-bereich selectieren oder deselctieren
	function selectAllInId(element){
		void(area = document.getElementById(element));
		void(el = area.getElementsByTagName('INPUT'));
		for(i=0;i<el.length;i++)
			void(el[i].checked=1) 
	}
	function deselectAllInId(element){
		void(area = document.getElementById(element));
		void(el = area.getElementsByTagName('INPUT'));
		for(i=0;i<el.length;i++)
			void(el[i].checked=0) 
	}


// wechselnder tr-hintergrund bei mouseover und mouseout
	function setTrBg(element, action, outColor){
	
		var backColor = new Array(); // don't change this
		//overColor = '#ADC8E8';
		var overColor = '#afd6f9';
	
		if(action == "over"){
			document.getElementById(element).style.backgroundColor = overColor;
		}else if(action == "out"){
			document.getElementById(element).style.backgroundColor = outColor;
		}
		
	}
//------------------------------------------------------------------------------------------

// inhalt zweier felder addieren und inhalt in ein drittes feld ausgeben
	function calculateToFormfields(ID1, operant, ID2, ID3){
		var var1 = document.getElementById(ID1).value;
		var var2 = document.getElementById(ID2).value;
		var result = document.getElementById(ID3);
		
		if(operant == "+"){
			differenz = var1 + var2;
		}else if(operant == "-"){
			differenz = var1 - var2;
		}else if(operant == "*"){
			differenz = var1 * var2;
		}else if(operant == "/"){
			differenz = var1 / var2;
		}
		
		result.value = differenz;
	}
//------------------------------------------------------------------------------------------

// inhalt eines iframes drucken
	function iFramePrint(frame){
		parent.frames[frame].focus();
		parent.frames[frame].print();
	}
//------------------------------------------------------------------------------------------

// text in die zwischenablage kopieren
	// funktion 1
	function copyToClipbord(meintext) {
		if(window.clipboardData) {
			window.clipboardData.setData("Text", meintext);
		} else if (window.netscape) { 
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
			var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
			if (!clip) return;
			var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
			if (!trans) return;
			trans.addDataFlavor('text/unicode');
			var str = new Object();
			var len = new Object();
			var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
			var copytext=meintext;
			str.data=copytext;
			trans.setTransferData("text/unicode",str,copytext.length*2);
			var clipid=Components.interfaces.nsIClipboard;
			if (!clip) return false;
			clip.setData(trans,null,clipid.kGlobalClipboard);
		}
		return false;
	}
//------------------------------------------------------------------------------------------


// Buffer-Funktion
	function getBuffer(buffer, input_field){
		var content = document.getElementById(buffer);
		if(content){
			content = base64_encode(content.innerText);
			input_field.value = content;
		}
	}
//------------------------------------------------------------------------------------------


// getElements -> getElementsByName
	function getElements(element){
		var x=document.getElementsByName(element);
		return x;
	}
	// html-tag über id entfernen
	function removeElement() {
		var arg=arguments, elm;
		elm=document.getElementById(arg[0])||arg[0];
		elm.parentNode.removeChild(elm)
	}

//------------------------------------------------------------------------------------------


// disable links and input-fields
	function disableLinksInId(element){
		var buffer = document.getElementById(element);
		if(buffer){
			d1 = buffer.getElementsByTagName('A');
			for(i=0;i<d1.length;i++){
				d1[i].setAttribute("href","javascript:;");
				d1[i].setAttribute("onClick","return false;");
				d1[i].setAttribute("onMouseOver","return false;");
				d1[i].setAttribute("onMouseOut","return false;");
				d1[i].onclick = new Function("return false;");
			}
			d2 = buffer.getElementsByTagName('INPUT');
			for(i=0;i<d2.length;i++){
				d2[i].setAttribute("disabled","true");
			}
			d3 = buffer.getElementsByTagName('TEXTAREA');
			for(i=0;i<d3.length;i++){
				d3[i].setAttribute("disabled","true");
			}
			d4 = buffer.getElementsByTagName('SELECT');
			for(i=0;i<d4.length;i++){
				d4[i].setAttribute("disabled","true");
			}
		}
	}
//------------------------------------------------------------------------------------------


// base64 funktionen
	var base64_keyStr = "ABCDEFGHIJKLMNOP" +
						"QRSTUVWXYZabcdef" +
						"ghijklmnopqrstuv" +
						"wxyz0123456789+/" +
						"=";

	function base64_encode(input) {
		var output = "";
		var chr1, chr2, chr3 = "";
		var enc1, enc2, enc3, enc4 = "";
		var i = 0;

		do {
			chr1 = input.charCodeAt(i++);
			chr2 = input.charCodeAt(i++);
			chr3 = input.charCodeAt(i++);

			enc1 = chr1 >> 2;
			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
			enc4 = chr3 & 63;

			if (isNaN(chr2)) {
				enc3 = enc4 = 64;
			} else if (isNaN(chr3)) {
				enc4 = 64;
			}

			output = output + 
			base64_keyStr.charAt(enc1) + 
			base64_keyStr.charAt(enc2) + 
			base64_keyStr.charAt(enc3) + 
			base64_keyStr.charAt(enc4);
			chr1 = chr2 = chr3 = "";
			enc1 = enc2 = enc3 = enc4 = "";
		}
		while (i < input.length);
		return output;
	}

	function base64_decode(input) {
		var output = "";
		var chr1, chr2, chr3 = "";
		var enc1, enc2, enc3, enc4 = "";
		var i = 0;

		// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
		var base64test = /[^A-Za-z0-9\+\/\=]/g;
		if (base64test.exec(input)) {
		alert("There were invalid base64 characters in the input text.\n" +
			  "Valid base64 characters are A-Z, a-z, 0-9, '+', '/', and '='\n" +
			  "Expect errors in decoding.");
		}
		input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

		do {
			enc1 = base64_keyStr.indexOf(input.charAt(i++));
			enc2 = base64_keyStr.indexOf(input.charAt(i++));
			enc3 = base64_keyStr.indexOf(input.charAt(i++));
			enc4 = base64_keyStr.indexOf(input.charAt(i++));

			chr1 = (enc1 << 2) | (enc2 >> 4);
			chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
			chr3 = ((enc3 & 3) << 6) | enc4;

			output = output + String.fromCharCode(chr1);

			if (enc3 != 64) {
				output = output + String.fromCharCode(chr2);
			}
			if (enc4 != 64) {
				output = output + String.fromCharCode(chr3);
			}

			chr1 = chr2 = chr3 = "";
			enc1 = enc2 = enc3 = enc4 = "";

		}
		while (i < input.length);
		return output;
	}
//------------------------------------------------------------------------------------------

// select jump menu
	function MM_jumpMenu(targ,selObj,restore){ //v3.0
			eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
			if (restore) selObj.selectedIndex=0;
	}
//------------------------------------------------------------------------------------------

// bei größenänderung seite neu laden
	function MM_reloadPage(init) { 
	  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
		document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
	  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
	}
	MM_reloadPage(true);
//------------------------------------------------------------------------------------------

// Cookie Funktionen
	function getCookieVal (offset) { 
		var endstr = document.cookie.indexOf (";", offset); 
		if (endstr == -1) 
		endstr = document.cookie.length; 
		return unescape(document.cookie.substring(offset, endstr));
	}
	function GetCookie (name) { 
		var arg = name + "="; 
		var alen = arg.length; 
		var clen = document.cookie.length; 
		var i = 0; 
		while (i < clen) { 
		var j = i + alen; 
		if (document.cookie.substring(i, j) == arg) 
		return getCookieVal (j); 
		i = document.cookie.indexOf(" ", i) + 1; 
		if (i == 0) break; 
		} 
		return null;
	}
/*	function SetCookie (name, value) { 
		var argv = SetCookie.arguments; 
		var argc = SetCookie.arguments.length; 
		var expires = (argc > 2) ? argv[2] : null; 
		var path = (argc > 3) ? argv[3] : null; 
		var domain = (argc > 4) ? argv[4] : null; 
		var secure = (argc > 5) ? argv[5] : false; 
		document.cookie = name + "=" + escape (value) + 
		((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
		((path == null) ? "" : ("; path=" + path)) + 
		((domain == null) ? "" : ("; domain=" + domain)) + 
		((secure == true) ? "; secure" : "");
	}
*/
	function SetCookie( name, value, expires, path, domain, secure ) {
		document.cookie = name+'='+escape( value ) +
			( ( expires ) ? ';expires='+cookie_live(expires) : '' ) + //expires.toGMTString()
			( ( path ) ? ';path=' + path : '' ) +
			( ( domain ) ? ';domain=' + domain : '' ) +
			( ( secure ) ? ';secure' : '' );
	}
	function cookie_live(LIVEDAYS) {
		var date=new Date();
		date.setDate(date.getDate()+LIVEDAYS);
		var gmt=date.toGMTString();
		var k1=gmt.indexOf(" ");
		var k2=gmt.indexOf(" ", k1+1);
		var k3=gmt.indexOf(" ", k2+1);
		var str=gmt.substring(0,k2)+"-"+gmt.substring(k2+1,k3)+"-"+gmt.substring(k3+3,gmt.length);
		return str;
	}
	function DeleteCookie (name) { 
		var exp = new Date(); 
		exp.setTime (exp.getTime() - 1); 
		var cval = GetCookie (name); 
		document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
	}
//------------------------------------------------------------------------------------------
