﻿// JScript File
/*****************************************************************************************************************/
/* This validation1 java script file is used to check various validation issues in the RegistrationRenewalPage1  */
/* The validation issues includes check for the valid year, allow only numeric values, required field validation */
/* enabling and disabling controls dynamically, show / hide the popup and binding popup message dynamically.     */
/*****************************************************************************************************************/

function checkNumericValue(source, e)
{
try
{
    var charCode = (e.which) ? e.which : event.keyCode;
    if (source.value.length == 0)
        source.maxLength = "4";
    
    if (charCode == 46)
    {
        if (source.value.indexOf(String.fromCharCode(charCode)) < 0)
            source.maxLength = source.value.length + 3;
        else
            return false;
    }
    else
    {
        if (source.value.indexOf(String.fromCharCode(46)) < 0)
            source.maxLength = "4";
    }
    if (charCode > 31 && charCode != 46 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}
catch(ex)
{
    alert(ex);
}
}

function CheckYear(source, evt)
{
try
{
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}
catch(ex)
{
    alert(ex);
}
}
    
function sumCurrencyHours(source)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    
    var value1 = document.getElementById(name + "txtPracticeHours").value;
    if (value1 == "") {value1 = "0";} 
    var value2 = document.getElementById(name + "txtEducationHours").value;
    if (value2 == "") {value2 = "0";}
    var value3 = document.getElementById(name + "txtVolunteerHours").value;
    if (value3 == "") {value3 = "0";}

    document.getElementById(name + "lblCurrencyTotalValue").innerHTML = parseFloat(value1) + parseFloat(value2) + parseFloat(value3);
    
    if (parseInt(document.getElementById(name + "lblCurrencyTotalValue").innerHTML) > (365 * 24))
    {
        alert(document.getElementById(name + "hiddenAlertMsgAllowedHours").innerHTML);
        document.getElementById(name + "txtPracticeHours").value = "";
        document.getElementById(name + "txtEducationHours").value = "";
        document.getElementById(name + "txtVolunteerHours").value = "";
        document.getElementById(name + "lblCurrencyTotalValue").innerHTML = "0";
        document.getElementById(name + "txtPracticeHours").focus();
    }
}
catch(ex)
{
    alert(ex);
}
}

function hideTooltip(source)
{
try
{
    source.src = "images/max.gif";
    var tooltip = document.getElementById("divToolTip");
    tooltip.innerHTML = "";
    tooltip.style.display = "none";
}
catch(ex)
{
    alert(ex);
}
}

