// JavaScript Document

var G_ZipCode = "";
var G_AdminZipCode  = "";
var G_DistrictZipCode  = "";

var G_RegisterDisabled = false;
var G_SelectedSchoolName  = "";
var G_SelectedSchoolID  = "";
var G_SelectedAdminSchoolName  = "";
var G_SelectedAdminSchoolID  = "";
var G_SelectedDistrictName  = "";
var G_SelectedDistrictID  = "";

jQuery(document).ready(function(){

		$(document).click(function(){
				if($("#drop_down_list_container_school").is(":visible"))
					$("#drop_down_list_container_school").hide();
				if($("#drop_down_list_container_schooladmin").is(":visible"))
					$("#drop_down_list_container_schooladmin").hide();	
				if($("#drop_down_list_container_district").is(":visible"))
					$("#drop_down_list_container_district").hide();	
			});
		$("#drop_down_box_wrapper_school").click(function(e){
			    e.stopPropagation();
				e.preventDefault();
				show_drop_down_school();					   	
			});
		
		$("#drop_down_box_wrapper_schooladmin").click(function(e){
			    e.stopPropagation();
				e.preventDefault();
				show_drop_down_schooladmin();					   	
			});
		
		$("#drop_down_box_wrapper_district").click(function(e){
			    e.stopPropagation();
				e.preventDefault();
				show_drop_down_district();					   	
			});
		
		$("#ContinueCreateSchool").click(function(e){
			    e.stopPropagation();
				e.preventDefault();
				continue_create_school();
			});
		
		$("#ContinueCreateDistrict").click(function(e){
			    e.stopPropagation();
				e.preventDefault();
				continue_create_district();
			});
		
		$("#RegisterTeacher").click(function(e){
				if (G_RegisterDisabled) return;
				G_RegisterDisabled = true;
			    e.stopPropagation();
				e.preventDefault();
				register_teacher();
			});
		
		$("#RegisterAdministrator").click(function(e){
				if (G_RegisterDisabled) return;
				G_RegisterDisabled = true;
			    e.stopPropagation();
				e.preventDefault();
				register_administrator();
			});
		
		$("#AdminIsDistrictOrSchoolDirector,#AdminIsDistrictOrSchoolSchoolAdmin, #SchoolZipCode, #DistrictZipCode, #SchoolName, #DistrictName, #NameFirst, #NameLast, #Phone, #drop_down_box_wrapper_school, #Email, #Password, #AdminSchoolZipCode, #AdminSchoolName, #AdminNameFirst, #AdminNameLast, #AdminPhone, #drop_down_box_wrapper_schooladmin, #AdminEmail, #AdminPassword, #DistrictZipCode, #drop_down_box_wrapper_district, #AdminTitle").bt({
			   trigger: 'none',
			   positions:['right','left','top'],
		   	   cssStyles: {
					fontSize: '12px',
					fontFamily: 'arial,helvetica,sans-serif'
				  }

		});
		$("#AdminIsDistrictOrSchoolDirector").click(function(e){
												$("#DivSelectSchool").hide();
												$("#DivSelectDistrict").show();
												$("#AdminSchoolZipCode").focus();												
											});

		$("#AdminIsDistrictOrSchoolSchoolAdmin").click(function(e){
												$("#DivSelectSchool").show();
												$("#DivSelectDistrict").hide();
												$("#DistrictZipCode").focus();
											});

});

function show_drop_down_school(){
	varSchoolZipCode = $("#SchoolZipCode").val().replace(/[\s]/g,"");
	if (varSchoolZipCode.length < 5){
		$("#SchoolZipCode").btOn();
		$("#SchoolZipCode").focus();
		return;
	} // if 
	
	$("#SchoolZipCode").btOff();
	if (G_ZipCode == varSchoolZipCode){
		if($("#drop_down_list_container_school").is(":visible") && document.getElementById("drop_down_list_container_school").style.display != 'none'){
			$("#drop_down_list_container_school").hide();	
		} else
			$("#drop_down_list_container_school").show();
		return;
	}
		
	G_ZipCode = varSchoolZipCode;
	$("#drop_down_list_container_school").show();
	$("#drop_down_list_school").html("Loading ..");
	$.getJSON('/MM/Home/public/schools',
							  {varSchoolZipCode:varSchoolZipCode},
							  function(schools) {
							  	  $("#drop_down_box_school").html(G_SelectedSchoolName);
								  show_drop_down_school_cb(schools);
							  }
				);
	
}

