// JavaScript Document

//Page Name
function getPageName(){
	var sPath = window.location.pathname;
	var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
	return sPage;
}

// Removes the outline border of Al Links
window.onload = blur_all_links;
function blur_all_links(){
	var links = document.getElementsByTagName("a");
	var links_count = links.length;
	for(var i=0; i<links_count; i++){
		links[i].onfocus = blur_it;
	}
}
function blur_it(){
	if(this.blur){
		this.blur();
	}
}

//Check if a variable is an array of scaler
function isArray(obj) {
	//returns true is it is an array
	if (obj.constructor.toString().indexOf("Array") == -1)
		return false;
	else
		return true;
}

//Trim the string from both ends
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

// Check for Numeric Value
function checkNumeric(number){
	Regex = /^[0-9]+$/;
	if(!number.match( Regex )){
		return false;
	}
	return true;
}

//Date in a format of yyyy-mm-dd
function formatedDate(d){
	var year = d.getFullYear();
	var month = d.getMonth()+1;
	var date = d.getDate();
   
	var formated_date = year+"-";
	if(month < 10){formated_date += "0";}formated_date += month+"-";
	if(date < 10){formated_date += "0";}formated_date += date;
	
	return formated_date;
}

//User Manegement
function checkUserName(userName){
	if(userName == ""){
		alert('Please enter a username');
		return false;
	}else if(userName.length < 3 || userName.length > 20){
		alert('Please enter a UserName of 3 to 20 characters');
		return false;
	}else{
		Regex = /^[0-9a-zA-Z_]+$/;
		if(!userName.match( Regex ) || userName.length < 3){
			alert("Please enter a valid Login ID of 3 or more characters.\nLogin ID should contain alphanumeric characters and underscore only.");
			return false;
		}
	}
	return true;
}
function checkPassword(passWord){
	if(passWord=="" || passWord.length < 6){
		alert('Please enter Password of atleast 6 characters');
		return false;
	}else{
		Regex = /[^\w\+\-\!\@\#\$\%\^\&\*\?]/;
		if(passWord.match( Regex )){
			alert("Please enter a valid Password");
			return false;
		}
	}
	return true;
}
function passwordStrength(password, passwordStrengthText, passwordStrengthContainer){
	var desc = new Array();
	desc[1] = "Very Weak";
	desc[2] = "Weak";
	desc[3] = "Better";
	desc[4] = "Medium";
	desc[5] = "Strong";
	desc[6] = "Strongest";

	var score   = 1;
	if (password.length > 6) score++;											//if password bigger than 6 give 1 point
	if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;	//if password has both lower and uppercase characters give 1 point
	if (password.match(/\d+/)) score++;											//if password has at least one number give 1 point
	if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) )	score++;			//if password has at least one special caracther give 1 point
	if (password.length > 12) score++;											//if password bigger than 12 give another 1 point
	
	if(password.length == 0){
		document.getElementById(passwordStrengthText).innerHTML = "Password not entered";
		document.getElementById(passwordStrengthContainer).className = "strength0";
	}else{
		document.getElementById(passwordStrengthText).innerHTML = desc[score];
		document.getElementById(passwordStrengthContainer).className = "strength" + score;
	}
}
function checkNIC(nic_number){
	Regex = /^\d{5}-\d{7}-\d{1}$/;
	if(!nic_number.match(Regex)){
		alert('Phone Enter a valid NIC Number');
		return false;
	}
	return true;
}
function checkPhoneNumber(phoneNumber){
	Regex = /^\d{10,11}$/;
	if(!phoneNumber.match(Regex)){
		alert('Phone Enter a valid phone number');
		return false;
	}
	return true;
}
function checkMobileNumber(mobileNumber){
	Regex = /^\d{11}$/;
	if(!mobileNumber.match(Regex)){
		alert('Phone Enter a valid mobile number');
		return false;
	}
	return true;
}
function checkEmailAddress(email){
	Regex = /^([0-9a-zA-Z]+([_.-]?\w+)*@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(.){1}[a-zA-Z]{2,4})+$/;
	if(!email.match( Regex )){
		alert('Please Enter a valid email address');
		return false;
	}
	return true;
}

//Scratch Card
function checkSerialNumber(serialnumber){
	if(serialnumber == ""){
		alert("Please enter a Serial Number");
		return false;
	}else if(serialnumber.length != 8){
		alert("Please enter a valid serial number");
		return false;
	}else if(!checkNumeric(serialnumber)){
		return false;
	}
	return true;
}

// return the value of the radio button that is checked, return an empty string if none are checked, or there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}
// set the radio button with the given value as being checked do nothing if there are no radio buttons if the given value does not exist, all the radio buttons are reset to unchecked
function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

//Blink IT
function blinkIt() {
	if (!document.all) return;
	else {
		for(i=0;i<document.all.tags('blink').length;i++){
			s=document.all.tags('blink')[i];
			s.style.visibility=(s.style.visibility=='visible')?'hidden':'visible';
		}
	}
}

//Ajax Output to Array
function AjaxOutputToArray(data){
	data = data.split("|^^^|");
	for(i=0; i<data.length;i++){
		data[i] = data[i].split("|^|");
	}
	return data;
}

//Add Options to List Box
function addOption(selectbox,text,value ){
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	selectbox.options.add(optn);
}