$(function(){
    /**
     *
     * @author: studio@cfstudio.pl 2011.
     * @support: kamil@cfstudio.pl
     * @copyright: cfstudio.pl 2011.
     *
     */
    /* Reset number of field chars. */
    function resetNow(elem,target,max){
            $(elem).val('');
            $(target).html('<small>[ ZnakĂłw: 0 z '+max+' ]</small>');
    }
    /* Set number of field chars. */
    function setNum(target,now,max){
        $(target).html('<small>[ ZnakĂłw: '+now+' z '+(max-1)+' ]</small>');
    }
    /* Reset comment field. */
    $('.resetCom').click(function(){
        $('#usercoment').val('');
        resetNow('#usercoment','.com-num',500);
    });
    /* Reset nick field. */
    $('.resetNick').click(function(){
        $('#usernick').val('');
        resetNow('#usernick','.nick-num',20);
    });
    /* Count nick chars. */
    resetNow('#usernick','.nick-num',20);
    countNow('#usernick',21,'.nick-num');
    /* Count comment chars. */
    resetNow('#usercoment','.com-num',500);
    countNow('#usercoment',501,'.com-num');
    /* Count on keyup! */
    function countNow(elem,max1,subelem){
        $(elem).keyup(function(){
            var max = max1;
            var now = $(this).val().length;
            if(now < max){
                setNum(subelem,now,max);
            }else{
                $(this).val($(this).val().substring(0,max - 1));
            }
        });
    }
    $('#commentForm').submit(function(e){
        e.preventDefault();
        var nick = $('#usernick').val().length;
        var coment = $('#usercoment').val().length;
        var rOffset = $(this).offset();
        var oLeft = rOffset.left;
        var oTop = rOffset.top;
        if(nick > 3 && nick < 21){
            if(coment > 4 && coment < 501){
                var thisSrialize = $(this).serialize();
                $.ajax({
                   type: "POST",
                   url: "addComment.php",
                   data: thisSrialize,
                   success: function(msg){
                    showReq('.req-box',oLeft,oTop,msg);
                   }
                 });
                 $(this)[0].reset();
                 resetNow('#usernick','.nick-num',20);
                 resetNow('#usercoment','.com-num',500);
            }else{
                showReq('.req-box',oLeft,oTop,'<span class="red">Komentarz powinien mieÄ wiÄcej niĹź 5 znakĂłw.</span>');
            }
        }else{
            showReq('.req-box',oLeft,oTop,'<span class="red">Nazwa uĹźytkownika musi mieÄ wiÄcej niĹź 4 znaki.</span>');
        }
    });
    $('.req-box').click(function(){
        $(this).fadeOut(200).hide(0);
        $('#shadow-wrapper').fadeOut(300).hide(0);
    });
    /* Show dialog box for comment form. */
    function showReq(elem,offLeft,offTop,msg){
        spec.showShadow();
        $(elem).css({'left':offLeft+200,'top':offTop+150});
        $('.req-con').html(msg);
        $(elem).show();
    }
    /* Movie slider function. */
    var slider = {
        init:function(){
            var _visible, _movieSize, _rightControl, _leftControl,_current,_maxMove,_slide,_currLeft, _hasClass;
            _currLeft = 0;_visible = 4;_current = 0;_slide = 204; /* STERUJE PEZESUWANIEM OKIENEK */
            _movieSize = $('.small-vid').size();
            _leftControl = $('.slider-left');
            _rightControl = $('.slider-right');
            _maxMove = _movieSize-_visible;
            /* Hide controls on start. */
            slider.hideControl(_maxMove);
            /* Move slider forward. */
            _leftControl.click(function(){
                if(_current > 0){
                    _current--;
                    _currLeft -= _slide;
                    $('#small-rel').animate({
                            'margin-left':-_currLeft
                    },300);
                }
                if(_current == 0){
                    $(this).css({'cursor':'default'}).find('img').fadeOut(200);
                    $(this).addClass('hidden');
                }
                if(_current < _maxMove){
                    _hasClass = _rightControl.hasClass('hidden');
                    if(_hasClass){
                        _rightControl.css({'cursor':'pointer'}).find('img').fadeIn(200);
                        _rightControl.removeClass('hidden');
                    }
                }
            });
            /* Move slider backward. */
            _rightControl.click(function(){
                if(_current < _maxMove){
                    _current++;
                    _currLeft += _slide;
                    $('#small-rel').animate({
                            'margin-left':-_currLeft
                    },300);
                }
                if(_current == _maxMove){
                    $(this).css({'cursor':'default'}).find('img').fadeOut(200);
                    $(this).addClass('hidden');
                }
                if(_current < _maxMove){
                    _hasClass = _leftControl.hasClass('hidden');
                    if(_hasClass){
                        _leftControl.css({'cursor':'pointer'}).find('img').fadeIn(200);
                        _leftControl.removeClass('hidden');
                    }
                }
            });
        },
        hideControl:function(move){
            if(move <= 0){
                $('.slider-left').css({'cursor':'default'}).find('img').hide(0);
                $('.slider-left').addClass('hidden');
                $('.slider-right').css({'cursor':'default'}).find('img').hide(0);
                $('.slider-right').addClass('hidden');
            }
            if(move > 0){
                $('.slider-left').css({'cursor':'default'}).find('img').hide(0);
                $('.slider-left').addClass('hidden');
            }
        }
    }
    slider.init(); /* Movie slider function #ends. */
    /* Event slider function. */
    var eventSlider = {
        init:function(){
            var _visible, _reelHeight, _maxMove, _currMove, _slide, _hasClass;
            _currMove = 0;
            _visible = 8;
            _slide = 65;
            _maxMove = ($('.event-content').size())-_visible;
            //this.control(_maxMove);
            $('#event-backward').click(function(){
                if(_currMove > 0){
                    _currMove--;
                    $('#event-slider').animate({
                        'margin-top':-_slide*_currMove
                    },300);
                }
                /*if(_currMove == 0){
                    $(this).css({'cursor':'default'}).find('img').fadeOut(200);
                    $(this).addClass('hiddenv');
                }
                
                if(_currMove < _maxMove){
                    _hasClass = $('#event-forward').hasClass('hiddenv');
                    if(_hasClass){
                        $('#event-forward').css({'cursor':'pointer'}).find('img').fadeIn(200);
                        $('#event-backgward').removeClass('hiddenv');
                    }
                }*/
            });
            $('#event-forward').click(function(){
                if(_maxMove > 0 && _currMove < _maxMove){
                    _currMove++;
                    $('#event-slider').animate({
                        'margin-top':-_slide*_currMove
                    },300);
                }/*
                if(_currMove == _maxMove){
                    $(this).css({'cursor':'default'}).find('img').fadeOut(200);
                    $(this).addClass('hiddenv');
                }
                if(_currMove < _maxMove){
                    _hasClass = $('#event-backward').hasClass('hiddenv');
                    if(_hasClass){
                        $('#event-backward').css({'cursor':'pointer'}).find('img').fadeIn(200);
                        $('#event-forward').removeClass('hiddenv');
                    }
                }*/
            });
        },
        control:function(move){
            if(move <= 0){
                $('#event-backward').css({'cursor':'default'}).find('img').hide(0);

                $('#event-backward').addClass('hiddenv');
                $('#event-forward').css({'cursor':'default'}).find('img').hide(0);
                $('#event-forward').addClass('hiddenv');
            }
            if(move > 0){
                $('#event-backward').css({'cursor':'default'}).find('img').hide(0);
                $('#event-backward').addClass('hiddenv');
            }
        }
    }
    eventSlider.init(); /* Event slider function #ends. */
    /* Sub menu dropdown function. */
    var menu = {
        dropDown:function(){
            var _menuContainer,_element;
            _menuContainer = $('.menu-item');
            _menuContainer.live('mouseover mouseout',function(evt){
                if(evt.type == 'mouseover'){
                    _element = $(this).find('.dropdown-menu');
                        _element.css({'opacity':0.9}).show();
                }
                if(evt.type == 'mouseout'){
                    _element = $(this).find('.dropdown-menu');
                        _element.hide();
                }
            });
        }
    }
    menu.dropDown();
    /* Miscellaneous elements fuctions. */
    var misc ={
        /* Promo advert hover effect. */
        getHover:function(parent,elem,opacity){
            $(elem).live('mouseover mouseout',function(evt){
                if(evt.type == 'mouseover'){
                    $(this).parent().find(elem).not(this).each(function(){
                        $(this).stop(true,false).animate({'opacity':opacity},200);
                    });
                    $(this).stop(true,false).css({'opacity':1});
                }
            });
            $(parent).live('mouseout',function(){
                $(this).find(elem).each(function(){
                    $(this).stop(true,false).animate({'opacity':1},200);
                });
            });
        }
    }
    misc.getHover('#promo-advert-wrapper','.promo-advert-content',0.5);
    misc.getHover('#slider-wrapper','.small-vid',0.5);
    misc.getHover('#event-wrapper','.event-content',0.4);
    /* Special effects function. */
    var spec = {
    	showShadow:function(){
    		$('#shadow-wrapper').css({'opacity':0.8,'width':$(document).width(),'height':$(document).height()}).fadeIn(300);
    	},
    	hideShadow:function(){
    		$('#shadow-wrapper').click(function(){
                    $('.req-box').fadeOut(200).hide(0);
    			$(this).fadeOut(300).hide(0);
    		});
    	}
    }
    /* From elements function. */
    var form = {
    	init:function(){
    		spec.hideShadow();
    	},
    	/* Clear input on click when holding default value. */
    	clearInput:function(elem){
    		var _pval,_value,_click,_elem,_hasError;
    		_elem = $(elem);
    		_pval = _elem.val();
    		_click = false;
    		_elem.click(function(){
    			_value = $(this).val();
    			if(_pval == _value){
	    			$(this).val('');
	    			_click = true;
    			}
    			_hasError = _elem.hasClass('error');
    			if(_hasError){
    				_elem.css({'border':0}).removeClass('error');
    				_elem.val('');
    				click = false;
    			}
    		});
    		$(document).click(function(){
    			_value = _elem.val();
    			if(_value == '' && !_click){
    				_elem.val(_pval);
    			}
    			_click = false;
    		});
    	},
    	saveNewsletter:function(){
    		var _message;
    		$('#newsletterForm').submit(function(evt){
    			evt.preventDefault();
    			var date = $(this).serialize();
    			$.ajax({
				   type: "POST",
				   url: "newsletter.php",
				   data: date,
				   success: function(msg){
				     _message = msg.split('-');
				     if(_message[0] < 4){
				     	$('#newsletterEmail').addClass('error').css({'border':'1px solid #ff0000'});
				     	$('#newsletterEmail').val(_message[1]);
				     }
				     if(_message[0] == 4){
				     	$('#newsletterEmail').css({'border':'1px solid green'});
				     	$('#newsletterEmail').val(_message[1]);
				     	$('#newsletterEmail').attr('disabled','disabled');
				     }
				   }
				 });
    		});
    	}
    }
    form.init();
    form.saveNewsletter();
    form.clearInput('#newsletterEmail');
    /* Facebook trigger. */
    $("#facebook-widget").hover(function(){
            $(this).stop(true,false).animate({left:"0"},700);
    },function(){
            $(this).stop(true,false).animate({left:"-300"},500);
    },300);
});
