function chooseContrib(tagName){   
    var i=0;
    var radio_value ="";
    var dependency=new String("");
    for(i=0;i<document.getElementsByName(tagName).length;i++){
        if (document.getElementsByName(tagName).item(i).type=="radio"){
       
               if (document.getElementsByName(tagName).item(i).checked){
                 radio_value = document.getElementsByName(tagName).item(i).value
                 dependency_checked= document.getElementsByName(tagName).item(i).getAttribute("dependency") 
                }  
                 dependency+= document.getElementsByName(tagName).item(i).getAttribute("dependency") + ","
               
        }
        
    }
    dependency = dependency.substring(0,dependency.length-1)
    HideElements(dependency)
   
    if (dependency_checked!=''){
          if (document.getElementById(dependency_checked)!=null)
            document.getElementById(dependency_checked).style.display ="block";
           
     }    
}


function checkObbligatoryField(tagName)
{
   var radio_value="";
   //verifico la obbligatorieta in base a quello selezionato
   for(i=0;i<document.getElementsByName(tagName).length;i++){
        if (document.getElementsByName(tagName).item(i).type=="radio"){
          if (document.getElementsByName(tagName).item(i).checked){
               radio_value = document.getElementsByName(tagName).item(i).value
             
               switch (radio_value)
               {
                    case 'image' :{
                        document.getElementById('flUpload').setAttribute("v_mode","Obligatory");
                        document.getElementById('txtTitle').setAttribute("v_mode","");
                        document.getElementById('txtTag').setAttribute("v_mode","");
                        
                        break;
                    } 
                    case 'video' : {   
                        document.getElementById('flUpload').setAttribute("v_mode","");
                        document.getElementById('txtTitle').setAttribute("v_mode","Obligatory");
                        document.getElementById('txtTag').setAttribute("v_mode","Obligatory");
                        
                        if (document.getElementById('ddl_contrsource').value=="ovi")
                            document.getElementById('txtOviPathImage').setAttribute("v_mode","Obligatory");
                        else
                            document.getElementById('txtOviPathImage').setAttribute("v_mode","");
                        
                        break;
                    } 
                        
               }
               
            }
       } 
    }





}

function HideElements(dependency){
    var arr_elements = dependency.split(",")
    var y=0;
    for (y=0;y<arr_elements.length;y++){
         if (document.getElementById(arr_elements[y])!=null)
            document.getElementById(arr_elements[y]).style.display ="none";
    }
    
    
}
function chooseVideoType(tag)
{   
    var i=0;
    var dependency=new String("");
    
    var ddl_contribsouce= tag;
        for (i=0;i<ddl_contribsouce.options.length;i++){
        dependency+= ddl_contribsouce.options[i].getAttribute("dependency") +","
    
    }

    dependency = dependency.substring(0,dependency.length-1)
    HideElements(dependency);
     
    var selectedValue   = ddl_contribsouce.value;
    var dependency   = ddl_contribsouce.options[ddl_contribsouce.selectedIndex].getAttribute("dependency");
    if (dependency !=""){   
    
        if (document.getElementById(dependency)!=null)
            document.getElementById(dependency).style.display=selectedValue =="ovi"?"block":"none" ;
    }
    
   
}

///////////////////////////////////////////
////////// PreDefined  Functions //////////
///////////////////////////////////////////

