//var serverUrl = "http://fxws0212.filex.com/Authentication/";
var bIE = (window.navigator.appVersion.indexOf("MSIE") > -1);
var bFirstFocus = true;
function CreateHttpRequest(){
	if(bIE){
		return new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return new XMLHttpRequest();
	}
}
function KeyEntered(e){
	var entryControl = document.getElementById("txtUsername");
	if(entryControl.value.substr(0,4) == "<Ent"){
		entryControl.value = "";
	}
	if(bIE){
		if(event.keyCode == 13){
			document.getElementById("txtPassword").Focus();
		}
	}else{
		if(e.keyCode == 13){
			document.getElementById("txtPassword").Focus();
		}
	}
}
function KeyEnteredPassword(e){
	if(bIE){
		if(event.keyCode == 13){
			Authenticate();
		}
	}else{
		if(e != null){
			if(e.keyCode == 13){
				Authenticate();
			}
		}
	}
}
function KeyEnteredConfirmPassword(e){
	if(bIE){
		if(event.keyCode == 13){
			ChangePassword();
		}
	}else{
		if(e.keyCode == 13){
			ChangePassword();
		}
	}
}

		
function EnteredControl(entryControl, bGainingFocus){
	if(bGainingFocus){
		if(entryControl.value.substr(0,4) == "<Ent"){
			if(bFirstFocus){
				bFirstFocus = false;
			}else{
				entryControl.value = "";
			}
		}else{
		}
	}else{
		if(entryControl.value == ""){
			entryControl.value = "<Enter email address or user id>";
		}
	}
}
function SendAccountMessage(sMessage){
	try{
		var objFrmAccountMessage = document.getElementById("frmAccountMessage");
		var objAccountMessage = document.getElementById("AccountMessage");
		if(objFrmAccountMessage != null){
			if(objAccountMessage != null){
				objAccountMessage.value = sMessage;
				objFrmAccountMessage.submit();
			}
		}
	}catch(ex){
		objMessageContent.innerHTML = "<div class='important' id='messageContent'>" + ex.Description + "</div>";
	}
}
function ChangePassword(){
	var objForm = document.getElementById("frmSignIn");
	var objMessageContent = document.getElementById("message");
	var sPassword = document.getElementById("txtOldPassword").value;
	var sNewPassword = document.getElementById("txtNewPassword").value;
	var sConfirmNewPassword = document.getElementById("txtConfirmNewPassword").value;
	if(sNewPassword != sConfirmNewPassword){
		objMessageContent.innerHTML = '<div class="importantSmall" id="messageContent"><span style="color: #444;">Password and Retyped Password are not equal.</span><BR></div>';					
	}else{
		objMessageContent.innerHTML = '<div class="importantSmall" id="messageContent"><span style="color: #444;">Sending Password Change Request</span><BR><img src="img/loading3.gif"></div>';
		var httpRequest = CreateHttpRequest();
		var plainText = sPassword + "|-|" + sNewPassword + "|-|" + sConfirmNewPassword;
		var cypherText = ToHex(plainText);
		var message = "passwordChangeValues=" + cypherText;
		httpRequest.open("POST", serverUrl + "?action=6", false);
		httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		httpRequest.send(message);
		var responseText = httpRequest.responseText;
		if(responseText == "success"){
			SendAccountMessage("Password change successful.");
		}else{
			objMessageContent.innerHTML = "<div class='importantSmall' id='messageContent'>" + responseText + "</div>";
		}
	}
}
function writeToDisk(writeString) {

var fso = new ActiveXObject("Scripting.FileSystemObject"); 

var a = fso.CreateTextFile("C:\\test.txt", true); 
a.WriteLine(writeString); 

a.Close(); 
}

function Authenticate(){
	var httpRequest = CreateHttpRequest();
	var objForm = document.getElementById("frmSignIn");
	var userId = objForm.txtUsername.value;
	var password = objForm.txtPassword.value;
	var publicPc = objForm.chkPublicPc.checked ? 1 : 0;
	var autoSignIn = objForm.chkAutoSignIn.checked ? 1 : 0;
	var rowPreference = objForm.rowPreference.value;
	var plainText = userId + "|-|" + password + "|-|" + autoSignIn + "|-|" + publicPc;
	var cypherText = ToHex(plainText);
	var message = "action=4&authValues=" + cypherText;
	var objMessageContent = document.getElementById("message");
	objMessageContent.innerHTML = '<div class="important" id="messageContent"><span style="color: #444;">Sending Sign in Request</span><BR><img src="img/loading3.gif"></div>';
	
	httpRequest.open("POST", serverUrl + "?" + message, false);
	
				
	httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	httpRequest.send(message);
	var responseText = httpRequest.responseText;
	if(responseText.indexOf("success") >= 0){
		objMessageContent.innerHTML = '<div class="important" id="messageContent"><span style="color: #444;">Sign in Successful. Attempting redirect...</span><BR><img src="img/loading3.gif"></div>';
		var objPostForm = document.getElementById("postForm");
		if(objPostForm != null){
			objPostForm.submit();
		}else{
		
			var sRedirect = objForm.redirectUrl.value;
			document.location = sRedirect;
		}
	}else{
		document.getElementById("message").innerHTML = "<div class=\'important\' id=\'messageContent\'>" + responseText + "</div>";
	}
}

// toAscii converts characters to decimal ascii values
// only works for space (32) through tilde (126)
// but that is sufficient
function toAscii (charVar) {
	// build printable charset string
	var symbols = " !\"#$%&'()*+,-./0123456789:;<=>?@"
	var lcaseChars = "abcdefghijklmnopqrstuvwxyz"
	var charset=symbols;
	var pos;
	charset+= lcaseChars.toUpperCase();
	charset+= "[\\]^_`";
	charset+= lcaseChars;
	charset+= "{|}~";
	pos = charset.indexOf(charVar);
	if (pos >-1){
		Ascii_Decimal = 32 + pos;
		return (32 + pos);
	}
	return(0); // If not in range 32-126 return ZERO
}
// routines to convert decimal numbers
function decimal(dec){
	this.dec=dec;
	this.toBinary=function() { return this.dec.toString(2); }
	this.toHex=function() { return this.dec.toString(16).toUpperCase(); }
	this.toOctal=function() { return this.dec.toString(8); }
}

function ToHex(inputText) {
	
	var letter;
	var outPutString="";
	var tempVal=0;
	for (var i=0; i < inputText.length; i++) {
		letter = inputText.charAt(i);
		tempVal = new decimal(toAscii(letter)).toHex();
		outPutString += tempVal;
	}
	return(outPutString);
}



