var EmailRegEx = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
var gRef='';
$(document).ready(function(){
	$("#loginLogin").focus();
	
	//login
	var options = { 
        beforeSubmit:  validateLogin,  // pre-submit callback 
        dataType:  'json', 
		success:   	processLogin
   	};
	$('#frmLogin').ajaxForm(options); 
	
	//signup
	options = { 
        beforeSubmit:  validateSignup,  // pre-submit callback 
        dataType:  'json', 
		success:   	processSignup
   	};
	$('#frmSignup').ajaxForm(options); 
	
	//forgot password
	options = { 
        beforeSubmit:  validateForgotpassword,  // pre-submit callback 
        dataType:  'json', 
		success:   	processForgotpassword
   	};
	$('#frmForgotpassword').ajaxForm(options);
	
	 if ($.browser.mozilla) {
	      $("#loginPassword").keypress(checkForEnter);
	  } else {
	      $("#loginPassword").keydown(checkForEnter);
	  }	
});

function checkForEnter(event) {
  if (event.keyCode == 13) {
     PostForm('frmLogin');
  }
} 

function PostForm(form)
{
	if (form == 'frmOpenID') {
		if (validateLoginOpenID()) 
			$('#' + form).submit();
		else 
			return false;
	}
	else 
		$('#' + form).submit();
}

function validateLogin(formData, jqForm, options)
{
	var form = jqForm[0]; 
	if(!form.login.value)
	{
		$(".loginErrorBox p").html("<span class='red'>Enter a username or email</span>");
		return false;		
	}
	else if(!form.password.value)
	{
		$(".loginErrorBox p").html("<span class='red'>Enter a password</span>");
		return false;		
	}
	if(!form.ref.value)
		gRef=form.ref.value;
	return true;
}

function processLogin(data){
 	if (data.message) {
		$(".loginErrorBox p").html("<span class='green'>You are Logged In!</span>");
		if($("#ref").val().length)
			gRef = $("#ref").val();
		if(gRef != '')
			document.location.href = gRef;
		else
			document.location.href = data.message;
	}
	else if(data.error)
	{
		$(".loginErrorBox p").html("<span class='red'>"+data.error+"</span>");
	}
}

function validateLoginOpenID()
{
	if($("#openUrl").val() == '')
	{
		$(".popupOpenIDBox .url p").html("<span class='red'>Enter your OpenID URL</span>");
		return false;		
	}
	$(".popupOpenIDBox .url p").html("<img src='/images/indicator.gif' />");
	return true;
}

function validateSignup(formData, jqForm, options)
{
	var form = jqForm[0]; 
	if(!form.username.value)
	{
		$(".popupSignupBox .username p").html("<span class='red'>Enter a username</span>");
		return false;		
	}
	else if(!form.password.value)
	{
		$(".popupSignupBox .password p").html("<span class='red'>Enter a password</span>");
		return false;		
	}
	else if(!form.email.value || !EmailRegEx.exec(form.email.value))
	{
		$(".popupSignupBox .email p").html("<span class='red'>Enter a valid email</span>");
		return false;		
	}	
	return true;
}

function processSignup(data){
 if (data.message == 'success') {
		$(".popupSignupBox .email p").html("Welcome to StubStreet");
		document.location.href = "/signup/welcome.php";
	}
	else if(data.error)
	{
		$(".popupSignupBox .username p").html("<span class='red'>"+data.error+"</span>");
	}
}
 
function validateForgotpassword(formData, jqForm, options)
{
	$(".popupPassword .email p").html("Looking up Email...");
	var form = jqForm[0]; 
	if(!form.email.value || !EmailRegEx.exec(form.email.value))
	{
		$(".popupPassword .email p").html("<span class='red'>Enter a valid email</span>");
		return false;		
	}
	return true;
}

function processForgotpassword(data){
	
 	if (data.message) {
		$(".popupPassword .email p").html("<span class='green'>"+data.message+"</span>");
	}
	else if(data.error)
	{
		$(".popupPassword .email p").html("<span class='red'>"+data.error+"</span>");
	}
}

// signup popup
function openSignup() {
	$("#popupSignup").attr("style","display:block");
	$("#signUpUsername").focus();
	$(".justIn").hide();
	$(".tracker").hide();
	$(".twitter").hide();
	return false;
}

function closeSignup() {
	$("#popupSignup").attr("style","display:none");
	$(".justIn").show();
	$(".tracker").show();
	$(".twitter").show();
	return false;
}

// password popup
function openPassword() {
	$("#popupPassword").attr("style","display:block");
	$("#passwordEmail").focus();
	$(".justIn").hide();
	$(".tracker").hide();
	$(".twitter").hide();
	return false;
}

function closePassword() {
	$("#popupPassword").attr("style","display:none");
	$(".justIn").show();
	$(".tracker").show();
	$(".twitter").show();
	return false;
}

// openID popup
function openOpenID() {
	$("#popupOpenID").attr("style","display:block");
	$("#openUrl").focus();
	$(".justIn").hide();
	$(".tracker").hide();
	$(".twitter").hide();
	return false;
}

function closeOpenID() {
	$("#popupOpenID").attr("style","display:none");
	$(".justIn").show();
	$(".tracker").show();
	$(".twitter").show();
	return false;
}
 
function startAudio(file)
{
	if ($("#"+file+"_flash").length == 0) {
		$('#'+file+"_audio").flash({
			src: '/flash/player.swf',
			id: file+"_flash",
			width: 180,
			height: 24,
			quality: 'high',
			menu: 'false',
			wmode: 'transparent',
			flashvars: {
				playerID: '1',
				autostart: 'yes',
				soundFile: '/sounds/'+file+'.mp3'
			}
		}, {
			version: 8
		});
	}
}
