
var FieldControl      = "";
var strOrigFieldValue = "";
var ZERO              = "0";

var timerDelayBeforeHoldDown = ""
var timerHoldButtonDown      = "";

function PreHoldButtonDown(p_strDirection, p_strCtrlName, p_bDisplayAMPM)
{
    SetTimeValue(p_strDirection, p_strCtrlName, p_bDisplayAMPM); // initial click
    
    if(timerDelayBeforeHoldDown == "")
    {
        timerDelayBeforeHoldDown = window.setTimeout("HoldButtonDown(\"" + p_strDirection + "\", \"" + p_strCtrlName + "\", " + p_bDisplayAMPM + ")",400);
    }
}

function HoldButtonDown(p_strDirection, p_strCtrlName, p_bDisplayAMPM)
{
    if(timerHoldButtonDown == "")
    {
        timerHoldButtonDown = window.setInterval("SetTimeValue(\"" + p_strDirection + "\", \"" + p_strCtrlName + "\", " + p_bDisplayAMPM + ")",100);
    }
}

function PreReleaseButton()
{
    if(timerDelayBeforeHoldDown != "")
    {
        window.clearInterval(timerDelayBeforeHoldDown);
        timerDelayBeforeHoldDown = "";
    }
    
    ReleaseButton();
}

function ReleaseButton()
{
    if(timerHoldButtonDown != "")
    {
        window.clearInterval(timerHoldButtonDown);
        timerHoldButtonDown = "";
    }
}


function SetTimeValue(p_strDirection, p_strCtrlName, p_bDisplayAMPM)
{
    var nMaxHours =(p_bDisplayAMPM)?12:24;

	if(FieldControl == "")
	{
		FieldControl = document.getElementById(p_strCtrlName + "_hours");
	}
	
	with(FieldControl)
	{
		if(p_strDirection == "up")
		{
			if( FieldControl == document.getElementById(p_strCtrlName + "_hours") )
			{
			    if ( Number(value) >= nMaxHours )
			    {
			        value = ZERO + "1";
			    }
			    else
			    {
			        if( Number(value) >= 9 )
			        {
			            value = Number(value) + 1;
			        }
			        else
			        {
			            value = ZERO + Number( Number(value) + 1 );
			        }
			    }
			}
			else if( FieldControl == document.getElementById(p_strCtrlName + "_minutes") || FieldControl == document.getElementById(p_strCtrlName + "_seconds") )
			{
			    if (value >= 59)
			    {
			        value = ZERO + "0";
			    }
			    else
			    {
			        if (Number(value) >= 9)
			        {
    			        value = Number(value) + 1;
			        }
			        else
			        {
    			        value = ZERO + Number(Number(value) + 1);
			        }
			    }
			}
		}
		else // if(p_strDirection == "down")
		{
			if( FieldControl == document.getElementById(p_strCtrlName + "_hours") )
			{
				if (Number(value) <= 1)
				{
				    value = nMaxHours;
				}
				else
				{
				    if(Number(value) > 10)
				    {
				        value = Number(value) - 1;
				    }
				    else
				    {
				        value = ZERO + Number(Number(value) - 1);
    				}
				}
			}
			else if( FieldControl == document.getElementById(p_strCtrlName + "_minutes") || FieldControl == document.getElementById(p_strCtrlName + "_seconds") )
			{
	    		if (value <= 0)
    			{
				    value = 59;
				}
				else
				{
				    if(Number(value) > 10)
				    {
				        value = Number(value) - 1;
				    }
				    else
				    {
				        value = ZERO + Number(Number(value) - 1);
    				}
				}

			}
		} // if(p_strDirection == "up")
		
		if( FieldControl == document.getElementById(p_strCtrlName + "_ampm") )
		{
		    if (value=="AM")
		        value="PM";
		    else
		        value="AM";
		}
		
		focus();
		select();
	} // with(FieldControl)
}

function UpdateTimeValue(p_strCtrlName, p_bDisplaySeconds)
{
	document.getElementById(p_strCtrlName + "_Time").value  = document.getElementById(p_strCtrlName + "_hours").value;
	document.getElementById(p_strCtrlName + "_Time").value += ":";
	document.getElementById(p_strCtrlName + "_Time").value += document.getElementById(p_strCtrlName + "_minutes").value;
	document.getElementById(p_strCtrlName + "_Time").value += ((p_bDisplaySeconds)? ":" : "")
	document.getElementById(p_strCtrlName + "_Time").value += document.getElementById(p_strCtrlName + "_seconds").value
	document.getElementById(p_strCtrlName + "_Time").value += document.getElementById(p_strCtrlName + "_ampm").value;
}

