// JavaScript Document

function rollon(aArticle){
	el = document.getElementById(aArticle);
	btn = document.getElementById(aArticle+'_btn');
	if(el.style.display=="none"){
		btn.style.backgroundColor = '#008fb8';
	}
}
function rolloff(aArticle){
	el = document.getElementById(aArticle);
	btn = document.getElementById(aArticle+'_btn');
	if(el.style.display=="none"){
		btn.style.backgroundColor = '#67a9c1';
	}
}

function togglenewsbtn(aArticle){
	el = document.getElementById(aArticle);
	btn = document.getElementById(aArticle+'_btn');
	if(el.style.display=="block"){
		el.style.display="none";
		btn.style.backgroundColor = '#67a9c1';
	}else if(el.style.display=="none"){
		el.style.display="block";
		btn.style.backgroundColor = '#008fb8';
		if(el.innerHTML==""){
			sendRequest(aArticle,"","getarticle.php","&article="+aArticle.substr(5, aArticle.length)+"&ms="+new Date().getTime());
		}
	}
}

function closeallf(aArticle){
	el = document.getElementById(aArticle);
	btn = document.getElementById(aArticle+'_btn');
	if(el.style.display=="block"){
		el.style.display="none";
		btn.style.backgroundColor = '#67a9c1';
	}
}

function closeall(){
	var alldivs=document.getElementsByTagName("a")
	for (i=0; i<alldivs.length; i++){
		//alldivs[i].substring(11,18);
		var docobj = alldivs[i].id;
		if(docobj.substr(0,5)=="rnews"){
			closeallf(docobj.substr(0,docobj.length-4));
		}
	}
}

//================================================================================================================
//============================================================================== AJAX SETUP ======================
//================================================================================================================
function createRequestObject() {

   var req;
   if(window.XMLHttpRequest){
      // Firefox, Safari, Opera...
      req = new XMLHttpRequest();
   } else if(window.ActiveXObject) {
      // Internet Explorer 5+
      req = new ActiveXObject("Microsoft.XMLHTTP");
   } else {
      // There is an error creating the object, an old browser is being used.
      alert('Problem creating the XMLHttpRequest object');
   }
   return req;
}

function handleDivTag(divtag)
{
   var divtag;
   return divtag;
}
function handleDivTagClose(divtagclose)
{
   var divtagclose;
   return divtagclose;
}

// Make the XMLHttpRequest object
var http2 = createRequestObject();


function sendRequest(divtag,divtagclose,phpcom,othervars) {
   var http = createRequestObject();
   var divhandler = new handleDivTag(null);
   var divhandlerclose = new handleDivTagClose(null);

   //if(divtagclose!='' && divtagclose!=divtag){divtagclose.style.display="none";}
   document.getElementById(divtag).style.display="block";
   if(divtagclose=="comments"){
	   document.getElementById(divtag).innerHTML = "<div class=\"commentstop\"></div><div style='margin:0 auto; text-align:center;'><img src='ajax-loader.gif' /><p>Loading, please wait...</p></div><div class=\"commentsbott\"></div>";
	   divtagclose="";
   }else if(divtagclose=="nameavailcheck"){
		document.getElementById(divtag).innerHTML = "<div style='margin:0px; padding:0px; text-align:left;'><img src='ajax-loader.gif' /></div>";
   }else if(divtagclose=="noloader"){

   }else{
	   document.getElementById(divtag).innerHTML = "<div style='margin:0 auto; text-align:center;'><img src='ajax-loader.gif' /><p>Loading, please wait...</p></div>";
   }
   
   if(divtagclose=="form"){
	   http.open('get', phpcom+othervars, true);
   }else{
	   http.open('get', phpcom+"?divtag="+divtag+othervars);
   }
   divhandler.divtag = divtag;
   divhandlerclose.divtagclose = divtagclose;
   http.send(null);

	http.onreadystatechange = function(){
		//alert('handling response');
		if(http.readyState == 4 && http.status == 200){
	      var response = http.responseText;
	      if(response) {
	         // UPDATE ajaxTest content
	       	document.getElementById(divhandler.divtag).innerHTML = response;
			if(divtagclose=="nameavailcheck"){
				if(response.match("Available")=="Available"){
					document.forms['form_register'].namechecked.value="1";
				}
			}

			if(phpcom=="loginsubmit.php"){
				loginrefresh();
			}
			if(phpcom=="endsession.php"){
				loginrefresh();
			}
	      }
	   }
	} 
}
//================================================================================================================
//================================================================================================================
//================================================================================================================

