// Title:	rsservicelegno.js
// Author:	Simone Scigliuzzi
// Date:	28-11-2005



function LinkUnavailable()
{
	// richiamata da link provvisori
	alert("Spiacente, la pagina collegata al link non è disponibile in questa versione del sito !");
}

function ShowFixedPopUp(url, width, height)
{
	// Apre un popup con le dimensioni specificate all'url specificato
	newin = window.open(url, 'Anteprima','scrollbars=no,resizable=no, left=100, top=100, width=' + width + ',height=' + height + ',status=no,location=no,toolbar=no');
}

function LoadImage(ImgElementId, FileName)
{	
	// (NON USATA !)

	/* funzione per caricamento dinamico di immagini:
		ImgElementId:	id del tag <img>
		FileName:	percorso relativo del file d'immagine da caricare

	   Es:
		<select name="cboImages" onchange="LoadImage('imgPreview', MyForm.cboImages.value);">
			<option selected value="">Nessuna immagine</option>
			<option value="numbers/0.gif">0</option>
			<option value="numbers/2.gif">2</option>
			<option value="numbers/3.gif">3</option>
		</select
	*/

	document.getElementById(ImgElementId).src = FileName;
}

function NavigateTo(URL)
{
	// Naviga verso l'url specificato
	document.location.href = URL;
}

function DoGetSubmit(frm, action)
{
	// Fa il submit del form frm con metodo get
	frm.action=action;
	frm.method="GET";
	frm.submit();
}

function DoPostSubmit(frm, action)
{
	// Fa il submit del form frm con metodo post
	frm.action=action;
	frm.method="POST";
	frm.submit();
}

function ShakkeraIE() 
{ 
	// (NON USATA !)

	/* Shakkera la finestra del browser
	   (testata con IE)	
	*/

      	for (i = 15; i > 0; i--) 
      	{ 
        	for (j = 2; j > 0; j--) 
            	{ 
                  	self.moveBy(0,i); 
                  	self.moveBy(i,0); 
                  	self.moveBy(0,-i); 
                  	self.moveBy(-i,0); 
            	} 
      	} 
}

function SetNumeric(oField, AcceptDot, FieldName) 
{ 
	/* Consente l'inserimento di soli caratteri numerici in un camo text o textarea
	   Se AcceptDot = true accetta la presenza di spazi e punti (.)
	   FieldName è il nome user-friendly del campo incriminato

	  ES:	<input type="text" name="txtProva" onKeyUp="SetNumeric(this, false, 'C.A.P.');"/>
	*/

	var bError = (isNaN(oField.value)); 

	// Se è stato immesso un valore numerico e controlla
	// la presenza di punti, la controlla

	if ((!bError) && (!AcceptDot))
	{ 
		// Controlla:
		if (oField.value.substr(oField.value.length-1, 1) == ".") bError = true;
		if (oField.value.substr(oField.value.length-1, 1) == " ") bError = true;
	} 

	if (bError) 
	{ 
		alert("Il campo " + FieldName + " accetta solo caratteri numerici !"); 
		oField.value = oField.value.substr(0, oField.value.length-1);
	} 
}

function InsertText(oField, Text)
{
	/* Inserisce il testo Text nel punto in cui si trova la
	   selezione nel campo oField
	*/

	if (document.all)
	{
		// IE, Opera

		oField.focus();
		var curRange = document.selection.createRange();

		// document.selection.createRange().text); restituisce il testo selezionato
		// alt:		window.getSelection()
		// alt:		document.getSelection()

	  	curRange.colapse;
	  	curRange.text = Text;

	}
	else if(oField.selectionEnd)
	{
		// Netscape, FireFox

		var lng = oField.textLength;
		var from = oField.selectionStart;
		var to = oField.selectionEnd;

		oField.value = oField.value.substring(0,from) + Text + oField.value.substring(to,lng)
	}
	else oField.value += Text;

	oField.focus();
}

function InsertTag(oField, Tag, Msg, ReqInput)
{
	/* Aggiunge al contenuto di un campo text o textarea
	  	i tag [Tag] e [/Tag]
	   	Se ReqInput = false, inserisce automaticamente i tag,
		altrienti richiede mediante prompt il testo da inserire
		tra i due tag.
		In questo caso, Msg rappresenta un testo aggiuntivo sul prompt.
	*/

	var OpenTag = "[" + Tag + "]";
	var CloseTag = "[/" + Tag + "]";

	// richiede o non richiede input
	if (ReqInput)
	{
		// richiede il testo
		var word = prompt('Immettere il testo da impostare ' + Msg, '');

		if (word!=null)
			InsertText(oField, OpenTag + word + CloseTag);
	}
	else
	{
		InsertText(oField, OpenTag + CloseTag);
	}
}


function InsertTagEx(oField, Tag, Msg, ReqInput)
{
	/* Aggiunge al contenuto di un campo text o textarea
	  	i tag [Tag] e [/Tag].
		Qui, Tag contiene il valore. Il tag di chiusura viene calcolato.
	   	Se ReqInput = false, inserisce automaticamente i tag,
		altrienti richiede mediante prompt il testo da inserire
		tra i due tag.
		In questo caso, Msg rappresenta un testo aggiuntivo sul prompt.
	*/

	// determina il nome del tag troncando dal segno =
	var TagName = Tag.substr(0, Tag.indexOf('='));

	var OpenTag = "[" + Tag + "]";
	var CloseTag = "[/" + TagName + "]";

	// richiede o non richiede input
	if (ReqInput)
	{
		// richiede il testo
		var word = prompt('Immettere il testo da impostare ' + Msg, '');

		if (word!=null)
			InsertText(oField, OpenTag + word + CloseTag);
	}
	else
	{
		InsertText(oField, OpenTag + CloseTag);
	}
}

function InsertColorTag(oField, Color, ReqInput, Combo)
{
	/* Aggiunge al contenuto di un campo text o textarea
	  	i tag [color=Color] e [/color]
	   	Se ReqInput = false, inserisce automaticamente i tag,
		altrienti richiede mediante prompt il testo da inserire
		tra i due tag.
		In questo caso, Color rappresenta un testo aggiuntivo sul prompt.
	*/

	if (Color.length != 0)
	{
		var OpenTag = "[color=" + Color + "]";
		var CloseTag = "[/color]";

		// richiede o non richiede input
		if (ReqInput)
		{
			// richiede il testo
			var word = prompt('Immettere il testo da colorare in ' + Color, '');

			if (word!=null)
				InsertText(oField, OpenTag + word + CloseTag);
		}
		else
		{
			InsertText(oField, OpenTag + CloseTag);
		}
	
		// resetta
		Combo.value="";
	}
}

function FindAndReplace(oField)
{
	// Trova e sostituisce un testo con un altro nel campo oField

	var oldword = prompt('Immettere il testo da cercare:','');

	if (oldword!=null)
	{
		var currentText = oField.value;		// testo corrente e ottiene posizione
		var iPos = currentText.indexOf(oldword);	
		
		// cerca la parola e imposta selezione se la trova
		if (iPos == -1)
		{
			alert('Parola non trovata !');
		}
		else
		{
			// richiede il testo in sostituzione
			var newword = prompt('Immettere il testo sostitutivo:','');

			if (newword!=null)
			{
				currentText = currentText.replace(oldword, newword);
				oField.value = currentText;
				oField.focus();
			}
		}
	}
}