

function timeDiff(p_strFromName,p_strToName,p_lngHoursDiff,p_lngMinsDiff)
{
    this.strFromName = p_strFromName
    this.strToName = p_strToName
    this.lngHoursDiff = p_lngHoursDiff
    this.lngMinsDiff = p_lngMinsDiff
    this.dblHoursMinsDiff = 0.0
    this.display();
}

timeDiff.prototype.display = function()
{
    var dblHoursMinsDiffFraction
    var strTimeComparison
    var strHoursFrom = '17', strMinsFrom = '00'
    
    if(cookieGet('TimeDiffHoursFrom') != '')
        strHoursFrom = cookieGet('TimeDiffHoursFrom')
    if(cookieGet('TimeDiffMinsFrom') != '')
        strMinsFrom = cookieGet('TimeDiffMinsFrom')
        
    this.dblHoursMinsDiff = this.lngHoursDiff + this.lngMinsDiff / 60   
    this.lngHoursDiff = Math.floor(abs(this.dblHoursMinsDiff))
    dblHoursMinsDiffFraction = abs(this.dblHoursMinsDiff) - this.lngHoursDiff
        
        strTimeComparison = this.strToName + ' is ' 
        if (this.lngHoursDiff == 1)
            strTimeComparison = strTimeComparison + this.lngHoursDiff + ' hour '
        else
            strTimeComparison = strTimeComparison + this.lngHoursDiff + ' hours '
            
        if (dblHoursMinsDiffFraction != 0)
            strTimeComparison = strTimeComparison + ' and ' + dblHoursMinsDiffFraction * 60 + ' minutes '
        
        if (this.dblHoursMinsDiff < 0)
            strTimeComparison = strTimeComparison + 'behind'
        else
            strTimeComparison = strTimeComparison + 'ahead of'
        
        
        document.getElementById('spnTimeComparison').innerHTML = strTimeComparison + ' ' + this.strFromName
        
        document.getElementById('spnTimeDiff').innerHTML = 'At ' 
        + '<input type="text" id="txtHoursHome" class="time" value="' + strHoursFrom + '" maxlength="2" onchange="javascript:timediff.timeHomeChange()" />'
        + ':<input type="text" id="txtMinsHome" class="time" value="' + strMinsFrom + '" maxlength="2" onchange="javascript:timediff.timeHomeChange()" />' 
        + '<span id="spnLocationHome"></span>' 
        + '<input type="text" id="txtHoursAway" class="time" maxlength="2" onchange="javascript:timediff.timeAwayChange()" />'
        + ':<input type="text" id="txtMinsAway" class="time" maxlength="2" onchange="javascript:timediff.timeAwayChange()" />'
        + '<span id="spnLocationAway"></span>'
        
        this.timeHomeChange() 
}

timeDiff.prototype.isValidInputPrompt = function(strHours,strMins)
{
    if(isNaN(strHours) || isNaN(strMins) 
        || strHours > 23 || strHours < 0 || strMins > 59 || strMins < 0)
    {   
        document.getElementById("spnLocationHome").innerHTML = '&nbsp;input valid time for ' + this.strFromName + ' '
        document.getElementById("spnLocationAway").innerHTML = '<br />or input valid time for ' + this.strToName 
        return false
    }
    else
    {
        return true
    }
}

