
IndexClass = function()
{
    this.frameCount = 0;
    this.curFrame = 0;
    this.curSlide = 1;
    this.curAvangardRubric = 'news';
    
    this.init = function()
    {
        var self = this; 
        
        $(document).ready
        ( 
            function() 
            {   
                //Display random banners         
                var aBanners = $('.top_banner .banner_random_c');                  
                $(aBanners[parseInt(Math.random()*100) % aBanners.length]).show();
                
                aBanners = $('.banner_left .banner_random_c');                  
                $(aBanners[parseInt(Math.random()*100) % aBanners.length]).show();
                
                aBanners = $('.banner_right_bottom .banner_random_c');                  
                $(aBanners[parseInt(Math.random()*100) % aBanners.length]).show();
                
                aBanners = $('.banner_right_top .banner_random_c');                  
                $(aBanners[parseInt(Math.random()*100) % aBanners.length]).show();
                
                aBanners = $('.media_banner_left .banner_random_c');                  
                $(aBanners[parseInt(Math.random()*100) % aBanners.length]).show();
                
                
                //Avangard block init animation
                self.avangardInit( 'news' );
                self.avangardInit( 'publish' );
                self.avangardInit( 'photo' );
                self.avangardShow();
                
                self.frameCount = $('.frames .name').length;
                
                //$('.search_button').click( function(){ $('#search_form').submit(); } );
                $('.search_button_lupa_h').click( function(){ $('#search_form').submit(); } );
                $('.search_button_lupa').hover
                (
                    function(){ if( $('#keyword').val() ) {$('.search_button_lupa').hide(); $('.search_button_lupa_h').show();} },
                    function(){ }
                );
                
                $('.search_button_lupa_h').hover
                (
                    function(){ },
                    function(){ if( $('#keyword').val() ) {$('.search_button_lupa_h').hide(); $('.search_button_lupa').show();} }
                );
                
                $('.select_button').click( function(){ self.selectToggle(); } );
                $('#select_list div').click( function(){ self.selectClick( this ); } );
                $(document).click
                ( 
                    function(e)
                    { 
                        var target = e.target;
                        if( $(target).is('.select_button') ) return;
                        self.selectHide(); 
                    } 
                );
                $('.avangard_right .left img').hover
                (
                    function(){ $(this).attr('src', '/images/left_normal.png') },
                    function(){ $(this).attr('src', '/images/left.png') }
                );
                $('.avangard_right .right img').hover
                (
                    function(){ $(this).attr('src', '/images/right_normal.png') },
                    function(){ $(this).attr('src', '/images/right.png') }
                );
                
                // FONT RENDER
                Cufon.replace('.last_news_c .header', { fontFamily: 'AGLettericaCondensed' });
                Cufon.replace('.creator_c .header', { fontFamily: 'AGLettericaCondensed' });
                Cufon.replace('.best_c .header', { fontFamily: 'AGLettericaCondensed' });
                Cufon.replace('.media_best_c .header', { fontFamily: 'AGLettericaCondensed' });
                Cufon.replace('.like_c .header', { fontFamily: 'AGLettericaCondensed' });
                Cufon.replace('.calendar_c .header .left', { fontFamily: 'AGLettericaCondensed' });
				Cufon.replace('.calendar_c .header .cur_month', { fontFamily: 'AGLettericaCondensed' });
                Cufon.replace('.news_center_name', { fontFamily: 'AGLettericaCondensed' });
                Cufon.replace('.photo_center_name', { fontFamily: 'AGLettericaCondensed' });
                Cufon.replace('.streetbeat_center_name', { fontFamily: 'AGLettericaCondensed' });
                Cufon.replace('.projects_center_name', { fontFamily: 'AGLettericaCondensed' });
                Cufon.replace('.poster_center_name', { fontFamily: 'AGLettericaCondensed' }); 
                Cufon.replace('.comments_header', { fontFamily: 'AGLettericaCondensed' });
                
                // RENDER SCROLLS
                //$('.comments').jScrollPane();  // @see main.css and .comments class
                $('.search_c').jScrollPane();
                
                // PRETTY HANDLERS
                $('.photo_middle').click( function(){ self.openPhoto(); } ); // open prettyPhoto
                self.curPhoto = $('.photo_preview:first');
                
                // initialize pretty photo
                $('a#fancd').prettyPhoto
                (   
                    {
                        callback: self.closePhoto,
                        changepicturecallback: self.changePhoto,
                        theme: 'light_square',
                        padding: 20,
                        allowresize: true,
                        opacity: 0.91
                    }        
                );
                
                //----------------- CALENDAR HANDLERS --------------------------------
    
                $('.calendar_c div.arr_left').click
                (
                    function()
                    {           
                        document.location = $(this).attr('href');
                        /*        
                        var curmonth = $('.month_name:visible').attr('monthnum');    
                        if( curmonth > 1) 
                        {
                            curmonth--;
                            $('.month_name').hide();
                            $('.month_table').hide();
                            $('#month_name_'+curmonth).show();
                            $('#month_table_'+curmonth).show();
                        }
                        */
                    }
                );
                $('.calendar_c div.arr_right').click
                (
                    function()
                    {
                        document.location = $(this).attr('href');
                        /*
                        var curmonth = $('.month_name:visible').attr('monthnum');    
                        if( curmonth < 12) 
                        {
                            curmonth++;
                            $('.month_name').hide();
                            $('.month_table').hide();
                            $('#month_name_'+curmonth).show();
                            $('#month_table_'+curmonth).show();
                        }
                        */
                    }
                );
                
                                    
                //Opera scroll arrow fix
                if( $.browser.opera )
                {
                    $('.scroll .r').css( 'padding-top', '0px' );
                    $('.scroll .l').css( 'padding-top', '1px' );
                }
                
                //etc.
            }    
        );
    };
    
    //----------------- AVANGARD BLOCK HANDLERS --------------------------------
    
    this.avangardInit = function( rubric )
    {
        var self = this;
            
        $('#avangard_'+rubric+'_img_c').cycle
        (
            {
                fx: 'fade',
                timeout: 10000,
                prev: $('.avangard_right .left'),
                next: $('.avangard_right .right'),
                before: function( el, pos )
                        { 
                            var oldSlide = self.curSlide;
                            self.curSlide = $(pos).attr('page');   

                            $('#avangard_'+rubric+'_pager_c .item').removeClass('current'); 
                            $('#avangard_'+rubric+'_pager_c .item[page='+self.curSlide+']').addClass('current');
                            
                            $('#avangard_'+rubric+'_data_c').cycle( self.curSlide - 1 );        
                        }
            }
        );
              
        $('#avangard_'+rubric+'_data_c').cycle('fade');
        $('#avangard_'+rubric+'_data_c').cycle('pause');
        $('#avangard_'+rubric+'_img_c').cycle('pause');
        
        $('.page .item').hover  // Show or Hide image preview
        ( 
            function()
            { 
                $(this).find('.avangard_preview').show(); 
            }, 
            function()
            {
                $(this).find('.avangard_preview').hide(); 
            } 
        );
    }
    
    this.cycleMoveTo = function( pos )
    {
        if( pos == self.curSlide ) return true;
        
        $('#avangard_'+this.curAvangardRubric+'_img_c').cycle( pos-1 ); 
        //$('#avangard_'+this.curAvangardRubric+'_data_c').cycle( pos-1 );        
        
        return false;
    }
    
    this.avangardShow = function( rubric, sender )
    {
        if( !rubric )
        {
            rubric = ( !rubric && $('#avangard_news_img_c').length ) ? 'news' : rubric;
            rubric = ( !rubric && $('#avangard_publish_img_c').length ) ? 'publish' : rubric;
            rubric = ( !rubric && $('#avangard_photo_img_c').length ) ? 'photo' : rubric;
        } 
        
        this.curAvangardRubric = rubric;

        $('div[id^=avangard_][id$=_img_c]').cycle('pause');
        
        $('div[id^=avangard_][id$=_img_c]').hide();
        $('div[id^=avangard_][id$=_pager_c]').hide();
        $('div[id^=avangard_][id$=_data_c]').hide();

        $('#avangard_'+rubric+'_img_c').show();
        $('#avangard_'+rubric+'_pager_c').show();
        $('#avangard_'+rubric+'_data_c').show();
        
        $('#avangard_'+rubric+'_img_c').cycle('resume');
        
        if( sender )
        {
            $('.avangard_c .rubricator a').removeClass('selected');
            $(sender).addClass('selected');
        }
    }
    
    this.selectToggle = function()
    {
        $('#select_list').toggle();
    }
    
    this.selectHide = function()
    {
        $('#select_list').hide();
    }
    
    this.selectClick = function( obj )
    {
        $('#select_val').html( $(obj).html() );   
        $('#category').val( $(obj).attr('value') );
        this.selectToggle();
    }
    
    this.frameNext = function()
    {           
        $('.name[frameId='+this.curFrame+']').hide();
        $('img[frameId='+this.curFrame+']').hide();
        
        this.curFrame++;
        
        if( this.curFrame + 1 > this.frameCount )
        {
            this.curFrame = 0;        
        }
        
        $('.name[frameId='+this.curFrame+']').show();
        $('img[frameId='+this.curFrame+']').show();
        
        $('.arrow_left').css( 'display', '' );
        $('.arrow_right').css( 'display', '' );
        
        //if( this.curFrame == 0 ) $('.arrow_left').css( 'display', 'none' );
        //if( this.curFrame == this.frameCount - 1 ) $('.arrow_right').css( 'display', 'none' ); 
    }
    
    this.frameBack = function()
    {
        $('.name[frameId='+this.curFrame+']').hide();
        $('img[frameId='+this.curFrame+']').hide();
        
        this.curFrame--;

        if( this.curFrame < 0 )
        {
            this.curFrame = this.frameCount - 1;        
        }
        
        $('.name[frameId='+this.curFrame+']').show();
        $('img[frameId='+this.curFrame+']').show();
        
        $('.arrow_left').css( 'display', '' );
        $('.arrow_right').css( 'display', '' );
        
        //if( this.curFrame == 0 ) $('.arrow_left').css( 'display', 'none' );
        //if( this.curFrame == this.frameCount - 1 ) $('.arrow_right').css( 'display', 'none' );
    }
    
    //----------------- PHOTO HANDLERS --------------------------------
    
    this.curPhotoPage = 1;
    this.curPhoto = null;
    this.photos = null;
    
    this.scrollPhotoLineNext = function()
    {
        var count = $('.scroll .l a').length;
        if( count < this.curPhotoPage+1 ) return;
        
        this.curPhotoPage++;
        var pageWidth = $('.photo_preview_c table:first').width();            
        $('.photo_preview_c').scrollTo( pageWidth * (this.curPhotoPage-1) + 'px', 1000 );
        $('.scroll .l a').removeClass('sel');
        $('.scroll .l a[page='+this.curPhotoPage+']').addClass('sel');
    }
    
    this.scrollPhotoLineTo = function( page )
    {
        this.curPhotoPage = page;
        var pageWidth = $('.photo_preview_c table:first').width();            
        $('.photo_preview_c').scrollTo( pageWidth * (this.curPhotoPage-1) + 'px', 1000 );
        $('.scroll .l a').removeClass('sel');
        $('.scroll .l a[page='+this.curPhotoPage+']').addClass('sel');
    }
    
    this.selectPhoto = function( photo )
    {
        $('img.photo_middle').attr( 'src', $(photo).attr('middle') ); // open middle preview
        
        this.curPhoto = photo;   // set current photo
    }
    
    this.opcc = 0;
    
    this.openPhoto = function()
    {   
        this.opcc++; // !!!Temporary fix!!! maybe it`s pretty bug... i don`t know
        if( !(this.opcc%2) ) return; 

        var self = this;   
        
        if( !self.photos )
        {
            self.photos = new Array(); // photo array
            $('img.photo_preview').each
            (
                function(){self.photos.push( $(this).attr('full') );}
            );
        }
        
        var number = 0; // current photo
        var counter = 0;
        $('img.photo_preview').each
        (
            function()
            {
                if( $(this).attr('imgId') == $(self.curPhoto).attr('imgId') )  // search current photo
                {
                    number = counter;  
                }
                counter++;
            }
        );
        
        $.prettyPhoto.open( self.photos, '', '' ); // open pretty
        if( number ) $.prettyPhoto.changePage(number); // set current photo in pretty
		
        // !!Pretty fix for first and last photos!!
		if( !number )
        {
            $.prettyPhoto.changePage('next'); 
            $.prettyPhoto.changePage('previous');     
        }
        else
        {
            $.prettyPhoto.changePage('previous'); 
            $.prettyPhoto.changePage('next');     
        }
        
    }
    
    this.closePhoto = function()
    {}
    
    this.changePhoto = function()
    {
        var images = $('img.photo_preview');
        for( var i=1; i <= $(images).length; i++ )
        {
            if( $(images[i]).attr('full') == $('#fullResImage').attr('src') )
            {
                $(images[i]).click(); // select current photo
                Index.scrollPhotoLineTo( parseInt(i/12)+1 ); // select current page
                break;
            }
        }
    }
    
    //----------------- LOGIN HANDLERS --------------------------------
    
    this.login = function( forumUrl )
    {     
        $('.login_preloader').show();
        $.post  // login
        (
            '/forum/index.php?act=Login&CODE=01',
            {
                CookieDate: parseInt($('#memory').val()),
                PassWord: $('#pass').val(),
                UserName: $('#login').val(),
                referer: '', // do not use
                submit: ''   // do not use
            },
            function( httpRequest )
            {   
                $('.login_preloader').hide();
                
                //check login result
                var patern = /Спасибо/i;
                if( patern.test( httpRequest ) )
                {
                    $('.shadow_c').hide();
                    window.location.reload(true);
                }
                else
                {
                    $('#login_failed').show();
                }
            }
        );         
    }
    
    this.logout = function( logoutUrl )
    {
        $.post( logoutUrl, {}, function( httpRequest ){ window.location.reload(true); } );
    }
    
    this.loginOpen = function()
    {
        $('.shadow_c').show();
    }
    
    this.loginClose = function()
    {
        $('.shadow_c').hide();
    }
    
    //----------------- COMMENTS HANDLERS --------------------------------
    
    this.addComment = function()
    {
        if( $('#cf textarea').val() )
        {
            $('#cf').submit();
        }
    }
    
};
                  
var Index = new IndexClass();
Index.init();

