var slideEffectEnable = 1;

document.addEvent('domready',function() {	
	var state = "free";
	var prevWrap = $("prev");
	var prevButton = prevWrap.getElements("span.larr");
	var nextWrap = $("next");
	var nextButton = nextWrap.getElements("span.rarr");
	var slideDiv = $("cars");
	var slideLine = $("cars-line");
	var slideElements = slideLine.getElements("li");

	
	function opButton(type,action) {

		switch(type) {
			case 'prev':
				if(action) {
					prevButton.addClass("larr" + action);
				} else {
					prevButton.removeClass("larr-disable");
				}
			break;
			
			case 'next':
				if(action) {
					nextButton.addClass("rarr" + action);
				} else {
					nextButton.removeClass("rarr-disable");
				}
			break;
		}
		
		return false;
	}
	
	function checkButtonsStates() {
		opButton("prev","");
		opButton("next","");
	
		if(parseInt(slideLine.getStyle('margin-left')) == 0) {
			opButton("prev","-disable");
			opButton("next","");
			return true;
		}
		
		if((parseInt(slideLine.getStyle('margin-left')) -  parseInt(slideDiv.getStyle('width'))) == (parseInt(slideLine.getStyle('width'))*-1)) {
			opButton("prev","");
			opButton("next","-disable");
			return true;
		}
	}
	
	checkButtonsStates();
	//alert("z");	
	if(slideEffectEnable == 1) {
		var slideEffect = new Fx.Morph(slideLine, {duration: 'short', transition: Fx.Transitions.Sine.easeOut, onComplete: function() {
			state = "free";
			checkButtonsStates();
		}});
	}
			
	nextWrap.addEvent("click",function() {
		if(state == "free" && (parseInt(slideLine.getStyle('margin-left')) - parseInt(slideDiv.getStyle('width'))) > (parseInt(slideLine.getStyle('width'))*-1)) {
			state = "working";
			var newMargin = ((parseInt(slideLine.getStyle('margin-left')) - parseInt(slideDiv.getStyle('width'))) + 'px');
			if(slideEffectEnable) {
				slideEffect.start({
					'margin-left': newMargin
				});
			} else {
				slideLine.setStyle('margin-left', newMargin);
			}
		}
		
		return false;
	});
	
	nextWrap.addEvent("mouseover",function() {
		nextButton.addClass("rarr-hover");
		return false;
	});
	
	nextWrap.addEvent("mouseout",function() {
		nextButton.removeClass("rarr-hover");
		return false;
	});
			
			
	prevWrap.addEvent("click",function() {
		
		if(state == "free" && (parseInt(slideLine.getStyle('margin-left')) + parseInt(slideDiv.getStyle('width'))) <= 0) {
			state = "working";
			var newMargin = ((parseInt(slideLine.getStyle('margin-left')) + parseInt(slideDiv.getStyle('width'))) + 'px');
			if(slideEffectEnable) {
				slideEffect.start({
					'margin-left': newMargin
				});
			} else {
				slideLine.setStyle('margin-left', newMargin);
			}
		}	
		
		return false;	
	});
	
	prevWrap.addEvent("mouseover",function() {
		prevButton.addClass("larr-hover");
		return false;
	});
	
	prevWrap.addEvent("mouseout",function() {
		prevButton.removeClass("larr-hover");
		return false;
	});
	
	/* Этот блок кода для выборки машин в списке по интервалу стоимости */	
		
	var selectors_container = $('selectors-table');
	var models_container = $('models-table');
	var selectors = selectors_container.getElements("td.price-suggest");
	var models = models_container.getElements("td.model");

	if(selectors && models) {
		function clearSelectedSelectors() {
			selectors.each(function(item,index){
				item.removeClass("selected");
			});
			return true;
		}
		
		function clearSelectedModels() {
			models.each(function(item,index){
				item.removeClass("selected-arrow-up");
			});
			return true;
		}

		function SelectModelsByPrices(item,minprice,maxprice) {
			item.addClass("selected");
			var founded = 0;
			
			models.each(function(model,index) {
				var interval = model.getProperty("rel");
				if(interval) {
					var modelInterval = interval.split('-');
					minprice = parseInt(minprice);
					maxprice = parseInt(maxprice);
					modelInterval[0] = parseInt(modelInterval[0]);
					modelInterval[1] = parseInt(modelInterval[1]);
					
					if( ((modelInterval[0] >= minprice && modelInterval[0] <= maxprice) || (modelInterval[1] >= minprice && modelInterval[1] <= maxprice)) || (modelInterval[0] <= minprice && modelInterval[1] >= maxprice) ) {
						model.addClass('selected-arrow-up');
						founded++;
					}
				}
			});
			
			if(founded > 0) {
				selectors_container.addClass('top-red-line');
			} else {
				selectors_container.removeClass('top-red-line');
			}
			return true;
		}
	
		selectors.each(function(item,index){
			var interval = item.getProperty("rel");
			if(interval) {
				var selectorInterval = interval.split('-');
				var WorkPoint = item.getElement("a");
				if(WorkPoint) {
					WorkPoint.addEvent("click",function(){
						clearSelectedSelectors();
						clearSelectedModels();
						SelectModelsByPrices(item,selectorInterval[0],selectorInterval[1]);
						WorkPoint.blur();
						return false;
					});
				}
			}
		});	
		
		function selectSliderByRelValue(value) {
			if(slideElements && state == "free") {
				slideElements.each(function(item,index) {
					if(item.getProperty("rel").toLowerCase() == value.toLowerCase()) {
						var newMargin = (((index*parseInt(slideDiv.getStyle('width'))) * -1) + 'px');
						state = "working";
						slideEffect.start({
							'margin-left': newMargin
						});
					}	
				});
			}
			return false;
		}
		
		models.each(function(item,index){
			var WorkPoint = item.getElement("a");
			if(WorkPoint) {
				WorkPoint.addEvent("mouseover",function(){
					selectSliderByRelValue(WorkPoint.getProperty("rel"));
				});
			}
		})
	}
		
	var myFunkyAccordeon = new AccD($$('#accordeon li'),{openWidth:500, border:0});	
});