function show_drop_down_school_cb(schools){
	$("#drop_down_list_school").html(schools.html);
	
	$("#drop_down_list_container_school li").click(function(){
				$("#drop_down_box_school").html($(this).html());
				G_SelectedSchoolName = $(this).html();
				G_SelectedSchoolID = $(this).attr("schoolid");
				$("#drop_down_list_container_school").hide();				   	
			});
}

function show_drop_down_district(){
	varDistrictZipCode = $("#DistrictZipCode").val().replace(/[\s]/g,"");
	if (varDistrictZipCode.length < 4){
		$("#DistrictZipCode").btOn();
		$("#DistrictZipCode").focus();
		return;
	} // if 
	
	$("#DistrictZipCode").btOff();
	if (G_DistrictZipCode == varDistrictZipCode){
		if($("#drop_down_list_container_district").is(":visible") && document.getElementById("drop_down_list_container_district").style.display != 'none'){
			$("#drop_down_list_container_district").hide();	
		} else
			$("#drop_down_list_container_district").show();
		return;
	}
		
	G_DistrictZipCode = varDistrictZipCode;
	$("#drop_down_list_container_district").show();
	$("#drop_down_list_district").html("Loading ..");
	$.getJSON('/MM/Home/public/districts',
							  {varDistrictZipCode:varDistrictZipCode},
							  function(districts) {
							  	  $("#drop_down_box_district").html(G_SelectedDistrictName);
								  show_drop_down_district_cb(districts);
							  }
				);
	
}

function show_drop_down_district_cb(districts){
	$("#drop_down_list_district").html(districts.html);
	
	$("#drop_down_list_container_district li").click(function(){
				$("#drop_down_box_district").html($(this).html());
				G_SelectedDistrictName = $(this).html();
				G_SelectedDistrictID = $(this).attr("districtid");
				$("#drop_down_list_container_district").hide();				   	
			});
}


function show_drop_down_schooladmin(){
	varAdminSchoolZipCode = $("#AdminSchoolZipCode").val().replace(/[\s]/g,"");
	if (varAdminSchoolZipCode.length < 5){
		$("#AdminSchoolZipCode").btOn();
		$("#AdminSchoolZipCode").focus();
		return;
	} // if 
	
	$("#AdminSchoolZipCode").btOff();
	if (G_AdminZipCode == varAdminSchoolZipCode){
		if($("#drop_down_list_container_schooladmin").is(":visible") && document.getElementById("drop_down_list_container_schooladmin").style.display != 'none'){
			$("#drop_down_list_container_schooladmin").hide();	
		} else
			$("#drop_down_list_container_schooladmin").show();
		return;
	}
		
	G_AdminZipCode = varAdminSchoolZipCode;
	$("#drop_down_list_container_schooladmin").show();
	$("#drop_down_list_schooladmin").html("Loading ..");
	$.getJSON('/MM/Home/public/schools',
							  {varSchoolZipCode:varAdminSchoolZipCode},
							  function(schools) {
							  	  $("#drop_down_box_schooladmin").html(G_SelectedAdminSchoolName);
								  show_drop_down_schooladmin_cb(schools);
							  }
				);
	
}

function show_drop_down_schooladmin_cb(schools){
	$("#drop_down_list_schooladmin").html(schools.html);
	
	$("#drop_down_list_container_schooladmin li").click(function(){
				$("#drop_down_box_schooladmin").html($(this).html());
				G_SelectedAdminSchoolName = $(this).html();
				G_SelectedAdminSchoolID = $(this).attr("schoolid");
				$("#drop_down_list_container_schooladmin").hide();				   	
			});
}


function show_create_school(id){
	if (id == 1){
		$(".Overlay1").show();
		$(".create-school-div").show();
	} else if (id == 2){
		$(".Overlay2").show();
		$(".create-school-div").show();
	}
	
	$(".create-school-div :input").keypress(function(e){
			  var key = (e.which) ? e.which : e.keyCode;
			  if(key == 13){
				   e.stopPropagation();
				   e.preventDefault();
				   continue_create_school();
			   }
	  });
	
	setTimeout( function(){$(".create-school-div :input:first").focus()},100);
}

