function isValidEmail(email)
{
	if(email.toLowerCase()=="name@email.com" || email.toLowerCase()=="user@domain.com")
	  return(false);   //Critter Task 9715 [Raja]
	var regu	= "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]+)$"
    var reg		= new RegExp(regu);
    return (email.search(reg) > -1);
}

function isValidPhone(phonenum)
{
	phonenum = phonenum.replace(/ /g,"") //To Replace Spaces
	var regu	= "^([0-9(]+)+([0-9-.()]*)+([0-9)]+)$"
	var reg		= new RegExp(regu);
	return (phonenum.search(reg) > -1);
}
function isValidPhoneForCN(phonenum)
{  
	phonenum = phonenum.replace(/ /g,""); //To Replace Spaces
	var regu	= /^1(3|5|8)\d{5,9}$/;
	return regu.test(phonenum);
}

function isValidPhoneForSpain(phonenum)
{
	phonenum = phonenum.replace(/ /g,"") //To Replace Spaces
	var regu	= "^([0-9]*)$"
	var reg		= new RegExp(regu);
	return (phonenum.search(reg) > -1);
}

function isValidAreaCode(areacode)
{
	var regu	= "^([0-9(]+)+([0-9-.()]*)+([0-9)]+)$";
    var reg		= new RegExp(regu);
    return (areacode.search(reg) > -1);
    //return true;
}
function isValidITAreaCode(areacode)
{
    if(!isValidAreaCode(areacode) ||areacode.length < 2 || areacode == "00" || areacode == "000" || areacode == "0000" )
        return false;
    else
        return true;
}
function isValidHkMobilePhone(phonenum)
{
	phonenum = phonenum.replace(/ /g,"") //To Replace Spaces
	var regu1 = /[^6|9]\d{7}$/;
    var regu2 = /[9][0][0]\d{5}$/;
    var regu3 = /[9][9][^7|8]\d{5}$/;
	if(phonenum.length != 8) 
	    return false;
	else if(phonenum.match(regu1)) 
	    return false;
	else if(phonenum.match(regu2)) 
	    return false;
	else if(phonenum.match(regu3))
	    return false;
	else
	    return true;
}
//For 'TW' and 'US'
 function isValidPhoneSequence(phonenum) 
 {
    var rePhoneNumber = new RegExp(/(\S)\1\1\1\1\1\1\1\1\1/);
    var rePhoneNumber2 = new RegExp(/(\S)\1\1\1\1\1\1\1/);
    var rePhoneNumber3 = new RegExp(/(\S)\1\1\1\1\1\1\1\1/);
    var rePhoneNumber4 = new RegExp(/(\S)\1\1\1\1\1\1\1\1\1\1/);
    var rePhoneNumber5 = new RegExp(/(\S)\1\1\1\1\1\1\1\1\1\1\1/);
    if ((phonenum.length == 10 && rePhoneNumber.test(phonenum)) || (phonenum.length == 8 && rePhoneNumber2.test(phonenum)) || (phonenum.length == 9 && rePhoneNumber3.test(phonenum)) || (phonenum.length == 11 && rePhoneNumber4.test(phonenum)) || (phonenum.length == 12 && rePhoneNumber5.test(phonenum))|| phonenum == "0123456789" || phonenum == "1234567890" || phonenum == "2345678901" || phonenum == "12345678" || phonenum == "01234567" || phonenum == "012345678" || phonenum =="123456789" || phonenum == "0123456789" || phonenum == "1234567890" || phonenum == "01234567890" || phonenum == "00123456789" || phonenum == "000123456789" || phonenum == "001234567890") {
          return false;
     }
    return true;
 }

 function isValidMXPhone(phonenum) 
 {
    var rePhoneNumber = new RegExp(/(\S)\1\1\1\1\1\1/);
     var rePhoneNumber1 = new RegExp(/(\S)\1\1\1\1\1\1\1/);
     var characterPhoneNumber = new RegExp(/\D/);
    if (characterPhoneNumber.test(phonenum) || (phonenum.length == 7 && rePhoneNumber.test(phonenum)) || (phonenum.length == 8 && rePhoneNumber1.test(phonenum)) || phonenum == "12345678" || phonenum == "0123456" || phonenum == "01234567" || phonenum == "1234567")
     {
          return false;
     }
    return true;
 }
 
 function isValidUSArea(areacode) 
 {
    var reAreaCode = new RegExp(/(\S)\1\1/);
    var reAreaCode2 = new RegExp(/[0][0]\d{1}$/);
    if (reAreaCode.test(areacode) || areacode == "123" || areacode == "012" || reAreaCode2.test(areacode))    {
          return false;
     }
    return true;
 }
 function isValidMXArea(areacode) 
 {
    var reAreaCode = new RegExp(/[0]\d{1}$/);
    if (reAreaCode.test(areacode) || areacode == "11" || areacode == "22")    {
          return false;
     }
    return true;
 }
 
