$.global    =   {
    loader                  :   '<div style="text-align:center;margin:5px;"><img src="/images/ajax-loader.gif" alt="Cargando" /></div>',
    'initialize'            :   function(){
                                    try{
                                        //  inicialización funciones del header
                                        $.global.initHeaderFunctions();
                                            
                                        //  inicialización funciones del menu
                                        $.global.initMenu();
                                            
                                        //  inicialización de numéricos
                                        $.global.number( $('.numeric') );
                                            
                                        //  inicializacion de elementos con scroll to
                                        $.global.scrollFx();
                                            
                                        //  inicializacion de elementos con openPopup
                                        $.global.initPopUp();
                                            
                                        //  inicializacion botones de agregar a favoritos y pagina de inicio
                                        $.global.initJsButtons();
                                            
                                        //  inicializacion de encuesta
                                        $.poll.initialize();
                                    }   
                                    catch($err){
                                        
                                    }
                                },
    'initCarousel'          :   function( $identifier, scrollNumber ){
                                    if( $($identifier).length )
                                        $($identifier).jcarousel({ scroll: scrollNumber });
                                },
    'initHeaderFunctions'   :   function(){
                                    var $header     =   $('.header');
                                        
                                    $.global.toggleText( $header.find('.buscador #searchBoxInputField') );
                                        
                                    $header.find('#frmHeaderSearch').submit(function(e){
                                        $(this).parents('.header').find('.searchBoxHeaderButton').click();
                                            
                                        return false;
                                    });
                                        
                                    $header.find('.searchBoxHeaderButton').click(function(){
                                        var $inputField         =   $('.buscador #searchBoxInputField');
                                        $inputField.removeClass('error');
                                            
                                        if( !$inputField.val() || ( $inputField.val() == $inputField.attr('defaultValue') ) )
                                        {
                                            $inputField.addClass('error');
                                        }
                                        else
                                        {
                                            var $url                =   $inputField.attr('url').replace('[QUERY_STRING]', $inputField.val());
                                                
                                            window.location.href    =   $url.replace('//','/');
                                        }
                                    });
                                        
                                    //  si tiene el form de suscripcion a newsletter
                                    if( $('#FrmSuscripcionNewsletter').length )
                                    {
                                        $.global.toggleText($("#FrmSuscripcionNewsletter [name='suscripcion']"));
                                            
                                        $('#FrmSuscripcionNewsletter').validate({
                                            invalidHandler: function(form, validator) {
                                                var $emailElement   =   $("#FrmSuscripcionNewsletter [name='suscripcion']");
                                                $emailElement.val('Ingrese un e-mail válido.');
                                            },
                                            submitHandler: function(form){
                                                $.getJSON(  '/suscripcion-newsletter',
                                                            { 'email' : $(form).find("[name='suscripcion']").val() },
                                                            function(){
                                                                var $frmContainer   =   $('#FrmSuscripcionNewsletter');
                                                                    
                                                                //  oculto el div de form y muestro el de result
                                                                $frmContainer.find('.form').hide();
                                                                $frmContainer.find('.result').show();
                                                                    
                                                                //  limpio el form para que vuelva a estado inicial
                                                                $frmContainer.find("[name='suscripcion']").removeClass('error').val('');
                                                                    
                                                                //  vuelvo a mostrar para suscribir otro mail
                                                                $frmContainer.find('.result')
                                                                            .delay(8000)
                                                                            .hide('slow',function(){
                                                                                $('#FrmSuscripcionNewsletter .form').show();
                                                                            });
                                                            });
                                                return false;
                                            }
                                        });
                                    }
                                },
    'initMenu'              :   function(){
                                    var $menu   =   $('ul.categoryMenu');
                                        
                                    $menu.find(':button').click(function(){
                                        //  si se puede dejar abierto mas de 1 menu a la vez, borrar esto:
                                        $(this).parents('ul.categoryMenu').find('ul.categoryItems').hide();
                                            
                                        $(this).next('ul.categoryItems').toggle(); 
                                    });
                                },
    'initAgenda'            :   function(){
                                    $('#agendaContainer').html($.global.loader);
                                    $('#agendaContainer').load( '/contenido/agenda',
                                            function(){
                                                $.global.initAgendaButtons();
                                            });
                                },
    'initAgendaButtons'     :   function(){
                                    $('#agendaContainer :button').unbind('click');
                                    $('#agendaContainer :button').click(function(){
                                        var $date   =   $(this).attr("dateparam");
                                            
                                        $('#agendaContainer').html($.global.loader);    
                                        $('#agendaContainer').load( '/contenido/agenda/date/'+ $date,
                                                                    function(){
                                                                        $.global.initAgendaButtons();
                                                                    });
                                    });
                                },
    'initPopUp'             :   function(){
                                    $('a.openPopup').click(function(e){
                                        e.preventDefault();
                                            
                                        window.open($(this).attr("href"),'WallPopup','width=650,height=500,toolbar=no,menubar=no,status=no,scrollbar=yes');
                                            
                                        return false;
                                    });
                                },
    'showLightbox'          :   function(){
                                    $('#LightboxBack').show();
                                        
                                    $('.lightBox').html( $.global.loader ).show();
                                },
    'closeLightbox'         :   function(){
                                    $('#LightboxBack').hide();
                                        
                                    $('.lightBox').hide().html('');
                                },                                
    'toggleText'            :   function( $inputElement ){
                                    $inputElement.click(function(){
                                        var $elem   =   $(this);
                                            
                                        if( $elem.val() == $elem.attr("defaultValue") )
                                            $elem.val('');
                                    });
                                        
                                    $inputElement.focus(function(){
                                        var $elem   =   $(this);
                                            
                                        if( $elem.val() == $elem.attr("defaultValue") )
                                            $elem.val('');
                                    });                                    
                                        
                                    $inputElement.blur(function(){
                                        var $elem   =   $(this);
                                            
                                        if( $elem.val() == '' )
                                            $elem.val( $elem.attr("defaultValue") );
                                    });
                                },
    'number'                :   function( $inputElement ){
                                    $inputElement.keypress(function(e){
                                        if( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57))
                                            return false;
                                            
                                        return true;
                                    });
                                },
    'scrollFx'              :   function(){
                                    $(".scrollto").click(function(){
                                        var $target      = $("[name='"+ $(this).attr("scrollto") +"']");
                                        var targetOffset = $target.offset().top;
                                        $('html,body').animate({scrollTop: targetOffset}, 1000);
                                        return false;
                                    });
                                },
    'initJsButtons'         :   function(){
                                    $('.paginicio').click(function(e){
                                        e.preventDefault();
                                            
                                        $.global.paginaInicio();
                                            
                                        return false;
                                    });
                                        
                                    $('.favoritos').click(function(e){
                                        e.preventDefault();
                                            
                                        $.global.agregarFavorito();
                                            
                                        return false;
                                    });                                    
                                },
    'paginaInicio'          :   function(){
                                    var ua = $.browser;
                                    
                                    if( ua.msie ){
                                        document.body.style.behavior='url(#default#homepage)';
                                        document.body.setHomePage('http://www.wallkechi.com/');
                                    }else{
                                        alert('Por favor ingrese a Opciones en su explorador y haga en click en Usar como pagina de inicio.');
                                    }
                                },
    'agregarFavorito'       :   function(){
                                    var bookmarkUrl     = "http://www.wallkechi.com";
                                    var bookmarkTitle   = "Wallkechi";
                                        
                                    if ($.browser.mozilla) // For Mozilla Firefox Bookmark
                                    {
                                        window.sidebar.addPanel(bookmarkTitle, bookmarkUrl,"");
                                    }
                                    else if($.browser.msie) // For IE Favorite
                                    {
                                        window.external.AddFavorite( bookmarkUrl, bookmarkTitle);
                                    }
                                    else if($.browser.opera ) // For Opera Browsers
                                    {
                                        $(this).attr("href",bookmarkUrl);
                                        $(this).attr("title",bookmarkTitle);
                                        $(this).attr("rel","sidebar");
                                        $(this).click();
                                    }
                                    else // for other browsers which does not support
                                    {
                                        alert('Por favor presione CTRL+D y haga click en el link para agregar a favoritos.');
                                    }
                                }      
};

