// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

huidige_actie_code = null;

var previousDescription;

var Collection = false

//als deze aan staat werkt de log functie niet en krijgen users niet perongelijk overgebleven logs te zien
var logsafety = false


//kleur van het product dat is geselecteerd
var selected_color;



//scrolbar shoppingcart
mesure_cart_scrollbar = function(senToBottom)
{
	//of het mandje weer verstop moet worden
	var hide_object = false;
	
	
	//als de display niet of block staat en niet leeg is, de Effect animatie maakt hem namelijk leeg moeten we het object verstoppen
	if ($('cart_venster').style.display != 'block' && $('cart_venster').style.display != '') {
		hide_object=true;
		$('cart_venster').style.display = 'block';
	}	
	
	
	//shit uitrekenen
	
	//content 
	var docH = $("cart_scroll_content").offsetHeight;
	
	//overal holder
	var contH = $("cart_items").offsetHeight;
	
	
	var scrollAreaH = $("scrollbar_track").offsetHeight;

	
		var scrollH = (contH * scrollAreaH) / docH;
		if (scrollH < 15) 
			scrollH = 15;
			
		if (scrollH > contH)
			scrollH = contH;
			
		$("scrollbar_handle").style.height = Math.round(scrollH) + "px";
		
		
		var s = $("scrollbar_handle")
		
		var scrollDist = Math.round(scrollAreaH - scrollH);
		
		
		//als er niet gescrold hoeft te worden zetten we de draghoogte op 0 anders staat deze in de min
		if (scrollDist < 0 )
			scrollDist = 0;
		
		//drag van scrolbalk starten
		Drag.init(s, null, 0, 0, 0, scrollDist);
		
		
		//als er een niewe product wordt toegevoegd sturen we hem naar beneden zodat je gelijk het product ziet
		if ( senToBottom ||  parseInt($("scrollbar_handle").style.top) > scrollDist)
		{
			$("scrollbar_handle").style.top = scrollDist + 'px';
		}
		
		//als de scroll dis boven null is dan voegen we de ondrag toe die de content verplaatsts
		if (scrollDist > 0) {
			s.onDrag = function(){
				var scrollY = parseInt(s.style.top);
				var docY = 0 - (scrollY * (docH - contH) / scrollDist)
				$("cart_scroll_content").style.marginTop = docY + "px";
			}
			s.onDrag();
		}
		
		//als er niet gescrold hoeft te worden zetten we de scrolcontent weer bovenaan 
		else 
		{
			$("cart_scroll_content").style.marginTop = "0px";
		}

	
	//als de cart weer verstopt moet worden verstoppen we deze
	if (hide_object)
		$('cart_venster').style.display = 'none';

	
}

measure_locator_scrollbar = function()
{
	//shit uitrekenen
	var docH = $("stores").offsetHeight;
	
	//holder
	var contH = $("stores_holder").offsetHeight;
	
	
	var scrollAreaH = $("scrollbar_locator_track").offsetHeight;
	
	
	
		var scrollH = (contH * scrollAreaH) / docH;
		if (scrollH < 15) 
			scrollH = 15;
		
		
		
		if (scrollH > contH)
			scrollH = contH;
			
			
		$("scrollbar_locator_handle").style.height = Math.round(scrollH) + "px";
	
		
		
		var s = $("scrollbar_locator_handle")
		
		var scrollDist = Math.round(scrollAreaH - scrollH);
		
		//als er niet gescrold hoeft te worden zetten we de draghoogte op 0 anders staat deze in de min
		if (scrollDist < 0 )
			scrollDist = 0;
		
		//drag van scrolbalk starten
		Drag.init(s, null, 0, 0, 0, scrollDist);
		
		
		//als er een niewe product wordt toegevoegd sturen we hem naar beneden zodat je gelijk het product ziet
		if (parseInt($("scrollbar_locator_handle").style.top) > scrollDist)
		{
			$("scrollbar_locator_handle").style.top = scrollDist + 'px';
		}
		
		//als de scroll dis boven null is dan voegen we de ondrag toe die de content verplaatsts
		if (scrollDist > 0) {
			s.onDrag = function(){
				var scrollY = parseInt(s.style.top);
				var docY = 0 - (scrollY * (docH - contH) / scrollDist)
				$("stores").style.marginTop = docY + "px";
			}
			s.onDrag();
		}
		
		//als er niet gescrold hoeft te worden zetten we de scrolcontent weer bovenaan 
		else 
		{
			$("stores").style.marginTop = "0px";
		}	
}





//een bericht loggen 
log = function(msg)
{
	if (!logsafety && $('jscript_log'))
		$('jscript_log').innerHTML += msg + '<br/>'
}

showDescription = function(id){
	if (previousDescription)
		previousDescription.style.display='none';
		
		var element = $('description_'+ id )
		
		
		
		element.style.display = 'block'
		previousDescription = element;
		
		sIFR.replace(helvetica, {
		  selector: '#' + element.id + ' h1',
		  css: '.sIFR-root { background-color: #ffffff; color: #3f3f3f; }'
		});
}



submitEditPage = function(saveAndEdit)
{
	if (saveAndEdit)
		$('saveAndEdit').value = 1;
		
	$('update_page').submit();
}


var lastCountry
selectedCountry = function(land)
{	
	if(!lastCountry)
		lastCountry = $('nl');
	
	lastCountry.style.display = 'none';
	lastCountry = $(land);
	lastCountry.style.display = 'block';

	setSelectListToValue(land, 'countryList');
	
	
	measure_locator_scrollbar()
}

function setSelectListToValue(value, selectId){
	var i, si, v, args=setSelectListToValue.arguments;
	if ((obj=document.getElementById(args[1])) != null){
		v = args[0];
		for(i=0; i<obj.length; i++){
			if(obj.options[i].value == v){
				si = i;
			}
		}
		obj.selectedIndex = si;
	}
}




thisMovie = function(movieName) {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
     }
	 


sendToActionScript = function(value) {
 thisMovie("winkel_lokalizator").sendToActionScript(value);
 if($('land_input'))
 	$('land_input').value = value;
}



force_checkbox_submit = function( element, submit )
{
		var inputs = element.getElementsByTagName('INPUT');
		
		for (var i=0; i < inputs.length; i ++)
		{
			var input = inputs[i];
			
			if (input.type == 'checkbox')
			{
				if (!input.checked)
				{
					input.value = "";
					input.checked = true;
				}
			}
		}
		
		if (submit)
			if (element.submit)
				element.submit();


}

