$( function(){
    
    initTabMenu();
    initGmaps();
    initTracking();
	
    $("#hsearch").focus(function(){
  		$("label[for="+$(this).attr("id")+"]").hide();
  	});
  	$("#hsearch").blur(function(){
  		if($(this).val().replace(" ", "") == ""){
  			$("label[for="+$(this).attr("id")+"]").show();
  		}
  	});
  	
  	$(".contactForm input, .contactForm textarea").focus(function(){
  		$("label[for="+$(this).attr("id")+"]").hide();
  	});
  	$(".contactForm input, .contactForm textarea").blur(function(){
  		if($(this).val().replace(" ", "") == ""){
  			$("label[for="+$(this).attr("id")+"]").show();
  		}
  	}).trigger('focus').trigger('blur');
  	
    $("select.replace").amaiSelect(200);
    $("select.replaceSmall").amaiSelect(200, undefined, "smallSelect");
    
    
    //homepage sector overview
    if ( $('.sectorOverview').length!=0 )
    {
      var container=$('.sectorOverview');
      var height=container.height();
      
      container.children('div').each( function(){
        var $this=$(this);
        $this.css( { height: height } );        
      } );
      
      //fix category height
      $('ul.serviceCategories > li').each( function(){
        var $this=$(this);
        var classname=$this.attr('class');
        
        //handle each category
//         var maxHeight=0;
//         
//           $('.sectorOverview li.'+classname).each( function(){
//             var $this=$(this);
//             var height=$this.height();
//             if ( height>maxHeight )
//             {
//               maxHeight=height;
//             }
//           } );
          
          var maxTop=0;
          $('.sectorOverview li.'+classname).each( function(){
            var $this=$(this);
//             $this.css('height', maxHeight );
            var top=$this.position().top;
            if (top>maxTop)
            {
              maxTop=top;
            }
          } );
//           console.log( maxTop );
          $('.sectorOverview li.'+classname).each( function(){
            var $this=$(this);
            var top=$this.position().top;
            if ( top < maxTop )
            {
//             if ( top<0 ){ alert('break'); }
            $this.css({
              marginTop: maxTop-top
            } );  
//             console.log( top );              
            }
            
        
          } );    
          
      } );
      
    }
    
    //slideshow
    var slides=$('ul.slideshow');
    if ( slides.length>0 )
    {
      $('ul.slideshow').slideshow();
    }
    else
    {
      $('div.slider').css('height', 0);
    }
    
    
    //submenu
    $('.parent_menu').hover( function(){
      var $this=$(this);
      $this.next().show();
    }, function(){
      var $this=$(this);
      $this.next().hide();
    } ).click( function(e){
      if ( ! $(this).hasClass('link') )
      {
        e.preventDefault();
      }      
    } );
    $('.child_menu').hover( function(){
      var $this=$(this);
      $this.show();      
      $this.prev().addClass('hover');
    }, function(){
      var $this=$(this);
      $this.hide();
      $this.prev().removeClass('hover');
    } );
    //IE7 fix
//     $('.parent_menu').trigger('mouseover');
//     setTimeout( function(){ $('.parent_menu').trigger('mouseleave'); }, 100 )
    
    
    //sector select
    $('select.sector').change( function(){
      document.location.href=base_url+'sector/'+$(this).val();
    } );
    //service select
    $('#service_select select.category').change( function(){
      $.ajax( {
        url: base_url+'ajax/getCategoryServices',
        type: 'post',
        data: { sector: $(this).parent().attr('rel'),
                category: $(this).val() },
        success: function(html){
          $('#service_select select.service').next().remove();
          $('#service_select select.service').remove();
          $('#service_select').append(html);
          $('#service_select select.service').amaiSelect();
          
          $('#service_select select.service').change( function(){
            if ( $(this).val()!='' )
            {
              document.location.href=base_url+'service/'+$('#service_select').attr('rel')+'/'+$('#service_select select.category').val()+'/'+$(this).val()
            }
          } );
          
        }
      } );
    } );
    
    $('#service_select select.service').change( function(){
      if ( $(this).val()!='' )
      {
        document.location.href=base_url+'service/'+$('#service_select').attr('rel')+'/'+$('#service_select select.category').val()+'/'+$(this).val()
      }
    } );
    

    //contact form submit
    $('#contactForm').submit( function(e){
      e.preventDefault();
      var valid=true;
      $(this).find('.error').removeClass('error');
      $(this).find( 'input[type=text], textarea' ).each( function(){
        var input=$(this);
        if ( input.hasClass('required') )
        {
          if ( input.val()=='' )
          {
            input.addClass('error');
            $('label[for='+input.attr('id')+']').addClass('error');
            valid=false;
          }
        }
        if ( input.hasClass('email') )
        {
          if ( ! valid_email(input.val()) )
          {
            input.addClass('error');
            $('label[for='+input.attr('id')+']').addClass('error');
            valid=false;
          }
        }
      } );
      if ( valid )
      {
        $.ajax( {
          url: base_url+'ajax/submitContact',
          type: 'post',
          data: $('#contactForm').serialize(),
          success: function(){
            
            _gaq.push(['_trackEvent', 'Events', 'Contact us', 'Contact form']);
            
            if ( $.browser.msie )
            {
              $('.submitMessage').show();
            }
            else
            {
              $('.submitMessage').fadeIn();
            }
            
            if ( $.browser.msie )
            {
            setTimeout( function(){
              $('.submitMessage').hide();
              $('#contactForm input[type=text], #contactForm textarea').val('').trigger('blur');
            }, 5000 );
            }
            else
            {
            setTimeout( function(){
              $('.submitMessage').fadeOut();
              $('#contactForm input[type=text], #contactForm textarea').val('').trigger('blur');
            }, 5000 );
            }            
          }
        } );          
      }
    } );
    
    $('input, textarea').focus( function(){
      $(this).removeClass('error');
    } );
    
    
    //hide empty related services
    if ( $('#service .services ul li').length==0 )
    {
      $('#service .services').hide();
    }
    
    
    
    //News pages date select
    initNewsSelects();    
    initNewsAjaxLoading();
    
//     //Press pages date select
//     initPressSelects();    
//     initPressAjaxLoading();
    
    initVideoPlayer();
    
} );

