var slideEffectEnable = 1;

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

	
	function opButton(type,action) {

		switch(type) {
			case 'prev':
				if(prevButton) {
					if(action) {
						prevButton.addClass("larr" + action);
					} else {
						prevButton.removeClass("larr-disable");
					}
				}
			break;
			
			case 'next':
				if(nextButton) {
					if(action) {
						nextButton.addClass("rarr" + action);
					} else {
						nextButton.removeClass("rarr-disable");
					}
				}
			break;
		}
		
		return false;
	}
	
	function checkButtonsStates() {
		opButton("prev","");
		opButton("next","");
	
		if(slideLine) {
			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();
	
	if(slideEffectEnable == 1) {
		var slideEffect = new Fx.Morph(slideLine, {duration: 'short', transition: Fx.Transitions.Sine.easeOut, onComplete: function() {
			state = "free";
			checkButtonsStates();
		}});
	}
		
	if(nextWrap) {	
		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;
		});
	}
			
	if(prevWrap) {
		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;
		});
	}
	
	/* Этот блок кода для выборки машин в списке по интервалу стоимости */	

	if($('selectors-table') && $('models-table')) {
		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"));
					});
				}
			})
		}
	}
		
	if(typeof AccD != "undefined") {
		var myFunkyAccordeon = new AccD($$('#accordeon li'),{openWidth:500, border:0});	
	}
});