function ValidateMinutes(p_pCtrlValue, p_strCtrlName, p_bDisplaySeconds)
{
    if( (isNaN(p_pCtrlValue.value)) || (p_pCtrlValue.value > 59) || (p_pCtrlValue.value < 0) )
    {
        p_pCtrlValue.value = strOrigFieldValue;
    }
    else
    {
        if ( (p_pCtrlValue.value.length < 2) && (ZERO == "0") )
        {
            p_pCtrlValue.value = "0" + p_pCtrlValue.value;
        }
    }
    
	UpdateTimeValue(p_strCtrlName, p_bDisplaySeconds);
}

function ValidateMinutesNumericOnly(p_pCtrlValue, p_strCtrlName, p_bDisplaySeconds)
{
	UpdateTimeValue(p_strCtrlName, p_bDisplaySeconds);
	
    if( isNaN(p_pCtrlValue.value) )
    { 
        p_pCtrlValue.value = strOrigFieldValue;
	    UpdateTimeValue(p_strCtrlName, p_bDisplaySeconds);
    }
}

function ValidateHours(p_pCtrlValue, p_strCtrlName, p_bDisplaySeconds, p_bDisplayAMPM)
{
    var nMaxHours =(p_bDisplayAMPM)?12:24;

    if( (isNaN(p_pCtrlValue.value)) || (p_pCtrlValue.value > nMaxHours) || (p_pCtrlValue.value <= 0) )
    {
        p_pCtrlValue.value = strOrigFieldValue;
    }
    else
    {
        if ( (p_pCtrlValue.value.length < 2) && (ZERO == "0") )
        {
            p_pCtrlValue.value = "0" + p_pCtrlValue.value;
        }
    }
    
	UpdateTimeValue(p_strCtrlName, p_bDisplaySeconds);
}

function ValidateHoursNumericOnly(p_pCtrlValue, p_strCtrlName, p_bDisplaySeconds)
{
	UpdateTimeValue(p_strCtrlName, p_bDisplaySeconds);
	
    if( isNaN(p_pCtrlValue.value) )
    { 
        p_pCtrlValue.value = strOrigFieldValue;
	    UpdateTimeValue(p_strCtrlName, p_bDisplaySeconds);
    }
}

//Set spinbox default values
function SetDefaultValues(p_strCtrlName, p_bDisplaySeconds, p_bDisplayAMPM)
{
    var CurrTime = new Date();

    if (CurrTime.getMinutes() >= 10)
    {
        document.getElementById(p_strCtrlName + "_minutes").value = CurrTime.getMinutes();
    }
    else
    {
        document.getElementById(p_strCtrlName + "_minutes").value = ZERO + CurrTime.getMinutes();
    }

    if( ! p_bDisplaySeconds)
    {
	    document.getElementById(p_strCtrlName + "_seconds").style.display = "none";
	    //document.getElementById(p_strCtrlName + "_sec_sep").style.display = "none";
    }
    else
    {
        if (CurrTime.getSeconds()>=10)
        {
            document.getElementById(p_strCtrlName + "_seconds").value = CurrTime.getSeconds();
        }
        else
        {
            document.getElementById(p_strCtrlName + "_seconds").value = ZERO + CurrTime.getSeconds();
        }
    }

    if( ! p_bDisplayAMPM)
    {
	    nHour = CurrTime.getHours();
	    document.getElementById(p_strCtrlName + "_ampm").style.display = "none";
    }
    else
    {
	    if (CurrTime.getHours() > 12)
	    {
	        nHour = CurrTime.getHours() - 12;
	        document.getElementById(p_strCtrlName + "_ampm").value = "PM";
	    }
	    else
	    {
	        nHour = CurrTime.getHours();
	        document.getElementById(p_strCtrlName + "_ampm").value = "AM";
	    }
    }

    if( nHour >= 10)
    {
        document.getElementById(p_strCtrlName + "_hours").value = nHour;
    }
    else
    {
        document.getElementById(p_strCtrlName + "_hours").value = ZERO + nHour;
    }
    
    UpdateTimeValue(p_strCtrlName, p_bDisplaySeconds);
}


