/// START ////
window.addEvent('load', function() {
	$$('.highlight li').each( function(item,i) {
		item.img = item.getElement('img');
		item.dida = item.getElement('.highlight-title');
		item.size = item.img.getSize();
		item.fx = new Fx.Morph(item.img, {'duration': 'normal', 'fps': 100, 'unit': 'px', 'link': 'cancel', 'transition': Fx.Transitions.Bounce.easeOut});
		item.fx.set({
			'width': item.size.x * .80,
			'height': item.size.y * .80,
			//'margin-left': 0,
			'margin-top': item.size.y * .20
		});
		
		if (item.dida)
			item.dida.set('styles', {'opacity': 0});
		
		item.addEvent('mouseenter', function(item) {
			item.fx.start({
				'width': item.size.x,
				'height': item.size.y,
				//'margin-left': (item.size.x * .20),
				'margin-top': 0
			});
			if (item.dida)
				item.dida.fade('in');
		}.pass(item) );
		item.addEvent('mouseleave', function(item) {
			item.fx.start({
				'width': item.size.x * .80,
				'height': item.size.y * .80,
				//'margin-left': 0,
				'margin-top': item.size.y * .20
			});
			if (item.dida)
				item.dida.fade('out');
		}.pass(item) );
	});
	
	
	
	
	
	
	
	
	var total = $('total');
	if (total)
	{
		var add = $$('.add');
		var calculate = $$('.calculate');
		var selects = $$('.estore-product-option select');
		var qty = $$('.estore-product');
		for (var i=0; i<calculate.length; i++)
		{
			if (calculate[i].get('type') == 'radio')
			{
				calculate[i].addEvent('click', calculateTotal.pass([calculate, total]) );
				if (calculate[i].hasClass('disabled'))
				{
					calculate[i].setStyles({'position': 'absolute', 'z-index': -1, 'visibility': 'hidden'});
					calculate[i].addEvent('change', parseSpedizioni );
				}
			}
			else
			{
				calculate[i].addEvent('keyup', function( calculate, total, i ) { calculateTotal(calculate, total); }.pass([calculate, total, i]) ); // addProduct( calculate[i] );
				products[ products.length ] = calculate[i];
			}
		}
		for (var i=0; i<add.length; i++)
		{
			add[i].addEvent('click', function(item, input) {
				input.set('value', parseInt( input.get('value') ) + 1 );
				addProduct( input ); 
				input.fireEvent('keyup');
			}.pass([ add[i], calculate[i] ]) );
		}
		
		for (var i=0; i<qty.length; i++)
		{
			
			var t = qty[i].getElement('.estore-product-table');
			if (t)
			{
				// $$('body')[0].adopt( t );
				var pos = qty[i].getPosition( $$('body')[0] );
				var size = qty[i].getSize();
				t.setStyles({'display': 'none', 'left': pos.x + size.x, 'top': pos.y + 20});
				t.inject( $$('body')[0], 'top' );
				qty[i].table = t;
			}
			qty[i].addEvent('mouseenter', function(item) {
				var pos = item.getPosition();
				if ( (Browser.Engine.name == 'trident') && (Browser.Engine.version == 4) )
					var scroll = document.getScroll();
				else
					var scroll = { x: 0, y: 0 }
				var size = item.getSize();
				if (item.table) item.table.setStyles({'display': 'block', 'left': pos.x + size.x, 'top': pos.y + scroll.y + 20});
			}.pass(qty[i]) );
			qty[i].addEvent('mouseleave', function(item) {
				if (item.table) item.table.setStyle('display', 'none');
			}.pass(qty[i]) );
		}
		
		if (selects.length > 0)
		{
			for (var i=0; i<selects.length; i++)
			{
				selects[i].addEvent('change', function(el) {
					// change img
					var soptions = el.getElements('option');
					for (var k=0; k<soptions.length; k++)
					{
						if (soptions[k].get('selected') && (soptions[k].get('rel').length > 0) )
						{
							var img = el.getParent('.estore-product').getElement('.estore-product-img img');
							img.set('src', soptions[k].get('rel') );
						}
					}
				}.pass(selects[i]) );
			}
		}
		parseSpedizioni();
		calculateTotal( calculate, total );
	}
} );



