// The cookie name to use for storing the blog-side comment session cookie. var mtCookieName = "mt_blog_user"; var mtCookieDomain = ".mahesajenar.com"; var mtCookiePath = "/"; var mtCookieTimeout = 14400; function mtHide(id) { var el = (typeof id == "string") ? document.getElementById(id) : id; if (el) el.style.display = 'none'; } function mtShow(id) { var el = (typeof id == "string") ? document.getElementById(id) : id; if (el) el.style.display = 'block'; } function mtAttachEvent(eventName,func) { var onEventName = 'on' + eventName; var old = window[onEventName]; if( typeof old != 'function' ) window[onEventName] = func; else { window[onEventName] = function( evt ) { old( evt ); return func( evt ); }; } } function mtFireEvent(eventName,param) { var fn = window['on' + eventName]; if (typeof fn == 'function') return fn(param); return; } var is_preview; var user; function mtSetUser(u) { if (u) { // persist this user = u; mtSaveUser(); // sync up user greeting mtFireEvent('usersignin'); } } function mtEscapeJS(s) { s = s.replace(/'/g, "'"); return s; } function mtUnescapeJS(s) { s = s.replace(/'/g, "'"); return s; } function mtBakeUserCookie(u) { var str = ""; if (u.name) str += "name:'" + mtEscapeJS(u.name) + "';"; if (u.url) str += "url:'" + mtEscapeJS(u.url) + "';"; if (u.email) str += "email:'" + mtEscapeJS(u.email) + "';"; if (u.is_authenticated) str += "is_authenticated:'1';"; if (u.profile) str += "profile:'" + mtEscapeJS(u.profile) + "';"; if (u.userpic) str += "userpic:'" + mtEscapeJS(u.userpic) + "';"; if (u.sid) str += "sid:'" + mtEscapeJS(u.sid) + "';"; str += "is_trusted:'" + (u.is_trusted ? "1" : "0") + "';"; str += "is_author:'" + (u.is_author ? "1" : "0") + "';"; str += "is_banned:'" + (u.is_banned ? "1" : "0") + "';"; str += "can_post:'" + (u.can_post ? "1" : "0") + "';"; str += "can_comment:'" + (u.can_comment ? "1" : "0") + "';"; str = str.replace(/;$/, ''); return str; } function mtUnbakeUserCookie(s) { if (!s) return; var u = {}; var m; while (m = s.match(/^((name|url|email|is_authenticated|profile|userpic|sid|is_trusted|is_author|is_banned|can_post|can_comment):'([^']+?)';?)/)) { s = s.substring(m[1].length); if (m[2].match(/^(is|can)_/)) // boolean fields u[m[2]] = m[3] == '1' ? true : false; else u[m[2]] = mtUnescapeJS(m[3]); } if (u.is_authenticated) { u.is_anonymous = false; } else { u.is_anonymous = true; u.can_post = false; u.is_author = false; u.is_banned = false; u.is_trusted = false; } return u; } function mtGetUser() { if (!user) { var cookie = mtGetCookie(mtCookieName); if (!cookie) return; user = mtUnbakeUserCookie(cookie); if (! user) { user = {}; user.is_anonymous = true; user.can_post = false; user.is_author = false; user.is_banned = false; user.is_trusted = false; } } return user; } var mtFetchedUser = false; function mtFetchUser(cb) { if (!cb) cb = 'mtSetUser'; if ( ( cb == 'mtSetUser' ) && mtGetUser() ) { var url = document.URL; url = url.replace(/#.+$/, ''); url += '#comments-open'; location.href = url; } else { // we aren't using AJAX for this, since we may have to request // from a different domain. JSONP to the rescue. mtFetchedUser = true; var script = document.createElement('script'); script.src = 'http://www.mahesajenar.com/mt/vxcvuxt.cgi?__mode=session_js&blog_id=1&jsonp=' + cb; (document.getElementsByTagName('head'))[0].appendChild(script); } } var mtRequestSubmitted = false; function mtCommentOnSubmit(f) { if (!mtRequestSubmitted) { mtRequestSubmitted = true; if (f.armor) f.armor.value = 'ef3cf2192e46faa819ae29b33a6b47b9a451824e'; if (f.bakecookie && f.bakecookie.checked) mtSaveUser(f); // disable submit buttons if (f.preview_button) f.preview_button.disabled = true; if (f.post) f.post.disabled = true; var u = mtGetUser(); if ( !is_preview && ( u && u.is_authenticated ) ) { // validate session; then submit mtFetchedUser = false; mtFetchUser('mtCommentSessionVerify'); return false; } return true; } return false; } function mtCommentSessionVerify(app_user) { var u = mtGetUser(); var f = document['comments_form']; if ( u && app_user && app_user.sid && ( u.sid == app_user.sid ) ) { f.submit(); } else { alert('Your session has expired. Please sign in again to comment.'); mtClearUser(); mtFireEvent('usersignin'); } } function mtUserOnLoad() { var u = mtGetUser(); if ( document.getElementById('comments-form')) { if ( u && u.is_authenticated ) { mtShow('comments-form'); } else { } if ( u && u.is_banned ) mtHide('comments-form'); // if we're previewing a comment, make sure the captcha // field is visible // populate anonymous comment fields if user is cookied as anonymous var cf = document['comments_form']; if (cf cf.sid.value = u.sid; if (cf.armor) cf.armor.value = 'ef3cf2192e46faa819ae29b33a6b47b9a451824e'; if (cf.post.disabled) cf.post.disabled = false; mtRequestSubmitted = false; } } } function mtEntryOnLoad() { mtHide('trackbacks-info'); mtFireEvent('usersignin'); } mtAttachEvent('usersignin', mtUserOnLoad); function mtSignIn() { var doc_url = document.URL; doc_url = doc_url.replace(/#.+/, ''); var url = 'http://www.mahesajenar.com/mt/vxcvuxt.cgi?__mode=login&blog_id=1'; if (is_preview) { if ( document['comments_form'] ) { var entry_id = document['comments_form'].entry_id.value; url += '&entry_id=' + entry_id; } else { url += '&return_url=http%3A%2F%2Fwww.mahesajenar.com%2F'; } } eu) { if (u && u.is_authenticated) { mtSetUser(u); } else { // user really isn't logged in; so let's do this! mtSignIn(); } } function mtSignOut(entry_id) { mtClearUser(); var doc_url = document.URL; doc_url = doc_url.replace(/#.+/, ''); var url = 'http://www.mahesajenar.com/mt/vxcvuxt.cgi?__mode=handle_sign_in&static=0&logout=1'; if (is_preview) { if ( do function mtShowGreeting() { mtShowCaptcha(); } function mtReplyCommentOnClick(parent_id, author) { mtShow('comment-form-reply'); var checkbox = document.getElementById('comment-reply'); var label = document.getElementById('comment-reply-label'); var text = document.getElementById('comment-text'); // Populate label with new values var reply_text = 'Replying ent_id_field = document.getElementById('comment-parent-id'); if (!checkbox || !parent_id_field) return; var pid = 0; if (checkbox.checked == true) pid = checkbox.value; parent_id_field.value = pid; } function mtSaveUser(f) { // We can't reliably store the user cookie during a preview. if (is_preview) return; var u = mtGetUser(); if (f && (!u || u.is_anonymous)) { if ( !u ) { u = {}; u.is_authenticated = false; u.can_comment = true; u.is_author = false; u.is_banned = false; u.is_anonymous = true; u.is_trus000; // cache anonymous user info for a long period if the // user has requested to be remembered if (u.is_anonymous && f && f.bakecookie && f.bakecookie.checked) cache_period = 365 * 24 * 60 * 60 * 1000; var now = new Date(); mtFixDate(now); now.setTime(now.getTime() + cache_period); var cmtcookie = mtBakeUserCookie(u); mtSetCookie(mtCookieName, cmtcookie, now, mtCookiePath, mtCookieDomain, location.protocol == 'https:'); } func: "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; } } function mtFixDate(date) { var skew = (new Date(0)).getTime(); if (skew > 0) date.setTime(date.getTime() - skew); } function mtGetXmlHttp() { if ( !window.XMLHttpRequest ) { window.XMLHttpRequest = function() { var types = [ "Microsoft.XMLHTTP", "MSXML2.XMLHTTP.5.0", tthias Miller/John Resig // http://dean.edwards.name/weblog/2006/06/again/?full#comment5338 function mtInit() { // quit if this function has already been called if (arguments.callee.done) return; // flag this function so we don't do the same thing twice arguments.callee.done = true; // kill the timer // DWD - check against window if ( window._timer ) clearInterval(window._timer); // DWD - fire the window onload now, and replace it if ( windownit(); // call the onload handler } }; /*@end @*/ /* for Safari */ if (/WebKit/i.test(navigator.userAgent)) { // sniff _timer = setInterval(function() { if (/loaded|complete/.test(document.readyState)) { mtInit(); // call the onload handler } }, 10); } /* for other browsers */ window.onload = mtInit; // END: fast browser onload init