// JavaScript Document

var active_option	= 0;
var dropdown_addon	= '';
String.prototype.stripSpacesFull = function( ){ return this.replace( /\s/g, "" );};

function loadDropDownActions(element_name, to_select){
	var element_clicker = $(element_name);
	
	//big ones
	
	var current_value	= $('drop_'+to_select).value; //pre defined by url bijvoorbeeld
	$('dropdown_footer'+to_select).setStyle('opacity',0);
			
	element_clicker.addEvent('click', function(){
		
		if(element_clicker.getProperty('id').substring(13)!=active_option && allow_click == true){
			if(active_option!=0){
				var valueTarget = $('search_option_values'+active_option);
				if(valueTarget){
					var clickTarget = $('search_option'+active_option);
					ChangeAnim('height', valueTarget, 0, 500, Fx.Transitions.Cubic.easeOut)
					clickTarget.setStyle('backgroundImage', 'url('+root_domain+'img/'+root_short+'/assets/nav/dropdown/dropdown_main'+dropdown_addon+'.png)');
					ChangeAnim('top', $('dropdown_footer'+active_option), 13 , 300, Fx.Transitions.Cubic.easeOut)
					ChangeAnim('opacity', $('dropdown_footer'+active_option), 0 , 300, Fx.Transitions.Cubic.easeOut)
				}
			}
			
			dropdown_addon	= '';
			if(to_select=='address' || to_select=='address_payment'){
				dropdown_addon	= '_big';
			}else if(to_select=='method_payment'){
				dropdown_addon	= '_payment';
			}else if(to_select=='search_sub' && main_search == 0){
				return;
			}else if(to_select=='search_attr1' && main_search == 0){
				return;
			}else if(to_select=='search_attr2' && main_search == 0){
				return;
			}
			
			active_option 	= element_clicker.getProperty('id').substring(13);
			element_clicker.setStyle('backgroundImage', 'url('+root_domain+'img/'+root_short+'/assets/nav/dropdown/dropdown_main_open'+dropdown_addon+'.png)');
			var nr_ofValues	= $('option_value_counter'+active_option).value;
			valueTarget 	= $('search_option_values'+active_option);
			var toMove;
			if(to_select!='city'){
				toMove		= nr_ofValues * 20 + 5 ;
			}else{
				toMove		= nr_ofValues / 4 * 20  + 15;
			}
			if(toMove>300){
				toMove = 300;
			}
			
			ChangeAnim('height', valueTarget, toMove, 300, Fx.Transitions.Cubic.easeOut)
			
			$('dropdown_footer'+active_option).setStyle('opacity',1);
			ChangeAnim('top', $('dropdown_footer'+active_option), toMove + 17 , 300, Fx.Transitions.Cubic.easeOut)
			
				scroller = new Scroller(valueTarget, {area: 70, velocity: 0.1, fps: 40});
				valueTarget.addEvent('mouseover', scroller.start.bind(scroller));
				//valueTarget.addEvent('mouseout', scroller.stop.bind(scroller));			 	
				//valueTarget.addEvent('mouseover', function(){ Log.log('in') });
				//valueTarget.addEvent('mouseout', function(){ Log.log('out') });	
			
		}else{
			if(allow_click == true){
				closeCloset(active_option);
			}
		}
	});
	
	var optionsValuelist = $$('#search_option_values'+element_clicker.getProperty('id').substring(13)+' .search_option_value');
	optionsValuelist.each(function(element) {
	 
		var fxvalues = new Fx.Morph(element, {wait:false});
		element.addEvent('mouseenter', function(){
			if(element.getProperty('class').stripSpacesFull() =='search_option_value'){									
			fxvalues.set({
				//'background-color': '#b7b1a4',
				'color': '#000000'
			});
			}
		});
	 
		element.addEvent('mouseleave', function(){
			if(element.getProperty('class').stripSpacesFull() =='search_option_value'){									
			fxvalues.set({
				//'background-color': '#333332',
				'color': '#5B6369'
			});
			}
		});

		element.addEvent('click', function(){
			//alert('click');
			var childof 		= element.getProperty('childof');
			
			
			var current_value	= $('drop_'+childof).value;
			
			
			//	if(current_value != 0){
			var value_element;
			if(childof == 'search_main' || childof == 'search_sub' || childof == 'search_attr1' || childof == 'search_attr2'){
				value_element	= $('search'+current_value);
			}else{
				value_element	= $('value_'+current_value);
			}
			
			if(value_element){
				if(value_element.getProperty('childof') == childof){
					value_element.removeClass('selected');
				}
			}
			//	}

			var disablelist = $$('#search_option_values'+childof+' .search_option_value');
			disablelist.each(function(element) {
				element.setStyles({'color': '#5B6369'});
				element.removeClass('selected');
			});
			
			
			element.addClass('selected');
			fxvalues.start({
				'color': '#c11b1f'
			});
			
			var tempval;
			if(to_select!='method_payment'){
				tempval	= parseInt(element.getProperty('id').substring(6));
			}else{
				tempval	= element.getProperty('id').substring(6);
			}
			
			$('drop_'+childof).value = tempval;
			
			if($('active_'+childof)){
			$('active_'+childof).value = tempval;
			}
			allow_click		= false;
			afterDropDownClick(childof, tempval, element.innerHTML);
		});
		
		
	});
	
	if(current_value!=0){
		var value_element;
		if(to_select == 'search_main' || to_select == 'search_sub' || to_select == 'search_attr1' || to_select == 'search_attr2'){
			value_element	= 'search'+current_value;
		}else{
			value_element	= 'value_'+current_value;
		}
		var completelist 			= $$('#search_option_values'+to_select+' .search_option_value');
		completelist.each(function(element) {
								   
			if(element.getProperty('id') == value_element){
				
				element.addClass('selected')
				element.setStyles({
					'color': '#c11b1f'
				});
				  
				var str				= element.innerHTML;
				$(element_name).innerHTML 	= str;
				
				if(to_select == 'color'){
					ReInitSizes(current_value);	
				}
				
			}
			
		});
	}
}

