
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10; function isInteger(s)
{ var i;
for (i = 0; i < s.length; i++)
{ 
// Check that current character is number.
var c = s.charAt(i);
if (((c < "0") || (c > "9"))) return false;
}
// All characters are numbers.
return true;
}
 
function stripCharsInBag(s, bag)
{ var i;
var returnString = "";
// Search through string's characters one by one.
// If character is not in bag, append to returnString.
for (i = 0; i < s.length; i++)
{ 
// Check that current character isn't whitespace.
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
 
function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
 
function ValidatePhone(ctrl, blank){
var Phone=ctrl; 
if(blank == "1") {
	if ((Phone.value==null)||(Phone.value=="")){
	alert("Please enter Phone No.");
	Phone.focus();
	return false;
	}
}
if (checkInternationalPhone(Phone.value)==false){
alert("Invalid Phone No.! Allowed only Numeric and symbols like are:  -, (, )  only.");
Phone.value="";
Phone.focus();
return false;
}
return true;
}

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

function isEmail(email, msg){
	if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(trim(email.value)))){
	 alert(msg);
	 email.focus();
	 return false;
	 } else return true;
}

function isUrl(s, msg) {
  	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ 
  	if(!regexp.test(s.value)) {
		alert(msg);
		s.focus();
		return false;
	} else return true;
}

function isValid(ctrl, chkval, msg){
	if(trim(ctrl.value)== trim(chkval)){
		alert(msg);
		ctrl.focus();
		return false;
	} else return true;
}

Array.prototype.in_array = function(p_val) {
	for(var i = 0, l = this.length; i < l; i++) {
		if(this[i] == p_val) {
			return true;
		}
	}
	return false;
}

function confirmDelete(url){
	if (confirm("Do you really want to delete this record?")){
		return true;
	}
	return false;
}

function getMinutes(){
	hr = document.forms[0].hours.value;
	if(trim(hr) != "") document.forms[0].mins.value = "00";
	else document.forms[0].mins.value = "";
}
	 
function ValidateLogin(frm){
	if(!isValid(frm.username, "", "Please enter Username.")) return false;
	if(!isEmail(frm.username, "Invalid Username.")) return false;
	if(!isValid(frm.userpwd, "", "Please enter Password.")) return false; 
	return true;
}

function ValidateForgotPwd(frm){
	if(!isValid(frm.username, "", "Please enter E-mail Address.")) return false;
	if(!isEmail(frm.username, "Invalid E-mail Address.")) return false;
	return true;
}

function ValidateChangePwd(frm){ 
	if(!isValid(frm.userpwd, "", "Please enter Old Password.")) return false;
	str = frm.userpwd.value;
	if(str.length < 5) { alert("Sorry, your password length should be between 5 to 15 characters."); frm.userpwd.focus(); return false; }
	if(str.length > 15) { alert("Sorry, your password length should be between 5 to 15 characters."); frm.userpwd.focus(); return false; }
	if(!isValid(frm.newpwd, "", "Please enter New Password.")) return false;
	str = frm.newpwd.value;
	if(str.length < 5) { alert("Sorry, your password length should be between 5 to 15 characters."); frm.newpwd.focus(); return false; }
	if(str.length > 15) { alert("Sorry, your password length should be between 5 to 15 characters."); frm.newpwd.focus(); return false; }
	if(!isValid(frm.newpwd, frm.userpwd.value, "Old Password and New Password should not match.")) return false;
	if(!isValid(frm.repwd, "", "Please re-enter New Password.")) return false;
	str = frm.repwd.value;
	if(str.length < 5) { alert("Sorry, your password length should be between 5 to 15 characters."); frm.repwd.focus(); return false; }
	if(str.length > 15) { alert("Sorry, your password length should be between 5 to 15 characters."); frm.repwd.focus(); return false; }
	if(trim(frm.repwd.value) != trim(frm.newpwd.value)) { alert("New password and re-enter password do not match."); frm.repwd.focus();  return false;}
	return true;
}

function ValidateChangeEmail(frm){
	if(!isValid(frm.newemail, "", "Please enter New E-mail Address.")) return false;
	if(!isEmail(frm.newemail, "Invalid New E-mail Address.")) return false;
	if(trim(frm.oldemail.value) == trim(frm.newemail.value)) { alert("Current E-mail and New E-mail should not match."); frm.newemail.focus(); return false;}
	/*if(!isEmail(frm.reemail, "Please enter confirm New E-mail Address.")) return false;
	if(trim(frm.reemail.value) != trim(frm.newemail.value)) { alert("NOT_CONFIRM_EMAIL"); frm.reemail.focus();  return false;}*/
	return true;
}