submit_on_enter = function (event,form)
{
	if(event.keyCode == 13){$(form).submit()};
}





//bubbel om zeep helpen
cancle_bubble = function(e)
{
	if (!e)
		e = window.event;
	
	e.cancelBubble = true
	if (e.stopPropagation)
		e.stopPropagation();
}


toggleEdit = function (e)
{

		if ($('inhoud') != null) 
		{
			$('editcontent').style.display = "block";
			$('inhoud').style.display = "none";
			$('title_edit').style.display = "block";
			$('title').style.display = "none";
		}else
		{
			$('editcontent').style.display = "block";
			$('title_edit').style.display = "block";
			$('title').style.display = "none";
		}

		
		
		if ($('remove_image') != null) {
			$('remove_image').style.display = "block";
		}
		
		CKEDITOR.replace('page_body', {
			toolbar: 'MyToolbar'
		});
}








swapEditCollections = function(){
	$('collection_edit').style.display = "block";
	$('collection_show').style.display = "none";
	
	}





var startlabeldrag = false;
var labelW = 17;

//label mousedown_handler
start_label_drag = function()
{
	Event.observe(document, 'mousemove', label_drag_handler );
	Event.observe(document, 'mouseup', label_stopdrag_handler );
	
	Effect.BlindLeft('pullme_hold', { duration: 0.2 });
}



//draggen van het label onmousemove
label_drag_handler = function(event)
{
	if (startlabeldrag == false)
		startlabeldrag = event.pointerX();

	
	labelW = 17 + event.pointerX() - startlabeldrag
	
	if(labelW>199)
		labelW = 199;
	else if (labelW < 17)
		labelW = 17;
	
	
	try{
		document.selection.empty();
	}
	catch(e)
	{
		window.getSelection().removeAllRanges() ;
	}
	
	$('labeltje_content').style.marginLeft = "-" + (199-labelW) + "px";
	$('labeltje').style.width = labelW + 'px'
}




//stoppen van draggen van het label
label_stopdrag_handler = function(event)
{
	Event.stopObserving(document, 'mousemove', label_drag_handler);
	Event.stopObserving(document, 'mouseup', label_stopdrag_handler);
	
	var label = $('labeltje')
	
	new Effect.Tween(label, parseInt(label.style.width), 17, { duration: 0.15 }, function(p){
		$('labeltje').style.width = p + 'px'
		$('labeltje_content').style.marginLeft = "-" + (199-p) + "px"
	});
	startlabeldrag = false;
	labelW = 17;
}







//als je bij product detail bij aantal other selecteerd dan invul veld selecteren
quantityKeyUpHandler = function (element)
{
	
	//als de select veranderd us
	if (element.tagName == 'SELECT') {
		//als de waarde other is zetten we de select uit en de input aan
		if (element.value == 'other') {
			element.style.display = 'none';
			$('quantity_input').style.display = 'block';
		}
		else
		{
			//waarde van de select overzetten op de het input element
			$('quantity_input').value = element.value;
		}
	}else
	{
		//de waarde van de input strippen van vage shit
		element.value = element.value.replace( /[^0-9]/ig, '' ); 
	}
	
	
	//hoeveelheid ophalen
	var ammound = parseInt($('quantity_input').value);
	
	
	//als de hoeveelheid niet tussen de juiste waarde ligt passen we deze aan
	if (!ammound)
	 ammound = 0;
	
	
	//prijs hetberekenen
	setPrice(product_price, ammound);
}






setPrice = function(price, amound)
{
	//prijs hetberekenen
	$('sprice').innerHTML = number_to_currancy(price * amound) + '<div id="spriceeach"></div>';
	$('spriceeach').innerHTML = number_to_currancy(price) +' per stuk';
}



//als de quantity veranderd is kijken we of deze nog klopt
quantityChangeHandler = function(element)
{
	
	//element ophalen
	element = element || $('quantity_input');
	
	//hoeveelheid ophalen en kijken of die binnen de range valt
	var ammound = checkAndSetQuantityInRange( parseInt(element.value), minimal, maximum)
	
	//waarde naar de nieuwe waarde zetten
	element.value = ammound;
	
	//prijs hetberekenen
	setPrice(product_price, ammound);	
}



//de quantity in de grote shippingcart aanpassen
largecartQuantityChangeHandler = function(element, minimal, maximum)
{
	element.value = checkAndSetQuantityInRange (  parseInt(element.value), minimal, maximum )
}




//kijken of de quantity tussen de waardes ligt anders alert en aanpasse
checkAndSetQuantityInRange = function(ammound, minimal, maximum, noalert)
{
	if (ammound < minimal) {
		
		//melding geven
		if(!noalert)
			alert('The quantity is to low minimal is : ' + minimal);
		
		ammound = minimal;
	}
	else if (ammound > maximum) {
		//melding geven
		if(!noalert)
			alert('The quantity is to high maximum is : ' + maximum);
			
		ammound = maximum;
	}
	
	return ammound;
}




//kijken of de huidige hoeveelheid klopt
testQuantity = function()
{
	
	//hoeveelheid ophalen
	var ammound = parseInt($('quantity_input').value);
	
	if (ammound < minimal || ammound > maximum  )
		return false
	else
		return true;
}



//goto checkout bij productdetail tonen
show_goto_checkout = function()
{
	set_element_style_or_onload('checkout_detail' , 'visibility' , 'visible');
	set_element_style_or_onload('cart_checkout' , 'display' , 'block');
}




//goto checkout bij product detail verstoppen
hide_goto_checkout = function()
{	
	set_element_style_or_onload('checkout_detail' , 'visibility' , 'hidden');
	set_element_style_or_onload('cart_checkout' , 'display' , 'none');
	set_element_style_or_onload('checkout_cart_continue' , 'display' , 'none');
}





//element style porpertys die nog niet gezet konden worden proberen we onload
on_load_style_changes = Array();

// een element zijn style zetten of doen als de pagina geladen is
set_element_style_or_onload = function(element, style, value, dont_add_to_unload)
{
	//kijken of het element bestaat
	if ( $(element) )
	{
		//proberen style zetten
		try{
			$(element).style[style] = value;
		}catch(e){};
		
	}
	else
	{
		if (!dont_add_to_unload)
			on_load_style_changes.push({element:element,style:style,value:value});
	}
}


