/* ------------------------------
DOCUMENT READY
------------------------------ */
$(function(){
	BrowserDetect.init();
	Scrollable();
	AddFancyboxBtn();
	InverseHoverMenu();
	RegMarkFix();
	KillOutline();
	ScrollFollow();
	colHeightFix();
	FormInput();
	OpenPdfInNewTab();
	
	
	if (BrowserDetect.OS == "iPhone/iPod" || BrowserDetect.OS == "iPad") {
		$('.wrap_mp4').show();
			$('.wrap_flv').hide();	
				
	} else {
			$('.wrap_flv').show();	
		$('.wrap_mp4').hide();
	}
	
});

function AddFancyboxBtn(){
	$('.fancybox').not('.ws_scrollable .fancybox').append('<span class="fancyOpen"></span>');
}

function OpenPdfInNewTab(){
	$('.blank').click(function(){
		window.open(this.href,'_blank'); return false;	
	});
}

function InverseHoverMenu(){ // Spegnimento link non selezionati all'interno di un dato menù
	$('.inverseHover').each(function(i,e){
		var hoveredA = $('a:has(img)', e);
		var active = $('a.active', e);
		$(hoveredA).addClass('inverseHoverBG');
		$(active).click(function(ev){ev.preventDefault();});
		
		if( $(e).hasClass('dettProd') ){
			$(hoveredA).not($(active)).hover(
				function(){
					$(this).find('img').toggleClass('opa05');
					$(active).find('img').toggleClass('opa05');	
				}
			);				
		} 
		
		else {
			$(hoveredA).not($(active)).hover(
				function(){
					$(hoveredA).not(this).find('img').toggleClass('opa05');			
				}
			);				
		}
		
	});
}


/*--------------------------------------------------
FORMINPUT
Nasconde automaticamente il testo predefinito 
dell'input di ricerca
--------------------------------------------------*/
function FormInput(){ 
	var val = $('#search_hp input').attr('value');
	$('#search_hp input').focus(function(){
		if($(this).attr('value') == val){
			$(this).attr('value', '');
		}
	}).blur(function(){
		if($(this).attr('value') == ''){
			$(this).attr('value', val);
		}
	});
}


/*--------------------------------------------------
REGMARKFIX
Modifica l'aspetto del simbolo Marchio Registrato(®)
--------------------------------------------------*/
function RegMarkFix(){ 
	var reg = '<span class="regMark">®</span>';
	$('h1, h2').each(function(){
		$(this).html($(this).text().replace(/®/gi, reg));
	});
}


/*--------------------------------------------------
KILLOUTLINE
Elimina l'outline su IE
--------------------------------------------------*/
function KillOutline(){
	$('a').focus(function(){
			 $(this).attr("hideFocus", "hidefocus");
	});
}

function Fancybox(){	
	$('.fancybox').each(function(e,f){	
		$(f).fancybox({
			'transitionIn'	:	'elastic',
			'transitionOut'	:	'elastic',
			'easingIn'      : 'easeOutBack',
			'easingOut'     : 'easeInBack',
			'speedIn'				:	300, 
			'speedOut'			:	300, 
			'overlayShow'		:	false, 
			//'overlayColor' : '#000',
			'hideOnContentClick': true
		});	
	});
}


/*--------------------------------------------------
SCROLLFOLLOW
--------------------------------------------------*/
function ScrollFollow(){
	$('#scrollFollow').each(function(i,el){		
		var topPadding = 5;
		var elTop = $(el).offset().top - parseFloat($(el).css('marginTop').replace(/auto/, 0)) - topPadding;
		var maxScroll = $(el).parents('#wrap_main').offset().top + $(el).parents('#wrap_main').height() - $(el).outerHeight() - topPadding;
		
		$(window).scroll(function(event) {			
			var y = $(this).scrollTop();	
			if(y >= elTop){
				$(el).addClass('fixed').removeAttr('style');
				if(y > maxScroll){
					$(el).removeClass('fixed').css({'top':'auto', 'bottom':'0'});
				}
			} else {
				$(el).removeClass('fixed');
			}
		});
	});
}


