var form;
var lang = 'it';
var MSG = new Array();

MSG['Descrizione'] = new Array();
MSG['Descrizione']['it'] = 'Descrizione';

MSG['Url'] = new Array();
MSG['Url']['it'] = 'Url';

MSG['Categoria'] = new Array();
MSG['Categoria']['it'] = 'Categoria';

MSG['Adesione'] = new Array();
MSG['Adesione']['it'] = 'Adesione';


function reformat(valuex){		
	return trim(valuex.replace(/[\n\r]/g,' '))	
}



function check_field(fid, fdesc, ftype, freq, fdefault) {
	var check = false;
	switch (ftype)	{
		
		
		
		case 'testo'	:
						check = check_field_text(fid, fdesc, freq, fdefault);
						break;
		case 'numerico'	:
						check = check_field_numeric(fid, fdesc, freq, fdefault);
						break;
		case 'data'	:
						check = check_field_date(fid, fdesc, freq, fdefault);
						break;		
		case 'email'	:
						check = check_field_email(fid, fdesc, freq, fdefault);
						break;
		case 'textarea'	:
						check = check_field_textarea(fid, fdesc, freq, fdefault);
						break;		
		case 'combobox'	:	
						check = check_field_combobox(fid, fdesc, freq, fdefault);
						break;
		case 'checkbox'	:
						check = check_field_checkbox(fid, fdesc, freq, fdefault);
						break;		
		case 'radiobutton'	:
						check = check_field_radiobutton(fid, fdesc, freq, fdefault);
						break;		
		case 'file'	:
						check = check_field_file(fid, fdesc, freq, fdefault);
						break;
	}
	return 	check;
}




function check_field_negozio(fid, fdesc, freq, fdefault) {
	var fvalue = form.elements[fid].value;
	if (freq && fvalue == '') {
		required_field(fdesc);
		return false;
	}

 return true;	
}

function check_field_indirizzo(fid, fdesc, freq, fdefault) {
	var fvalue = form.elements[fid].value;
	if (freq && fvalue == '') {
		required_field(fdesc);
		return false;
	}

 return true;	
}




function check_field_text(fid, fdesc, freq, fdefault) {
	var fvalue = form.elements[fid].value;
	
	if (freq && fvalue == '') {
		required_field(fdesc);
		return false;
	}
	if (fvalue == '') {		
		if (lang == 'it') 
			alert('Il campo "' + MSG[fdesc][lang] +'" non è valido.');
		else 
			alert('The field "' + MSG[fdesc][lang] +'" is not valid.')	;
			
		return false
	}		
 return true;	
}






function check_field_numeric(fid, fdesc, freq, fdefault) {
	var fvalue = form.elements[fid].value;
	if (freq && fvalue == '') {
		required_field(fdesc);
		return false;
	}
	if ((fvalue != '') && !valid_number(fvalue)){
		if (lang == 'it')
			alert('Il campo "' + MSG[fdesc][lang] +'" non è valido.');
		else
			alert('The field "' + MSG[fdesc][lang] +'" is not valid.')	;
			
		return false;
	}	
	return true;
}

function check_field_date(fid, fdesc, freq, fdefault) {
	var fvalue = form.elements[fid].value;
	if (freq && fvalue == '') { 
		required_field(fdesc);
		return false;
	}
	
	if ((fvalue != '') && !valid_date(fvalue)){
		if (lang == 'it')
			alert('Il campo "' + MSG[fdesc][lang] +'" non è valido')
		else
			alert('The field "' + MSG[fdesc][lang] +'" is not valid.')	
		return false;
	}	
	return true;
}

function check_field_email(fid, fdesc, freq, fdefault) {
	var fvalue = form.elements[fid].value;
	if (freq && fvalue == '') {
		 required_field(fdesc);
		 return false
		}
	if ((fvalue != '') && !valid_email(fvalue)) {		
		if (lang == 'it')
			alert('Il campo "' + MSG[fdesc][lang] +'" non è valido.')
		else
			alert('The field "' + MSG[fdesc][lang] +'" is not valid.')	;
				
		return false
	}	
	return true;
}

function check_field_textarea(fid, fdesc, freq, fdefault) {
	var fvalue = form.elements[fid].value;
	if (freq && fvalue == '') {
		required_field(fdesc);
		return false;
	}
	
	if (fvalue.length > 999){
		form.elements[fid].value = fvalue.value.substring(0,999);
		if (lang == 'it')
			alert('Testo del campo "' + MSG[fdesc][lang] +'" troppo lungo verrà troncato.');
		else
			alert('The field "' + MSG[fdesc][lang] +'" must be no more than 1000 characters long.');	
		
		return false;
	}
	
	return true;
}

function check_field_combobox(fid, fdesc, freq, fdefault) {
	var field = form.elements[fid];
	var findex = field.selectedIndex;
	if ((freq) && (findex < 0)) {
		required_field_select(fdesc);
		return false;
  } else if (findex >= 0) {
		var fvalue = field.options[findex].value;
		if (freq && fvalue == '') {
			required_field_select(fdesc);
			return false;
		}
	}
	return true;
}

function check_field_checkbox(fid, fdesc, freq, fdefault) {
	var field = form.elements[fid];	
	var fchecked	= false; 
	if (field.length) {
		for (j = 0; j < field.length; j++)
    	if (field[j].checked == true ) 
    	{    		  	
    				fchecked = true;
    				break;
    	}
		} else if (field.checked == true)
						fchecked = true;
			
	if (!fchecked && freq ){
		 required_field_check(fdesc)
		 return false;
		}
	
	return true;	
}	

