//Scripts for Caps Gold Register

/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// 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 trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
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){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}




function typechk(type)
{

	if(type == "indiv")
	{
		document.getElementById("indiv_pan").style.display = "";
		document.getElementById("busi_comp").style.display = "none";
		document.getElementById("busi_vat").style.display = "none";
	}
	else
	{
		document.getElementById("indiv_pan").style.display = "none";
		document.getElementById("busi_comp").style.display = "";
		document.getElementById("busi_vat").style.display = "";
	}
        if(document.getElementById("clearmsg").innerHTML != "") {
	document.getElementById("clearmsg").innerHTML='';
	}
        
}

function validregister(frm)
{
	if(document.getElementById("Rtype1").checked == true)
	{
		var regType = "individual";
	}
	else
	{
		var regType = "business";
	}
	
	if(trim(frm.username.value) == "")
	{
		alert("Please Enter User Name");
		frm.username.value = trim(frm.username.value);
		frm.username.focus();
		return false;
	}
	if(frm.username.value.length<6)
	{
		alert("Username should be min 6 characters");
		frm.username.focus();
		return false;
	}
		
	if(trim(frm.pwd.value) == "")
	{
		alert("Please Enter Password");
		frm.pwd.value = trim(frm.pwd.value);
		frm.pwd.focus();
		return false;
	}
	if(frm.pwd.value.length<6)
	{
		alert("Password should be min 6 characters");
		frm.pwd.focus();
		return false;
	}
	if(trim(frm.cpwd.value) == "")
	{
		alert("Please Enter Confirm Password");
		frm.cpwd.value = trim(frm.cpwd.value);
		frm.cpwd.focus();
		return false;
	}
	if(frm.cpwd.value.length<6)
	{
		alert("Please Enter min 6 characters");
		frm.cpwd.focus();
		return false;
	}
	if(trim(frm.pwd.value) != trim(frm.cpwd.value))
	{
		alert("Password and Confirm Password should match");
		frm.cpwd.value = "";
		frm.cpwd.focus();
		return false;
	}
	if(trim(frm.contact_name.value) == "")
	{
		alert("Please Enter Contact Name");
		frm.contact_name.value = trim(frm.contact_name.value);
		frm.contact_name.focus();
		return false;
	}
	if(frm.contact_name.value.length<6)
	{
		alert("Please Enter min 6 characters");
		frm.contact_name.focus();
			return false;
	}
	
	if(regType == "individual")
	{
		if(trim(frm.pan_num.value) == "")
		{
			alert("Please Enter PAN #");
			frm.pan_num.value = trim(frm.pan_num.value);
			frm.pan_num.focus();
			return false;
		}
	}
	
	if(regType == "business")
	{
		if(trim(frm.company_name.value) == "")
		{
			alert("Please Enter Company/Firm Name");
			frm.company_name.value = trim(frm.company_name.value);
			frm.company_name.focus();
			return false;
		}
		else if(trim(frm.vat_num.value) == "")
		{
			alert("Please Enter VAT/TIN #");
			frm.vat_num.value = trim(frm.vat_num.value);
			frm.vat_num.focus();
			return false;
		}
	}
	
	if(trim(frm.address.value) == "")
	{
		alert("Please Enter Address");
		frm.address.value = trim(frm.address.value);
		frm.address.focus();
		return false;
	}
	
	if(trim(frm.phone.value) == "")
	{
		alert("Please Enter Phone");
		frm.phone.value = trim(frm.phone.value);
		frm.phone.focus();
		return false;
	}
	if(trim(frm.messge.value) == "")
	{
		alert("Please Enter Phone");
		frm.message.value = trim(frm.message.value);
		frm.message.focus();
		return false;
	}
	
	if (checkInternationalPhone(frm.phone.value)==false){
		alert("Please Enter a Valid Phone Number")
		frm.phone.value=""
		frm.phone.focus()
		return false
	}
	
	if(frm.email.value =="")
	{
		alert("Please Enter Email");
		frm.email.value = trim(frm.email.value);
		frm.email.focus();
		return false;
	}
	if(frm.email.value != "")
	{
		if(isValidEmail(frm.email.value) != 0)
		{
			alert(isValidEmail(frm.email.value));
			frm.email.focus();
			return false;
		}
	}
	
	//return false;
}


