function loggi(myvar) {
  try{
    console.log(myvar);
  } catch(e){}
}

var Has = {
  Init: function() {
  
    Cufon.now();
  
    var myTips = new Tips('.tips',
      {
        offset: {'x': 0, 'y': -35},
        onShow: function(tip, ele){
        
          tip.setStyles({
              visibility: 'hidden',
              display: 'block'
          }).fade('in');        
          
          var name = ( $defined(ele.get('value')) )? ele.get('value'): ele.get('rel');
          var img = '<img src="/has/img/'+ name +'b.gif"  />';
          tip.getElement('.tip').set('html', img);
        }      
      }
    );
    
    

  
    $$('.swapInput').each(
    function(ele){
      ele.addEvent('blur', function(){
        if( ele.value == '' ) ele.value = ele.originalText;
      });
      ele.addEvent('focus', function(){
        if( typeof ele.originalText == 'undefined' ) ele.originalText = ele.value;
        if( ele.value == ele.originalText  ) ele.value = '';
      });
    }
    );
  
    $$('.topMenu a').each(
      function(link){
        if(link.hasClass('active') ) return;
        link.addEvents(
          {
            'mouseenter': function(){link.addClass('active'); },
            'mouseleave': function(){link.removeClass('active');}
          }
        );
      }
    );
    
    
/*
    $$('.boxThumb').each(
      function(ele){
        var img = ele.getElement('.boxImage img');
        img.addEvent('load',
          function(){

            var opacity = new Fx.Morph(ele, {duration: 500, transition: Fx.Transitions.linear});
            opacity.start({
                'opacity': [0, 0.99]
                });
          }
        );
      }
    );
*/
    
    $$('.typeCb').each(
      function(ele){
        var parent = ele.getParent();
        if( ele.checked == true ) parent.addClass('active');
        ele.addEvent('click',
          function(event){
            
            var hideThumb = function(typeArray){
            
              $$('.boxThumb').each(
                function(t){
                  var classes = t.get('class').split(' ');
                  
                  var has1Class = classes.some(function(item, index){
                      return typeArray.contains(item);
                  },typeArray);
                                    
                  if( !has1Class ) t.addClass('hideThumb');
                  else t.removeClass('hideThumb');             
                }
              );
				      if( $defined(event) ) event.preventDefault();
            }
          
          
            ele.getParent().toggleClass('active');
                        
            var checkboxID = ele.get('id');
            var types = Cookie.read("typesActive");
            
            var typeArray = ( !$defined(types) )? new Array(): types.split('|');
                        
            typeArray.erase( checkboxID.toString() );
            if( parent.hasClass('active') ) {
              typeArray.push(checkboxID.toString());
            }
                
            typeArray.erase('');
                        
            hideThumb(typeArray);
     
            Cookie.write('typesActive', typeArray.join('|') );
            
          }.bind(ele)
        );
      }
    );
    
/*
    window.addEvent('scroll',
      function(){
        if( $('goTop') ){
          var myY = $('goTop').getPosition().y;
          if( !$defined( $('goTop').startPos ) ) $('goTop').startPos = myY;
          var scrollY = window.getScroll().y;
                          
          if( scrollY > $('goTop').startPos ){
            $('goTop').setStyle('top', scrollY - $('goTop').startPos);
          } else {
            $('goTop').setStyle('top', 0);
          }
        }
      }
    );
*/
    
    var scroll = new Fx.SmoothScroll({
        links: '.scrollTo',
        wheelStops: false,
        //delay: 1000,
        delay: 200,
        duration: 1300,
        onComplete:function(event){
          Has.setProjectContent();
        }
    }); 
       
    var scroll = new Fx.SmoothScroll({
        duration: 1500,
        links: '.goTop a',
        wheelStops: false
    });

    $$('.overText').each(
      function(ele){
        var parent = ele.getParent();
        parent.addEvents({
          'mouseenter':
            function(event){
              var height = ( parent.hasClass('boxThumb') )? '55':'90';
              if( $defined(ele.close) ) ele.close.cancel();
              ele.open = new Fx.Morph(ele, {duration: 500, transition: Fx.Transitions.Sine.easeOut});
              ele.open.start({'height': height});           
            }.bind(ele),
          'mouseleave':
            function(event){
              var open = parent.getElement('.activeThumbDivOn');
              if(  !$defined(open) && $defined(ele.open) ) ele.open.cancel()
              ele.close = new Fx.Morph(ele, {duration: 500, transition: Fx.Transitions.Sine.easeOut});
              if( !$defined(open) ) ele.close.start({'height': 0});           
            }.bind(ele)
        });
      }
    );
    
    $$('.scrollTo').each(
      function(ele){
        ele.addEvent('click',
          function(){
            var rel = ele.get('rel');
            $('projects').set('rel', rel);
            
            $$('.activeThumbDivOn').each(function(ele){ 
              var parent = ele.getParent();
              parent.removeClass('thumbActive');            
              parent.getElement('.homeTitle').removeClass('hide');            
              parent.getElement('.homeTitlePink').addClass('hide');            
              new Fx.Morph((ele), {duration: 1000}).start('.activeThumbDivOff');
              ele.removeClass('activeThumbDivOn');
            });
            
            var parent = ele.getParent();
            parent.addClass('thumbActive');
            var activeDiv = parent.getElement('.activeThumbDiv');
            parent.getElement('.homeTitle').addClass('hide');            
            parent.getElement('.homeTitlePink').removeClass('hide');            
            //new Fx.Morph(activeDiv, {duration: 1000}).start('.activeThumbDivOn');
            new Fx.Morph(activeDiv, {duration: 0}).start('.activeThumbDivOn');
            activeDiv.addClass('activeThumbDivOn');
            

            $$('.scrollTo').each(function(ele_){ 
              var scrollTo_ = ele_.getParent();
              scrollTo_.fireEvent('mouseleave'); 
            });
            
          }.bind(ele)
        );
      }
    );
    
    
    $$('.gallery').each(
      function(ele){  
        
        var extra = ele.get('rel');
    		var handles = ele.getElements('.toolbar .paging span');
    		var thumbHandles = $$('#'+extra+'_extra div.relative');
    		    		    		
    		var ns = new noobSlide({

    			box: ele.getElement('.galleryCont'),
    			items: ele.getElements('.items'),
    			size: 660,
    			handles: ele.getElements('.toolbar .paging span'),
    			addButtons: {previous: ele.getElement('.btnLeft'), next: ele.getElement('.btnRight') },   			
    			onWalk: function(currentItem,currentHandle){
    			
/*
    			var isScroll = currentItem.getElements('.imgScroll').length;

    			 if( isScroll > 0 ){
              $('isScroll'+extra).removeClass('opacity0');
    			 } else {
              $('isScroll'+extra).addClass('opacity0');
    			 }
*/
    			
    		    handles.each(
    		      function(ele,index){
    		        if( this.currentIndex == index) ele.addClass('active');
    		        else ele.removeClass('active');
    		      }.bind(this)
    		    );
    		    thumbHandles.each(
    		      function(ele_,index_){
    		        if( this.currentIndex == index_) ele_.addClass('active');
    		        else ele_.removeClass('active');
    		      }.bind(this)
    		    );    				

    			}
    		});
    		
    		ele.getElements('.nextclick').addEvent(
    		  'click', ns.next.bind(ns)
    		);    		
    		ns.addHandleButtons(thumbHandles);     		
      }
    );  
    
    $$('.homeBox').each(
      function(ele){  
        
    		var handles = ele.getElements('.hbHandles');
    		var hg = new noobSlide({
    		  autoPlay: true,
    		  interval: 10000,  	
    			addButtons: {
				    previous: $('hbHandlesArrowL'),
				    next: $('hbHandlesArrowR')
			    },    			
    			box: ele.getElement('.homeBoxLeft'),
    			items: ele.getElements('.leftBox'),
    			size: 539,
    		  handles: ele.getElements('.hbHandles'),
    			onWalk: function(currentItem,currentHandle){
    		    handles.each(
    		      function(ele,index){
    		        if( this.currentIndex == index) ele.addClass('active');
    		        else ele.removeClass('active');
    		      }.bind(this)
    		    );  				
    			}
    		});
      }
    );      

  },

  InitLoad: function() {
  
/*
    Array.each.delay(5000,this,[
        $$('.itemThumb, .itemImg'),	
        function(ele){
          var src = ele.getProperty('alt'); 
          var img  = new Image(); 
          img.src = src;
        } 
      ]
    );  
*/
     

    if( $('projects') ){
    
      var href = window.location.href;
      var newHref = '';
      var hrefArray = href.split('&');
      var sep = '';
      hrefArray.each(
        function(token){
          if( !token.contains('type=')) newHref = newHref + sep + token;
          sep = '&';
        }
      );  
      
      var loadList  = function(){
        window.location = newHref + '&type=listView';
      };
      var loadThumb  = function(){
        window.location = newHref + '&type=thumbView';
      };
  
      
      var myKeyboardEvents = new Keyboard({
        defaultEventType: 'keyup', 
        events: { 
            'l': loadList,
            't': loadThumb
        }
      });
      myKeyboardEvents.activate();
    }
    
    $$('.nextLeft').addEvent('click',
      function(){
        var act = $('projects').get('rel');
        var project = $(act+'_extra');
        var all = $$('div.marginTopThumbsGallery');
        var index = all.indexOf(project);
        
        var next = ( $defined( all[index-1] ) )? all[index-1] : all[all.length -1 ];
        
        $('projects').set('rel', (next.id).toString().replace('_extra','') );
        Has.setProjectContent();
      }
    )

    $$('.nextRight').addEvent('click',
      function(){
        var act = $('projects').get('rel');
        var project = $(act+'_extra');
        var all = $$('div.marginTopThumbsGallery');
        var index = all.indexOf(project);
        
        var next = ( $defined( all[index+1] ) )? all[index+1] : all[0];
        $('projects').set('rel', (next.id).toString().replace('_extra','') );
        Has.setProjectContent();
      }
    )

  },
  
  setProjectContent: function(){
    var nextID = $('projects').get('rel');
    var box = $(nextID);
    var oldID = $('projects').get('lang');
    
/*
    var metas = $$('meta[property="og:title"]');
    metas[0].set('content','Test');
*/
    
    if( nextID != oldID ){
      
      var newEles = $$('.'+nextID);
      
      $('projects').set('lang',nextID);  
          
      $('projects').getElements('.'+oldID).each(
        function(ele,index){        
          var newEle = newEles[index];  
          
          if( newEle.hasClass('gallery') ) {
            var images = newEle.getElements('.itemImg');   
            var items = newEle.getElements('.items');   
                     
            Array.each.delay( 1000, this,[  
              images,  
              function(img,index){
                if( img.get('alt') ) img.set('src', img.get('alt') );
                img.set('alt', '');
                img.removeClass('itemImg');
                img.addEvent('load',
                  function(){
                    var item = items[index];
                    var itemScroll = item.getSize();
                    $(this).removeClass('hide');
                  },index
                );

              }  
            ]);  
                     
                        
            
            items.each(
              function(item){

/*
                if( !$defined( item.getElement('.imgScroll') ) ) return;
                var img = item.getElement('.imgScroll');
                                
                var myDrag = new Drag(img, {
                snap: 0,
                limit: {'x':[0,0],'y':[ (img.get('lang') ).toInt() ,0]}
                });
*/
                
                
/*
                var gotop = new Fx.Morph($('goTop'), {duration: 500 * (index+1), transition: Fx.Transitions.Sine.easeOut});
                out.start({'opacity': 1});
*/


                
                
/*
                var scroll = new Fx.Scroll(item, {
                wait: false,
	              offset: {'x': 0, 'y': 0},
                duration: 500,
                transition: Fx.Transitions.Quad.easeInOut
                });
                
                scroll.start(0,0);   
                             
                item.getElement('.scrollImage').addEvent('click', function(event) {
                  event = new Event(event).stop();
                                    
                  if( event.target.hasClass('pleaseTop') ) { 
                    scroll.toElement(item.getElement('.goBottomImage'));
                    event.target.removeClass('pleaseTop');
                  } else {
                    scroll.toElement(item.getElement('.goTopImage'));
                    event.target.addClass('pleaseTop');
                  }
                });
*/

              
              }
            );
            
          }
          
          
                    
          if( newEle.hasClass('marginTopThumbsGallery') ) {
            var images = newEle.getElements('img');   
            images.each(
              function(img){
                var setImage = function(){
                  if( this.get('alt') ) this.set('src', this.get('alt') );
                  this.set('alt', '');
                }
                setImage.delay('1000',img);
              }
            );
          }   
          
                 
          var out = new Fx.Morph(ele, {duration: 500 * (index+1), transition: Fx.Transitions.Sine.easeOut,onComplete: function(){
            ele.addClass('hide');
            newEle.setStyle('opacity',0);
            newEle.removeClass('hide');
            var inn = new Fx.Morph(newEle, {duration: 500 * (index+1), transition: Fx.Transitions.Sine.easeOut,onComplete: function(){ }});
            inn.start({'opacity': 1});       
          }});
          
          out.start({'opacity': 0});
        }
      );
      
      
    }
  }
}

window.addEvent('touchstart', function(event){
			});

window.addEvent('load', Has.InitLoad);
window.addEvent('domready', Has.Init);