//style properties die nog niet gezet konden worden nogmaals proberen
Event.observe(window, 'load', function() { 
	for (i = 0; i < on_load_style_changes.length; i++) {
		var e = on_load_style_changes[i]
		set_element_style_or_onload(e.element, e.style, e.value, true);
	}
});








//een nummer naar een prijs omzetten
number_to_currancy = function(ammound)
{
	var price = (Math.round( ammound * 100 ) /100).toString() ;
	
	if (price.indexOf('.') == -1)
	   price += '.00';
	else if (price.indexOf('.') == price.length -2)
	  price += '0';
	
	
	if(ammound == 0)
		price = '0,00'
		
	return '€ ' + price;
}






//flash msg timeout
var flashMsgTimeOut;

//flash messages verstoppen
Event.observe(window, 'load', function() { 

	flashMsgTimeOut = setTimeout("new Effect.Fade('flash_messages');", 5000)

 });
 
 
 
 
//een element laten zien
sv_show = function(element_id)
{
	$(element_id).style.display = 'block'
}

//een element verstoppen 
sv_hide = function (element_id )
{
	$(element_id).style.display = 'none'
}


//image verwijderen compleet bij edit blog
remove_image_complete = function(element_id)
{
	sv_hide(element_id);
	$('remove_image').style.display = 'none'
	
}
remove_collection_complete = function(element_id, id)
{
	sv_hide(element_id);
	$('collections_'+id).style.display = 'none'
	
}
remove_store_complete = function(id)
{
	$('store'+id).style.display = 'none'
	
}
//image slice cancel actie
image_slice_cancel = function()
{
	sv_hide('image_slicer');
	
	//als de product img slicer er ook is die ook weghalen
	if($('image_slicer_product_img'))
		sv_hide('image_slicer_product_img');
}


//alle sv upload divs
var sv_img_uploads = Array();


//alle callbacks
var sv_img_succes_call_backs = Array();


//image slice finished actie
image_slice_finished = function( images )
{	
	for (var i=0; i<sv_img_uploads.length;i++)
	{
		
		//de deze image slicer open staat voeren we zijn succes callback uit
		if ($(sv_img_uploads[i]).style.display == 'block')
			sv_img_succes_call_backs[sv_img_uploads[i]](images);
	
		//image slicer verstoppen
		sv_hide(sv_img_uploads[i])
	}
}


//collection image succes
collection_img_succes = function()
{
	document.location.href="/collections";
}


//page image upload compleet
page_img_succes = function()
{
	try {
		$('saveAndEdit').value = 1;
		$('update_page').submit();
	}catch(e)
	{
		document.location.href = document.location.href + '?'
	}
}


//video verwijderen aight
remove_video_complete = function()
{
	sv_hide('edit_video_holder')
}


//bestand upload cancel
file_upload_cancel = function ()
{
	sv_hide('file_upload');
}


//bestand upload compleet aight
file_upload_finished = function ()
{
	sv_hide('file_upload');
	
	$('saveAndEdit').value = 1;
	$('update_page').submit();
}




//info venster timeout
var shopInfoTimeOut = null;
//de animatie zodat we hem kunnen cancelen
var shopInfoAnimations = null;


//shop info laten zien
show_shop_info = function()
{
	 clearTimeout(shopInfoTimeOut); 
	 
	 //winkel mandje verstoppen
	 hide_cart(100); 
	 
	 //oude animatie cancelen
	 if(shopInfoAnimations)
			shopInfoAnimations.cancel();
	 
	//tonen
	shopInfoAnimations = Effect.BlindRight('info_venster', { duration: 0.2 , transition: Effect.Transitions.sinoidal });
}

//shop info verstoppen
hide_shop_info = function()
{
	shopInfoTimeOut = setTimeout(function(){
		
		//oude animatie cancelen
		if(shopInfoAnimations)
			shopInfoAnimations.cancel();
		
		//verstoppen
		shopInfoAnimations = Effect.BlindLeft('info_venster', { duration: 0.2 , transition: Effect.Transitions.sinoidal }) 
	}, 100);
}





//timeout voor het verstoppen van de winkelwagen zodat we hem kunnen cancelen als je b.v. over text heen gaat in het winkelwagentje
var cartTimeOut;

//de animatie zodat we hem kunnen cancelen als een andere animatie start anders gaat die spacen
var cartAnimation = null;

//shoppingcart staat of gaat aan zodat hij niet opnieuw animeert bij toevoegen van een product als die al uit staat
var shoppingCartOut = false;

//winkelwagen uitklappen
hide_cart = function(time)
{
	cartTimeOut = setTimeout(function(){
		
		shoppingCartOut = false;
		
		//oude animatie cancelen
		if(cartAnimation)
			cartAnimation.cancel();
		
		
		//verstoppen
		cartAnimation = Effect.BlindLeft('cart_venster', { duration: 0.2 , transition: Effect.Transitions.sinoidal }) 
		
		}, time || 1000);
}


//winkelwagentje laten zien
show_shopping_cart = function()
{
	
	clearTimeout(cartTimeOut);
	
	//als het winkelwagentje al niet uit staat
	if (!shoppingCartOut) {
		
		
		
		//stop infor verstoppen anders kunnen ze alle twee open komen te staan
		hide_shop_info();
		
		//oude animatie cancelen
		if (cartAnimation) 
			cartAnimation.cancel();
		
		//cart tonen
		cartAnimation = Effect.BlindRight('cart_venster', {
			duration: 0.2,
			transition: Effect.Transitions.sinoidal,
			afterFinish: function(){}
		});
		
		shoppingCartOut = true;
		
	}
}


/*
replaceShoppingcartSifr = function (){
	sIFR.replace(arial, {
	  selector: '.arial',
	  css: ['.sIFR-root { background-color: #ffffff; color: #3f3f3f; }',
	  	   	'a:link { color: #3f3f3f; text-decoration: none; }',
			'a:hover { color: #bd2b4b; text-decoration: none; }'
		   ]
	});
			
}*/

