var maxSliderX = 161;
var maxDoubleSliderX = 126;

sliders = new Object();

$(function() {
	$('.sliderObj').each(function() {
		this.sliderObj = $(this);
		this.sliderField = this.sliderObj.parent().parent().find('.sliderField');
		this.sliderField1 = this.sliderObj.parent().parent().find('.sliderField1');
		this.sliderField2 = this.sliderObj.parent().parent().find('.sliderField2');
		this.sliderIcon = this.sliderObj.parent().parent().find('.sliderIcon > img');
		if(this.sliderField[0] != null) {
			this.boxID = this.sliderField[0].id;
		}
		sliders[this.boxID] = this;
	}).draggable({
		containment: 'parent',
		start: function(event, ui) {
			if(this.sliderIcon[0] != null) {
				var img = this.sliderIcon[0];
				img.src = img.src.replace('/off/', '/'+on_base_dir+'/');
			}
			if(this.sliderField[0]) {
				showEastTooltip(this.sliderField[0]);
			}
		},
		stop: function(event, ui) {
			if(parseInt(this.sliderField.val()) <= 0) {
				if(this.sliderIcon[0] != null) {
					var img = this.sliderIcon[0];
					img.src = img.src.replace('/'+on_base_dir+'/', '/off/');
				}
			}
			
			if(this.sliderField[0]) {
				hideTooltip(this.sliderField[0]);
			}
			
			try {
				if(callbackList[this.boxID] != null) {
					callbackList[this.boxID](this.sliderField);
				}
			} catch(e) {}
	},
		drag: function(event, ui) {
			currentSliderX = maxSliderX;
			
			if(this.sliderObj.hasClass('doubleSliderObj')) {
				currentSliderX = maxDoubleSliderX;
			}
		
			var x = parseInt(ui.position.left);
			if(steps[this.boxID] != null) {
				var nx = Math.round(x * (steps[this.boxID]()-1) / currentSliderX) * Math.round(currentSliderX / (steps[this.boxID]()-1)) 
				x = nx;
				ui.position.left = x;
			}
			var realValue = parseInt(x * maxRealValues[this.boxID]() / currentSliderX);
			if(validValues[this.boxID] != null) {
				realValue = validValues[this.boxID](realValue);
			}
			this.sliderField.val(realValue);
			this.sliderField.trigger('change');
			refreshDependsValues(this.boxID, realValue);
		}
	});
	
	$('.sliderBox').each(function() {
		this.sliderObj = $(this).find('.sliderObj');
		this.sliderField = this.sliderObj.parent().parent().find('.sliderField');
		this.sliderField1 = this.sliderObj.parent().parent().find('.sliderField1');
		this.sliderField2 = this.sliderObj.parent().parent().find('.sliderField2');
		this.sliderIcon = this.sliderObj.parent().parent().find('.sliderIcon > img');
		if(this.sliderField[0]) {
			this.boxID = this.sliderField[0].id;
		}
	}).click(function(evt) {
		currentSliderX = maxSliderX;
		
		if(this.sliderObj.hasClass('doubleSliderObj')) {
			currentSliderX = maxDoubleSliderX;
		}
		
		var boxPos = $(this).offset();
		var x = evt.clientX - boxPos.left - 8;
		
		if(steps[this.boxID] != null) {
			var nx = Math.round(x * (steps[this.boxID]()-1) / currentSliderX) * Math.round(currentSliderX / (steps[this.boxID]()-1)) 
			x = nx;
		}
		
		this.sliderObj.css('left', x);
		
		var realValue = parseInt(x * maxRealValues[this.boxID]() / currentSliderX);
		if(validValues[this.boxID] != null) {
			realValue = validValues[this.boxID](realValue);
		}
		this.sliderField.val(realValue);
		this.sliderField.trigger('change');
		refreshDependsValues(this.boxID, realValue);
		
		if(realValue <= 0) {
			if(this.sliderIcon[0] != null) {
				var img = this.sliderIcon[0];
				img.src = img.src.replace('/'+on_base_dir+'/', '/off/');
			}
		} else {
			if(this.sliderIcon[0] != null) {
				var img = this.sliderIcon[0];
				img.src = img.src.replace('/off/', '/'+on_base_dir+'/');
			}
		}
		
		try {
			if(callbackList[this.boxID] != null) {
				callbackList[this.boxID](this.sliderField);
			}
		} catch(e) {}
	});
	
	
	$('.sliderField').focus(function() {
		if(this.value == 0) { this.value = ''; }
	}).bind('keyup', function() {
		if(this.sliderObj == null) {
			this.sliderField = $(this);
			this.sliderObj = this.sliderField.parent().find('.sliderObj');
			this.sliderIcon = this.sliderField.parent().find('.sliderIcon > img');
			
			if(this.sliderField[0]) {
				this.boxID = this.sliderField[0].id
			}
		}
		
		var val = this.sliderField.val();
		if(convertValues[this.boxID]) {
			val = convertValues[this.boxID](val);
		} else {
			val = parseInt(val);
		}
		
		if(isNaN(val)) {
			this.value = 0;
			val = 0;
		}
		
		val = (val > maxRealValues[this.boxID]())?maxRealValues[this.boxID]():val;
		
		currentSliderX = maxSliderX;
		
		if(this.sliderObj.hasClass('doubleSliderObj')) {
			currentSliderX = maxDoubleSliderX;
		}
		
		var x = parseInt(val * currentSliderX / maxRealValues[this.boxID]());
		if(isNaN(x)) {
			x = 0;
		}
		this.sliderObj.css('left', x);
		//this.sliderObj[0].style.left = x.toString()+'px';
	}).change(function() {
		if(this.sliderIcon[0] != null) {
			var img = this.sliderIcon[0];
			if(parseInt(this.value) > 0) {
				img.src = img.src.replace('/off/', '/'+on_base_dir+'/');
			} else {
				img.src = img.src.replace('/'+on_base_dir+'/', '/off/');
			}
		}
		
		var val = null;
		if(validValues[this.boxID] != null) {
			val = this.value
			if(convertValues[this.boxID]) {
				val = convertValues[this.boxID](this.value);
			}
			this.value = validValues[this.boxID](val);
			//this.sliderField.val(val);
		}
	}).trigger('keyup').trigger('change');
	
	$('.filterSelect').change(function() {
		if(this.sliderField == null) {
			this.sliderField = $(this);
			this.sliderIcon = this.sliderField.parent().find('.sliderIcon > img');
		}

		if(this.sliderIcon[0] != null) {
			var img = this.sliderIcon[0];
			if(this.value > 0) {
				img.src = img.src.replace('/off/', '/'+on_base_dir+'/');
			} else {
				img.src = img.src.replace('/'+on_base_dir+'/', '/off/');
			}
		}
	})
	//*
	.bind('focus', function() {
		showEastTooltip(this);
	})
	.bind('blur', function() {
		hideTooltip(this);
	})
	//*/
	.hover(function() {
		//showEastTooltip(this);
	}, function() {
		hideTooltip(this);
	})
	.trigger('change');
	
	$('.sliderIcon').hover(function() {
		var field = $(this).parent().find('.sliderField, .filterSelect')[0];
		showEastTooltip(field);
	}, function() {
		var field = $(this).parent().find('.sliderField, .filterSelect')[0];
		hideTooltip(field);
	});
	
	$('#preferredProvider').change(function() {
		if(this.value == 12) { //TIM Provider ID
			$('#timTribu').show();
		} else {
			$('#timTribu').hide();
		}
	});
	
	$('#mobileSearchForm').submit(function() {
		$('input').each(function() {
			if(convertValues[this.id] != null) {
				this.value = convertValues[this.id](this.value);
				if(this.id == 'callTime') {
					this.value /= 2;
				}
			}
		});
		
		//Check for calls and/or sms
		var callsNo = parseFloat($('#mobileCalls').val());
		var callTime = parseFloat($('#callTime').val());
		var smsNo = parseFloat($('#smsNo').val());
		
		if(callsNo <= 0 && smsNo <= 0) {
			alert('Attenzione: devi inserire il numero di chiamate che effettui al giorno e/o il numero di SMS che invii');
			searchCanStart = false;
			return false;
		}
		
		if(smsNo <= 0 && (callsNo <= 0 || callTime <= 0)) {
			alert('Attenzione: devi specificare il numero di chiamate che effettui al giorno e il tempo medio di ogni chiamata');
			searchCanStart = false;
			return false;
		}
		
		searchCanStart = true;
	});
});

function refreshDependsValues(boxID, val) {
	if(depends[boxID] != null) {
		for (var i = 0; i<depends[boxID].length; i++) {
			var b = sliders[depends[boxID][i]];
			b.sliderField.trigger('keyup');
		}
	}
}

function toggleAdvancedBox(elem) {
	if(elem.shown) {
		$(elem).parent().next().slideUp();
		$(elem).parent().css('padding-bottom', '20px');
		elem.shown = false;
	} else {
		$(elem).parent().next().slideDown();
		$(elem).parent().css('padding-bottom', '0');
		elem.shown = true;
	}
}

function showAdvancedSearch() {
	$('.advancedSearchBox').slideDown();
	$('#advancedSearchLink').text('Ricerca Semplice')[0].onclick = hideAdvancedSearch;
	$('#advancedSearch').val(1);
	return false;
}

function hideAdvancedSearch() {
	$('.advancedSearchBox').slideUp();
	$('#advancedSearchLink').text('Ricerca Avanzata')[0].onclick = showAdvancedSearch;
	$('#advancedSearch').val(0);
	return false;
}