window.addEvent('domready', function() {
	
	document.addEvent('contextmenu', function(e) {
		new Event(e).stop();
	} );
	
	$$('.tabs').each( function(item,i) {
		item.index = 0;
		item.togglers = item.getElements('.toggler');
		item.blocks = item.getElements('.block');
		item.links = [];
		
		item.links_box = new Element('div', {'class': 'tabs-links'}).inject( $('prodotto-tabs'), 'top' );
		for (var i=0; i < item.togglers.length; i++)
		{
			item.links[i] = new Element('a', {'href': 'javascript:;'}).set('html', item.togglers[i].get('html') ).inject( item.links_box );
			item.links[i].addEvent('click', function(item,i) {
				openTab( item, i );
			}.pass([item,i]) );
		}
		item.togglers.dispose();
		openTab( item, item.index );
	});
	
	$$('.over').each( function(item,i) {
		var row = item.getParent('tr');
		row.addEvent('click', function(item) { self.location.href = item.get('href'); }.pass(item) );
	});
	
	$$('.relabel').each( function(obj,i) {
		var frm = obj.getParent('form');
		var labels = frm.getElements('label');
		for (var i=0; i<labels.length; i++)
		{
			if (labels[i].get('for') == obj.get('id'))
				obj.defaultValue = labels[i].get('html');
		}
		obj.set('value', obj.defaultValue);
		if (obj.get('name') == 'password')
			obj.set('type', 'text');
		obj.addEvent('focus', function(obj) {
			if (obj.get('value') == obj.defaultValue)
				obj.set('value', '');
			if (obj.get('name') == 'password')
				obj.set('type', 'password');
		}.pass(obj, this) );
		obj.addEvent('blur', function(obj) {
			if (obj.get('value') == '')
			{
				obj.set('value', obj.defaultValue);
				if (obj.get('name') == 'password')
					obj.set('type', 'text');
			}
		}.pass(obj, this) );
	});
	
	$$('.open-block').each( function(item,i) {
		item.block = $(item.get('rel'));
		item.block.set('title', 'Clicca per chiudere');
		item.block.setStyle('display', 'none');
		item.addEvent('click', function(item) {
			item.block.setStyle('display', 'block');
		}.pass(item));
		item.block.addEvent('click', function(item) {
			item.block.setStyle('display', 'none');
		}.pass(item));
	});
	
	var cap = $('cap');
	if (cap)
		cap.addEvent('change', parseSpedizioni );
	
	var country = $('id_country');
	if (country)
	{
		country.addEvent('change', function(country) {
			var fields = $$('.address-fields');
			
			fields.each( function(el) {
				if (country.get('value') == 199)
				{
					el.setStyle('display', ( (el.tagName == 'SPAN') ? 'inline' : 'block') );
				}
				else
				{
					el.setStyle('display', 'none');
				}
			} );
		}.pass(country) );
	}
	
	var prov = $('address_prov');
	if (prov)
	{
		prov.addEvent('change', parseSpedizioni );
		prov.addEvent('change', function(prov) {
			var comune = $('address_city');
			var prov = prov.get('value');
			comune.length = 0;
			new Element('option', {'text': '-------------', 'value': ''}).inject( comune );
			for (var i=0; i<comuni.length; i++)
				if (comuni[i][1] == prov)
					new Element('option', {'text': comuni[i][0], 'value': comuni[i][0]}).inject( comune );
			
		}.pass(prov) );
	}
	
	var comune = $('address_city');
	if (comune)
	{
		comune.addEvent('change', function(comune) {
			var cap = $('cap');
			var com = comune.get('value');
			cap.length = 0;
			new Element('option', {'text': '-------------', 'value': ''}).inject( cap );
			for (var i=0; i<comuni.length; i++)
				if (comuni[i][0] == com)
					for (var k=0; k<comuni[i][2].length; k++)
						new Element('option', {'text': comuni[i][2][k], 'value': comuni[i][2][k]}).inject( cap );
		}.pass(comune) );
	
	}
	
	
	
});

