/* 
---------------------
SIGNUP FUNCTIONS
01. Step 1 Functions
02. Step 2 Functions
--------------------- 
*/

/*----------------------------------------------------------
01. Step 1 Functions
----------------------------------------------------------*/

function getBuilding(selectbox) {



    if (selectbox.value.length > 0) {
        // Get university message
        getUniversityMessage(selectbox.value);


        var getBuilding2 = function(oXML) {
            //alert('selectBuilding2, oXML.responseText: ' + oXML.responseText);
            document.getElementById('container_room').innerHTML = '';
            if (selectbox.value != "0")
                document.getElementById('container_building').innerHTML = ' <label for="accept_building">Residence Hall:</label> ' + oXML.responseText;
            else {
                document.getElementById('container_building').innerHTML = ' <label for="accept_building"></label> ' + oXML.responseText;
                getRoomLayoutsRoomNotListed("no");
            }
        }
        document.getElementById('container_building').innerHTML = '<img src="/assets/images/ajax-loader.gif" />';
        document.getElementById('container_room').innerHTML = '';
        document.getElementById('container_layout').innerHTML = '';

        var myConn = new XHConn();
        var pageToConnect = '/assets/includes/ajax_signup.aspx';
        var pageVars = 'function=signup_getBuildingList&rnum=' + Math.random() + '&collegeid=' + selectbox.value;
        myConn.connect(pageToConnect, 'POST', pageVars, getBuilding2);
        
    }
}

function getUniversityMessage(collegeid) {


	document.getElementById('container_university_message').innerHTML = '';
	

	
	var getUniversityMessage2 = function(oXML) {
		document.getElementById('container_university_message').innerHTML = oXML.responseText;
	}	
	var myConn = new XHConn();
	var pageToConnect = '/assets/includes/ajax_signup.aspx';
	var pageVars = 'function=signup_getUniversityMessage&rnum=' + Math.random() + '&collegeid=' + collegeid;
	myConn.connect(pageToConnect, 'POST', pageVars, getUniversityMessage2);
}

function getRooms(selectbox) {
    var getRooms2 = function(oXML) {
        //alert('testing - getRooms2, oXML.responseText: ' + oXML.responseText);


    if (oXML.responseText == 'none' || oXML.responseText.indexOf("<!-- none -->") > -1) {
                 document.getElementById('container_room').innerHTML = '<p />' + oXML.responseText;
            getRoomLayoutsRoomNotListed('no');
        } else {
            document.getElementById('container_room').innerHTML = '<p />' + oXML.responseText;
        }
    }
	
	document.getElementById('container_layout').innerHTML = '';
	document.getElementById('container_room').innerHTML = '<img src="/assets/images/ajax-loader.gif" />';
	var myConn = new XHConn();
	var pageToConnect = '/assets/includes/ajax_signup.aspx';
	var pageVars = 'function=signup_checkRoomNumber&rnum=' + Math.random() + '&collegeid=' + document.getElementById('signup_university').value + '&buildingid=' + selectbox.value ;
	myConn.connect(pageToConnect, 'POST', pageVars, getRooms2);
}


function getRoomLayouts(selectbox) {
	var getRooms2 = function(oXML) {		
		document.getElementById('container_layout').innerHTML = '<p />' + oXML.responseText;
	}
	
	document.getElementById('container_layout').innerHTML = '<img src="/assets/images/ajax-loader.gif" />';
	var myConn = new XHConn();
	var pageToConnect = '/assets/includes/ajax_signup.aspx';
	var pageVars = 'function=signup_getRoomList&rnum=' + Math.random() + '&collegeid=' + document.getElementById('signup_university').value + '&buildingid=' + selectbox.value ;
	myConn.connect(pageToConnect, 'POST', pageVars, getRooms2);
}

