﻿$(document).ready(function() {
	$('.contenitoreForm input[type=submit]').bind('click', function() {
		return validate('.contenitoreForm *[class*=required], #contenitoreForm *[class*=validate]');
	});
	$('#contatti input[type=submit]').bind('click', function() {
		return validate('#contatti *[class*=required], #contatti *[class*=validate]');
    });
    setTimeout('initOperazioni()', 1000);
});

   function validate(objs) {
   	var isValid = 0;
   	$(objs).each(function() {
   		$(this).attr('baseClass', $(this).attr('class'));
   		var cssClass = $(this).attr('class');
   		var value = $(this).val();
   		switch (cssClass.replace('required', '').replace('validate', '').replace(' invalid', '').replace(' ', '')) {
   			case 'email':
   				var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
   				if (filter.test(value)) {
   					$(this).attr('class', cssClass.replace(' invalid', ''));
   					isValid++;
   				}
   				else {
   					if (cssClass.indexOf('required') != -1) $(this).attr('class', $(this).attr('baseClass') + ' invalid');
   					else {
   						if (cssClass.indexOf('validate') != -1 && value.length > 0) $(this).attr('class', $(this).attr('baseClass') + ' invalid');
   						else {
   							$(this).attr('class', cssClass.replace(' invalid', ''));
   							isValid++;
   						}
   					}
   				}
   				break;
   			case 'textarea':
   				if (value.length > 0 && value != $(this).attr('def')) {
   					$(this).attr('class', cssClass.replace(' invalid', ''));
   					isValid++;
   				}
   				else {
   					if (cssClass.indexOf('required') != -1) $(this).attr('class', $(this).attr('baseClass') + ' invalid');
   					else {
   						if (cssClass.indexOf('validate') != -1) {
   							$(this).attr('class', cssClass.replace(' invalid', ''));
   							isValid++;
   						}
   					}
   				}
   				break;
   			case 'checkbox':
   				var o = $(this);
   				if ($(o).attr('checked')) {
   					$('label[for=' + $(o).attr('id') + ']').attr('class', $(o).attr('class').replace(' invalid', ''));
   					isValid++;
   				}
   				else {
   					if (cssClass.indexOf('required') != -1) $('label[for=' + $(o).attr('id') + ']').attr('class', $(o).attr('baseClass') + ' invalid');
   					else {
   						if (cssClass.indexOf('validate') != -1) {
   							$(this).attr('class', cssClass.replace(' invalid', ''));
   							isValid++;
   						}
   					}
   				}
   				break;
   			case 'phone':
   				var filter = /^([0-9\.\-\/]){8,11}$/;
   				if (filter.test(value)) {
   					$(this).attr('class', cssClass.replace(' invalid', ''));
   					isValid++;
   				}
   				else {
   					if (cssClass.indexOf('required') != -1) $(this).attr('class', $(this).attr('baseClass') + ' invalid');
   					else {
   						if (cssClass.indexOf('validate') != -1 && value.length > 0) $(this).attr('class', $(this).attr('baseClass') + ' invalid');
   						else {
   							$(this).attr('class', cssClass.replace(' invalid', ''));
   							isValid++;
   						}
   					}
   				}
   				break;
   			default:
   				if (value.length > 0) {
   					$(this).attr('class', cssClass.replace(' invalid', ''));
   					isValid++;
   				}
   				else {
   					if (cssClass.indexOf('required') != -1) $(this).attr('class', $(this).attr('baseClass') + ' invalid');
   					else {
   						if (cssClass.indexOf('validate') != -1) {
   							$(this).attr('class', cssClass.replace(' invalid', ''));
   							isValid++;
   						}
   					}
   				}
   				break;
   		}
   	});
   	if (isValid < $(objs).length - 1) isValid = false;
   	return isValid;
}
function initOperazioni() {
    var o = '#operazioniTrattate > #contenitoreHidden';
    if ($(o)[0]) {
        $(document).ready(function() {
            setSlideShow(o);
        });
        $(o + ' > a').bind('mouseover', function() {
            $(o).stop();
        }).bind('mouseout', function() {
            setSlideShow(o);
        });
    }
}
function setSlideShow(o) {
    var step = ($(o).css('left').replace('px', '') < 0 ? (155 + parseFloat($(o).css('left').replace('px', ''))) : 155);
    var time = 2000 * step / 155;
    $(o).animate({ left: '-=' + step + 'px' }, time, 'linear', function() {
        $(o + ' > a:first').appendTo(o);
        $(o).css('left', '0px');
        setSlideShow(o);
    });
}
function AnnullaValidazione() {
	if ($('.rif').val() != '')
		Page_Validators = new Array();
}
