function checkLength(name_el, name_form, max) {
	var ele = document.forms[name_form].elements[name_el];
	if (ele.value.length>max) {
		alert('Text too long. Max characters: '+max+'');
		return false;
	}
	return true;
}

function textCounter(name_text, name_count, name_form, max) {
	var ele=document.forms[name_form].elements[name_text];

	if (ele.value.length>max) ele.value=ele.value.substring(0, max);
	else document.forms[name_form].elements[name_count].value=max - ele.value.length;
}

<!-- inserimento tag, apertura e chiusura testo selezionato -->
function insert_tag(name_el, name_form, str_start, str_end) {
	var ele = document.forms[name_form].elements[name_el];
	
	if (document.selection) { // IE
		ele.focus();
		var sel = document.selection.createRange(); // parte selezionata
		var str = document.selection.createRange().text; // estraggo parte selezionata
		sel.text = str_start + str + str_end; // sostituisco parte selezionata con: tag bbcode apertura + parte selezioanta + tag bbcode chiusura
		return;
		
	} else if (ele.selectionStart || ele.selectionStart=='0') { // MOZILLA - OTHERS

		var sel_start = ele.selectionStart;
		var sel_end = ele.selectionEnd;
		var text_length = ele.textLength;
		
		ele.value = (ele.value).substring(0, sel_start) 			// prima parte
					+ str_start 									// tag bbcode - apertura
					+ (ele.value).substring(sel_start, sel_end) 	// parte selezionata
					+ str_end 										// tag bbcode - chiusura
					+ (ele.value).substring(sel_end, text_length); 	// parte finale
		
		return;
	} else {
		ele.value = ele.value + str_start + str_end;
	}

}


<!-- per emoticon o altro, -->
<!-- nome elemento, nome form, contenuto. -->
function insert_string(name_el, name_form, str) {
	var ele = document.forms[name_form].elements[name_el];
	
	if (document.selection) { // IE
		ele.focus();
		sel = document.selection.createRange(); // parte selezionata
		sel.text = str; // sostituisco parte selezionata
		
	} else if (ele.selectionStart || ele.selectionStart=='0') {
		ele.value = ele.value.substring(0, ele.selectionStart) + str + ele.value.substring(ele.selectionEnd, ele.value.length);
	} else {
		ele.value = ele.value + str;
	}

}


<!-- nasconde/visualizza -->
function openClose(idEl) {
	var ele=document.getElementById(idEl);

	if (ele.style.display=="none" ? ele.style.display="block" : ele.style.display="none");
}

<!-- nasconde/visualizza elementi, per link forum -->
<!-- nome elemento, valore-->
function view_element(idEl, lValue) {
	var ele=document.getElementById(idEl);

	if (ele.style.display=="none") {
		ele.style.display="block";
		lValue.innerHTML='collapse';
	} else {
		ele.style.display="none";
		lValue.innerHTML='expand';
	}
}


<!-- multi selezione e deselezione checkbox e link-->
<!-- nome form, nome elemento, nome bottone -->
function checkbox_check(FormName, FieldName, idEl) {

	if (document.getElementById(idEl).checked) {
		document.getElementById(idEl).title="Uncheck"; // cambia il titolo del elemento in: uncheck
		var typeCheck=true;

	} else {
		document.getElementById(idEl).title="Check all"; // cambia il titolo del elemento in: Check all
		var typeCheck=false;
	}
	
	checkbox(FormName, FieldName, typeCheck);

}

<!-- multi selezione e deselezione checkbox -->
<!-- nome form, nome elemento-->
function checkbox(FormName, FieldName, typeCheck) {

	if (!document.forms[FormName]) return;
	
	var ele = document.forms[FormName].elements[FieldName];
	if (!ele) return;

	for (var i=0; i<ele.length; i++) ele[i].checked=typeCheck;

}


<!-- cambio selezione checkbox -->
<!-- nome form, nome elemento -->
function checkbox_switch(FormName, FieldName) {
	if (!document.forms[FormName]) return;
	
	var ele = document.forms[FormName].elements[FieldName];
	if (!ele) return;

	for (var i=0; i<ele.length; i++) ele[i].checked = (ele[i].checked ? false: true);
}


<!-- apre popup -->
function openPopup(title, url, width, height) {

	var left = Math.floor((screen.width-width)/2);
	var top = Math.floor((screen.height-height)/2);

	window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height);
	return true;
}


<!-- anti spam email, nasconde email -->
<!-- Utilizzo: -->
<!-- <a id="showemail" onmouseover="showemail('nome_email', 'nome_dominio', 'estenzione_dominio', 'oggetto');" href="mailto:">Contact</a> -->
function showemail(name, domain, ext, subject) {

	if (subject ? sub='?subject='+subject : sub='');
	
	document.getElementById("showemail").href = 'mailto:' + name + '@' + domain + '.' + ext + sub;
}


<!-- crea cookie -->
function setcookie(nome, contenuto, duratasecondi, path) {
	expires=new Date(new Date().getTime() + (duratasecondi*1000));

	document.cookie= nome + "=" + escape(contenuto) +((expires) ? "; expires="+expires.toGMTString() : "") + ((path) ? "; path="+path : "/");
	return true;
}


<!-- controlla esistenza cookie -->
function checkcookie(nome) {
	if (document.cookie.length>0) {
		var cookies = document.cookie.split(";"); // divido tutti i cookie
		for (var i=0; i<cookies.length; i++) { // ciclo i cookie
			var content = cookies[i].split("=", 1); // divido contenuto cookie, separa: nome=contenuto

			if (content[0]==nome) return true;
		}
	}
	return false;
}


<!-- legge cookie -->
function readcookie(nome) {

	if (document.cookie.length>0) {
		var cookies = document.cookie.split(";"); // divido tutti i cookie
		for (var i=0; i<cookies.length; i++) { // ciclo i cookie
			var content = cookies[i].split("=", 2); // divido contenuto cookie, separa: nome=contenuto

			if (content[0]==nome) {
				return content[1];
				break;
			}
		}
	}
	return false;
}

function reloadcaptcha(id, url) {
	document.getElementById(id).src = url+"?"+Math.random();
	
	return true;
}

