// JavaScript Document
var http = getHTTPObject();		// Make the HTTP Object
var lim=350;

function CloseAddComments(CCID) {
	   document.getElementById(CCID).style.display = 'none';
}

function LoadFeaturedTool(TOOL_URL) {
        objLoadTool = document.getElementById("inner-container");
        objLoadTool.innerHTML = '<img src="img/loading.gif" align="absmiddle"> Loading Tool...';
        objLoadTool.innerHTML = '<iframe name="CODE_GENERATOR" src="' + TOOL_URL +'" frameborder="0" width="100%" height="800"></iframe>';        
}

function LoadCodeDump(DUMP_URL) {
        objLoadTool = document.getElementById("resource");
        objLoadTool.innerHTML = '<img src="img/loading.gif" align="absmiddle"> Loading Code Dump...';
        objLoadTool.innerHTML = '<iframe name="CODE_DUMP" src="' + DUMP_URL +'" frameborder="0" width="100%" height="800"></iframe>';
}


function LoadTool(TOOL_URL) {
        objLoadTool = document.getElementById("resource");
        objLoadTool.innerHTML = '<img src="img/loading.gif" align="absmiddle"> Loading Tool...';
        objLoadTool.innerHTML = '<iframe name="CODE_GENERATOR" src="' + TOOL_URL +'" frameborder="0" width="100%" height="800"></iframe>';
}

function count(a){
        var dif = lim-a.value.length;
        while(dif<0){
                a.value=a.value.replace(/.$/,'')
                dif = lim-a.value.length;
        }
        document.getElementById('myspan').firstChild.data=dif;
}

function LoadRSSFeed() {
	var url = "index.pl?cmd=GEN_RSS";
	http.open("GET", url, true);
	http.onreadystatechange = handleHTTPResponse;
	http.send(null);            
}


function DateSearchBlog() {
        var poststr = "cmd=" + encodeURI("SL") + 
        "&blog_month=" + encodeURI( document.getElementById("blog_month").value ) +
        "&blog_year=" + encodeURI( document.getElementById("blog_year").value ) +
        "&ID=" + encodeURI("1") +
        "&page=" + encodeURI("0");
        
        var url = "index.pl";
        http.open('POST', url, true);
        http.onreadystatechange = handleHTTPResponse;
        http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        http.send(poststr);
}

function SearchBlog(theForm) {
	var error = '';
	if (theForm.search_blog.value == '') {
		error += "Please enter a search term.\n";
	}	
	
	if (error != '') {
		alert (error);
		return false;
	}
	else {
		var poststr = "cmd=" + encodeURI("SL") + 
		"&search_blog=" + encodeURI( document.getElementById("search_blog").value ) +
                "&ID=" + encodeURI("1") +
                "&page=" + encodeURI("0");
		
		var url = "index.pl";
		http.open('POST', url, true);
		http.onreadystatechange = handleHTTPResponse;
		http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		http.send(poststr);
	}        
        
}


function HideComments(POST_ID, CCID) {
        div = document.getElementById(CCID);
        div.innerHTML = "";
        div = "hide_comments_" + POST_ID;
        hideObj = document.getElementById(div);
        hideObj.className = "hide-comments";
}

function SaveComment(theForm) {
	var error = '';
	if (theForm.comment_author.value == '') {
		error += "Your name is required.\n";
	}	
	
	if (theForm.comment_content.value == '') {
		error += "Comments are required.\n";
	}
	
	if (error != '') {
		alert (error);
		return false;
	}
	else {
		var poststr = "cmd=" + encodeURI("SAVE_COMMENT") + 
		"&comment_author=" + encodeURI( document.getElementById("comment_author").value ) +
		"&comment_author_email=" + encodeURI( document.getElementById("comment_author_email").value ) +
		"&comment_author_url=" + encodeURI( document.getElementById("comment_author_url").value ) +
		"&comment_content=" + encodeURI( document.getElementById("comment_content").value ) +
		"&POST_ID=" + encodeURI( document.getElementById("POST_ID").value ) +
                "&CCID=" + encodeURI( document.getElementById("CCID").value );
		
		var url = "index.pl";
		http.open('POST', url, true);
		http.onreadystatechange = handleBlogComments;
		http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		http.send(poststr);
	}        
        
}

function AddComment(POST_ID, CCID) {
	   document.getElementById(CCID).style.display = '';
	 var url = "index.pl?cmd=ADD_COMMENT&POST_ID=" + POST_ID + "&CCID=" + CCID;
	http.open("GET", url, true);
	http.onreadystatechange = handleBlogComments;
	http.send(null);                  
}

function LoadComments(POST_ID, CCID) {
        div = "hide_comments_" + POST_ID;
        hideObj = document.getElementById(div);       
        hideObj.className = "showhidecomments";
        
        obj = document.getElementById(CCID);
        obj.innerHTML = '<img src="img/loading.gif">';         
        
	 var url = "index.pl?cmd=LOAD_COMMENTS&POST_ID=" + POST_ID + "&CCID=" + CCID;
	http.open("GET", url, true);
	http.onreadystatechange = handleBlogComments;
	http.send(null);        
}