function showTooltip(source, e)
{

try
{
    var posx = 0;
	var posy = 0;
	var msg;
	var position;
	if (source.id.match('img'))
	{
        var text = source.id.substring(source.id.lastIndexOf('_') + 1, source.id.length);
        var sample = source.id.substring(0, source.id.lastIndexOf('_'));
        var name = sample.substring(0,sample.lastIndexOf('_') + 1);
                
        switch (text)
        {
            case 'currencyHours':
                {
                    msg = document.getElementById(name + "hiddenCurrencyHours").innerHTML;//currencyHours;
                    break;
                }
            case 'cancelRegistration':
                {
                    msg = document.getElementById(name + "hiddenCancelRegistration").innerHTML;//cancelRegistration;
                    break;
                }
            case 'educationOT':
                {
                    msg = document.getElementById(name + "hiddenEducationOT").innerHTML;//educationOT;
                    break;
                }
            case 'educationOther':
                {
                    msg = document.getElementById(name + "hiddenEducationOther").innerHTML;//educationOther;
                    break;
                }
            case 'EmploymentStatus':
                {
                    msg = document.getElementById(name + "hiddenEmploymentStatus").innerHTML;//educationOther;
                    break;
                }
            case 'Employment':
                {
                    msg = document.getElementById(name + "hiddenEmployment").innerHTML;
                    break;
                }
            case 'HealthAuthority':
                {
                    msg = document.getElementById(name + "hiddenHealthAuthority").innerHTML;
                    break;
                }
            case 'PostalPractice':
                {
                    msg = document.getElementById(name + "hiddenPostalPractice").innerHTML;
                    break;
                }
             case 'GeographicLocation':
                {
                    msg = document.getElementById(name + "hiddenGeographicLocation").innerHTML;
                    break;
                }
            case 'EmploymentCategory':
                {
                    msg = document.getElementById(name + "hiddenEmploymentCategory").innerHTML;
                    break;
                }
            case 'CategoryStatus':
                {
                    msg = document.getElementById(name + "hiddenCategoryStatus").innerHTML;
                    break;
                }
            case 'EmploymentPosition':
                {
                    msg = document.getElementById(name + "hiddenEmploymentPosition").innerHTML;
                    break;
                }
            case 'EmployerType':
                {
                    msg = document.getElementById(name + "hiddenEmployerType").innerHTML;
                    break;
                }
            case 'AreaOfPractice':
                {
                    msg = document.getElementById(name + "hiddenAreaofPractice").innerHTML;
                    break;
                }
            case 'ClientAgeRange':
                {
                    msg = document.getElementById(name + "hiddenClientAgeRange").innerHTML;
                    break;
                }
            case 'FundingSource':
                {
                    msg = document.getElementById(name + "hiddenFundingSource").innerHTML;
                    break;
                }
            case 'ProfRegistrationOTTitle':
                {
                    msg = document.getElementById(name + "hiddenProfRegistrationOTTitle").innerHTML;
                    break;
                }
            case 'OtherProfRegistration':
                {
                    msg = document.getElementById(name + "hiddenOtherProfRegistration").innerHTML;
                    break;
                }
            case 'Fees':
                {
                    msg = document.getElementById(name + "hiddenFees").innerHTML;
                    break;
                }
	    }
	}
	
	
	if (navigator.appName == "Microsoft Internet Explorer")
	{
	    if (!e)
	    var e = window.event;
	    if (e.pageX || e.pageY) 	
	    {
		    posx = e.pageX;
		    posy = e.pageY;
	    }
	    if (e.clientX || e.clientY) 	
	    {
	        var parentOffset = getParentOffsetLeft(source);
		    posx = source.offsetLeft + parentOffset; 
		    posy = e.clientY + document.documentElement.scrollTop;
	    }
	}
	else
	{
	    var parentOffset = getParentOffsetLeft(source);
        posx = source.offsetLeft + parentOffset; 
        posy = e.clientY + document.documentElement.scrollTop;
    }
    source.src = "images/min.gif";
    var tooltip = document.getElementById("divToolTip");
    tooltip.innerHTML = '<table cellpadding="0" cellspacing="1" border="0">'
                        + '<tr>'
                        + '<td >'
                        + '<table cellpadding="4" cellspacing="2" border="0">'
                        + '<tr>'
                        + '<td style="background-color:#ffffff;">'
                        + msg
                        + '</td>'
                        + '</tr>'
                        + '</table>'
                        + '</td>'
                        + '</tr>'
                        + '</table>';

    tooltip.style.left = posx + "px";

    if (navigator.appName == "Microsoft Internet Explorer")
        tooltip.style.bottom = document.body.scrollHeight - posy + 7 + "px";
    else
        tooltip.style.bottom = document.documentElement.scrollHeight - posy + 7 + "px";
        
    tooltip.style.display = "block";
}
catch (ex)
{
    alert(ex);
}
}

function getParentOffsetLeft(source)
{
try
{
    var positionLeft = 0;
    var element = source;
    while (element)
    {
        if (element.tagName == "TABLE")
            positionLeft += element.offsetLeft;
        element = element.parentNode;
    }
    return positionLeft;
}
catch (ex)
{
    alert(ex);
}
}

//------------//
//------------//

var iCount = 0;

