// Copyright Reverb,  www.reverb.it

(function($) {
jQuery.fn.getColor = function(prop){
	var result = null;
	
	var colors = {
		aliceblue: "0xF0F8FF",
		antiquewhite: "0xFAEBD7",
		aqua: "0x00FFFF",
		aquamarine: "0x7FFFD4",
		azure: "0xF0FFFF",
		beige: "0xF5F5DC",
		bisque: "0xFFE4C4",
		black: "0x000000",
		blanchedalmond: "0xFFEBCD",
		blue: "0x0000FF",
		blueviolet: "0x8A2BE2",
		brown: "0xA52A2A",
		burlywood: "0xDEB887",
		cadetblue: "0x5F9EA0",
		chartreuse: "0x7FFF00",
		chocolate: "0xD2691E",
		coral: "0xFF7F50",
		cornflowerblue: "0x6495ED",
		cornsilk: "0xFFF8DC",
		crimson: "0xDC143C",
		cyan: "0x00FFFF",
		darkblue: "0x00008B",
		darkcyan: "0x008B8B",
		darkgoldenrod: "0xB8860B",
		darkgray: "0xA9A9A9",
		darkgreen: "0x006400",
		darkkhaki: "0xBDB76B",
		darkmagenta: "0x8B008B",
		darkolivegreen: "0x556B2F",
		darkorange: "0xFF8C00",
		darkorchid: "0x9932CC",
		darkred: "0x8B0000",
		darksalmon: "0xE9967A",
		darkseagreen: "0x8FBC8F",
		darkslateblue: "0x483D8B",
		darkslategray: "0x2F4F4F",
		darkturquoise: "0x00CED1",
		darkviolet: "0x9400D3",
		deeppink: "0xFF1493",
		deepskyblue: "0x00BFFF",
		dimgray: "0x696969",
		dodgerblue: "0x1E90FF",
		firebrick: "0xB22222",
		floralwhite: "0xFFFAF0",
		forestgreen: "0x228B22",
		fuchsia: "0xFF00FF",
		gainsboro: "0xDCDCDC",
		ghostwhite: "0xF8F8FF",
		gold: "0xFFD700",
		goldenrod: "0xDAA520",
		gray: "0x808080",
		green: "0x008000",
		greenyellow: "0xADFF2F",
		honeydew: "0xF0FFF0",
		hotpink: "0xFF69B4",
		indianred: "0xCD5C5C",
		indigo: "0x4B0082",
		ivory: "0xFFFFF0",
		khaki: "0xF0E68C",
		lavender: "0xE6E6FA",
		lavenderblush: "0xFFF0F5",
		lawngreen: "0x7CFC00",
		lemonchiffon: "0xFFFACD",
		lightblue: "0xADD8E6",
		lightcoral: "0xF08080",
		lightcyan: "0xE0FFFF",
		lightgoldenrodyellow: "0xFAFAD2",
		lightgreen: "0x90EE90",
		lightgrey: "0xD3D3D3",
		lightpink: "0xFFB6C1",
		lightsalmon: "0xFFA07A",
		lightseagreen: "0x20B2AA",
		lightskyblue: "0x87CEFA",
		lightslategray: "0x778899",
		lightsteelblue: "0xB0C4DE",
		lightyellow: "0xFFFFE0",
		lime: "0x00FF00",
		limegreen: "0x32CD32",
		linen: "0xFAF0E6",
		magenta: "0xFF00FF",
		maroon: "0x800000",
		mediumaquamarine: "0x66CDAA",
		mediumblue: "0x0000CD",
		mediumorchid: "0xBA55D3",
		mediumpurple: "0x9370DB",
		mediumseagreen: "0x3CB371",
		mediumslateblue: "0x7B68EE",
		mediumspringgreen: "0x00FA9A",
		mediumturquoise: "0x48D1CC",
		mediumvioletred: "0xC71585",
		midnightblue: "0x191970",
		mintcream: "0xF5FFFA",
		mistyrose: "0xFFE4E1",
		moccasin: "0xFFE4B5",
		navajowhite: "0xFFDEAD",
		navy: "0x000080",
		oldlace: "0xFDF5E6",
		olive: "0x808000",
		olivedrab: "0x6B8E23",
		orange: "0xFFA500",
		orangered: "0xFF4500",
		orchid: "0xDA70D6",
		palegoldenrod: "0xEEE8AA",
		palegreen: "0x98FB98",
		paleturquoise: "0xAFEEEE",
		palevioletred: "0xDB7093",
		papayawhip: "0xFFEFD5",
		peachpuff: "0xFFDAB9",
		peru: "0xCD853F",
		ink: "0xFFC0CB",
		plum: "0xDDA0DD",
		powderblue: "0xB0E0E6",
		purple: "0x800080",
		red: "0xFF0000",
		rosybrown: "0xBC8F8F",
		royalblue: "0x4169E1",
		saddlebrown: "0x8B4513",
		salmon: "0xFA8072",
		sandybrown: "0xF4A460",
		seagreen: "0x2E8B57",
		seashell: "0xFFF5EE",
		sienna: "0xA0522D",
		silver: "0xC0C0C0",
		skyblue: "0x87CEEB",
		slateblue: "0x6A5ACD",
		slategray: "0x708090",
		snow: "0xFFFAFA",
		springgreen: "0x00FF7F",
		steelblue: "0x4682B4",
		tan: "0xD2B48C",
		teal: "0x008080",
		thistle: "0xD8BFD8",
		tomato: "0xFF6347",
		turquoise: "0x40E0D0",
		violet: "0xEE82EE",
		wheat: "0xF5DEB3",
		white: "0xFFFFFF",
		whitesmoke: "0xF5F5F5",
		yellow: "0xFFFF00",
		yellowgreen: "0x9ACD32"
	};
	
	var color = $.trim($(this).css(prop));

	if (tuples = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
		result = '0x' + (('0' + parseInt(tuples[1]).toString(16)).substr(-2) + ('0' + parseInt(tuples[2]).toString(16)).substr(-2) + ('0' + parseInt(tuples[3]).toString(16)).substr(-2)).toUpperCase();

	if (tuples = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
		result = '0x' + (('0' + (tuples[1] * 2.55).toString(16)).substr(-2) + ('0' + (tuples[2] * 2.55).toString(16)).substr(-2) + ('0' + (tuples[3] * 2.55).toString(16)).substr(-2)).toUpperCase();

	if (tuples = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
		result = '0x' + (tuples[1] + tuples[1] + tuples[2] + tuples[2] + tuples[3] + tuples[3]).toUpperCase();

	if (tuples = /#([a-fA-F0-9]{2}[a-fA-F0-9]{2}[a-fA-F0-9]{2})/.exec(color))
		result = '0x' + tuples[1].toUpperCase();

	if (colors[color.toLowerCase()])
		result = colors[color.toLowerCase()];
		
	return result;
};
})(jQuery);

$(document).ready(function() {
	try {document.execCommand("BackgroundImageCache",  false,  true);} catch(err) {}
	
	$.ga.load('UA-10429294-1');
	
	$('a[rel=external]').attr('target',  '_blank');
	
	var lang = $('html').attr('lang');
	var repository = eval(lang);
	
	$.each(repository.images,  function(i) {
		repository.images[i] = new Image();
		repository.images[i].src = this;
	});
	
	var color = $('strong').getColor('color');

	$('#imap dt a')
	.hover(function() {
		$('#imap dd a').stop().fadeTo(250, 0.66);
	}, function() {
		$('#imap dd a').stop().fadeTo(250, 0);
	});
	
	$('#imap dd a')
	.css('opacity', 0)
	.hover(function() {
		$(this).stop().fadeTo(250, 0.66);
	}, function() {
		$(this).stop().fadeTo(250, 0);
	})
	.click(function() {
		var URL = '/video/flv/' + $('#video').attr('class').split(' ')[0] + this.rel + '.flv';
		$('#video').flash(function() { this.SetVideo(URL); });
	});

	$('#ipapage, #foggiapage, #conservierasudpage')
	.find('#scroll')
	.after('<div id="slide" class="down"><a href="javascript:;" title="' + repository.messages.slidedown + '">' + repository.messages.slidedown + '</a></div>')
	.parent()
	.hover(function() { 
		$(this).addClass('over').children('#slide').fadeIn(); 
	}, function() { 
		$(this).removeClass().children('#slide').fadeOut(); 
	});

	$('#slide a').click(function() {
		$('#text.over #slide').fadeOut('normal', function() { 
			$(this)
			.toggleClass('down')
			.toggleClass('up')
			.find('a')
			.attr('title', repository.messages['slide' + ($('#slide').attr('class'))])
			.text(repository.messages['slide' + ($('#slide').attr('class'))]);
		});													 
		$('#scroll').not(':animated').animate({top: '-=' + (($('#scroll').position().top || $('#scroll').height() - $('#text').height())) + 'px'}, 1000, 'swing', function() { 
			$('#text.over #slide').fadeIn('normal');
		});
	});
	
	var gallery = [{src: '2.jpg', link: '2.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '18.jpg', link: '18.jpg', rel: 'gallery', title: '', alt: ''},
				   {src: '21.jpg', link: '21.jpg', rel: 'gallery', title: '', alt: ''},
				   {src: '27.jpg', link: '27.jpg', rel: 'gallery', title: '', alt: ''},
				   {src: '55.jpg', link: '55.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '63.jpg', link: '63.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '64.jpg', link: '64.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '67.jpg', link: '67.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '70.jpg', link: '70.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '81.jpg', link: '81.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '88.jpg', link: '88.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '95.jpg', link: '95.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '102.jpg', link: '102.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '106.jpg', link: '106.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '111.jpg', link: '111.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '114.jpg', link: '114.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '119.jpg', link: '119.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '131.jpg', link: '131.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '137.jpg', link: '137.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '138.jpg', link: '138.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '148.jpg', link: '148.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '168.jpg', link: '168.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '190.jpg', link: '190.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '195.jpg', link: '195.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '198.jpg', link: '198.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '199.jpg', link: '199.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '201.jpg', link: '201.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '202.jpg', link: '202.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '205.jpg', link: '205.jpg', rel: 'gallery', title: '', alt: ''}, 
				   {src: '213.jpg', link: '213.jpg', rel: 'gallery', title: '', alt: ''}];
				   
	var linkURL = '/img/gallery/' + $('#gallery').attr('class') + '/';
	var srcURL = '/img/gallery/' + $('#gallery').attr('class') + '/thn/';
	var active = null;
	var index = 0;

	var fade = function(element) {
		active.addClass('last');	
		
		element
		.css({opacity: 0})
		.addClass('active')
		.fadeTo(500, 1, function() {
			active.removeClass('active last');
		});
	}
	
	var load = function(callback) {
		var img = new Image();

		$(img)
		.load(function() {
			window.setTimeout(callback, 100);
		})
		.attr('src', srcURL + gallery[index].src);	
	}
	
	var item = function(index) {
		var img = '<img src="' + srcURL + gallery[index].src + '" alt="' + gallery[index].alt + '" />';
		var a = '<a href="' + linkURL + gallery[index].link + '" title="' + gallery[index].title + '" rel="' + gallery[index].rel + '[' + index + ']' + '">' + img + '</a>';
		
		return '<li>' + a + '</li>';
	};
	
	$('#next a').live('click', function() {
		active = $('#gallery li.active');

		if (!active.length)
			active = $('#gallery li:first').addClass('active');
			
		var next = active.next();
		
		if (next.length) {
			index++;

			if (index != next.children('a').attr('rel').match(/\d+/g)[0]) {
				load(function () {
					active.after(item(index));
					fade(active.next());
				});			
			}
			else
				fade(next);
		}
		else {
			if (index >= gallery.length - 1) {
				index = 0;
				fade($('#gallery li:first'));
			}
			else {
				index++;

				load(function () {
					active.after(item(index));
					fade(active.next());
				});
			}
		}
	});
	
	$('#prev a').live('click', function() {
		active = $('#gallery li.active');
	
		if (!active.length)
			active = $('#gallery li:first').addClass('active');
			
		var prev = active.prev();
		
		if (prev.length) {
			index--;
			
			if (index != prev.children('a').attr('rel').match(/\d+/g)[0]) {
				load(function () {
					active.before(item(index));
					fade(active.prev());
				});			
			}
			else
				fade(prev);
		}
		else {
			index = gallery.length - 1;
			
			if ($('#gallery li').length < gallery.length) {
				load(function () {
					$('#gallery li:last').after(item(index));
					fade($('#gallery li:last'));
				});
			}
			else
				fade($('#gallery li:last'));
		}
	});
	
	$('#gallery')
	.append('<ul>' + item(0) + '</ul>')
	.append('<div id="prev"><a href="javascript:;" title="' + repository.messages.prev + '">' + repository.messages.prev + '</a></div>')
	.append('<div id="next"><a href="javascript:;" title="' + repository.messages.next + '">' + repository.messages.next + '</a></div>');
	
	$('#gallery a[rel^="gallery"]').live('click', function(e) {	
		var src = $(this).attr('href');
		
		e.preventDefault();

		$(this)
		.addClass('view')
		.blur();

		$('body').append('<div id="overlay"></div><div id="box"><div id="loader"><img src="/img/loading.gif" alt="" /></div><div id="image"></img></div>');

		$('#overlay')
		.css({opacity: 0}).fadeTo(500, 0.5, function() {
			$(this).click(function() {
				$('#box').fadeTo(500, 0, function(){
					$(this).remove();
					
					$('#overlay').fadeTo(500, 0, function(){
						$(this).remove();
					});
					
					$('#gallery a').removeClass('view');
					
					$(document).unbind('keydown');
				});
			});
			
			$(document).keydown(function(e) {
				if (e.keyCode == 27) 
					$('#overlay').trigger('click');
			});
			
			$('#box').fadeIn(500, function() {
				var img = new Image();

				$(img)
				.load(function() {
					$('#loader').fadeOut(function() {
						window.setTimeout(function() {
							$('#image').append(img);
	
							var w = img.width;
							var h = img.height;
							
							var t = parseInt($('#image').css('paddingTop'));
							var b = parseInt($('#image').css('paddingBottom'));
							var l = parseInt($('#image').css('paddingLeft'));							
							var r = parseInt($('#image').css('paddingRight'));

							$('#box').animate({width: w+l+r, height: h+t+b, marginLeft: Math.round((-w-l-r)/2), marginTop: Math.round((-h-t-b)/2)}, 1000, function() {
								$('#image').fadeIn();
							});
						}, 100);
					});
				})
				.error(function(){
					$('#overlay').trigger('click');
				})
				.attr('src', src);
			});
		});
	});	
	
	$('#swapvideo').click(function() {
		$(this).parent().css({backgroundPosition: "0 0"});
		$('#gallery').hide();
		$('#video').show();
	});
	
	$('#swapimages').click(function() {
		$(this).parent().css({backgroundPosition: "100% 0"});
		$('#video').hide();
		$('#gallery').show();		
	});	
	
	$('#video').flash({
		swf: '/video/video.swf' , 
		width: 277, 
		height: 208,
		id: 'vo',		
		params: {
			wmode: 'transparent', 
			allowscriptaccess: 'always',  
			quality: 'high'
		},
		flashvars: {
			video: ('/video/flv/' + $('#video').attr('class') + '.flv'), 
			fullscreen: false, 
			logo: true, 
			color: color, 
			autoplay: true 
		}
	});

	$('#speech').flash({
		swf: '/audio/speech.swf' , 
		width: 25, 
		height: 25, 
		id: 'so',
		params: {
			wmode: 'transparent', 
			allowscriptaccess: 'always',  
			quality: 'high'
		},
		flashvars: {
			URL: ('/audio/' + lang + '/' + $('#speech').attr('class') + '.mp3'), 
			color: color, 
			autoplay: true
		}
	});

	$('#chart').flash({
		swf: '/charts/chart.swf' , 
		width: 277, 
		height: 277, 
		id: 'co',
		params: {
			wmode: 'transparent', 
			allowscriptaccess: 'always',
			quality: 'high'
		},
		flashvars: { URL: ('/charts/' + lang + '/' + $('#chart').attr('class') + '.swf')}
	});
	
	if ($.browser.msie && $.browser.version == '6.0') {
		$('body#homepage #primarynavigation span').css({backgroundImage: 'none',  filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="crop",  src="/img/homepage-primarynavigation.png")'});
		
		$('body#homepage')
		.find('#primarynavigation a')
		.each(function() {
			var image = $(this).css('backgroundImage').match(/^url\("(.*)"\)$/)[1];
			var filter = "DXImageTransform.Microsoft.AlphaImageLoader";
			
			$(this)
			.filter('a')
			.not('#ilgruppo,  #leaziende,  #imercati,  #logistica,  #qualita')
			.before($('<div>').css({position: 'absolute',  width: '136px',  height: '15px',  filter: 'progid:' + filter + '(sizingMethod="crop",  src="' + image + '")'}))
			.css({position: 'relative',  cursor: 'hand',  backgroundImage: 'none'})
			.hover(function() { 
				$(this).css({backgroundImage: 'url(' + image + ')',  backgroundPosition: '100% 0'}); 
			},  function() { 
				$(this).css('backgroundImage',  'none');
			});
		})
		.end()
		.find('#secondarynavigation a')
		.each(function() {
			var image = $(this).css('backgroundImage').match(/^url\("(.*)"\)$/)[1];
			var filter = "DXImageTransform.Microsoft.AlphaImageLoader";
			$(this).css({cursor: 'hand',  backgroundImage: 'none',  filter: 'progid:' + filter + '(sizingMethod="crop",  src="' + image + '")'});
		})		
		
		$('body:not(#homepage)')
		.find('#header h1,  #header h1 a,  #secondarynavigation ul,  #ilgruppomenu,  #leaziendemenu,  #imercatimenu,  #logisticamenu,  #qualitamenu,  #primarynavigation a')
		.each(function() {
			var filter = 'DXImageTransform.Microsoft.AlphaImageLoader';
			var image = $(this).css('backgroundImage').match(/^url\("(.*)"\)$/)[1];
			var width = $(this).css('width');
			var height = $(this).css('height');
			
			$(this)
			.not('[id$=menu]')
			.before($('<div>').css({position: 'absolute',  width: width,  height: height,  filter: 'progid:' + filter + '(src="' + image + '",  sizingMethod="crop")'}))
			.css({position: 'absolute',  backgroundImage: 'none'})
			.end()
			.filter('[id$=menu]')
			.css({backgroundImage: 'none',  filter: 'progid:' + filter + '(src="' + image + '",  sizingMethod="image")'})
			.end()
			.filter('a[id]')
			.hover(function() { 
				$(this).css({backgroundImage: 'url(' + image + ')',  backgroundPosition: '100% 0'}); 
			},  function() { 
				$(this).css({backgroundImage: 'none'});
			});
		});

		$('#primarynavigation ul>li')
		.mouseover(function() {
			$(this).addClass('over');
		})
		.mouseout(function() {
			$(this).removeClass();					  
		});
	}
	
	if ($('#new').length) setInterval(function(){$('#new').fadeTo(500, 0).fadeTo(500, 1)}, 1000);
});
