/**********************************************************************/
/*FORMLIB.JS                                                          */
/*(C) 2009, JESSE JAMES HELFRICH                                      */
/*                                                                    */
/*This library controls the Ajax forms on JesseHelfrich.net.          */
/*If you are poking around in my javascript, it must mean you want    */
/*to know how something works or are looking for inspriation.         */
/*                                                                    */
/*Feel free to draw inspiration from this, but directly copying my    */
/*code without attributing it to me will be a clear violation of my   */
/*copyright and Terms of Use. For more information, use my contact    */
/*form at http://www.jessehelfrich.net/contact.php.                   */
/*                                                                    */
/*This is my first major javascript application and, as such, much    */
/*of my inpiration is drawn from the book "Learning Javascript" by    */
/*Shelley Powers. I recommend it for novice developers.               */
/*                                                                    */
/**********************************************************************/

function stripSpaces(str) {
    var cleanStr = str.replace(/^\W+/,'');str.replace(/\W+$/,'');
    return cleanStr;
}

function check(value) {
   var OK = stripSpaces(value);
   if(!OK) {
      return false;
   } else {
      return OK;
   }
}

function checkContact() {
   document.getElementById("form_message").innerHTML = "<span class='error'>Processing ... please wait.</span>";
   var name = check(document.contact.fname.value);
   var email = check(document.contact.fmail.value);
   var message = check(document.contact.message.value);
   var challenge = Recaptcha.get_challenge();
   var response = check(Recaptcha.get_response());
   if(name && email && message && response) {
      var url="formajax.php?do=contact&name=" + name + "&email=" + email + "&message=" + message + "&challenge=" + challenge + "&response=" + response;
      doSubmit(url);
   } else {
      document.getElementById("form_message").innerHTML = "<span class='error'>*All fields are required!</span>";
   }   
}

function doSubmit(url) {
   xmlhttp.open('GET',url,true);
   xmlhttp.onreadystatechange = submitResult;
   xmlhttp.send(null);
}

function submitResult() {
   if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      var response = xmlhttp.responseText;
      var re = /comss.*/;
      if(response == 'badRecaptcha') {
         document.getElementById("form_message").innerHTML = "<span class='error'>The reCAPTCHA wasn't entered correctly.</span>";
         Recaptcha.reload();
      } else if(response =='badEmail') {
         document.getElementById("form_message").innerHTML = "<span class='error'>The e-mail you entered is not valid.</span>";
         Recaptcha.reload();  
      } else if(response=='success') {
         document.getElementById("form_message").innerHTML = "<span class='message'>Your message has been sent!</span>";
	 document.getElementById("fbutton").innerHTML = "<input type='button' value='Success!' class='formbutton_grey'/>";
	 setTimeout("closeSup()",2000);
      } else if(re.test(response)) {
	 responseArr = response.split(",");
         document.getElementById("form_message").innerHTML = "<span class='message'>Your comment has been posted!</span>";
	 document.getElementById("fbutton").innerHTML = "<input type='button' value='Success!' class='formbutton_grey'/>";
         updateComs(responseArr[1]);
	 setTimeout("showComs(" + responseArr[1] + ")",1000);
      } else {
	 document.getElementById("form_message").innerHTML = response;
      }
   }
}

function checkWS() {
   document.getElementById("form_message").innerHTML = "<span class='error'>Processing ... please wait.</span>";
   var name = check(document.ws.fname.value);
   var message = check(document.ws.message.value);
   if(name && message) {
      var cleanMsg = message.replace(/\n/g,'<br />');
      var newImage = document.ws.newimage.value;
      var url = "formajax.php?do=writestuff&name=" + name + "&message=" + cleanMsg + "&imgpath=" + newImage;
      doSubmit(url);
   } else {
      document.getElementById("form_message").innerHTML = "<span class='error'>*You must enter a name and message!</span>";
   }   
}

function checkComments() {
   document.getElementById("form_message").innerHTML = "<span class='error'>Processing ... please wait.</span>";
   var name = check(document.addcomment.fname.value);
   var comment = check(document.addcomment.comment.value);
   var blogid = document.addcomment.blogid.value;
   var challenge = Recaptcha.get_challenge();
   var response = check(Recaptcha.get_response());
   if(name && comment && response) {
      var cleanMsg = comment.replace(/\n/g,'<br />');
      var url = "formajax.php?do=addcomment&blogid=" + blogid + "&name=" + name + "&comment=" + cleanMsg + "&challenge=" + challenge + "&response=" + response;
      doSubmit(url);
   } else {
      document.getElementById("form_message").innerHTML = "<span class='error'>*All fields are required!</span>";
   }   
}

function showAdd() {
   document.getElementById("addimg").style.display = "block";
}

function hideAdd() {
   document.getElementById("addimg").style.display = "none";
}

function dMessage(divName,txt) {
   document.getElementById(divName).innerHTML = "<img src='images/load_spin.gif' />&nbsp;&nbsp;" + txt;
}

function checkHm() {
   answer = check(document.hmanswer.answer.value);
   if(answer) {
      var url = "hm.php?show=a&answer=" + answer;
      xmlhttp.open('GET',url,true);
      xmlhttp.onreadystatechange = function() {
				      if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				         var response = xmlhttp.responseText;
				         if(response=="incorrect") {
					    document.getElementById("hmsg").innerHTML = "That is incorrect.";
				         } else {
					    window.location = response;
					 }
				      }
			            }
      xmlhttp.send(null);
   }
}


function updateComs(id) {
   var url = "blogajax.php?id=" + id;
   xmlhttp.open('GET',url,true);
   xmlhttp.onreadystatechange = function() {
				   if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				      document.getElementById("comtext").innerHTML = xmlhttp.responseText;
  				   }
			         }
   xmlhttp.send(null);
}