function getRoomLayoutsRoomNotListed(showStudentRoom) {
   
	var getRooms2 = function(oXML) {		
		document.getElementById('container_layout').innerHTML = '<p />' + oXML.responseText;
	}
	
	document.getElementById('container_layout').innerHTML = '<img src="/assets/images/ajax-loader.gif" />';
	//document.getElementById('container_room_submit').innerHTML = '';
	var myConn = new XHConn();
	var pageToConnect = '/assets/includes/ajax_signup.aspx';
	if (document.getElementById('accept_building') != null) {
	    var pageVars = 'showstudentroom=' + showStudentRoom + '&function=signup_getRoomList&rnum=' + Math.random() + '&collegeid=' + document.getElementById('signup_university').value + '&buildingid=' + document.getElementById('accept_building').value;

	    myConn.connect(pageToConnect, 'POST', pageVars, getRooms2);
	}
	else {
	    var pageVars = 'showstudentroom=' + showStudentRoom + '&function=signup_getRoomList&rnum=' + Math.random() + '&collegeid=' + document.getElementById('signup_university').value + '&buildingid=' ;

	    myConn.connect(pageToConnect, 'POST', pageVars, getRooms2);
	}
}



function getRoomLayouts_layoutfound(selectbox) {
	
	// alert('testing....selectbox.value: ' + selectbox.value);
	
	var getRooms2 = function(oXML) {		
		document.getElementById('container_layout').innerHTML = '<p />' + oXML.responseText;
	}
	
	document.getElementById('container_layout').innerHTML = '<img src="/assets/images/ajax-loader.gif" />';
	//document.getElementById('container_room_submit').innerHTML = '';
	var myConn = new XHConn();
	var pageToConnect = '/assets/includes/ajax_signup.aspx';
	var pageVars = 'function=signup_getRoomList&rnum=' + Math.random() + '&collegeid=' + document.getElementById('signup_university').value + '&buildingid=' + document.getElementById('accept_building').value + '&dormlayoutid=' + selectbox.value;
	myConn.connect(pageToConnect, 'POST', pageVars, getRooms2);
}


function missingUniversity() {
	//alert(document.getElementById('signup_university').options[document.getElementById('signup_university').selectedIndex].innerHTML);
	window.open("popup-signup.aspx?requesttype=missingUniversity", "popup_signup", "scrollbars,resizable,width=600,height=700");
}

function missingRoom() {
    var theUniversity = escape(document.getElementById('signup_university').options[document.getElementById('signup_university').selectedIndex].innerHTML);
    if (document.getElementById('accept_building') != null) {
        var theBuilding = escape(document.getElementById('accept_building').options[document.getElementById('accept_building').selectedIndex].innerHTML);
        window.open("popup-signup.aspx?requesttype=FloorPlanAddition&university=" + theUniversity + "&building=" + theBuilding, "popup_signup", "scrollbars,resizable,width=600,height=700");
    }
    else {
        missingEntity();
        
    }
}

function missingEntity() {
	//alert(document.getElementById('signup_university').options[document.getElementById('signup_university').selectedIndex].innerHTML);
	window.open("popup-signup.aspx?requesttype=missingBuilding&university=" + escape(document.getElementById('signup_university').options[document.getElementById('signup_university').selectedIndex].innerHTML), "popup_signup", "scrollbars,resizable,width=600,height=700");
}

function checkStepRoomInfo(theform) {
 
	// Check for room number entered if needed
	if (testIsValidObject(theform.student_room_number)) { 
		if (theform.student_room_number.value.length == 0 ) {
			alert("Please fill in the Room Number field.");
			return false;
		}
	}

	// Make sure a floor plan was selected
	if ( testIsValidObject(theform.layoutoption) == false ) {		
		// Throw error
		alert("Please select a floor plan.");
		return false;	
	} else if ( theform.layoutoption.value.length == 0  ) {
		// Throw error
		alert("Please select a floor plan.");
		return false;	
	}
	
	return true;
}

function testIsValidObject(objToTest) {
	if (null == objToTest) {
		return false;
	}
	if ("undefined" == typeof(objToTest) ) {
		return false;
	}
	return true;
}


/*----------------------------------------------------------
02. Step 2 Functions
----------------------------------------------------------*/

