/* This function checks the strength of the password provided as parameter
 * it returns one of the following strings: "invalid","weak","medium","strong"
 */
function checkPasswordStrength(password)
{
	alert(password);
	var strength; //return value
	var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
	var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
	var enoughRegex = new RegExp("(?=.{6,}).*", "g");
	
	if (password.length==0) {
		strength="invalid";
	} else if (false == enoughRegex.test(password)) {
		strength="weak";
	} else if (strongRegex.test(password)) {
		strength="strong";
	} else if (mediumRegex.test(password)) {
		strength="medium";
	} else {
		strength="weak";
	}
	
	return strength;
}

function checkUsernameExists(checkUrl,username)
{
	$.ajax({url: checkUrl, dataType: "text", complete: setUsernameCheckResult()});
}

function setUsernameCheckResult()
{
	alert("jeej");
}

/**
 * Controleer of emailStr een enmail adres is
 * @param emailStr
 * @return
 */

function isEmail(emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		return false;
	}
	var user=matchArray[1]
	var domain=matchArray[2]

    if (user.match(userPat)==null) {
	    return false;
	}
	
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
			return false
		    }
	    }
	    return true
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
	    return false
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
	    domArr[domArr.length-1].length>6) {
	   // the address must end in a two letter or other TLD including museum
	   return false;
	}

	// Make sure there's a host name preceding the domain.
	if (len<2) {
	   return false;
	}

	// If we've got this far, everything's valid!
	return true;
}