function continue_create_school(){
	
	varSchoolName = $.trim($("#SchoolName").val());
	if (varSchoolName == ""){
		$("#SchoolName").btOn();
		$("#SchoolName").focus();
		return false;
	} // if
	
	if($(".Overlay2").is(":visible")){
		G_SelectedAdminSchoolName = varSchoolName;
		G_SelectedAdminSchoolID = "";
		$("#drop_down_box_schooladmin").html(G_SelectedAdminSchoolName);
		$(".Overlay2").hide();
		$(".create-school-div").hide();
	} else {
		G_SelectedSchoolName = varSchoolName;
		G_SelectedSchoolID = "";
		$("#drop_down_box_school").html(G_SelectedSchoolName);
		$(".Overlay1").hide();
		$(".create-school-div").hide();
	}
}


function show_create_district(){
	$(".Overlay2").show();	
	$(".create-district-div").show();
	
	$(".create-district-div :input").keypress(function(e){
			  var key = (e.which) ? e.which : e.keyCode;
			  if(key == 13){
				   e.stopPropagation();
				   e.preventDefault();
				   continue_create_district();
			   }
	  });
	
	setTimeout( function(){$(".create-district-div :input:first").focus()},100);
	
}

function continue_create_district(){
	
	varDistrictName = $.trim($("#DistrictName").val());
	if (varDistrictName == ""){
		$("#DistrictName").btOn();
		$("#DistrictName").focus();
		return false;
	} // if
	
	G_SelectedDistrictName = varDistrictName;
	G_SelectedDistrictID = "";
	$("#drop_down_box_district").html(G_SelectedDistrictName);
	$(".Overlay2").hide();
	$(".create-district-div").hide();
	
}

function show_administrator(){
	$(".Overlay1").show();	
	$("#AdminNameFirst").val($("#NameFirst").val());
	$("#AdminNameLast").val($("#NameLast").val());
	$("#AdminTitle").val($("#Title").val());
	$("#AdminPhone").val($("#Phone").val());
	$("#AdminEmail").val($("#Email").val());
	$("#AdminPassword").val($("#Password").val());	
	$(".administrator-div").show();
	
	$(".administrator-div :input").keypress(function(e){
			  var key = (e.which) ? e.which : e.keyCode;
			  if(key == 13){
				   e.stopPropagation();
				   e.preventDefault();
				   register_administrator();
			   }
	  });
	
	setTimeout( function(){$(".administrator-div :input:first").focus()},100);
	
}

function show_administrator_registered(){
	$(".administrator-div").hide();
	$(".administrator-registered-div").show();
}
function close_administrator_registered(){
	$(".Overlay1").hide();	
	$(".administrator-registered-div").hide();
}


function close_create_school(){
	if($(".Overlay2").is(":visible")){
		$(".Overlay2").hide();
		$(".create-school-registered-div").hide();
	} else {
		$(".Overlay1").hide();
		$(".create-school-div").hide();
	}
}

function close_create_district(){
	$(".Overlay2").hide();	
	$(".create-district-div").hide();
}

function close_administrator(){
	$(".Overlay1").hide();	
	$(".administrator-div").hide();
}