function CheckPhoneNum(e, source) {
    try {
        if (source.value == "") {
            iCount = 0;
        }
        else {
            iCount = source.value.length;
        }
        var charCode = (e.which) ? e.which : e.keyCode
        if (charCode == 8 || charCode == 9)
            return true;

        if (iCount < 14) {
            if (!CheckNumeric(e)) {
                return false;
            }
            else {
                if (source.value == "") {
                    iCount++;
                    source.value += "(";
                }
                if (iCount == 4) {
                    iCount++;
                    source.value += ")";
                }
                if (iCount == 5) {
                    iCount++;
                    source.value += " ";
                }
                if (iCount == 9) {
                    iCount++;
                    source.value += "-";
                }
                iCount++;
            }
        }
        else
            return false;
    }
    catch (ex) {
        alert(ex);
    }
}
function validatePage(source, content)
{
try
{
    GetContents(content);
    
    var flag = true;
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    if (document.getElementById(name + "chkCancelRegistration").checked == true)
    {
        if (document.getElementById(name + "cboDiscontinueReason").value == "0")
        {
            document.getElementById(name + "lblValidatorDiscontinueReason").style.visibility = "visible";
            flag = false;
        }
        else
            document.getElementById(name + "lblValidatorDiscontinueReason").style.visibility = "hidden";
        if (document.getElementById(name + "txtEmploymentEndDate").value == "")
        {
            document.getElementById(name + "lblValidatorEmploymentEndDate").style.visibility = "visible";
            document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "hidden";
            flag = false;
        }
        else
        {
            if (document.getElementById(name + "txtEmploymentEndDate").value != "")
            {
                var date = document.getElementById(name + "txtEmploymentEndDate").value;
                var re = new RegExp("^[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}$");
                if (!date.match(re))
                {
                    flag = false;
                    document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "visible";
                }
                else
                {
                    var dt = new Date(date);
                    dateArr = date.split('/');
                    if(dt.getDate() != dateArr[2])
                    {
                        flag = false;
                        document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "visible";
                    }
                    else if(dt.getMonth() != dateArr[1] - 1)
                    {
                        flag = false;
                        document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "visible";
                    }
                    else if(dt.getFullYear() != dateArr[0])
                    {
                        flag = false;
                        document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "visible";
                    }
                    else
                        document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "hidden";   
                }
            }
            document.getElementById(name + "lblValidatorEmploymentEndDate").style.visibility = "hidden";
        }
    }
    for (i=1; i<=3; i++)
    {
        if (document.getElementById(name + "cboDegree" + i).value != "0")
        {
            if (document.getElementById(name + "cboCollege" + i).value == "0")
            {
                document.getElementById(name + "lblValidatorCollege" + i).style.visibility = "visible";
                flag = false;
            }
            else
                document.getElementById(name + "lblValidatorCollege" + i).style.visibility = "hidden";
            if (document.getElementById(name + "txtYearOfGraduation" + i).value == "")
            {
                document.getElementById(name + "lblValidatorYearOfGraduation" + i).style.visibility = "visible";
                flag = false;
            }
            else
                document.getElementById(name + "lblValidatorYearOfGraduation" + i).style.visibility = "hidden";
        }
    }
    for (i=1; i<=3; i++)
    {
        if (document.getElementById(name + "cboOtherDegree" + i).value != "0")
        {
            if (document.getElementById(name + "cboOtherCollege" + i).value == "0")
            {
                document.getElementById(name + "lblValidatorOtherCollege" + i).style.visibility = "visible";
                flag = false;
            }
            else
                document.getElementById(name + "lblValidatorOtherCollege" + i).style.visibility = "hidden";
            if (document.getElementById(name + "cboFieldOfStudy" + i).value == "0")
            {
                document.getElementById(name + "lblValidatorFieldOfStudy" + i).style.visibility = "visible";
                flag = false;
            }
            else
                document.getElementById(name + "lblValidatorFieldOfStudy" + i).style.visibility = "hidden";
            if (document.getElementById(name + "txtOtherYearOfGraduation" + i).value == "")
            {
                document.getElementById(name + "lblValidatorOtherYearOfGraduation" + i).style.visibility = "visible";
                flag = false;
            }
            else
                document.getElementById(name + "lblValidatorOtherYearOfGraduation" + i).style.visibility = "hidden";
        }
    }
    if (flag == false)
    {
        document.getElementById(name + "lblValidatorErrorMsg").style.visibility = "visible";
        return false;
    }
    else
    {
        document.getElementById(name + "lblValidatorErrorMsg").style.visibility = "hidden";
        return true;
    }
}
catch (ex)
{
    alert(ex);
}
}

