/* CSS behaviour selectors */
var myrules = {
	'#top10' : function(element){
		element.onclick = function(){
			new Effect.BlindUp('tags');
			sndReq('top10');
			toggleTagNav('top10');
		}
	},
	'#cloud' : function(element){
		element.onclick = function(){
			new Effect.BlindUp('tags');
			sndReq('cloud');
			toggleTagNav('cloud');
		}
	},
	'#atoz' : function(element){
		element.onclick = function(){
			new Effect.BlindUp('tags');
			sndReq('atoz');
			toggleTagNav('atoz');
		}
	},
	'#logolink' : function(element){
		element.onclick = function(){
			document.location.href = '/index.php';
		}
	},
	'#hdr-recentposts' : function(element){
		element.onclick = function(){
			sidebarAccordion('recentposts');
		}
	},
	'#hdr-archivetags' : function(element){
		element.onclick = function(){
			sidebarAccordion('archivetags');
		}
	},
	'#hdr-archivemonths' : function(element){
		element.onclick = function(){
			sidebarAccordion('archivemonths');
		}
	},
	'#contactopen' : function(element){
		element.onclick = function(){
			sndReq('contactform');
/*			new Effect.PhaseIn('contactform');*/
		}
	}
}
Behaviour.register(myrules);
// Custom window onload event 
Behaviour.addLoadEvent(function() { 
	if(!NiftyCheck())
 		return;
	Rounded("div#postnav","all","#fff","#eee","smooth");
	Rounded("div#roundedadmin","bl br","#fff","#eee","smooth");
	Rounded("div#hdr-recentposts","tr","#fff","#eee","smooth");
	Rounded("div#hdr-archivetags","tr","#fff","#eee","smooth");
	Rounded("div#hdr-archivemonths","tr","#fff","#eee","smooth");
	// Big Button
	Rounded("div#buttonbox","top","#eee","#DD5142","smooth");
	Rounded("div#buttonboxborder","top","#fff","#eee","small");
	Rounded("div#buttonbox","bottom","#ccc","#DD5142","smooth");
	Rounded("div#buttonboxborder","bottom","#fff","#ccc","small");
	// Mini Button
	Rounded("div#minibuttonbox","top","#eee","#DD5142","smooth");
	Rounded("div#minibuttonboxborder","top","#fff","#eee","small");
	Rounded("div#minibuttonbox","bottom","#eee","#DD5142","smooth");
	Rounded("div#minibuttonboxborder","bottom","#fff","#eee","small");
});

/* Inline tags */
function sndReq(action) {
var tagURL = '/includes/rpc.php';
var pars = 'action=' + action;
var myAjax = new Ajax.Updater(
			'tags',tagURL, 
			{
				method: 'get', 
				parameters: pars,
				onFailure: reportError,
				onSuccess: showTags
			});
}

function reportError(request) {
	var msgerror = $("tags");
	msgerror.innerHTML = 'Oops! Something went wrong. Please reload the page.';
	new Effect.BlindDown('tags');
}
function showTags(request) {
	new Effect.BlindDown('tags');
}

/* toggle 'on' and 'off' classes */
function switchState(whichID) {
	if (document.getElementById) {
	  var e = document.getElementById(whichID);
	  if (e.className == 'on') {
	      e.className = 'off';
	  } else {
	      e.className = 'on';
	  }
	}
}

/* tag header switch */
function inlinePostTags(whichID) {
	new Effect.Phase('tag-' + whichID);
	var e = document.getElementById('taghdr-' + whichID);
	switchState('taghdr-' + whichID);
	if( typeof( e.innerHTML ) != 'undefined' ) {
		e.innerHTML = "<a href=javascript:void(0);><img class=sanscon src=/img-design/icon-tag.gif />Tags</a>";
	}
}

