var url = 'http://www.thethirdthird.com/';

//AJAX objects
var popupLoader = new ajaxObject('http://www.thethirdthird.com/AJAX/loadPopup.php', updatePopup);
var accountLoader = new ajaxObject('http://www.thethirdthird.com/AJAX/accountHandler.php', updatePopup);
var commentLoader = new ajaxObject('http://www.thethirdthird.com/AJAX/commentHandler.php', updateComments);


//hold the current error id
var curE = 'errorS';

//closes the popup
function escClose(e){
	var kC = (window.event) ? event.keyCode : e.keyCode; 
	var Esc = (window.event) ? 27 : e.DOM_VK_ESCAPE;

	if(kC == Esc){
		document.getElementById('popup500').style.display = 'none';
		//document.getElementById('popup2').style.display = 'none';
	}
}

//handles the popup content
function load500Popup(page){
	
	document.getElementById('popupContent').innerHTML = "Loading...";
	document.getElementById('popup500').style.display = "block";
	
	pVars = "page="+page;
	popupLoader.update(pVars,'GET');
}

function validateLogin(){
	curE = 'errorSpan';

	document.getElementById(curE).innerHTML = 'PROCESSING...';
	
	user = document.getElementById('f_user').value;
	pass = document.getElementById('f_pass').value;
	
	if(user == "" || pass == ""){
		document.getElementById(curE).innerHTML = 'Please fill out the entire form.';
		return false;	
	}else if(pass.length < 8){
		document.getElementById(curE).innerHTML = 'Password must be at least 8 characters.';
		return false;	
	}
	
	pVars = "user="+user+"&pass="+pass+"&type=login";
	accountLoader.update(pVars, 'POST');
	
	return false;
}

//updates the popup content
function updatePopup(responseText, responseStatus){
	if (responseStatus==200) {
				
		if(responseText == "Invalid Email Address." || responseText == "Invalid Account"){
			document.getElementById(curE).innerHTML = 'Invalid email address, please try again.';
		}else if(responseText == "Email already exists."){
			document.getElementById(curE).innerHTML = 'An account already exists with this information. Please change the email or username.';
		}else if(responseText == "Username already exists."){
			document.getElementById(curE).innerHTML = 'An account already exists for this username, plese choose another.';
		}else if(responseText.substr(0, 9) == "REDIRECT:"){
			window.location.href = responseText.substr(9);
		}else if(responseText == "Invalid login."){
			document.getElementById(curE).innerHTML = "Invalid login, please try again.";
		}else{
			document.getElementById('popupContent').innerHTML = responseText;
		}
	}
}

function checkCreateAccount(){
	curE = 'errorA';
	
	document.getElementById(curE).innerHTML = 'PROCESSING...';
	
	var email = document.getElementById('f_email2').value;
	var user = document.getElementById('f_user2').value;
	var pass1 = document.getElementById('f_pass2').value;
	var pass2 = document.getElementById('f_pass3').value;
	var state = document.getElementById('f_state2').value;
	var month = document.getElementById('f_month2').value;
	var day = document.getElementById('f_day2').value;
	var year = document.getElementById('f_year2').value;
	var book = document.getElementById('f_book2').value;
	
	if(user == "" || email == "" || pass1 == "" || pass2 == "" || email.length < 8){
		document.getElementById(curE).innerHTML = "Please fill out all required fields.";
	}else if(pass1 != pass2){
		document.getElementById(curE).innerHTML = "Passwords do not match.";
	}else if(user.length < 6){
		alert("in here?");
		document.getElementById(curE).innerHTML = "Username must be longer than 5 characters.";
	}else if(pass1.length < 8){
		document.getElementById(curE).innerHTML = "Password must be at least 8 characters.";
	}else{
		pVars = "email="+email+"&user="+user+"&pass="+pass1+"&state="+state+"&month="+month+"&day="+day+"&year="+year+"&book="+book+"&type=account-create";
		accountLoader.update(pVars,'POST');
	}
	
	return false;
}