function CancelRegistration(source)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    var checked = source.checked;
    if (checked == true)
    {
        document.getElementById(name + "cboDiscontinueReason").disabled = false;
        document.getElementById(name + "ibnCalendarone").disabled = false;
        document.getElementById(name + "txtEmploymentEndDate").disabled = false;
        
        document.getElementById(name + "btnSubmitCancellation").style.visibility = "visible";
       // document.getElementById(name + "btnHome").style.visibility = "visible";
        //trCancelInfo
        //document.getElementById(name + "trCancelInfo").style.visibility = "visible";
        document.getElementById(name + "hrCancelRegistration").style.visibility = "visible";
        //document.getElementById(name + "btnNext").style.visibility = "hidden";
        document.getElementById(name + "ibnNext").style.visibility = "hidden";
        document.getElementById(name + "ibnLast").style.visibility = "hidden";
        document.getElementById(name + "ibnFirst").style.visibility = "hidden";
        document.getElementById(name + "ibnPrevious").style.visibility = "hidden";        
    }
    else
    {
        document.getElementById(name + "cboDiscontinueReason").value = "0";
        document.getElementById(name + "txtEmploymentEndDate").value = "";
        
        document.getElementById(name + "cboDiscontinueReason").disabled = true;
        document.getElementById(name + "ibnCalendarone").disabled = true;
        document.getElementById(name + "txtEmploymentEndDate").disabled = true;
        
        document.getElementById(name + "btnSubmitCancellation").style.visibility = "hidden";
       // document.getElementById(name + "btnHome").style.visibility = "hidden";
       //document.getElementById(name + "trCancelInfo").style.visibility = "hidden";
        document.getElementById(name + "hrCancelRegistration").style.visibility = "hidden";
        //document.getElementById(name + "btnNext").style.visibility = "visible";
        document.getElementById(name + "ibnNext").style.visibility = "visible";
        document.getElementById(name + "ibnLast").style.visibility = "visible";
        document.getElementById(name + "ibnFirst").style.visibility = "visible";
        document.getElementById(name + "ibnPrevious").style.visibility = "visible";        
    }
}
catch (ex)
{
    alert(ex);
}
}

function validateCancellation(source)
{
try
{
    var flag = true;
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    
    if (document.getElementById(name + "cboDiscontinueReason").value == "0")
    {
        document.getElementById(name + "lblValidatorDiscontinueReason").style.visibility = "visible";
        flag = false;
    }
    else
        document.getElementById(name + "lblValidatorDiscontinueReason").style.visibility = "hidden";
    if (document.getElementById(name + "txtEmploymentEndDate").value == "")
    {
        document.getElementById(name + "lblValidatorEmploymentEndDate").style.visibility = "visible";
        document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "hidden";
        flag = false;
    }
    else
    {
        if (document.getElementById(name + "txtEmploymentEndDate").value != "")
        {
            var date = document.getElementById(name + "txtEmploymentEndDate").value;
            var re = new RegExp("^[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}$");
            if (!date.match(re))
            {
                flag = false;
                document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "visible";
            }
            else
            {
                var dt = new Date(date);
                dateArr = date.split('/');
                if(dt.getDate() != dateArr[2])
                {
                    flag = false;
                    document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "visible";
                }
                else if(dt.getMonth() != dateArr[1] - 1)
                {
                    flag = false;
                    document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "visible";
                }
                else if(dt.getFullYear() != dateArr[0])
                {
                    flag = false;
                    document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "visible";
                }
                else
                    document.getElementById(name + "lblRegExpValidatorEmploymentEndDate").style.visibility = "hidden";   
            }
        }
        document.getElementById(name + "lblValidatorEmploymentEndDate").style.visibility = "hidden";
    }
    if (flag == false)
        return false;
    else
        return true;
}
catch (ex)
{
    alert(ex);
}
}