function ValidateContact(frm){
	if(!isValid(frm.cn_name, "", "Please enter Name.")) return false;
	
	if(trim(frm.cn_phone.value) != "" )
	{
		var iChars = "!@$%^&=[]~`\\\';,./{}|\":<>?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var i = 0; i < frm.cn_phone.value.length; i++)
		{ 
			if (iChars.indexOf(frm.cn_phone.value.charAt(i)) != -1)
			{
				alert ("Invalid Phone No.! Allowed only Numeric and symbols like are:  -, (, )  only.");
				frm.cn_phone.focus();
				return false;
			}
		}
	}
	if(!isValid(frm.cn_email, "", "Please enter E-mail.")) return false;
	if(!isEmail(frm.cn_email, "Please enter a valid E-mail.")) return false;
	if(!isValid(frm.cn_comment, "", "Please enter Comments.")) return false;
	if(!isValid(frm.cn_code, "", "Please enter code as shown in the given image.")) return false;
	return true;
}

function ValidateRegister(frm){
	if(!isValid(frm.cn_name, "", "Please enter Name.")) return false;
	if(!isValid(frm.cn_email, "", "Please enter E-mail.")) return false;
	if(!isEmail(frm.cn_email, "Please enter a valid E-mail.")) return false;
	if(!isValid(frm.cn_query, "", "Please Enter Query")) return false;
	return true;
}


function GetInvoice(frm){
	if(frm.inv_check.checked == true) {
		frm.mem_inv_company.value = frm.mem_company.value;
		frm.mem_inv_designation.value = frm.mem_designation.value;
		frm.mem_inv_street.value = frm.mem_street.value;
		frm.mem_inv_add2.value = frm.mem_add2.value;
		frm.mem_inv_add3.value = frm.mem_add3.value;
		frm.mem_inv_city.value = frm.mem_city.value;
		frm.mem_inv_state.value = frm.mem_state.value;
		frm.mem_inv_country.value = frm.mem_country.value;
		frm.mem_inv_postcode.value = frm.mem_postcode.value;
		frm.mem_inv_phone.value = frm.mem_phone.value;
	} else {
		frm.mem_inv_company.value = "";
		frm.mem_inv_designation.value = "";
		frm.mem_inv_street.value = "";
		frm.mem_inv_add2.value = "";
		frm.mem_inv_add3.value = "";
		frm.mem_inv_city.value = "";
		frm.mem_inv_state.value = "";
		frm.mem_inv_country.value = "";
		frm.mem_inv_postcode.value = "";
		frm.mem_inv_phone.value = "";
	}
}

function CheckOther(lstval, chkval, itemId){
	if(lstval == chkval) {
		document.getElementById(itemId).style.display = "block";
	} else document.getElementById(itemId).style.display = "none";
}

function CheckFormOption(legalval, knownval){
	frm = document.frmregister;
	if(legalval == "7") {
		document.getElementById("legal_text").style.display = "block";
	} else document.getElementById("legal_text").style.display = "none";
	
	if(knownval == "6") {
		document.getElementById("known_text").style.display = "block";
	} else document.getElementById("known_text").style.display = "none";
	
}