function initNewsAjaxLoading()
{
    $('.loading').ajaxStart( function(){
      $(this).show();
    } ).ajaxStop( function(){
      $(this).hide();
    } );
}

function initNewsSelects()
{
  $('.newsCategorySelect').change( function(){
    $('.newsServiceSelect').val('');
  } );
  
  $('#newsSelects').change( function(){
      $.ajax( {
        url: $(this).attr('action'),
        type: 'post',
        data: $(this).serialize() ,
        success: function(html){
          $('#content').html(html);
          $("select.replace").amaiSelect(200);
          $("select.replaceSmall").amaiSelect(200, undefined, "smallSelect");
          initNewsSelects();
          initNewsAjaxLoading();
        }
      } );
    } );
}



function valid_email(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = email;
   if(reg.test(address) == false) {      
      return false;
   }else
   {
    return true;
   }
  }

$.fn.slideshow = function(){
  
  var slides=this.children('li');
  var count=slides.length;  
  var $this = this;
  
  slides.each(function(index){
	 var $this=$(this);
   var filterurl=$this.find("a").first().attr("href");
   var nolink='';
   if ( filterurl=='#' )
   {
    nolink='nolink';
   }
   $this.append('<a class="filter '+nolink+'" href="'+filterurl+'"></a>'); 
   $this.css( { 
    zIndex: count-index,
    display: ( index==0 ) ? 'block' : 'none'
  } );
  });
  
  $('a.filter').click( function(e){
    e.preventDefault();
    var href=$(this).attr('href');
//     console.log(base_url+href);
    if ( href!='#' )
    {
      if ( href.substr(0,1)!='/' )
      {
        open( href );
      }
      else
      {
        document.location.href=base_url+href.substr(1, href.length );
      }
      
    }
  } );
  
  slides.each( function(index){
    
//     $(this).attr("id", "slide"+index);
  } );
  
  var startSlideshow = function(){
	  return setTimeout( function(){
		    doSlideshow()
	  }, 7000 );
  }
  
  var doSlideshow = function(next){
// 	  	console.log( next );
      clearTimeout(timeout);
      var current= $this.children('li.active');	  	
      if(next == undefined){
        var next = current.next();
	  	  if ( next.length==0 )
  	    {
  	      next= slides.first();  	      
  	    }
      }
      else
      {
        next = $(next);
      }
	    

	    current.stop(true, true).fadeOut( 2000 ).removeClass('active');
	    next.stop(true, true).fadeIn( 2000 ).addClass('active');
	    $(".numbers li").removeClass("active");
	    $(".numbers li:nth-child("+(next.index() + 1)+")").addClass("active");
	    timeout = startSlideshow();
  }
  
  var numbers = $('<ul class="numbers" />');
  for ( var i=0;i<count;i++ )
  {
	  var li = $('<li><a href="#slide'+(i+1)+'">'+(i+1)+'</a></li>');
	  if(i == 0){
		  li.addClass("active");
	  }
	  li.find("a").click(function(e){
		  e.preventDefault();

      doSlideshow( slides[ $(this).parent().index() ] );
	  });
	  numbers.append(li);
  }
  
  this.after( numbers );
  
  var timeout = startSlideshow();

  return this;

}

