// Validates if given date is valid
function isDate(day, month, year) {
   var date = new Date(month + "/" + day + "/" + year);
   return date.getMonth() + 1 == month && date.getDate() == day && date.getFullYear() == year;
}

// Validates required fields to Login correctly
function validateLoginFields(userErrorMessage, passwordErrorMessage) {
	var fieldUserName = document.getElementsByName("userToLogin.userName");
	var fieldPassword = document.getElementsByName("userToLogin.password");

	if (fieldUserName[0].value == "") {
		alert(document.getElementById('UserRequiredMessage').value);
		return false;
	}	
	if (fieldPassword[0].value == "") {
		alert(document.getElementById('PasswordRequiredMessage').value);
		return false;
	}
	
	return true;
}


//Returns true or false, wheter a certain input key is a number or not
function isNumberKey(evt) {
	var chrCode = (evt.which) ? evt.which : evt.keyCode;
    
    // BackSpace allowed
    if (chrCode == 8) {
    	return false;
    }

    if (chrCode > 31 && (chrCode < 48 || chrCode > 57))
    	return false;

	return true;
}

function isValidUserNameCharacter(evt) {
	var chrCode = (evt.which) ? evt.which : evt.keyCode;
	
    // BackSpace allowed
    if (chrCode == 8) 
    	return true;

    // Tab allowed
    if (chrCode == 9) 
    	return true;

	// Arrows allowed
    if (chrCode >= 37 && chrCode <= 38)
    	return true;

	if (chrCode == 40) 
    	return true;

	// Letters 0-9 allowed
    if (chrCode >= 48 && chrCode <= 57)
    	return true;
		
	// Letters A-Z allowed
    if (chrCode >= 65 && chrCode <= 90)
    	return true;

	// Letters a-z allowed
    if (chrCode >= 97 && chrCode <= 122)
    	return true;

	// Characters {.|-|_} allowed
    if (chrCode == 46 || chrCode == 45 || chrCode == 95)
    	return true;

	// Any other character is not allowed
	return false;
}

function validateInputCharacter(evt) {
	var chrCode = (evt.which) ? evt.which : evt.keyCode;
	
    // Character (') not allowed 
    if (chrCode == 39) 
    	return false;

	// Any other character is allowed
	return true;

/*
    // BackSpace allowed
    if (chrCode == 8) 
    	return true;

    // Tab allowed
    if (chrCode == 9) 
    	return true;

	// Arrows allowed
    if (chrCode >= 37 && chrCode <= 40)
    	return true;

	// Letters A-Z allowed
    if (chrCode >= 65 && chrCode <= 90)
    	return true;

	// Letters a-z allowed
    if (chrCode >= 97 && chrCode <= 122)
    	return true;

	// Numbers allowed
    if (chrCode >= 48 && chrCode <= 57)
    	return true;

	// Characters {.|-|_|,|!|:|;|+|=|?|space} allowed
    if (chrCode == 46 || 
    	chrCode == 45 || 
    	chrCode == 95 || 
    	chrCode == 44 || 
    	chrCode == 33 || 
    	chrCode == 58 || 
    	chrCode == 59 || 
    	chrCode == 43 || 
    	chrCode == 61 || 
    	chrCode == 63 || 
    	chrCode == 32)
    	return true;

	// Any other character is not allowed
	return false;
*/
 
}

//Returns true or false, wheter a certain text has blank spaces or not
function hasBlankSpaces(text) {
	var textArray = new Array();
	textArray = text.split(' ');
	return (textArray.length > 1);
}

//Shows the element which belongs with the given id
function showElement(elementId) {
	document.getElementById(elementId).style.display = "block";
}

//Hides the element which belongs with the given id
function hideElement(elementId) {
	document.getElementById(elementId).style.display = "none";	
}

//Enables the element which belongs with the given id
function enableElement(elementId) {
	document.getElementById(elementId).disabled = false;
}

//Disables the element which belongs with the given id
function disableElement(elementId) {
	document.getElementById(elementId).disabled = true;
}

// Validates if a certain email is valid or not
function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length-1) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
		return false;
    } else if (email.indexOf("@.") >=0) { // @ and period together is not valid
		return false;
    } else if (email.indexOf(".") == email.length-1) {  // . must not be the last character
		return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