//toevoegen aan winkelmandje
add_to_cart = function(id)
{	
	
	//kijken of de quantity wel toelaatbaar is
	if (testQuantity() ) {
		new Ajax.Updater('cart_items', '/buy/add_to_cart/' + id, {
			evalScripts: true,
			
			parameters: {
				amound: $('quantity_input').value,
				color: selected_color,
				size: $('product_size').value
			},
			
			onSuccess: function(transport){
			
			
			
			
				//shoppingcart weer laten zien
				show_shopping_cart();
				
				//verstoppen een aantal seconde
				hide_cart(2800);
				
			}
		});
	}
} 





//effecten die nu bezig zijn
activeEffects = [];

//collection text effectje als je er met je muis over gaat
do_collection_effect = function(element)
{
	
	element = $(element);
	
	if (!activeEffects[element])
	{
		activeEffects[element] = true;
		Effect.BlindRight(element, {
			duration: 0.2,
			transition: Effect.Transitions.sinoidal,
			afterFinishInternal: function(effect){

				activeEffects[effect.element] = false
			}
		})
	}
}







var changeColorTimeout;  
var activeThumb;
var activeOrigional;
var activeElement;
var activeColorName = '';

//als het actieve plaatje door admin veranderd is komt de nieuwe hierin
var changedImage = [];

var largeActiveColor;



//als je met je muis in de detail pagina over een kleur gaat
showcolor = function (thumb , large, color_name)
{
	
	//timeout stoppen die het orgineel weer laat zien
	clearTimeout(changeColorTimeout);
	
	//thumb en het grote plaatje vervangen
	$('thumb').src = '/images/' + thumb
	$('current_color').innerHTML = color_name;
	
	if ($('large'))
			$('large').src = '/images/' + large;
}




//admin mode show color
admin_show_color = function(thumb , large, color_name, element)
{
	
	if (changedImage[thumb])
		thumb  = changedImage[thumb]

	
	//verwijder icointje uitzetten als we niet het active element zien
	if (element != activeElement) {
		$('remove_product_image').style.display = 'none';
		
	//verwijder icointje aanzetten als dit het active element is en we zitten niet in upload
	}
	else {
		
		if (!product_img_upload_modus && product_remove_image_id != undefined && product_is_ajax_editeble) {
			$('remove_product_image').style.display = 'inline';
		}
	}
	
	
	
	if (element == activeElement && product_img_upload_modus && product_is_ajax_editeble )
	{
		$('thumb').style.display = 'none';
		$('upload_product_image').style.display = 'inline';
	}
	else
	{
		$('thumb').style.display = 'inline'
		$('upload_product_image').style.display = 'none';
		showcolor(thumb , large, color_name);
	}
}


//orginele kleur weer na een bepaalde tijd laten zien
show_active_color_delay = function(element)
{
	//als die niet het active(op geklikte) element deze grote kleur uitzetten
	if (element && element != activeElement)
		element.style.display = 'none';
	
	
	//als er perongelijk 2 lopen de vorrige cancelen
	clearTimeout(changeColorTimeout);
	
	//timeout zetten om de active kleur te laten zien
	changeColorTimeout = setTimeout(show_active_color, 100)
}


//activate larger color
show_lager_color = function(id)
{
	if (largeActiveColor && largeActiveColor != activeElement)
		largeActiveColor.style.display = 'none'
	
	var larger = $('lager_' + id)
	larger.style.display='block';
	largeActiveColor = larger;
}




//actieve kleur weer laten zien
show_active_color = function()
{
	if (largeActiveColor && largeActiveColor != activeElement)
		largeActiveColor.style.display = 'none'
	
	
	
	$('thumb').src = '/images/' + activeThumb
	$('current_color').innerHTML = activeColorName;
	
	
	if ($('large'))
		$('large').src = '/images/' + activeOrigional;
	
	
	//proberen remove icointje aan te zetten aks de upload modus uit staat
	try {
		if (!product_img_upload_modus && product_remove_image_id != undefined && product_is_ajax_editeble) {
			$('remove_product_image').style.display = 'inline';
		}
	}catch(e){};
		
		
		
	//als we in admin mode zitten en upload modus is aan laten we de upload zien
	if (product_img_upload_modus && product_is_ajax_editeble)
	{
		$('thumb').style.display = 'none';
		$('upload_product_image').style.display = 'inline';
	}
}


//actie kleur zetten als er geen kleur is
set_product_as_active_color = function(thumb, large, admin)
{
	set_active_color(thumb, large, 0, null,null,admin)
}


//actieve kleur zetten
set_active_color = function(thumb, large , id, element, color_name ,admin)
{
	
	//huige active grote kleur uitzetten
	if(activeElement && activeElement!=element)
		activeElement.style.display = 'none';
	
	
	//orgineel plaatje
	activeOrigionalThumb = thumb;
	
	
	if (changedImage[thumb])
		thumb  = changedImage[thumb]
	
	
	if(!admin)
	{
		set_product_sizes(id);
		set_product_quantity(id);
		set_product_price(id);
	}
	
		
	//dit element als actief element zitten en de bijbehorende benodigdheden
	activeElement = element;
	activeThumb = thumb;
	activeOrigional = large;
	selected_color = id
	activeColorName = color_name || '';
}




//sizes voor dit product of kleur zetten
set_product_sizes = function(id)
{
	

	
	//als de kleur eigen sizes heeft gebruiken we die anders die van het product
	var sizes = colors_sizes[id] != undefined ?  colors_sizes[id] : product_sizes;
	

	//als je uberhaupt kan kiezen uit maten
	if (sizes && sizes.length > 0) {
		
		sizes = sizes.split('|')
		
		select_element = $('product_size');
		
		
		//select element leeg maken
		empty_select_list(select_element)
		
		//verschillende maten toevoegen
		for (var i = 0; i < sizes.length; i++ )
		{
			//option maken en aan het select element toevoegen
			select_element.appendChild( create_option(sizes[i]) );
		}
		$('maat').style.display = 'block';	
	}
	else
	{
		$('maat').style.display = 'none';
	}
}




//minimale en maximale hudige hoeveelheid
var minimal = 0;
var maximum = 0;