function initTabMenu(){
	if($(".serviceOverview").size()){
		$(".serviceOverview>ul li a").click(function(e){
			e.preventDefault();
			$(".serviceOverview li").removeClass("active");
			$(this).parent().addClass("active");
// 			$(".serviceOverview>div").hide();
// 			$($(this).attr("href")).show();
      
      var date=new Date;
      
      $.ajax({
        url: $(this).attr('href'),
        type: 'post',
        data: { cache: date.getTime() },
        success: function(html){
          $('div.categoryContent').html(html);
        }
      });

		});
		
		if ( document.location.hash!='' )
		{
      
      $.scrollTo( $('.contentText'), { axis: 'y', duration: 600, easing: 'easeOutExpo' }  );
      
//       $(".serviceOverview>ul li a").each( function(){
//         if ( $(this).attr('href')==document.location.hash.substring( 0, (document.location.hash.length-4) ) )
//         {
//           $(this).trigger('click');
//         }
//       } );
    }
		
	}
}

function initVideoPlayer()
{

  if ( $('#video_player').length!=0 )
  {  
    var flashvars = { file: $('#video_player').attr('rel'),
                              autostart: 'false'};
            var params = { allowfullscreen:'true', allowscriptaccess:'always' };
            var attributes = { id:'video_player', name:'video_player' };
          
            swfobject.embedSWF(base_url+'flash/player.swf','video_player','643','400','9.0.115','false', flashvars, params, attributes);  
  }

}

function initGmaps(){
	if($("#map_canvas").size()){
		var latlng = new google.maps.LatLng(51.235146,4.421289);
	    var myOptions = {zoom: 14, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControl: false, navigationControl:true};
	    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	    codeAddress();
	}
}

function codeAddress() {
    geocoder = new google.maps.Geocoder();
    var address = "Asiadok 29/B, 2030 Antwerpen";
    geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);
            var marker = new google.maps.Marker({
                map: map, 
                position: results[0].geometry.location
            });
        } else {
            console.log("Geocode was not successful for the following reason: " + status);
        }
    });
}

function initTracking()
{
//   _trackEvent(category, action, opt_label, opt_value, opt_noninteraction)
    
    //buttons on homepage
    $('#home .homeChooseContainer a').click( function(e){
      var track=false;
      switch( $(this).parent('li').attr('class') )
      {
        case 'underwaterRepMan':
          track='Underwater repair & maintenance';
        break;
        case 'ecospeedHull':
          track='Ecospeed hull coating system';
        break;
        case 'commercial_shipping':
          track='Commercial shipping';
        break;
        case 'navy':
          track='Navy';
        break;
        case 'oil__gas':
          track='Oil & Gas';
        break;
        case 'industry':
          track='Industry';
        break;
      }
      if ( track )
      {
        _gaq.push(['_trackEvent', 'Events', 'Homepage buttons', $(this).text()]);
      }      
    } );
    
    
    //contact us
    $('a.contactUs').click( function(){
      var text=$(this).text();
      if ( text.indexOf( 'Contact' )!=-1 )
      {
        _gaq.push(['_trackEvent', 'Events', 'Contact us', text]);
      }      
    } );
    
    //contactform check above
//      $.ajax( {
//           url: base_url+'ajax/submitContact',

    //search keywords cehck jquery.google.search.js
}

