window.onload = initPage;

function initPage() {
document.getElementById("tabone").onclick = updateTabOne;
document.getElementById("tabtwo").onclick = updateTabTwo;

document.getElementById("tabtwo").onmouseover = mouseoverTabTwo;
document.getElementById("tabtwo").onmouseout = mouseoutTabTwo;

document.getElementById("anx").onclick = updateAnx;
document.getElementById("coup").onclick = updateCoup;
document.getElementById("dep").onclick = updateDep;

document.getElementById("coup").onmouseover = mouseoverCoup;
document.getElementById("coup").onmouseout = mouseoutCoup;

document.getElementById("dep").onmouseover = mouseoverDep;
document.getElementById("dep").onmouseout = mouseoutDep;

     if(document.getElementsByTagName){

          matchHeight();

     }
     
}

function mouseoverSubmit() {
document.getElementById("submita").style.color = "#495431";
document.getElementById("submit").style.cursor = "pointer";
}

function mouseoutSubmit() {
document.getElementById("submita").style.color = "#2e2826";
}

function mouseoverAnx() {
document.getElementById("anxa").style.background = "#495431";
document.getElementById("anxa").style.color = "#ffffff";
document.getElementById("anx").style.cursor = "pointer";
}

function mouseoutAnx() {
document.getElementById("anxa").style.background = "#ffffff";
document.getElementById("anxa").style.color = "#2e2826";
}

function mouseoverCoup() {
document.getElementById("coupa").style.background = "#495431";
document.getElementById("coupa").style.color = "#ffffff";
document.getElementById("coup").style.cursor = "pointer";
}

function mouseoutCoup() {
document.getElementById("coupa").style.background = "#ffffff";
document.getElementById("coupa").style.color = "#2e2826";
}

function mouseoverDep() {
document.getElementById("depa").style.background = "#495431";
document.getElementById("depa").style.color = "#ffffff";
document.getElementById("dep").style.cursor = "pointer";
}

function mouseoutDep() {
document.getElementById("depa").style.background = "#ffffff";
document.getElementById("depa").style.color = "#2e2826";
}

function mouseoverTabOne() {
document.getElementById("tabonea").style.background = "#495431";
document.getElementById("tabone").style.cursor = "pointer";
}

function mouseoutTabOne() {
document.getElementById("tabonea").style.background = "#2e2826";
}

function mouseoverTabTwo() {
document.getElementById("tabtwoa").style.background = "#495431";
document.getElementById("tabtwo").style.cursor = "pointer";
}

function mouseoutTabTwo() {
document.getElementById("tabtwoa").style.background = "#2e2826";
}

function updateAnx() {

  registerRequest2 = createRequest();
  if (registerRequest2 == null) {
    alert("Unable to create request.");
  } else {
    var url = "includes/anx.php";
    var requestData = "anx";
    registerRequest2.onreadystatechange = fetched;
    registerRequest2.open("POST", url, true);
    registerRequest2.setRequestHeader("Content-Type",
      "application/x-www-form-urlencoded");
    registerRequest2.send(requestData);
  }
}

function updateCoup() {

  registerRequest2 = createRequest();
  if (registerRequest2 == null) {
    alert("Unable to create request.");
  } else {
    var url = "includes/coup.php";
    var requestData = "coup";
    registerRequest2.onreadystatechange = fetched2;
    registerRequest2.open("POST", url, true);
    registerRequest2.setRequestHeader("Content-Type",
      "application/x-www-form-urlencoded");
    registerRequest2.send(requestData);
  }
}

function updateDep() {

  registerRequest2 = createRequest();
  if (registerRequest2 == null) {
    alert("Unable to create request.");
  } else {
    var url = "includes/dep.php";
    var requestData = "dep";
    registerRequest2.onreadystatechange = fetched3;
    registerRequest2.open("POST", url, true);
    registerRequest2.setRequestHeader("Content-Type",
      "application/x-www-form-urlencoded");
    registerRequest2.send(requestData);
  }
}

function updateTabOne() {

  registerRequest = createRequest();
  if (registerRequest == null) {
    alert("Unable to create request.");
  } else {
    var url = "includes/tabone.php";
    var requestData = "tabone";
    registerRequest.onreadystatechange = updated;
    registerRequest.open("POST", url, true);
    registerRequest.setRequestHeader("Content-Type",
      "application/x-www-form-urlencoded");
    registerRequest.send(requestData);
  }
}

function updateTabTwo() {

  registerRequest = createRequest();
  if (registerRequest == null) {
    alert("Unable to create request.");
  } else {
    var url = "includes/tabtwo.php";
    var requestData = "tabtwo";
    registerRequest.onreadystatechange = updated2;
    registerRequest.open("POST", url, true);
    registerRequest.setRequestHeader("Content-Type",
      "application/x-www-form-urlencoded");
    registerRequest.send(requestData);
  }
}

function updated() {
  if (registerRequest.readyState == 4) {
  
    if (registerRequest.status == 200) {
document.getElementById('lefttabs').innerHTML = registerRequest.responseText;
document.getElementById("tabone").onclick = updateTabOne;
document.getElementById("tabtwo").onclick = updateTabTwo;

document.getElementById("tabtwo").onmouseover = mouseoverTabTwo;
document.getElementById("tabtwo").onmouseout = mouseoutTabTwo;
    }
  }
}

