var form_checked = false;

var ACCEPTED_EXT = '.pdf/.doc/.xls/.ppt/.bmp/.wmv/.mov/.avi/.xvid/.divx/.wma/.mpeg4/.mpeg2/.gif/.jpg/.tga/.txt/.asf/.mov/.mp3/.mpg/.mpeg/.mp4/.ra/.ram/.rm/.mod/.tif';

function submit_aggregazione_form() {
	form_checked = true;
	check_form();
	if (form_checked) {
		thisform = document.getElementById('aggregazione_form');
		thisform.action = 'http://apps02.farm.mediaset.it/Contenuti/mail/sendToFormMondoTv.jsp';
		thisform.submit();
		return true;
	} else {
		return false;
	} 
}


function submit_form() {
	form_checked = true;
	check_form();
	if (form_checked) {
		thisform = document.getElementById('aggregazione_form');
		thisform.action = 'http://apps02.farm.mediaset.it/Contenuti/mail/sendToFormIoCanto.jsp';
		thisform.submit();
		return true;
	} else {
		return false;
	} 
}

function submit_form_corrida() {
	form_checked = true;
	check_form();
	if (form_checked) {
		thisform = document.getElementById('aggregazione_form');
		thisform.action = 'http://apps02.farm.mediaset.it/Contenuti/mail/sendToFormCorrida.jsp';
		thisform.submit();
		return true;
	} else {
		return false;
	} 
}

function check_field(fid, fdesc, ftype, freq, fdefault) {
	if (form_checked) {
		if (ftype == 'testo') {
			var check = check_field_text(fid, fdesc, freq, fdefault);
		}	
		if (ftype == 'numerico') {
			var check = check_field_numeric(fid, fdesc, freq, fdefault);
		}	
		if (ftype == 'data') {
			var check = check_field_date(fid, fdesc, freq, fdefault);
		}	
		if (ftype == 'email') {
			var check = check_field_email(fid, fdesc, freq, fdefault);
		}	
		if (ftype == 'textarea') {
			var check = check_field_textarea(fid, fdesc, freq, fdefault);
		}	
		if (ftype == 'combobox') {
			var check = check_field_combobox(fid, fdesc, freq, fdefault);
		}	
		if (ftype == 'checkbox') {
			var check = check_field_checkbox(fid, fdesc, freq, fdefault);
		}	
		if (ftype == 'radiobutton') {
			var check = check_field_radiobutton(fid, fdesc, freq, fdefault);
		}	
		if (ftype == 'file') {
			var check = check_field_file(fid, fdesc, freq, fdefault);
		}	
	}
}

function check_field_text(fid, fdesc, freq, fdefault) {
	var fvalue = document.getElementById(fid).value;
	if ((freq) && (fvalue == '')) required_field(fdesc);
}

function check_field_numeric(fid, fdesc, freq, fdefault) {
	var fvalue = document.getElementById(fid).value;
	if ((freq) && (fvalue == '')) required_field(fdesc);
}

function check_field_date(fid, fdesc, freq, fdefault) {
	var fvalue = document.getElementById(fid).value;
	if ((freq) && (fvalue == '')) { 
		required_field(fdesc);
		return
	}
	
	if ((fvalue != '') && !isValidDate(fvalue)){
		alert('Il campo "' + fdesc +'" non è valido (la data deve essere del tipo dd/mm/yyyy).')
		form_checked = false;
	}
}

function check_field_email(fid, fdesc, freq, fdefault) {
	var fvalue = document.getElementById(fid).value;
	if ((freq) && (fvalue == '')) {
		 required_field(fdesc);
		 return
		}
	if ((fvalue != '') && !valid_email(fvalue)) {		
		alert('Il campo "' + fdesc +'" non è valido.')
		form_checked = false;
	}
}

function check_field_textarea(fid, fdesc, freq, fdefault) {
	var fvalue = document.getElementById(fid).value;
	if ((freq) && (fvalue == '')) required_field(fdesc);
}

