function isNull (vValue, vDefault)
{
	if (typeof(vDefault) == "undefined")
	{
		if (typeof(vValue) == "undefined" || vValue == null || vValue == "")
			return true;
		else
			return false;
	}
	else
	{
		var vTmp;
		if (typeof(vValue) == "undefined" || vValue == null || vValue == "")
			return vDefault;

		vTmp = String(vValue);
		if (vTmp == "undefined" || vTmp == "" || vTmp == "null")
			return vDefault;

		return vValue;
	}
}

function CBool( pVarValue, pBoolCanBeNull )
{
	if ( pVarValue == null ) {
		if ( pBoolCanBeNull != null ) {
			if ( pBoolCanBeNull == false ) {
				ShowCheckError(1);
			}
		}
		
		return ( false );
	}
	
	var vStrValue = String( pVarValue );
	
	if ( (vStrValue == "0") || (vStrValue.toLowerCase() == "false") ) {
		return ( false );
	}
	
	return ( true );
}

function TrimExt( pString ) {
	var vIndex;
	var vString;
	var vIsSpace;

	vString = "";
	vIsSpace = false;

	for ( vIndex = 0; vIndex < pString.length; vIndex++ ) {
		if ( pString.substr(vIndex, 1) == " " ) {
			if ( vIsSpace == false ) {
				vString += pString.substr(vIndex, 1);

				vIsSpace = true;
			}
		}
		else {
			vString += pString.substr(vIndex, 1);

			vIsSpace = false;
		}
	}
	
	return ( vString );
}

function Replace( pString, pSearch, pReplace ) {
    if ( isNull(pString) == true ) {
        return ( "" );
    }

    if ( isNull(pSearch) == true ) {
        return ( pString );
    }

    if ( isNull(pReplace) == true ) {
        return ( pString );
    }

    var vString;
    vString = "" + pString;

    var vSearch;
    vSearch = "" + pSearch;

    var vReplace;
    vReplace = "" + pReplace;

    var jj;
    jj = vString.indexOf( vSearch );

    while ( jj >= 0 ) {
        vString = vString.substring( 0, jj ) + vReplace + vString.substring( jj + vSearch.length );

        jj = vString.indexOf( vSearch, jj + vReplace.length );
    }

    return ( vString );
}

function windowOpen(szUrl, szName, iWidth, iHeight)
{
	var iTop, iLeft;

	var szFeatures = "";
	
	if (iWidth != null)	{
		szFeatures += "width=" + iWidth + ",";
		iLeft = (window.screen.availWidth - iWidth) >> 1;
		szFeatures += "left=" + iLeft + ",";
	}
	if (iHeight != null) {
		szFeatures += "height=" + iHeight + ",";
		iHeight = (window.screen.availHeight - iHeight) >> 1;
		szFeatures += "top=" + iHeight + ",";
	}

	szFeatures += "scrollbars=yes,status=yes,toolbar=no,menubar=no,location=no,fullscreen=no,resizable=yes";

	window.open(szUrl, szName, szFeatures);
}

function addZero( pstrNUM )
{
	pstrNUM = String ( pstrNUM );
	
	if ( pstrNUM.length == 1 )
		return "0" + pstrNUM;
	else
		return pstrNUM;
}

function FormatStrForDB( pstrValue )
{
	pstrValue = pstrValue.replace(/\'/gi, "''");
	//pstrValue = pstrValue.replace(/\"/gi, "&#34;");  //"
	return pstrValue;
}

function FormatStrForInput( pstrValue )
{
	pstrValue = pstrValue.replace(/\"/gi, "&#34;");
	pstrValue = pstrValue.replace(/\'/gi, "&#39;");
	return pstrValue;
}

function FormatStrFromInputToInput( pstrValue )
{
	pstrValue = pstrValue.replace(/&#34;/gi, "\"");
	pstrValue = pstrValue.replace(/&#39;/gi, "'");
	return pstrValue;
}

function Arrotonda(NUM, DEC)
{
	var negativo = false;
	if (DEC < 0)
	{
		negativo = true;
		DEC = DEC * -1;
	}
	
	for (j = 0; j < DEC ; j++)
	{
		if (negativo)	{NUM = (NUM / 10);}
		else			{NUM = (NUM * 10);}
	}
	
	NUM = Math.round(NUM);
	
	if (negativo)	{NUM = (NUM * Math.pow(10, DEC));}
	else			{NUM = (NUM / Math.pow(10, DEC));}
	
	return NUM;
}

function fnFormatDataSQLFromData ( strData, bHasHours )
{
	strData		= String ( strData );
	bHasHours	= isNull ( bHasHours, "YES" );
	
	var intY = Number ( strData.substr(0, 4) );
	var intM = Number ( trimZero ( strData.substr(4, 2) ) );
	var intD = Number ( trimZero ( strData.substr(6, 2) ) );
	var intH = (strData.length >  8) ? Number ( trimZero ( strData.substr( 8, 2) ) ) : 0;
	var intT = (strData.length > 10) ? Number ( trimZero ( strData.substr(10, 2) ) ) : 0;
	var intS = (strData.length > 12) ? Number ( trimZero ( strData.substr(12, 2) ) ) : 0;

	var szDate = new Date(intY, intM - 1, intD, intH, intT, intS);
	
	var szReturn = szDate.getFullYear() + "-" + addZero ( szDate.getMonth() + 1 ) + "-" + addZero ( szDate.getDate() );

	if ( bHasHours == "YES" ) szReturn += " " + addZero ( szDate.getHours() ) + ":" + addZero ( szDate.getMinutes() );

	return szReturn;
}

function trimZero ( pszStr )
{
	pszStr = String ( pszStr );
	
	if ( pszStr == "00" )
		return 0;

	if ( pszStr.charAt(0) == "0" )
		return Number ( pszStr.charAt(1) );
	else
		return Number ( pszStr );
}