function updated2() {
  if (registerRequest.readyState == 4) {
  
    if (registerRequest.status == 200) {
document.getElementById('lefttabs').innerHTML = registerRequest.responseText;
document.getElementById("tabone").onclick = updateTabOne;
document.getElementById("tabtwo").onclick = updateTabTwo;

document.getElementById("tabone").onmouseover = mouseoverTabOne;
document.getElementById("tabone").onmouseout = mouseoutTabOne;
    }
  }
}

function fetched() {
  if (registerRequest2.readyState == 4) {
  
    if (registerRequest2.status == 200) {
document.getElementById('tabchanger').innerHTML = registerRequest2.responseText;
document.getElementById("anx").onclick = updateAnx;
document.getElementById("coup").onclick = updateCoup;
document.getElementById("dep").onclick = updateDep;

document.getElementById("coup").onmouseover = mouseoverCoup;
document.getElementById("coup").onmouseout = mouseoutCoup;

document.getElementById("dep").onmouseover = mouseoverDep;
document.getElementById("dep").onmouseout = mouseoutDep;
    }
  }
}

function fetched2() {
  if (registerRequest2.readyState == 4) {

    if (registerRequest2.status == 200) {
document.getElementById('tabchanger').innerHTML = registerRequest2.responseText;
document.getElementById("anx").onclick = updateAnx;
document.getElementById("coup").onclick = updateCoup;
document.getElementById("dep").onclick = updateDep;
 
document.getElementById("anx").onmouseover = mouseoverAnx;
document.getElementById("anx").onmouseout = mouseoutAnx;

document.getElementById("dep").onmouseover = mouseoverDep;
document.getElementById("dep").onmouseout = mouseoutDep;
    }
  }
}

function fetched3() {
  if (registerRequest2.readyState == 4) {
  
    if (registerRequest2.status == 200) {
document.getElementById('tabchanger').innerHTML = registerRequest2.responseText;
document.getElementById("anx").onclick = updateAnx;
document.getElementById("coup").onclick = updateCoup;
document.getElementById("dep").onclick = updateDep;

document.getElementById("anx").onmouseover = mouseoverAnx;
document.getElementById("anx").onmouseout = mouseoutAnx;

document.getElementById("coup").onmouseover = mouseoverCoup;
document.getElementById("coup").onmouseout = mouseoutCoup;
    }
  }
}

matchHeight=function(){

     var divs,contDivs,maxHeight,divHeight,d;

     // get all <div> elements in the document

     divs=document.getElementsByTagName('div');

     contDivs=[];

     // initialize maximum height value

     maxHeight=0;

     // iterate over all <div> elements in the document

     for(var i=0;i<divs.length;i++){

          // make collection with <div> elements with class attribute 'container'

          if(/\bcolumn\b/.test(divs[i].className)){

                d=divs[i];

                contDivs[contDivs.length]=d;

                // determine height for <div> element

                if(d.offsetHeight){

                     divHeight=d.offsetHeight;

                }

                else if(d.style.pixelHeight){

                     divHeight=d.style.pixelHeight;

                }

                // calculate maximum height

                maxHeight=Math.max(maxHeight,divHeight);

          }

     }

     // assign maximum height value to all of container <div> elements

     for(var i=0;i<contDivs.length;i++){

          contDivs[i].style.height=maxHeight;

     }

}


function sendit(frm) {
		var inputFields = new Array("Name" ,"mailfrom" ,"Subject" ,"Message");
		var counter;
		var name;
		var msg = "Please complete the following fields:\n";
		var badFields = "";
		for (counter = 0; counter < inputFields.length; counter++) {
			name = inputFields[counter];
			if (frm.elements[name].value.length == 0) {
				if (name == "mailfrom") {
					badFields = badFields + "  - Email \n";
				} else {
					badFields = badFields + "  - " + name + "\n";
				}
			}
		}
		if (badFields.length != 0) {
			alert(msg + badFields);
			return false;
		}
		if (frm.mailfrom.value.length > 0) {
			return emailCheck(frm.mailfrom.value);
		} else {
			return true;
		}
	}

	function emailCheck(emailStr) {
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom=validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		var matchArray=emailStr.match(emailPat);

		if (matchArray==null) {
			alert("Email address seems incorrect (check @ and .'s)");
			return false;
		}

		var user=matchArray[1];
		var domain=matchArray[2];

		if (user.match(userPat)==null) {
    			alert("The username doesn't seem to be valid.");
			return false;
		}

		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null) {
	  		for (var i=1;i<=4;i++) {
			    if (IPArray[i]>255) {
		        	alert("Destination IP address is invalid!");
				return false;
	 	   		}
    			}
    			return true;
		}

		var domainArray=domain.match(domainPat);
		if (domainArray==null) {
			alert("The domain name doesn't seem to be valid.");
    			return false;
		}

		var atomPat=new RegExp(atom,"g");
		var domArr=domain.match(atomPat);
		var len=domArr.length;
		if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
		   alert("The address must end in a three-letter domain, or two letter country.");
   			return false;
		}

		if (len<2) {
   			var errStr="This address is missing a hostname!";
			alert(errStr);
   		return false;
		}

 		
document.frm.submit();

	}