function check_field_radiobutton(fid, fdesc, freq, fdefault) {
	var field = form.elements[fid];
	var fchecked	= false; 
	for (j = 0; j < field.length; j++)   	  	
    	if (field[j].checked == true) 
    	{
    		fchecked = true;
    		break;
    	}
    				
	if (!fchecked && freq ){
		 required_field_select(fdesc)
		 return false;
		}
	
	return true;	
}

function check_field_file(fid, fdesc, freq, fdefault)
{                 	
	var fvalue = form.elements[fid].value;

	if (freq && fvalue == '') {
		required_field(fdesc);
		return false;
	}		
	
	if (fvalue != '') {
		var validExt = new Array('txt','doc','pdf');
		var ext = fvalue.substring(fvalue.lastIndexOf(".")+1, fvalue.length).toLowerCase();
		for (var i = 0; i < validExt.length ; i++)
               if (ext == validExt[i])
                      return true; 
    if (lang == 'it')
			alert('Il campo "' + MSG[fdesc][lang] +'" non è valido, estensione .'+ ext +' non permessa, solo :(txt,doc,pdf)');
		else
			alert('The field "' + MSG[fdesc][lang] +'" is not valid, allowed :(txt,doc,pdf)');
				
		return false;
	}
	return true;                                                
}


function required_field(fdesc) {
	if (lang == 'it')
		alert('Il campo "' + MSG[fdesc][lang] + '" è obbligatorio.');
	else
		alert('Enter "' + MSG[fdesc][lang] + '"');	
}

function required_field_select(fdesc) {
	if (lang == 'it')
		alert('Selezionare un valore per il campo "' + MSG[fdesc][lang] + '".');		
	else
		alert('Enter "' + MSG[fdesc][lang] + '"');
}

function required_field_check(fdesc) {
	if (lang == 'it')
		alert('E\' necessario selezionare il campo "' + MSG[fdesc][lang] + '".');		
	else
		alert('Enter "' + MSG[fdesc][lang] + '"');
}

function required_field_choose(fdesc) {
	if (lang == 'it')
		alert('Selezionare uno o più valori per il campo "' + MSG[fdesc][lang] + '".');
	else
		alert('Enter "' + MSG[fdesc][lang] + '"');		
}

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 valid_date(fvalue) {
	var datePat = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
	
	if (!datePat.test(fvalue)) 
			return false		
	
	var matchArray = fvalue.match(datePat);	
	
	var day=parseInt(matchArray[1],10);
	var month=parseInt(matchArray[2],10);
	var year=parseInt(matchArray[3],10);		
		
	if (month < 1 || month > 12 || day < 1 || day > 31 )	
		return false
		
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		if (lang == 'it')
			alert('Il mese ' + month + ' ha solo 30 giorni');
		else
			alert('is not a valid date');
			
		return false	
	}
		
	if (month == 2) 
	{ 		
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			if (lang == 'it')
				alert('febbraio ' + year + ' non ha ' + day + ' giorni');
			else
				alert('is not a valid date');
						
			return false
			}
		}	
return true
}

function trim(valuex)
{
  reTrim=/\s+$|^\s+/g
  return valuex.replace(reTrim,'')
}

function makeGiorno(){
	var xarray = new Array();
	xarray[0] = new Option('','');
	for (i=1;i<10;i++) xarray[i] = new Option('0'+i,'0'+i);
	for (i=10;i<=31;i++) xarray[i] = new Option(i,i);
	return xarray;
}

function makeMese(){
	var xarray = new Array()
	var mesiarray = (form.elements['lang'] && form.elements['lang'].value == 'en') ? 
												new Array('','January','February','March','April','May','June','July','August','September','October','November','December'):
												new Array('','gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre');
									
	xarray[0] = new Option('','');
	for (i=1;i<10;i++) xarray[i] = new Option(mesiarray[i],'0'+i);
	for (i=10;i<=12;i++) xarray[i] = new Option(mesiarray[i],i);
	return xarray;
}

function makeAnno(){
	var xarray = new Array();
	xarray[0] = new Option('','');
	for (i=1;i<70;i++) xarray[i] = new Option(1936+i,1936+i);
	return xarray;
}

function populateCombo(xcombo,xarray){	
	for (m=xcombo.options.length-1;m>0;m--)
		xcombo.options[m]=null;
	var selectedarray=eval(xarray);
	for (i=0;i<selectedarray.length;i++)
			xcombo.options[i]=new Option(selectedarray[i].text,selectedarray[i].value);
	xcombo.options[0].selected=true;
}

function check_form_url()
{	
	
	if (form.elements['lang'] && form.elements['lang'].value == 'en')
			lang = 'en';


		if ( !check_field('Adesione', 'Adesione', 'checkbox', true, '') ) {
	//	form.elements['Adesione'].focus();
		return false;
	}
	
	
				
	if ( !check_field('Descrizione', 'Descrizione', 'testo', true, '') ) {			
		form.elements['Descrizione'].focus();
		return false;
	}
	
		if ( !check_field('Url', 'Url', 'testo', true, '') ) {			
		form.elements['Url'].focus();
		return false;
	}
	
	
	if ( !check_field('Categoria', 'Categoria', 'combobox', true, '') ) {			
		form.elements['Categoria'].focus();
		return false;
 }
 
	
	form.action = '/form/registra_url.php';
	return true;	
}


function activateRequested(fid){
	var field = form.elements[fid];
	 for (j = 0; j < field.length; j++)
    field[j].disabled = false;  
}

function disabledRequested(fid){
	var field = form.elements[fid];
	 for (j = 0; j < field.length; j++)
    field[j].disabled = true;  
}


function init(thisform) {		
		form = thisform;
}
