// <![CDATA[

function Heartbeat()
{
    try
    {
        if(PageMethods == null) return;

        PageMethods.PingServer();
        setTimeout("Heartbeat()", 1000 * 60 * 5);  //5 minutes
    }
    catch(ex) { }
}

//http://rafael.adm.br/css_browser_selector/
var css_browser_selector = function() {var ua=navigator.userAgent.toLowerCase(),is=function(t){return ua.indexOf(t) != -1;},h=document.getElementsByTagName('html')[0],b=(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?'gecko ff2':is('firefox/3')?'gecko ff3':is('gecko/')?'gecko':is('opera/9')?'opera opera9':/opera\s(\d)/.test(ua)?'opera opera'+RegExp.$1:is('konqueror')?'konqueror':is('chrome')?'chrome webkit safari':is('applewebkit/')?'webkit safari':is('mozilla/')?'gecko':'',os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win':'';var c=b+os+' js'; h.className += h.className?' '+c:c;}();

function UpdateMessageBox(header, details, showOk, showAddNew, showBack, addNewUrl, backUrl)
{
    FindById('MessageHeader').innerHTML = header;
    FindById('MessageInfo').innerHTML = details;
    
    FindById('btnOk').style.display = (Boolean.parse(showOk) ? "inline" : "none");
    FindById('btnAdd').style.display = (Boolean.parse(showAddNew) ? "inline" : "none");
    FindById('btnBack').style.display = (Boolean.parse(showBack) ? "inline" : "none");
    
    FindById('btnAdd').href = addNewUrl.replace("~/", "/");
    FindById('btnBack').href = backUrl.replace("~/", "/");
}

function AddOnResize(func)
{
    oldOnResize = window.onresize; 
    if (typeof window.onresize != 'function') 
    {     
        window.onresize = function() 
        {
            func();  
        } 
    }
    else 
    {     
        window.onresize = function() 
        {         
            oldOnResize();  
            func();
        }
    } 
}
AddOnResize(function()
{
    if(FindById('grayArea') && FindById('grayArea').style.display == "inline")
    {
        ResizeOverlay('MessageDIV');
    }
});

if(!Array.indexOf)
{
    Array.prototype.indexOf = function(obj){
        for(var i=0; i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
        return -1;
    }
}
function FindById(id)
{
    var obj = document.getElementById(id);
    if(obj == null)
        obj = document.getElementById("ctl00_" + id);
    if(obj == null)
        obj = document.getElementById("ctl00_ContentPlaceHolder1_" + id);
    return obj;
}

function Reset(arg)
{
    if(confirm("Are you sure you want to reset form?"))
    {
        document.location.href = arg;
    }
}
function NavigateToURL(url)
{
    NavigateToURL(url, 100);
}
function NavigateToURL(url, delay)
{
    setTimeout("document.location.href = '" + url + "'", delay);
    return false;
}
function popAtMouse(width, height, url, evt)
{
    if(window.event)
    {
        var topPos = window.event.screenY - (height/2);
	    var leftPos = window.event.screenX - (width/2);
    	
	    var settings = 'width=' + width + ',height=' + height + ',location=no,directories=no,menubar=no,toolbar=no,' +
	        'status=no,scrollbars=no,resizable=no,dependent=no,top=' + topPos + ',left=' + leftPos;
        setTimeout("OpenPopUp('" + url + "', 'win2', '" + settings + "')", 100);
    }
    else
        popCentered(width, height, url);
    
}
function popCentered(width, height, url, noDelay)
{
    var topPos = (screen.availHeight)/2 - (height/2);
    var leftPos = (screen.availWidth)/2 - (width/2);
    var settings = 'width=' + width + ',height=' + height + ',location=no,directories=no,menubar=no,toolbar=no,' +
        'status=no,scrollbars=yes,resizable=yes,dependent=yes,top=' + topPos + ',left=' + leftPos;
    //calWindow=open(url,'win2',settings);
    //if (calWindow.opener == null) calWindow.opener = self;
    //return calWindow;
    if (!noDelay)
        setTimeout("OpenPopUp('" + url + "', 'win2', '" + settings + "')", 100);
    else
        OpenPopUp(url, 'win2', settings);
}
function OpenPopUp(url, name, settings)
{
    calWindow=open(url,'win2',settings);
    if (calWindow.opener == null) calWindow.opener = self;
    return calWindow;
}

function BackToIndex()
{
    if(confirm('Are you sure you want to cancel?'))
    {
        document.location.href = "Index.aspx";
    }
}
function ClearRows(tbl, start)
{
    row = tbl.rows[start];
    while(row)
    {
        row = tbl.deleteRow(start);
        row = tbl.rows[start];
    }
}
var timeout = false;
function SelectTab(tabID, index)
{
    if(timeout)
    {
        var tabStrip = eo_GetObject(tabID);
        var totalCount = tabStrip.getTopGroup().getItemCount();
        if (totalCount == 0)
            return;
        if(totalCount <= index)
            index = 0;
        tabStrip.setSelectedIndex(index);
    }
    else
    {
        timeout = true;
        setTimeout("SelectTab('" + tabID + "', " + index + ")", 50);
    }
}
function flipWith(eventCB, otherID)
{
    eventCB.checked = true;
    FindById(otherID).checked = false; 
}
function DisplayTable(id)
{
    FindById("ctl01_WeeklyTable").style.display = "none";
    FindById("ctl01_MonthlyTable").style.display = "none";
    FindById("ctl01_YearlyTable").style.display = "none";
    
    FindById("ctl01_" + id + "Table").style.display = "inline";
}
function showMaintenanceRecordPDFs(ids)
{
    if(ids != "")
        popCentered(700, 600, "/Equipment/MaintenanceRecordPrintVersion.aspx?reports=" + ids);
    return false;
}
function showFieldReportPDFs(ids)
{
    if(ids != "")
        popCentered(700, 600, "/FieldReport/PrintVersion.aspx?reports=" + ids);
}
function showExpensesPDFs(ids)
{
    if(ids != "")
        popCentered(700, 600, "/Expense/PrintVersion.aspx?reports=" + ids);
}
function showBreakReportPDFs(ids)
{
    if(ids != "")
        popCentered(700, 600, "/Geosys/PrintVersion.aspx?reports=" + ids);
}
function toggleOverlay(objId, show)
{
    var mode1 = "inline", mode2 = "none";
    if(show)
    {
        mode1 = "none";
        mode2 = "inline";
     
        FindById(objId).style.top = "0px";
        FindById(objId).style.left = "0px";   
    }

    FindById('grayArea').style.display = mode2;
    if (show) FindById('grayArea').focus();
    FindById(objId).style.display = mode2;   
    
    if(show)
        ResizeOverlay(objId);
    
    if(typeof toggleDropDowns == 'function') 
        toggleDropDowns(mode1);
}
function ResizeOverlay(objId)
{
    var width = parseInt(FindById(objId).style.width.replace("px", ""), 10);
    var height = FindById(objId).clientHeight;
    
    if(isNaN(width))
        width = FindById(objId).clientWidth;
    
    var top = (document.documentElement.clientHeight / 2 - height /2) + document.documentElement.scrollTop;
    var left = document.documentElement.clientWidth / 2 - width /2; 
    
    height = document.documentElement.clientHeight;
    if(document.documentElement.scrollHeight > document.documentElement.clientHeight)
        height = document.documentElement.scrollHeight;

    FindById('grayArea').style.height = height + "px";
    FindById('grayArea').style.width = document.documentElement.clientWidth + "px";

    FindById(objId).style.top = top + "px";
    FindById(objId).style.left = left + "px";
}
function setSelRange(inputEl, selStart, selEnd) 
{  
    if (inputEl.setSelectionRange) 
    {   
        inputEl.focus();   
        inputEl.setSelectionRange(selStart, selEnd);  
    } 
    else if (inputEl.createTextRange) 
    {   
        var range = inputEl.createTextRange();   
        range.collapse(true);   
        range.moveEnd('character', selEnd);   
        range.moveStart('character', selStart);   
        range.select();  
    }
}
function DisplayScreen(mode, grayBoxID, boxID)
{
    var backScreen = FindById(grayBoxID);
    var box = FindById(boxID);
    
    if (mode)
    {
        box.style.display = "inline";
        backScreen.style.display = "inline";
    }
    else 
    
    {
        box.style.display = "none";
        backScreen.style.display = "none";
        return;
    }
    
    backScreen.style.width = screen.availWidth + "px";
    backScreen.style.height = document.body.clientHeight + "px";
    
    var top = ((screen.availHeight / 2 - parseInt(box.offsetHeight, 10) /2) + document.documentElement.scrollTop - 50); 
    var left = 0;
    if (box.style.width != "")
        left = screen.availWidth / 2 - parseInt(box.style.width, 10) /2;
    else
        left = screen.availWidth / 2 - parseInt(box.offsetWidth, 10) / 2;
    
    box.style.top = top + "px";
    box.style.left = left + "px";
}
function DisplayAcrobat()
{
    popCentered(300, 200, "/AcrobatMessage.aspx");
    return false;
}
function checkTime(obj, period, func, round)
{
    var error = false; 
    if(obj.value != "")
    {
        try
        {
            obj.className = "";    
            if(obj.value.length > 5){ error = true; }
            else
            {
                if(obj.value.length <= 2)
                    obj.value = obj.value + ":00";
                    
                if(obj.value.indexOf(":") == -1)
                {
                    if(obj.value.length == 3){ obj.value = "0" + obj.value; }
                    obj.value = obj.value.substring(0, 2) + ":" + obj.value.substring(2, 4);
                }
                else if(obj.value.length == 4)
                    obj.value = "0" + obj.value;
                
                var hour = parseInt(obj.value.substring(0, 2), 10);
                if(hour >= 12)
                {
                    if(hour % 12 != 0){ obj.value = hour%12 + obj.value.substring(2, 5); }
                    period.selectedIndex = 1;
                }
            }
            if(obj.value.length == 4) obj.value = "0" + obj.value;
            
            if(round)
            { 
                var minutes = parseInt(obj.value.substring(5, 3), 10);
                if(minutes != 15 && minutes != 30 && minutes != 45 && minutes != 0)
                {
                    var remainder = minutes % 15;
                    if(remainder > 7)
                        minutes = minutes + (15 - remainder);
                    else 
                        minutes = minutes - remainder;
                }
                
                if(minutes == 0) minutes = "00";
                obj.value = obj.value.substring(0, 3) + minutes;
            }
            if(func){ if(!func(obj.value)){ error = true; }}
            var hour = parseInt(obj.value.substring(0, 2), 10);
            var minutes = parseInt(obj.value.substring(5, 3), 10);
            if(isNaN(hour)) throw("");
            if(isNaN(minutes)) throw("");
        }
        catch(ex) 
        {
            error = true;
        }
        
        if(error)
        {
            obj.value = "";
            alert("Please enter a valid time.");
        }
    }
    else error = true;
    return !error;
}
function toggleNav(id)
{
    var obj = FindById("nav_" + id);
    if(obj != null)
    {
        if(obj.getAttribute("IsToggled") == "true")
        {
            obj.setAttribute("IsToggled", "false");
            FindById("row_" + id).style.display = "none";
            PageMethods.UpdateNavToggled(id, false);
        }
        else
        {
            obj.setAttribute("IsToggled", "true");
            FindById("row_" + id).style.display = "inline";
            PageMethods.UpdateNavToggled(id, true);
        }
    }
}
function goToUrl(url)
{
    document.location.href = url;
    return false;
}
function ShowDetails(mode, clientId)
{
    popCentered(600, 500, "/FieldReport/ShowDetails.aspx?mode=" + mode + "&clientId=" + clientId);
}
function NotImplemented()
{
    alert("This functionality has not been implemented");
    return false;
}
function AjaxFailure(response) 
{ 
    alert(response);
}

// ]]>