/** * rememberMe stuff */ var rememberMeFlagCookie = 'rememberme'; var rememberMeDataCookie = 'rsessionid'; var rememberMeDataDelimiter = '||'; /** * this function gets the cookie, if it exists */ function getCookie( name ) { var start = document.cookie.indexOf( name + "=" ); var len = start + name.length + 1; if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) { return null; } if ( start == -1 ) { return null; } var end = document.cookie.indexOf( ";", len ); if ( end == -1 ) { end = document.cookie.length; } return unescape( document.cookie.substring( len, end ) ); } /** * */ function setCookie( name, value ) { document.cookie = name + "=" +escape( value ); } /** * */ function setCookieWithTimestamp( name, value, expiresInDays, cookiePath ) { var expires = new Date(); var expiresTmp = expires.getTime() + (expiresInDays * 24 * 60 * 60 * 1000); expires.setTime(expiresTmp); document.cookie = name + "=" + escape( value ) + "; expires=" + expires.toGMTString() + "; path=" + cookiePath; } /** * */ function setRememberMeCookie(username, thePassword) { var toEncodeId = username + rememberMeDataDelimiter + thePassword; setCookieWithTimestamp(rememberMeDataCookie, Base64.encode(toEncodeId), 28, '/servlet/'); setCookieWithTimestamp(rememberMeFlagCookie, 'true', 28, '/servlet/'); } /** * */ function removeRememberMeCookie() { setCookieWithTimestamp(rememberMeDataCookie, '', 0, '/servlet/'); setCookieWithTimestamp(rememberMeFlagCookie, 'false', '', '/servlet/'); } function getRememberMeData() { var toDecodeId = Base64.decode(getCookie(rememberMeDataCookie)); return toDecodeId.split(rememberMeDataDelimiter); } /** * */ function checkCookie() { checkCookieFormByName('loginform'); } /** * */ function checkCookieFormByName(formName) { if (getCookie("dynamic")==null && getCookie("JSESSIONID") == null) { alert("Sie müssen Cookies erlauben um diese Site nutzen zu können!"); return false; } else if (document.forms[formName].elements['isSubmited'].value=="false") { // save remember me if(document.forms[formName].elements['rememberme'] != undefined && document.forms[formName].elements['rememberme'].checked == true && !isEmpty(document.forms[formName].elements['login'].value) && !isEmpty(document.forms[formName].elements['password'].value) ) { var username = document.forms[formName].elements['login'].value; var psswrd = document.forms[formName].elements['password'].value; setRememberMeCookie(username, psswrd); } document.forms[formName].elements['isSubmited'].value="true"; document.forms[formName].submit(); return true; } else if (document.forms[formName].elements['isSubmited'].value=="true") { // alert("Ihre Anfrage wurde entgegengenommen, bitte warten sie die Antwort ab."); return false; } } /** * */ function isEmpty(thevalue) { if(thevalue == null) { return true; } else if(thevalue == '') { return true; } return false; } /** * */ function submitLoginForm() { try { if(window.event.keyCode == 13) { checkCookie(); } } catch(e) { } } /** * */ function doLogout() { removeRememberMeCookie(); document.logoutform.submit(); } /** * */ function doRememberMe(formName) { if(getCookie(rememberMeFlagCookie) != "true" || document.forms['logoutform'] != undefined ) { //alert("I'm logged in or have no cookie - doing nothing"); return; } // do remember me else if(document.forms[formName].elements['isSubmited'].value=="false") // getCookie("rememberme") == "true" && // getCookie("username") != null && // getCookie("password") != null) { var rememberMeData = getRememberMeData(); var username = rememberMeData[0]; var psswrd = rememberMeData[1]; // renew remember me cookie setRememberMeCookie(username, psswrd); // DO LOGIN! document.forms[formName].elements['login'].value=username; document.forms[formName].elements['password'].value=psswrd; if(document.forms[formName].elements['rememberme'] != undefined) { document.forms[formName].elements['rememberme'].checked=true; } document.forms[formName].elements['isSubmited'].value="true"; document.forms[formName].submit(); return true; } } /** * */ function submitLoginFormByName(formName) { try { if(window.event.keyCode == 13) { checkCookieFormByName(formName); } } catch(e) { } } /** * obsolete, better use overloaded */ function checkCookie2() { if (getCookie("dynamic")==null && getCookie("JSESSIONID") == null) { alert("Sie müssen Cookies erlauben um diese Site nutzen zu können!"); return false; } else if (document.forms['loginform'].elements['isSubmited'].value=="false") { document.forms['loginform'].elements['isSubmited'].value="true"; document.forms['loginform2'].submit(); return true; } else if (document.forms['loginform'].elements['isSubmited'].value=="true") { //alert("Ihre Anfrage wurde entgegengenommen, bitte warten sie die Antwort ab."); return false; } } /** * */ function writeLoginButton() { document.write("GO"); } /** * */ function wopen(link,wi,he, scrollbar, name) { var screentop, screenleft; var ScreenWidth = screen.width; var ScreenHeight = screen.height; screenleft = parseInt( ( ScreenWidth - wi ) / 2 ); screentop = parseInt( ( ScreenHeight - he ) / 2 ); if ( screenleft < 0 ) { screenleft = 0; } if ( screentop < 0 ) { screentop = 0; } var args = "toolbar=0,"+",left="+screenleft; args +=",top="+screentop+",directories=0,status=1,menubar=0,scrollbars="+scrollbar+",resizable=1,width="+wi+",height="+he; var wincom = window.open(link, name, args); wincom.focus(); } /** * * Base64 encode / decode * http://www.webtoolkit.info/ * **/ 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; } }