	function LoadWikipedia(language, catId) {
		$('ajax_wikipedia').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';

		var data = $H({
			'ln': language
			, 'c': catId
		}).toQueryString();
		new Ajax.Updater('ajax_wikipedia', '/ajax_getWikipedia.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	

	function LoadUser(language, userId) {
		$('ajax_user').innerHTML = '<img src="/images/ajax-loader-01.gif" alt="" />';

		var data = $H({
			'ln': language
			, 'u': userId
		}).toQueryString();
		new Ajax.Updater('ajax_user', '/ajax_getUser.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	
	function LoadTopTen(language, catId, caller) {
		$('ajax_topten').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';

		var data = $H({
			'ln': language
			, 'c': catId
			, 'caller': caller
		}).toQueryString();
		new Ajax.Updater('ajax_topten', '/ajax_getTopTen.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	

	function LoadNew(language, catId, caller) {
		$('ajax_new').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';

		var data = $H({
			'ln': language
			, 'c': catId
			, 'caller': caller
		}).toQueryString();
		new Ajax.Updater('ajax_new', '/ajax_getNew.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	
	function LoadFeatured(language, catId, caller) {
		$('ajax_featured').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';

		var data = $H({
			'ln': language
			, 'c': catId
			, 'caller': caller
		}).toQueryString();
		new Ajax.Updater('ajax_featured', '/ajax_getFeatured.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	
	function LoadOffers(language, catId, num) {
		$('ajax_offers').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';

		var data = $H({
			'ln': language
			, 'c': catId
			, 'n': num
		}).toQueryString();
		new Ajax.Updater('ajax_offers', '/ajax_getOffers.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	
	function LoadOffersTop(language) {
		$('ajax_offertop').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';

		var data = $H({
			'ln': language
		}).toQueryString();
		new Ajax.Updater('ajax_offertop', '/ajax_getOffersTop.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
/* ******************************************************
	DOWNLOAD
	*****************************************************/
	
	function LoadFiltersDownload(language, query) {
		$('ajax_filters').innerHTML = '<img src="/images/ajax-loader-02b.gif" alt="" />';

		var data = $H({
			'ln': language
			, 'q': query
		}).toQueryString();
		new Ajax.Updater('ajax_filters', '/ajax_getFiltersDownload.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	
	function FilterDownload(type, value, language, pageId) {
		$('ajax_download').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';
		
		var query = $F('download_query');
		var filters = new Array(5);
		if (query.length>0 && query!='_') filters = query.split('|');
		
		if (type=='os') filters[1] = value;
		if (type=='type') filters[2] = value;
		if (type=='brand') filters[4] = value;
		$('download_query').value = filters.join('|');
		
		var data = $H({
			'ln': language
			, 'id': pageId
			, 'q': $F('download_query').replace('|', '_')
			, 'p': 1
		}).toQueryString();
		new Ajax.Updater('ajax_download', '/ajax_getDownload.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
		
		LoadFiltersDownload(language, $F('download_query'));
	}
	
			
/* ******************************************************
	CATALOGO
	*****************************************************/

	function LoadCatalog(language, catId) {
		$('ajax_catalog').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';

		var data = $H({
			'ln': language
			, 'c': catId
		}).toQueryString();
		new Ajax.Updater('ajax_catalog', '/ajax_getCatalog.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}


	function LoadFilters(language, catId, query) {
		$('ajax_filters').innerHTML = '<img src="/images/ajax-loader-02b.gif" alt="" />';

		var data = $H({
			'ln': language
			, 'c': catId
			, 'q': query
		}).toQueryString();
		new Ajax.Updater('ajax_filters', '/ajax_getFilters.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	
	function ChangeOrder(orderOption, language, pageId, catId) {
		$('ajax_products').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';
		
		var data = $H({
			'ln': language
			, 'id': pageId
			, 'c': catId
			, 'q': $F('catalog_query').replace('|', '_')
			, 'ord': orderOption
			, 'p': 1
		}).toQueryString();
		new Ajax.Updater('ajax_products', '/ajax_getProducts.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	
	function ChangeView(viewOption, language, pageId, catId) {
		$('ajax_products').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';
		
		var data = $H({
			'ln': language
			, 'id': pageId
			, 'c': catId
			, 'q': $F('catalog_query').replace('|', '_')
			, 'view': viewOption
			, 'p': 1
		}).toQueryString();
		new Ajax.Updater('ajax_products', '/ajax_getProducts.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	
	function FilterProducts(type, value, language, pageId, catId) {
		$('ajax_products').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';
		
		var query = $F('catalog_query');
		var filters = new Array(5);
		if (query.length>0 && query!='_') filters = query.split('|');
		
		if (type=='brand') {filters[1] = value; /*filters[4] = '';*/}
		if (type=='chars') {filters[2] = value; /*filters[4] = '';*/}
		if (type=='option') {filters[3] = value; /*filters[4] = '';*/}
		if (type=='prices') filters[4] = value;
		$('catalog_query').value = filters.join('|');
		
		var data = $H({
			'ln': language
			, 'id': pageId
			, 'c': catId
			, 'q': $F('catalog_query').replace('|', '_')
			, 'ord': ''
			, 'p': 1
		}).toQueryString();
		new Ajax.Updater('ajax_products', '/ajax_getProducts.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
		
		LoadFilters(language, catId, $F('catalog_query'));
	}
	
	
	function SetCharFilter(language, catId, id) {
		GB_showCenter('', '/ajax_getCharacteristics.aspx?ln='+language+'&c='+catId+'&char='+id, 300, 200);
	}
	
/* ******************************************************
	CARRELLO
	*****************************************************/
	
	function UpdateCart(language, itemIndex, item, qtyNew) {
		if (arguments.length>0) {
			$('item_n'+itemIndex).getElementsByClassName('cart_update')[0].hide();
			$('item_n'+itemIndex).getElementsByClassName('cart_loader')[0].show();
			var qty = $('item_n'+itemIndex).getElementsByClassName('item_value')[0].value;
			if (qtyNew=='up') qty = parseInt(qty)+1;
			if (qtyNew=='down' && parseInt(qty)>1) qty = parseInt(qty)-1;
			
			var data = $H({
				'ln': language
				, 'index': itemIndex
				, 'item': item
				, 'qty': qty
			}).toQueryString();
			new Ajax.Updater('ajax_cart', '/ajax_cart.aspx',
				{
					method:'get',
					parameters: data,
					evalScripts: true
				}
			);
		}
	}
	
	function UpdateCartPrice(language) {
		var price = parseInt($('cart_price').value.replace(',', '').replace('.', ''));
		var priceDelivery = parseInt($('cart_price_delivery').value.replace(',', '').replace('.', ''));
		var pricePayment = parseInt($('cart_price_payment').value.replace(',', '').replace('.', ''));
		var priceTot = (price+priceDelivery+pricePayment).toString();
		
		var html = '';
		var decimalLetter = ',';
		if (language=='en') decimalLetter = '.';
		var separatorLetter = '.';
		if (language=='en') separatorLetter = ',';
		
		for (var i=priceTot.length-1; i>=0; i--) {
			if (i>=priceTot.length-2) { // decimals
				html = priceTot.charAt(i)+html;
			}
			else if (i==priceTot.length-3) { // first digit
				html = priceTot.charAt(i)+decimalLetter+html;
			}
/*
			else if ((i-3) % 3==0) { // separator
				html = priceTot.charAt(i)+separatorLetter+html;
			}
*/
			else { // separator
				html = priceTot.charAt(i)+html;
			}
		}
		
		$('order_pricetot').innerHTML = '&euro; '+html;
		$('order_price').value = html;
	}
	
	function ChangeDeliveryCountry(language, country) {
		$('ajax_delivery').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';
		
		var data = $H({
			'ln': language
			, 'ctry': country
		}).toQueryString();
		new Ajax.Updater('ajax_delivery', '/ajax_getDelivery.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	function ChangeDeliveryDetails(language, delivery) {
		$('ajax_deliverydetails').innerHTML = '<img src="/images/ajax-loader-01.gif" alt="" />';
		
		var data = $H({
			'ln': language
			, 'd': delivery
		}).toQueryString();
		new Ajax.Updater('ajax_deliverydetails', '/ajax_getDeliveryDetails.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	function ListPayments(language) {
		$('ajax_payments').innerHTML = '<img src="/images/ajax-loader-02.gif" alt="" />';
		
		var data = $H({
			'ln': language
		}).toQueryString();
		new Ajax.Updater('ajax_payments', '/ajax_getPayment.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
	
	function ChangePaymentDetails(language, payment) {
		$('ajax_paymentdetails').innerHTML = '<img src="/images/ajax-loader-01.gif" alt="" />';
		
		var data = $H({
			'ln': language
			, 'pay': payment
		}).toQueryString();
		new Ajax.Updater('ajax_paymentdetails', '/ajax_getPaymentDetails.aspx',
			{
				method:'get',
				parameters: data,
				evalScripts: true
			}
		);
	}