function ValidateMember(frm){ 
	if(!isValid(frm.mem_email, "", "Please enter E-mail Address.")) return false;
	if(!isEmail(frm.mem_email, "Invalid E-mail Address.")) return false;
	if(!isValid(frm.mem_password, "", "Please enter Password.")) return false;
	str = frm.mem_password.value;
	if(str.length < 5) { alert("Sorry, your password length should be between 5 to 15 characters."); frm.mem_password.focus(); return false; }
	if(str.length > 15) { alert("Sorry, your password length should be between 5 to 15 characters."); frm.mem_password.focus(); return false; }
	if(trim(frm.repassword.value) != trim(frm.mem_password.value)){
		alert("Password and Confirm Password do not match.");
		frm.repassword.focus();
		return false;
	}
	
	if(!isValid(frm.mem_fname, "", "Please enter First Name.")) return false;
	if(!isValid(frm.mem_lname, "", "Please enter Last Name.")) return false;
	if(!isValid(frm.mem_company, "", "Please enter your Company's Name.")) return false;
	if(!isValid(frm.mem_designation, "", "Please enter your Position in Organisation.")) return false;
	if(!isValid(frm.mem_street, "", "Please enter your Street Address.")) return false;
	if(!isValid(frm.mem_city, "", "Please enter your City/Town.")) return false;
	if(!isValid(frm.mem_state, "", "Please enter your County.")) return false;
	if(!isValid(frm.mem_country, "", "Please select your Country.")) return false;
	if(!isValid(frm.mem_phone, "", "Please enter Phone No.")) return false;
	if(trim(frm.mem_phone.value) != "" )
	{	phone = frm.mem_phone;
		var iChars = "!@$%^&=[]~`\\\';,./{}|\":<>?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var i = 0; i < phone.value.length; i++)
		{ 
			if (iChars.indexOf(phone.value.charAt(i)) != -1)
			{
				alert ("Invalid Phone No.! Allowed only Numeric and symbols like are:  -, (, )  only.");
				phone.focus();
				return false;
			}
		}
	}
	
	if(trim(frm.mem_fax.value) != "" )
	{	phone = frm.mem_fax;
		var iChars = "!@$%^&=[]~`\\\';,./{}|\":<>?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var i = 0; i < phone.value.length; i++)
		{ 
			if (iChars.indexOf(phone.value.charAt(i)) != -1)
			{
				alert ("Invalid Fax number! Allowed only Numeric and symbols are:  -, (, )  only.");
				phone.focus();
				return false;
			}
		}
	}
	
	
	if(trim(frm.mem_mobile.value) != "" )
	{	phone = frm.mem_mobile;
		var iChars = "!@$%^&=[]~`\\\';,./{}|\":<>?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var i = 0; i < phone.value.length; i++)
		{ 
			if (iChars.indexOf(phone.value.charAt(i)) != -1)
			{
				alert ("Invalid Mobile number! Allowed only Numeric and symbols are:  -, (, )  only.");
				phone.focus();
				return false;
			}
		}
	}
	
	if(trim(frm.mem_url.value) != "" ){
		if(!isUrl(frm.mem_url, "Please enter valid Website Name including  http:// ")) return false;
	}
	
	if(!isValid(frm.mem_inv_company, "", "Please enter your Company's Name.")) return false;
	if(!isValid(frm.mem_inv_designation, "", "Please enter your Position in Organisation.")) return false;
	if(!isValid(frm.mem_inv_street, "", "Please enter your Street Address.")) return false;
	if(!isValid(frm.mem_inv_city, "", "Please enter your City/Town.")) return false;
	if(!isValid(frm.mem_inv_state, "", "Please enter your County.")) return false;
	if(!isValid(frm.mem_inv_country, "", "Please select your Country.")) return false;
	if(!isValid(frm.mem_inv_phone, "", "Please enter Phone No.")) return false;
	if(trim(frm.mem_inv_phone.value) != "" )
	{	phone = frm.mem_inv_phone;
		var iChars = "!@$%^&=[]~`\\\';,./{}|\":<>?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var i = 0; i < phone.value.length; i++)
		{ 
			if (iChars.indexOf(phone.value.charAt(i)) != -1)
			{
				alert ("Invalid Phone No.! Allowed only Numeric and symbols like are:  -, (, )  only.");
				phone.focus();
				return false;
			}
		}
	}
	if(!frm.mem_agreement.checked) { alert("Please confirm that you are agree with Terms and Conditions."); return false;}
	return true;
}