function handleBlogComments() {
	  if (http.readyState == 4) {
			  var results = http.responseText;
                          content = results.split("|");
                          container = content[1];
			  var e = document.getElementById(container);
			  e.innerHTML = content[0];
	  }
}


function LoadBlog(ID, page, search) {
	if (search != undefined) {
		var url = "index.pl?cmd=SL&ID=1&page=" + page + "&search=" + search;
	}
	else {
		var url = "index.pl?cmd=SL&ID=1&page=" + page;
	}
	http.open("GET", url, true);
	http.onreadystatechange = handleHTTPResponse;
	http.send(null);
}


function CatJump() {
          CAT_ID = document.getElementById('CAT_JUMP').value;
          if (CAT_ID == undefined) {
                    CAT_ID=0;
          }
	  var url = "index.pl?cmd=SL&ID=1&type=cat&CAT_ID=" + CAT_ID;
          http.open("GET", url, true);
          http.onreadystatechange = handleHTTPResponse;
          http.send(null);           
}


function LoadPostByCat(POST_CAT) {
	 var url = "index.pl?cmd=SL&ID=1&type=cat&CAT_ID=" + POST_CAT;
	http.open("GET", url, true);
	http.onreadystatechange = handleHTTPResponse;
	http.send(null);
}

function SiteSearch() {
	var poststr = "cmd=" + encodeURI("RC") + 
	"&search=" + encodeURI( document.getElementById("search-field").value );
	if (document.getElementById('search-field').value == '') {
                alert ("Enter something first");
                return false;
        }
	var url = "index.pl";
	http.open('POST', url, true);
	http.onreadystatechange = handleHTTPResponse;
	http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	http.send(poststr);	
	
}

function SearchByTag(TAG) {
	var url = "index.pl?cmd=" + encodeURI("BYTAG") + 	"&tag=" + encodeURI( TAG ) + "&type=tag";
	http.open('GET', url, true);
	http.onreadystatechange = handleHTTPResponse;
	http.send(null);	
	
}

function linksubmit(theForm) {
	var error = '';
	if (theForm.site_name.value == '') {
		error += "Site Name is required.\n";
	}	
	
	if (theForm.url.value == '') {
		error += "Site URL is required.\n";
	}	
	
	if (theForm.cat.value == '' && theForm.other_cat.value == '') {
			error+= "A category is required.\n";
	}
	
	if (theForm.site_desc.value == '') {
		error += "Site description required.\n";
	}
	
	if (error != '') {
		alert (error);
		return false;
	}
	else {
		var poststr = "cmd=" + encodeURI("LINK_SUBMIT") + 
		"&site_name=" + encodeURI( document.getElementById("site_name").value ) +
		"&url=" + encodeURI( document.getElementById("url").value ) +
		"&other_cat=" + encodeURI( document.getElementById("other_cat").value ) +
		"&site_desc=" + encodeURI( document.getElementById("site_desc").value ) +
		"&cat=" + encodeURI( document.getElementById("cat").value ) ;
		
		var url = "index.pl";
		http.open('POST', url, true);
		http.onreadystatechange = handleHTTPResponse;
		http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		http.send(poststr);
	}
	
	

	
 }



function LoadHome() {
	 var url = "index.pl?cmd=home";
	http.open("GET", url, true);
	http.onreadystatechange = handleHTTPResponse;
	http.send(null);		
}