function closeCloset(childof){
	var valueTarget = $('search_option_values'+childof);
	ChangeAnim('height', valueTarget, 0, 300, Fx.Transitions.Cubic.easeOut);
	ChangeAnim('top', $('dropdown_footer'+childof), 13 , 300, Fx.Transitions.Cubic.easeOut)
	ChangeAnim('opacity', $('dropdown_footer'+childof), 0 , 300, Fx.Transitions.Cubic.easeOut)
			
	if(gallery_type[active_current]==1){
		var clickTarget = $('search_option'+active_option);
	}else if(gallery_type[active_current]==2){
		var clickTarget = $('search_optionGallery');
	}else{
		var clickTarget = $('search_option'+active_option);
	}
	
	ChangeAnim('height', valueTarget, 0, 300, Fx.Transitions.Cubic.easeOut)
	clickTarget.setStyle('backgroundImage', 'url('+root_domain+'img/'+root_short+'/assets/nav/dropdown/dropdown_main'+dropdown_addon+'.png)');
	active_option = 0;
}

function afterDropDownClick(childof, tempval, element_txt){
	switch(childof){
		case 'categories':
			$('search_option'+childof).innerHTML 	= 'category:'+element_txt;
			closeCloset(childof);
			dropDownHandler(tempval, childof, element_txt);
		break;
		case 'color':
		case 'size':
		case 'address':
		case 'address_payment':
		case 'method_payment':
		case 'search_main':
		case 'search_sub':
		case 'search_attr1':
		case 'search_attr2':
		case 'country':
		case 'city':
			$('search_option'+childof).innerHTML 	= element_txt;
			closeCloset(childof);
			dropDownHandler(tempval, childof, element_txt);
		break;
	}
}