$.poll =      {
    'initialize'            :   function(){
                                    $.poll.loadPoll();    
                                },
    'loadPoll'              :   function(){
                                    var $url = '/Poll/Load';
                                        
                                    $.post( $url,
                                            {},
                                            function( $data ){
                                                $('.pollBox').html( $data );
                                                    
                                                $('.pollBox #cantVote').click(function(){
                                                    alert('Para poder votar debes estar logueado');
                                                    window.location.href = '/login';
                                                });
                                                    
                                                $('.pollBox #voteButton').click(function(){
                                                    if ( $('.pollBox .optionRadio:checked').size() > 0)
                                                        $.poll.vote();
                                                    else
                                                        $('.pollBox .selectMessage').show();
                                                });
                                                    
                                                $('.pollBox #resultsButton').click(function(){
                                                    $.poll.results();
                                                });
                                                    
                                                $('.pollBox .optionRadio').click(function(){
                                                    $('.pollBox .selectMessage').hide();
                                                });
                                            },
                                            '');    
                                },
    'vote'                  :   function(){
                                    var $optionId   =   $('.pollBox .optionRadio:checked').val();
                                    var $pollId     =   $('.pollBox PollId').val();
                                    var $url        =   '/Poll/Vote';
                                        
                                    $.post( $url,
                                            { optionId:$optionId, pollId:$pollId},
                                            function( $data ){
                                                $.poll.results();
                                            },
                                            ''  );
                                },
    'results'               :   function(){
                                    var $pollId = $('.pollBox #PollId').val();
                                    var $url = '/Poll/LoadResults';
                                        
                                    $.post( $url,
                                            {pollId:$pollId},
                                            function( $data ){
                                                $('.pollBox').html( $data );
                                            },
                                            ''  );
                                }
};