//de minimale en maximale hoeveelheid van deze kluer of product zetten
set_product_quantity =  function(id)
{	
	//select dropdown
	var quantity_select = $('quantity_select')
	
	//quantity input 
	var quantity_input = $('quantity_input');
	
	//huidige waarde
	var value = quantity_input.value;
	
	//quantity select leegmaken
	empty_select_list(quantity_select);
	
	//minimale en maximale ophalen van product of kleur
	minimal = colors_minimal_quantity[id] ? colors_minimal_quantity[id] : minimal_quantity;
	maximum = colors_maximum_quantity[id] ? colors_maximum_quantity[id] : maximum_quantity;
	
	//als het max 0 is zetten we het op 500
	if (maximum == 0)
		maximum = 500;
	
	
	//alle elementen uiztten
	quantity_select.style.display = quantity_input.style.display = 'none';

	//eerste 10 keuzes dropdown maken
	for (var i = minimal; (i <= maximum && i != minimal + 11); i++) {
	
		//option maken en aan het select element toevoegen
		var options = quantity_select.appendChild(create_option(i));
		
	}
	
	
	//als i niet het max is mogen ze ook zelf invullen
	if (maximum > i + 1) 
		quantity_select.appendChild(create_option('other..', 'other'));

	
	//kijken of de huidige waarde tussen de min en de max light anders zetten we hem op minimaal
	if (value < minimal || value > maximum) {
		//value op minimal zetten
		value = quantity_select.value = quantity_input.value = minimal;
	}
	
	
	//de juiste index aanzetten
	for(index = 0;  index < quantity_select.length; index++) {
	   if(quantity_select[index].value == value)
	     quantity_select.selectedIndex = index;
	 }
	
		

	
	//als de hudige waarde groter is dan het select veld quantity_input aanzetten
	if (value >= i + 1)
		quantity_input.style.display = 'block';
	//visa versa
	else
		quantity_select.style.display = 'block';
	
}


//optie voor een select maken
create_option = function(text,value)
{
	//als de value niet is opgegeven wordt deze de text
	value = value ? value : text;
	
	//option maken
	var m = document.createElement('OPTION')
			
	//innethtml en de waarde zetten
	m.value = value;
	m.innerHTML = text;
	
	return m;
}




// de prijs van de product of kleur zetten
set_product_price = function(id)
{
	
	//prijs ophalen
	var price = colors_prices[id] ? colors_prices[id] : product_price;
	
	var ammound = $('quantity_input').value;
	
	//prijs hetberekenen
	setPrice(price, ammound);	
}





//een select list helemal lees maken
empty_select_list = function(select_element)
{
	//alle sizes verwijderen
	var options = select_element.options
		
	//alle opties verwijderen we doen telkens 0 omdat als je er één verwijderd ze allemaal opschuiven
	while(options[0])
	{
		select_element.removeChild(options[0])
	}
}


//kleur bewerken
set_edit_color = function(thumb, large , id, element, color_name){
	set_active_color(thumb, large , id, element, color_name,true);
	
	//als we niet de product description bewerken edit kleur openen
	if (product_is_ajax_editeble) {
		new Ajax.Updater('edit_product_section', '/shop/edit_color/' + id, {
			evalScripts: true,
			onCreate: function(){
				show_ajax_loader('edit_product_section')
			}
		});
	}
}


//nieuwe kleur toevoegen
create_new_color = function(id)
{
	new Ajax.Updater('edit_product_section', '/shop/new_color/'+id, {evalScripts:true, onCreate:function(){show_ajax_loader('edit_product_section')}});
}


//loader img tonen in opgegeven element
show_ajax_loader = function (element)
{
	$(element).innerHTML = "<img class='ajaxloader' src='/images/loader2.gif' />"
}



//koekjes en pull me functies uitvoeren bij het laden
Event.observe(window, 'load', function() { 
	
	//op de eerste pagina tonen we de pull me nooit 
	if (pageId && pageId != 1) {
		
		//test koekje aanmaken
		createCookie('testkoekje', 'testkoekje', '');
		
		//koekje uitlezen als dat lukt staan koekjes aan
		if (readCookie('testkoekje')) {
		
			//als pullme nog niet getoond is
			if (!readCookie('pullme')) {
				//koekje aanmaken
				createCookie('pullme', 'pullme', 7)
				
				//pull me laten zien
				show_pull_me();
			}
		}
		//als de koekjes uit staan laten we 1 op de 8 keer de pull me zien
		else if (Math.round(Math.random() * 8) == 5) {
				show_pull_me();
		}
	}	
});


//pullme src toevoegen zodat die niet altijd geladen hoeft te worden en display op block zetten
show_pull_me = function()
{
	$('pullme').src = '/images/pullme.png';
	$('pullme_hold').style.display = 'block';
}



//shoppingcart product update start
cart_quantity_change = function(amound, id, element,max)
{
	 if (!amound)
		return
	

	if (amound > max)
	{
		element.value = max
		amound = max;
	}
	
	//hier is een route voor
	new Ajax.Request('/change_amound/'+id+'/'+amound, {
	  onSuccess: function(transport) {
	  	
		//shoppingcart updaten
		new Ajax.Updater('cart_items','/checkout/ajax_update_shopping_cart/', {evalScripts: true});
		
		//script dat we terug krijgen evallen
	    eval(transport.responseText);
	  }
	});
}



//remove cart large item
remove_cart_large_item = function(id,element)
{
	try
	{
		//element ophalen die we gaan verwijderen
		var remove_cart_element = element.parentNode.parentNode;
		
		//element webhalen animeren
		Effect.Fade(remove_cart_element, {
			duration: 0.2,
			afterFinish: function()
			{
				//de grote cart updaten en item verwijderen
				new Ajax.Updater('checkout_shoppingcart_holder','/checkout/ajax_remove_large_cart/' + id, {
				  evalScripts: true,
				  onSuccess: function(transport) {
				  	
					//de inhoud van de kleine cart updaten
					new Ajax.Updater('cart_items','/checkout/ajax_update_shopping_cart/', {evalScripts: true});
				  }
				});
			}
		});
	}catch(e){}
}




//shoppingcart remove item
remove_cart_item = function(id)
{
	
	new Ajax.Updater('cart_items','/buy/remove_from_cart/'+id, {
	  evalScripts: true,
	  onSuccess: function(transport) {
	  }
	});
}



//shoppingcart product aantal verwijderen done
setCartAmmound = function(id, item_price, total_price,korting)
{
	$('cart_item_price_'+ id).innerHTML = number_to_currancy(item_price);
	$('cart_total_price').innerHTML = number_to_currancy(total_price);
	$('cart_total_korting').innerHTML = number_to_currancy(korting)
}



