var product = new Object();
product.url = 'cfc/frontend/io/jquery/product.cfc';

product.listener = true;
product.waitForSearch;
product.delay = 800;

product.search = function(search) {	
	$.ajax({
		type:'post',
		url: product.url + '?method=search',
		data: {
			search:search
		},
		success:function(response){
			// Livesearch Box anzeigen
			$('#livesearch').show();
			$('#search #searchfield').css('background', '#fff');
			
			// Livesearch Box bei Klick in den Body ausblenden
			$(document.body).click(function(){
    			$('#livesearch').hide();
   			});
			// Livesearch Box nicht ausblenden, falls in diese geklickt wird
			$('#livesearch, #searchfield').click(function(event){
     			event.stopPropagation();
 			});
			
			// Falls Livesearch Box weniger oder 5 Ergebnisse liefert	
			if($(response).find(".product").length <= 6) {
				$('#search #livesearch').css('width', '280px');		
			}
			else if($(response).find(".product").length > 6) {
				$('#search #livesearch').css('width', '561px');	
			};
			
			$('#livesearch').html(response);
			
		}
	});
};


cart.clearBerater = function() {

	product.listener = false;
	
	product.clearCheckbox($("#berater form[name='kategorie'] :input"));
	product.clearCheckbox($("#berater form[name='vorlieben'] :input"));
	
	$("#berater .slider-taste.1").slider('values',0, 0);
	$("#berater .slider-taste.1").slider('values',1, 5);
	$("#berater .slider-taste.2").slider('values',0, 0);
	$("#berater .slider-taste.2").slider('values',1, 5);
	$("#berater .slider-taste.3").slider('values',0, 0);
	$("#berater .slider-taste.3").slider('values',1, 5);
	
	$("#berater .slider-range").slider('values',0, 1);
	$("#berater .slider-range").slider('values',1, 150);
	
	product.listener = true;
	
	product.onFinderChange();
};

cart.clearExperte = function() {

	product.listener = false;
	
	product.clearCheckbox($("#experte form[name='kategorie'] :input"));
	$("#experte form[name='region'] select").prop("selectedIndex", 0);
	$("#experte form[name='bezeichnung'] select").prop("selectedIndex", 0);
	$("#experte form[name='produzent'] select").prop("selectedIndex", 0);
	product.clearCheckbox($("#experte form[name='traubensorte'] :input"));
	$("#experte form[name='traubensorte'] select").prop("selectedIndex", 0);
	
	product.listener = true;
	
	product.onFinderChange();
	
};

product.onFinderChange = function() {

	var arg = {berater:{},expert:{}};
	
	if(product.listener) {
		
		if($("#berater-tab.selected").length == 1) {
		
			product.setFinder();
			
			//Berater
			arg.berater.mode = "berater";
			arg.berater.begleitend = product.getCheckboxFormValue($("#berater form[name='begleitend'] :input"));
			arg.berater.kategorie = product.getCheckboxFormValue($("#berater form[name='kategorie'] :input"));
			arg.berater.geschmack1 = $("#berater .slider-taste.1").slider('values');
			arg.berater.geschmack2 = $("#berater .slider-taste.2").slider('values');
			arg.berater.geschmack3 = $("#berater .slider-taste.3").slider('values');
		   	arg.berater.vorlieben = product.getCheckboxFormValue($("#berater form[name='vorlieben'] :input"));
		   	arg.berater.preis = $("#berater .slider-range").slider('values');
	    }else{
		    //Expert
		    arg.expert.mode = "experte";
		    arg.expert.kategorie = product.getCheckboxFormValue($("#experte form[name='kategorie'] :input"));
		    arg.expert.region = $("#experte form[name='region'] select").val();
		    arg.expert.bezeichnung = $("#experte form[name='bezeichnung'] select").val();
		    arg.expert.produzent = $("#experte form[name='produzent'] select").val();
		    arg.expert.traubensorteprozent = product.getCheckboxFormValue($("#experte form[name='traubensorte'] :input"));
		    arg.expert.traubensorte = $("#experte form[name='traubensorte'] select").val();
		}
	    
	    var data = {berater:$.toJSON(arg.berater),expert:$.toJSON(arg.expert)};
	    //console.log(data);
		product.loadProductIndex(data);
	
	}
	
};


product.setFinder = function() {
	
	var fitting = product.getCheckboxFormValue($("#berater form[name='begleitend'] :input"));
	
	if(fitting.length >= 1) {
	
		var catPanel = $("#berater .kategorie a.closed");
		var tastePanel = $("#berater .geschmack a.closed");
		
		product.setFinderSelect();
		
		if(catPanel) {
			openPanel(catPanel);
		}
		if(tastePanel) {
			openPanel(tastePanel);
		}
		
	}
	
};

