// Copyright (c) 1996-1997 Athenia Associates.
// http://www.webreference.com/js/
// License is granted if and only if this entire
// copyright notice is included. By Tomer Shiran.

function setCookie (name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) + (expires ? "; expires=" + expires : "") +
        (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "secure" : "");
    document.cookie = curCookie;
}

function getCookie (name) {
    var prefix = name + '=';
    var c = document.cookie;
    var nullstring = '';
    var cookieStartIndex = c.indexOf(prefix);
    if (cookieStartIndex == -1)
        return nullstring;
    var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length);
    if (cookieEndIndex == -1)
        cookieEndIndex = c.length;
    return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

function deleteCookie (name, path, domain) {
    if (getCookie(name))
        document.cookie = name + "=" + ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

function fixDate (date) {
    var base = new Date(0);
    var skew = base.getTime();
    if (skew > 0)
        date.setTime(date.getTime() - skew);
}

function rememberMe (f) {
    var now = new Date();
    fixDate(now);
    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
    now = now.toGMTString();
    if (f.author != undefined)
       setCookie('mtcmtauth', f.author.value, now, '/', '', '');
    if (f.email != undefined)
       setCookie('mtcmtmail', f.email.value, now, '/', '', '');
    if (f.url != undefined)
       setCookie('mtcmthome', f.url.value, now, '/', '', '');
}

function forgetMe (f) {
    deleteCookie('mtcmtmail', '/', '');
    deleteCookie('mtcmthome', '/', '');
    deleteCookie('mtcmtauth', '/', '');
    f.email.value = '';
    f.author.value = '';
    f.url.value = '';
}

function hideDocumentElement(id) {
    var el = document.getElementById(id);
    if (el) el.style.display = 'none';
}

function showDocumentElement(id) {
    var el = document.getElementById(id);
    if (el) el.style.display = 'block';
}

function toggle_visible(id) {
    var el = document.getElementById(id);
    if (el.style.display == "block") {
        el.style.display = "none";
    } else {
        el.style.display = "block";
    }
}

   function threadComments() {
       // comments are all placed in a div with class 'comment'
       // the id of this div is the anchor for the comment
       // name of commenter is currently in a comment-footer classed
       // paragraph within the comment div. Like this:
       //   <p class="comment-footer">
       //     Posted by: Josh |
       //     <a href="#comment-22196">January  8, 2007  1:54 PM</a>
       //   </p>
       // step 1, gather all the comment divs
       // step 2, for each one, look for '@(name):' strings within the
       //         comment; if one is found, see if we have a record
       //         of a comment anchor for that name. if so, link it
       // step 3, record the current comment anchor/author for future
       //         references

       var names = {};
       var cmts = $(".comment").get();
       for (var i in cmts) {
           var cc = $(".comment-content", cmts[i]).get(0);
           var header = $(".comment-header", cmts[i]).get(0);
           var name;

           // get name and id for this comment
           var id = cmts[i].id;
           if (header && (header.innerHTML.match(/^\s+(.+?)\s+said:\s*$/))) {
               name = RegExp.$1;
               // strip html from name
               name = name.replace(/<[^>]+>/g, '');
               name = name.toLowerCase();
           }

           var txt = cc.innerHTML;
           var new_txt = '';
           var m;
           while (txt.length && (m = txt.match(/((?:^|\s|>))@(.+?)([-:]\s)/))) {
               // index of string we found
               var p = txt.indexOf(m[0]);
               // add to new_txt everything from txt up to that position
               new_txt = txt.substr(0, p);
               // strip this portion off of txt
               txt = txt.substr(p + m[0].length);

               var n = m[2].toLowerCase();
               if (names[n]) {
                   // name is referenced; link it
                   new_txt += m[1] + "<a href=\"#" + names[n] + "\">@" + m[2] + "</a>" + m[3];
               } else {
                   // name is unreferenced; ignore it
                   new_txt += m[0];
               }
           }

           // pull in any remaining text may be in txt
           if (txt.length) new_txt += txt;
           // update id reference for name
           if (name)
               names[name] = id;
           cc.innerHTML = new_txt;
       }
   }

function showAnonymousForm() {
    showDocumentElement('comments-form');

}


var commenter_name;
var commenter_blog_ids;
var is_preview;
var mtcmtmail;
var mtcmtauth;
var mtcmthome;

function individualArchivesOnLoad(commenter_name) {





    
    // comments are allowed but registration not required
    if ( commenter_name &&
         ( !commenter_id
        || commenter_blog_ids.indexOf("'4'") > -1))
    {
        hideDocumentElement('comment-form-name');
        hideDocumentElement('comment-form-email');
    } else if (is_preview) {
        delayShowCaptcha();
    } else {
        hideDocumentElement('comments-form');
    }
    


    if (document.comments_form) {
        if (!commenter_name && (document.comments_form.email != undefined) &&
            (mtcmtmail = getCookie("mtcmtmail")))
            document.comments_form.email.value = mtcmtmail;
        if (!commenter_name && (document.comments_form.author != undefined) &&
            (mtcmtauth = getCookie("mtcmtauth")))
            document.comments_form.author.value = mtcmtauth;
        if (document.comments_form.url != undefined &&
            (mtcmthome = getCookie("mtcmthome")))
            document.comments_form.url.value = mtcmthome;
        if (document.comments_form["bakecookie"]) {
            if (mtcmtauth || mtcmthome) {
                document.comments_form.bakecookie.checked = true;
            } else {
                document.comments_form.bakecookie.checked = false;
            }
        }
    }
    threadComments();
}

function writeCommenterGreeting(commenter_name, entry_id, blog_id, commenter_id, commenter_url) {

    if ( commenter_name &&
         ( !commenter_id
        || commenter_blog_ids.indexOf("'" + blog_id + "'") > -1))
    {
        var url;
        if (commenter_id) {
            url = 'http://bradchoate.com/mt/feedback/comments?__mode=edit_profile&commenter=' + commenter_id + '&blog_id=' + blog_id;
            if (entry_id) {
                url += '&entry_id=' + entry_id;
            } else {
                url += '&static=1';
            }
        } else if (commenter_url) {
            url = commenter_url;
        } else {
            url = null;
        }
        var content = 'Thanks for signing in, ';
        if (url) {
            content += '<a href="' + url + '">' + commenter_name + '</a>';
        } else {
            content += commenter_name;
        }
        content += '. Now you can comment. (<a href="http://bradchoate.com/mt/feedback/comments?__mode=handle_sign_in&amp;static=1&amp;logout=1&entry_id=' + entry_id + '">sign out</a>)';
        document.write(content);
    } else if (commenter_name) {
            document.write('You do not have permission to comment on this blog. (<a href="http://bradchoate.com/mt/feedback/comments?__mode=handle_sign_in&amp;static=1&amp;logout=1&entry_id=' + entry_id + '">sign out</a>)');
    } else {

        document.write('<a href="http://bradchoate.com/mt/feedback/comments?__mode=login&entry_id=' + entry_id + '&blog_id=' + blog_id + '&static=1">Sign in' + '</a>' + ' to comment on this entry, or <a href="javascript:void(0);" onclick="showAnonymousForm();">comment anonymously.</a> You can sign in using a <a href="http://www.vox.com/">Vox</a>, <a href="http://www.livejournal.com/">LiveJournal</a>, <a href="http://www.typekey.com/">TypeKey</a>, or accepted <a href="http://www.openid.org/">OpenID</a> identity!');

    }

}


if ('bradchoate.com' != 'bradchoate.com') {
    document.write('<script src="http://bradchoate.com/mt/feedback/comments?__mode=cmtr_name_js"></script>');
} else {
    commenter_name = getCookie('commenter_name');
    ids = getCookie('commenter_id').split(':');
    commenter_id = ids[0];
    commenter_blog_ids = ids[1];
    commenter_url = getCookie('commenter_url');
}


function nav(sel) {
    if (sel.selectedIndex == -1) return;
    var opt = sel.options[sel.selectedIndex];
    if (opt && opt.value) {
        location.href = opt.value;
    }
}

function doStraightSearch(str) {
    TC.Client.call({
       'loaded': showResult,
       'method': 'POST',
       'uri': '/mt/search',
       'arguments': { 'search': str, 'Template': 'ajax', 'blog_id': '4' }
    });
    return false;
}

function doTagSearch(str) {
    TC.Client.call({
       'load': showResult,
       'method': 'POST',
       'uri': '/mt/search',
       'arguments': { 'tag': str, 'Template': 'ajax', 'blog_id': '4' }
    });
    return false;
}

function showResult(c, results) {
    var el = TC.elementOrId("alpha-inner");
    if (el && (results != null)) el.innerHTML = results;
}
