﻿
/*****************************************************************************/

function MM_CheckFlashVersion(reqVerStr, msg)
{
    with (navigator)
    {
        var isIE = (appVersion.indexOf("MSIE") != -1 && userAgent.indexOf("Opera") == -1);
        var isWin = (appVersion.toLowerCase().indexOf("win") != -1);
        if (!isIE || !isWin)
        {
            var flashVer = -1;
            if (plugins && plugins.length > 0)
            {
                var desc = plugins["Shockwave Flash"] ? plugins["Shockwave Flash"].description : "";
                desc = plugins["Shockwave Flash 2.0"] ? plugins["Shockwave Flash 2.0"].description : desc;
                if (desc == "")
                    flashVer = -1;
                else
                {
                    var descArr = desc.split(" ");
                    var tempArrMajor = descArr[2].split(".");
                    var verMajor = tempArrMajor[0];
                    var tempArrMinor = (descArr[3] != "") ? descArr[3].split("r") : descArr[4].split("r");
                    var verMinor = (tempArrMinor[1] > 0) ? tempArrMinor[1] : 0;
                    flashVer = parseFloat(verMajor + "." + verMinor);
                }
            }
            // WebTV has Flash Player 4 or lower -- too low for video
            else if (userAgent.toLowerCase().indexOf("webtv") != -1)
                flashVer = 4.0;

            var verArr = reqVerStr.split(",");
            var reqVer = parseFloat(verArr[0] + "." + verArr[2]);

            if (flashVer < reqVer)
            {
                if (confirm(msg))
                    window.location = "http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash";
            }
        }
    } 
}

/*****************************************************************************/

function ltrim()
{
	return this.replace(/^\s+/, "");
}

function rtrim()
{
	return this.replace(/\s+$/, "");
}
   
function trim()
{
	return this.replace(/\s+$|^\s+/g, "");
}

String.prototype.rtrim = rtrim;
String.prototype.ltrim = ltrim;
String.prototype.trim = trim;

/*****************************************************************************/

function getKeyCode(e)
{
    if (window.event)
        return window.event.keyCode;
    else if (e)
        return e.which;
    else
        return null;
}

function keyRestrict(e, validchars)
{
    var result = false;
    var key = '';
    var keychar = '';
    key = getKeyCode(e);
    if (key != null)
    {
        keychar = String.fromCharCode(key);
        keychar = keychar.toLowerCase();
        validchars = validchars.toLowerCase();
        if (validchars.indexOf(keychar) == -1)
        {
            if (key == null || key == 0 || key == 8 || key == 9 || key == 13 || key == 27)
                result = true;
            else
                result = false;
        }
        else
            result = true;
    }
    else
        result = true;

    if (e.srcElement != null)
    {
        e.cancelBubble = !result;
        e.returnValue = result;
    }
    else if (!result)
    {
        e.stopPropagation();
        e.preventDefault();
    }

    return result;
}

function check_date(DateField)
{
    var seperator = "/";
    var err = 0;
    var DateValue = DateField.value;

    /* Delete all chars except 0..9 */
    var DateTemp = "";
    var checkstr = "0123456789";
    for (var i = 0; i < DateValue.length; i++)
    {
        if (checkstr.indexOf(DateValue.substr(i, 1)) >= 0)
            DateTemp = DateTemp + DateValue.substr(i, 1);
    }
    DateValue = DateTemp;

    /* Always change date to 8 digits - string */
    /* if year is entered as 2-digit / always assume 20xx */
    if (DateValue.length == 6)
        DateValue = DateValue.substr(0, 4) + '20' + DateValue.substr(4, 2);
    if (DateValue.length != 8)
        err = 19;

    /* year is wrong if year = 0000 */
    var year = DateValue.substr(4, 4);
    if (year == 0)
        err = 20;

    /* Validation of month*/
    var month = DateValue.substr(2, 2);
    if ((month < 1) || (month > 12))
        err = 21;

    /* Validation of day*/
    var day = DateValue.substr(0, 2);
    if (day < 1)
        err = 22;

    /* Validation leap-year / february / day */
    var leap = 0;
    if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0))
        leap = 1;
    if ((month == 2) && (leap == 1) && (day > 29))
        err = 23;
    if ((month == 2) && (leap != 1) && (day > 28))
        err = 24;

    /* Validation of other months */
    if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12")))
        err = 25;
    if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11")))
        err = 26;

    /* if 00 ist entered, no error, deleting the entry */
    if ((day == 0) && (month == 0) && (year == 00))
    {
        err = 0;
        day = "";
        month = "";
        year = "";
        seperator = "";
    }

    /* Error-message if err != 0 */
    if (err != 0)
    {
        //		alert("Date is incorrect!");
        //		DateField.select();
        //		DateField.focus();
        return false;
    }

    /* if no error, write the completed date to Input-Field (e.g. 13/12/2001) */
    //	DateField.value = day + seperator + month + seperator + year;
    return true;
}

/*****************************************************************************/

function addBookmark(url, title)
{
	if (window.sidebar && window.sidebar.addPanel)
	{
		if (navigator.userAgent.lastIndexOf("Netscape") != -1)
		{	// Netscape
			window.sidebar.addPanel(title, url, '');
		}
		else
		{	//Firefox
			window.sidebar.addPanel(title, url, '');
		}
	}
	else if	(window.opera && window.print)
	{	//Opera
		alert("Premere Segnalibri sulla barra in alto");
	}
	else if (window.external && (navigator.platform == 'Win32' || (window.ScriptEngine && ScriptEngine().indexOf('InScript') + 1)))
	{
		window.external.AddFavorite(url, title);
	}
}