/* sidebar accordion */
function sidebarAccordion(whichID) {
	var section = new Array(3)
		section[0]="recentposts";
		section[1]="archivetags";
		section[2]="archivemonths";
	var e = document.getElementById(whichID);
	var eHdr = document.getElementById("hdr-"+whichID);
	var i=0;
	for (i=0; i<3; i++) {
		var e2 = document.getElementById(section[i]);
		if (e != e2 && e2.style.display != 'none') {
			new Effect.PhaseOut(e2);
			var e2Hdr = document.getElementById("hdr-"+section[i]);
			e2Hdr.className="active";
		}
	}
	if (e.style.display == 'none') {
		new Effect.PhaseIn(e);
		eHdr.className="inactive";
	}
}

/* toggle state for tag navigation */
function toggleTagNav(whichID) {
	var section = new Array(3)
		section[0]="top10";
		section[1]="cloud";
		section[2]="atoz";
	var e = document.getElementById(whichID);
	for (i=0; i<3; i++) {
		var e2 = document.getElementById(section[i]);
		if (e != e2) {
			e2.className="on";
		}
	}
	e.className="off";
}

/* Ago Javascript Library */
// By Nelson Minar <nelson@monkey.org>. License: public domain.
// http://www.nelson.monkey.org/~nelson/weblog/
function ago (ref, now) {
  if (typeof(now) == "undefined") {
    now = Math.floor(new Date().getTime() / 1000);
  }
  delta = now - ref;
  if (delta < 0) {
    return "in the future";
  } else if (delta == 0) {
    return "now";
  } else if (delta < 60) {
    return "in the last minute";
  } else if (delta < 120) {
    return "1 minute ago";
  } else if (delta < 3600) {
    minutes = Math.floor(delta / 60);
    return minutes + " minutes ago";
  } else if (delta < 7200) {
    return "1 hour ago";
  } else if (delta < 86400) {
    hour = Math.floor(delta / 3600);
    return hour + " hours ago";
  } else if (delta < 172800) {
    return "1 day ago";
  } else if (delta <  1209600) {
    day = Math.floor(delta / 86400);
    return day + " days ago";
  } else if (delta < 2592000) {
    week = Math.floor(delta / 604800);
    return week + " weeks ago";
  } else if (delta < 5184000) {
    return "1 month ago";
  } else if (delta < 31536000) {
    month = Math.floor(delta / 2592000);
    return month + " months ago";
  } else if (delta < 63072000) {
    return "1 year ago"
  } else {
    year = Math.floor(delta / 31536000);
    return year + " years ago";
  }
}

/* "Nifty Corners" */
function NiftyCheck(){
if(!document.getElementById || !document.createElement)
    return(false);
isXHTML=/html\:/.test(document.getElementsByTagName('body')[0].nodeName);
if(Array.prototype.push==null){Array.prototype.push=function(){
      this[this.length]=arguments[0]; return(this.length);}}
return(true);
}

function Rounded(selector,wich,bk,color,opt){
var i,prefixt,prefixb,cn="r",ecolor="",edges=false,eclass="",b=false,t=false;

if(color=="transparent"){
    cn=cn+"x";
    ecolor=bk;
    bk="transparent";
    }
else if(opt && opt.indexOf("border")>=0){
    var optar=opt.split(" ");
    for(i=0;i<optar.length;i++)
        if(optar[i].indexOf("#")>=0) ecolor=optar[i];
    if(ecolor=="") ecolor="#666";
    cn+="e";
    edges=true;
    }
else if(opt && opt.indexOf("smooth")>=0){
    cn+="a";
    ecolor=Mix(bk,color);
    }
if(opt && opt.indexOf("small")>=0) cn+="s";
prefixt=cn;
prefixb=cn;
if(wich.indexOf("all")>=0){t=true;b=true}
else if(wich.indexOf("top")>=0) t="true";
else if(wich.indexOf("tl")>=0){
    t="true";
    if(wich.indexOf("tr")<0) prefixt+="l";
    }
else if(wich.indexOf("tr")>=0){
    t="true";
    prefixt+="r";
    }
if(wich.indexOf("bottom")>=0) b=true;
else if(wich.indexOf("bl")>=0){
    b="true";
    if(wich.indexOf("br")<0) prefixb+="l";
    }
else if(wich.indexOf("br")>=0){
    b="true";
    prefixb+="r";
    }
var v=getElementsBySelector(selector);
var l=v.length;
for(i=0;i<l;i++){
    if(edges) AddBorder(v[i],ecolor);
    if(t) AddTop(v[i],bk,color,ecolor,prefixt);
    if(b) AddBottom(v[i],bk,color,ecolor,prefixb);
    }
}

