BlogEngine = {
$: function(id){
return document.getElementById(id);},
webRoot: '',
i18n: {
hasRated: '',
cancel: '',
filter: '',
apmlDescription: '',
beTheFirstToRate: '',
currentlyRated: '',
ratingHasBeenRegistered: '',
rateThisXStars: ''},
search: function(root){
var input = this.$("searchfield");
var check = this.$("searchcomments");
var search = "search.aspx?q="+encodeURIComponent(input.value);
if(check != null && check.checked)
search+= "&comment=true";
top.location.href = root+search;
return false;},
searchClear: function(defaultText){
var input = this.$("searchfield");
if(input.value == defaultText)
input.value = "";
else if(input.value == "")
input.value = defaultText;},
rate: function(id, rating){
this.createCallback("rating.axd?kId="+id+"&nRating="+rating,
BlogEngine.ratingCallback);},
ratingCallback: function(response){
var rating = response.substring(0, 1);
var status = response.substring(1);
if(status == "OK"){
if(typeof OnRating != "undefined")
OnRating(rating);
alert(BlogEngine.i18n.ratingHasBeenRegistered);}
else if(status == "HASRATED"){
alert(BlogEngine.i18n.hasRated);}
else{
alert("An error occured while registering your rating. Please try again");}},
createCallback: function(url, callback){
var http = BlogEngine.getHttpObject();
http.open("GET", url, true);
http.onreadystatechange = function(){
if(http.readyState == 4){
if(http.responseText.length > 0 && callback != null)
callback(http.responseText);}};
http.send(null);},
getHttpObject: function(){
if(typeof XMLHttpRequest != 'undefined')
return new XMLHttpRequest();
try{
return new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){
try{
return new ActiveXObject("Microsoft.XMLHTTP");}
catch(e) { }}
return false;},
updateCalendar: function(args, context){
var cal = BlogEngine.$('calendarContainer');
cal.innerHTML = args;
BlogEngine.Calendar.months[context] = args;},
toggleMonth: function(year){
var monthList = BlogEngine.$("monthList");
var years = monthList.getElementsByTagName("ul");
for(i = 0; i < years.length; i++){
if(years[i].id == year){
var state = years[i].className == "open" ? "" : "open";
years[i].className = state;
break;}}},
equal: function(first, second){
var f = first.toLowerCase().replace(new RegExp(' ', 'gi'), '');
var s = second.toLowerCase().replace(new RegExp(' ', 'gi'), '');
return f == s;},/*-----------------------------------------------------------------------------
XFN HIGHLIGHTER-----------------------------------------------------------------------------*/
xfnRelationships: ['friend', 'acquaintance', 'contact', 'met', 'co-worker', 'colleague', 'co-resident', 'neighbor', 'child', 'parent', 'sibling', 'spouse', 'kin', 'muse', 'crush', 'date', 'sweetheart', 'me'],
hightLightXfn: function(){
var content = BlogEngine.$('content');
if(content == null)
return;
var links = content.getElementsByTagName('a');
for(i = 0; i < links.length; i++){
var link = links[i];
var rel = link.getAttribute('rel');
if(rel && rel != "nofollow"){
for(j = 0; j < BlogEngine.xfnRelationships.length; j++){
if(rel.indexOf(BlogEngine.xfnRelationships[j]) >-1){
link.title = 'XFN relationship: '+rel;
break;}}}}},
showRating: function(container, id, raters, rating){
var div = document.createElement('div');
div.className = 'rating';
var p = document.createElement('p');
div.appendChild(p);
if(raters == 0){
p.innerHTML = BlogEngine.i18n.beTheFirstToRate;}
else{
p.innerHTML = BlogEngine.i18n.currentlyRated.replace('{0}', new Number(rating).toFixed(1)).replace('{1}', raters);}
var ul = document.createElement('ul');
ul.className = 'star-rating small-star';
div.appendChild(ul);
var li = document.createElement('li');
li.className = 'current-rating';
li.style.width = Math.round(rating * 20)+'%';
li.innerHTML = 'Currently '+rating+'/5 Stars.';
ul.appendChild(li);
for(var i = 1; i <= 5; i++){
var l = document.createElement('li');
var a = document.createElement('a');
a.innerHTML = i;
a.href = 'rate/'+i;
a.className = this.englishNumber(i);
a.title = BlogEngine.i18n.rateThisXStars.replace('{0}', i.toString()).replace('{1}', i == 1 ? '' : 's');
a.onclick = function(){
BlogEngine.rate(id, this.innerHTML);
return false;};
l.appendChild(a);
ul.appendChild(l);}
container.innerHTML = '';
container.appendChild(div);
container.style.visibility = 'visible';},
applyRatings: function(){
var divs = document.getElementsByTagName('div');
for(var i = 0; i < divs.length; i++){
if(divs[i].className == 'ratingcontainer'){
var args = divs[i].innerHTML.split('|');
BlogEngine.showRating(divs[i], args[0], args[1], args[2]);}}},
englishNumber: function(number){
if(number == 1)
return 'one-star';
if(number == 2)
return 'two-stars';
if(number == 3)
return 'three-stars';
if(number == 4)
return 'four-stars';
return 'five-stars';},
addLoadEvent: function(func){
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.onload = func;}
else{
window.onload = function(){
oldonload();
func();}}},
filterByAPML: function(){
var width = document.documentElement.clientWidth+document.documentElement.scrollLeft;
var height = document.documentElement.clientHeight+document.documentElement.scrollTop;
document.body.style.position = 'static';
var layer = document.createElement('div');
layer.style.zIndex = 2;
layer.id = 'layer';
layer.style.position = 'absolute';
layer.style.top = '0px';
layer.style.left = '0px';
layer.style.height = document.documentElement.scrollHeight+'px';
layer.style.width = width+'px';
layer.style.backgroundColor = 'black';
layer.style.opacity = '.6';
layer.style.filter+= ("progid:DXImageTransform.Microsoft.Alpha(opacity=60)");
document.body.appendChild(layer);
var div = document.createElement('div');
div.style.zIndex = 3;
div.id = 'apmlfilter';
div.style.position = (navigator.userAgent.indexOf('MSIE 6') >-1) ? 'absolute' : 'fixed';
div.style.top = '200px';
div.style.left = (width / 2)-(400 / 2)+'px';
div.style.height = '50px';
div.style.width = '400px';
div.style.backgroundColor = 'white';
div.style.border = '2px solid silver';
div.style.padding = '20px';
document.body.appendChild(div);
var p = document.createElement('p');
p.innerHTML = BlogEngine.i18n.apmlDescription;
p.style.margin = '0px';
div.appendChild(p);
var form = document.createElement('form');
form.method = 'get';
form.style.display = 'inline';
form.action = BlogEngine.webRoot;
div.appendChild(form);
var textbox = document.createElement('input');
textbox.type = 'text';
textbox.value = BlogEngine.getCookieValue('url') || 'http://';
textbox.style.width = '320px';
textbox.id = 'txtapml';
textbox.name = 'apml';
textbox.style.background = 'url('+BlogEngine.webRoot+'pics/apml.png) no-repeat 2px center';
textbox.style.paddingLeft = '16px';
form.appendChild(textbox);
textbox.focus();
var button = document.createElement('input');
button.type = 'submit';
button.value = BlogEngine.i18n.filter;
button.onclick = function() { location.href = BlogEngine.webRoot+'?apml='+encodeURIComponent(BlogEngine.$('txtapml').value) };
form.appendChild(button);
var br = document.createElement('br');
div.appendChild(br);
var a = document.createElement('a');
a.innerHTML = BlogEngine.i18n.cancel;
a.href = 'javascript:void(0)';
a.onclick = function() { document.body.removeChild(BlogEngine.$('layer')); document.body.removeChild(BlogEngine.$('apmlfilter')); document.body.style.position = ''; };
div.appendChild(a);},
getCookieValue: function(name){
var cookie = new String(document.cookie);
if(cookie != null && cookie.indexOf('comment=') >-1){
var start = cookie.indexOf(name+'=')+name.length+1;
var end = cookie.indexOf('&', start);
if(end > start && start >-1)
return cookie.substring(start, end);}
return null;},
comments: {
contentBox: null,
moderation: null,
checkName: null,
postAuthor: null,
nameBox: null,
emailBox: null,
websiteBox: null,
captchaField: null,
controlId: null,
replyToId: null}};
BlogEngine.addLoadEvent(BlogEngine.hightLightXfn);
if (typeof ($) == 'undefined')
window.$ = BlogEngine.$;
if (typeof (registerCommentBox) != 'undefined')
BlogEngine.addLoadEvent(registerCommentBox);
if (typeof (registerVariables) != 'undefined')
BlogEngine.addLoadEvent(registerVariables);
if (typeof (setupBlogEngineCalendar) != 'undefined')
BlogEngine.addLoadEvent(setupBlogEngineCalendar);
BlogEngine.addLoadEvent(BlogEngine.applyRatings);
