var waitForEl = function(selector, callback, count) {
    if (jQuery(selector).length) {
        callback();
    } else {
        setTimeout(function() {
            if(!count) {
                count=0;
            }
            count++;
            if(count<=50) {

                AUI().use('node', function (A) {
                   /* A.all('.authorSuccessorLink').on('click', function (e) {
                        e.preventDefault();
                        var crtSuccessorElement = A.one(e.currentTarget);
                        crtSuccessorElement.removeClass('successorLinkActive');
                        crtSuccessorElement.all('.authorSuccessor').each(function () {
                            this.removeClass('hidden');
                        });

                        crtSuccessorElement.all('.show-more').each(function () {
                            this.addClass('hidden');
                        });
                    });*/
                    
                   

                    A.all('.show-hit-data-link').on('click', function (e) {
                        e.preventDefault();
                        var crtHitLink = A.one(e.currentTarget);
                        var crtHitLinkIcon = crtHitLink.one('i');
                        if (crtHitLink.hasClass('show-hit-data-link-open')) {
                            crtHitLink.removeClass('show-hit-data-link-open');
                            crtHitLinkIcon.addClass('icon-chevron-down');
                            crtHitLinkIcon.removeClass('icon-chevron-up');

                            crtHitLink.ancestor().ancestor().all(".search-hit-hidden-content").each(function () {
                                this.addClass('hidden');
                            });

                        } else {
                            crtHitLink.addClass('show-hit-data-link-open');
                            crtHitLinkIcon.removeClass('icon-chevron-down');
                            crtHitLinkIcon.addClass('icon-chevron-up');

                            crtHitLink.ancestor().ancestor().all(".search-hit-hidden-content").each(function () {
                                this.removeClass('hidden');
                            });
                        }
                    });

                    if (A.all('.show-hit-data-link') != undefined && A.all('.show-hit-data-link')._nodes.length < 1){

                        waitForEl(selector,callback,count);
                    }

                });
            }
        }, 250);
    }
};

var selector = $('#similardocumentsviewready');