timeDiff.prototype.timeHomeChange = function()
{
    var dblHoursMinsHome, dblHoursMinsResult
    var strDay, strAMHome = '', strAMResult = ''
    var strHours, strMins
    
    if(!this.isValidInputPrompt(document.getElementById("txtHoursHome").value,document.getElementById("txtMinsHome").value))
    {
        document.getElementById("txtHoursAway").value = ''
        document.getElementById("txtMinsAway").value = '' 
    }
    else
    {
        strHours = padL(document.getElementById("txtHoursHome").value,2,"0")
        strMins = padL(document.getElementById("txtMinsHome").value,2,"0")
        
        document.getElementById("txtHoursHome").value = strHours
        document.getElementById("txtMinsHome").value = strMins
        
        cookieSet('TimeDiffHoursFrom',strHours,365)
        cookieSet('TimeDiffMinsFrom',strMins,365)
        
        dblHoursMinsHome = (document.getElementById("txtHoursHome").value / 1) + (document.getElementById("txtMinsHome").value / 60)
        dblHoursMinsResult = dblHoursMinsHome + this.dblHoursMinsDiff

        if(dblHoursMinsResult < 0)
        {
           strDay = ' on the previous day'
           dblHoursMinsResult = dblHoursMinsResult + 24
        }
        else if(dblHoursMinsResult >= 24)
        {
            strDay = ' on the next day'
            dblHoursMinsResult = dblHoursMinsResult - 24 
        }
        else
        {
            strDay =  ' on the same day'
        }
        
        if(dblHoursMinsHome < 12)
        {
            strAMHome = '&nbsp;AM'
        }
        else if(Math.floor(dblHoursMinsHome) == 12)
        {
            strAMHome = '&nbsp;PM'
        }
        
        if(dblHoursMinsResult < 12)
        {
            strAMResult = '&nbsp;AM'
        }
        else if(Math.floor(dblHoursMinsResult) == 12)
        {
            strAMResult = '&nbsp;PM'
        }
        
        document.getElementById("spnLocationHome").innerHTML = strAMHome + '&nbsp;in ' + this.strFromName + ' it is '
        document.getElementById("txtHoursAway").value = padL(Math.floor(dblHoursMinsResult),2,"0")
        document.getElementById("txtMinsAway").value = padL(Math.round((dblHoursMinsResult - Math.floor(dblHoursMinsResult)) * 60),2,"0") 
        document.getElementById("spnLocationAway").innerHTML = strAMResult + '<br />in ' + this.strToName + strDay
    }
}

timeDiff.prototype.timeAwayChange = function()
{
    var dblHoursMinsAway, dblHoursMinsResult
    var strDay,strAMAway = '',strAMResult = '', strHoursFrom, strMinsFrom
       
    if(!this.isValidInputPrompt(document.getElementById("txtHoursAway").value,document.getElementById("txtMinsAway").value))
    {
        document.getElementById("txtHoursHome").value = ''
        document.getElementById("txtMinsHome").value = '' 
    }
    else
    {
        document.getElementById("txtHoursAway").value = padL(document.getElementById("txtHoursAway").value,2,"0")
        document.getElementById("txtMinsAway").value = padL(document.getElementById("txtMinsAway").value,2,"0")
        dblHoursMinsAway = (document.getElementById("txtHoursAway").value / 1) + (document.getElementById("txtMinsAway").value / 60)
        dblHoursMinsResult = dblHoursMinsAway - this.dblHoursMinsDiff

        if(dblHoursMinsResult < 0)
        {
           strDay = ' on the next day'
           dblHoursMinsResult = dblHoursMinsResult + 24
        }
        else if(dblHoursMinsResult >= 24)
        {
            strDay = ' on the previous day'
            dblHoursMinsResult = dblHoursMinsResult - 24 
        }
        else
        {
            strDay =  ' on the same day'
        }
        
        if(dblHoursMinsAway < 12)
        {
            strAMAway = '&nbsp;AM'
        }
        else if(Math.floor(dblHoursMinsAway) == 12)
        {
            strAMAway = '&nbsp;PM'
        }
        
        if(dblHoursMinsResult < 12)
        {
            strAMResult = '&nbsp;AM'
        }
        else if(Math.floor(dblHoursMinsResult) == 12)
        {
            strAMResult = '&nbsp;PM'
        }
        
        strHoursFrom = padL(Math.floor(dblHoursMinsResult),2,"0")
        strMinsFrom = padL(Math.round((dblHoursMinsResult - Math.floor(dblHoursMinsResult)) * 60),2,"0")
        
        document.getElementById("spnLocationHome").innerHTML = strAMResult + '&nbsp;in ' + this.strFromName + ' it is '
        document.getElementById("txtHoursHome").value = strHoursFrom
        document.getElementById("txtMinsHome").value =  strMinsFrom
        document.getElementById("spnLocationAway").innerHTML = strAMAway + '<br />in ' + this.strToName + strDay
        
        
        cookieSet('TimeDiffHoursFrom',strHoursFrom,365)
        cookieSet('TimeDiffMinsFrom',strMinsFrom,365)
    }
}
/* BJC
function writeLineBreaksIfNeeded()
{
    if (navigator.appName != 'Microsoft Internet Explorer')
        document.write('<br /><br />')
} */