﻿// JScript File
/*****************************************************************************************************************/
/* This validation3 javascript file is used to check various validation issues in the RegistrationRenewalPage5   */
/* and payment page. The validation issues include check for the required field validation, enabling / disabling */
/* the regulatory body and payment controls based on the condition, function to open terms an conditions modal   */
/* dialog window. */
/*****************************************************************************************************************/

function enableOtherRegulatoryBody1(source, evt)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode > 31 || charCode == 8)
    {
        if (document.getElementById(name + "txtOtherRegulatoryBody1").value.length > 0)
        {
            document.getElementById(name + "ibnOtherCalendar1").disabled = false;
            document.getElementById(name + "cboOtherCountry1").disabled = false;
            document.getElementById(name + "cboOtherProvince1").disabled = false;
            document.getElementById(name + "txtOtherLicenseNumber1").disabled = false;
            document.getElementById(name + "txtOtherExpiryDate1").disabled = false;
            document.getElementById(name + "txtOtherRegulatoryBody2").disabled = false;
        }
    }
}
catch (ex)
{
    alert(ex);
}
}

function enableOtherRegulatoryBody2(source, evt)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode > 31 || charCode == 8)
    {
        if (document.getElementById(name + "txtOtherRegulatoryBody2").value.length > 0)
        {
            document.getElementById(name + "ibnOtherCalendar2").disabled = false;
            document.getElementById(name + "cboOtherCountry2").disabled = false;
            document.getElementById(name + "cboOtherProvince2").disabled = false;
            document.getElementById(name + "txtOtherLicenseNumber2").disabled = false;
            document.getElementById(name + "txtOtherExpiryDate2").disabled = false;
            document.getElementById(name + "txtOtherRegulatoryBody3").disabled = false;
        }
    }
}
catch (ex)
{
    alert(ex);
}
}

function enableOtherRegulatoryBody3(source, evt)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode > 31 || charCode == 8)
    {
        if (document.getElementById(name + "txtOtherRegulatoryBody3").value.length > 0)
        {
            document.getElementById(name + "ibnOtherCalendar3").disabled = false;
            document.getElementById(name + "cboOtherCountry3").disabled = false;
            document.getElementById(name + "cboOtherProvince3").disabled = false;
            document.getElementById(name + "txtOtherLicenseNumber3").disabled = false;
            document.getElementById(name + "txtOtherExpiryDate3").disabled = false;
            //document.getElementById(name + "txtOtherRegulatoryBody4").disabled = false;
        }
    }
}
catch (ex)
{
    alert(ex);
}
}

function enableOtherRegulatoryBody4(source, evt)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode > 31 || charCode == 8)
    {
        if (document.getElementById(name + "txtOtherRegulatoryBody4").value.length > 0)
        {
            document.getElementById(name + "cboOtherCountry4").disabled = false;
            document.getElementById(name + "cboOtherProvince4").disabled = false;
            document.getElementById(name + "txtOtherLicenseNumber4").disabled = false;
            document.getElementById(name + "txtOtherExpiryDate4").disabled = false;
        }
    }
}
catch (ex)
{
    alert(ex);
}
}