//Task 13363 MX phone validation rules unstable 
function isValidMxAreaPhone(phonenum)
{
    var characterPhoneNumber = new RegExp(/\D/);
    if (characterPhoneNumber.test(phonenum))
     { 
          return false;
     }
    return true;
}

    //Task 11789 - Lead Form Phone field improvement - BR 
  function isValidBRArea(areacode) 
 {
	var reg		= new RegExp(/[^0]\d{1}$/);
	return (areacode.search(reg) > -1);    
 }
 
 function isValidBRPhone(phonenum) 
 {
    var rePhoneNumber = new RegExp(/(\S)\1\1\1\1\1\1\1/);
    if ((phonenum.length == 8 && rePhoneNumber.test(phonenum)) || phonenum == "12345678" || phonenum == "01234567" || phonenum == "23456789")
     {
          return false;
     }
    return true;
 }
 

  function isValidUSPhone(phonenum) 
 {
    var rePhoneNumber = new RegExp(/(\S)\1\1\1\1\1\1/);
    if ((phonenum.length == 7 && rePhoneNumber.test(phonenum)) || phonenum == "1234567" || phonenum == "0123456")
     {
          return false;
     }
    return true;
 }
function isValidFrPhone(phonenum) 
{
    rePhoneNumber = new RegExp(/(\S)\1\1\1\1\1\1\1\1/);
    var regu1 = /[^0]\d{9}$/;
    var regu2 = /[0][0]\d{8}$/;
    if (phonenum.match(regu1))
        return false;
    else if (phonenum.match(regu2))
        return false;
    else if(rePhoneNumber.test(phonenum))
        return false;
    else if(phonenum == "0123456789")
        return false;
    else
        return true;
}

function isValidTwPhone(phonenum) {
    try {
        // 0. remove space first
        phonenum = phonenum.replace(/ /g,"");        
        if(phonenum.length == 0){
            return true; // Phone number is NOT mandatory
        }
        
        // 1. Phone field entry must be 9 to 12 digits
        var rx = new RegExp("^[0-9]{9,12}$");
        var isValid = (phonenum.length > 0 && rx.test(phonenum) && phonenum != "0225012345");

        // 2. Phone field entry must start with "02 | 03 | 037| 04 | 049 | 05 | 06 | 07 | 070 | 08 | 082 | 0826 | 0827 | 0836 | 089 | 09 "
        if (isValid === true) {
                   
            rx = new RegExp("^(0826|0827|0836)");
            isValid = (phonenum.length > 0 && rx.test(phonenum));

                if (isValid === true) {
                    rx = new RegExp("^(0826|0827|0836)([0-9]{7,8})$");
                    isValid = (phonenum.length > 0 && rx.test(phonenum));
                }
                else {
                    rx = new RegExp("^(037|049|070|082|089)");
                    isValid = (phonenum.length > 0 && rx.test(phonenum));

                    if (isValid === true) {
                        rx = new RegExp("^(037|049|070|082|089)([0-9]{7,8})$");
                        isValid = (phonenum.length > 0 && rx.test(phonenum));
                    }
                    else {
                        rx = new RegExp("(^(02|03|04|05|06|07|08)([0-9]{7,8})$)|(^09([0-9]{8})$)");
                        isValid = (phonenum.length > 0 && rx.test(phonenum));
                    }
                }
        }

        // 3. Avoid 7 to 8 same digits following by "02 | 03 | 037| 04 | 049 | 05 | 06 | 07 | 070 | 08 | 082 | 0826 | 0827 | 0836 | 089 | 09 "" e.g. 021111111 or 030000000000
        if (isValid === true) {
            rx = new RegExp("(([0]{7,8})|([1]{7,8})|([2]{7,8})|([3]{7,8})|([4]{7,8})|([5]{7,8})|([6]{7,8})|([7]{7,8})|([8]{7,8})|([9]{7,8}))");
            isValid = !(phonenum.length > 0 && rx.test(phonenum));           
        }

        // 4. Avoid 7 to 8 sequent digits following by "02 | 03 | 037| 04 | 049 | 05 | 06 | 07 | 070 | 08 | 082 | 0826 | 0827 | 0836 | 089 | 09 "" e.g. 021234567 or 039876543
        if (isValid === true) {
            rx = new RegExp("(0123456|1234567|2345678|3456789|4567890|9876543|8765432|7654321|6543210)");
            isValid = !(phonenum.length > 0 && rx.test(phonenum)); 
        }
        
        return isValid;
    } catch (err) { return false;}
}