function register_teacher(){
	$("#SchoolZipCode, #SchoolName, #DistrictName, #NameFirst, #NameLast, #Phone, #drop_down_box_wrapper_school, #Email, #Password").btOff();
	varNameFirst = $.trim($("#NameFirst").val());
	varNameLast = $.trim($("#NameLast").val());
	varTitle = $.trim($("#Title").val());
	varPhone = $.trim($("#Phone").val());
	varSchoolZipCode = $.trim($("#SchoolZipCode").val());
	varEmail = $.trim($("#Email").val());
	varPassword = $.trim($("#Password").val());
	
	if (varNameFirst == ""){
		$("#NameFirst").btOn();
		$("#NameFirst").focus();
		G_RegisterDisabled = false;
		return;
	} // if
	
	if (varNameLast == ""){
		$("#NameLast").btOn();
		$("#NameLast").focus();
		G_RegisterDisabled = false;
		return;
	} // if
	
	if (varPhone == ""){
		$("#Phone").btOn();
		$("#Phone").focus();
		G_RegisterDisabled = false;		
		return;
	} // if
	
	if (varPhone.length < 8){
			  title = $("#Phone").attr("bt-xTitle");
			  $("#Phone").attr("bt-xTitle","Phone number should be at least 8 digits long.");
			  $("#Phone").focus()
			  $("#Phone").btOn();
			  $("#Phone").attr("bt-xTitle",title);
					G_RegisterDisabled = false;				  
		return;
	} // if
	
	if (varSchoolZipCode == "" || varSchoolZipCode.length < 5){
		$("#SchoolZipCode").btOn();
		$("#SchoolZipCode").focus();
		G_RegisterDisabled = false;		
		return;
	} // if
	
	
	if (G_SelectedSchoolName == ""){
		$("#drop_down_box_wrapper_school").btOn();
		G_RegisterDisabled = false;		
		return;
	} // if
	
	
	if (varEmail == ""){
		$("#Email").btOn();
		$("#Email").focus();
		G_RegisterDisabled = false;		
		return;
	} // if
	
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	if (!varEmail.match(emailRegEx)){
		title = $("#Email").attr("bt-xTitle");
		$("#Email").attr("bt-xTitle","The e-mail address appears to be incorrect. E-mail addresses must contain an \'at\' sign(@) and a period (.) somewhere to the right of the @,  with no spaces or commas.");
		$("#Email").focus()
		$("#Email").btOn();
		$("#Email").attr("bt-xTitle",title);
		G_RegisterDisabled = false;		
		return;
	} // if
	
	if (varPassword == ""){
		$("#Password").btOn();
		$("#Password").focus();
		G_RegisterDisabled = false;		
		return;
	} // if
	
	if (varPassword.length < 6){
			  title = $("#Password").attr("bt-xTitle");
			  $("#Password").attr("bt-xTitle","Your password must be at least 6 characters.");
			  $("#Password").focus()
			  $("#Password").btOn();
			  $("#Password").attr("bt-xTitle",title);
		G_RegisterDisabled = false;			  
		return;
	} // if
	
	$.getJSON('/MM/Home/public/register_teacher',
							  {
								varNameFirst:varNameFirst,
								varNameLast:varNameLast,
								varTitle:varTitle,
								varPhone:varPhone,
								varSchoolZipCode:varSchoolZipCode,
								varEmail:varEmail,
								varPassword:varPassword,
								varSchoolName:G_SelectedSchoolName,
								pkINSchoolID:G_SelectedSchoolID
							  },
							  function(result) {
								  	G_RegisterDisabled = false;
								  	if(result.status == 'EmailExists'){
										title = $("#Email").attr("bt-xTitle");
										$("#Email").attr("bt-xTitle","This email is already registered, please sign in or use a different email address.");
										$("#Email").focus()
										$("#Email").btOn();
										$("#Email").attr("bt-xTitle",title);
										return;
									}  else if(result.status == 'InvalidIP'){
										alert("At this time, Moby Math is only available for US schools.");
									} else if(result.status == 'OK'){
										window.location = "/MM/MT/"
									}
							  } // function
				);
	
}


