﻿        var iCurrentSection = 0; //0 = get case status, 1 = show case detail
        var iCurrentCaseId = 0; //the case is being displayed
        var iCurrentCaseAccessCode = 0; //the case is being displayed
        var htmlCaseContent; //html for case detail

        //----------------window.onload----------------
        $(function() {
            $('#lblJavaScriptError').hide();
            if (iCurrentSection == 1) {
                $('#divGet').hide();
                $('#divShow').show();
                $('#imgAddComment_Ajax').hide()
                $('#lblShow_Error').text('');
                $('#lblShow_AddCommentError').hide();
                $('#divShow_CaseDetail').html(htmlCaseContent);
            } else {
                $('#divGet').show();
                $('#divShow').hide();
                $('#imgGet_Ajax').hide()
                $('#lblGet_Error').text('');
                $('#lblGet_CaseIdError').hide();
                $('#lblGet_CaseAccessCodeError').hide();
                $('#btnAddComent').attr('disabled', 'disabled');
            }

            //add event handlers
            $('#txtGet_CaseId').blur(function() { validateInput('txtGet_CaseId', 'lblGet_CaseIdError'); });
            $('#txtGet_CaseAccessCode').blur(function() { validateInput('txtGet_CaseAccessCode', 'lblGet_CaseAccessCodeError'); })
            $('#btnGet').click(function() { OnGetClicked(); });
            $('#btnAddComent').click(function() { OnAddCommentClicked(); });
            $('#txtShow_AddComment').keyup(function() { OnTypeComment(); });
        })

        //----------------events handlers----------------
        function OnTypeComment() {
            var text = $('#txtShow_AddComment').val();
            if (text && text.length > 0) {
                $('#btnAddComent').attr('disabled', '');
            } else {
                $('#btnAddComent').attr('disabled', 'disabled');
            }
        }

        function OnGetClicked() {
            try {
                $('#lblGet_Error').text('');
                if (validateInput('txtGet_CaseId', 'lblGet_CaseIdError') & validateInput('txtGet_CaseAccessCode', 'lblGet_CaseAccessCodeError')) {
                    $('#divShow_CaseDetail').html('');
                    $('#txtGet_CaseId').attr('disabled', 'disabled');
                    $('#txtGet_CaseAccessCode').attr('disabled', 'disabled');
                    $('#imgGet_Ajax').show();
                    $.get('view-case.aspx', CreateReq_GetCaseStatus(), function(data) {
                        if (data) {
                            var objResult = eval('(' + data.split('|')[0] + ')');
                            if (objResult.result == '0') {
                                $('#lblGet_Error').text($("#hidTran_CaseNotExist").val());
                            } else {
                                iCurrentCaseId = $('#txtGet_CaseId').val();
                                iCurrentCaseAccessCode = $('#txtGet_CaseAccessCode').val();
                                htmlCaseContent = data.substring(data.split('|')[0].length + 1);
                                htmlCaseContent = htmlCaseContent.replace('__VIEWSTATE', 'hidethecontrol_5').replace('__VIEWSTATE', 'hidethecontrol_6');
                                $('#divGet').hide();
                                $('#divShow').show();
                                $('#divShow_CaseDetail').html(htmlCaseContent);
                                $('#imgAddComment_Ajax').hide();
                                $('#lblShow_Error').text('');
                                $('#lblShow_AddCommentError').hide();
                            }
                        } else {
                        $('#lblGet_Error').text($("#hidTran_CanNotConnectServer").val());
                        }
                        $('#txtGet_CaseId').attr('disabled', '');
                        $('#txtGet_CaseAccessCode').attr('disabled', '');
                        $('#imgGet_Ajax').hide();
                    })
                }
            }
            catch (error) {
                //alert(error.description);
            }
        }

        function OnAddCommentClicked() {
            try {
                if (validateInput('txtShow_AddComment', 'lblShow_AddCommentError')) {
                    $('#txtShow_AddComment').attr('disabled', 'disabled');
                    $('#imgAddComment_Ajax').show();
                    $.post('view-case.aspx', CreateReq_AddComment(), function(data) {
                        if (data) {
                            var objResult = eval('(' + data.split('|')[0] + ')');
                            if (objResult.result == '0') {
                                $('#lblShow_Error').text(objResult.message);
                            } else {
                                htmlCaseContent = data.substring(data.split('|')[0].length + 1);
                                $('#divGet').hide();
                                $('#divShow').show();
                                $('#divShow_CaseDetail').html(htmlCaseContent);
                                $('#txtShow_AddComment').val('');
                                $('#txtShow_AddComment').attr('disabled', 'disabled');
                            }
                        } else {
                            $('#lblShow_Error').text('Can not connect server.');
                        }
                        $('#txtShow_AddComment').attr('disabled', '');
                        $('#imgAddComment_Ajax').hide();
                    })
                }
            }
            catch (error) {
                //alert(error.description);
            }
        }

        //----------------helpers----------------
        function CreateReq_GetCaseStatus() {
            return { ReqType: 'GetCaseStatus', CaseId: ($('#txtGet_CaseId').val()), CaseAccessCode: ($('#txtGet_CaseAccessCode').val()), LanguageName: $('#hidSelectedLanguage').val() };
        }

        function CreateReq_AddComment() {
            return { ReqType: 'AddCaseComment', CaseId: iCurrentCaseId, CaseAccessCode: iCurrentCaseAccessCode, Comment: ($('#txtShow_AddComment').val()), LanguageName: $('#hidSelectedLanguage').val() }; //todo: we need to add info of the user (code, password) for security
        }

        //----------------field validation definitions----------------
        var _VALID_DEF_VC = new Array();

        _VALID_DEF_VC['txtGet_CaseId'] = new Array();
        _VALID_DEF_VC['txtGet_CaseId']['minLength'] = 1;
        _VALID_DEF_VC['txtGet_CaseId']['maxLength'] = 6;
        _VALID_DEF_VC['txtGet_CaseId']['alpha'] = false;
        _VALID_DEF_VC['txtGet_CaseId']['numeric'] = true;
        _VALID_DEF_VC['txtGet_CaseId']['other'] = null;

        _VALID_DEF_VC['txtGet_CaseAccessCode'] = new Array();
        _VALID_DEF_VC['txtGet_CaseAccessCode']['minLength'] = 1;
        _VALID_DEF_VC['txtGet_CaseAccessCode']['maxLength'] = 6;
        _VALID_DEF_VC['txtGet_CaseAccessCode']['alpha'] = false;
        _VALID_DEF_VC['txtGet_CaseAccessCode']['numeric'] = true;
        _VALID_DEF_VC['txtGet_CaseAccessCode']['other'] = null;

        _VALID_DEF_VC['txtShow_AddComment'] = new Array();
        _VALID_DEF_VC['txtShow_AddComment']['minLength'] = 1;
        _VALID_DEF_VC['txtShow_AddComment']['maxLength'] = 1000;
        _VALID_DEF_VC['txtShow_AddComment']['alpha'] = false;
        _VALID_DEF_VC['txtShow_AddComment']['numeric'] = false;
        _VALID_DEF_VC['txtShow_AddComment']['other'] = null;

        function validateInput(sInputElementId, sErrorLabelId) {
            var objElement = $('#' + sInputElementId);
            if (!textValidator_VC($.trim(objElement.val()),
        _VALID_DEF_VC[sInputElementId]['minLength'],
        _VALID_DEF_VC[sInputElementId]['maxLength'],
        _VALID_DEF_VC[sInputElementId]['alpha'],
        _VALID_DEF_VC[sInputElementId]['numeric'],
        _VALID_DEF_VC[sInputElementId]['other'])) {
                $('#' + sErrorLabelId).show();
                return false;
            } else {
                $('#' + sErrorLabelId).hide();
                return true;
            }
        }    
    
    