/*--------------------------------------------------
SCROLLABLE
--------------------------------------------------*/
function Scrollable(){	
	$('.ws_scrollable').each(function(e,f){		
		var scrollArr = [];																		
		var numItems = $('.item', f).size();	
		var howMany = 0;
		var itemW = $('.item', f).outerWidth(true);
		var scrollSpeed = 1200;
		var scrollEasing = 'easeInOutExpo';
		var autoplay;		
		var autoplayDelay = 6000;
		var autoplayDelayTitoli =7000;
		var i = 1;		
		var imgAlt;
		var activeProd4logo = 'holo';
		//var animTitoli = false;
		
		if($(f).attr('class').match(/animTitoli/g)){
				animTitoli = true;
		}
		
		CheckClasses();
		SetButtons();
		//trace(animTitoli);
		//SetCaption(1);
		Showreel(e);
		
		if ($(f).hasClass('animTitoli')) {
				Animation(activeProd4logo);
		}
		
		function Showreel($e) {
			if(autoplay == true){
				if($(f).hasClass('animTitoli')){
					scrollArr[$e] = setTimeout(function(){ 							
						$('.next', f).click();					
					}, autoplayDelayTitoli);
				}
				else{
					scrollArr[$e] = setTimeout(function(){ 							
						$('.next', f).click();					
					}, autoplayDelay);
				}
			} 
		}
		
		$('.next', f).click(function(ev){ 					
			clearTimeout(scrollArr[e]); 												
			if( i < ( numItems - howMany) ){ 										
				increment = -(itemW*i); 													
																													
				i = i+1; 																					
				MoveItems(increment); 														
			} else { 
				if($(f).hasClass('cycle')){																						 
					i = 1;																						
					MoveItems(0);
				}
			}
			
			SetButtons();
					
			/* SOLO SE è LO SHOWREEL DEI TITOLI */				
			if ($(f).hasClass('animTitoli')) {
				activeProd4logo = $('.item', f).eq(i-1).attr('alt');	
				Animation(activeProd4logo);
			}			
			
			ev.preventDefault();  																			
		});
		
		$('.prev', f).click(function(ev){ 					
			clearTimeout(scrollArr[e]);													
			if(i>1){ 																						
				increment = -(itemW*(i-2)); 											
																													
				i = i-1; 																					
				MoveItems(increment); 														
			}	else {	
				if($(f).hasClass('cycle')){		
					increment = (-(itemW*(numItems-1)) + (howMany*itemW));  
					i = numItems - howMany;																	
					MoveItems(increment);                  									
				}
				i = 1;	// ferma all'ultima immagine				
			}
			
			SetButtons();
			
			/* SOLO SE è LO SHOWREEL DEI TITOLI */						
			if ($(f).hasClass('animTitoli')) {
				activeProd4logo = $('.item', f).eq(i-1).attr('alt');	
				Animation(activeProd4logo);
			}
			
			ev.preventDefault();																			
		});
		
		function MoveItems(valSpostamento){ 
			/*$('.wrap_items', f).stop().animate({'left': valSpostamento + 'px'}, 1000, 'swing', Showreel(e));	*/ // ORIGINALE
			$('.wrap_items', f).stop().animate({'left': valSpostamento + 'px'}, {duration:scrollSpeed, easing:scrollEasing}, Showreel(e));																													
																													
			//SetCaption(i);
		}
		
		function SetCaption(c){
			imgAlt = $('.item:eq(' + (c-1) + ') img', f).attr('alt');
			$('.dida', f).text(imgAlt);			
		}
		
		function CheckClasses(){							
			if ($(f).attr('class').match(/\bshow_(\d+)\b/)){
				howMany = ($(f).attr('class').match(/\bshow_(\d+)\b/)[1]) - 1;
			}		
			
			if ($(f).attr('class').match(/autoplay/g)){
				autoplay = true;																		
			} else {
				autoplay = false;
			}				
		}
		
		function SetButtons(){
			if( numItems < (howMany+1) || (i+howMany) == numItems ){
				$('.next', f).addClass('off');
			} else {
				$('.next', f).removeClass('off');
			}
			
			if( i != 1){
				$('.prev', f).removeClass('off');
			} else {
				$('.prev', f).addClass('off');
			}
			
		}
	
	});
	
}


/*--------------------------------------------------
colHeightFix
Aggiungere la classe fixColsHi al contenitore delle colonne
Aggiungere la classe col2fix a ciscuna colonna
--------------------------------------------------*/
function colHeightFix(){
		
		$('.fixColsHi').each(function(a,b){
			var target = $(b).children('.col2fix');
			var maxH = 0;
			var arr = [];
			var ind = 0;
			var cols = Math.ceil(target.size()/3);
			for (i=0; i < cols; i++){
				arr.push(target.eq(0+ind));
				arr.push(target.eq(1+ind));
				arr.push(target.eq(2+ind));
				$.each(arr,function(el){
					maxH = (maxH > $(arr[el]).height()) ? maxH : $(arr[el]).height();
				});
				$.each(arr,function(el){
					$(arr[el]).height(maxH);
					if (i == cols-1){
						$(arr[el]).addClass("lastRow");
					}
				});
				ind = ind + 3;
				max=0;
				arr = [];
			}
		});
}


/* Browser Detect
- - - - - - - - - - - - - - - - - - - - */
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.userAgent,
			subString: "iPhone",
			identity: "iPhone/iPod"
	    },
		{
			string: navigator.userAgent,
			subString: "iPad",
			identity: "iPad"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