//laat andere bezorg adress zien
show_shipment_adress = function ()
{
	$('shipment_information').style.display = 'block';
	$('same_shipment_address').style.display = 'block';
	$('change_shipment_address').style.display = 'none';
	$('shipment_hidden_field').value = 1;
	
	
	replace_addres_sifr();
}


//verstop alternative bezorg address
hide_shipment_adress = function()
{
	$('shipment_information').style.display = 'none';
	$('same_shipment_address').style.display = 'none';
	$('change_shipment_address').style.display = 'block';
	$('shipment_hidden_field').value = '';
}


//na verandering van de sifr text weer replacen
replace_addres_sifr = function(){
	sIFR.replace(helvetica, {
  	selector: 'h3',
  	css: ['.sIFR-root { background-color: #ffffff; color: #585858; }',
 		 'a:link { color: #585858; text-decoration: none; }',
		 'a:hover { color: #bd2b4b; text-decoration: none; }']
	});
}



//webshop edit aan

var edit_overview_on = false;
edit_overview = function ()
{
	
	edit_overview_on = edit_overview_on ? false : true;
	
	products = ($$('.remove_product'));
	
	for (var i =0; i <products.length ; i++)
	{
			products[i].style.display = edit_overview_on ? 'block' : 'none' ;
	}
	
}


//een div aan of uit zetten door een checkbox word gebruikt in kleur bewerken
switchElementByCheckBox = function(checkbox, element){
	setTimeout(function(){
	if(checkbox.checked)
		$(element).style.display = 'block';
	else
		$(element).style.display = 'none';
	},1);
}


//een maat toevoegen aan het lijstje
add_size_item = function(){

	node = $('product_size_items').appendChild($('product_size_item_copy').cloneNode(true));
	node.getElementsByTagName('input')[0].value = $('add_size_input').value;
	node.getElementsByTagName('input')[0].name = sizeInputName + '[]'
	
	
	
	
	$('add_size_input').value ='';
	
	node.style.display='block';
	
	
	// drag image opnieuw maken anders spaced IE hem
	var old_drag_image = node.getElementsByTagName("IMG")[0];
	var new_drag_image = document.createElement("IMG");
	
	new_drag_image.className 	= old_drag_image.className;
	new_drag_image.src 			= old_drag_image.src;
	node.replaceChild (new_drag_image , old_drag_image)
	
	
	Sortable.create("product_size_items", {tag:'div',handles:$$('.product_size_drag')});
}


//een maat verwijderen uit het lijstje
remove_size_item_handler = function(element)
{
	Effect.BlindUp(element.parentNode, 
	{
		afterFinish: function(effect){effect.element.parentNode.removeChild(effect.element);},
		duration: 0.3
	});
}

//icon (eerste afbeelding in het elemen src veranderen)
set_my_icon = function (element, src)
{
	try{
		element.getElementsByTagName('IMG')[0].src = '/images/' + src;
	}catch(e){};
	
}


//zichtbaarheid van een product bewerken
switch_product_visibility = function(clickontext)
{
	$('product_visible_save').style.display = 'block';
	
	if(clickontext)
		$('product_visible').checked = $('product_visible').checked ? false : true;
}



save_product_visibility = function(product_id)
{
	$('product_visible_save').style.display = 'none';
	$('product_visible_loader').style.display = 'inline';
	
	new Ajax.Request('/buy/save_product_attribute/'+product_id, {
	
	parameters:{'product[visible]':$('product_visible').checked? '1' : '' },
	  onSuccess: function(transport) {
	  	$('product_visible_loader').style.display = 'none';
		flash_message('Product visibility saved');
	  }
	});
	
	
}



//titel van een product bewerken
edit_product_titel = function()
{
	$('product_name_edit').style.display = 'none';
	$('edit_product_name').style.display = 'block';
}


//titel bewerk div weer verstoppen
stop_edit_titel = function()
{
	$('product_name_edit').style.display = 'block';
	$('edit_product_name').style.display = 'none';
}


//product naam opslaan
save_product_name = function(product_id)
{
	
	product_name = $('edit_product_name_input').value.toUpperCase();
	
	
	$('product_name_undo').style.display='none';
	$('product_name_save').style.display='none';
	$('product_name_loader').style.display='inline';
	
	new Ajax.Request('/buy/save_product_attribute/'+product_id, {
	
	parameters:{'product[name]':product_name},
	  onSuccess: function(transport) {
		$('product_name_value').innerHTML = product_name;
		
		flash_message('Product name saved') 
		
		$('product_name_undo').style.display='inline';
		$('product_name_save').style.display='inline';
		$('product_name_loader').style.display='none';
		
		
		stop_edit_titel();
	  }
	});
}

//kijken of er genoeg chars staan in de input om hem op te slaan
edit_name_check_chars = function(element)
{
	if (element.value.length == 0)
	{
		$('product_name_save').style.display='none';
	}
	else
	{
		$('product_name_save').style.display='inline';
	}
}


//product naam weer terug naar wat het was zetten
undo_product_name = function()
{
	stop_edit_titel();
	$('product_name_save').style.display='inline';
	$('edit_product_name_input').value = product_name;
}




//id van het huigie afbeelding die we gaan verwijderen
var product_remove_image_id;

//of er een neiuwe afbeelding geupload kan worden dit gebruiken we in de showcolor shizl
var product_img_upload_modus = false;


//of we nu een product image of een color image bewerken of upload of verwijderen
var iscolorimg = false;


//kijken of er een afbeelding verwijderd kan worden dat is als je een kleur bewerkt of als een product geen kleuren heeft zijn hoofdafbeelding
enable_remove_product_image = function(noimage,id,_iscolorimg)
{
	
	iscolorimg = _iscolorimg;
	
	if (noimage)
		enable_upload_product_image();
	else
	{
		product_img_upload_modus = false;
		product_remove_image_id = id;
		$('remove_product_image').style.display = 'inline';
		$('upload_product_image').style.display = 'none';
		$('thumb').style.display = 'inline';
	}
}





