
//Functions relating to resetting a user's password for Operatus
var userEmail;

function resetReadyFunction()
{
	//console.log("Reset: Call to readyFunction...");
	
	var urlCode = getCodeFromURL();
	
	queryString = "userID=NOONE";
	queryString+="&commandID=checkpassreset";
	queryString+=("&payload="+urlCode);
	
	//Fetch user's reset info from server
	$.ajax({type:"POST", url:"../php/sendOpCommand.php", data:queryString, dataType:"text/xml", success:function(msg){resetInfoCallback(msg);} });
}

function handleForgotClick(source)
{
	//console.log("Reset.js: Call to handleForgotClick...");

	//Make sure given email is valid according to W3C format.
	
	//console.log("stage 1");
	
	var addrSpecPattern = /^(\S+)\100([a-z0-9]([-a-z0-9]*[a-z0-9])?\.)+((a[cdefgilmnoqrstuwxz]|aero|arpa)|(b[abdefghijmnorstvwyz]|biz)|(c[acdfghiklmnorsuvxyz]|cat|com|coop)|d[ejkmoz]|(e[ceghrstu]|edu)|f[ijkmor]|(g[abdefghilmnpqrstuwy]|gov)|h[kmnrtu]|(i[delmnoqrst]|info|int)|(j[emop]|jobs)|k[eghimnprwyz]|l[abcikrstuvy]|(m[acdghklmnopqrstuvwxyz]|mil|mobi|museum)|(n[acefgilopruz]|name|net)|(om|org)|(p[aefghklmnrstwy]|pro)|qa|r[eouw]|s[abcdeghijklmnortvyz]|(t[cdfghjklmnoprtvwz]|travel)|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw])$/i;
	
	userEmail = $("#username").val();
	var searchVal = userEmail.search(addrSpecPattern);
	
	//console.log("Stage 2");
	
	queryString = "userID="+userEmail;
	queryString+="&commandID=startpassreset";
	
	if(searchVal!=-1)
	{
		//console.log("Stage 3");
		//console.log("Reset.js: Email is OK");
		
		var urlString;
		if(source=="front")
		{
			urlString = "./php/sendOpCommand.php";
		}
		else
		{
			urlString = "../php/sendOpCommand.php";
		}
		
		$.ajax({type:"POST", url:urlString, data:queryString, dataType:"text/xml", success:forgotClickCallback});	
	}
	else
	{
		//console.log("Reset.js: Invalid email");
	}
}

function forgotClickCallback()
{
	//console.log("Reset.js: Call to forgotClickCallback...");
	
	//Change 'badInfo' div to indicate an email was sent to indicated email.
	$("#badInfo").html("An email has been sent to <b>"+userEmail+"</b> with instructions on resetting your password.");
}

function getCodeFromURL()
{
	//console.log("Reset.js: Call to getCodeFromURL...");
	var returnString;
	
	var urlString = window.location.href;
	
	//?c=<randomalphanumericstring>
	
	var urlPattern = /(c)(=)(\w+)/;
	var result = null;
	result = urlPattern.exec(urlString);
	
	if(result==null)
	{
		//console.log("No match.");
	}	
	else
	{
		//for(i in result)
		//{
		//	//console.log("i: "+i+" "+result[i]);
		//}
		
		returnString = result[3];
	}
			
	//console.log("Returning: "+returnString);
	
	return returnString;
}

function getUserIDFromURL()
{
	//console.log("Reset.js: Call to getUserIDFromURL...");
	
	var returnString = "";
	
	var urlString = window.location.href;
	
	var acc = "";
	var startIndex = urlString.indexOf('user');
	var i = startIndex+5;
		
	while(urlString[i]!='&'&&i<urlString.length)
	{
		acc = acc + urlString[i]
		i = i+1;
	}
	
	returnString = acc;
			
	//console.log("Returning: "+returnString);
	
	return returnString;
}

function resetInfoCallback(serverMsg)
{
	//console.log("Reset.js: Call to resetInfoCallback...");
	
	//Server will tell us if there was a URL match or not.
	//console.log("serverMsg: "+serverMsg);
		
	//Check if URL matches
	
	var urlMatch = false;
	
	if(serverMsg=="OK")
	{
		urlMatch = true;
	}
	
	if(urlMatch)
	{
		$("#resetForm").show();
	}
	else
	{
		//Display error
		$("#linkError").show();
	}
}

function handleReset()
{
	//console.log("Reset.js: Call to handleReset...");
	
	$("#passError").hide();
	
	var passIsValid = false;
	
	var newPassWd1;
	var newPassWd2;
	
	newPassWd1 = $("#pass1").val();
	newPassWd2 = $("#pass2").val();
	
	if(newPassWd1!=""&&newPassWd2!="")
	{
		if(newPassWd1==newPassWd2)
		{
			passIsValid = true;
		}
	}
	
	if(passIsValid)
	{
		//console.log("Reset.js: Pass fields are valid!");
	
		//Send update command
		var commandID = "updateuser";
		
		var userID = getUserIDFromURL();
		
		var planType = "NOCHANGE";
		
		var queryString = "";
		queryString = "userID="+userID;
		queryString += "&commandID=updateuser";
		
		//plan_OP_passWd
		queryString += "&payload="+planType+"_OP_"+newPassWd1;
		
		$.ajax({type:"POST", url:"../php/sendOpCommand.php", data:queryString, dataType:"text/xml", success:resetSubmitCallback});
	}
	else
	{
		//console.log("Reset.js: Pass fields are NOT valid.");
		$("#passError").show();
	}
}

function resetSubmitCallback()
{
	//Change feedback line on page 
	//console.log("Reset.js: Call to resetSubmitCallback...");
	
	$("#resetForm").hide();
	$("#successDiv").show();
}
