function _getBase() {
    var all_global_divs = document.getElementsByTagName("div");
    for (j=0;j<all_global_divs.length;j++) 
        if (all_global_divs[j].className=="post")
            return all_global_divs[j];
}
function createTOC() {
	var tocc = $("toc");
	
	var base = _getBase();
	var divs = base.getElementsByTagName("div");
	for (var i=0;i<divs.length;i++) {
	  var h3s = divs[i].getElementsByTagName("h3");
	  if (h3s.length>0) {
		if (i>=1) {

		alink = document.createElement("a");
		alink.setAttribute("href","#top");
		alink.setAttribute("class","top");
		alink.appendChild(document.createTextNode("top"));
		if (h3s.length>0)
       	    divs[i].insertBefore(alink, h3s[0]);
		}
	
		newli = document.createElement("li");
		newa = document.createElement("a");
		newa.setAttribute("href", "#"+divs[i].id);
		newa.appendChild(document.createTextNode(h3s[0].innerHTML));
		newli.appendChild(newa);
		tocc.appendChild(newli);
		
	  }
	}
}
function _translateVote(n) {
    switch(n) {
    case -2: return "not at all important"; break
    case -1: return "not important"; break
    case 0: return "indifferent"; break
    case 1: return "important"; break
    case 2: return "very important"; break
    case 3: return "couldn't live without"; break
    default:
      return ""+n;
    }
}
function castVote(fid, v) {
  var d="redirect_after=0&featureid="+fid+"&vote="+v;
  var ajax =new sack("castVote");
  ajax.encodeURIString=false;
  ajax.onLoading =function(){
     var vl=$('votelinks-'+fid);
     vl.innerHTML='casting your vote...';
  };
  ajax.onInteractive =ajax.onLoading;   
  ajax.onCompletion =function(){
     _setPreviousVote(fid);
     var vl=$('votelinks-'+fid);

     vl.setAttribute('style','font-style:italic');
	 vl.innerHTML='Thank you for your vote';
  };
  ajax.runAJAX(d);
  if (ajax.failed) return true;  
  return false;
}

function _setPreviousVote(fid) {
  var features_voted_on = window['features_voted_on'];
  var lastvisit=GetCookie("itpfeaturesvotedon");
  if (lastvisit==null)
    lastvisit="";
  var parts = lastvisit.split('|');
  for (var i=0, len=parts.length; i<len; i++) {
     if (parts[i])
        features_voted_on.push(parts[i]);
  }
  if (!inArray(features_voted_on, fid))
     features_voted_on.push(fid);
  window['features_voted_on'] = features_voted_on;
  var days=60;
  var exp=new Date();
  exp.setTime(exp.getTime()+(days*24*60*60*1000));
  SetCookie("itpfeaturesvotedon", features_voted_on.join('|'), exp, '/');
}
function _getPreviousVotes() {
  var features_voted_on = new Array();
  var lastvisit=GetCookie("itpfeaturesvotedon");
  if (lastvisit==null)
    lastvisit="";
  
  var parts = lastvisit.split('|');
  for (var i=0, len=parts.length; i<len; i++) {
     if (parts[i])
        features_voted_on.push(parts[i]);
  }
  window['features_voted_on'] = features_voted_on;
  
  return features_voted_on;
  
}
function inArray(arr, item) {
   for(e in arr)
     if (arr[e]==item)
       return true;
   return false;
}
function createVoteLinks() {
    var pushes = new Array();
    var prev_votes=_getPreviousVotes();
    var base = _getBase();
    var all_divs = base.getElementsByTagName("div");
    for (var i=0, len=all_divs.length; i < len; i++) {
        
        var newdiv = document.createElement('div');
        newdiv.setAttribute('class','votelinks');
        newdiv.setAttribute('id','votelinks-'+all_divs[i].getAttribute('id'));
        if (inArray(prev_votes, all_divs[i].getAttribute('id'))) {
          newdiv.appendChild(document.createTextNode(""));

        } else{
            newdiv.setAttribute('onmouseover', "this.className='votelinksbig'");
            newdiv.setAttribute('onmouseout', "this.className='votelinks'");    
            newdiv.appendChild(document.createTextNode("This is to me... "));
            for (var j=-1; j<3; j++) {
                var newa = document.createElement('a');
                newa.setAttribute('href','vote.html?featureid='+all_divs[i].getAttribute('id')+'&vote='+j);
				//newa.setAttribute('href','#');
                newa.setAttribute('onclick','return castVote(\''+all_divs[i].getAttribute('id')+'\','+j+')');
                newa.appendChild(document.createTextNode(_translateVote(j)));
                newdiv.appendChild(newa);
                if (j<2)
                    newdiv.appendChild(document.createTextNode(", "));
            }
        }
		pushes[all_divs[i].getAttribute('id')] = newdiv;
    }
	for(divid in pushes) {
	    $(divid).appendChild(pushes[divid]);
	}
  
}
addEvent(window, 'load', createVoteLinks);
addEvent(window, 'load', createTOC);