// Check email
function isEmail(element){ if(!/^(\w+\.)*(\w+)@(\w+\.)+([a-zA-Z]{2,4})$/.test(element.value)){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' non è una email valida\r\n"; }; return; }

// Check integer numbers
function isDigit(element)
{ 
	if(!/^\d/.test(element.value)){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' può contenere solo numeri\r\n"; return;};
	if(element.getAttribute('minlength') > element.value.length){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' deve contenere almeno " + element.getAttribute('minlength') + " caratteri\r\n"; return;};
	if(element.getAttribute('minvalue') > element.value || element.getAttribute('maxvalue') < element.value){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' deve essere compreso tra " + element.getAttribute('minvalue') + " e " + element.getAttribute('maxvalue') + "\r\n"; };
	return;
}

// Check date format: dd/mm/yyyy
function isDate(element){ if(!/^(((0[1-9]|[12][0-9]|3[01])([-./])(0[13578]|10|12)([-./])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-./])(0[469]|11)([-./])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-./])(02)([-./])(\d{4}))|((29)(\.|-|\/)(02)([-./])([02468][048]00))|((29)([-./])(02)([-./])([13579][26]00))|((29)([-./])(02)([-./])([0-9][0-9][0][48]))|((29)([-./])(02)([-./])([0-9][0-9][2468][048]))|((29)([-./])(02)([-./])([0-9][0-9][13579][26])))/.test(element.value)){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' non è una data valida nel formato gg/mm/aaaa\r\n"; }; return; }


// Check string
function isString(element){
	//if(!/^[a-zA-Z0-9.,\s-]+$/.test(element.value)){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' può contenere solo lettere, numeri ed i seguenti caratteri: ,.- spazio\r\n"; return; };
	if(!/.*/.test(element.value)){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' può contenere solo lettere, numeri ed i seguenti caratteri: ,.- spazio\r\n"; return; };
	if(element.getAttribute('minlength') > element.value.length){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' deve contenere almeno " + element.getAttribute('minlength') + " caratteri\r\n"; };
	return;
}


function isHtml(element){
    
    if(element.getAttribute('minlength') > element.value.length){
       alertText += "Il campo '" + element.getAttribute('V_Label') + "' deve contenere almeno " + element.getAttribute('minlength') + " caratteri\r\n"; 
    }
    return;
}



///////////////////////////////////////////
////////////// DO NOT MODIFY //////////////
///////////////////////////////////////////

// Get first form from document
var theForm = document.forms[0];

// Init alert text
var alertText = '';

// Check obligatory for Text and TextArea element
function checkObligatoryText(element){ if(element.value == ''){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' è obbligatorio\r\n"; return; } return; }

// Check obligatory for CheckBox element
function checkObligatoryCheckBox(element)
{
	var radio = eval('theForm.' + element.getAttribute('name'));
	
	if(radio.length == null){ if(!element.checked){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' è obbligatorio\r\n"; } return; }

	var count = 0;
	for (j = 0; j < radio.length; j++){ if(radio[j].checked){ count += 1; } }
	if(count == 0){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' è obbligatorio\r\n"; } return;
}

// Check obligatory for ComboBox element
function checkObligatoryComboBox(element){ if(element.selectedIndex < 0){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' è obbligatorio\r\n"; } return; }

// Check obligatory for ListBox element
function checkObligatoryListBox(element)
{ 
	var count = 0;
	for(var j = 0; j < element.options.length; j++){ if(element.options[j].selected){ count += 1; }; }
	if(count < element.getAttribute('minvalue') || count > element.getAttribute('maxvalue')){ alertText += "Nel campo '" + element.getAttribute('V_Label') + "' devono essere selezionati tra " + element.getAttribute('minvalue') + " e " + element.getAttribute('maxvalue') + " elementi\r\n"; }
	return; 
}

// Check obligatory for File Upload element
function checkObligatoryFile(element)
{ if(element.value == ''){ alertText += "Il campo '" + element.getAttribute('V_Label') + "' è obbligatorio\r\n"; } return; }

// Check coherence for Text and TextArea element
function checkCoherenceText(element){ if(element.value != ''){ eval(element.getAttribute('V_Type') + "(element);"); } ; 
return;	
}

// Check coherence for different element of Text and TextArea
function checkCoherenceAll(element){ eval(element.getAttribute('V_Type') + "(element);"); return; }

// Get all element from form and validate them
function checkForm()
{
	
	alertText = '';
    
    
	for(i = 0; i < theForm.elements.length; i++)
	{
		switch(theForm.elements[i].getAttribute('V_Mode'))
		{
			case 'Obligatory' :
					switch(theForm.elements[i].type)
					{
						case 'text' : checkObligatoryText(theForm.elements[i]); checkCoherenceText(theForm.elements[i]); break;
						case 'textarea' : checkObligatoryText(theForm.elements[i]); checkCoherenceText(theForm.elements[i]); break;
						case 'checkbox' : checkObligatoryCheckBox(theForm.elements[i]); break;
						case 'select-one' : checkObligatoryComboBox(theForm.elements[i]); break;
						case 'select-multiple' : checkObligatoryListBox(theForm.elements[i]); break;
						case 'file' : checkObligatoryFile(theForm.elements[i]); break;
						case 'radio' : checkObligatoryCheckBox(theForm.elements[i]); break;
						case 'password' : checkObligatoryText(theForm.elements[i]); break;
					}
					break;
			case 'Coherence' : 
					switch(theForm.elements[i].type)
					{
					
						case 'text' : checkCoherenceText(theForm.elements[i]); break;
						case 'textarea' : checkCoherenceText(theForm.elements[i]); break;
						case 'checkbox' : checkCoherenceAll(theForm.elements[i]); break;
						case 'select-one' : checkCoherenceAll(theForm.elements[i]); break;
						case 'select-multiple' : checkCoherenceAll(theForm.elements[i]); break;
						case 'file' : checkCoherenceAll(theForm.elements[i]); break;
						case 'radio' : checkCoherenceAll(theForm.elements[i]); break;
						case 'password' : checkCoherenceText(theForm.elements[i]); break;
					}
					break;
		}
	}
	if (alertText != ''){ alert('ATTENZIONE\r\n\r\n' + alertText); }else{ prepareData(); theForm.submit(); }
}

// Prepare form data to send
function prepareData(){ 
for(i = 0; i < theForm.elements.length; i++){ 
   switch(theForm.elements[i].getAttribute("V_Type"))
   {
	case 'isHtml' :  theForm.elements[i].value = escape( theForm.elements[i].value ); break;
   }	
   theForm.elements[i].name = theForm.elements[i].id; 
   // = theForm.elements[i].getAttribute('V_Label'); 
 } 
}