//product / color image verwijderen
remove_product_image = function()
{
	var action = '';
	
	if (iscolorimg)
		action = 'ajax_remove_color_image';
	else
		action = 'ajax_remove_product_image';
	
	new Ajax.Request('/buy/'+action+'/'+product_remove_image_id, {
	
	  onSuccess: function(transport) {
		enable_upload_product_image();
		changedImage[activeOrigionalThumb] = 'no_img.jpg';
	  }
	});
}



//image uploaden aanzetten
enable_upload_product_image = function(iscolorimg)
{
	product_img_upload_modus = true;
	$('thumb').style.display = 'none';
	$('upload_product_image').style.display = 'inline';
	$('remove_product_image').style.display = 'none';
}



//uploaden van afbeelding gelukt
product_image_upload_complete = function(images)
{
	product_img_upload_modus = false;
	
	//deze afbeelding in change image zetten anders klopt de hover niet meer
	changedImage[activeOrigionalThumb] = images;

	//omdat de actief is moeten we ook de active thumb naar het nieuwe plaatje zetten
	activeThumb = images;
	
	$('thumb').src = '/images/' + images
	$('remove_product_image').style.display = 'inline';
	$('upload_product_image').style.display = 'none';
	$('thumb').style.display = 'inline';
}


//start upload product / color image
start_product_img_upload = function()
{
	//als het een color img is openen we color img image slicer
	if(iscolorimg)
		$('image_slicer').style.display = 'block';
	//anders die van product
	else
		$('image_slicer_product_img').style.display = 'block';		
}


//ajax calls voor editen van de verschillende product onderdelen
edit_product_ajax_call = function(action , id )
{
	//als we niet mogen bewerken als edit decription aanstaan returnen we
	if(!product_is_ajax_editeble)
		return;
	
	//plaatje verwijderen weghalen
	$('remove_product_image').style.display = 'none';
	
	//plaatje upload weghalen
	$('upload_product_image').style.display = 'none';
	
	//thumb weer aanzetten
	$('thumb').style.display = 'inline';
	
	
	new Ajax.Updater('edit_product_section', '/shop/ajax_partial/' + action + '/' + id , {evalScripts:true, onCreate:function(){show_ajax_loader('edit_product_section')}});
}



//product overview img
enable_overview_img = function(removeble)
{
	if (removeble) 
		$('remove_overview_image').style.display = 'block';
	else {
		enable_overview_img_upload();
	}
}


//product overview img upload aanzetten
enable_overview_img_upload = function()
{
	$('remove_overview_image').style.display = 'none';
	$('upload_overview_image').style.display='inline';
	$('overview_img').style.display = 'none';
}


//product overview img verwijderen
remove_overview_image = function(product_id)
{
	new Ajax.Request('/buy/ajax_remove_overview_image/'+product_id, {
	
	  onSuccess: function(transport) {
		enable_overview_img_upload();
	  }
	});
}



//color overview img verwijderen
remove_color_overview_image = function(color_id)
{
	new Ajax.Request('/buy/ajax_remove_color_overview_image/'+color_id, {
	
	  onSuccess: function(transport) {
		enable_overview_img_upload();
	  }
	});
}



//product overview img upload compleet
product_overview_upload_complete = function(images)
{
	$('overview_img').style.display = 'inline';
	$('overview_img').src = '/images/' + images;
	$('upload_overview_image').style.display='none';
	$('remove_overview_image').style.display = 'block';
}



//show flash message met js
flash_message = function(str)
{
	$('flash_messages').style.display = 'block'
	clearTimeout(flashMsgTimeOut);
	flashMsgTimeOut = setTimeout("new Effect.Fade('flash_messages');", 5000);
	$('flash_messages').innerHTML = "<div class='flash_text_main'><span>"+str+"</span></div>";
}





//de huidige filter col
var orderList_filter_col = 'all'

//hudige filter waarde
var orderList_filter_val = 'niks'

//hudige col waarop gesorteerd word
var orderList_sort_col = 'id'

//die richting waarop gesorteerd word
var orderList_sort_way = 'desc'




//de orderlijst sorteren op een column
sort_order_list = function(order_column , element)
{
	//als de order col het zelfde is als die het nu is draaien we sort way om
	if (order_column == orderList_sort_col)
		orderList_sort_way = (orderList_sort_way == 'desc') ? 'ASC' : 'desc';
	
	
	orderList_sort_col = order_column;
	
	//de lijst opnieuw ophalen
	filter_order_list(orderList_filter_col, orderList_filter_val, orderList_sort_col ,orderList_sort_way)
}





//order list filteren
filter_order_list = function(filter_col, filter_value, sort_col , sort_way)
{
	
	orderList_sort_way = sort_way || 'desc'
	orderList_sort_col = sort_col || 'id'
	
	orderList_filter_col = filter_col
	orderList_filter_val = filter_value
	

	
	new Ajax.Updater('orderList','/sorted_order_list/'+orderList_filter_col+'/'+orderList_filter_val + '/'+ orderList_sort_col + '/' + orderList_sort_way, {
	  evalScripts:true,
				 
	  onSuccess: function(transport) {
			currentDetailDown = false;
			currentDetailUp = false;
	  }
	});	
}

//de huidige actieve filter
currently_active_filter = null;

//de filter kleuren die actief is
color_filter_list= function (element){
	if (currently_active_filter)
		currently_active_filter.className = '';
	
	currently_active_filter = element
	element.className = 'active_filter';
}




var currentDetailDown = false;
var currentDetailUp = false;

showOrderDetail = function(element){
	
	
	
	//de gene die omhoog gaat word die oude die omlaag ging
	currentDetailUp = currentDetailDown;
	
	//de nieuwe die omlaag gaat is het element waar op geklikt is
	currentDetailDown = element;	
	
	//de oude omhoog gooien 
	if (currentDetailUp) {		
		Effect.SlideUp(currentDetailUp, {
			duration: 0.2
		});
	}	
	
	
	//de nieuwe tonen als er niet voor de tweede keer op het element word geklikt
	if (currentDetailUp != element) {
		
		Effect.SlideDown(currentDetailDown, {
			duration: 0.2
		});
		
	}
	else 
		currentDetailDown = null;
	
}



//of de login beneden staat
var loginDown = false

//de timeout
var loginTimeOut = null