function dropDownHandler(value, click_target,element_txt){
	var selected_option	= value;
	switch(click_target){
		case 'color':
			HandleColor(value);
			ReInitSizes(value);
		break;
		case 'size':
			HandleSize(value);
		break;
		case 'address':
			HandleAddress(value,'shipping');
		break;
		case 'address_payment':
			HandleAddress(value,'payment');
		break;
		case 'method_payment':
			HandlePaymentMethod(value);
		break;
		case 'search_main':
			HandleSearch('main',click_target,value);
		break;
		case 'search_sub':
			HandleSearch('sub',click_target,value);
		break;
		case 'search_attr1':
		case 'search_attr2':
			HandleSearch('attr',click_target,value);
		break;
		case 'country':
			HandleCountry(value);
		break;
		case 'city':
			HandleCity(value);
		break;
	}
}

//old method
/*function HandleColor(selected_value){
	if($('product_id')){
		mySpinner 				= new Spinner('product_info');
		mySpinner.show(true);
		
		if($('active_size')){
			var active_size	= $('active_size').value
		}
		var parent_product	= $('product_id').value
		var url				= root_domain + 'shop/catalog/articles/flow-get-article-color.php?selected_value='+selected_value+'&parent_product=' + parent_product+'&active_size=' + active_size;
		// 146/152  --> 1480;
		// 146/152  --> 1463;
		loadNshow(url, 'detail_content_container', 'get', false);
	}
}*/
//new method
function HandleColor(selected_value){
	if($('product_id')){
		mySpinner 				= new Spinner('product_info');
		mySpinner.show(true);
		
		if($('active_size')){
			var active_size	= $('active_size').value
		}
		var parent_product	= $('product_id').value
		
		//selected_value is 1 of 2  of 3 enz.....
		//vertalen naar een database value voor de volgende pagina, tevens de naam van het gekozen artikel (wat bij attr_2 hoort)...(nogmaals..att-2 is bepalend maar niet per definitie uniek!
																																	 
		if($('database_color_values')){
			var db_values		= $('database_color_values').value;
			var array_db_v 		= db_values.split(',');
			var db_value		= array_db_v[selected_value -1];
			
			if($('database_color_related_article_names')){
				db_values 		= $('database_color_related_article_names').value;
				array_db_v 		= db_values.split(',');
				var article_name	= array_db_v[selected_value -1];
			}
		}																															 
		
		
		
		var url				= root_domain + 'shop/catalog/articles/flow-get-article-color.php?selected_value='+db_value+'&parent_product=' + parent_product+'&active_size=' + active_size+'&article_name=' + article_name;
		// 146/152  --> 1480;
		// 146/152  --> 1463;
		Log.log(url);
		loadNshow(url, 'detail_content_container', 'get', false);
	}
}
function HandleSize(selected_value){
	if($('product_id')){
		mySpinner 				= new Spinner('product_info');
		mySpinner.show(true);
				
		var parent_product	= $('product_id').value
		
		if($('active_color')){
			var active_color	= $('active_color').value
		}
		
		var url				= root_domain + 'shop/catalog/articles/flow-get-article-size.php?selected_value='+selected_value+'&parent_product=' + parent_product+'&active_color=' + active_color;
		loadNshow(url, 'product_info', 'get', false);
	}
}
function HandleAddress(selected_value, soort){
	var this_target				= 'current_'+ soort +'_address';
	
	if($(this_target)){
		mySpinner 				= new Spinner(this_target);
		mySpinner.show(true);
				
		var url				= root_domain + 'shop/checkout/address/flow-get-address.php?selected_value='+selected_value+'&soort='+soort;
		loadNshow(url, this_target, 'get', false);
	}
}
function HandlePaymentMethod(selected_value){
	var this_target				= 'method_payment_container';
	if($(this_target)){
		mySpinner 				= new Spinner(this_target);
		mySpinner.show(true);
		
		var url					= root_domain + 'shop/checkout/payment/flow-handle-method.php?selected_value='+selected_value;
		loadNshow(url, this_target, 'get', false);
	}
}