function contact(theForm) {
	var error = '';
	if (theForm.realname.value == '') {
		error += "Name is required.\n";
	}	
	
	if (theForm.email.value == '') {
		error += "Email is required.\n";
	}	
	else {
		var email_addy=theForm.email.value.toLowerCase();
		var pattern=/^[-\._a-z0-9]+@((([a-z0-9]|[a-z0-9][a-z0-9-]*[a-z0-9])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/;
		if(!pattern.test(email_addy)) {
			theForm.email.value = "";
			theForm.email.focus();
			error += "Please enter a valid e-mail address!";
		}			
		
		
	}
	
	if (theForm.comments.value == '') {
			error+= "Comments are required.\n";
	}
	
	if (error != '') {
		alert (error);
		return false;
	}
	else {
		var poststr = "cmd=" + encodeURI("SEND_CONTACT") + 
		"&realname=" + encodeURI( document.getElementById("realname").value ) +
		"&email=" + encodeURI( document.getElementById("email").value ) +
		"&comments=" + encodeURI( document.getElementById("comments").value ) ;
		
		var url = "index.pl";
		http.open('POST', url, true);
		http.onreadystatechange = handleHTTPResponse;
		http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		http.send(poststr);
	}
	
	

	
 }
 
function LoadCodeDumpListing(CODE_ID) {
        obj = document.getElementById('inner-container');
        obj.innerHTML = '<img src="img/loading.gif">';         
	 var url = "index.pl?cmd=LoadCodeDump&CODE_ID=" + CODE_ID;
	http.open("GET", url, true);
	http.onreadystatechange = handleHTTPResponse;
	http.send(null);		 
 }
 
 function LoadToolListing(ID) {
        obj = document.getElementById('inner-container');
        obj.innerHTML = '<img src="img/loading.gif">';         
	 var url = "index.pl?cmd=LoadTools&ID=" + ID;
	http.open("GET", url, true);
	http.onreadystatechange = handleHTTPResponse;
	http.send(null);		 
 }

function LoadResource(ID, page, search) {
        obj = document.getElementById('inner-container');
        obj.innerHTML = '<img src="img/loading.gif">';
        
	if (search != undefined) {
		var url = "index.pl?cmd=RC&ID=" + ID + "&page=" + page + "&search=" + search;
	}
	else {
		var url = "index.pl?cmd=RC&ID=" + ID + "&page=" + page;
	}
	http.open("GET", url, true);
	http.onreadystatechange = handleHTTPResponse;
	http.send(null);
}

function LoadSiteLink(ID) {
        obj = document.getElementById('inner-container');
        obj.innerHTML = '<img src="img/loading.gif">';        
	 var url = "index.pl?cmd=SL&ID=" + ID;
	http.open("GET", url, true);
	http.onreadystatechange = handleHTTPResponse;
	http.send(null);
}



function toggleMenu(id){
	var div=document.getElementById(id);
	if(div.className=='slide-show') {
		div.className='slide-hide';
	}
	else {
		div.className='slide-show';
	}
	return(false);
}

function mnuTog(id) {
	return(toggleMenu(id));
}


function ExpandSections() {
	
	var sec1 = document.getElementById('mnuTog0');
	var sec2 = document.getElementById('mnuTog1');
	var sec3 = document.getElementById('mnuTog2');
	var sec4 = document.getElementById('mnuTog3');
	Effect.toggle(sec1,'slide');
	Effect.toggle(sec2,'slide');
	Effect.toggle(sec3,'slide');
	Effect.toggle(sec4,'slide');
	
	if (sec1.style.display != 'none' && sec2.style.display != 'none' && sec3.style.display != 'none' && sec4.style.display != 'none') {
		MM_swapImage('expand-img','','img/expand-all.gif',2)
		var LBL = document.getElementById('ExpandLBL');
		LBL.innerHTML="Expand Sections";		
	}
	else {
		// Show all sections and swap the expand graphic
		MM_swapImage('expand-img','','img/expanded.gif',2)
		var LBL = document.getElementById('ExpandLBL');
		LBL.innerHTML="Close Sections";
	}
	
	
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function showPrivacy(e) {
	var obj = document.getElementById('privacy-blurb');
	
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) {
			posx = e.pageX;
			posy = e.pageY;
	}
	else if (e.clientX || e.clientY) {
		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;
	}	

	obj.style.visibility = "visible";
	

 	var url = "index.pl?cmd=getPrivacy";
	http.open("GET", url, true);
	http.onreadystatechange = handlePrivacyDiv;
	http.send(null);

    

}

function hidePrivacy() {
	var obj = document.getElementById('privacy-blurb');
	obj.style.visibility = "hidden";
}

function handlePrivacyDiv() {
	  if (http.readyState == 4) {
			  var results = http.responseText;
			  var e = document.getElementById('privacy-blurb');
			  e.innerHTML = results;
	  }
}

function handleHTTPResponse() {
	  if (http.readyState == 4) {
			  var results = http.responseText;
			  var e = document.getElementById('inner-container');
			  e.innerHTML = results;
	  }
}

function hideSearchLBL() {
	var obj = document.getElementById("search-field");
     obj.value = "";
}
function hideSearchBlogLBL() {
	var obj = document.getElementById("search_blog");
     obj.value = "";
}



function makeCorners()  {
      /*
      The new 'validTags' setting is optional and allows
      you to specify other HTML elements that curvyCorners
      can attempt to round.

      The value is comma separated list of html elements
      in lowercase.

      validTags: ["div", "form"]

      The above example would enable curvyCorners on FORM elements.
      */
      settings = {
          tl: { radius: 1 },
          tr: { radius: 3 },
          bl: { radius: 10 },
          br: { radius: 10 },
          antiAlias: true,
          autoPad: true,
          validTags: ["div"]
      }

      /*
      Usage:

      newCornersObj = new curvyCorners(settingsObj, classNameStr);
      newCornersObj = new curvyCorners(settingsObj, divObj1[, divObj2[, divObj3[, . . . [, divObjN]]]]);
      */
      var myBoxObject = new curvyCorners(settings, "rss-box");
      myBoxObject.applyCornersToAll();
}










//-----------------------------------------
// HTTP OBJECT
function getHTTPObject() {
	
	if (window.XMLHttpRequest) { 			//Mozilla, Opera, Safari
		http = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) { 		// IE
		try {
				http = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
				try {
						http = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {}
		}
	}
	
	if (!http) {
		document.write('Cannot Create an XMLHTTP instance');
		return false;
	}
	else {
		return http;
	}
	
}