window.addEvent("domready",function() {
SqueezeBox.assign($$('a.boxed'), {
		parse: 'rel'
	});
new Fx.SmoothScroll ({duration: 1000,transition:Fx.Transitions.Expo.easeInOut});

$('logo').addEvent('click',function(){window.location.href = 'http://www.guliwer.sk';})

var myTips = new Tips('.tooltip', {

      onShow: function(tip, el)
      {
          tip.fade('in');
      },
      onHide: function(tip,el)
      {
           tip.fade('out');
      }

});


if($$('.ref-menu')[0])
    rightNav.init();
  
Logo.init(); 
ContactForm.init();

if($('portfolio')){
        Portfolio.init()
        PortfolioTip.init();
}
	
});


 var PortfolioTip = {

      init: function()
      {
          this.tip = $$('.portfolio-tip');
          this.image = $$('#portfolio .box');

          this.image.addEvents({

                'mouseenter': function(elem)
                {
                     elem = $(this).getElement('.portfolio-tip');
                     $(elem).setStyles({
                            'display': 'block',
                            'opacity': 0
                        }).morph({'top':-155, 'opacity': 1})

                    $('portfolio-wrap').setStyle('overflow', 'visible');
                },

                'mouseleave': function(elem)
                {
                      elem = $(this).getElement('.portfolio-tip');
                      $(elem).morph({'top':-50, 'opacity': 0})
                      $('portfolio-wrap').setStyle('overflow', 'hidden');
                }

               })



      }




 }


/* Right nav */
var rightNav = {

    init: function()
    {
        $$('.ref-menu li a').addEvents({
          'mouseenter': function(elem) {

                    if($(this).getParent().hasClass('selected')==false){
                    $(this).tween('background-color', ['#fff','#F4F2AA']);
                    $(this).getElement('img').tween('border-color', ['#EAEAEA','#B2AE1F']);
                    }
                },

        'mouseleave': function(elem) {

            if($(this).getParent().hasClass('selected')==false){
                $(this).tween('background-color', ['#F4F2AA','#fff']);
                $(this).getElement('img').tween('border-color', ['#B2AE1F','#EAEAEA']);
            }
        }
    });

    }

}

/**
*  Porfolio slider
* 
*
*/

var Portfolio = {

	init: function()
	{
			this.items = $$('#portfolio-wrap .item').length;
			this.width = 940;
			this.counter = 0;
		 
			this.SlideEfect = new Fx.Morph($('portfolio'), {dutation: 1200, transition:Fx.Transitions.Quad.easeOut});
			// set width
			$('portfolio').setStyle('width',this.width*this.items);
			// render page brovser
                          if($('page-browser'))
                          {
                                this.page_browser();
                          }

                        $$('#portfolio .box img').addEvents({

                             'mouseenter': function(elem)
                             {
                                 $(this).tween('border-color', ['#EAEAEA','#B2AE1F']);
                             },

                             'mouseleave': function(elem)
                             {
                                $(this).tween('border-color', ['#B2AE1F','#EAEAEA']);
                             }

                        })

                        if($('next'))
                        {
			$('next').addEvent('click', function()
			{	
				this.next();
                                if((this.items-1)==this.counter) {

                                    $('next').setStyle('display','none');

                                } else {
                                     $('next').setStyle('display','block');
                                }
				//console.log(this.counter);
			}.bind(this));

                        }

                        if($('prev'))
                        {
			$('prev').addEvent('click', function()
			{	
				this.back();
                                if( this.counter==0) {
                                    $('prev').setStyle('display','none');
                                    $('next').setStyle('display','block');
                                   
                                } else {
                                     $('prev').setStyle('display','block');
                                }

				//console.log(this.counter);
			}.bind(this));
                        }
	},
	
	next: function()
	{
		this.counter ++;		

		if((this.counter)<this.items) 
		{$('prev').setStyle('display','block');
			this.SlideEfect.start({'left':[-this.counter*this.width]});
			this.page_browser();
		} else {this.counter=(this.items-1);}
		
	},

	back: function()
	{
		this.counter --;
		
		if(this.counter>=0)
		{
			this.SlideEfect.start({'left':[-(this.counter*this.width)]});
			this.page_browser();
			
		} else {this.counter=0;}
		 
	},
	/**
	* funkcia renderuje navigaciu
	*
	*/
	page_browser: function()
	{
              
		$('page-browser').empty();
		
		for(var i=1;i<=this.items;i++)
		{   
		     var Elem = new Element('span', {text:i, id:'item-'+(i-1),'class': (this.counter+1==i ? 'active' : ''),
				'events': 
					{
						click: function()
						{
						    // chod na konkretny krok						 
							Portfolio.go_to(this.get('id').split('-')[1]);
							 
						}
					}
				});
			$(Elem).inject($('page-browser'));
		}
	},
	
	/**
	* funkcia ktora vracia konkretny krok
	*/
	go_to: function(step)
	{
		$$('#page-browser span').removeClass('active');
		$$('#page-browser span')[step].addClass('active');
		this.SlideEfect.start({'left':[-step*this.width]});
		this.counter = step;
                step==0 ? $('prev').setStyle('display','none') : $('prev').setStyle('display','block');
                (this.items-1)==step ? $('next').setStyle('display','none') : $('next').setStyle('display','block');
                //console.log(this.items)

	}

}