function ReInitSizes(value){
	var all_colors 		= $('sizes_'+value).value
	var array_colors 	= all_colors.split(',');
	var color_count		= 0;
	var current_size	= $('drop_size').value
	
	var optionsValuelist = $$('#search_option_valuessize .search_option_value');
	optionsValuelist.each(function(element) {
		var tempval		= parseInt(element.getProperty('id').substring(6));
		if(arrayExists (array_colors, tempval)){
			element.setStyle('height',20);
			color_count++;
		}else{
			element.setStyle('height',0);
		}
	});
	
	$('option_value_countersize').value = color_count;
}
function arrayExists (arr, x) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] == x) return true;
    }
    return false;
}

var main_search		= 0;
var sub_search		= 0;
var attr1_search	= 0;
var attr2_search	= 0;

function initQuickSearch(){
	if($('search_optionsearch_main')){
		main_search 	= $('drop_search_main').value
		loadDropDownActions('search_optionsearch_main','search_main');
	}
	if($('search_optionsearch_sub')){
		loadDropDownActions('search_optionsearch_sub','search_sub');		
		if(main_search == 0){
			$('search_optionsearch_sub').setStyle('opacity',0.5);
			$('drop_search_sub').value	= 0;
		}
		sub_search 		= $('drop_search_sub').value;
	}
	if($('search_optionsearch_attr1')){
		loadDropDownActions('search_optionsearch_attr1','search_attr1');		
		if(main_search == 0){
			$('search_optionsearch_attr1').setStyle('opacity',0.5);
			$('drop_search_attr1').value	= 0;
		}
		attr1_search	= $('drop_search_attr1').value;
	}
	if($('search_optionsearch_attr2')){
		loadDropDownActions('search_optionsearch_attr2','search_attr2');		
		if(main_search == 0){
			$('search_optionsearch_attr2').setStyle('opacity',0.5);
			$('drop_search_attr2').value	= 0;
		}
		attr2_search	= $('drop_search_attr2').value;
	}
	if(sub_search > 0){
		HandleSearch('sub','search_sub',sub_search);	
	}
}

function HandleSearch(level,target,value){
	switch(level){
		case 'main':
			main_search 	= $('drop_' + target).value
			if(main_search > 0){
				$('search_optionsearch_sub').setStyle('opacity',0.2);
				$('search_optionsearch_attr1').setStyle('opacity',0.2);
				$('search_optionsearch_attr2').setStyle('opacity',0.2);
				$('drop_search_sub').value		= 0;
				$('drop_search_attr1').value	= 0;
				$('drop_search_attr2').value	= 0;
				$('search_optionsearch_sub').innerHTML		=  $('default_search_sub').value;
				$('search_optionsearch_attr1').innerHTML	=  $('default_search_attr1').value;
				$('search_optionsearch_attr2').innerHTML	=  $('default_search_attr2').value;
				sub_search		= 0;
				attr1_search	= 0;
				attr2_search	= 0;
			}
			ReInitSubSearch(value);
		break;
		case 'sub':
			sub_search 	= $('drop_' + target).value
			if(sub_search > 0){
				$('search_optionsearch_attr1').setStyle('opacity',0.2);
				$('search_optionsearch_attr2').setStyle('opacity',0.2);
				$('drop_search_attr1').value	= 0;
				$('drop_search_attr2').value	= 0;
				$('search_optionsearch_attr1').innerHTML	=  $('default_search_attr1').value;
				$('search_optionsearch_attr2').innerHTML	=  $('default_search_attr2').value;
				attr1_search	= 0;
				attr2_search	= 0;
			}
			ReInitAttributes(sub_search,'');
		
		break;
		case 'attr':
			switch(target){
				case 'search_attr1':
					attr1_search = $('drop_' + target).value;
				break;
				case 'search_attr2':
					attr2_search = $('drop_' + target).value;
				break;
			}
			
			getSearchResults();
			
		break;
	}
}