function validatePage3(source,content)
{
try
{
    GetContents(content);
    
    var alertMSG = "";
    var flag = true;
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    
    if (document.getElementById(name + "chkRegistration").checked == true)
    {
        if (document.getElementById(name + "cboRegulatoryBody1").value == 0 && document.getElementById(name + "cboRegulatoryBody2").value == 0 && document.getElementById(name + "cboRegulatoryBody3").value == 0 && document.getElementById(name + "cboRegulatoryBody4").value == 0)
        {
            alertMSG = document.getElementById(name + "hiddenAlertMsgOT").innerHTML + '\n';
            flag = false;
        }
        for (i=1; i<=4; i++)
        {
            if (document.getElementById(name + "cboRegulatoryBody" + i).value != 0)
            {
                if (document.getElementById(name + "cboRegulatoryBody" + i).value == -1) //if (document.getElementById(name + "cboRegulatoryBody1").value == -2)
                {
                    if (document.getElementById(name + "txtRegulatoryBody" + i).value == "")
                    {
                        document.getElementById(name + "lblValidatorRegulatoryBody" + i).style.visibility = "visible";
                        flag = false;
                    }
                    else
                        document.getElementById(name + "lblValidatorRegulatoryBody" + i).style.visibility = "hidden";
                }
                
                if (document.getElementById(name + "txtLicenseNumber" + i).value == "")
                {
                    document.getElementById(name + "lblValidatorLicenseNumber" + i).style.visibility = "visible";
                    flag = false;
                }
                else
                    document.getElementById(name + "lblValidatorLicenseNumber" + i).style.visibility = "hidden";
                    
                if (document.getElementById(name + "txtExpiryDate" + i).value == "")
                {
                    document.getElementById(name + "lblValidatorExpiryDate" + i).style.visibility = "visible";
                    flag = false;
                }
                else
                {
                    document.getElementById(name + "lblValidatorExpiryDate" + i).style.visibility = "hidden";
                    
                }
            }
        }
    }
    
    if (document.getElementById(name + "chkOtherRegistration").checked == true)
    {
        if (document.getElementById(name + "txtOtherRegulatoryBody1").value == 0 && document.getElementById(name + "txtOtherRegulatoryBody2").value == 0 && document.getElementById(name + "txtOtherRegulatoryBody3").value == 0)// && document.getElementById(name + "txtOtherRegulatoryBody4").value == 0)
        {
            alertMSG += document.getElementById(name + "hiddenAlertMsgOther").innerHTML + '\n';
            flag = false;
        }
//        for (i=1; i<=4; i++)
//        {   
            var i = 1;
            if (document.getElementById(name + "txtOtherRegulatoryBody" + i).value != "")
            {
                if (document.getElementById(name + "txtOtherLicenseNumber" + i).value == "")
                {
                    document.getElementById(name + "lblValidatorOtherLicenseNumber" + i).style.visibility = "visible";
                    flag = false;
                }
                else
                    document.getElementById(name + "lblValidatorOtherLicenseNumber" + i).style.visibility = "hidden";
                    
                if (document.getElementById(name + "txtOtherExpiryDate" + i).value == "")
                {
                    document.getElementById(name + "lblValidatorOtherExpiryDate" + i).style.visibility = "visible";
                    flag = false;
                }
                else
                    document.getElementById(name + "lblValidatorOtherExpiryDate" + i).style.visibility = "hidden";
            }
//        }
    }
    
    if (document.getElementById(name + "chkDeclaration1").checked == true && document.getElementById(name + "chkDeclaration2").checked == true && document.getElementById(name + "chkDeclaration3").checked == true)
    {
        if (flag == true)
            flag = true;
    }
    else
    {
        if (source.id.indexOf('Previous') >= 0 || source.id.indexOf('First') >= 0)
        {
            if (flag == true)
                flag = true;
        }
        else
        {
            alertMSG += document.getElementById(name + "hiddenAlertMsgDeclarations").innerHTML;
            flag = false;
        }
    }    
    
    if (alertMSG != "")
        alert(alertMSG);
        
    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 checkRegBodyExpDate(source)
{
try
{
    var name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    var flag = true;
    
    if (source.value != "")
    {
        var date = source.value;
        var re = new RegExp("^[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}$");
        if (!date.match(re))
        {
            alert(document.getElementById(name + "hiddenAlertMsgValidDate").innerHTML);
            flag = false;
        }
        else
        {
            var dt = new Date(date);
            dateArr = date.split('/');
            if(dt.getDate() != dateArr[2])
            {
                alert(document.getElementById(name + "hiddenAlertMsgValidDate").innerHTML);
                flag = false;
                
            }
            else if(dt.getMonth() != dateArr[1] - 1)
            {
                alert(document.getElementById(name + "hiddenAlertMsgValidDate").innerHTML);
                flag = false;
                
            }
            else if(dt.getFullYear() != dateArr[0])
            {
                alert(document.getElementById(name + "hiddenAlertMsgValidDate").innerHTML);
                flag = false;
            }
        }
        if (flag == false)
        {
            source.value = "";
            source.focus();
        }
    }
}
catch(ex)
{
    alert(ex);
}
}

function enablePaymentControls(source)
{
try
{
    name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    if (source.checked == true)
    {
        document.getElementById(name + "cboPaymentMethod").disabled = false;
        document.getElementById(name + "txtCardNumber").disabled = false;
        document.getElementById(name + "cboExpiryMonth").disabled = false;
        document.getElementById(name + "cboExpiryYear").disabled = false;
        document.getElementById(name + "txtNameOnCard").disabled = false;
    }
    else
    {
        document.getElementById(name + "cboPaymentMethod").disabled = true;
        document.getElementById(name + "txtCardNumber").disabled = true;
        document.getElementById(name + "cboExpiryMonth").disabled = true;
        document.getElementById(name + "cboExpiryYear").disabled = true;
        document.getElementById(name + "txtNameOnCard").disabled = true;
    }
}
catch (ex)
{
    alert(ex);
}
}

function enablePaymentControls6(source)
{
try
{
    name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    if (source.checked == true)
    {
        document.getElementById(name + "cboPaymentMethod6").disabled = false;
        document.getElementById(name + "txtCardNumber6").disabled = false;
        document.getElementById(name + "cboExpiryMonth6").disabled = false;
        document.getElementById(name + "cboExpiryYear6").disabled = false;
        document.getElementById(name + "txtNameOnCard6").disabled = false;
    }
    else
    {
        document.getElementById(name + "cboPaymentMethod6").disabled = true;
        document.getElementById(name + "txtCardNumber6").disabled = true;
        document.getElementById(name + "cboExpiryMonth6").disabled = true;
        document.getElementById(name + "cboExpiryYear6").disabled = true;
        document.getElementById(name + "txtNameOnCard6").disabled = true;
    }
}
catch (ex)
{
    alert(ex);
}
}

function validatePaymentPage(source, content)
{
try
{
    GetContents(content);
    
    var flag = true;
    var now = new Date;
    name = source.id.substring(0, source.id.lastIndexOf('_') + 1);
    
    if (document.getElementById(name + "chkAcceptTermsAndCondition").checked == true)
    {
        if (document.getElementById(name + "txtCardNumber").value == "")
        {
            document.getElementById(name + "lblValidatorCardNumber").style.visibility = "visible";
            flag = false;
        }
        else
        {
            var re = new RegExp("^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}$");
            cardNumber = document.getElementById(name + "txtCardNumber").value;
            if (!cardNumber.match(re))
            {
                flag = false;
                alert(document.getElementById(name + "hiddenAlertMsgCardNumber").innerHTML);
            }
        }
        if (document.getElementById(name + "txtNameOnCard").value == "")
        {
            document.getElementById(name + "lblValidatorNameOnCard").style.visibility = "visible";
            flag = false;
        }
        //if (document.getElementById(name + "cboExpiryMonth").value < now.getMonth())
        //{
        //    alert(document.getElementById(name + "hiddenAlertMsgExpDate").innerHTML);
        //    flag = false;
        //}
    }
    else
    {
        alert(document.getElementById(name + "hiddenAlertMsgTerms").innerHTML);
        flag = false;
    }
    if (flag == false)
        return false;
    else
        return true;
}
catch (ex)
{
    alert(ex);
}
}

function TermsAndConditions()
{
try
{
    window.showModalDialog(('TermsAndConditions.aspx'),'Terms & Conditions','status:no');
    window.returnValue = true;
}
catch (ex)
{
    alert(ex);
}
}