product.setFinderSelect = function() {
	
	var fitting = product.getCheckboxFormValue($("#berater form[name='begleitend'] :input"));
	var config = {kategorie:[],taste1:[1,6],taste2:[1,6],taste3:[1,6]};
	
	product.listener = false;
	
	product.clearCheckbox($("#berater form[name='kategorie'] :input"));
	//product.clearCheckbox($("#berater form[name='vorlieben'] :input"));
	
	switch (fitting[0]) {
		case 'aperitivo':
		config = {kategorie:['rotweine','roseweine','weissweine','schaumweine'],taste1:[0,3],taste2:[0,2],taste3:[0,2]};
		break;
	
		case 'pasta':
		config = {kategorie:['rotweine'],taste1:[0,3],taste2:[0,3],taste3:[0,3]};
		break;
	
		case 'hellesfleisch':
		config = {kategorie:['rotweine','weissweine'],taste1:[0,3],taste2:[0,3],taste3:[1,3]};
		break;
	
		case 'dunklesfleisch':
		config = {kategorie:['rotweine'],taste1:[1,4],taste2:[0,5],taste3:[2,5]};
		break;
	
		case 'fisch':
		config = {kategorie:['weissweine','rotweine','schaumweine'],taste1:[0,3],taste2:[0,2],taste3:[0,2]};
		break;
		
		case 'pikantegerichte':
		config = {kategorie:['rotweine'],taste1:[1,3],taste2:[3,5],taste3:[2,5]};
		break;
		
		case 'kaese':
		config = {kategorie:['rotweine','dessertweine'],taste1:[0,5],taste2:[3,5],taste3:[3,5]};
		break;
		
		case 'dessert':
		config = {kategorie:['schaumweine','hellergrappa','dunklergrappa','dessertweine'],taste1:[2,5],taste2:[0,2],taste3:[0,5]};
		break;
		
		case 'zigarren':
		config = {kategorie:['dunklergrappa','rotweine'],taste1:[0,5],taste2:[2,5],taste3:[4,5]};
		break;
	}
	
	product.setCheckbox($("#berater form[name='kategorie'] :input"),config.kategorie);
	$("#berater .slider-taste.1").slider('values',0, config.taste1[0]);
	$("#berater .slider-taste.1").slider('values',1, config.taste1[1]);
	$("#berater .slider-taste.2").slider('values',0, config.taste2[0]);
	$("#berater .slider-taste.2").slider('values',1, config.taste2[1]);
	$("#berater .slider-taste.3").slider('values',0, config.taste3[0]);
	$("#berater .slider-taste.3").slider('values',1, config.taste3[1]);
	
	product.listener = true;

};


product.loadProductIndex = function(arguments) {
	
	showLoading($('#productindex-container'));
	
	$.ajax({
		type:'post',
		url: product.url + '?method=getProductIndex',
		data:arguments,
		success:function(response){
			$('#productindex-container').html(response);
		}
	});
	
};

product.loadProductSidebar = function(arguments) {
	
	if(arguments.mode == 'produkt') {
		var o = $('#productdetail .same');
	} else {
		var o = $('#producerdetail .same');
	}
	showLoading();
	
	$.ajax({
		type:'post',
		url: product.url + '?method=getProductSidebar',
		data:arguments,
		success:function(response){
			o.html(response);
		}
	});
	
};

product.setCheckbox = function(inputs,values) {
	
	$.map(inputs, function(n, i) {
		if(values.indexOf($(n).attr('value')) != -1) {
			$(n).click();
		}
	});
};

product.clearCheckbox = function(inputs) {
	
	$.map(inputs, function(n, i) {
		if($(n).is(':checked')){
			$(n).click();
		};
	});
};

product.getCheckboxFormValue = function(inputs) {
	
	var returnData = $.map(inputs, function(n, i)
	{
	    var a = [];
		if (n.type == "radio" || n.type == "checkbox")
			if($(n).is(':checked')){
				a.push($(n).attr("value"));
			}
	    return a;
	});
	
	return returnData
};

product.searchAction = function(searchAttr) {
	$('#search #searchfield').css('background', 'url(media/img/ajax-loader.gif) no-repeat right #fff');
	if (product.timeout) {
		clearTimeout(product.timeout);
	}
	product.timeout = setTimeout(function(){ product.search(searchAttr); }, product.delay);
};