function register_administrator(){
	$("#AdminIsDistrictOrSchoolDirector, #AdminSchoolZipCode, #DistrictZipCode, #AdminSchoolName, #AdminNameFirst, #AdminNameLast, #AdminTitle,#AdminPhone, #drop_down_box_wrapper_schooladmin, #AdminEmail, #AdminPassword, #DistrictZipCode, #drop_down_box_wrapper_district").btOff();
	varNameFirst = $.trim($("#AdminNameFirst").val());
	varNameLast = $.trim($("#AdminNameLast").val());
	varTitle = $.trim($("#AdminTitle").val());
	varPhone = $.trim($("#AdminPhone").val());
	varAdminSchoolZipCode  = $.trim($("#AdminSchoolZipCode").val());
	varDistrictZipCode = $.trim($("#DistrictZipCode").val());
	varEmail = $.trim($("#AdminEmail").val());
	varPassword = $.trim($("#AdminPassword").val());
	varIsDistrict = $("#AdminIsDistrictOrSchoolDirector").is(":checked");
	varIsSchool= $("#AdminIsDistrictOrSchoolSchoolAdmin").is(":checked");
	
	if (varNameFirst == ""){
		$("#AdminNameFirst").btOn();
		$("#AdminNameFirst").focus();
		G_RegisterDisabled = false;	
		return;
	} // if
	
	if (varNameLast == ""){
		$("#AdminNameLast").btOn();
		$("#AdminNameLast").focus();
		G_RegisterDisabled = false;			
		return;
	} // if
	
	if (varTitle == ""){
		$("#AdminTitle").btOn();
		$("#AdminTitle").focus();
		G_RegisterDisabled = false;			
		return;
	} // if
	
	if (varPhone == ""){
		$("#AdminPhone").btOn();
		$("#AdminPhone").focus();
		G_RegisterDisabled = false;			
		return;
	} // if
	
	if (varPhone.length < 8){
			  title = $("#AdminPhone").attr("bt-xTitle");
			  $("#AdminPhone").attr("bt-xTitle","Phone number should be at least 8 digits long.");
			  $("#AdminPhone").focus()
			  $("#AdminPhone").btOn();
			  $("#AdminPhone").attr("bt-xTitle",title);
			G_RegisterDisabled = false;				  
		return;
	} // if
	
	
	
	
	if (varEmail == ""){
		$("#AdminEmail").btOn();
		$("#AdminEmail").focus();
		G_RegisterDisabled = false;			
		return;
	} // if
	
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	if (!varEmail.match(emailRegEx)){
		title = $("#AdminEmail").attr("bt-xTitle");
		$("#AdminEmail").attr("bt-xTitle","The e-mail address appears to be incorrect. E-mail addresses must contain an \'at\' sign(@) and a period (.) somewhere to the right of the @,  with no spaces or commas.");
		$("#AdminEmail").focus()
		$("#AdminEmail").btOn();
		$("#AdminEmail").attr("bt-xTitle",title);
		G_RegisterDisabled = false;			
		return;
	} // if
	
	if (varPassword == ""){
		$("#AdminPassword").btOn();
		$("#AdminPassword").focus();
		G_RegisterDisabled = false;			
		return;
	} // if
	
	if (varPassword.length < 6){
			  title = $("#AdminPassword").attr("bt-xTitle");
			  $("#AdminPassword").attr("bt-xTitle","Your password must be at least 6 characters.");
			  $("#AdminPassword").focus()
			  $("#AdminPassword").btOn();
			  $("#AdminPassword").attr("bt-xTitle",title);
				G_RegisterDisabled = false;				  
		return;
	} // if
	
	if (!varIsSchool && !varIsDistrict){
		$("#AdminIsDistrictOrSchoolDirector").btOn();
		G_RegisterDisabled = false;			
		return;
	}
	
	if (varIsSchool && (varAdminSchoolZipCode == "" || varAdminSchoolZipCode.length < 5)){
		$("#AdminSchoolZipCode").btOn();
		$("#AdminSchoolZipCode").focus();
		G_RegisterDisabled = false;			
		return;
	} // if
	
	
	if (varIsSchool && G_SelectedAdminSchoolName == ""){
		$("#drop_down_box_wrapper_schooladmin").btOn();
		G_RegisterDisabled = false;			
		return;
	} // if
	
	if (varIsDistrict && (varDistrictZipCode == "" || varDistrictZipCode.length < 5)){
		$("#DistrictZipCode").btOn();
		$("#DistrictZipCode").focus();
		G_RegisterDisabled = false;			
		return;
	} // if
	
	
	if (varIsDistrict && G_SelectedDistrictName == ""){
		$("#drop_down_box_wrapper_district").btOn();
		G_RegisterDisabled = false;			
		return;
	} // if
	
	$.getJSON('/MM/Home/public/register_administrator',
							  {
								varNameFirst:varNameFirst,
								varNameLast:varNameLast,
								varTitle:varTitle,
								varPhone:varPhone,
								varSchoolZipCode:varSchoolZipCode,
								varDistrictZipCode:varDistrictZipCode,
								varEmail:varEmail,
								varPassword:varPassword,
								varSchoolName:G_SelectedAdminSchoolName,
								pkINSchoolID:G_SelectedAdminSchoolID,
								varDistrictName:G_SelectedDistrictName,
								pkINDistrictID:G_SelectedDistrictID,
								varIsDistrict:((varIsDistrict)?1:0)
							  },
							  function(result) {
								  	G_RegisterDisabled = false;
								  	if(result.status == 'EmailExists'){
										title = $("#AdminEmail").attr("bt-xTitle");
										$("#AdminEmail").attr("bt-xTitle","This email is already registered, please sign in or use a different email address.");
										$("#AdminEmail").focus()
										$("#AdminEmail").btOn();
										$("#AdminEmail").attr("bt-xTitle",title);
										return;
									} else if(result.status == 'InvalidIP'){
										alert("At this time, Moby Math is only available for US schools.");
									} else if(result.status == 'OK'){
										show_administrator_registered();
										$(".register-contents div input").val('');$("#drop_down_box_school").html("");
									}
							  } // function
				);
	
}