AUI().ready(function () {
        waitForEl(selector, function() {
    });
});
AUI().ready(function () {

    YUI().use('base', 'widget', 'aui-io-request', function (Y) {
        //setupDocumentRating();
    });

    YUI().use('node', 'aui-modal', 'io-base', function (Y) {
        var varDocActionItems = Y.all('.document-actions>.list-item:not(.show-more-mobile):not(.close-mobile)');
        var varDocActionAllItems = Y.all('.document-actions>.list-item');
        var showMoreDocAction = Y.one('.document-actions .show-more-mobile');
        var closeDocAction = Y.one('.document-actions .close-mobile');
        var addToMyDocumentsDocAction = Y.one('.document-actions .addToMyDocuments');
        var createAlertDocAction = Y.one('.document-actions .createAlert');
        var mobileDownloadSectionBackground = Y.one('.mobile-popup-background');

        if(showMoreDocAction && mobileDownloadSectionBackground){
            showMoreDocAction.on('click', function (e) {
                e.preventDefault();
                varDocActionAllItems.removeClass('hidden');
                showMoreDocAction.addClass('hidden');
                showMoreDocAction.get('parentNode').addClass('da-mob-open');
                showMoreDocAction.get('parentNode').removeClass('da-mob-closed');
                mobileDownloadSectionBackground.addClass('is-mobile-pup-up');
                mobileDownloadSectionBackground.addClass('is-mobile-pup-up-actions');
            });

            closeDocPopUpAction = function(e){
                e.preventDefault();
                varDocActionAllItems.addClass('hidden');
                showMoreDocAction.removeClass('hidden');
                if(addToMyDocumentsDocAction && createAlertDocAction){
                    addToMyDocumentsDocAction.removeClass('hidden');
                    createAlertDocAction.removeClass('hidden');
                }else if(varDocActionAllItems.get(0)){
                    varDocActionAllItems.get(0)[0].removeClass('hidden');
                    varDocActionAllItems.get(0)[1].removeClass('hidden');
                }
                closeDocAction.get('parentNode').addClass('da-mob-closed');
                closeDocAction.get('parentNode').removeClass('da-mob-open');
                mobileDownloadSectionBackground.removeClass('is-mobile-pup-up');
                mobileDownloadSectionBackground.removeClass('is-mobile-pup-up-actions');
            };

            closeDocAction.on('click', function (e) {
                closeDocPopUpAction(e);
            });

            mobileDownloadSectionBackground.on('click', function (e) {
                closeDocPopUpAction(e);

                var mobileOrderSection = Y.one('#_publicationDetails_PublicationDetailsPortlet_pa .eCommerce-products');
                if(mobileOrderSection){
                    mobileOrderSection.removeClass('is-mobile-pup-up');
                    mobileOrderSectionPopUpIsOn = false;
                }

                var mobileDownloadSection = Y.one('.publication-detail-formats');
                if(mobileDownloadSection){
                    mobileDownloadSection.removeClass('is-mobile-pup-up');
                    mobileDownloadSectionPopUpIsOn = false;
                }
            });

            varDocActionItems.on('click', function (e) {
                varDocActionAllItems.addClass('hidden');
                showMoreDocAction.removeClass('hidden');
                if(addToMyDocumentsDocAction && createAlertDocAction){
                    addToMyDocumentsDocAction.removeClass('hidden');
                    createAlertDocAction.removeClass('hidden');
                }else if(varDocActionAllItems.get(0)){
                    varDocActionAllItems.get(0)[0].removeClass('hidden');
                    varDocActionAllItems.get(0)[1].removeClass('hidden');
                }
                closeDocAction.get('parentNode').addClass('da-mob-closed');
                closeDocAction.get('parentNode').removeClass('da-mob-open');
                mobileDownloadSectionBackground.removeClass('is-mobile-pup-up');
                mobileDownloadSectionBackground.removeClass('is-mobile-pup-up-actions');
            });

        }
    });

    var POP_UP_CONTENT_ID = 'popup-content';
    var dialogCloseButton = '<button type="button" class="btnCustomCloseModal" onClick=" AUI().use(\'node\', \'opportal-dialog\', function(A){if (A.opportalDialog.getDialog() != undefined) {A.opportalDialog.getDialog().hide();}});">Close</button>';

    showPopUp = function(renderUrl, title, dialogHeight, actionName) {
        //window.location.hash=actionName;
        AUI().use('node', 'opportal-dialog', function(A){
            A.opportalDialog.show(renderUrl, title, 'auto');
            try {
                YUI.one(".myportalwrapper ul.worpmenu").addClass('colapsed');
            } catch (exception) {

            }
        });
    };

    asyncSubmitDetailActionsForm = function(portletNamespace, actionName, actionURL) {
        var formValid = false;
        AUI().use('node','aui-form-validator', function(A){
            var emailInput = A.one(".form_user_email input[type='text']");
            if (!emailInput) {
                emailInput = A.one(".form_user_email .control-group input[type='text']");
            }
            if (!emailInput) {
                emailInput = A.one(".form_user_email .control-group.error input[type='text']");
            }

            if(emailInput != null && emailInput != "null") {
                var email = emailInput.get('value');
                if(email == '') {
                    formValid = false;
                    A.one(".form_user_email .control-group").addClass('error');
                    emailInput.focus();
                } else {
                    var emailRegexStr = /^[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?$/;
                    formValid = emailRegexStr.test(email);
                }
            } else {
                formValid = true;
            }

            var form = A.one('#' + portletNamespace + 'sa_fm');
            var liferayForm = Liferay.Form.get(form.attr('id'));
            if (liferayForm) {
                var validator = liferayForm.formValidator;

                if (A.instanceOf(validator, A.FormValidator)) {
                    validator.validate();

                    hasErrors = validator.hasErrors();

                    if (hasErrors) {
                        validator.focusInvalidField();

                        return;
                    }
                }
            }
        });

        AUI().use('aui-io-plugin', 'io-form', 'aui-io-request', 'opportal-dialog', function (A) {
            if(formValid) {
                A.io.request( actionURL, {
                    method: 'POST',
                    data: {actionName: actionName},
                    form: {
                        id: portletNamespace + 'sa_fm'
                    },
                    on: {
                        success: function () {
                            var responseData = this.get('responseData');
                            if (A.opportalDialog.getDialog()) {
                                A.opportalDialog.getDialog().set('bodyContent', "<br/><p>" + responseData + "</p><p>" + dialogCloseButton + "</p>");
                            }
                        }
                    }
                });
            }
        });
    }

    closeDialog = function() {
        AUI().use('node', 'opportal-dialog', function(A){
            if (A.opportalDialog.getDialog() != undefined) {
                A.opportalDialog.getDialog().hide();
            }
        });
    }

    closeRssDialog = function() {
        AUI().use('node', 'opportal-dialog', function(A){
            if (A.opportalDialog.getDialog() != undefined) {
                A.opportalDialog.getDialog().hide();
            }
        });
    }

    checkFrequencyType = function(element) {
        if(element.value == "WEEKLY") {
            document.getElementById("dayOfWeek_Selector").style.display = "block";
        } else {
            document.getElementById("dayOfWeek_Selector").style.display = "none";
        }
    }

    removeOtherPermanentLinkDialogs = function (lastDialogOpened) {
        AUI().use('node', function (A) {
            A.all('.permalink-preview').each(function (crtPermanentLinkDialog) {
                if(crtPermanentLinkDialog !== lastDialogOpened) {
                    crtPermanentLinkDialog.remove();
                }
            });
        });
    }

});
