/* ------------------------------------
	SCRIPTS COURTESY OF 
  SIMON WILLISON & JEREMY KEITH
  http://simon.incution.com
	http://www.adactio.com
-------------------------------------*/
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}

/*------- END GENERIC SCRIPTS ------------- */


/*-------------------------------------
	LIVE PREVIEW MECHANISM
-------------------------------------*/
function attachKeyup(){
	if(!document.getElementById){return;}
	
	if(document.getElementById("comment-text")){
		var commentauthor = document.getElementById("comment-author");
		var commenturl = document.getElementById("comment-url");
		var commentarea = document.getElementById("comment-text");
		
		commentauthor.onkeyup = commenturl.onkeyup = commentarea.onkeyup = function(){
			commentPreview();
		}
	}
}

function createLivePreview(){
	//add live preview div
	var livepreview = document.createElement("div");
	//livepreview.setAttribute("id", "comment_preview");
	livepreview.id = "comment_preview"; //stupid IE
	
	//add live preview heading
	var livepreview_h3 = document.createElement("h3");
	var livepreview_h3_text = document.createTextNode("Comment Preview");
	livepreview_h3.appendChild(livepreview_h3_text);
	livepreview.appendChild(livepreview_h3);
	
	//add live preview paragraph that populates on key up
	var livepreview_p = document.createElement("div");
	livepreview_p.setAttribute("id", "live_preview");
	livepreview_p.id = "live_preview"; //stupid IE
	livepreview.appendChild(livepreview_p);
	
	//change the style of the input forms when live preview is enabled
	if(document.getElementById("inputs")){
		var inputs = document.getElementById("inputs");
		//inputs.setAttribute("class", "preview_enabled");
		inputs.className = "preview_enabled";
		
		//add the whole live preview div to the page
		insertAfter(livepreview, inputs);
	}
	
	attachKeyup();
	commentPreview(); //initial run
}

function commentPreview(){
  if(!document.getElementById){return;}
  
  //collecting inputs and textarea references
  if(document.getElementById('comment-text')){
    var comment_text = document.getElementById('comment-text');


  }else{
    return;
  }
  
  if(document.getElementById('live_preview')){
    var preview = document.getElementById('live_preview');
  }
  
  if(document.getElementById('comment-author')){
    var author = document.getElementById('comment-author');
  }
  
  if(document.getElementById('comment-url')){
    var url = document.getElementById('comment-url');
  }
  
  //previewing mechanism
  if(comment_text.value == null && author.value == "" && url.value == ""){
    preview.innerHTML = '<p>You&rsquo;re saying&hellip;</p>';
  }else{
    if(author.value == ""){
      preview.innerHTML = '<p>' + htmlEncode(comment_text.value).replace(/(\n|\r)/g,'<br />').replace(/(<br \/>){2,}/gi,'<'+'/p><p>');
    }else{
      if(url.value == ""){
        preview.innerHTML = '<p>' + htmlEncode(comment_text.value).replace(/(\n|\r)/g,'<br />').replace(/(<br \/>){2,}/gi,'<'+'/p><p>') + '</p><p class="author_info">by ' + htmlEncode(author.value) + '</p>';
      }else{
        if(url.value.indexOf("http://" == -1)){
          preview.innerHTML = '<p>' + htmlEncode(comment_text.value).replace(/(\n|\r)/g,'<br />').replace(/(<br \/>){2,}/gi,'<'+'/p><p>') + '</p><p class="author_info">by <a href="http://' + url.value + '" title="' + author.value + '">' + htmlEncode(author.value) + '</p>';
        }else{
          preview.innerHTML = '<p>' + htmlEncode(comment_text.value).replace(/(\n|\r)/g,'<br />').replace(/(<br \/>){2,}/gi,'<'+'/p><p>') + '</p><p class="author_info">by <a href="' + url.value + '" title="' + author.value + '">' + htmlEncode(author.value) + '</p>';
        }
        
      }
    }
  }
  
}

addLoadEvent(createLivePreview);

/*-------------------------------------
	HIDING/SHOWING "FORWARD TO A FRIEND"
-------------------------------------*/
function initialHideFTAF(){
  if(!document.getElementById){return;}
  
  if(document.getElementById('ftaf-inputs')){
    var ftaf = document.getElementById('ftaf-inputs');
  }else{
    return;
  }
  
  if(document.getElementById('new_comment')){
    var new_comment = document.getElementById('new_comment');
  }
  
  if(document.getElementById('inputs')){
    var inputs = document.getElementById('inputs');
  }
  
  ftaf.style.display = "none";
  
  //make the h2 a link
  if(document.getElementById('ftaf_h2_original')){
    var ftaf_h2_original = document.getElementById('ftaf_h2_original');
  }
  
  var new_h2 = document.createElement('h2');
  new_h2.id = "ftaf_h2";

  new_h2.style.fontSize = "14px";
  
  var h2_link = document.createElement('a');
  h2_link.setAttribute('href', '#ftaf_h2_original');
  h2_link.href = "#ftaf_h2_original";
  h2_link.onclick = function(){
    toggleFTAF();
    this.style.display = "none";
    ftaf_h2.style.display = "block";
    return false;
  }
  
  var h2_linkText = document.createTextNode('Forward this entry to a friend');
  h2_link.appendChild(h2_linkText);
  new_h2.appendChild(h2_link);
  
  new_comment.appendChild(new_h2); // THIS WORKS
  //inputs.insertAfter(new_h2, new_comment);
  ftaf_h2_original.style.display = "none";
  //new_comment.replaceChild(new_h2, ftaf_h2);
  //new_comment.insertBefore(new_h2, ftaf_h2);
}

function toggleFTAF(){
  if(!document.getElementById){return;}
  
  if(document.getElementById('ftaf-inputs')){
    var ftaf = document.getElementById('ftaf-inputs');
  }
  
  if(document.getElementById('ftaf_h2_original')){
    var ftaf_h2_original = document.getElementById('ftaf_h2_original');
  }
  
  ftaf.style.display = 'block';
  ftaf_h2_original.style.display = 'block';
}

//addLoadEvent(initialHideFTAF);

function checkToOpenFTAF(){
  if(!document.getElementById){return;}
  if(!document.getElementsByTagName){return;}
  
  if(window.location.toString().indexOf("#ftaf_h2") == -1){
    initialHideFTAF();
  }
  
  if(document.getElementsByTagName('li')){
    var lists = document.getElementsByTagName('li');
  }
  
  for(var i = 0; i < lists.length; i++){
    if(lists[i].className == "entry_email"){
      lists[i].getElementsByTagName('A').item(0).onclick = function(){
        if(this.href.toString().length <= 17){
          this.href = "#ftaf_h2";
        }        
        document.getElementById('ftaf_h2').style.display = "none";
        document.getElementById('ftaf_h2_original').style.display = "block";
        document.getElementById('ftaf-inputs').style.display = "block";
        this.href = "#ftaf_h2_original";
        return true;
      }
    }
  }
  
}

function checksearch(f) {
	v = f.searchbox.value;
	if (v!='') return true;
	alert('Please enter search term');
	f.searchbox.focus();
	return false;
}

function htmlEncode(string)
{
	return string.replace(/&(?!\w+([=;\s]|$))/g, "&amp;")
	.replace(/</g, "&lt;").replace(/>/g, "&gt;");
}

addLoadEvent(checkToOpenFTAF);
