function GetElement(divID) { 
    var DomObj;
    if (document.getElementById) { // DOM3 = IE5, NS6 
        DomObj = document.getElementById(divID); 
    } else { 
        if (document.layers) { // Netscape 4 
             DomObj = document.layers[div]; 
        } else { // IE 4 
            DomObj = document.all[div]; 
        } 
    }
    return DomObj;
}
function InitHTML()
{
    var HTMLCont = "<div style=\"position:relative;z-index:1000;top:10;left:0\" id=\"segnalaMyBudget\">";
    HTMLCont = HTMLCont + "\r" + "<TABLE  class=\"MYBUDGETSTYLE\" ALIGN=\"CENTER\" WIDTH=\"90%\" BORDER=1 BORDERCOLOR=#CCCCCC CELLPADDING=1 cellspacing=0>";
    HTMLCont = HTMLCont + "\r" + "<form action=\"segnala.jsp\" method=\"POST\" onSubmit=\"return checkSegnala(this);\">";
    HTMLCont = HTMLCont + "\r" + "<tr class=\"MYBUDGETSTYLE\"><td><a href=\"#\" onclick=\"toggleFrame()\"><font size=1><B>Segnala MyBudget ad un amico</B></font></a></td></tr>";
    HTMLCont = HTMLCont + "\r" + "<tr><td>";
    HTMLCont = HTMLCont + "\r" + "<div id=\"email_frame\" class=\"hidden\">";
    HTMLCont = HTMLCont + "\r" + "<TABLE  class=\"MYBUDGETSTYLE\" WIDTH=\"100%\" BORDER=0 BORDERCOLOR=#EEEEEE CELLPADDING=1 cellspacing=0>";
    HTMLCont = HTMLCont + "\r" + "<tr><td width=40>E-mail:</td><td><input type=\"text\" id=\"friend_email\" name=\"friend_email\" style=\"width:100%\"></td></tr></table>";
    HTMLCont = HTMLCont + "\r" + "<TABLE  class=\"MYBUDGETSTYLE\" WIDTH=\"100%\" BORDER=0 BORDERCOLOR=#EEEEEE CELLPADDING=0 cellspacing=0><tr><td width=43>&nbsp;</td><td>";
    HTMLCont = HTMLCont + "\r" + "<input type=submit value=\"Invia\">&nbsp;<a href=\"segnala.jsp?edit=yes\" class=MYBUDGETLINK>anteprima</button></td></tr></table>";
    HTMLCont = HTMLCont + "\r" + "</div></td></tr></form></table></div>";
    var div = GetElement("colonna-dx");
    //if (div){div.innerHTML = HTMLCont};
    //alert(HTMLCont);
}

function hidediv(divID) { 
    var div = GetElement(divID);
    if (div){div.className='hidden'};
}
function showdiv(divID) { 
    var div = GetElement(divID);
    if (div){div.className='unhidden'};
}
function togglediv(divID) {
    if (GetElement(divID) && (GetElement(divID).className=="hidden")) {
        showdiv(divID);
        if ((divID=="email_frame") && GetElement("friend_email")){GetElement("friend_email").focus();}
    } else if (GetElement(divID)) {
        hidediv(divID);
    }  
}
function swapImg(imgID,Src) {
    if (GetElement(imgID)) {
        var imgSrc = GetElement(imgID).src;
        if (imgSrc.indexOf("_on.gif")==-1){
            GetElement(imgID).src="img/"+Src+"_on.gif";
        } else {
            GetElement(imgID).src="img/"+Src+"_off.gif";
        }
    }
}

function validNums(n, t, l)
{	if (n == "")
	{	alert(TranslateString("Prego inserire un numero nel campo",l)+" "+ TranslateString(t,l) +".")
		return false;
	}
	else
	{	var Chars = "0123456789";
		for (var i = 0; i < n.length; i++)
		{	if (Chars.indexOf(n.charAt(i)) == -1)
			{	alert (TranslateString("Prego inserire solo numeri nel campo",l)+" "+ TranslateString(t,l) +".")
				return false
			}
		}
	}
	
	return true;
}

function validName(n, t, l)
{	if (n == "")
	{	alert(TranslateString("Prego inserire il campo",l)+" "+ TranslateString(t,l) +".")
		return false;
	}
	return true;
}

