/**
 * @author Noah Keitel
 */


function toggleSRC(id,location){
	id.src = location;
	id.style.cursor="pointer";
}

function toggleDisplay(id){
	var d = document.getElementById(id).style.display;
	
	if(d=="inline"){
		document.getElementById(id).style.display = "none";
	}else{
		document.getElementById(id).style.display = "inline";
	}
}

function articleExpandCollapse(id1,id2){
	toggleDisplay(id1);
	toggleDisplay(id2);
}



function showStream(){
	document.getElementById('streamContainer').style.display = 'inline';
	document.getElementById('transactionsContainer').style.display = 'none';
	document.getElementById('changePasswordContainer').style.display = 'none';
}

function showTransactions(){
	document.getElementById('streamContainer').style.display = 'none';
	document.getElementById('transactionsContainer').style.display = 'inline';
	document.getElementById('changePasswordContainer').style.display = 'none';
}

function showChangePassword(){
	document.getElementById('streamContainer').style.display = 'none';
	document.getElementById('transactionsContainer').style.display = 'none';
	document.getElementById('changePasswordContainer').style.display = 'inline';
}


function passwordConfirmAll(){
	var cpv = document.getElementById('currentPasswordVerified').value;
	var npv = document.getElementById('newPasswordVerified').value;
	
	if(cpv=="true" && npv=="true"){
		document.getElementById('pwdChangeBtn').disabled = false;
	}else if(cpv=="false" && npv=="true"){
		document.getElementById('pwdChangeBtn').disabled = true;
	}else if(cpv=="true" && npv=="false"){
		document.getElementById('pwdChangeBtn').disabled = true;
	}else{
		document.getElementById('pwdChangeBtn').disabled = true;
	}
}


function validateCurrentPassword(uId,pwd){
	var o = xmlHttpObject.o();

    if (o == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    
	url = "cms/class/class.ValidatePassword.php";

    params = "uId="+uId+"&p="+pwd;
    params = params + "&sid=" + Math.random();
    
    o.open("POST", url, true);
    o.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	o.onreadystatechange = function(){
		stateChanged(o,"validateCurrentPasswordResult");
	}
	
    o.send(params);
}

function updatePassword(uId,cPwd,nPwd){
	var o = xmlHttpObject.o();

    if (o == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    
	url = "cms/class/class.UpdatePassword.php";

    params = "uId="+uId+"&cPwd="+cPwd+"&nPwd="+nPwd;
    params = params + "&sid=" + Math.random();
    
    o.open("POST", url, true);
    o.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	o.onreadystatechange = function(){
		stateChanged(o,"updatePasswordResult");
	}
	
    o.send(params);
}

function updatePasswordResult(value){
	if(value==true){
		document.getElementById('passwordMessage').innerHTML = "Your password was updated successfully.";
		resetPasswordUpdateItems();
	}else if(value==false){
		document.getElementById('passwordMessage').innerHTML = "Your password failed to update.";
	}else{
		document.getElementById('passwordMessage').innerHTML = "An error occured. If this problem persists please contact your system administrator.";
	}
}

function resetPasswordUpdateItems(){
	document.getElementById('currentPassword').value="";
	document.getElementById('newPassword1').value="";
	document.getElementById('newPassword2').value="";
	document.getElementById('confirmCurrentPasswordResult').style.display = "none";
	document.getElementById('newPassword1Result').style.display = "none";
}

function validateCurrentPasswordResult(value){
	var imgId = "confirmCurrentPasswordResult";
	if(value==true){
		toggleImgSrc(imgId,'images/true.png');
		document.getElementById('currentPasswordVerified').value=true;
		passwordConfirmAll();
	}else if(value==false){
		toggleImgSrc(imgId,'images/false.png');
		document.getElementById('currentPasswordVerified').value=false;
		passwordConfirmAll();
	}else{
		document.getElementById('currentPasswordVerified').value=false;
		passwordConfirmAll();
	}
}


function confirmNewPassword(v1,v2,action){
	var pwdRegExNum = new RegExp("[0-9]");
	var pwdRegExUpper = new RegExp("[A-Z]");
	var pwdRegExLower = new RegExp("[a-z]");
	var pwdRegExOnlyNumLet = new RegExp("^[a-zA-Z0-9]+$");
	 
	if(v1.length>=8 && v1.match(pwdRegExNum) && v1.match(pwdRegExUpper) && v1.match(pwdRegExLower) && v1.match(pwdRegExOnlyNumLet)){
		if(confirmValues(v1,v2,action)){
			document.getElementById('passwordMessage').innerHTML = "";
			passwordConfirmAll();
		}else{
			passwordConfirmAll();
		}
	}else{
		document.getElementById('newPasswordVerified').value=false;
		var actionArray = action.split("-");
		toggleImgSrc(actionArray[1],'images/false.png');
		document.getElementById('passwordMessage').innerHTML = "Your password must contain:<br/>1. 8 Characters<br/>2. One Number<br/>3. One Upper Case Letter<br/>4. One Lower Case Letter";
		passwordConfirmAll();
	}
}





function confirmValues(v1,v2,action){
	var actionArray = action.split("-");
	var currentAction = actionArray[0];
	
	if(currentAction=="toggleImgTrueFalse"){
		var toggleId = actionArray[1];
		
		if(v1==v2){
			toggleImgSrc(toggleId,"images/true.png");
			document.getElementById('newPasswordVerified').value=true;
			return true;
		}else{
			toggleImgSrc(toggleId,"images/false.png");
			document.getElementById('newPasswordVerified').value=false;
			return false;
		}
	}else{
		
	}
	
	
	
}

function toggleImgSrc(ID,imgSrc){
	document.getElementById(ID).style.display = "inline";
	document.getElementById(ID).src = imgSrc;
}
