function register_onNameChange(){
    var ddl = getElement('ddlUserType');
   
    if(ddl && ddl.value < 3){
        var fn = getElement('txtFirstName');
        var ln = getElement('txtLastName');
        var lbl = getElement('lblDefaultUsername');
        var hdn = getElement('scrn');
        
        if(fn && ln && lbl && hdn){
            lbl.innerHTML = toTitleCase(fn.value) + toTitleCase(ln.value);
            hdn.value = lbl.innerHTML;
        }
    }
}

function register_onOrganizationNameChange(){
    var ddl = getElement('ddlUserType');
    
    if(ddl && ddl.value >= 3){
        var fn = getElement('txtOrganizationName');
        var lbl = getElement('lblDefaultUsername');
        var hdn = getElement('scrn');
        
        if(fn && lbl && hdn){
            var words = fn.value.split(' ');
            var str = '';
            for(var i = 0; i < words.length; i++) str += toTitleCase(words[i]);
            lbl.innerHTML = str;
            hdn.value = lbl.innerHTML;
        }
    }
}

function register_onUserTypeChange(val){
    if(val < 3) register_onNameChange(); 
    else register_onOrganizationNameChange(); 
}

function recursiveClear(root){
    if(root == null) return;
    if(root.id && root.id.length >= 4 && root.id.substr(0,4) == 'val_') root.className = "hide_warning";
    for(var i = 0; i < root.childNodes.length; i++) recursiveClear(root.childNodes[i]);
}

function clearAllValidationMessages(){
    var root = getElement('tblForm');
    recursiveClear(root);
}

function validate_registration(frm){
    var flag = false;
    var firstFlaggedElement = false;
    
    clearAllValidationMessages();

    if(frm){

        if(frm.elements['ddlUserType'].value <= 2 && frm.elements['txtFirstName'] && frm.elements['txtFirstName'].value.trim() == ''){
            var info = getElement('val_txtFirstName');
            if(info) info.className = 'show_warning';
            flag = true;
            if(!firstFlaggedElement){
                firstFlaggedElement = true;
                frm.elements['txtFirstName'].focus();
            }
        }
        if(frm.elements['ddlUserType'].value <= 2 && frm.elements['txtLastName'] && frm.elements['txtLastName'].value.trim() == ''){
            var info = getElement('val_txtLastName');
            if(info) info.className = 'show_warning';
            flag = true;
            if(!firstFlaggedElement){
                firstFlaggedElement = true;
                frm.elements['txtLastName'].focus();
            }
        }
        if(frm.elements['ddlUserType'].value > 2 && frm.elements['txtOrganizationName'].value.trim() == ''){
            var info = getElement('val_txtOrganizationName');
            if(info) info.className = 'show_warning';
            flag = true;
            if(!firstFlaggedElement){
                firstFlaggedElement = true;
                frm.elements['txtOrganizationName'].focus();
            }
        }
        if(frm.elements['txtEmail'] && !isEmail(frm.elements['txtEmail'].value.trim())){
            var info = getElement('val_txtEmail');
            if(info) info.className = 'show_warning';
            flag = true;
            if(!firstFlaggedElement){
                firstFlaggedElement = true;
                frm.elements['txtEmail'].focus();
            }
        }
/*        if(frm.elements['ddlCountry'] && frm.elements['ddlCountry'].selectedIndex == -1){
            var info = getElement('val_ddlCountry');
            if(info) info.className = 'show_warning';
            flag = true;
            if(!firstFlaggedElement){
                firstFlaggedElement = true;
                frm.elements['ddlCountry'].focus();
            }
        } */
        if(frm.elements['txtPassword'] && (frm.elements['txtPassword'].value.trim() == '' || frm.elements['txtPassword'].value.trim().indexOf(' ') >= 0)){
            var info = getElement('val_txtPassword');
            if(info) info.className = 'show_warning';
            flag = true;
            if(!firstFlaggedElement){
                firstFlaggedElement = true;
                frm.elements['txtPassword'].focus();
            }
        }
        if(frm.elements['txtPassword2'] && (frm.elements['txtPassword2'].value.trim() == '' || frm.elements['txtPassword2'].value.trim().indexOf(' ') >= 0)){
            var info = getElement('val_txtPassword2');
            if(info) info.className = 'show_warning';
            flag = true;
            if(!firstFlaggedElement){
                firstFlaggedElement = true;
                frm.elements['txtPassword2'].focus();
            }
        }
        if(frm.elements['txtPassword'] && frm.elements['txtPassword2'] &&
             frm.elements['txtPassword'].value.trim() != frm.elements['txtPassword2'].value.trim()){
            var info = getElement('val_txtPassword');
            if(info) info.className = 'show_warning';
            info = getElement('val_txtPassword2');
            if(info) info.className = 'show_warning';
            
            info = getElement('val_passwordMissMatch');
            if(info) info.style.display = '';
            flag = true;
            if(!firstFlaggedElement){
                firstFlaggedElement = true;
                frm.elements['txtPassword'].focus();
            }
        }
        if(frm.elements['txtChallenge'] && frm.elements['txtChallenge'].value.trim() == ''){
            var info = getElement('val_txtChallenge');
            if(info) info.className = 'show_warning';
            flag = true;
            if(!firstFlaggedElement){
                firstFlaggedElement = true;
                frm.elements['txtChallenge'].focus();
            }
        }
        if(frm.elements['ddlUserType'] && frm.elements['ddlUserType'].selectedIndex < 1){
            var info = getElement('val_ddlUserType');
            if(info) info.className = 'show_warning';
            flag = true;
            if(!firstFlaggedElement){
                firstFlaggedElement = true;
                frm.elements['ddlUserType'].focus();
            }
        }
        if(frm.elements['rbUsername'] && frm.elements['rbUsername'][1].checked && frm.elements['txtCustomUsername']){
            if(frm.elements['txtCustomUsername'].value.trim() == '' || frm.elements['txtCustomUsername'].value.trim().indexOf(' ') >= 0){
                var info = getElement('val_txtUsername');
                if(info) info.className = 'show_warning';
                flag = true;
                if(!firstFlaggedElement){
                    firstFlaggedElement = true;
                    frm.elements['txtCustomUsername'].focus();
                }
            }
        }
        if(frm.elements['rbUsername'] && frm.elements['rbUsername'][0].checked && frm.elements['txtFirstName'] && frm.elements['txtLastName']){
            if(frm.elements['txtFirstName'].value.trim().indexOf(' ') >= 0 || frm.elements['txtLastName'].value.trim().indexOf(' ') >= 0){
                var info = getElement('val_txtUsername');
                if(info) info.className = 'show_warning';
                flag = true;
                if(!firstFlaggedElement){
                    firstFlaggedElement = true;
                    frm.elements['txtCustomUsername'].focus();
                }
            }
            
        }
    
        if(flag){
            displayStatusMessage('lblStatus', STATUS_ERROR, MSG_ERROR_MISSING_REQUIRED_VALUES);
        }
    }

    return !flag;
}