function addProduct( item )
{
	if (parseInt(item.get('value')) == 0)
		return;
	
	var box = item.getParent('.estore-product');
	var container = box.getElement('.estore-product-adds');
	var selects = box.getElements('select');
	if (selects.length == 0)
		return;
	
	var keys = [];
	var values = [];
	var inpname = ['id_'+item.get('rel')];
	for (var i=0; i<selects.length; i++)
	{
		var k = selects[i].get('rel');
		var v = selects[i].get('value');
		keys[ keys.length ] = k;
		values[ values.length ] = v;
		inpname[ inpname.length ] = k + '_' + v;
	}
	var id = 'gadget-add-qty_'+inpname.join('|');
	var input = $(id);
	if (input)
	{
		input.set('value', parseInt(input.get('value')) + 1);
	}
	else
	{
		item.set('disabled', true);
		var rem = new Element('a', {'href': 'javascript:;', 'class': 'estore-product-adds-item-remove', 'id': id + '_remove' } )
			.set('html', '<img src="templates/images/icons/remove.gif" />')
			.addEvent('click', function(input, id) {
				removeProduct(box.getElement('.estore-product-qty input'), id)
			}.pass([input, id]) )
			.inject( container );
	
		var inp = new Element('input', {'type': 'text', 'name': 'gadget-add-qty['+inpname.join('|')+']', 'id': id, 'value': '1', 'class': 'estore-product-adds-item-qty'} )
			.addEvent('keyup', function() {
				updateProduct(box.getElement('.estore-product-qty input'), container.getElements('.estore-product-adds-item-qty') )
			} )
			.inject( container );
		
		var row = new Element('div', {'class': 'estore-product-adds-item-label', 'id': id + '_label'} ).inject( container );
		for (var i=0; i<keys.length; i++)
		{
			var html = row.get('html');
			row.set('html', html + '<em>'+keys[i]+':</em> <strong>'+values[i] + '</strong> ');
		}
		
		var cpx = new Element('div', {'class': 'clear-px', 'html': '&nbsp;', 'id': id + '_cpx'}).inject( container );
	}
}

function updateProduct( input, qtys )
{
	var sum = 0;
	for (var i=0; i<qtys.length; i++)
		sum += parseInt( qtys[i].get('value') );
	input.set('value', sum);
	input.fireEvent('keyup');
}

function removeProduct( input, id )
{
	var subqty = $(id);
	var rem = $(id + '_remove');
	var label = $(id + '_label');
	var cpx = $(id + '_cpx');
	var val = subqty.get('value');
	subqty.dispose();
	rem.dispose();
	label.dispose();
	cpx.dispose();
	
	input.set('value', parseInt(input.get('value')) - val);
	input.set('disabled', false);
	input.fireEvent('keyup');
}

function parseSpedizioni( )
{
	var spedizione_1 = $('spedizione_1');
	var spedizione_2 = $('spedizione_2');
	var spedizione_3 = $('spedizione_3');
	var spedizione_label_1 = $('spedizione_block_1');
	var spedizione_label_2 = $('spedizione_block_2');
	var spedizione_label_3 = $('spedizione_block_3');
	spedizione_label_1.removeClass('spedizione-selected');
	spedizione_label_2.removeClass('spedizione-selected');
	spedizione_label_3.removeClass('spedizione-selected');
	
	var cap = $('cap');
	var found = false;
	for (var i=0; i<cap_dis.length; i++)
		if (cap.value == cap_dis[i])
			found = true;
	
	if (found)
	{
		spedizione_1.checked = true;
		spedizione_1.fireEvent('click');
		spedizione_label_1.addClass('spedizione-selected');
		return;
	}
	
	var prov = $('address_prov');
	var found = false;
	for (var i=0; i<prov_magg.length; i++)
		if (prov.get('value') == prov_magg[i])
			found = true;
	
	if (found)
	{
		spedizione_2.checked = true;
		spedizione_2.fireEvent('click');
		spedizione_label_2.addClass('spedizione-selected');
		return;
	}
	
	spedizione_3.checked = true;
	spedizione_3.fireEvent('click');
	spedizione_label_3.addClass('spedizione-selected');
	
	return;
}

function calculateShipping( )
{
	// calcola spedizioni
	var shipping = 0;
	for (var i=0; i<products.length; i++)
	{
		var pid = parseInt( products[i].get('rel') );
		var qty = parseInt( products[i].get('value') );
		for (var k=0; k<shippings.length; k++)
		{
			var s = shippings[k];
			if (s[0] == pid)
			{
				if ( (qty >= parseFloat( s[1] )) && ( (qty <= parseFloat( s[2] ) || !s[2] )) )
					if (parseFloat(s[3]) > shipping)
						shipping = parseFloat( s[3] );
			}
		}
	}
	var shippings_costs = $$('.shippings .calculate');
	var shippings_labels = $$('.shippings .shipping_label');
	for (var k=0; k<shippings_costs.length; k++)
	{
		var pt = shippings_costs[k].className.split(' ');
		shippings_labels[k].set('html', format( shipping + parseInt(pt[pt.length-1]) ) + ' &euro;' );
	}
	//$('spedizione_label_1').set('html', format(shipping) + ' &euro;' );
	
	$('shipping_cost').set('value', shipping);
	return shipping;
}

