function trim(str) {
	return str.replace(/^\s*|\s*$/g,"");
}

function strip(str) {
	return str.replace(/^\s*|\s*$|[^0-9]/g,"");
}

function checkForNull(val) {
	return 	(val == null || val == "") ;
}

function validatePin(pin) {
 
  pin.value = strip(pin.value);

	if (checkForNull(pin.value)) {
		alert("Please enter your PIN number");
		pin.focus();
		return false ;
	}

	if (pin.value.length != 15) {
		alert("Your PIN number should have 15 digits");
		pin.focus();
		return false ;
	}
	
	return true;
}

var msisdnCheck = new RegExp('^[0-9( )\+\-]+$');

function validateMSISDN(msisd, msisdnMissingMessage, msisdnInvalidMessage) {
 
	if (checkForNull(msisd.value)) {
	  if (msisdnMissingMessage == null) {
	    msisdnMissingMessage = "Please specify a phone number."
	  }
		alert(msisdnMissingMessage);
		msisd.focus();
		return false ;
	}

	if (!msisdnCheck.test(msisd.value)) {
	  if (msisdnInvalidMessage == null) {
	    msisdnInvalidMessage = "Phone numbers should only include digits (0-9)."
	  }
		alert(msisdnInvalidMessage);
		msisd.focus();
		return false ;
	}
	
	return true;
	
}

function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
		input.focus();
		input.setSelectionRange(selectionStart, selectionEnd);
  } else if (input.createTextRange) {
		var range = input.createTextRange();
		range.collapse(true);
		range.moveEnd('character', selectionEnd);
		range.moveStart('character', selectionStart);
		range.select();
  }
}

function setCaretToEnd (input) {
  setSelectionRange(input, input.value.length, input.value.length);
}

function validateUsername(input, errEmpty, errTooSmall, errOnlyAlhpaNumeric) {

	var usernameValue = input.value;
	
	if(checkForNull(usernameValue)) {
		alert(errEmpty);
		input.focus();
		return false ;
	}
		
	if (usernameValue.length < 6 ) {
		alert(errTooSmall);
		input.focus();
		return false ;
	}
	
	if (!usernameValue.match("^[\\w-_\\.\\!\\~\\*\\()=\\+\\$,]{6,32}$")) {
		alert(errOnlyAlhpaNumeric);
		input.focus();
		return false ;
	}
	
	return true;
	
}

function validatePassword(input, errEmpty, errTooSmall, errTooLong, errOnlyAlhpaNumeric) {

	var passwordValue = input.value;
	
	if(checkForNull(passwordValue)) {
		alert(errEmpty);
		input.focus();
		return false ;
	}
		
	if (passwordValue.length < 6 ) {
		alert(errTooSmall);
		input.focus();
		return false ;
	}
	
	if(passwordValue.length > 12 ) {
		alert(errTooLong);
		input.focus();
		return false ;
	}
	
	if (!passwordValue.match("^[a-zA-Z0-9]{6,12}$")) {
		alert(errOnlyAlhpaNumeric);
		input.focus();
		return false ;
	}
	
	return true;
	
}