function check_field_combobox(fid, fdesc, freq, fdefault) {
	var field = document.getElementById(fid);
	var findex = field.selectedIndex;
	if ((freq) && (findex < 0)) {
		required_field_select(fdesc);
  } else if (findex >= 0) {
		var fvalue = field.options[findex].value;
		if ((freq) && (fvalue == '')) required_field_select(fdesc);
	}
}

function check_field_checkbox(fid, fdesc, freq, fdefault) {
	var field = document.getElementById(fid);
	var findex = 1;
	var fchecked = 0;
	var fieldoption;
	var fvalue = '';
	while ((fieldoption = document.getElementById('checkbox_' + fid + '_' + findex)) != null) {
		if (fieldoption.checked) {
			fchecked++;
			if (fchecked == 1)
				fvalue = fieldoption.value;
			else
				fvalue = fvalue + '|' + fieldoption.value;
		}
		findex++;
	}
	field.value = fvalue;
	if ((freq) && (fvalue == '')) {
		if (--findex == 1)
			required_field_check(fdesc);
		else
			required_field_choose(fdesc);
	}
}

function check_field_file(fid, fdesc, freq, fdefault) {
	var fvalue = document.getElementById(fid).value;
	if ((freq) && (fvalue == '')) required_field(fdesc);
	if (fvalue.length > 0) {								
		if(fvalue.indexOf('.') == -1){
			alert('Non puoi allegare i file con questa estensione');
			form_checked = false;
		} else if (ACCEPTED_EXT.indexOf(fvalue.substring(fvalue.lastIndexOf('.'), fvalue.length)) == -1) {
						alert('Non puoi allegare i file con questa estensione');
						form_checked = false;
					 }
	}
}

function check_field_radiobutton(fid, fdesc, freq, fdefault) {	
	var field =  document.getElementById('aggregazione_form').elements[fid];
	var findex = -1;
	for (var i = 0; i < field.length; i++) {
		if (field[i].checked) findex = i;
	}
	if ((freq) && (findex < 0)) required_field_select(fdesc);
}

function required_field(fdesc) {
		alert('Il campo "' + fdesc + '" è obbligatorio.');
		form_checked = false;
}

function required_field_select(fdesc) {
		alert('Selezionare un valore per il campo "' + fdesc + '".');
		form_checked = false;
}

function required_field_check(fdesc) {
		alert('E\' necessario selezionare il campo "' + fdesc + '".');
		form_checked = false;
}

function required_field_choose(fdesc) {
		alert('Selezionare uno o più valori per il campo "' + fdesc + '".');
		form_checked = false;
}

function valid_number(fvalue) {
	var re = /^[+-.\d]+$/
	return re.test(fvalue)
}

function valid_text(fvalue) {
	var re = /^[a-zA-Z _']+$/
	return re.test(fvalue)
}

function valid_email(fvalue) {
	var re = /^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/
	return re.test(fvalue)		
}

function isValidDate(fvalue)
{
	var datePat = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
	
	if (!datePat.test(fvalue)) 
		return false	
	
	var matchArray = fvalue.match(datePat);	
	if(matchArray[1]=='09') var day = 9
	else if(matchArray[1]=='08') var day = 8
	else var day=parseInt(matchArray[1])
	if(matchArray[2]=='09') var day = 9
	else if(matchArray[2]=='08') var day = 8
	else var month=parseInt(matchArray[2])
	var year=parseInt(matchArray[3])		
		
	if (month < 1 || month > 12 || day < 1 || day > 31 )	
		return false
		
	if ((month==4 || month==6 || month==9 || month==11) && day==31) 		
		return false	
		
	if (month == 2) 
	{ 		
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) 
			return false
		}	
return true
}

function conform_textarea(field,max_length,fdesc){
	var str = field.value;
	if (str.length > max_length) 
	{
		if (fdesc == undefined || fdesc == null) 
			alert('Testo troppo lungo verrà troncato a '+ max_length+' caratteri.');
		else 
			alert('Testo del campo "' + fdesc+'" troppo lungo verrà troncato a '+ max_length+' caratteri.');
		field.value = str.substring(0,max_length);				
	}
}