function validregister_admin(frm)
{
	if(document.getElementById("Rtype1").checked == true)
	{
		var regType = "individual";
	}
	else
	{
		var regType = "business";
	}
	
	if(trim(frm.username.value) == "")
	{
		alert("Please Enter User Name");
		frm.username.value = trim(frm.username.value);
		frm.username.focus();
		return false;
	}
	
	if(trim(frm.contact_name.value) == "")
	{
		alert("Please Enter Contact Name");
		frm.contact_name.value = trim(frm.contact_name.value);
		frm.contact_name.focus();
		return false;
	}
	
	if(regType == "individual")
	{
		if(trim(frm.pan_num.value) == "")
		{
			alert("Please Enter PAN #");
			frm.pan_num.value = trim(frm.pan_num.value);
			frm.pan_num.focus();
			return false;
		}
	}
	
	if(regType == "business")
	{
		if(trim(frm.company_name.value) == "")
		{
			alert("Please Enter Company/Firm Name");
			frm.company_name.value = trim(frm.company_name.value);
			frm.company_name.focus();
			return false;
		}
		else if(trim(frm.vat_num.value) == "")
		{
			alert("Please Enter VAT/TIN #");
			frm.vat_num.value = trim(frm.vat_num.value);
			frm.vat_num.focus();
			return false;
		}
	}
	
	if(trim(frm.address.value) == "")
	{
		alert("Please Enter Address");
		frm.address.value = trim(frm.address.value);
		frm.address.focus();
		return false;
	}
	
	if(trim(frm.phone.value) == "")
	{
		alert("Please Enter Phone");
		frm.phone.value = trim(frm.phone.value);
		frm.phone.focus();
		return false;
	}
	
	if (checkInternationalPhone(frm.phone.value)==false){
		alert("Please Enter a Valid Phone Number")
		frm.phone.value=""
		frm.phone.focus()
		return false
	}
	
	if(frm.email.value =="")
	{
		alert("Please Enter Email");
		frm.email.value = trim(frm.email.value);
		frm.email.focus();
		return false;
	}
	if(frm.email.value != "")
	{
		if(isValidEmail(frm.email.value) != 0)
		{
			alert(isValidEmail(frm.email.value));
			frm.email.focus();
			return false;
		}
	}
	
}

function validEditDetails_admin(frm)
{
	if(trim(frm.admin_fname.value) == "")
	{
		alert("Please Enter First Name");
		frm.admin_fname.value = trim(frm.admin_fname.value);
		frm.admin_fname.focus();
		return false;
	}
	
	if(trim(frm.admin_lname.value) == "")
	{
		alert("Please Enter Last Name");
		frm.admin_lname.value = trim(frm.admin_lname.value);
		frm.admin_lname.focus();
		return false;
	}
	
	if(frm.admin_email.value =="")
	{
		alert("Please Enter Email");
		frm.admin_email.value = trim(frm.admin_email.value);
		frm.admin_email.focus();
		return false;
	}
	if(frm.admin_email.value != "")
	{
		if(isValidEmail(frm.admin_email.value) != 0)
		{
			alert(isValidEmail(frm.admin_email.value));
			frm.admin_email.focus();
			return false;
		}
	}
	
	if(trim(frm.admin_phone.value) == "")
	{
		alert("Please Enter Mobile Number");
		frm.admin_phone.value = trim(frm.admin_phone.value);
		frm.admin_phone.focus();
		return false;
	}
	
	if (checkInternationalPhone(frm.admin_phone.value)==false){
		alert("Please Enter a Valid Mobile Number")
		frm.admin_phone.value=""
		frm.admin_phone.focus()
		return false
	}
	
	if(trim(frm.admin_address.value) == "")
	{
		alert("Please Enter Address");
		frm.admin_address.value = trim(frm.admin_address.value);
		frm.admin_address.focus();
		return false;
	}
	
}

//function for left trim
function ltrim(argvalue){
  while (1) {
    if (argvalue.substring(0, 1) != " ")
      break;
    argvalue = argvalue.substring(1, argvalue.length);
  }
  return argvalue;
}

//function for right trim
function rtrim(argvalue) {

  while (1) {
    if (argvalue.substring(argvalue.length - 1, argvalue.length) != " ")
      break;
    argvalue = argvalue.substring(0, argvalue.length - 1);
  }

  return argvalue;
}

//function for trim
function trim(argvalue) {
  var tmpstr = ltrim(argvalue);

  return rtrim(tmpstr);

}

//******************************************************************************************//
//********************* functions  for email-id validation ****************************//
//******************************************************************************************//
function isValidEmail(emailStr) {
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		return "Email address seems incorrect (check @ and .'s)";
		//alert("Email address seems incorrect (check @ and .'s)");
		//return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	// Start by checking that only basic ASCII characters are in the strings (0-127).
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return "Ths Email contains invalid characters.";
			//return false;
		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return "Ths domain name contains invalid characters.";
			//return false;
		}
	}
	if (user.match(userPat)==null) {
		return "The Email doesn't seem to be valid.";
		//return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return "Destination IP address is invalid!";
				//return false;
	   		}
		}
		return 0;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return "The domain name does not seem to be valid.";
			//return false;
	   }	
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && 
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return "The Email must end in a well-known domain or two letter " + "country.";
		//return false;
	}

// Make sure there's a host name preceding the domain.

	if (len<2) {
		return "This address is missing a hostname!";
		//return false;
	}	
	return 0;
}