//checks and submits the forgotten password form
function checkLoginHelp(help){
	if(help == 'password'){
		curE = 'errorP';
		var emailID = 'f_email2';
	}else if(help == 'username'){
		curE = 'errorU';
		var emailID = 'f_email3';
	}
	document.getElementById(curE).innerHTML = 'PROCESSING...';
	var email = document.getElementById(emailID).value;
		
	if(email == "" || email.length < 8){
		document.getElementById(curE).innerHTML = 'Please enter a valid email address.';
		return false;
	}else{
		pVars = "email="+email+"&type="+help;
		accountLoader.update(pVars,'POST');
	}
	return false;
}

function checkNewPassword(){
	curE = "errorReset";
	document.getElementById(curE).innerHTML = 'PROCESSING...';
	
	pass1 = document.getElementById('f_pass2').value;
	pass2 = document.getElementById('f_pass3').value;
	ref = document.getElementById('f_ref').value;
	
	if(pass1 != pass2){
		document.getElementById(curE).innerHTML = 'Passwords do not match.';
		return false;
	}else if(pass1.length < 8){
		document.getElementById(curE).innerHTML = 'Password must be at least 8 characters.';
		return false;
	}else{
		pVars = "pass="+pass1+"&ref="+ref+"&type=reset";
		accountLoader.update(pVars,'POST');
	}
	
	return false;
	
}

function addComment(id, type){
	
	document.getElementById('commentError').innerHTML = "PROCESSING...";
	
	name = document.getElementById('f_name').value;
	email = document.getElementById('f_email').value;
	email2 = document.getElementById('f_email2').value;
	subject = document.getElementById('f_subject').value;
	message = document.getElementById('f_message').value;

	if(message == ""){
		document.getElementById('commentError').innerHTML = "Please fill out the entire form before submitting your comment.";
		return false;
	}
		
	pVars = "id="+id+"&type="+type+"&subject="+subject+"&message="+message+"&name="+name+"&email="+email+"&email2="+email2
	commentLoader.update(pVars,'POST');
	
	return false;
}


function updateComments(responseText, responseStatus){
	if (responseStatus==200) {
		if(responseText == "ERROR ADDING COMMENT"){
			document.getElementById('commentError').innerHTML = 'There was an error adding your comment, please try again.';
		}else{
			responses = responseText.split("|");
			if(responses[0] == "GUEST"){
				document.getElementById('commentForm').innerHTML = responses[1];
			}else if(responses[0] == "MEMBER"){
				document.getElementById('commentDiv').innerHTML = responses[1];
			}
		}
	}
}


/*functions from a list apart to handle login stuff*/
function initOverLabels () {
  if (!document.getElementById) return;      

  var labels, id, field;

  // Set focus and blur handlers to hide and show 
  // labels with 'overlabel' class names.
  labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {

    if (labels[i].className == 'overlabel') {

      // Skip labels that do not have a named association
      // with another field.
      id = labels[i].htmlFor || labels[i].getAttribute ('for');
      if (!id || !(field = document.getElementById(id))) continue;

      // Change the applied class to hover the label 
      // over the form field.
      labels[i].className = 'overlabel-apply';

      // Hide any fields having an initial value.
      if (field.value !== '') hideLabel(field.getAttribute('id'), true);

      // Set handlers to show and hide labels.
      field.onfocus = function () {
        hideLabel(this.getAttribute('id'), true);
      };
      
      field.onblur = function () {
        if (this.value === '') {
          hideLabel(this.getAttribute('id'), false);
        }
      };

      // Handle clicks to label elements (for Safari).
      labels[i].onclick = function () {
        var id, field;
        id = this.getAttribute('for');
        if (id && (field = document.getElementById(id))) {
          field.focus();
        }
      };

    }
  }
}

function hideLabel (field_id, hide) {
  var field_for;
  var labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
    field_for = labels[i].htmlFor || labels[i].getAttribute('for');
    if (field_for == field_id) {
      labels[i].style.textIndent = (hide) ? '-1000px' : '0px';
      return true;
    }
  }
}

window.onload = function () {
  setTimeout(initOverLabels, 50);
};
