/*
****************************************************************************
* E-LAB Consulting Srl                                                     *
* -------------------------------------------------------------------------*
* Data di Creazione   : 17/11/03                                           *
* Data ultima Modifica: 17/11/03                                           *
* AUTORE: Lorenzo Basso                                                    *
* MODULO: funzioni generiche javascript                                    *
****************************************************************************
*/

//************************************************************************************************
//*
//*				ROUTINE X VERIFICARE LA VERSIONE DEL BROWSER E ABILITAZIONE DEL JAVASCRIPT
//*
//************************************************************************************************

function msie()
{
    var bName = window.navigator.appName;
    if(bName != 'Microsoft Internet Explorer')
        return false;
    
    return true;
}

function v6()
{
    var bv = window.navigator.appVersion;
    
    bv = bv.substring(bv.indexOf('MSIE'), bv.lenght);
    bv = bv.substring(0, bv.indexOf(';'));
    bv = bv.replace('MSIE', '');
    bv = bv.replace(' ', '');

    if(parseFloat(bv) < 6.0)
        return false;
    return true;    
}

function IsPopupBlocker() 
{
    var oWin = window.open("","testpopupblocker","width=10,height=10,top=5000,left=5000");
    if (oWin==null || typeof(oWin)=="undefined") {
        return true;
    } else {
        oWin.close();
        return false;
    }
}

function browserCheck()
{
    if(!IsPopupBlocker())
        document.getElementById('loginMask').style.display = 'block';
    else
    {    
        document.getElementById('popup').style.display = 'block';
        return false;
    }    
    
    if(msie())
    {
        if(v6())
        {
            document.getElementById('loginMask').style.display = 'block';
        }
        else
        {
            document.getElementById('v6msg').style.display = 'block';
        }
    }
    else
    {
            document.getElementById('msiemsg').style.display = 'block';
            document.getElementById('loginMask').style.display = 'none';
    }
}

//********************************

function saveGruppi()
{
	var wGRP = window.open('../ASP/GRP001.aspx','GRP','fullscreen=no, status=no, resizable=yes, width=800, height=500');
	//FRM1.submit();
}

function salvaRicerca()
{
    var win = window.open('../ASP/GRP001.aspx?onlySelRic=true','GRP','fullscreen=no, status=no, resizable=yes, width=800, height=500');
    win.focus();
}	

function valorizzaHidden()
{
	FRM1.butSVG.value = 'SVG';
	FRM1.queSV1.value = window.opener.FRM1.queSV1.value;
	FRM1.staSV1.value = window.opener.FRM1.staSV1.value;
	FRM1.delCond.value = window.opener.FRM1.delCond.value;
}

 //************************************************************************************************
 //*
 //*				FUNZIONI PER LA VERIFICA DELLA DATA
 //*
 //************************************************************************************************
function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year)
{
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) 
{
	for (var i = 1; i <= n; i++) 
	{
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30};
		if (i==2) {this[i] = 29};
   	} 
   return this;
}

function isDate(dtStr)
{
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf("/");
	var pos2=dtStr.indexOf("/",pos1+1);
	var strDay=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr=strYear;
	
	if (strDay.charAt(0)=="0" && strDay.length>1) 
		strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) 
		strMonth=strMonth.substring(1);
		
	for (var i = 1; i <= 3; i++) 
	{
		if (strYr.charAt(0)=="0" && strYr.length>1) 
			strYr=strYr.substring(1);
	}
	month=eval(strMonth);
	day=eval(strDay);
	year=eval(strYr);
	if (pos1==-1 || pos2==-1)
	{
		//alert("Il formato della data deve essere : gg/mm/aaaa");
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12)
	{
		//alert("Inserire un mese valido");
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
	{
		//alert("Inserire un giorno valido");
		return false;
	}
	if (strYear.length != 4 || year==0 )
	{
		//alert("Inserire un anno di 4 cifre");
		return false;
	}
	if (dtStr.indexOf("/",pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, "/"))==false)
	{
		//alert("Inserire una data valida");
		return false;
	}
return true;
}

function isDateRilevazione(dtStr)
{
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf("/");
	var pos2=dtStr.indexOf("/",pos1+1);
	var strDay=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr=strYear;
		
	if (strDay.charAt(0)=="0" && strDay.length>1) 
		strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) 
		strMonth=strMonth.substring(1);
		
	for (var i = 1; i <= 3; i++) 
	{
		if (strYr.charAt(0)=="0" && strYr.length>1) 
			strYr=strYr.substring(1);
	}
	month=eval(strMonth);
	day=eval(strDay);
	year=eval(strYr);
	if (pos1==-1 || pos2==-1)
	{
		alert("Il formato della data deve essere : gg/mm/aaaa");
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12)
	{
		alert("Inserire un mese valido");
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
	{
		alert("Inserire un giorno valido");
		return false;
	}
	if (strYear.length != 4 || year==0 )
	{
		alert("Inserire un anno di 4 cifre");
		return false;
	}
	if (dtStr.indexOf("/",pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, "/"))==false)
	{
		alert("Inserire una data valida");
		return false;
	}
return true;
}

function isCtrldate(dtStr)
{
	try{
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf("/");
	var pos2=dtStr.indexOf("/",pos1+1);
	var strDay=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr=strYear;
	
	if (strDay.charAt(0)=="0" && strDay.length>1) 
		strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) 
		strMonth=strMonth.substring(1);
		
	for (var i = 1; i <= 3; i++) 
	{
		if (strYr.charAt(0)=="0" && strYr.length>1) 
			strYr=strYr.substring(1);
	}
	month=eval(strMonth);
	day=eval(strDay);
	year=eval(strYr);
	if (pos1==-1 || pos2==-1)
	{
		alert("Il formato della data deve essere : gg/mm/aaaa");
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12)
	{
		alert("Inserire un mese valido");
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
	{
		alert("Inserire un giorno valido");
		return false;
	}
	if (strYear.length != 4 || year==0 )
	{
		alert("Inserire un anno di 4 cifre");
		return false;
	}
	if (dtStr.indexOf("/",pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, "/"))==false)
	{
		alert("Inserire una data valida");
		return false;
	}
return true;
	}
	catch(e){
		alert('Il formato della data deve essere : gg/mm/aaaa');
		return false;
		}
}


function CtrlData(dt)
{
	
	if (isDate(dt.value)==false)
	{
		dt.focus();
		return false;
	}
	return true;
}

function Scomponi(testo,separator,indice)
{
	var stringArray = testo.split(separator);
	return	stringArray[indice];
}

function ReplaceAll(strStringa)
{
while (strStringa.indexOf('/') > 0)
	{
	strStringa = strStringa.replace('/','')
	}
return strStringa;
}