function ReInitSubSearch(value){
	var all_subs 		= $('childs_'+value).value
	var array_subs 		= all_subs.split(',');
	var sub_count		= 0;
	var current_sub		= $('drop_search_sub').value
	
	var optionsValuelist = $$('#search_option_valuessearch_sub .search_option_value');
	optionsValuelist.each(function(element) {
		var tempval		= parseInt(element.getProperty('id').substring(6));
		if(arrayExists (array_subs, tempval)){
			element.setStyle('height',20);
			sub_count++;
		}else{
			element.setStyle('height',0);
		}
	});
	
	$('option_value_countersearch_sub').value = sub_count;

	ReInitAttributes(all_subs,'');
}

function ReInitAttributes(product_parents, result){
	if(result == ''){
		
		$('quicksearch').setStyle('backgroundImage', 'url('+root_domain+'img/'+root_short+'/assets/loader-big-invert.gif)');
		
		
		var url				= root_domain + 'shop/catalog/search/find-used-attributes.php?parents='+product_parents;
		loadNshow(url, 'quicksearch', 'get', false);
	}else{
		
		var splitted_output		= result.split('#####');
		var all_attr1			= splitted_output[0];
		var all_attr2			= splitted_output[1];
		
		var array_attr1 		= all_attr1.split(',');
		var array_attr2 		= all_attr2.split(',');
		var attr1_count			= 0;
		var attr2_count			= 0;
		var current_attr1		= $('drop_search_attr1').value
		var current_attr2		= $('drop_search_attr2').value
		
		var optionsValuelist = $$('#search_option_valuessearch_attr1 .search_option_value');
		optionsValuelist.each(function(element) {
			var tempval		= parseInt(element.getProperty('id').substring(6));
			if(arrayExists (array_attr1, tempval)){
				element.setStyle('height',20);
				attr1_count++;
			}else{
				element.setStyle('height',0);
			}
		});
		$('option_value_countersearch_attr1').value = attr1_count;
	
		var optionsValuelist = $$('#search_option_valuessearch_attr2 .search_option_value');
		optionsValuelist.each(function(element) {
			var tempval		= parseInt(element.getProperty('id').substring(6));
			if(arrayExists (array_attr2, tempval)){
				element.setStyle('height',20);
				attr2_count++;
			}else{
				element.setStyle('height',0);
			}
		});
		
		$('option_value_countersearch_attr2').value = attr2_count;
	
		
		
		$('quicksearch').setStyle('backgroundImage', 'none');
		$('search_optionsearch_sub').setStyle('opacity',1);
		$('search_optionsearch_attr1').setStyle('opacity',1);
		$('search_optionsearch_attr2').setStyle('opacity',1);

		allow_click	= true;
	}
}

function getSearchResults(){
	
	var product_parents	= $('childs_'+main_search).value

	if(sub_search > 0){
		product_parents	= sub_search;
	}
	
	if($('inner_content')){
		$('inner_content').setStyle('display','none');
	}
	
	var url	= root_domain + 'shop/catalog/search/index.php?parents='+product_parents+'&attr_1='+attr1_search+'&attr_2='+attr2_search;
	Log.log(url);
	loadNshow(url, 'inner_content_menu', 'get', false);
	
}

function HandleCountry(value){
	mySpinner 				= new Spinner('city_selecter');
	mySpinner.show(true);
	
	var url	= root_domain + 'storelocator/flow-city-selecter.php?country='+value;
	loadNshow(url, 'city_selecter', 'get', false);
}

function HandleCity(value){
	mySpinner 				= new Spinner('storelocator_result');
	mySpinner.show(true);
	
	var url	= root_domain + 'storelocator/listing.php?city='+value;
	loadNshow(url, 'storelocator_result', 'get', false);
}