function validEmail(e, t, l)
{	
	if (e == "")
	{
		alert(TranslateString("Prego inserire il campo",l)+" "+TranslateString(t,l));
		return false;
	}
	var emailStr = e;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\*\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="([^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + specialChars + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null)
	{	alert(TranslateString("Il campo",l)+" " + TranslateString(t,l) +" "+TranslateString("non é corretto. Prego controllare @ and .",l));
		return false;
	}

	var user=matchArray[1];
	var domain=matchArray[2];
	if (user.match(userPat)==null)
	{	alert(TranslateString("Non usare simboli (es. apici o asterischi) che non siano @ nel campo",l)+" "+ TranslateString(t,l) +".");
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null)
	{  for (var i=1;i<=4;i++)
		  {	if (IPArray[i]>255)
			{	alert(TranslateString("Indirizzo IP di destinazione non valido!",l));
				return false;
			}
		}
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null)
	{	alert(TranslateString("Il dominio",l)+" "+ TranslateString(t,l) +" "+TranslateString("non é valido.",l));
		return false;
	}

	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
	{	alert(TranslateString("Il campo",l)+" "+ TranslateString(t,l) +" "+TranslateString("deve terminare in un dominio di tre lettere, o paese di due lettere.",l));
		return false;
	}

	var Chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	if (domArr[domArr.length-1].length == 2 || domArr[domArr.length-1].length == 3)
	{	for (var i = 0; i < domArr[domArr.length-1].length; i++)
		{	if (Chars.indexOf(domArr[domArr.length-1].charAt(i)) == -1)
			{	alert(TranslateString("Il nome del dominio può contenere solo lettere.",l));
				return false;
			}
		}
	}

	if (len<2 || len>3)
	{	alert(TranslateString("Il campo",l)+" " + TranslateString(t,l) +" "+TranslateString("é mancante di un nome host!",l));
		return false;
	}

	return true;
}

function checkSegnala(w,l)
{
	// if not empty, validate the contents
	if (w.friend_email && !validEmail(w.friend_email.value, "E-mail", l))
	{	w.friend_email.focus();
		return false;
	}
	if (w.email_content && !validName(w.email_content.value, "Testo del messaggio", l))
	{	w.email_content.focus();
		return false;
	}
	return true;
}

function TranslateString(s,l)
{
        if(l=="it"){return s;}
	if(s=="E-mail"){return "E-mail";}
	if(s=="Password"){return "Password";}
        if(s=="Testo del messaggio"){return "Message body";}

        if(s=="Prego inserire un numero nel campo"){return "Please insert a number in field";}
        if(s=="Prego inserire solo numeri nel campo"){return "Please insert numbers only in field";}
        if(s=="Prego inserire il campo"){return "Plase enter a value for";}
        if(s=="Il campo"){return "Field";}
        if(s=="Il dominio"){return "domain";}
        if(s=="non è valido."){return "is invalid.";}
        if(s=="non é corretto. Prego controllare @ and ."){return "is incorrect. Please check @ and .";}
        if(s=="Non usare simboli (es. apici o asterischi) che non siano @ nel campo"){return "Do not use symbols (eg. quotes or asterisks) other than @ in field";}
        if(s=="Indirizzo IP di destinazione non valido!"){return "Invalid destination IP address!";}
        if(s=="deve terminare in un dominio di tre lettere, o paese di due lettere."){return "must end with a three letters domain name or with two letters country.";}
        if(s=="Il nome del dominio può contenere solo lettere."){return "domain name can contain letters only.";}
        if(s=="é mancante di un nome host!"){return "is host name missing!";}
        if(s=="Prego confermare la stessa password."){return "Please confirm same password.";}
        if(s=="Controllo caratteri immagine"){return "Image characters check";}
        if(s=="Importo del movimento"){return "Movement amount";}
        if(s=="Giorno"){return "Day";}
        if(s=="Mese"){return "Month";}
        if(s=="Anno"){return "Year";}
        if(s=="Giorno di fine movimento"){return "Day of ending date";}
        if(s=="Mese di fine movimento"){return "Month of ending date";}
        if(s=="Anno di fine movimento"){return "Year of ending date";}
        if(s=="Periodicità del movimento"){return "Movement Periodicity";}
        if(s=="Non hai definito una categoria valida per questo movimento. Continuo ugualmente?"){return "You didn't enter a valid category for this movement. Do you want to continue anyway?";}
        if(s=="Giorno della notifica"){return "Day of notify";}
        if(s=="Mese della notifica"){return "Month of notify";}
        if(s=="Anno della notifica"){return "Year of notify";}
        if(s=="Descrizione"){return "Description";}

        return s;
}