function calculateTotal(items, total)
{
	var sum = 0;
	var found = false;
	var products = 0;
	for (var k=0; k<items.length; k++)
		if ( (items[k].get('type') != 'radio') && (parseInt(items[k].get('value')) > 0) )
		{
			found = true;
			products += parseInt(items[k].get('value'));
		}
	
	if (found)
	{
		for (var k=0; k<items.length; k++)
		{
			var pt = items[k].className.split(' ');
			if (items[k].get('type') == 'radio')
			{
				if (items[k].get('checked') == true)
				{
					sum += parseFloat( pt[pt.length-1] );
					if (items[k].get('name') == 'shipping')
					{
						sum += calculateShipping();
					}
				}
			}
			else
			{
				var new_price = getPrice( items[k] );
				sum += new_price * items[k].value;
			}
		}
	}
	else
		sum = 0;
	
	total.set('html', format( sum ) );
	$('products').set('html', products);
}

function getPrice( item )
{
	var pid = parseInt( item.get('rel') );
	var qty = parseInt( item.get('value') );
	for (i=0; i<prices.length; i++)
	{
		if (prices[i][0] == pid)
		{
			for (var k=0; k<discounts.length; k++)
			{
				var d = discounts[k];
				if (d[0] == pid)
				{
					if ( (qty >= d[1]) && ((qty <= d[2]) || !d[2]) )
					{
						var discount = parseFloat( d[3] );
						var price = parseFloat( prices[i][1] );
						var return_price = d[4];
						//return price - price * discount / 100;
					}
				}
			}
			if (!return_price)
				var return_price = prices[i][1];
		}
	}
	var pinput = $('price_' + pid);
	if (pinput)
	{
		pinput.set('value', return_price);
		$('price_label_' + pid).set('html', '&euro; ' + format(return_price)/* + ' (IVA Inclusa)'*/);
	}
	return return_price;

}

function format( importo )
{
	if (isNaN(importo))
		return '0,00';
	else
	{
		importo = importo + '';
		var int = importo.substr(0, importo.indexOf('.'));
		if (int) {
			var dec = importo.substr(importo.indexOf('.')+1, 2);
			var totale = int + ',' + dec + (dec.length == 1 ? '0' : '');
		} else {
			var totale = importo + ',00';
		}
		return totale;
	}
}

function roundPrice( importo )
{
	if (isNaN(importo))
		return 0;
	else
	{
		importo = importo + '';
		var int = importo.substr(0, importo.indexOf('.'));
		if (int) {
			var dec = Math.ceil( parseFloat(importo.substr(importo.indexOf('.')+1, 2)) );
			var totale = int + '.' + dec + (dec.length == 1 ? '0' : '');
		} else {
			var totale = importo + '.00';
		}
		return parseFloat(totale);
	}
}

function openTab( item, index )
{
	for (var i=0; i<item.links.length; i++)
	{
		if (i == index)
		{
			item.links[i].addClass('tab-selected');
			item.blocks[i].setStyle('display', 'block');
		}
		else
		{
			item.links[i].removeClass('tab-selected');
			item.blocks[i].setStyle('display', 'none');
		}
	}
	item.index = index;
}

function openImg( el )
{
	var img = $(el).getElement('img');
	var size = document.getSize();
	var bigback = new Element('div', {'class': 'backimg'}).setStyles({'width': size.x, 'height': size.y, 'opacity': .6}).inject( $$('body')[0] );
	var bigbox = new Element('div', {'class': 'openimg'}).inject( $$('body')[0] );
	var bigimg = new Element('img', {'src': img.get('src').replace('_tn', '-detail') } ).inject( bigbox );
	var bigcaption = new Element('div', {'html': 'Clicca fuori dall\'immagine per tornare all\'E-store'}).inject( bigbox );
	
	bigback.addEvent('click', function() {
		bigback.dispose();
		bigbox.dispose();
	} );
}