function checkform() {
  
    // Make sure required fields are filled in
    
  
   
	if (document.getElementById('username').value.length == 0) {
		alert("Please fill in the Username field.");
		return false
	}
	
	if (document.getElementById('password').value.length == 0) {
		alert("Please fill in the Password field.");
		return false
	}
	
	if (document.getElementById('password-confirm').value.length == 0) {
		alert("Please fill in the Confirm Password field.");
		return false
	}	

	if (document.getElementById('firstname').value.length == 0) {
		alert("Please fill in the First Name field.");
		return false
	}
	
	if (document.getElementById('lastname').value.length == 0) {
		alert("Please fill in the Last Name field.");
		return false
	}
	
	if (document.getElementById('email').value.length == 0) {
		alert("Please fill in the Email field.");
		return false
	}
	
	if (!validateEmail(document.getElementById('email').value)) {
		alert("Invalid email address");
		return false
	}

	// Make sure passwords match
	if (document.getElementById('password').value != document.getElementById('password-confirm').value) {
		alert("Passwords do not match");
		return false;
	}
	if (document.getElementById('student_collegeID_1').value == 'other') {
	    if (document.getElementById('student_college').value.length == 0 && document.getElementById('student_other_residence_hall').value.length == 0) {
	        alert("Please fill in the Other University and Residence Hall field.");
	        return false
	    }
	    if (document.getElementById('student_college').value.length != 0 && document.getElementById('student_other_residence_hall').value.length == 0) {
	        alert("Please fill in the Residence Hall field.");
	        return false
	    }

	    if (document.getElementById('student_college').value.length == 0 && document.getElementById('student_other_residence_hall').value.length != 0) {
	        alert("Please fill in the Other University field.");
	        return false
	    }

	}

	
		return true;
}

function validateEmail(elementValue){
   var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
   return emailPattern.test(elementValue);
}


function checkUsername() {
	if (document.getElementById('username').value.length == 0) {
		alert("Please fill in the Username field.");
	} else {
		var checkUsername2 = function(oXML) {
			var ajax_result=oXML.responseText.split("|*|");
			if (  ajax_result[1] == 'success' ) {
				// Username check was successful
				if (checkform()) {
					// Submit form
					document.getElementById('form-editstudent').submit();			
				}
			} else {
				// Username is taken.  Throw error
				alert('The username you have chosen has already been taken.  Please pick another name.');
			}
		}
		var myConn = new XHConn();
		var pageToConnect = '/assets/includes/ajax_signup.aspx';
		var pageVars = 'function=signup_checkUsername&rnum=' + Math.random() + '&username=' + document.getElementById('username').value;
		myConn.connect(pageToConnect, 'POST', pageVars, checkUsername2);
	}
}

function checkUsernameAndEmail() {
  
	if (document.getElementById('username').value.length == 0) {
		alert("Please fill in the Username field.");}
	if (document.getElementById('email').value.length == 0) {
		alert("Please fill in the Email field.");		
	} else {
	var checkUsernameAndEmail2 = function(oXML) {
	    var ajax_result = oXML.responseText.split("|*|");
	    if (ajax_result[1] == 'success_all') {
	        // Username and Email check was successful
	        if (checkform()) {
	            // Submit form
	           
	            document.getElementById('form-editstudent').submit();
	        }
	    }
	    else {
	       
	        var errors = '';

	        if (ajax_result[1] == "failure") {
	            // Username is taken.  Throw error
	            errors = errors + 'The username you have chosen has already been taken.  Please pick another name.\r\n'
	        }
	        if (ajax_result[2] == "failure") {
	            // Email is taken.  Throw error
	            errors = errors + 'The e-mail address you have entered is already in use. Please use another e-mail address'
	        }

	        alert(errors);
	    }
	}
		
		
		var myConn = new XHConn();
		var pageToConnect = '/assets/includes/ajax_signup.aspx';
		var pageVars = 'function=signup_checkUsernameAndEmail&rnum=' + Math.random() + '&username=' + document.getElementById('username').value + '&email=' + document.getElementById('email').value;
		myConn.connect(pageToConnect, 'POST', pageVars, checkUsernameAndEmail2);
	}
}

function checkEmail() {
	if (document.getElementById('email').value.length == 0) {
		alert("Please fill in the Email field.");		
	} else {
		var checkUsernameAndEmail2 = function(oXML) {
			var ajax_result=oXML.responseText.split("|*|");
			if (  ajax_result[1] == 'success' ) {
				// Email check was successful
					// Submit form
					document.getElementById('form-editstudent').submit();
			} 
			else 
			{			
				alert('The e-mail address you have entered is already in use. Please use another e-mail address.');
			}
		}
		var myConn = new XHConn();
		var pageToConnect = '/assets/includes/ajax_signup.aspx';
		var pageVars = 'function=signup_checkEmail&rnum=' + Math.random() + '&email=' + document.getElementById('email').value;
		myConn.connect(pageToConnect, 'POST', pageVars, checkUsernameAndEmail2);
	}
}

function toggleAddress(cbox) {
	}