//login aan en uit zetten
showLogin = function(e,toggleUp){
	
	
	if (loginTimeOut)
		clearTimeout(loginTimeOut);

		
		
		loginTimeOut = setTimeout(
			function(){
				loginEffect = Effect.toggle('login_form_holder','slide',{ duration: 0.3 });
				
				if (loginDown)
					loginDown = false;
				else
					loginDown = true
			},100
		)

}



//mousedown bubble cancelen zodat je wel op de login kan klikken
loginFormMouseDown = function(e)
{
	cancle_bubble(e);	
}


Event.observe(document, 'mousedown', function(e) { 
	if (loginDown)
		showLogin(null,true);
 });
 
//titel bewerk div weer verstoppen
cancel_process = function(id)
{
	$('edit_process_' + id ).style.display = 'inline';
	$('set_process_' + id ).style.display = 'none';
	$('orderProcessed_' + id ).style.backgroundColor = '#8ec600';
}


//processsen opslaan
set_processed = function(id)
{
	var process = $('set_process_check_' + id).checked ? '1' : '0'
	
	$('set_process_'+id).style.display='none';
	
	if (process == 1) {
		new Ajax.Request('/admin/set_processed/' + id, {
		
			parameters: {
				processed: process
			},
			onSuccess: function(transport){
				$('edit_process_'+id).style.display = 'block';
				
				flash_message('Processed saved') 
				
				$('process_name_' + id).innerHTML = 'Order Processed';
				$('edit_process_'+id).isalreadyset = true;
				$('orderProcessed_' + id ).style.backgroundColor = '#8ec600';
				$('edit_process_'+ id).style.marginTop = '0px';
			}
		})
	}else{
		$('edit_process_'+id).style.display = 'block';
	};
}



//titel van een product bewerken
edit_process = function(id)
{
	if (!$('edit_process_' + id).isalreadyset) {
		$('edit_process_' + id).style.display = 'none';
		$('set_process_' + id).style.display = 'inline';
	}
}


//de ck editor van het product 
var product_ck_editor = null;

//of het product bewerken aan of uit is
edit_product_on = false;

//of eht de eerste keer of we op bewerken drukken om de editor te activeren
edit_product_first_time = true;

//product omschrijving bewerken
edit_product_description = function(){

	if (edit_product_on) {
		
		switch_ajax_product_edit_on();
		
		$('product_description_plain').style.display = 'block';
		$('edit_product_description').style.display = 'none';
		edit_product_on = false;
	}
	else {
		
		$('product_description_plain').style.display = 'none';
		$('edit_product_description').style.display = 'block';
		
		
		switch_ajax_product_edit_off();
		
		if (edit_product_first_time) {
			product_ck_editor = CKEDITOR.replace('product_decription_field', {
				toolbar: 'MyToolbar'
			});
			edit_product_first_time = false;
		}
		
		edit_product_on = true;
	}
}



//of het product nu met ajax bewerkbaar is
product_is_ajax_editeble = true;

//bewerken van het product met ajax rechts uitzetten 
switch_ajax_product_edit_off = function()
{
	
		
	//plaatje verwijderen weghalen
	$('remove_product_image').style.display = 'none';
	
	//plaatje upload weghalen
	$('upload_product_image').style.display = 'none';
	
	//thumb weer aanzetten
	$('thumb').style.display = 'inline';
	
	//edit product section leegmaken
	$('edit_product_section').innerHTML = '';
	
	//zorgen dat er geen een ajax calls worden gemaakt op het product te werken
	product_is_ajax_editeble = false;
	
	
	//alle penceeltjes uitzetten
	var items = $$('.edit_ajax_pencil')
	
	for(var i =0; i < items.length ; i++)
	{
		items[i].style.visibility = 'hidden';
	}
}


//editten van een product weer aanzette als het bewerken van de beschrijving uitstaat
switch_ajax_product_edit_on= function()
{
	//zorgen dat er weer ajax calls gemaatk kunnen worden
	product_is_ajax_editeble = true;
	
	
	//penceeltjes weer aanzetten
	var items = $$('.edit_ajax_pencil')
	
	for(var i =0; i < items.length ; i++)
	{
		items[i].style.visibility = 'visible';
	}	
}


//product decription opslaan
save_product_description = function(product_id,close)
{
	//loader aanzetten en save knop verstoppen
	$('product_description_loader').style.display = 'block';
	$('save_product_description').style.display = 'none';
	$('save_and_close_product_description').style.display = 'none';
	
	var waarde = product_ck_editor.getData()
	
	//description opslaan
	new Ajax.Request('/buy/save_product_attribute/'+product_id, {
	
	parameters:{'product[description]':waarde },
	  onSuccess: function(transport) {
	  	flash_message('Product description saved') 
		//de innerhtml van de normale bescrhijven zetten
		$('product_description_plain').innerHTML = waarde;
		
		//loaders uitzetten en save knop weer aanzetten
	  	$('product_description_loader').style.display = 'none';
		$('save_product_description').style.display = 'block';
		$('save_and_close_product_description').style.display = 'block';
		
		//als we op save and close drukken sluiten we de editor als we klaar zijn
		if(close)
			edit_product_description();
	  }
	});
}


submitcart = function(nextpage)
{
	if($('action_code').value != '' && $('action_code').value != 'ACTIECODE'){
		new Ajax.Request('/buy/checkactioncode/'+$('action_code').value, {
			 onSuccess: function(transport) {
				if(transport.responseText == 'false')
				{
					if (huidige_actie_code)
					{
						$('action_code').value = huidige_actie_code
						document.location.href=nextpage;
					}
					else
					{
						alert('Uw actiecode word niet herkend')
					}
					
				}
				else
				{
					document.location.href=nextpage;
				}
			}
		})
	}
	else
	{
		document.location.href=nextpage;
	}
	
}

checkactioncode = function()
{
	
	var value = $('action_code').value;
	
	new Ajax.Request('/buy/checkactioncode/'+value, {	
		onSuccess: function(transport){
			if(transport.responseText == 'true')
			{
				$('action_code_end').src = '/images/actiecode_input_end_good.jpg';
				
				new Ajax.Updater('checkout_shoppingcart_holder','/checkout/ajax_update_large_cart', {evalScripts:true});	
				huidige_actie_code = value
				
			}else
			{
				$('action_code_end').src = '/images/actiecode_input_end.jpg';
			}
		}
	})
}

actiecodekeyup = function(element)
{
	element.value=element.value.toUpperCase();
	checkactioncode();
}
