function updateAjax(id, url, parameter)
{
	new Ajax.Updater(id, url, parameter);
	
	return;
}

function updateMiniBasket(url, index)
{
	if(!index)
		index = '';

	var params = $('products' + index).serialize(true);

	return updateMiniBasketNative(url, params, index);
}

function updateMiniBasketFromSearch(url, my_products)
{
	var params = my_products.substr(my_products.indexOf("amount"), my_products.length);

	return updateMiniBasketNative(url, params);
}

function updateMiniBasketNative(url, params, index)
{
	if(!index)
		index = '';

	$('submit_order' + index).removeClassName('best');
	$('submit_order' + index).addClassName('wait');

	var hideAfter = false;
	$w($('minibasket').className).each(function(name){
		if(name == 'hideafter')
		{
			hideAfter = true;
		}
	});
		
	//Effect.Appear('minibasket', {duration: 0.0});
	new Ajax.Updater('minibasketcontainer', url, 
	{
		method: 'post',
		parameters: params,
		onComplete: function() 
		{
			if(hideAfter)
			{
				$('orderbutton').show();
				$('minibasket').addClassName('hideafter');
				$('minibasket').setStyle({border: '1px solid red'});
			}
			else
			{
				if($('tourmaline') || $('dummyimg'))
					window.scrollTo(0, 0);
				else
					window.scrollTo(0, 400);
			}

			if($('turmalinbasket'))
				$('turmalinbasket').show();
			
			new Effect.Pulsate('minibasket');

			$('submit_order' + index).removeClassName('wait');
			$('submit_order' + index).addClassName('best');
			
			if($('minidetailcontainer' + index) && !$('donthide'))
			{
				$('minidetailcontainer' + index).hide();
			}
			
			if(hideAfter)
			{
				new Effect.Fade('minibasket', {delay: 3.0, queue: 'end'});
				$('basketbutton').show();
			}
		}
	});

	return;
}

function getProductDetails(url, index)
{
	if(!index)
		index = '';
		
    var container = $('minidetailcontainer' + index);
    var detail = $('detail' + index);
    var waitimg = $('waitimg' + index);

	container.show();
	if(detail)
		detail.hide();
	waitimg.show();
	
	new Ajax.Updater(container, url, 
	{
		method: 'post',
		onComplete: function(transport) 
		{
			$('waitimg' + index).hide();
			$('detail' + index).show();		
		}
	});

	return;
}

function getProductDetailsTurmalin(obj, url)
{
	var newPos = document.viewport.getScrollOffsets(obj);//$(obj).cumulativeOffset();
	var newy = newPos[1] + (document.viewport.getHeight() / 2) - 200;
	
	var newTop = newy + 'px';
	$('minidetailcontainer').setStyle({top: newTop});
	$('minidetailcontainer').show();
	if($('detail'))
		$('detail').hide();
	$('waitimg').show();
	
	new Ajax.Updater('minidetailcontainer', url, 
	{
		method: 'post',
		onComplete: function(transport) 
		{
			$('waitimg').hide();
			$('detail').show();		
		}
	});

	return;
}

function getOrderInfo(id)
{
	$('minidetailcontainer').show();
	if($('detail'))
		$('detail').hide();
	$('waitimg').show();
	
	new Ajax.Updater('minidetailcontainer', '/shop/orderinfo', 
	{
		method: 'post',
		onComplete: function(transport) 
		{
			$('waitimg').hide();
			$('detail').show();		
		}
	});

	return;
}

function getOrderInfoTurmalin(obj, id)
{
	var newPos = document.viewport.getScrollOffsets(obj);//$(obj).cumulativeOffset();
	var newy = newPos[1] + (document.viewport.getHeight() / 2) - 200;
	
	var newTop = newy + 'px';
	$('minidetailcontainer').setStyle({top: newTop});
	$('minidetailcontainer').show();
	if($('detail'))
		$('detail').hide();
	$('waitimg').show();
	
	new Ajax.Updater('minidetailcontainer', '/shop/orderinfo', 
	{
		method: 'post',
		onComplete: function(transport) 
		{
			$('waitimg').hide();
			$('detail').show();		
		}
	});

	return;
}

function hideMiniDetailContainer()
{
	$('detail').hide();		
	$('waitimg').show();
	$('minidetailcontainer').hide();
	
	return;
}

// functions to show/hide the language selector
var inpopup = false;
var inlink = false;
var preloaded = new Hash();

Event.observe(window, 'load', function() {
  
  // language selector
  if($('languagelink'))
  {
	  Event.observe('languagelink', 'mouseover', toggleLangSelector);
	  Event.observe('languagelink', 'mouseout', toggleLangSelector);
	  Event.observe('language_popup', 'mouseover', toggleLangSelector);
	  Event.observe('language_popup', 'mouseout', toggleLangSelector);
	  
	  Event.observe('dropdown_h', 'mouseover', toggleLanguage);
	  Event.observe('dropdown_h', 'mouseout', toggleLanguage);

	  //Event.observe('country_dropdown_h', 'mouseover', toggleLanguage);
	  //Event.observe('country_dropdown_h', 'mouseout', toggleLanguage);
  }

  if($('dropdown'))
  {
	  Event.observe('dropdown', 'mouseover', toggleLanguage);
	  Event.observe('dropdown', 'mouseout', toggleLanguage);

	  //Event.observe('country_dropdown', 'mouseover', toggleLanguage);
	  //Event.observe('country_dropdown', 'mouseout', toggleLanguage);
  }
  
  //setTimeout('preloadImages()', 8000);
  
});