function setDefaultHomePage(url)
{
	document.body.style.behavior = 'url(#default#homepage)';
	document.body.setHomePage(url);
}

/*****************************************************************************/

function FindFirstParentNode(target, tagName)
{
    var target = target.parentNode;
    while (target != null && target.tagName != tagName)
        target = target.parentNode;
    return target;
}

function SetColorToAllChildLinks(object, color)
{
    var links = object.getElementsByTagName('A');
    for (var i = 0; i < links.length; i++)
        links[i].style.color = color;
}

/*****************************************************************************/

function validateFormLogin(username, password)
{
    // Per evitare SQL injection

    var errMsg = "";
    var filtro = /^[a-zA-Z0-9]+$/;

    if (!filtro.test(username.value))
    {
        if (errMsg == "")
        {
            username.focus();
            username.select();
        }
        errMsg += "- \"" + username.value + "\" non e' uno Username valido. Inserire solo caratteri alfanumerici ([a-z], [A-Z], [0-9]).\n";
    }

    if (!filtro.test(password.value))
    {
        if (errMsg == "")
        {
            password.focus();
            password.select();
        }
        errMsg += "- Password non valida. Inserire solo caratteri alfanumerici ([a-z], [A-Z], [0-9]).\n";
    }

    if (errMsg != "")
        alert(errMsg);

    return (errMsg == "");
}

function validateFormInsertUpdateUtente(allowblankpwd, username, password, cpassword, name, email)
{
    var errMsg = "";
    var filtro = /^[a-zA-Z0-9]+$/;
    var filtroemail = /^([a-z0-9_.-])+@(([a-z0-9-])+.)+[a-z.]{2,6}$/;

    if (!filtro.test(username.value))
    {
        if (errMsg == "")
        {
            username.focus();
            username.select();
        }
        errMsg += "- \"" + username.value + "\" non e' uno Username valido. Inserire solo caratteri alfanumerici ([a-z], [A-Z], [0-9]).\n";
    }

    if (!allowblankpwd || (allowblankpwd && password.value.length > 0))
    {
        if (!filtro.test(password.value))
        {
            if (errMsg == "")
            {
                password.focus();
                password.select();
            }
            errMsg += "- Password non valida. Inserire solo caratteri alfanumerici ([a-z], [A-Z], [0-9]).\n";
        }
    }

    if (password.value != cpassword.value)
    {
        if (errMsg == "")
        {
            cpassword.focus();
            cpassword.select();
        }
        errMsg += "- Le due Password digitate non sono uguali.\n";
    }

    if (name.value.trim() == "")
    {
        if (errMsg == "")
        {
            name.focus();
            name.select();
        }
        errMsg += "- Inserire il proprio Nome e Cognome.\n";
    }

    if (!filtroemail.test(email.value))
    {
        if (errMsg == "")
        {
            email.focus();
            email.select();
        }
        errMsg += "- Email non valida.\n";
    }

    if (errMsg != "")
        alert(errMsg);

    return (errMsg == "");
}

function validateFormInsertUpdateNews(data, titolo, testo)
{
    var errMsg = "";

    if (data.value.trim().length == 0 || !check_date(data))
    {
        if (errMsg == "")
        {
            data.focus();
            data.select();
        }
        errMsg += "- \"" + data.value + "\" non e' una data valida. Inserire la data nel formato gg/mm/aaaa.\n";
    }

    if (titolo.value.trim().length == 0)
    {
        if (errMsg == "")
        {
            titolo.focus();
            titolo.select();
        }
        errMsg += "- Inserire il titolo della news.\n";
    }

    if (testo.value.trim().length == 0)
    {
        if (errMsg == "")
        {
            testo.focus();
            testo.select();
        }
        errMsg += "- Inserire il testo della news.\n";
    }

    if (errMsg != "")
        alert(errMsg);

    return (errMsg == "");
}

function validateFormInsertUpdateVideo(data, titolo_elenco, titolo_dettaglio, lunghezza, altezza)
{
    var errMsg = "";

    if (data.value.trim().length == 0 || !check_date(data))
    {
        if (errMsg == "")
        {
            data.focus();
            data.select();
        }
        errMsg += "- \"" + data.value + "\" non e' una data valida. Inserire la data nel formato gg/mm/aaaa.\n";
    }

    if (titolo_elenco.value.trim().length == 0)
    {
        if (errMsg == "")
        {
            titolo_elenco.focus();
            titolo_elenco.select();
        }
        errMsg += "- Inserire il titolo elenco del video.\n";
    }

    if (titolo_dettaglio.value.trim().length == 0)
    {
        if (errMsg == "")
        {
            titolo_dettaglio.focus();
            titolo_dettaglio.select();
        }
        errMsg += "- Inserire il titolo dettaglio del video.\n";
    }

    if (lunghezza.value.trim().length == 0)
    {
        if (errMsg == "")
        {
            lunghezza.focus();
            lunghezza.select();
        }
        errMsg += "- Inserire la lunghezza in pixel del video.\n";
    }

    if (altezza.value.trim().length == 0)
    {
        if (errMsg == "")
        {
            altezza.focus();
            altezza.select();
        }
        errMsg += "- Inserire l'altezza in pixel del video.\n";
    }

    if (errMsg != "")
        alert(errMsg);

    return (errMsg == "");
}

/*****************************************************************************/

