﻿// JScript File

try{

       	    jQuery(function($) {  

       	        checkResetTokenValid();
				
				// tie lost pass link to lightbox
				$('#lost_password_question').colorbox({
					width:'600', 
					inline:true, 
					href:'#lost_password_form'
				});

			    $("#lost_password_submit").click(
				    function(){
				    
				        var querystring = window.location.querystring;
				        var user = document.getElementById("username").value;
				        var fldr = querystring["folder"];
				        var sysVar = querystring["sys"];

					    $.post('assets/SharedAJAX/lostPassword.aspx', {
					        action: "send_email",
					        username: user,
					        folder: fldr,
					        sys: sysVar
    	                }, function(response) {
        	            
    	                    $("#lost_password_response").html(response);
        	                $.fn.colorbox.resize();
    	                });

			    });		
    				
		    });

}
catch(e){
    alert(e);
}

function clearPasswordResetInputs(){

    $("#new_pass").remove();
    $("#new_pass_retype").remove();
    $("#lost_password_reset label").remove();
    $("#lost_password_reset_submit").remove();
    
}

function showPasswordResetInputs(){

    var resetInputs = "";
    resetInputs += "<label for='new_pass'>New Password: </label><input type='password' name='new_pass' id='new_pass' /><br>";
    resetInputs += "<label for='new_pass_retype'>Retype Password: </label><input type='password' name='new_pass_retype' id='new_pass_retype' /><br>";
    resetInputs += "<button id='lost_password_reset_submit'>Submit</button>";
    
    $("#lost_password_reset h3").after(resetInputs);
    
    $("#new_pass").keyup( passwordMatchCheck );
    $("#new_pass_retype").keyup( passwordMatchCheck );
	
    $("#lost_password_reset_submit").click(
				function(){
				
				    var querystring = window.location.querystring;
                    var rst = querystring["rst"];
                    var fldr = querystring["folder"];
                    
                    if( !passwordLengthCheck() ){
                        $("#lost_password_reset_response").text("Password is too short.");
                        return;
                    }
                    
                    if(compareTextFields("new_pass", "new_pass_retype")){
                        
                        var newPass = document.getElementById("new_pass").value;
                    
                        $.post('assets/SharedAJAX/lostPassword.aspx', {
                            action: "reset_password",
                            resetToken: rst,
                            password: newPass
    	                }, function(response) {

        	                clearPasswordResetInputs()
    	                    $("#lost_password_reset_response").html(response);
        	                
							 $.fn.colorbox.resize();
							
    	                });
                    }

			});

}

function checkResetTokenValid(){
	
    var validStatus = "unknown";
    
    var querystring = window.location.querystring;
    var rst = querystring["rst"];
	
	if (rst){
		$.fn.colorbox({
					width:'540', 
					height: '210',
					inline:true, 
					open: true,
					href:'#lost_password_reset'
			});	
	}
	
    var fldr = querystring["folder"];
				
    $.post('assets/SharedAJAX/lostPassword.aspx', {
            action: "check_reset_valid",
            resetToken: rst
        }, function(response) {
            switch(response){
        
                case "unknown":
                    $("#lost_password_reset_response").text("An unknown error occured, please try again.");
                    return;
                case "valid":
                    showPasswordResetInputs();
                    break;
                case "invalid":
                    $("#lost_password_reset_response").text("The password change link is no longer valid.  Please submit a new request.");
                    return;
					
            }

            
    });
   

}

function passwordMatchCheck(){

    if( compareTextFields("new_pass", "new_pass_retype") ){
				    
        $("#lost_password_reset_response").text("Passwords Match");
    
    }
    else{
    
        $("#lost_password_reset_response").text("Passwords DO NOT Match");
    
    }

}

function passwordLengthCheck(){

    var newPass = document.getElementById("new_pass").value;
    if(newPass == ""){
        return false;
    }
    
    return true;

}

function compareTextFields(field1, field2){

    var field1_value = document.getElementById(field1).value;
    var field2_value = document.getElementById(field2).value;

    if(field1_value == field2_value){
    
        return true;

    }
    else{

        return false;

    }

}


window.location.querystring = (function() {
 
    // by Chris O'Brien, prettycode.org
 
    var collection = {};
 
    // Gets the query string, starts with '?'
 
    var querystring = window.location.search;
 
    // Empty if no query string
 
    if (!querystring) {
        return { toString: function() { return ""; } };
    }
 
    // Decode query string and remove '?'
 
    querystring = decodeURI(querystring.substring(1));
 
   // Load the key/values of the return collection
 
    var pairs = querystring.split("&");
 
    for (var i = 0; i < pairs.length; i++) {
 
        // Empty pair (e.g. ?key=val&&key2=val2)
 
        if (!pairs[i]) {
            continue;
        }
 
        // Don't use split("=") in case value has "=" in it
 
        var seperatorPosition = pairs[i].indexOf("=");
 
        if (seperatorPosition == -1) {
            collection[pairs[i]] = "";
        }
        else {
            collection[pairs[i].substring(0, seperatorPosition)] 
                = pairs[i].substr(seperatorPosition + 1);
        }
    }
 
    // toString() returns the key/value pairs concatenated
 
    collection.toString = function() {
        return "?" + querystring;
    };
 
    return collection;
})();