function preloadImages()
{
  	// image preloader for product list
  	var images_mini = $$('img.js_product_mini');
  	
  	images_mini.each(function(item)
  		{
  			var imagename = item.className.split(' ');
  			imagename = imagename[1];
  			if(preloaded.get(imagename) == undefined)
  			{
  				preloaded.set(imagename, new Image().src = '/images/products/medium/'+imagename+'_medium.jpg');
  			}
  		}
  	);
}

function toggleLangSelector(event)
{
	if(!event)
		return;
		
	var element = event.currentTarget;
	var newClass = 'active';

	if(event.type == 'mouseout')
	{
		newClass = '';
		
		var hiddenelements = $$('ul#dropdown_h li:[class=hiddenx]), ul#country_dropdown_h li:[class=hiddenx])');
		hiddenelements.each(function(item) {
			item.className = 'hidden';
		});
		
	}
		
	$('languagelink').className = newClass;
	$('language_popup').className = newClass;
}

function toggleLanguage(event)
{
	var element = Event.findElement(event, 'UL');

	oldClass = 'hidden';
	newClass = 'hiddenx';
			
	if(event.type == 'mouseout')
	{
		oldClass = 'hiddenx';
		newClass = 'hidden';
		
		
		if(Position.within(element, Event.pointerX(event), Event.pointerY(event)))
			return;

	  Event.observe('languagelink', 'mouseout', toggleLangSelector);
	  Event.observe('language_popup', 'mouseout', toggleLangSelector);

	}
	else
	{
	  Event.stopObserving('languagelink', 'mouseout', toggleLangSelector);
	  Event.stopObserving('language_popup', 'mouseout', toggleLangSelector);
	}
	
	

	var hiddenelements = $$('ul#' + element.id + ' li:[class=' + oldClass + '])');
	hiddenelements.each(function(item) {
		item.className = newClass;
	});
}

function bigImage(objname, imagename, startsize, endsize)
{
	if(!startsize)
		startsize = '50x50';
	if(!endsize)
		endsize = '300x300';
		
	// hide if already opened
	if($('bigproductimage').visible())
	{
		Event.stopObserving('bigproductimage', 'click', bigImageHide);
		$('bigimage').remove();
		$('bigproductimage').hide();
	}
	
	// get the position
	var obj = $(objname+'_'+startsize);
	var newPos = obj.cumulativeOffset();
	
	// sroll
	//obj.scrollTo();

	// new position
	var newx = newPos[0];
	var newy = newPos[1];
	$('bigproductimage').setStyle({left: newx+'px'});
	$('bigproductimage').setStyle({top: newy+'px'});
	// load new image and show afterwards	
	var srcname = preloaded.get(imagename);
	// if preload has not finished yet
	if(!srcname)
		srcname = '/images/shop/articles/'+endsize+'/'+imagename+'.png';
	var bigimage = new Element('img', { 'id': 'bigimage', 'src': srcname, 'style': 'vertical-align:middle;'});

	$('bigimagediv').insert(bigimage);
	Effect.Appear('bigproductimage', 
		{
			beforeStart: function()
			{
				if($('footer'))
				{
					$('footer').setStyle({zIndex: -1});
				}
			},
			afterFinish: function()
			{
				Event.observe('bigproductimage', 'click', bigImageHide)
			}
		}
	);
			
}

function bigImageHide()
{
	Event.stopObserving('bigproductimage', 'click', bigImageHide);
	
	Effect.Fade('bigproductimage',
	{
		afterFinish: function(){
			$('bigimage').remove();	
			if($('footer'))
			{
				$('footer').setStyle({zIndex: 0});
			}
		}
	});
	
}

function checkPartnerUrl(url)
{
	var url = url+$('field_webshopurl').value;
	new Ajax.Request(url, {
			  method: 'get',
			  onSuccess: function(transport) {
			  	if(transport.responseText.strip() != '1')
			  	{
		  			$('field_webshopurl').setStyle({borderColor: 'red'});
		  			$('field_webshopurl_error').update(transport.responseText);
		  			$('field_webshopurl_error').show();
			  	}
			  	else
			  	{
		  			$('field_webshopurl').setStyle({borderColor: ''});
			  		$('order_form').action = '';
			  		$('order_form').submit();
			  	}
			  	
			    
			  }
			}
	);
	
	return;
//(input.value);
}

function wopen (url,width,height)
{
	newin=window.open(url, 'detail', 'location=no,menubar=no,scrollbars=yes,status=no,titlebar=yes,toolbar=no,resizable=no,width='+width+',height='+height);
	newin.focus();
}

function getProductSearch(url, updatebasket, document_location, basket_url)
{
	var container = 'minibasketcontainer';

	new Ajax.Updater(container, url, 
	{
		method: 'post',
		parameters: Form.serialize(document.Searchform),
		onComplete: function(transport) 
		{
		}
	});

	if (updatebasket)
	{		
		updateMiniBasketFromSearch(basket_url, Form.serialize(document.Searchform));
					
		var url_elements = document_location.split('/');

		for (i = 0; i < url_elements.length; i++) 
		{
			if	(url_elements[i].match('basket'))
			{					
				updateMiniBasketFromSearch(basket_url, Form.serialize(document.Searchform));
				setTimeout("window.location.reload();",3000);			
				return;
			}
		}
	}

	return;
}