function AddBorder(el,bc){
var i;
if(!el.passed){
    if(el.childNodes.length==1 && el.childNodes[0].nodeType==3){
        var t=el.firstChild.nodeValue;
        el.removeChild(el.lastChild);
        var d=CreateEl("span");
        d.style.display="block";
        d.appendChild(document.createTextNode(t));
        el.appendChild(d);
        }
    for(i=0;i<el.childNodes.length;i++){
        if(el.childNodes[i].nodeType==1){
            el.childNodes[i].style.borderLeft="1px solid "+bc;
            el.childNodes[i].style.borderRight="1px solid "+bc;
            }
        }
    }
el.passed=true;
}
    
function AddTop(el,bk,color,bc,cn){
var i,lim=4,d=CreateEl("b");

if(cn.indexOf("s")>=0) lim=2;
if(bc) d.className="artop";
else d.className="rtop";
d.style.backgroundColor=bk;
for(i=1;i<=lim;i++){
    var x=CreateEl("b");
    x.className=cn + i;
    x.style.backgroundColor=color;
    if(bc) x.style.borderColor=bc;
    d.appendChild(x);
    }
el.style.paddingTop=0;
el.insertBefore(d,el.firstChild);
}

function AddBottom(el,bk,color,bc,cn){
var i,lim=4,d=CreateEl("b");

if(cn.indexOf("s")>=0) lim=2;
if(bc) d.className="artop";
else d.className="rtop";
d.style.backgroundColor=bk;
for(i=lim;i>0;i--){
    var x=CreateEl("b");
    x.className=cn + i;
    x.style.backgroundColor=color;
    if(bc) x.style.borderColor=bc;
    d.appendChild(x);
    }
el.style.paddingBottom=0;
el.appendChild(d);
}

function CreateEl(x){
if(isXHTML) return(document.createElementNS('http://www.w3.org/1999/xhtml',x));
else return(document.createElement(x));
}

function getElementsBySelector(selector){
var i,selid="",selclass="",tag=selector,f,s=[],objlist=[];

if(selector.indexOf(" ")>0){  //descendant selector like "tag#id tag"
    s=selector.split(" ");
    var fs=s[0].split("#");
    if(fs.length==1) return(objlist);
    f=document.getElementById(fs[1]);
    if(f) return(f.getElementsByTagName(s[1]));
    return(objlist);
    }
if(selector.indexOf("#")>0){ //id selector like "tag#id"
    s=selector.split("#");
    tag=s[0];
    selid=s[1];
    }
if(selid!=""){
    f=document.getElementById(selid);
    if(f) objlist.push(f);
    return(objlist);
    }
if(selector.indexOf(".")>0){  //class selector like "tag.class"
    s=selector.split(".");
    tag=s[0];
    selclass=s[1];
    }
var v=document.getElementsByTagName(tag);  // tag selector like "tag"
if(selclass=="")
    return(v);
for(i=0;i<v.length;i++){
    if(v[i].className.indexOf(selclass)>=0){
        objlist.push(v[i]);
        }
    }
return(objlist);
}

function Mix(c1,c2){
var i,step1,step2,x,y,r=new Array(3);
if(c1.length==4)step1=1;
else step1=2;
if(c2.length==4) step2=1;
else step2=2;
for(i=0;i<3;i++){
    x=parseInt(c1.substr(1+step1*i,step1),16);
    if(step1==1) x=16*x+x;
    y=parseInt(c2.substr(1+step2*i,step2),16);
    if(step2==1) y=16*y+y;
    r[i]=Math.floor((x*50+y*50)/100);
    }
return("#"+r[0].toString(16)+r[1].toString(16)+r[2].toString(16));
}
