
	var Base64 = {
	
	    // private property
	    _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
	
	    // public method for encoding
	    encode : function (input) {
	        var output = "";
	        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
	        var i = 0;
	
	        input = Base64._utf8_encode(input);
	
	        while (i < input.length) {
	
	            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 +
	            this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
	            this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
	
	        }
	
	        return output;
	    },
	
	    // public method for decoding
	    decode : function (input) {
	        var output = "";
	        var chr1, chr2, chr3;
	        var enc1, enc2, enc3, enc4;
	        var i = 0;
	
	        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
	
	        while (i < input.length) {
	
	            enc1 = this._keyStr.indexOf(input.charAt(i++));
	            enc2 = this._keyStr.indexOf(input.charAt(i++));
	            enc3 = this._keyStr.indexOf(input.charAt(i++));
	            enc4 = this._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);
	            }
	
	        }
	
	        output = Base64._utf8_decode(output);
	
	        return output;
	
	    },
	
	    // private method for UTF-8 encoding
	    _utf8_encode : function (string) {
	        string = string.replace(/\r\n/g,"\n");
	        var utftext = "";
	
	        for (var n = 0; n < string.length; n++) {
	
	            var c = string.charCodeAt(n);
	
	            if (c < 128) {
	                utftext += String.fromCharCode(c);
	            }
	            else if((c > 127) && (c < 2048)) {
	                utftext += String.fromCharCode((c >> 6) | 192);
	                utftext += String.fromCharCode((c & 63) | 128);
	            }
	            else {
	                utftext += String.fromCharCode((c >> 12) | 224);
	                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
	                utftext += String.fromCharCode((c & 63) | 128);
	            }
	
	        }
	
	        return utftext;
	    },
	
	    // private method for UTF-8 decoding
	    _utf8_decode : function (utftext) {
	        var string = "";
	        var i = 0;
	        var c = c1 = c2 = 0;
	
	        while ( i < utftext.length ) {
	
	            c = utftext.charCodeAt(i);
	
	            if (c < 128) {
	                string += String.fromCharCode(c);
	                i++;
	            }
	            else if((c > 191) && (c < 224)) {
	                c2 = utftext.charCodeAt(i+1);
	                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
	                i += 2;
	            }
	            else {
	                c2 = utftext.charCodeAt(i+1);
	                c3 = utftext.charCodeAt(i+2);
	                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
	                i += 3;
	            }
	
	        }
	
	        return string;
	    }
	
	}




	var webscripts = function() {
		this.inputDefaultValues = false;
		this.interval_tariftimed_init = false;
	}
	
	webscripts.prototype.print_r = function(obj, showMaxB) {
		this.print_r_ex(obj, -1, "", 0, "");
	}
	
	webscripts.prototype.print_r_ex = function(obj, showMax, introText, promptMode, filter) {
		var tmp;
		tmp = "";
		
		var printobj = new Array();
		var printobj_count = 0;
		
		for(var a in obj) {
			if( typeof obj[a] == 'function' ) {
				tmp = 'function: ' + a + '= source' + "\n";
			} else if( typeof obj[a] == 'object' ) {
				tmp = 'object: ' + a + '= ...' + "\n";
			} else {
				tmp = (typeof obj[a]) + ': ' + a + '=' + obj[a] + "\n";
			}
			
			if ( filter == "" ) {
				printobj[ printobj_count ] = tmp;
				printobj_count++;
			} else {
				if ( a.replace(filter, "").toLowerCase() != a.toLowerCase() ) {
					printobj[ printobj_count ] = tmp;
					printobj_count++;
				}
			}
		}
		
		if ( printobj_count == 0 && filter != "" ) {
			printobj[ printobj_count ] = 'There is no entry like "'+filter+'"';
			printobj_count++;
		}
		
		printobj.sort();

		showMax = printobj.length;
		
		tmp = "";
		
		var cnt = 0;
		
		
		//for(var a in printobj) {
		var runCycle = 1;
		while( runCycle == 1) {
			runCycle = 0;
			var pageCounted = 0;
			
			tmp += "Page 1 from " + (printobj.length / 30) + "\n" + introText + "\n\n";
			
			var runThis = 1;
			for(var u=0;u<showMax;u++) {
				tmp += printobj[u];
				
				if ( cnt == 30 ) {
					if ( typeof(obj) == 'string' ) {
						if ( obj != "" ) {
							tmp = 'string:' + obj + "\n\n" + tmp;
						} 
					}
					
					//alert(tmp);
					if ( runThis == 1 ) {
						if ( promptMode == 1 ) {
							var isEntered = prompt(tmp, "go please to the next page");
							if ( isEntered == false || isEntered != "go please to the next page" ) {
								return isEntered;
								runThis = 0;
							}
						} else {
							alert(tmp);
						}
					}
					
					pageCounted++;
					tmp = "";
					tmp += "Page "+(pageCounted+1)+" from " + (printobj.length / 30) + "\n" + introText + "\n\n";
					cnt = 0;
				} else {
					cnt++;
				}
			}
				
			if ( cnt > 0 ) {
				if ( typeof(obj) == 'string' ) {
					if ( obj != "" ) {
						tmp = 'string:' + obj + "\n\n" + tmp;
					}
				}
				
				if ( runThis == 1 ) {
					if ( promptMode == 1 ) {
						var isEntered = prompt(tmp, "go please to the first page");
						if ( isEntered == false || isEntered == "" ) {
							return "";
						} else {
							if ( isEntered == "go please to the first page" ) {
								runCycle = 1;
								tmp = "";
								tmp += "Page 1 from " + (printobj.length / 30) + "\n" + introText + "\n\n";
								pageCounted = 0;
								cnt = 0;
							} else {
								return isEntered;
							}
						}
					} else {
						alert(tmp);
						runThis = 0;
					}
				}
			}

		}
	}
	
	webscripts.prototype.init = function() {
		var me = this;
		this.inputDefaultValues = new Object();
	}
	
	webscripts.prototype.runIntoHtmlElements = function(runTheFunction, infoVariable, node, runFunction) {
		
		if ( runTheFunction == true ) {
			runFunction(node, infoVariable);
		}
		
	    if (node.hasChildNodes()) {
	        for (var i = 0; i < node.childNodes.length; i++) {
	            newnode = node.childNodes[i];
	            this.runIntoHtmlElements(true, infoVariable, newnode, runFunction);
	        }
	    }
		
	}
	
	webscripts.prototype.writeIntoCookie = function(n,w,e) {
		var a = new Date();
		a = new Date(a.getTime() +e);
		document.cookie = n+'='+w+'; expires='+a.toGMTString()+';';
	}

	webscripts.prototype.readFromCookie = function(n) {
		if ( document.cookie ) {
			a = document.cookie;
			res = '';
			while(a != '')
			{
				cookiename = a.substring(0,a.search('='));
				cookiewert = a.substring(a.search('=')+1,a.search(';'));
				if (cookiewert == '') {
					cookiewert = a.substring(a.search('=')+1,a.length);
				}
				
				if (n == cookiename) {
					res = cookiewert;
				}

				i = a.search(';')+1;
				if(i == 0){i = a.length}
				a = a.substring(i,a.length);
			}
			return(res);
		} else {
			return('');
		}
	}

	webscripts.prototype.deleteFromCookie = function(n) {
		document.cookie = n+'=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
	} 
	
	webscripts.prototype.inputDefaultValue = function(elementId) {
		var me = this;
		var elId = elementId;
		this.inputDefaultValues[elementId] = document.getElementById(elementId).value;
		document.getElementById(elementId).onclick = function() {
			if ( document.getElementById(elId).value == me.inputDefaultValues[elId] ) {
				document.getElementById(elId).value = "";
			}
		}
		document.getElementById(elementId).onblur = function() {
			if ( document.getElementById(elId).value == '' ) {
				document.getElementById(elId).value = me.inputDefaultValues[elId];
			}
		}
	}
	
	web = new webscripts();
	web.init();
