/**
 * --------------------------------------- //
 * Js - Helpers
 * Funcoes genericas da aplicacao
 * ------------------------------------ //
 **/

var helpers = {
    
    isLoad : false,
    
    init : function() {
        
        if(!this.isLoad) this.isLoad = true;
        else return false;

        helpers.menu.init();
        helpers.pagination.init();
        helpers.basicPop.init();
        helpers.tabsPop.init();
        helpers.popCare.init();
        helpers.popForgotPassword.init();
        //helpers.popPlansCompare.init();
        helpers.popTiss.init();
        helpers.popJourney.init();
        helpers.popBroker.init();
        helpers.otherTab.init();
        
        helpers.browserCheck();
        helpers.showFormContact();
        
        helpers.borders.init();
    },
    
    otherTab: {
        
        init : function(){
            
            var file = $(".file a");
            
            file.attr("target", "_blank");
                
        }
    
    },
    
    cookieVerify : {
    
        set : function(){
        },
        
        get : function(){
        }
        
    },

    menu : {
        
        init : function() {
            
            /**
             * -------------------------------------------------- //
             * Percorre todos os links do menu
             * Verifica se é o link selecionado ou nao
             * e ajusta o layout do submenu (internas ou home)
             * -------------------------------------------------- //
             **/
            $( 'ul#nav > li' ).each( function() {
                var el = $( this );
                el.find('>a').attr('href', el.find('> ul > li:first a').attr('href'));
                if( el.hasClass( 'ancestor' ) ) {
                    el.find( '> ul').width( 774 );
                    el.find( '> ul').css( { 'right'   : 0  } );
                    el.find( '> ul > li').css( { 'height'    : 54 } );
                    el.find( '> ul > li > h4').css( { 'margin-top' : 20 } );
                    el.find( '> ul > li > p:last-child').hide();
                    el.find( '> ul').show();
                } else {
                    el.find( '> ul' ).css( { 'left' : 0 } );
                }
                
                /**
                 * ------------------------------ //
                 * Mouse Over dos links do menu 
                 * e controle das abas
                 * ------------------------------ //
                 **/
                el.mouseenter(function() {
                    if( !$( this ).hasClass( 'ancestor' ) ) {
                        $( 'ul#nav > li.ancestor' ).addClass( 'remove' );
                        $( this ).find( '> ul' ).css( {
                            'display' : 'block',
                            'z-index' : 9999
                        } );
                    }
                }).mouseleave( function() {
                    $( 'ul#nav > li.ancestor' ).removeClass( 'remove' );
                    if( !$( this ).hasClass( 'ancestor' ) ) {
                        $( this ).find( '> ul' ).hide();
                    }
                });
                
                el.find( '> ul > li' ).bind( 'click', function() {
                    window.location = $( this ).find( 'a' ).attr( 'href' );
                } );
            } );
            
            helpers.menu.calculate();
            helpers.menu.over();
        },
        
        calculate : function() {
            var size = 0;
            
            $( 'ul#nav > li > ul' ).each( function() {
                size = ( $( this ).width() / $( this ).find( '> li' ).size() );             
                $( this ).find( '> li'      ).width( size  );
                $( this ).find( '> li > span' ).width( size  ).height(80);
                $( this ).find( '> li > span' ).fadeTo( 0, 0 );
            } );
        },

        over : function() {
            $( 'ul#nav li ul li' ).mouseenter( function() {
                if( !$( this ).parent().parent().hasClass( 'ancestor' ) ) {
                    $( this ).find( 'span' ).height(120).stop().fadeTo( 300, 1 );
                }
            }).mouseleave( function() {
                $( this ).find( 'span' ).stop().fadeTo( 300, 0 , function() {
                    $(this).height(80);
                });
            });
        }
    },
    
    pagination : {
        init : function(){
            if($('.paginacao form').length > 0) {
                $('.paginacao form').jqTransform({imgPath:'/static/scripts/jqtransform/jqtransformplugin/img/'});       
                $('.paginacao form div.jqTransformSelectWrapper ul li a').click( function() {
                    $(this).parentsUntil(".paginacao", "form").submit();
                    return false;
                });
            }
        }
    },
    
    utils: {
        _zoom_atual: 100,
        zoom: function(vezes){
            var _max_zoom = 130,
                _min_zoom = 80;
            
            helpers.utils._zoom_atual = helpers.utils._zoom_atual+(vezes*10);
            
            if(!vezes)
                helpers.utils._zoom_atual = 100;
            
            if(helpers.utils._zoom_atual > _max_zoom)
                helpers.utils._zoom_atual = _max_zoom;
            
            if(helpers.utils._zoom_atual < _min_zoom)
                helpers.utils._zoom_atual = _min_zoom;
            
            if($.browser.mozilla){
                $("body").css("-moz-transform", "scale("+(helpers.utils._zoom_atual/100)+")");
                $("body").css("-moz-transform-origin", "50% 0");
            } else if ($.browser.opera) {
                $("body").css("-o-transform", "scale("+(helpers.utils._zoom_atual/100)+")");
                $("body").css("-o-transform-origin", "50% 0");
            } else {
                $("body").css("zoom", (helpers.utils._zoom_atual/100));
                if($.browser.msie){
                    if($.browser.version >=9)
                        window.setTimeout('$("html").css("margin-left",'+
                                '($(window).width()-($(window).width()*helpers.utils._zoom_atual/100))+"px")', 1);
                    else
                        $("body").css("margin-left",
                                ($(window).width()-($(window).width()*helpers.utils._zoom_atual/100))+"px");
                }
            }
        }
    },
    
    basicPop : {
        
        init : function(){
            var self = this;
            $('a.lightbox.basicpop').bind('click', function(){
                helpers.openModal( $( this ).attr( 'href' ), self.onLoadModal );
                
                
                return false;
            });
        },
        
        onLoadModal : function(){
            $('#fancybox-wrap').width(801).height(520);
            
            $('> div','.pop')
            .cornerz( { radius : 6, corners : "tl tr bl" } )
            .find('> div')
            .jScrollPane({showArrows:true, scrollbarWidth:40});
            
            if( $.browser.msie ) {
                $( 'ul.listFx','.pop' ).corner( '6px' );
            } else {
                helpers.listFx( $( 'ul.listFx','.pop' ) );
            }                       
        }
        
    },
    
    tabsPop : {
        
        init : function(){
            var self = this;
            $('a.lightbox.tabspop').bind('click', function(){
                helpers.openModal( $( this ).attr( 'href' ), self.onLoadModal );
                return false;
            });
        },
        
        onLoadModal : function(){
            
            $('#fancybox-wrap').width(840).height(560);
            
            $('> ul','.pop')
            .cornerz( { radius : 6, corners : "tl tr bl" } );
            
            var tabs = $( 'div.pop-tabs ul > li.tab' );
            tabs.width( Math.ceil( 796 / tabs.length ) );
            
            tabs.click( function() {
                tabs.removeClass('selected');
                $(this).addClass('selected');
                $('> div', tabs).hide();
                $('> div', this)
                .show()
                .find('.holder-body-features')
                .jScrollPane({showArrows:true, scrollbarWidth:40});
            } );
            
            tabs.cornerz({radius:6, corners:'tl tr', background : '#f8f8e9'});
            
            /* Set first tab */
            tabs.eq(0).trigger('click');
            
            helpers.listFx($('ul.listFx','.pop'));
            /*
            var fix_ul_position = new helpers.tabPosition({ 'container': $('> ul:eq(0)', '.pop-tabs') });
            fix_ul_position.initialize();
            */
        }
        
    },

    /*
     * Toggle a input from text to password (and vice-versa)
     */
    text2password: function(element, options){
        var _options = options || {labelOff: 'Senha',labelOn: ''};
        var _el      = element;
        var _type    = element.type;
        var _nexttype    = ({password: 'text', text: 'password'})[_type];
        var _label   = (_nexttype == 'password' ? _options['labelOn'] : _options['labelOff'] );

        /*
         * IE needs special treatment
         */
        if($.browser.msie){
            var clone       = _el.cloneNode(false);
            clone.id        = _el.id;
            clone.type      = _nexttype;
            clone.value     = _label 

            if(!_el.parentNode)
                return;

            _el.parentNode.replaceChild( clone, _el )
                        $(_el).focus();
        } else {
            _el.type  = _nexttype;
            _el.value = _label;
        }
    },
    
    playSoundLogo : function(){
    },
    
    /**
     * ----------------------------------------- //
     * Metodo para recuperar o hash da url
     * Ex: http://www.blablabla.com.br#foo=bar
     * Recupera => foo=bar
     * @return Array()
     * ----------------------------------------- // 
     **/
    getHash : function() {
        
        if(typeof jQuery.url == 'function')
            var hash    = jQuery.url().attr( "anchor" );
        else
            var hash    = jQuery.url.attr( "anchor" );
        
        var arrHash = '';
        
        if( hash != null ) {
            arrHash = hash.split( '=' );
        }
        
        return arrHash;
        
    },
    
    browserCheck : function() {
        
        //if($.browser.mozilla){
        if($.browser.msie && $.browser.version < 7 ){
            
            helpers.openModal( BROWSER_CHECK_URL, function(){
                
                $('a','.pop-browser-check').cornerz({radius:6});
                $('section','.pop-browser-check').cornerz({radius:6, corners:'tl tr bl'});
                
                $('#fancybox-outer').css({backgroundColor:'#cb8384'});
                $('#fancybox-close').css({backgroundImage:'url(' + MEDIA_URL + 'assets/img/common/ui/btn_close_error.png)'});
                
            }, {w:410, h:293, overlayColor:'#e3cdcd', overlayOpacity:1});

        }
    
    },
    
    
    
    /**
     * ------------------------------------------- //
     * Common pop-up features
     * ------------------------------------------- //   
     **/
    pop : {
        
        showSuccess : function(escope){
            
            /* Show message success at send form */
            $('.msg-sucess', escope).fadeIn(200, function(){
                
                try {
                    var _tmp = window.parent.location.host;
                    $('a', this).show();
                    $('a', this).cornerz({radius:6}).css({'display':'block', 'margin':'0 auto 0 auto'}).unbind().bind('click', function(){
                        helpers.pop.onClosePop();
                        return false;
                    });
                } catch (e) {
                    $('a', this).hide();
                }
                
            });
            
        },
        
        onClosePop : function(){
            
            $('#fancybox-close').trigger('click');
            //alert();
            
        }

        
    },
    
    /**
     * ------------------------------------------- //
     * Contact pop-up
     * ------------------------------------------- //
     **/
    popCare : {
            
        init : function() {
            
            /**
             * ---------------------------------------- //
             * Verifica se existe permalink do popup
             * e abre o popup da hashtag informada
             * ---------------------------------------- //
             **/
            var hashUrl = helpers.getHash();

            if( hashUrl[ 0 ] == 'pop' ) {
            	$(document).ready(function(){
            		helpers.openModal( CONTATO_POPUP_URL, care.init );
            	});
            }
            
            /**
             * -------------------------------------------- //
             * Evento de click dos itens de atendimento
             * -------------------------------------------- //
             **/
            $( 'a[href*="fale-conosco/popup#pop="]' ).bind( 'click', function() {

                /**
                 * Atualiza o hash da url
                 **/
            	$("ul#contato-sub").trigger('mouseout');
            	
                window.location = "#" + jQuery.url( $( this ).attr( 'href' ) ).attr( "anchor" );

                helpers.openModal( CONTATO_POPUP_URL, care.init);    

                return false;

            } );
            
        }
        
    },
    
    popTiss : {
        
        init : function(){
                        
            $( 'a', '.links-info' ).bind( 'click', function() {
                
                helpers.openModal( $( this ).attr( 'href' ), helpers.popTiss.onLoadPop );   
                return false;

            });
            
        },
        
        onLoadPop : function(){
            
            $('.list-documents > thead > tr > td').cornerz( { radius : 6, corners: 'tl tr', background : '#f8f8e9' } );             
            $('.important-observation').cornerz( { radius : 6, background : '#f8f8e9' } );                          
            
            $( '.section > div', '.pop' ).jScrollPane( { showArrows:true, scrollbarWidth:40 } );
            
        }
        
    },  
    

    popJourney : {
                
        init : function(){
            
            $( 'a.pop-autorizacao','.step-by-step.rio' ).bind( 'click', function() {
                helpers.openModal( $( this ).attr( 'href' ), helpers.popJourney.onLoadPop, { w : 800, h : 545 });

                return false;
            });

            $('#bt-send-pass-one').click(function(){
                $('.select-custom').customselect();
                alert('oi');
            });
            
            
            var fix_ul_position = new helpers.tabPosition({ 'container': $('#tabs-holder') , 'tab_label': $('div.section')});
            fix_ul_position.initialize();

            $('.tab').cornerz({radius:6, corners:'tl tr'});     
        },
        
        onLoadPop : function(){ 
            
            $('#fancybox-wrap').width(801).height(570);

            // Configure ajax
            $('#form-autorization').iframePostForm({
                post: function() { /*console.log("Submitting");*/ },
                complete: function(response) { 
                    //console.log("Form submited."); 
                    //console.log(response);
                    
                    r = eval('(' + response + ')');
                    
                    if(!r.success){
                        alert('Ocorreu um erro. \n' + r.description);
                    } else {
                        // mostra mensagem de sucesso (e esconde form atual)
                        $( '.authorization-pass-three' ).show();
                        $( '.authorization-pass-two-upload' ).hide();

                        $( '.authorization-pass-two'+helpers.popJourney.getTypeRequest() ).hide();
                        
                        $('#protocol').html(r.protocolo);
                    }
                    
                }
            });
            
            // prepare tabs
            $( '.holder-tabs ul li a' ).click(function() {
                
                $( '.holder-tabs ul li' ).removeClass( 'selected' );
                $( this ).parent().addClass( 'selected' );
                $( '.holder-tabs ul li div.section' ).hide();
                
                var formAutorization = $( this ).parent().find( 'div.section' ).first();
                formAutorization.show();
                
            });
            
            // custom inputs
            var custom_class = 'd3-custom-input';
            var input_text   = $( 'input:text' , '.holder-fields' );
            
            input_text.each(function( i , el ){
                el = $( el );
                if( !el.parent().hasClass( custom_class ) ) {
                    el.wrap( '<div class="'+ custom_class +'" />' );
                }
            });
            
            // toggle radio button
            $( 'input:radio' , '.holder-fields' ).bind( 'click' , function(e) {
                var el   = $( e.currentTarget ),
                    name = el.attr('name');
                $( 'input:radio[name='+ name +']' , '.holder-fields' ).parent().removeClass('checked');
                el.parent().addClass('checked');
            });
            
            // custom select
            $('select#field-origem').customselect({
                classname: 'origin',
                visible: 5
            });
            
            $('select#field-tipo-plano').customselect({
                classname: 'plan-type',
                position : 'up'
            });
            
            //$('select#field-quantidade').customselect({
            //  classname: 'plan-type',
            //  position : 'up',
            //  visible: 3
            //});
            
            // cornerz
            $( '.holder-fields .bt-submit input' ).cornerz( { radius : 6, background : '#f8f8e9' } );
            $( '.border-radius-top' ).cornerz( { radius : 6, corners : 'tl tr', background : '#f8f8e9' } );
            $( '.holder-tabs ul > li.tab2 > section ul li' ).cornerz( { radius : 6, background : '#f8f8e9' } );
            $( '#form-autorization .sendButton, #form-autorization .backButton' ).cornerz( { radius : 6, background : '#f8f8e9' } );
            
            helpers.popJourney.setMask();       
            
            /**
             * Aplica borda nos campos do form usando o plugin Corners
             **/
            $( '.d3-custom-input, .droapps-ui-customselect' ).corner( '6px' );
            
            /**
             * Acao de inserir e remover campos de upload
             **/
            $( '.bt-add' ).unbind( 'click' ).bind( 'click', function() {
                
                var totalFiles = $( 'input:file', '.holder-doc-fields' ).size();
                if( totalFiles < 5 ) {
                    var newInputFile = '<div><input type="file" name="doc-autorizacao'+ ( totalFiles + 1 ) +'" id="doc-autorizacao'+ ( totalFiles + 1 ) +'" /> <a href="#" class="bt-delete">remover</a></div>';
                    $( '.holder-doc-fields' ).append( newInputFile );
                    $( '.bt-delete' ).unbind( 'click' ).bind( 'click', function() {
                        $( this ).parent().remove();
                        return false;
                    });
                }
                
                return false;
            });
            
            
            
            /**
             * Controle do botão adicionar campos
             */
            $('.add_fields').bind('click', function() {
                
                var typeRequest = helpers.popJourney.getTypeRequest();
                
                $('.remove').remove();
                
                /*$($('.authorization-pass-two'+typeRequest+ ' .add-control').prev().clone())
                    .insertBefore('.authorization-pass-two'+typeRequest+' .add-control')
                    .find('input')
                    .val('');*/

                    $('.procedimentos').append('<tr><td><div class="d3-custom-input" style="border-top-left-radius: 6px; border-top-right-radius: 6px; border-bottom-left-radius: 6px; border-bottom-right-radius: 6px;"><input type="text" name="cod_procedimento" id="field-cod-procedimento" tabindex="36" style="width:100px"></div></div></td><td><div class="d3-custom-input" style="border-top-left-radius: 6px; border-top-right-radius: 6px; border-bottom-left-radius: 6px; border-bottom-right-radius: 6px;"><input type="text" name="nome_procedimento" id="field-nome-procedimento" tabindex="37" maxlength="80" /></div></td><td><select name="quantidade" id="field-quantidade" class="select-custom" tabindex="10" style="width:80px"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option> <option value="9">9</option><option value="10">10</option></select></td></tr>');
                    $('.select-custom').customselect({ classname: 'quantidade' });
                    $('.procedimentos input').customInput();
                    
                    $('input[name="quantidade"], input[name="cod_procedimento"]').setMask('9999999999');
                    
                    $('input[name="quantidade"]', '.authorization-pass-two-internacao .procedimentos').each(function(i) { 
                        if (i>0) {
                            $(this)
                                .parent()
                                .parent()
                                .parent()
                                .append('<td class="remove"><span class="add_fields"><img src="/static/img/common/ui/cancel.png" width="16" height="16" alt="Remove"> Remover</span></td>');
                        }
                    });
                    
                    $('.remove').unbind('click').bind('click', function() {
                        $(this).parent().remove();
                    });
                    
                    // Scroll
                    $( '.authorization-pass-two'+typeRequest+' .holder-scroll' ).jScrollPane( { showArrows:true, scrollbarWidth:40 } );

                    return false;
                }
            );
            

            /**
             * Controle do form [passo 1]
             **/
            $( '.sendButton', '.authorization-pass-one' ).unbind( 'click' ).bind( 'click', function() {
                
                if(! helpers.popJourney.validate( '.authorization-pass-one' ) )
                    return;
                
                var typeRequest = helpers.popJourney.getTypeRequest();
                
                var typeSubmitRadio = $( 'input[name="tipo_envio"]' );
                
                if( typeSubmitRadio.eq( 0 ).is( ':checked' ) ) {
                    $( '.authorization-pass-two'+typeRequest ).show();
                    
                    $( '.authorization-pass-two input' ).attr('disabled', 'disabled');
                    $( '.authorization-pass-two'+typeRequest+' input' ).removeAttr('disabled');
                    
                    // Scroll
                    $( '.authorization-pass-two'+typeRequest+' .holder-scroll' ).jScrollPane( { showArrows:true, scrollbarWidth:40 } );
                }
                
                if( typeSubmitRadio.eq( 1 ).is( ':checked' ) ) {
                    
                    $( '.authorization-pass-two input' ).attr('disabled', 'disabled');
                    $( '.authorization-pass-two-upload' ).show();
                    
                }
            
                $( '.authorization-pass-one' ).hide();
                $('.select-custom').customselect({ classname: 'quantidade' });
                $('.select-acomodacao').customselect();
                
                return false;

            } );
            
            /**
             * Controle do form [passo 2]
             **/
             
            $( '.sendButton', '.authorization-pass-two' ).unbind( 'click' ).bind( 'click', function() {
                
                if(! helpers.popJourney.validate( '.authorization-pass-two'+helpers.popJourney.getTypeRequest() ) )
                    return;

                helpers.popJourney.sendForm();
                
                return false;
            } );
            
            /**
             * Controle do form [passo 2 upload]
             **/
            $( '.sendButton', '.authorization-pass-two-upload' ).unbind( 'click' ).bind( 'click', function() {
                helpers.popJourney.sendForm();
            });
            
            /**
             * Controle do form [passo 2]
             **/
            $( '.backButton').unbind( 'click' ).bind( 'click', function() {
                $( '.authorization-pass-one' ).show();
                $( '.authorization-pass-two'+helpers.popJourney.getTypeRequest() ).hide();
                $( '.authorization-pass-two-upload' ).hide();
            } );
            
            
            // Temp shortcut
            //$( '.authorization-pass-one' ).hide();
            //$( '.authorization-pass-two'+helpers.popJourney.getTypeRequest() ).show();
            
        },
        
        setMask: function() {
            $.mask.options.autoTab = false;
            $('input[name="quantidade"], input[name="cod_procedimento"]').setMask('9999999999');
            $('input[name="numero_guia"]').setMask('99999999999999999999');
            $('input[name="quantidade_diarias"]').setMask('9999999999');
            $('#field-cartao').setMask('99999999999999999');
            $('#field-nasc').setMask('date');
            $('#field-fone').setMask('phone');
            $('#field-celular').setMask('phone');
            $('#field-validade').setMask('99/9999');
            $('input[name="data_realizacao_procedimento"]').setMask('date');
            
        },
        
        validate : function( dom ) {
            var s         = forms.showAlert,
                f         = $(':input' , dom),
                msg       = ' corretamente o campo ',
                pass      = true,
                emailFieldPattern = /email/,
                emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

            f.each(function( i , element ){
                var el         = $( element ),
                    tagname    = element.tagName.toLowerCase(),
                    input_type = tagname == 'input' ? el.attr('type') : '',
                    value      = el.val(),
                    id         = el.attr('id'),
                    label      = $('label[for="'+ el.attr('id') +'"]', dom),
                    labels = [],
                    txt        = '',
                    pre_msg    = '';
                    
                    label.each(function() {
                        labels.push($(this).text()); 
                    });
                    
                    txt = labels.join(', ')
                
                if( 
                    (tagname == 'input' && input_type == 'radio' ) ||
                    (tagname == 'input' && input_type == 'checkbox' ) ||
                    (tagname == 'select') 
                ) 
                    { pre_msg = 'Selecione'; }
                else
                    { pre_msg = 'Preencha'; }
                
                if (emailFieldPattern.test(id)) {
                    if (!emailPattern.test(value))
                        value = '';
                }
                
                if( !value ) { 
                    s( $('.form-autorization-holder-error', dom) , pre_msg + msg + txt );
                    pass = false;
                }
            });
            
            if( !pass ) { return false; }
            return true;
        },
        
        // Envia o form 
        sendForm : function(sended_cb) {
            //$( '.authorization-pass-three' ).hide();
            //$( '.authorization-pass-two'+helpers.popJourney.getTypeRequest() ).hide();
            //$( '.authorization-pass-two-upload' ).hide();
            $('#form-autorization').trigger('submit');
            //$.post( $('#form-autorization').attr('action'), $('#form-autorization').serialize(), function(data) {
            //    console.log("Form submited."); console.log(data);
            //}, 'json');
        },
        
        getTypeRequest : function() {
            return $( 'input[name="solicitacao"]' ).eq( 0 ).is( ':checked' ) ? '-internacao' : '-exame';
        }
        
    },
    
    popPlansCompare : {
        
        init : function(){
            
            $( 'a','#wrapper #button-compare-plans' ).bind( 'click', function() {
                
                helpers.openModal( $( this ).attr( 'href' ), helpers.popPlansCompare.onLoadPop);

                return false;
                
            });
            
        },
        
        onLoadPop : function(){
            
            $('#fancybox-wrap').width(840).height(560);
                        
            $( '.holder-body-features' ).jScrollPane({showArrows:true, scrollbarWidth:40});

            $( '.pop section' ).cornerz( { radius : 6, corners : 'tl tr bl', background : '#f8f8e9' } );

            /*$( '.border-radius-top' ).cornerz( { radius : 6, corners : 'tl tr', background : '#f8f8e9' } );
            $( '.border-radius-tl' ).cornerz( { radius : 6, corners : 'tl', background : '#f8f8e9' } );
            $( '.border-radius-tr' ).cornerz( { radius : 6, corners : 'tr', background : '#f8f8e9' } );
            $( '.border-radius-bl' ).cornerz( { radius : 6, corners : 'bl', background : '#f8f8e9' } );
            $( '.border-radius-br' ).cornerz( { radius : 6, corners : 'br', background : '#f8f8e9' } );
            $( '.border-radius-bottom' ).cornerz( { radius : 6, corners : 'bl br', background : '#f8f8e9' } );*/
            
        }
        
    },
    
    popSustainability : {
        
        init : function(url, index){
            
            helpers.openModal( url, helpers.popSustainability.onLoadPop );
            
        },
        
        onLoadPop : function() {
            $( '.holder-scroll' ).jScrollPane({showArrows:true, scrollbarWidth:40});            
            $( '.holder-scroll ul li' ).cornerz( { radius : 6, corners : 'tl tr', background : '#f8f8e9' } );           
        }
        
    },
    
    popEditEmail : {
        
        init : function(url){
            helpers.openModal( url, helpers.popEditEmail.onLoadPop, {w:410, h:310});
        },
        
        onLoadPop : function(){
            
            var holder = $('.pop-editemail');
            
            holder.customInput( {
                borderColor   : '#d3d3c6', 
                background     : '#8d8d85',
                borderColorHover : '#dcdcdc'
            });
            
            $('#field-email', holder).focus();
            
            $( '> section', holder ).cornerz( { radius : 6, corners : 'tl tr', background : '#f8f8e9' } );
            $( '#submit, div.details', holder ).cornerz( { radius : 6, background : '#f8f8e9' } );
            
            helpers.buttonFx( $( '#submit', holder ), '#33796b' );
            
            $( '#submit', holder ).bind('click', function(){
                
                helpers.popEditEmail.validate();
                
                $('#form-editemail', holder).submit(function(){
                    return false;
                });
                
            })
            
            
        },
        
        validate : function(){
            
            if( !forms.validate.email( $('#field-email', '.pop-editemail').val() ) ){

                helpers.errorAlert( $('.pop-editemail'), 'Preencha corretamente o campo E-mail.');
                
            } else {
                
                helpers.popEditEmail.sendData();
                
            }
            
        },
        
        sendData : function(){
            
            helpers.popEditEmail.onSendData();
            
        },
        
        onSendData : function(){
            
            helpers.pop.showSuccess( $('.pop-editemail') );
            
        }
        
    },
    
    /**
     * ------------------------------------------- //
     * Forgot password pop-up
     * ------------------------------------------- //   
     **/
    popForgotPassword : {
        
        init : function() {
            
            $( 'div#areaLogin a#recuperar-senha' ).bind( 'click', function() {
                
                helpers.openModal( $( this ).attr( 'href' ), helpers.popForgotPassword.onLoadPop, {w:410, h:310});

                return false;
                
            });
            
        },
        
        onLoadPop : function() {
        
            $('#fancybox-wrap').width(411).height(309);
            
            /*
            $( '.pop-password #holder-fields' ).customInput( {
                borderColor   : '#d3d3c6', 
                background     : '#8d8d85',
                borderColorHover : '#dcdcdc',
                width            : 105
            } );
            */

            //$('input:text' ).corner('6px');
            
            $( 'button', '.pop-password #holder-fields' ).cornerz({radius:6}).unbind().bind('click', function(){
                helpers.popForgotPassword.validate();
                $('#form-password').submit(function(){ return false; });
            
            });
            
            
            //$('.pop-password #field-cartao').val('0037');
            $('.pop-password #field-cpf').setMask('cpf');
            $('.pop-password #field-nasc').setMask('date');
            
            helpers.buttonFx( $('#submitpass'), '#33796b' );
            
        },
        
        validate : function() {

            /*
             * First test presence of all fields
             */
            var fields = [{selector: '.pop-password #field-cartao', label: 'Número do cartão'} , 
                                        {selector: '.pop-password #field-cpf',    label: 'CPF'},
                                        {selector: '.pop-password #field-nasc',   label: 'Data de Nascimento'},
                                        {selector: '.pop-password #field-email',  label: 'E-Mail'} ];

            var is_empty = false;
            $(fields).each(function(ix, field){
                if(is_empty) return;

                is_empty = !( $(field['selector']).val() );
                if(is_empty)
                    helpers.errorAlert( $('.pop-password'), 'Por favor preencha o campo ' + field['label'], { cornerzColor: '#f8f8e9' } );
            });
            if(is_empty) return; 

            if( $('.pop-password #field-cartao').val().length < 5 ){
                helpers.errorAlert( $('.pop-password'), 'Número do cartão está incorreto.', { cornerzColor: '#f8f8e9' } );
            } else if( !forms.validate.cpf( $('.pop-password #field-cpf').val()) ){
                helpers.errorAlert($('.pop-password'), 'CPF inválido.', { cornerzColor: '#f8f8e9' } ) ;
            } else if( $('.pop-password #field-nasc').val().length < 10 ){
                helpers.errorAlert($('.pop-password'), 'Data de Nascimento incorreta.', { cornerzColor: '#f8f8e9' } );
            } else if(! forms.validate.email( $('.pop-password #field-email').val() ) ){
                helpers.errorAlert($('.pop-password'), 'Preencha corretamente o campo E-mail.', { cornerzColor: '#f8f8e9' } );
            } else {
                helpers.popForgotPassword.sendData();
            }
            
        },
        
        sendData : function() {
            var fx_wait = helpers.errorAlert( $('.pop-password'), 'Aguarde...', {'bgcolor':'#d3d3c3', 'color':'#3c493e', 'cornerzColor': '#ebebdd', 'autoFadeOut': false, 'animTime':0});
            //helpers.errorAlert($('.pop-password'), 'Aguarde.', {'bgcolor':'#d3d3c3', 'color':'#3c493e', 'autoFadeOut': true});

            var target = swfobject.getQueryParamValue("target");
            var form = '#form-password';
            var url = $(form).attr('action')
            var data = {
                cartao: $('#field-cartao', form).val(),
                cpf: $('#field-cpf', form).val().replace(/\.|-/g, ""),
                nascimento: $('#field-nasc', form).val(),
                email: $('#field-email', form).val()
            }
            
            $.ajax({
                url: url,
                data: data,
                type: 'POST',
                success: function(data) {
                    helpers.pop.showSuccess( $('.pop-password') );
                },
                error: function(request){
                    helpers.errorAlert( $('.pop-password'), 'Dados incorretos.', {'cornerzColor': '#ebebdd'});
                }
            });
            
        }
        
    },
    
    popSendToFriend : {
        
        messageTextArea : null,
        
        init : function(data){
            
            helpers.openModal("/guia-medico/popup-enviar" , helpers.popSendToFriend.onLoadPop);
        },
        
        onLoadPop : function(){
            
            /*$( '#holder-fields' ).customInput( {
                borderColor      : '#d0dbca',
                background       : '#7a8c7e',
                borderColorHover : '#dcdcdc',
                width            : 310
            } );*/
            
            //$('#holder-fields button, details', '.pop-sendtofriend').cornerz({radius:6});
            
            $('.pop-sendtofriend form #holder-fields a')
                .cornerz({radius:6, background:'#F8F8E9'})
                .unbind('click')
                .bind('click', function(){
                    $('.pop-sendtofriend form').submit(function(){ return false; });
                    helpers.popSendToFriend.validate();
                    return false;
                });
            
            this.messageTextArea = $('#holder-fields #message')
                                                .extend(forms.textarea)
                                                .init({
                                                    className: 'message border-normal',
                                                    width: 360,
                                                    height: 253,
                                                    initialValue: 'Digite sua mensagem',
                                                    cornerz: { radius : 6, background : '#f8f8e9' }
                                                });
                                                
            //Add textfield autoresize and scrollbar plugin
            var scrollPane = $('.message');

            //setTimeout(function(){    
            //  care.tabs.fale.reloadScroll(scrollPane,0);
            //},500);

            /*$('textarea', '.message').autoResize({
                onResize : function() {
                    //var h = parseInt(document.getElementById('message').style.height);
                    helpers.popSendToFriend.reloadScroll(scrollPane, $(this).height());
                },
                limit : 99999999
            });*/
            
            var section = $('body').attr('id');

            if(section == 'simule-seu-plano'){
                $('#form-sendtofriend #holder-fields').append('<div id="content"></div>');
                simulator.onPdfPreview(true);
            } else if ($('#medical-guide').length > 0) {
                $('#form-sendtofriend #holder-fields').append('<div id="medical-guide-print"></div>');
                favorites.addPrintFlash('sendToFriend');
            }
            
            $('#fancybox-wrap').width(801).height(501);
            
            //$('#planssimulator').css({'display':'none'});
            
        },
        
        reloadScroll : function(obj, height) {
            $('#message-scroller', '.message').jScrollPane({showArrows:true, scrollbarWidth:35});
            $('#message-scroller', '.message').get(0).scrollTo(height);
        },
        
        validate : function() {
            if ( !$('#field-name', '.pop-sendtofriend').val().length ){
                forms.showAlert($('.pop-sendtofriend .details'), 'Preencha corretamente o seu Nome');
                return false;
            } else if( !forms.validate.email( $('#field-email', '.pop-sendtofriend').val() ) ){
                forms.showAlert($('.pop-sendtofriend .details'), 'Preencha corretamente o seu E-mail');
                return false;
            } else if( !$('#field-friendname', '.pop-sendtofriend').val().length ){
                forms.showAlert($('.pop-sendtofriend .details'), 'Preencha corretamente o Nome do seu amigo');
                return false;
            } else if( !forms.validate.email( $('#field-friendemail', '.pop-sendtofriend').val() ) ){
                forms.showAlert($('.pop-sendtofriend .details'), 'Preencha corretamente o E-mail do seu amigo');
                return false;
            } else if( $('#message', '.pop-sendtofriend').val() == 'Digite sua mensagem' || $('#message', '.pop-sendtofriend').val() == '' ){
                forms.showAlert($('.pop-sendtofriend .details'), 'Preencha algum texto para enviar ao seu amigo');
                return false;
            }
            this.sendData();
        },
        
        sendData : function() {
            var self        = this;
            var el          = '.pop-sendtofriend';
            var name        = $('#field-name', el).val();
            var email       = $('#field-email', el).val();
            var friendName  = $('#field-friendname', el).val();
            var friendEmail = $('#field-friendemail', el).val();
            var message     = $('#message', el).val();
            
            var data = '{"name" : "' + name + '",' +
                        '"email" : "' + email + '",' +
                        '"friendName" : "' + friendName + '",' +
                        '"friendEmail" : "' + friendEmail + '",' +
                        '"message" : "' + message + '"}';
            
            var section = $('body').attr('id');
            if($('.simulator').length > 0){
                var data = simulador.getData();
                data['destino_nome'] = friendName;
                data['destino_email'] = friendEmail;
                data['origem_nome'] = name;
                data['origem_email'] = email;
                data['mensagem'] = message;
                var url_email = url_simulador + '?email=amigo';
                $.ajax({
                    type: "POST",
                    url: url_email,
                    data: data,
                    success: function(retorno) {
                        if (retorno == 'sucesso') {
                            self.onSendData();
                        } else {
                            forms.showAlert( self.holder_errors , 'Erro ao enviar sua mensagem.' );
                        }
                    },
                    error: function(retorno) {
                        forms.showAlert( self.holder_errors , 'Erro ao enviar sua mensagem.' );
                    },
                    dataType: 'html'
                });
                
            } else if ($('#medical-guide').length > 0) {
                var data = {};
                data['destino_nome'] = friendName;
                data['destino_email'] = friendEmail;
                data['origem_nome'] = name;
                data['origem_email'] = email;
                data['mensagem'] = message;
                data['data'] = JSON.stringify(favorites._getList());

                $.ajax({
                    type: "POST",
                    url: URL_INDICAR_AMIGO,
                    data: data,
                    success: function(retorno) {
                        if (retorno == 'sucesso') {
                            self.onSendData();
                        } else {
                            forms.showAlert( self.holder_errors , 'Erro ao enviar sua mensagem.' );
                        }
                    },
                    error: function(retorno) {
                        forms.showAlert( self.holder_errors , 'Erro ao enviar sua mensagem.' );
                    },
                    dataType: 'html'
                });
                
            } else {
                
                var area    = 'Envie para um amigo';
                var subject = name + 'lhe indicou o site Unimed-Rio';
                
                var message = 'Olá ' + friendName + ',\n\n' +
                              name + 'lhe indicou o site Unimed-Rio.\n' +
                              'Acesse e conheça: www.unimedrio.com.br\n\n' + 
                              'Atenciosamente,\n' +
                              'Equipe Unimed-Rio.';
                
                $.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) {
                        try { console.log(data); } catch(e){};
                        self.onSendData();
                    },
                    error: function(request){
                        try { console.log(request); } catch(e){};
                        forms.showAlert( self.holder_errors , 'Erro ao enviar sua mensagem.' );
                    }
                });
                
                
            }
        },
        
        onSendData : function() {
            helpers.pop.showSuccess( $('.pop-sendtofriend') );
        }
    },
    
    /**
     * ------------------------------------------- //
     * New simulation pop-up -- Called by Simulator
     * ------------------------------------------- //   
     **/
    popNewSimulation : {
        
        callback : null,
        
        init : function(callback) {
            this.callback = callback;
            helpers.openModal( NEW_SIMULATION_URL , helpers.popNewSimulation.onLoadPop, {w:300, h:195});
        },
        
        onLoadPop : function() {
            var self = this;
            
            $('a','.pop-new-simulation').cornerz({radius:6});
            /* 'Not' Button */
            $('a:eq(0)', '.pop-new-simulation').unbind().bind('click', function(){
                helpers.pop.onClosePop();
            });
            
            /* Accept button */
            $('a:eq(1)', '.pop-new-simulation').unbind().bind('click', function(){
                helpers.popNewSimulation.callback.apply(null, [ true ] );
                helpers.pop.onClosePop();
            });
        }
    },
    
    /**
     * ------------------- //
     * Popup Corretor
     * ------------------- //
     **/
    popBroker : {
        init : function() {
            $( '#simulate-contact' ).bind( 'click', function() {
                //helpers.openModal( $( this ).attr( 'href' ), helpers.popBroker.onLoadPop, {w:800, h:545});
//w:410, h:360
                //return false;
            });

            $('a.pop-contact').bind('click',function(){
                helpers.openModal($(this).attr('href'), helpers.popBroker.onLoadPop, {w:820, h:470});
                return false;
            });
        },
        
        onLoadPop : function() {
            
            
            $( 'button', '.pop-broker #holder-fields' ).cornerz({radius:6}).unbind().bind('click', function(){
                helpers.popBroker.validate();
                $('#form-broker').submit(function(){
                    return false;
                });
            });
            
            $('.pop-broker #field-fone').setMask('(99) 9999-9999');
            
            helpers.buttonFx( $('#submitpass'), '#33796b' );
            
        },
        
        validate : function() {
            if( $('.pop-broker #field-nome').val().length < 5 ){
                helpers.errorAlert( $('.pop-broker'), 'Preencha corretamente o campo nome.');
            } else if( !forms.validate.email( $('.pop-broker #field-email').val() ) ){
                helpers.errorAlert($('.pop-broker'), 'Preencha corretamente o campo E-mail.');
            } else if( $('.pop-broker #field-fone').val().length < 12 ) {
                helpers.errorAlert($('.pop-broker'), 'Preencha corretamente o campo telefone.');
            } else {
                helpers.popBroker.sendData();
            }
        },
        
        sendData : function() {
            var form    = $('.pop-broker');
            var area    = 'Corretor';
            var subject = 'Quero ser contatado';
            
            var message = 'Mensagem enviada através do site Unimed-Rio:\n\n' +
                          'Quero ser contatado via um corretor:\n\n' + 
                          'Nome: '   + $('#field-nome', form).val() + '\n' +
                          'E-mail: ' + $('#field-email', form).val() + '\n' +
                          'Telefone: ' + $('#field-fone', form).val() + '\n' +
                          ($('#field-plano',form).val() != "" ? 'Plano: ' + $('#field-plano',form).val() + '\n' : '\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-broker') );
                },
                error: function(request){
                    helpers.errorAlert( $('.pop-broker'), 'Erro inesperado. Tente novamente mais tarde.');
                }
            });
        },
        
        onSendData : function(data){
            helpers.pop.showSuccess( $('.pop-broker') );
        }
        
    },  
    
    /**
     * --------------------------- //
     * Metodo para abrir o popup
     * --------------------------- //       
     **/
    openModal : function( hrefAjax, callback, options, params )
    {
        if( options )
        {
            w = ( options.w ) ? options.w : 800;
            h = ( options.h ) ? options.h : 520;
            overlayColor = ( options.overlayColor ) ? options.overlayColor : '#d5ded1';
            overlayOpacity = ( options.overlayOpacity ) ? options.overlayOpacity : 0.9;
            onClosed = ( options.onClosed ) ? options.onClosed : null;
        }
        else
        {
            w = 800;
            h = 520;
            overlayColor = '#d5ded1';
            overlayOpacity = 0.9;
            onClosed = null;
        }
    
        $.fancybox( {
            'autoDimensions' : false,
            'width'          : w,
            'height'         : h,
            'padding'        : 0,
            'scrolling'   : 'no',
            'href'         : hrefAjax,
            'onComplete'     : function() {
                helpers.hideFlash();
                if(callback != null) callback(params ? params : null);
            },
            'overlayColor'   : overlayColor,
            'overlayOpacity' : overlayOpacity,
            'autoScale':false,
            'onClosed'       : function() { 
                                    window.location.hash = '!';
                                    helpers.showFlash();
                                    /* Restore default background and image on close pop-up */
                                    $('#fancybox-outer').css({backgroundColor:'#f8f8e9'});
                                    $('#fancybox-close').css({backgroundImage:'url(/static/img/common/ui/btn_close.png)'});
                                    
                                    if( onClosed ) onClosed();
                                }
        } );
        
        return false;
        
    },
    
    hideFlash : function(){
        $('#planssimulator, #flash-history, #flash-history-unimed, #carousel, #animation').css({ width: '0px' });
    },
    
    showFlash : function(){
        $('#planssimulator, #flash-history, #flash-history-unimed, #carousel, #animation').css({ width: '' });
    },
    
    /**
     * --------------------------------- //
     * Metodo para criar os tooltips
     * --------------------------------- // 
     **/
    tooltip : {
        
        init : function( obj ) {            
            
            /**
             * Add Mouse Events
             **/
            if(obj.hasMouseEvent) {
                
                $( obj.element ).unbind('mouseenter').bind('mouseenter', function() {           
                    helpers.tooltip.create( this, obj );
                } ).unbind('mouseleave').bind('mouseleave', function() {
                    helpers.tooltip.hide( $('.' + obj.className) );
                } );
                
            }
            /**
             * Call tooltip without mouse event
             **/
            else {
                
                helpers.tooltip.create( $(obj.element) , obj );
                
            }
            
        },
        
        /**
         * Create DOM elements
         **/
        create : function( element, obj ) { 
            
            var el = $( element );
            
            if( !$('> div', 'body').hasClass( obj.className ) ) {
                        
                $( '<div class="' + obj.className +  '"><a></a></div>' ).prependTo( 'body' );
                
            }
            
            var offset    = $(element).offset();
            var offsetTop   = ( offset.top + ( (obj.offset) ? obj.offset.top : 0 ) );
            var offsetLeft  = ( offset.left + ( (obj.offset) ? obj.offset.left : 0 ) );
            var tooltip     = $( '.' + obj.className );
            var label      = obj.label || el.text() || el.attr( 'rel' ) || el.attr( 'rev' ) || 'undefined';
            
            /**
             * Apply CSS properties and label
             **/
            $('a', tooltip).css({
                'color'   : obj.color,
                'background' : obj.background
            }).html( label );
            
            /**
             * Create DIV element to receive a rounded corner by PNG files
             **/
            if( !$('div', tooltip).length ) {

                $('<div>').prependTo( tooltip );
                $('<div>').appendTo( tooltip );
            }
            
            /**
             * Set tooltip position
             **/            
            switch( obj.position ) {
                
                case 'top':
                    tooltip.css( { 'top' : offsetTop } );
                break;
                case 'bottom':
                    tooltip.css( { 'top' : ( offsetTop + $( element ).height() ) } );
                break;
                case 'center':
                    tooltip.css( { 'top'  : offsetTop   } );
                    tooltip.css( { 'left' : ( offsetLeft + ( $( element ).width() >> 1) - ( $(tooltip).width() >> 1 ) ) } );
                break;
                case 'left':
                    tooltip.css( { 'top'  : offsetTop   } );                
                    tooltip.css( { 'left' : ( offsetLeft + ( $( element ).width() >> 1 ) ) } );
                break;
                case 'right':
                    tooltip.css( { 'top'  : offsetTop   } );                
                    tooltip.css( { 'left' : ( offsetLeft - $(tooltip).width() + ( $( element ).width() >> 1 ) ) } );
                break;
                                                
            }
            
            helpers.tooltip.show(tooltip, obj);
            
        },
        
        show : function(tooltip, obj) {

            $(tooltip).stop().show().animate( { opacity : '1' }, 300, function(){
                $(this).animate( { opacity : '1' }, 2000, function() { 
                    $(this).animate( { opacity : '0' }, 300, function() { $(this).hide(); });
                });
            } )

        },
        
        hide : function(tooltip) {
            
            $(tooltip).stop().animate( { 'opacity' : '0' }, 300, function() { $(this).hide(); } );
            
        }           
        
    },
    
    /**
     * Create a holder for <img> DOM element and return him to receive Cornerz.
     **/
    imgToCornerz : function(element) {
        
        var holder = $('<figure></figure>');
        
        element.parent().prepend(holder);
        
        holder.css({
            width : element.width(),
            height : element.height(),
            backgroundImage : 'url(' + element.attr('src') + ')',
            backgroundRepeat : 'no-repeat'
        });
        
        holder.append(element);
        
        element.css({ display : 'none' });
        
        return holder;
    },
    
    /**
     * Create mouseover effects in column itens. e.g: view Downloads Section
     */ 
    listFx : function( element ) {
        
        if( $.browser.msie ) {
            $( element ).corner();
            $('> li:last-child', element).find('a').css({ borderBottom : 'none' });                     
        } else {
            $('> li:first-child', element).cornerz({radius:6, corners:'tl tr'});
            $('> li:last-child', element).cornerz({radius:6, corners:'bl br'}).find('a').css({ borderBottom : 'none' });            
        }
        
        $( '> li', element ).each( function( e ) {
    
            var el = $( e.currentTarget );
            
            // verifica se não estiver link então muda o cursor da li
            if( !$( 'a', el ).length ) {
                el.css( { 'cursor' : 'default' } );
            }       

        });
        
        $( '> li', element ).mouseenter( function( e ) {
            
            var el   = $( e.currentTarget );                        
            var link = el.find( 'a' );
            
            link.css( { color: '#fff' } );
            
            if( link.length ) {
                
                el.stop().animate( { backgroundColor : '#acaca0' }, 400 );
                /*
                el.unbind( 'click' ).bind( 'click', function( event ) {                 
                    // verifica se o evento de click foi feito apenas no li
                    if( $( event.target ).is( 'li' ) ) {                        
                        link.trigger('click');                      
                    }                   
                } );            
                */
            }           
            
        } ).mouseleave( function( e ) {
            
            var el   = $( e.currentTarget );                        
            var link = $( 'a', el );            
            
            link.css( { color: '#3c493e' } );
            
            if( link.length ){
                el.stop().animate( { backgroundColor : '#d7d8c7' }, 400 );
            }
        
        } ).click( function(){
            window.open($('> a', $(this)).attr('href'));
            return false;
        } );
        
    },
    
    /**
     * Buttons effects: mouseover and mouseout
     **/
    buttonFx : function(element, overColor) {
        
        var hitColor = element.css('backgroundColor');
        var time = 400;
        
        element.mouseenter(function(){  
            $(this).stop().animate({ backgroundColor : overColor }, time);
        }).mouseleave(function(){
            $(this).stop().animate({ backgroundColor : hitColor }, time);
        });
        
    },
    
    showFormContact : function() {
        
        $( '.button-contact' ).click( function() {
            $( '#simulate-contact form' ).fadeIn();
        } );
        
        $( '#simulate-contact form label, #simulate-contact form button' ).cornerz({radius:6, background : '#5A9600'}); 
        
        helpers.focusInOut();
        
    },
    
    updateURLparam : function(url, name, value) {
      host = url.split("?")[0];
      params = url.split("?")[1] || "";
      var re1 = new RegExp(name + '=.+&');
      var re2 = new RegExp(name + '=.+');
      params = params.replace(re1, "").replace(re2, "").replace(/&$/, "")+"&"+name+"="+value;
      params = params.replace(/^&/, "");

      return host + "?" + params;
    },
    
    tabPosition : function( options ) {
        
        this.container = options.container || $('#tabs');
        this.tab_label = options.label     || $('.tab', this.container );

        var _self = this;

        this.initialize = function(){
            $.each( $( this.tab_label, this.container) , this.fixTabPosition  );
        }

        this.applyDistance = function( leftDistance , elmChild ){
            leftDistance = '-'+leftDistance+'px';
            elmChild.css('left', leftDistance);
        }

        this.fixTabPosition = function( index, el ){

            var elmIndex = $( el ).index();
            var elmWidth = $( el ).width();

            var leftDistance = elmIndex * elmWidth;
            var target = ( $( el ).children('div').length ) ? 'div' : 'section';

            var elmChild = $( el ).children(target);
            _self.applyDistance(leftDistance, elmChild);

        }
        
    },
    
    focusInOut : function( campos ) {
        
        if( campos != undefined ) {
            
            console.log(campos.val());
            
        }
        
    },
    
    errorAlert : function(escope, msg, _options){
        
        var el = $(escope).find('.error-form');
        var options = { bgcolor: '#d27676', //B9D300 d27676
                        cornerzColor: '#f8f8e9',
                        color: '#fff',
                        animTime: 600,
                        autoFadeOut: true,
                        fadeOutDelay: 3000 };
        
        if(_options) $.extend(options, _options);
                
        el.css({
            backgroundColor : options.bgcolor ,
            color : options.color
        });
        
        var anim = el.not(':animated').text(msg).stop()
                     .fadeIn(options.animTime).cornerz({radius: 6, background: options.cornerzColor});

        if(options.autoFadeOut)
            anim = anim.delay( options.fadeOutDelay ).fadeOut( options.animTime );

        return anim
    },

    checkSWFHasEmbedded : function (info)
    {
        if(!info.success)
            $("#" + info.id).html( helpers.swfAlternative() );
    },
    
    /**
     * Replaces the SWF content if user no have flashplayer plugin. Awey!
     * 
     */
    swfAlternative : function ()
    {
        return "Ol&aacute;, para ver essa &aacute;rea voc&etilde; precisa ter o Adobe® Flash® Player no seu navegador.<a href='http://www.adobe.com/go/getflashplayer' target='_blank'><img src='../static/img/common/get_flashplayer.jpg' alt='Get Adobe FlashPlayer®' /></a><br />Quer instalar?"
    },
    

    /**
     * Just track a swf event or pageview.
     * @param {String} tag
     */
    swfTrack : function (tag)
    {
        var a = tag.split(":");
        var method = "dpc_" + a[0].substr(1)
        var args = a[1].split(",");
        
        this[ method ].apply(this, args);
    },
    
    getTimestamp : function()
    {
        return Number(new Date().getTime());
    },
    
    borders: {
        init: function(){
            $('ul#nav > li > a, .menuActive').cornerz({radius: 6, corners:'tl tr', background : '#5A9600'});
            $('div.boxClientes').cornerz({radius: 10, corners:'tl tr bl', background : '#F7F8EA'});
            $('div.field').cornerz({radius: 5, corners:'tl tr bl br', background : '#B9D300'});
            $('div.searchArea').cornerz({radius: 10, corners:'tl bl', background : '#5A9600'});
            $('div.btnPesquisar').cornerz({radius: 10, corners:'tr br', background : '#5A9600'});
            $('dl.dl_parent').cornerz({radius: 6, corners:'tl tr bl br', background : '#F7F8EA'});
            $('dl.dl_parent dd > dl > dd > div').cornerz({radius: 6, corners:'tl tr bl br', background : '#D7D8C8'});
            $('dl.dl_parent dd > dl > dd > div').each(function(){
                $(this).css({
                    background: 'transparent url('+$(this).find('img').attr('src')+') 0 0 no-repeat',
                    marginRight: '20px'
                });
                $(this).find('img').hide();
            });
        }
    }
}

//$('.pop-password form input').cornerz( { radius : 6, background : '#F8F8E9' } );

jQuery(document).ready(function(){
    helpers.init();
});