

function i_y2kchk(number) {
	return (number < 1000) ? number + 1900 : number; 
}

function i_datechk(month, day, year) {
	var unvaliddate = day + '/' + month + '/' + year;
	var date = new Date(year-0,month-1,day-0);
	var validdate = date.getDate() + '/' + (date.getMonth()+1) + '/' + i_y2kchk(date.getYear());
	
	if (unvaliddate != validdate) {
		return false;
	}
	return true;
}

function i_getvaliddateUTC(month, day, year, hour, minute) {
	if (i_datechk(month, day, year)) {
		var date = new Date(year-0,month-1,day-0,hour-0,minute-0,0);
		return Date.UTC(i_y2kchk(date.getYear()),date.getMonth(),date.getDate(),hour,minute,0);
	} else {
		return null;
	}
}

function i_usernamechk(username) {
	var allowed = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-1234567890"
	
	for (var i=0; i<username.length; i++) {
		if (allowed.indexOf(username.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}

function i_contentnamechk(name) {
	var allowed = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-1234567890"
	
	for (var i=0; i<name.length; i++) {
		if (allowed.indexOf(name.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}

function i_passwordchk(password, strong) {
	var space = " ";
	
	if (password.indexOf(space) != -1) {
		return false;
	}
	
	if(strong) {
		//It must start with at least one letter     
		if (!(password.match(/^[a-zA-Z]+/))) return false;
		// It must contain at least one number
		if (!(password.match(/\d/))) return false;
		// It must contain at least one uppercase letter
		if (!(password.match(/[A-Z]/))) return false;
		// It password contain at least one lowercase letter
		if (!(password.match(/[a-z]/))) return false;
		// It must contain at least one special character #,@,%,!
		if (!(password.match(/\W+/))) return false;
	} else {
		// contains either lowercase, uppercase and numbers
		if (!(password.match(/[A-Z]/)) || !(password.match(/[a-z]/)) || !(password.match(/\d/))) return false;
	}
	
	return true;
}

function i_hexidecimalchk(string) {
	var allowed = "ABCDEFabcdef1234567890"
	var count = 0;
	
	for (var i=0; i<string.length; i++) {
		if (allowed.indexOf(string.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}

function i_emailchk(email) {
	var allowed = "@.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-1234567890"
	var count = 0;
	
	for (var i=0; i<email.length; i++) {
		if (email.charAt(i) == "@") {
			count += 1;
		}
	}
	
	if(count == 1) {
		for (var i=0; i<email.length; i++) {
			if (allowed.indexOf(email.charAt(i)) == -1) {
				return false;
			}
		}
		return true;
	} else {
		return false;
	}
}

function i_alphachk(string) {
	var allowed = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_ ";	
	
	for (var i=0; i<string.length; i++) {
		if (allowed.indexOf(string.charAt(i)) == -1) {			
			return false;
		}
	}
	return true;
}

function i_alphaonlychk(string) {
	var allowed = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_";	
	
	for (var i=0; i<string.length; i++) {
		if (allowed.indexOf(string.charAt(i)) == -1) {			
			return false;
		}
	}
	return true;
}

function i_alphanumericchk(string) {
	var allowed = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_ 0123456789";
	
	for (var i=0; i<string.length; i++) {
		if (allowed.indexOf(string.charAt(i)) == -1) {
			return false;
		}		
	}
	return true;
}

function i_numericchk(string) {
	var allowed = "0123456789";
	
	for (var i=0; i<string.length; i++) {
		if (allowed.indexOf(string.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}

function i_urlchk(url) {
	var dots = 0;
	
	for (var i=0; i<url.length; i++) {
		if(url.charAt(i) == ".") dots++;
	}
	
	if((url.indexOf("http://") == -1) && dots != 2) {
		return false;
	}
	return true;
}