function recentArticles(what, start){
	sendRequest("ajaxmainwrap","","articlespull.php","&start="+start+"&whattoget="+what+"&ms="+new Date().getTime());
}
function getcomments(what){
	el = document.getElementById("commentswrap"+what);
	if(el.style.display=="none"){
		if(el.innerHTML==""){
			sendRequest("commentswrap"+what,"comments","getcomments.php","&whattoget="+what+"&ms="+new Date().getTime());
		}else{
			el.style.display="block";
		}
	}else if(el.style.display=="block"){
		el.style.display="none";
	}
}
function aboutpage(){
	sendRequest("ajaxmainwrap","","about.php","&ms="+new Date().getTime());
}
function echeck(str) {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   //alert("Invalid E-mail ID")
		   return false
		}
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   //alert("Invalid E-mail ID")
		   return false
		}
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    //alert("Invalid E-mail ID")
		    return false
		}
		 if (str.indexOf(at,(lat+1))!=-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }
		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    //alert("Invalid E-mail ID")
		    return false
		 }
		 if (str.indexOf(dot,(lat+2))==-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }
		 if (str.indexOf(" ")!=-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }
 		 return true					
}
function changeinputbg(obj){
	obj.style.backgroundColor="#FFFFFF";
}
function getform(obj, divtag, phpcom) {
    var getstr = "?";
	var errors = "";
	var errors1=false;
    for (i=0; i<obj.length; i++) {
		//alert(obj.childNodes[i].tagName);
       if (obj.elements[i].tagName == "INPUT") {
		   //alert(obj.childNodes[i].type);
          if (obj.elements[i].type == "text" || obj.elements[i].type == "password") {
             if(obj.elements[i].value=="" && obj.elements[i].name!="website"){errors1=true; obj.elements[i].style.backgroundColor="#FFFF99";
			 }else{
				if(obj.elements[i].name=="email"){
					goodemail = echeck(obj.elements[i].value);
					if(goodemail==true){
						getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
					}else{
						errors+="You've submitted an invalid email address.<br />";
					}
				}else if(obj.elements[i].name=="username"){
					var re = /^[\w ]+$/; // validation fails if the input doesn't match the regular expression
					if(!re.test(obj.elements[i].value)) {
						 errors+="You've submitted an invalid character in your user name.<br />";
					}else{
						 getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
					}
				}else if(obj.elements[i].name=="password"){
					if(obj.name=="form_register"){
						if(obj.elements[i].value != obj.passwordagain.value){
							 errors+="Your password in the second field does not match the first.<br />";
						}else{
						 	var re = /^[\w ]+$/; // validation fails if the input doesn't match the regular expression
						 	if(!re.test(obj.elements[i].value)) {
								 errors+="You've submitted an invalid character in your password.<br />";
						 	}else{
								 getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
					 		}
						}
					}else{
						var re = /^[\w ]+$/; // validation fails if the input doesn't match the regular expression
					 	if(!re.test(obj.elements[i].value)) {
							errors+="You've submitted an invalid character in your password.<br />";
						}else{
							getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
					 	}
					}
				}else{
			 	getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
				alert(obj.elements[i].value);
				}
			 }
			 
          }
          if (obj.elements[i].type == "checkbox") {
             if (obj.elements[i].checked) {
                getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
             } else {
                getstr += obj.elements[i].name + "=&";
             }
          }
          if (obj.elements[i].type == "radio") {
             if (obj.elements[i].checked) {
                getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
             }
          }
       }

       if (obj.elements[i].tagName == "select") {
          var sel = obj.elements[i];
          getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
       }
    }
	if(obj.name=="form_register"){
	    if(errors=="" && errors1!=true && document.forms['form_register'].namechecked.value=="1"){
			document.getElementById("formerrors").innerHTML = errors;
			document.getElementById("formerrors").style.display="none";
			sendRequest(divtag,'form',phpcom, getstr);
		}else{
			if(document.forms['form_register'].namechecked.value=="0"){errors+="You must check your user name for availability first!<br />";}
			errorreturn="<div style=\"background:#CC6600; color:#FFFFFF; font-size:28px; font-weight:bold; padding:0px; margin:0px 0px 4px 0px; line-height:100%;\">Notice</div><p style=\"font-style:italic;\">";
			if(errors1==true){errorreturn+="The highlighted fields below must be filled out.<br />";}
			errorreturn+=errors+"</p>";
			document.getElementById("formerrors").style.display="block";
			document.getElementById("formerrors").innerHTML = errorreturn;
		}
	}else{
		if(errors=="" && errors1!=true){
			document.getElementById("formerrors").innerHTML = errors;
			document.getElementById("formerrors").style.display="none";
			sendRequest(divtag,'form',phpcom, getstr);
		}else{
			errorreturn="<div style=\"background:#CC6600; color:#FFFFFF; font-size:28px; font-weight:bold; padding:0px; margin:0px 0px 4px 0px; line-height:100%;\">Notice</div><p style=\"font-style:italic;\">";
			if(errors1==true){errorreturn+="The highlighted fields below must be filled out.<br />";}
			errorreturn+=errors+"</p>";
			document.getElementById("formerrors").style.display="block";
			document.getElementById("formerrors").innerHTML = errorreturn;
		}
	}
}
function finishregister(id, acode){
	sendRequest("ajaxmainwrap","","finishregister.php","&id="+id+"&acode="+acode);
}
function checkusername(obj){
	var username = obj.username.value;
	sendRequest("availability","nameavailcheck","checkusername.php","&checkuser="+username+"&ms="+new Date().getTime());
}
function notcheckedyet(){
	document.getElementById("availability").innerHTML = "<p style=\"margin:7px; color:#000000; font-size:14px;\">You must check first.</p>";
	document.forms['form_register'].namechecked.value="0";
}
function loginrefresh(){
	sendRequest("loginbox","noloader","loginrefresh.php","&ms="+new Date().getTime());
}