function disableCalendar()
{
try
{
    var checked = false;
    myBody = document.getElementsByTagName("body")[0];
    myBodyElements = myBody.getElementsByTagName("input");
    for(i = 0; myBodyElements[i]; i++) 
    {
        if(myBodyElements[i].id.indexOf("chkCancelRegistration") >= 0)
        {
            checked = myBodyElements[i].checked;
            myBodyElements[i].disabled = false;
            break;
        }
    }
    for(i = 0; myBodyElements[i]; i++) 
    {
        if (checked == true)
        {
            if (myBodyElements[i].id.indexOf("ibnCalendarone") >= 0 || myBodyElements[i].id.indexOf("txtEmploymentEndDate") >= 0)
            {
                myBodyElements[i].disabled = false;
            }
        }
        else 
        {
            if (myBodyElements[i].id.indexOf("ibnCalendarone") >= 0 || myBodyElements[i].id.indexOf("txtEmploymentEndDate") >= 0)
            {
                myBodyElements[i].disabled = true;
            }
        }
    }
}
catch (ex)
{
    alert(ex);
}
}

function enableCollegeDropDown(source, element)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    document.getElementById(name + element).disabled = false;
}
catch (ex)
{
    alert(ex);
}
}

function validateYearofGraduation(source)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    if (parseInt(source.value) < 1900)
    {
        alert(document.getElementById(name + "hiddenAlertMsgValidYear").innerHTML);
        source.value = "";
        source.focus();
    }
}
catch (ex)
{
    alert(ex);
}
}

function enableOTControls(source, i)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    if (source.value != 0)
    {
        document.getElementById(name + "cboCollege" + i).disabled = false;
        document.getElementById(name + "txtYearOfGraduation" + i).disabled = false;
    }
    else
    {
        document.getElementById(name + "cboCollege" + i).value = "0";
        document.getElementById(name + "txtYearOfGraduation" + i).value = "";
        
        document.getElementById(name + "cboCollege" + i).disabled = true;
        document.getElementById(name + "txtYearOfGraduation" + i).disabled = true;
        
        if (i == "1")
            if (document.getElementById(name + "cboDegree2").value == 0)
                document.getElementById(name + "cboDegree2").disabled = true;
        else if (i == "2")
            if (document.getElementById(name + "cboDegree3").value == 0)
                document.getElementById(name + "cboDegree3").disabled = true;
    }   
    return false;
}
catch (ex)
{
    alert(ex);
}
}

function enableOtherControls(source, i)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    if (source.value != 0)
    {
        document.getElementById(name + "cboOtherCollege" + i).disabled = false;
        document.getElementById(name + "cboFieldOfStudy" + i).disabled = false;
        document.getElementById(name + "txtOtherYearOfGraduation" + i).disabled = false;
    }
    else
    {
        document.getElementById(name + "cboOtherCollege" + i).value = "0";
        document.getElementById(name + "cboFieldOfStudy" + i).value = "0";
        document.getElementById(name + "txtOtherYearOfGraduation" + i).value = "";
        
        document.getElementById(name + "cboOtherCollege" + i).disabled = true;
        document.getElementById(name + "cboFieldOfStudy" + i).disabled = true;
        document.getElementById(name + "txtOtherYearOfGraduation" + i).disabled = true;
        
        if (i == "1")
            if (document.getElementById(name + "cboOtherDegree2").value == 0)
                document.getElementById(name + "cboOtherDegree2").disabled = true;
        else if (i == "2")
            if (document.getElementById(name + "cboOtherDegree3").value == 0)
                document.getElementById(name + "cboOtherDegree3").disabled = true;
    }
    return false;
}
catch (ex)
{
    alert(ex);
}
}


 
function displayMenu(currentMenu) {
var thisMenu = document.getElementById(currentMenu).style
 
// The above creates a new function that will expand and contract certain menus that are specified.
 
if (thisMenu.display == "block") {
thisMenu.display = "none"
} else {
thisMenu.display = "block"
}
return false
}
