function registerUser() {

    var addressField = document.getElementById("email");
    var name = document.getElementById("name");
    var mobile = document.getElementById("mobile");

    if (stringEmpty(name.value)) {
        document.getElementById('showMsg').innerHTML="Name cannot be empty.";
		document.register.name.focus();
        return false;
    }
    // First: check if either email field is empty.
    if (stringEmpty(addressField.value)) {
        document.getElementById('showMsg1').innerHTML="Email address cannot be empty.";
		document.register.email.focus();
        return false;
    }
    // Second: check if both email IDs are valid.
    if (!validateEmail(addressField)) {
        document.register.email.focus();
        return false;
    }
	var showMsg2 = document.getElementById('showMsg2');
	var pwd = document.getElementById('password').value;
	if (pwd=='') {
	showMsg2.innerHTML = 'Password cannot be blank';
	document.register.password.focus();
	return false;
	}
	var showMsg2 = document.getElementById('showMsg2');
	var pwd1 = document.getElementById('confirm_password').value;
	if (pwd1=='') {
	showMsg2.innerHTML = 'Password cannot be blank';
	document.register.confirm_password.focus();
	return false;
	}
	if (mobile.value == '') {
		document.getElementById('showMsg3').innerHTML="Mobile number cannot be empty.";
		document.register.mobile.focus();
        return false;
    }
	if (!isInteger(mobile.value) || (mobile.value.length < 10)) {
        document.getElementById('showMsg3').innerHTML="Invalid Mobile number.";
		document.register.mobile.focus();
        return false;
    }    
    var cap = document.getElementById("captcha-form");
    if (cap.value == "")
    {
        document.getElementById('showMsg4').innerHTML="Please enter the verification code.";
        document.register.captcha.focus();
        return false;
    }
    return true;
}
function validateEmail (addressField) {
    if ( stringEmpty ( addressField.value ) || noAtSign ( addressField.value ) || nothingBeforeAt ( addressField.value ) || noValidPeriod ( addressField.value ) || noValidSuffix ( addressField.value ) || noValidPrefix ( addressField.value ) || hasComma( addressField.value ))
        document.getElementById('showMsg1').innerHTML="Invalid email address. Try again.";
    else
        return (true);

    return ( false );
}

function stringEmpty ( address ) {
    if ( address.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign ( address ) {
    if ( address.indexOf ( '@', 0 ) == -1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function nothingBeforeAt ( address ) {
    if ( address.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noValidPeriod ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if ( address.indexOf ( '.', 0 ) == -1 )
        return ( true );

    return ( false );
}

function noValidPrefix ( address ) {
    var atSignIndex = address.indexOf ( '@', 0 );
    var firstDotIndex = address.indexOf ( '.', atSignIndex );
    if ( (firstDotIndex - atSignIndex ) == 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidSuffix ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = address.length;
    var pos = address.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 4 ) {
        return ( true );
    } else {
        return ( false );
    }
}
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 hasComma ( address ) {
    if ( address.indexOf ( ',', 0 ) == -1 )
        return ( false );

    return ( true );
}
function isOthers(selOpt) {
    if (selOpt == "others" || selOpt == "newsoutlet" || selOpt == "finportal") {
        document.register.otherInput.style.visibility = "visible";
    } else {
        document.register.otherInput.style.visibility = "hidden";
    }
}
function passwordChanged() {
var strength = document.getElementById('showMsg2');
var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*", "g");
var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*", "g");
var enoughRegex = new RegExp("(?=.{6,}).*", "g");
var pwd = document.getElementById('password');
if (pwd.value.length==0) {
strength.innerHTML = 'Password Cannot be Blank';
} else if (false == enoughRegex.test(pwd.value)) {
strength.innerHTML = 'More Characters';
} else if (strongRegex.test(pwd.value)) {
strength.innerHTML = '<span style="color:green">Strong!</span>';
} else if (mediumRegex.test(pwd.value)) {
strength.innerHTML = '<span style="color:orange">Medium!</span>';
} else { 
strength.innerHTML = '<span style="color:red">Weak!</span>';
}
}
function passwordCheck() {
var showMsg2 = document.getElementById('showMsg2');
var pwd = document.getElementById('password').value;
var pwd1 = document.getElementById('confirm_password').value;
if (pwd==pwd1) {
showMsg2.innerHTML = 'Matched';
} else  {
showMsg2.innerHTML = 'Not Matched';
}
}
