var cooperado = {

    init : function(){

        var self = this;

        /* Add mouseover ans mouseout effects */
        /* green */
        this.buttonFx( $('div > .editaremail'), '#2b7163' );
        this.buttonFx( $('.servicosonline'), '#2b7163' );
        this.buttonFx( $('.vernoticias'), '#2b7163' );
        this.buttonFx( $('.tabelaprecos'), '#2b7163' );
        this.buttonFx( $('.planosoferecidos'), '#2b7163' );
        this.buttonFx( $('.btenvierecado'), '#2b7163' );
        this.buttonFx( $('.conhecamais'), '#2b7163' );
        this.buttonFx( $('.saibamais'), '#2b7163' );

        this.buttonFx( $('li .editaremail'), '#898981' );
        this.buttonFx( $('li .fazerdownload'), '#898981' );
        //this.buttonFx( $('.sair'), '#898981' );

        helpers.listFx( $('.downloads') );
        helpers.listFx( $('.downs') );

        this.loadTreeData();
        this.corners();
        this.formClubeMedico();
        this.pagination.init();
        this.renderVideoplayer();

        $('div > .editaremail').bind('click', function(){
            helpers.popEditEmail.init( $( this ).attr('href') );
            return false;
        });

        $('#acesso-conteudo ul.borda').each(function(){

            var h = $(this).height();
            var button = $('a.editaremail', $(this));
            button.css({ top: (h >> 1) - 27 });

        });

        $('form#licensed_finder_inline', '#acesso-conteudo').submit(function(){
            self.openPopClubeMedico( $(this).attr('action') );
            return false;
        });

        $( '.busca-estabelecimento form' ).customInput( {
            borderColor      : '#7bab32',
            background       : '#487800'
        } );

        $('a.agenda').bind('click', function(){
            self.openPopAgenda( $(this).attr('href') );
            return false;
        });

        $('#envie-recado a.lightbox, #conteudo-esquerda > nav > a').bind('click', function(){
            window.location = "#" + jQuery.url.setUrl( $( this ).attr( 'href' ) ).attr( "anchor" );
            helpers.openModal( $( this ).attr( 'href' ), care.init);
            return false;
        });

    },

    buttonFx : function(element, overColor) {

        var hitColor = element.css('backgroundColor');

        element.mouseenter(function(){

            $(this).stop().animate({

                backgroundColor : overColor

            }, 400);

        }).mouseleave(function(){

            $(this).stop().animate({

                backgroundColor : hitColor

            }, 400);

        });

    },

    renderVideoplayer : function(){

        if( !$('#video-cooperado').length ) return false;

        swfobject.embedSWF(
            STATIC_URL + "swf/cartaoviva_player.swf", "video-cooperado-swf", "350", "270", "10", STATIC_URL + "swf/playerProductInstall.swf", {
                closeFuncion: 'Section.closeVideo',
                closeFunctionParams : ['#calls .movie'],
                videoURL: STATIC_URL + 'videos/cartaoViva/video.f4v'
            }, { bgcolor : "#f7f8ea" }, {id:"flash-video", name:"flash-video"}
        );

    },

    pagination : {

        init : function(){

            this.comboBox();

            if( $('.pagination .pages').children().length == 1 ){
                $('.pagination .pages').hide();
            };

            //$( '.pagination .pages-nav' ).pagination({ ease:'easeOutBack' });

        },

        comboBox : function(){

            /*
            var combo = $('#number-pages', '.pagination')
                                           .extend(forms.combobox)
                                           .init({
                                                  className: 'comboPages',
                                                  initialValue: ( swfobject.getQueryParamValue('result') ) ? swfobject.getQueryParamValue('result') : '5',
                                                  width: 70,
                                                  cornerz: { radius : 6, background : '#f7f8ea' },
                                                  onSelectHandler: function(){

                                                    window.location = jQuery.query.set('result', combo.value);

                                                  }
                                            });
            */
            var valor = ( swfobject.getQueryParamValue('result') ) ? swfobject.getQueryParamValue('result') : '5';

            $('#number-pages', '.pagination').val( valor );

            // $('#number-pages', '.pagination').customselect( {
            //  change : function( event, value ) {
            //      window.location = jQuery.query.set('result', value.value).set('page', 1);
            //  }
            // } );

        }

    },

    loadTreeData : function(){

        if( !$('.treeview', '#chamada-principal-centro').length ) return false;

        $.ajax({
            type: "GET",
            url: "/static/cid10.xml",
            dataType: "xml",
            success: cooperado.parseTreeXml
        });

    },

    /*
     * Parse cid XML and append it to DOM
     */
    parseTreeXml : function(xml){

        var tree = $('.treeview'),
            group,
            name,
            cat,
            self,
            el,
            sub,
            part = 0,
            html00 = [],
            html01 = [],
            html02 = [],
            html03 = [];

        $('cap', xml).each(function(i){

            html02 = [];

            $('> grupo', $(this)).each(function(k, el){

                group = $(this);
                name  = $('> n', group).text();

                cat  = $('> cat', group);
                self = this;

                cat.each(function(j){

                    html03 = [];
                    el   = $(this);
                    sub  = $('> sub', el);
                    name = $('> n', el).text();

                    if( sub.length ){

                        sub.each(function(){

                            html03.push('<li><span>' + $(this).text() + '</span></li>');

                        });

                    }

                    html02.push('<li><span>' + name + '</span><ul>'+html03.join('')+'</ul></li>');

                });

                html01[part] = '<li><span>' + name + '</span><ul>'+html02.join('')+'</ul></li>';

                part++;


            });

            html00.push('<li class="partline" rel="'+part+'"><span>' + $('> n', $(this)).text() + '</span><ul></ul></li>');




            // tree.append('<li><span>' + $('> n', $(this)).text() + '</span><ul></ul></li>');
            //
            //           $('> grupo', $(this)).each(function(k, el){
            //
            //               group = $(this);
            //               name  = $('> n', group).text();
            //
            //               $('> li:eq('+i+') > ul', tree).append('<li><span>' + name + '</span><ul></ul></li>').filter(function(index){
            //                   console.log(group)
            //                   cat  = $('> cat', group);
            //                   self = this;
            //
            //                   cat.each(function(j){
            //
            //                       el   = $(this);
            //                       sub  = $('> sub', el);
            //                       name = $('> n', el).text();
            //
            //                       $('> li:eq('+k+') > ul', self).append('<li><span>' + name + '</span><ul></ul></li>').filter(function(index2){
            //
            //                           target = $('> li:eq('+j+') > ul', $(this));
            //
            //                           if( sub.length ){
            //
            //                               sub.each(function(){
            //
            //                                   target.append('<li><span>' + $(this).text() + '</span></li>');
            //
            //                               });
            //
            //                           }
            //
            //                       });
            //
            //
            //                   });
            //
            //               });
            //
            //           });

        });

        document.getElementById('listCid').innerHTML = html00.join('');

        $('#listCid .partline > span').bind('click', function() {
            var li = $(this).parent();
            if ($('> ul > li', li).length) {
                $('> ul', li).slideToggle();
            } else {
                $('> ul', li).html('').html(html01[parseInt(li.attr('rel'))]);
                $('> ul', li).treeview({
                            collapsed: true,
                            unique: true,
                            animated: "medium",
                            control:"#sidetreecontrol",
                            persist: "location"
                        });
            }
        });


    },

    formClubeMedico : function(){

        $( '.licensed_finder select').customselect({
            visible: 5,
            classname: 'default-filter-select'
        });

        $('.droapps-ui-customselect').corner('6px');
        $('.round-wk').corner('6px');

        helpers.buttonFx( $( '#licensed_finder .enviar' ), '#317769' );
    },

    openPopClubeMedico : function(url){

        var self = this;

        helpers.openModal( url, function(){
            self.onLoadPopClubeMedico();
        });

    },

    onLoadPopClubeMedico : function(){
        
        $('#fancybox-wrap').width(801).height(521);
        
        // Copiar o conteúdo digitado na primeira página
        $("#licensed_finder_inline select, #licensed_finder_inline input").each(function() {
            var id = "#licensed_finder_pop #"+ $(this).attr('id');
            $(id).val($(this).val());
        });

        // Chamar o layout do form
        this.formClubeMedico();


        // Registrar o evento do click
        this.registerEventsClubeMedico();

        // Forçar o clique ao abrir a modal
        $('form#licensed_finder_pop').trigger('submit');

        /*
         * Styles
         */
        $('.busca-estabelecimento, .pop-cooperado-finder > div').cornerz( { radius : 6, background : '#f8f8e9' } );
        $('button.enviar').corner('6px');
        $('.pop-cooperado-finder > div .result').jScrollPane({showArrows:true, scrollbarWidth:40});
    },

    registerEventsClubeMedico: function(){

        $('#clube-submit').unbind('click');
        $('form#licensed_finder_pop').unbind('submit').bind('submit',function(event){

            var tipo_servico = $("#licensed_finder_pop #select-category").val()
            var cidade = $("#licensed_finder_pop #select-city").val()
            var bairro = $("#licensed_finder_pop #select-neighbourhood").val()
            var busca = $("#licensed_finder_pop #keyword").val()

            cooperado.searchClubeMedico(tipo_servico, cidade, bairro, busca)

            return false;
        });
    },

    searchClubeMedico: function( tipo_servico , cidade, bairro, busca ){
            $.ajax({
                url: $("#licensed_finder_pop").attr('action'),
                data: {'tipo_servico': tipo_servico, 'cidade': cidade, 'bairro': bairro, 'busca': busca},
                type: 'POST',
                dataType: 'json',
                success: function(data) {
                    $('.result ul').html('');
                    if(data.length == 0){
                        $('.result ul').append( $('<li><h3 class="green-color">Sua busca não encontrou nenhum resultado.</h3></li>') );
                        return;
                    }

                    $.each( data, function(i,parceiro){
                        var nome = parceiro['nome'];
                        var site = parceiro['servicoendereco__site'];
                        var telefone = parceiro['servicoendereco__telefone'];
                        var desconto = parceiro['servicoendereco__desconto'];
                        var contato = parceiro['servicoendereco__contato'];
                        var endereco = parceiro['servicoendereco__logradouro'];
                        var endereco = endereco + ", " + parceiro['servicoendereco__numero'];
                        if (parceiro['servicoendereco__complemento']) {
                            endereco = endereco + " - " + parceiro['servicoendereco__complemento'];
                        }
                        endereco = endereco + " - " + parceiro['servicoendereco__bairro'];
                        endereco = endereco + " - " + parceiro['servicoendereco__cidade'];
                        endereco = endereco + " - " + parceiro['servicoendereco__cep'];

                        var html  = "<h3 class='green-color'> PARCEIRO_NOME </h3>";
                            html += "<p>Endereço: PARCEIRO_ADDRESS </p>";
                            html += "<p>Telefone: PARCEIRO_PHONE " + (parceiro['site'] ? "| Site: <a href='http://PARCEIRO_SITE'>PARCEIRO_SITE</a>" : "") +
                                                                    (parceiro['mail'] ? "| E-mail: <a href='mailto: PARCEIRO_EMAIL'>PARCEIRO_EMAIL</a></p>" : "");
                            html += "<p>Promoçao: <strong> PARCEIRO_DESCONTO </strong></p>";

                            html = html.replace(/PARCEIRO_NOME/g,  nome).replace(/PARCEIRO_ADDRESS/g,endereco)
                                       .replace(/PARCEIRO_PHONE/g, telefone).replace(/PARCEIRO_SITE/g, site)
                                       .replace(/PARCEIRO_EMAIL/g, contato).replace(/PARCEIRO_DESCONTO/g, desconto);

                        $('.result ul').append( $('<li>' + html + '</li>') );
                    });

                    // Update jScrollPane
                    $('.pop-cooperado-finder > div .result').jScrollPane({showArrows:true, scrollbarWidth:40});

                    //try { console.log("Password recovered with success", data); } catch(e){};
                    //helpers.pop.showSuccess( $('.pop-password') );
                },
                error: function(request){
                    $('.result ul').append( $('<li><h3 class="green-color">Ocorreu algum problema ao realizar sua busca. Tente novamente</h3></li>') );
                    return;
                }
            });

    },

    openPopAgenda : function(url){

        var self = this;

        helpers.openModal(url, function(){
            self.onLoadPopAgenda();
        });

    },

    onLoadPopAgenda : function(){

        var self = this;

        $( '.pop-cooperado-agenda form' ).customInput( {
            borderColor      : '#d0dbca',
            background       : '#7a8c7e',
        } );

        care.tabs.fale.messageTextArea = $('.pop-cooperado-agenda form #message-coop')
                                            .extend(forms.textarea)
                                            .init({
                                                className: 'coop-textarea border-normal',
                                                width: 360,
                                                height: 253,
                                                initialValue: 'Observação',
                                                cornerz: { radius : 6, background : '#f8f8e9' }
                                            });

        //Add textfield autoresize and scrollbar plugin
        var scrollPane = $('.coop-textarea');

        //TODO: tirar
        setTimeout(function(){
            self.reloadScroll(scrollPane,0);
        },500);

        $('textarea', '.textarea').autoResize({
            onResize : function() {
                //var h = parseInt(document.getElementById('message').style.height);
                self.reloadScroll(scrollPane, $(this).height());
            },
            limit : 99999999
        });

        $('.pop-cooperado-agenda form .agenda-button a').cornerz({radius:6}).unbind('click').bind('click', function(){
            self.validatePopAgenda();
            return false;
        });

        $('.pop-cooperado-agenda form #phone-coop').setMask('phone');

    },

    reloadScroll : function(obj, height) {
        $('#message-scroller', '.coop-textarea').jScrollPane({showArrows:true, scrollbarWidth:35});
        $('#message-scroller', '.coop-textarea').get(0).scrollTo(height);
    },

    validatePopAgenda : function(){

        if ( !forms.validate.email( $('.pop-cooperado-agenda form #mail-coop').val() ) ){
            forms.showAlert($('.pop-cooperado-agenda form .agenda-button span'), 'Preencha corretamente o campo E-mail');
        } else if ( $('.pop-cooperado-agenda form #phone-coop').val() == '' ){
            forms.showAlert($('.pop-cooperado-agenda form .agenda-button span'), 'Preencha corretamente o campo Telefone');
        } else {

            if ( $('.pop-cooperado-agenda form #message-coop').val() == 'Observação' ) {
                $('.pop-cooperado-agenda form #message-coop').val('');
            }

            this.sendPopAgenda();
        }

    },

    sendPopAgenda : function(){

        var form = $('form#form_agenda');

        var area = 'Agenda';
        var subject = $('.evento', form).text();

        var message = [
            'Inscrição on-line enviada através do site Unimed-Rio / Médico Cooperado:\n',
            'Evento: '   + $('.evento', form).text(),
            'Nome: '     + $('.nome', form).text(),
            'Cartão: '   + $('.associado', form).text(),
            'E-mail: '   + $('#mail-coop', form).val(),
            'Telefone: ' + $('#phone-coop', form).val(),
            'Mensagem: ' + $('#message-coop', form).val() + '\n',
            'Acesse: www.unimedrio.com.br'
        ].join('\n');

        $.ajax({

            url: '/api/contato/mail.json',
            data: JSON.stringify({ area: area, subject: subject, message: message }),
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json',
            success: function(data) {

                helpers.pop.showSuccess( $('.pop-cooperado-agenda') );

            },
            error: function(request){

                forms.showAlert(
                    $('div.agenda-button span'),
                    'Erro ao enviar sua mensagem.'
                );
            }
        });

    },

    corners : function(){

        $('img.cornerz', '#acesso-conteudo').each(function(){
            helpers.imgToCornerz($(this)).cornerz( { radius : 6, corners: 'tl tr bl', background : '#f8f8e9' } );
        });

        $('button.enviar,' +
         '#conteudo-esquerda.tuss > nav > a.contact,' +
         '#conteudo-esquerda.tuss > nav > a.faq,' +
         '.tabelaprecos,' +
         '.planosoferecidos,' +
         '#acesso-relacionamento a.editaremail,' +
         '#medico-cooperado-direita ul .servicosonline,' +
         '#medico-cooperado-direita ul .vernoticias, ' + '#fale-unimed ').cornerz( { radius : 6, background : '#ebebdd' } );

         $('#acesso-esquerda-sidebar #fale-unimed #envie-recado ul').cornerz( { radius : 6, background : '#005746' } );

         $('#acesso-esquerda-sidebar #fale-unimed #envie-recado ul .btenvierecado').cornerz( { radius : 6, background : '#004638' } );

         $('#acesso-relacionamento').cornerz( { radius : 6, background : '#f8f8e9' } );

        //$('.sair').cornerz({ radius : 6, background : '#ebebdd' });

        $('.busca-estabelecimento,' +
          '#acesso-conteudo ul.borda,' +
          '#medico-cooperado-direita > nav > ul,' +
          '#acesso-esquerda-sidebar > nav > ul').cornerz( { radius : 6, background : '#f8f8e9' } );

    }

}

$( document ).ready( function() {
    cooperado.init();
} );