$(function(){
  dialog_init('dialog_ajax', 920, 450);
  dialog_init('dialog_ajax_small', 600, 400);
});

function dialog_init(did, dw, dh){
	if (dh > 0) {
		$('#' + did).dialog({
			autoOpen: false,
			width: dw,
			height: dh
		});
	}
	else {
		$('#' + did).dialog({
			autoOpen: false,
			width: dw
		});
	}
}

//funzione da richiamare per apertura dialog
function openDialog(id, dtit){
	$('form').append($('div[aria-labelledby = ui-dialog-title-' + id + ']'));
	$('#'+id).dialog('open');				
}

// if no other form has been focussed, submit first form on page
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function moveLayer(objID, x, y) {
  obj=document.getElementById(objID)
  x = x + "px";
  y = y + "px";
  obj.style.left = x;
  obj.style.top = y;
}

function trim(stringToTrim) {
  return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function enterSubmit(form){
	if (CTRL_form(form, 'req')){
		$(form).submit()
	}
}

function LOADfocus(form){					//Mette il focus sul primo elemento text, textarea o password della form
}

function FirstUPPERCASE(field){
	TXT=field.value;
	if (TXT!="") {
		TXT=TXT.substring(0,1).toUpperCase() + TXT.substring(1,TXT.length);
	}
	field.value=TXT;
};

function AllUPPERCASE(field){
	TXT=field.value;
	if (TXT!="") {
		TXT=TXT.toUpperCase();
	}
	field.value=TXT;
};

function NOquote(text){					//change "char in \" and ' char in \'
	txt=text.value.replace(/"/g,'&#34;');
	txt=txt.replace(/'/g,"&#39;");
	text.value=txt;
}

function DELquote(form){	
	var JQform = $(form);
	$('textarea,input[type=text],input[type=password]', JQform).each(function(){
		NOquote(this);
	});
}

function CTRLdata(form){//change "char in \" and ' char in \'
	var attr  = 'name';
	var match = 'data';
  var JQform = $(form);
  var regexpr_data = /[0-3][0-9]\-[0-1][0-9]\-[1-2][0-9][0-9][0-9]/
		
	$("[" + attr + "^='" + match + "'", JQform).each(function(){
		value = $(this).val();
  	if (value != "") {
			if (!regexpr_mail.exec(value)) {
				$(this).addClass('form-ctrl-failed');
				alert("ATTENZIONE!\n Formato errato nel campo data\n la data deve essere immessa con formato: 23-02-1978.");
				return false;
			}
		}
	});
	return true;
}

function CTRL_rec(form){
	var Error="ATTENZIONE\n";
	var OK=true;
	var j=0;
	var error = 0;	
	var formObj= $(form);
	var regexpr_tel = /[0-9]+\s[0-9]+/
	var regexpr_mail = /[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}/

	var recTable = $("#addUserRec");
	$("#addUserRec tr").each(function(){
	  switch ($('[name*=tipoRec]', this).val()) {
	    case 2:
		case 7:
			if(!regexpr_mail.exec($('[name*=rec]', this).val())){
				$(this).addClass('form-ctrl-failed');
				OK = false;
			    error = 3;
				return false;
			}
		break;
		default:
			if(!regexpr_tel.exec($('[name*=rec]', this).val())){
				$(this).addClass('form-ctrl-failed');
				OK = false;
				error = 4;
				return false;
			}
		break;
	  }
	});
	if(OK==false){
		alert(error); return false;
	}
}

	// this 3 are reassumed in CTRL_form
function CTRL_char(form){		//extract all text fields from form and truncate text by text field size attribute		j=0;
	var JQform = $(form);
	$('textarea,input[type=text],input[type=password]', JQform).each(function(){
		var mlenght = $(this).attr('maxlength');

		if($(this).val().length > $(this).maxLength){
			$(this).focus();
			alert("ATTENZIONE: Il numero di caratteri inseriti nel campo indicato\n � diverso dal numero richiesto:" + $(this).maxLength);
			return false;
		}
	});
	return true;
}

function CTRL_2pass(form,nchar){   //limit text field value by text field size, verify correc form of mail address and the presence of all requested fields.
	if(form.pass.value.length<nchar){
		alert ("ATTENZIONE!\n La password immessa non rispetta i criteri di lunghezza minima\n Reimmettere una password di almeno "+nchar+" caratteri.");
			return false;
	}else{
		if (form.pass.value==form.pass1.value){
			return true;
		}else{
			alert ("ATTENZIONE!\n Le passwords immesse nei 2 campi non coincidono.");
			return false;
		}
	}
}

function LEN_pass(form, minC, MaxC){
	STR=form.pass.value;
	L=STR.length;
	if ((L<minC)||(L>MaxC)){
		alert("Controllare lunghezza password.\n Deve essere compresa tra "+minC+" caratteri e "+MaxC+" caratteri.");
		form.pass.value="";
	}
}

function CTRLmail(form){				//a mail must have only one @ cahr and one or more . char
	var attr  = 'name';
	var match = 'mail';
	var OK    = true;
	var Error = "";
	var regexpr_mail = /[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}/
  var JQform = $(form);
	$("[" + attr + "^='" + match + "'", JQform).each(function(){
		var mail_addr = $(this).val().toLowerCase();
		if (mail_addr != '') {
		  if (!regexpr_mail.exec(mail_addr)) {
        $(this).addClass('form-ctrl-failed');
			 Error = Error + "Il formato dell'indirizzo mail errato.\n";
			 OK = false;
		  } else {
				 $(this).val(mail_addr);
			}				   
    }
	});	
	if (Error!=""){
		alert("ATTENZIONE!\n"+Error);
	}
	return OK;
}

/**
 * Controlla la form e individua i campi richiesti non compilati
 * @param {Object} form selettore css della form
 * @param {Object} identifier parte iniziale dell'id dei campi richiesti
 */
function reqOK(form, identifier){
  var JQform = $(form);
	$(".form-ctrl-failed", JQform).removeClass('form-ctrl-failed');
  var error = 0;	
	$("[id^='" + identifier + "']", JQform).each(function(){
		if ($(this).val()==""){
			$(this).addClass('form-ctrl-failed');
			error = 1;
		}
	});
	if (error != 0) {
	  alert ("ATTENZIONE!\n Compili tutti i campi richiesti (*).");
		return false;
	}
	return true;
}
// HERE

function CTRL_form_Button(nameForm,reqId){
  if(CTRL_form(nameForm, reqId)){
    return true;
  }
}

/**
 * Controllo dei dati nella form prima dell'invio
 * @param {string} form selettore css per individuare la form
 * @param {string} id parte comune degli id dei campi richiesti
 */
function CTRL_form(form, id){   //limit text field value by text field size, verify correc form of mail address and the presence of all requested fields.
	//limit_char(form);
	DELquote(form);
	if (reqOK(form, id) && CTRLmail(form) && CTRLdata(form) && CTRL_char(form)){
		return true;				
	}
	return false;
}

/**
 * Manda i dati della form di login
 * @param {string} form selettore css della form
 * @param {string} identifier parte iniziale dell'id dei campi richiesti
 */
function send_login_data(form, identifier) {
	var JQform = $(form);
	if (CTRL_form_Button(form, identifier)) {
		$("input[name='LogBTN']").val(1);
		JQform.submit();
	}
}

function selLev(form, id){
	var JQform = $(form);
	$("input[name='mLev']").val(id);
	$("input[name='link']").val('');
	var newInput = $(document.createElement("input")).attr("name","clickonmenu").attr("type","hidden");
        $(newInput).val('1');
	$(newInput).appendTo(JQform);
	
	JQform.submit();
}

function go2page(form, url){
	var JQform = $(form);
	$("input[name='mLev']").val(id);
	$("input[name='link']").val(url);
	JQform.submit();
}

function cambiaimmagine(obj){
	var img = $(obj).attr('src');
	var len = img.length;
	var trimOVER = img.lastIndexOf("_")
	var trimEXT = img.lastIndexOf(".")
	var over = img.substr((trimOVER+1),(trimEXT-trimOVER-1))
	if (over == "over"){
		$(obj).attr('src', img.substr(0,trimOVER) + img.substr(trimEXT));
	}else{
		$(obj).attr('src', img.substr(0,trimEXT)+"_over"+img.substr(trimEXT));
	}
}