/**
* Contact Form
*
*/
var ContactForm = {
		
		init: function()
		{
			$('contact-form').addEvent('submit', function(e) { 
				e.preventDefault();
				var myShake=new Shake('contact-form')

				var req = new Request.JSON({ 
				url: 'http://www.guliwer.sk/home/send',
				method: 'post',
				data: $('contact-form'),
				onRequest: function() {
										 
				$('response-form').set('html', '<span>Formular sa odosiela...</span>').removeClass('none').removeClass('error').addClass('loading');
										
				},
                                onError: function(text, error)
                                {
                                    alert(error);
                                },
				onSuccess: function(responseJSON)
				{										      																						
					console.log(responseJSON);
				//logic if fail
				if(responseJSON.status === 1)
				{
                                     $('response-form').setStyles({'display':'block', 'opacity':0}).fade('in');
                                    var data  = responseJSON.msg.split('|') ? responseJSON.msg.split('|') : 1;
                                     var text ='';

                                    for( var n = 0; n<data.length; n++) {
                                    text += '<span>'+data[n]+'</span>';
                                    }
                                    $('response-form').set('html', text).addClass('error').removeClass('loading');
                                     function fading() {$('response-form').fade('out')};
                                    var timeout = setTimeout(fading,4000);

                                    myShake.shake();
                                    Object.each( responseJSON.field,function(value,key) {
                                    if(value===1)
                                        $(key).addClass('error2');
                                    else
                                        $(key).removeClass('error2');
                                    })
				}
                                
				      // if OK
					if(responseJSON.status === 0)
					{			
											 
					 $('contact-form').fade('out');
					 $('response-form').setStyle('display','none');
					(function(){$('response-thankyou')
					.removeClass('none').setOpacity(0).fade('in').addClass('thank')}).delay(500);										 											 
										
					}
									
				}
				}).send();														 
			})
			
			$('render-form').addEvent('click', function() { 
					$$('#contact-form input, #contact-form textarea').each(function(elem,i) {$(elem).set('value','')});
					var mytw = new Fx.Tween($('response-thankyou'), {duration:500, onComplete: 
			  	function() { 
					$('contact-form').fade('in');
					$('response-thankyou').addClass('none');
				}});	
					mytw.start('opacity',0);
			})
		}
	
	
}

var Logo = {
	
	init: function() 
	{
		
	 this.logo = new Fx.Morph($('logo'),{duration:2000,  link:'chain',transition:Fx.Transitions.Elastic.easeOut});
	 
	 function run() {		 
	 this.logo.start({'left':[20,150]}).start({'left':20});
	 }
	 run.delay(1000,this);
	 
	 this.drag();
	},
		
	
	drag: function() 
	{
	
	var drag =   new Drag($('logo'), {
							
					onSnap: function(el) {
						 $('buble').setStyles({'display':'block', 'opacity':0}).fade('in');
					},
					onComplete: function(el) {
						 this.logo.start({'left':20, 'top': 15}).chain(function() {$('buble').fade('out');});
					}.bind(this)
							
				});					 
						
	}
	
	
}


var Shake = new Class({
	Implements:Options,
		options:{
			distance: 15,
			duration: 50,
			transition: Fx.Transitions.Sine.easeInOut,
			loops: 3
		},
		
	initialize:function(element,options){
		this.setOptions(options);
		this.element=$(element);
		if(this.element.getStyle('position')!='absolute') this.element.setStyle('position','relative');
		this.tween = new Fx.Tween(this.element,{ 
			link: 'chain', 
			duration: this.options.duration,
			transition: this.options.transition
		});
	},
	
	shake:function(){
		var d=this.options.distance;
		for(x=0;x<this.options.loops;x++) this.tween.start('left',d).start('left',-d);
		this.tween.start('left',d).start('left',0);
	}
	
});