function ValidateProfile(frm){ 
	if(!isValid(frm.mem_fname, "", "Please enter First Name.")) return false;
	if(!isValid(frm.mem_lname, "", "Please enter Last Name.")) return false;
	if(!isValid(frm.mem_company, "", "Please enter your Company's Name.")) return false;
	if(!isValid(frm.mem_designation, "", "Please enter your Position in Organisation.")) return false;
	if(!isValid(frm.mem_street, "", "Please enter your Street Address.")) return false;
	if(!isValid(frm.mem_city, "", "Please enter your City/Town.")) return false;
	if(!isValid(frm.mem_state, "", "Please enter your County.")) return false;
	if(!isValid(frm.mem_country, "", "Please select your Country.")) return false;
	if(!isValid(frm.mem_phone, "", "Please enter Phone No.")) return false;
	if(trim(frm.mem_phone.value) != "" )
	{	phone = frm.mem_phone;
		var iChars = "!@$%^&=[]~`\\\';,./{}|\":<>?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var i = 0; i < phone.value.length; i++)
		{ 
			if (iChars.indexOf(phone.value.charAt(i)) != -1)
			{
				alert ("Invalid Phone No.! Allowed only Numeric and symbols like are:  -, (, )  only.");
				phone.focus();
				return false;
			}
		}
	}
	
	
	if(trim(frm.mem_fax.value) != "" )
	{	phone = frm.mem_fax;
		var iChars = "!@$%^&=[]~`\\\';,./{}|\":<>?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var i = 0; i < phone.value.length; i++)
		{ 
			if (iChars.indexOf(phone.value.charAt(i)) != -1)
			{
				alert ("Invalid Fax number! Allowed only Numeric and symbols are:  -, (, )  only.");
				phone.focus();
				return false;
			}
		}
	}
	
	
	if(trim(frm.mem_mobile.value) != "" )
	{	phone = frm.mem_mobile;
		var iChars = "!@$%^&=[]~`\\\';,./{}|\":<>?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var i = 0; i < phone.value.length; i++)
		{ 
			if (iChars.indexOf(phone.value.charAt(i)) != -1)
			{
				alert ("Invalid Mobile number! Allowed only Numeric and symbols are:  -, (, )  only.");
				phone.focus();
				return false;
			}
		}
	}
	
	if(trim(frm.mem_url.value) != "" ){
		if(!isUrl(frm.mem_url, "Please enter valid Website Name including  http:// ")) return false;
	}
	
	if(!isValid(frm.mem_inv_company, "", "Please enter your Company's Name.")) return false;
	if(!isValid(frm.mem_inv_designation, "", "Please enter your Position in Organisation.")) return false;
	if(!isValid(frm.mem_inv_street, "", "Please enter your Street Address.")) return false;
	if(!isValid(frm.mem_inv_city, "", "Please enter your City/Town.")) return false;
	if(!isValid(frm.mem_inv_state, "", "Please enter your County.")) return false;
	if(!isValid(frm.mem_inv_country, "", "Please select your Country.")) return false;
	if(!isValid(frm.mem_inv_phone, "", "Please enter Phone No.")) return false;
	if(trim(frm.mem_inv_phone.value) != "" )
	{	phone = frm.mem_inv_phone;
		var iChars = "!@$%^&=[]~`\\\';,./{}|\":<>?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var i = 0; i < phone.value.length; i++)
		{ 
			if (iChars.indexOf(phone.value.charAt(i)) != -1)
			{
				alert ("Invalid Phone No.! Allowed only Numeric and symbols like are:  -, (, )  only.");
				phone.focus();
				return false;
			}
		}
	}
	return true;
}

function ValidateSupport(frm){
	if(!isValid(frm.spt_name, "", "Please enter Name.")) return false;
	if(!isValid(frm.spt_company, "", "Please enter Company's Name.")) return false;
	if(trim(frm.spt_phone.value) != "" )
	{
		var iChars = "!@$%^&=[]~`\\\';,./{}|\":<>?abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var i = 0; i < frm.spt_phone.value.length; i++)
		{ 
			if (iChars.indexOf(frm.spt_phone.value.charAt(i)) != -1)
			{
				alert ("Invalid Phone No.! Allowed only Numeric and symbols like are:  -, (, )  only.");
				frm.spt_phone.focus();
				return false;
			}
		}
	}
	if(!isValid(frm.spt_email, "", "Please enter E-mail.")) return false;
	if(!isEmail(frm.spt_email, "Please enter a valid E-mail.")) return false;
	if(!isValid(frm.spt_comment, "", "Please enter Comments.")) return false;
	if(!isValid(frm.spt_code, "", "Please enter code as shown in the given image.")) return false;
	return true;
}

function PopWin(url){
	 window.open (url, "Somerset", "menubar=0, resizable=1, scrollbars=1, width=400, height=300, top=150, left=350");
}

function PopNewsletter(url){
	 window.open (url, "Somerset", "menubar=0, resizable=1, scrollbars=1, width=550, height=600, top=80, left=200");
}

function ValidateBookForm(frm){ 
	if(!isValid(frm.bk_fname, "", "Please enter First Name.")) return false; 
	if(!isValid(frm.bk_lname, "", "Please enter Last Name.")) return false;
	if(!isValid(frm.bk_email, "", "Please enter E-mail Address.")) return false;
	if(!isEmail(frm.bk_email, "Invalid E-mail Address.")) return false;
	
    if(!isValid(frm.bk_phone, "", "Please enter Phone No.")) return false; 
    if(!ValidatePhone(frm.bk_phone, "Invalid Phone No.! Allowed only Numeric and symbols like are:  -, (, )  only.")) return false;
    
    if(!isValid(frm.bk_company, "", "Please enter your Company's Name.")) return false;
    if(!isValid(frm.bk_add1, "", "Please enter Address 1.")) return false;
	if(!isValid(frm.bk_city, "", "Please enter your City/Town.")) return false;
	if(!isValid(frm.bk_state, "", "Please enter your County.")) return false;
	if(!isValid(frm.bk_country, "", "Please select your Country.")) return false;

	return true;
}

function ValidateJoin(frm){
	if(!isValid(frm.subs_name, "", "Please enter Name.")) return false;
	if(!isValid(frm.subs_email, "", "Please enter E-mail Address.")) return false; 
	if(!isEmail(frm.subs_email, "Invalid E-mail Address.")) return false;
	return true;
}
