var mapParent = null;
var isPersonalJob = false;
var isMeasureMentJob = false;

function ClickIE4() {
    if (event.button == 2) {
        exec(evCalendarHandler);
        return false;
    }
}

function ClickNS4(e) {
    if (document.layers || document.getElementById && !document.all) {
        if (e.which == 2 || e.which == 3) {
            exec(evCalendarHandler);
            return false;
        }
    }
}

function EventCalendarInitialize(controlId, eventHandlerName, currentDate) {
    var controlList;
    try {
        controlList = document.getElementById(controlId).getElementsByTagName('INPUT');
    } catch (ex) { setTimeout('EventCalendarInitialize("' + controlId + '","' + eventHandlerName + '","' + currentDate + '");', 100); return; }

    var count = 0;
    for (var index = 0; index < controlList.length; index++)
        if (controlList[index].className == 'hiddenDate')
        count++;

    if (!controlList || count < 40) {
        setTimeout('EventCalendarInitialize("' + controlId + '","' + eventHandlerName + '","' + currentDate + '");', 100);
        return;
    }
    for (var index = 0; index < controlList.length; index++) {
        if (controlList[index].className == 'hiddenDate') {
            if (document.layers) {
                controlList[index].captureEvents(Event.MOUSEDOWN);
                controlList[index].onmousedown = ClickNS4;
            }
            else if (document.all && !document.getElementById)
                controlList[index].onmousedown = ClickIE4;

            if (controlList[index].getElementsByTagName('INPUT').length != 0)
                controlList[index].oncontextmenu = new Function('RightClickHandler("' + eventHandlerName + '","'
                     + controlList[index].getElementsByTagName('INPUT')[0].value + '");return false');

            if (window.ActiveXObject) {
                var parent = controlList[index];
                while (parent.tagName != 'TABLE')
                    parent = parent.parentElement;
                var divHeader = parent.getElementsByTagName('DIV')[0];
                if (divHeader.className != 'otherMonth')
                    parent.parentElement.oncontextmenu = new Function('RightClickHandler("' + eventHandlerName + '","'
                        + controlList[index].value + '");return false');
                else
                    parent.parentElement.oncontextmenu = new Function('return false');
                parent.parentElement.style.cursor = 'pointer';
            }
            else {
                var parent = controlList[index];
                while (parent.tagName != 'TABLE')
                    parent = parent.parentNode;
                var divHeader = parent.getElementsByTagName('DIV')[0];
                if (divHeader.className != 'otherMonth')
                    parent.parentNode.oncontextmenu = new Function('RightClickHandler("' + eventHandlerName + '","'
                         + controlList[index].value + '");return false');
                else
                    parent.parentNode.oncontextmenu = new Function('return false');
                parent.parentNode.style.cursor = 'pointer';
            }
        }
    }
    controlList = document.getElementById(controlId).getElementsByTagName('DIV');
    for (var index = 0; index < controlList.length; index++) {
        if (controlList[index].className.indexOf('EventCalendar') == 0) {
            controlList[index].oncontextmenu =
                function() {
                    var hiddenField = this.getElementsByTagName('INPUT')[0];
                    isPersonalJob = (this.innerHTML.indexOf('>Personal J - ') != -1);
                    isMeasureMentJob = hiddenField.value.indexOf(';') > -1;
                    document.getElementById(jobID).value = hiddenField.value;
                };
        }
        else
            if (controlList[index].className == 'divNothing') {
            controlList[index].oncontextmenu = function() {
                document.getElementById(jobID).value = '';
            };
        }
    }
}

function RightClickHandler(handler, handlerDay) {
    eval(handler + '("' + handlerDay + '")');
}

function DoSomething(date) {
    document.getElementById(hiddenDate).value = date;
    var divControlMenu = document.getElementById(divMenu);
    divControlMenu.style.display = 'inline';
    var listControls = document.getElementById('divEventDealerCalendar').getElementsByTagName('INPUT');
    for (var index = 0; index < listControls.length; index++)
        if (listControls[index].value && listControls[index].value == date) {
        divControlMenu.style.top = mousePos.y;
        divControlMenu.style.left = mousePos.x;

        var links = divControlMenu.getElementsByTagName('A');
        for (var i = 1; i < links.length; i++)
            if (document.getElementById(jobID).value == '') {
            links[i].disabled = true;
            links[i].style.color = 'gray';
        }
        else {
            links[i].disabled = false;
            links[i].style.color = '#FF7A28';
        }
        if (links.length > 3)
            if (document.getElementById(copyJobID).value == '') {
            links[links.length - 1].disabled = true;
            links[links.length - 1].style.color = 'gray';
        }
        else {
            links[links.length - 1].disabled = false;
            links[links.length - 1].style.color = '#FF7A28';
        }
        try {
            if (isInstallerPage && !isPersonalJob && !isMeasureMentJob) {
                links[links.length - 3].disabled = true;
                links[links.length - 3].style.color = 'gray';

                links[links.length - 2].disabled = true;
                links[links.length - 2].style.color = 'gray';

                links[links.length - 1].disabled = true;
                links[links.length - 1].style.color = 'gray';
            }
        } catch (ex) { }
        return;
    }
}

function HideQuick() {
    document.getElementById(divMenu).style.display = 'none';
}

function ShowAddJob() {
    var divJobDescription = document.getElementById(divJobDescription);
    document.getElementById(hiddenDateJobControl).value = document.getElementById(hiddenDate).value;
    HideQuick();
}

function LoadAddJob(tempdata) {

if(!tempdata || tempdata==null){
    if (!mousePos) {
        setTimeout('LoadAddJob()', 50);
        return false;
    }}else{if (!mousePos) {
        setTimeout('LoadAddJob("'+tempdata+'")', 50);
        return false;
    }}
var titleaddtext = ''
if(tempdata && tempdata!='')titleaddtext= ' for ' + tempdata;

    var win = WindowSize();
    var divWidth = document.getElementById(divJobDescription).style.width.replace(/px/gi, '');
    var divHeight = document.getElementById(divJobDescription).style.height.replace(/px/gi, '');
    var x = (1.0 * win.x - 1.0 * divWidth) / 2;
    var y = (1.0 * win.y - 1.0 * divHeight) / 2;
    
    x = Math.max(x,100);
    y = Math.max(y,30);
    
    mapParent = window.ActiveXObject ? document.getElementById(divJobDescription).parentElement : document.getElementById(divJobDescription).parentNode;
    varPopUp = new popUp(x, y, divWidth, divHeight, "divJobDescription", document.getElementById(divJobDescription), "Job Description"+titleaddtext, document.getElementById(hiddenDateJobControl).value, btnCloseJobDescription);
    InitializateServiceItem(divJobDescription);
}

function GetMap() {
    if (!mousePos) {
        setTimeout('GetMap()', 50);
        return false;
    }
    var win = WindowSize();
    var divWidth = document.getElementById(divMap).style.width.replace(/px/gi, '');
    var divHeight = document.getElementById(divMap).style.height.replace(/px/gi, '');
    var x = (1.0 * win.x - 1.0 * divWidth) / 2;
    var y = (1.0 * win.y - 1.0 * divHeight) / 2;
    var varMapPopUp = new popUp(x, y, divWidth, divHeight, "divMap", document.getElementById(divMap), "Map", '', btnCloseMap);
    return false;
}

function DeleteJob(sender) {
    if (sender.style.color == 'gray') return false;
    HideQuick();
    return document.getElementById(jobID).value != '';
}

function Copy(sender) {
    if (sender.style.color == 'gray') return false;
    document.getElementById(copyJobID).value = document.getElementById(jobID).value;
    HideQuick();
    return false;
}

function Paste(sender) {
    if (sender.style.color == 'gray') return false;
    HideQuick();
    return document.getElementById(copyJobID).value != '';
}

function ShowQuickView(sender) {
    var element = sender;
    if (window.ActiveXObject) {
        while (element.tagName != 'TABLE')
            element = element.parentElement;
        element = element.parentElement;
    }
    else {
        while (element.tagName != 'TABLE')
            element = element.parentNode;
        element = element.parentNode;
    }
    document.getElementById(hdnDate).value = element.getElementsByTagName('INPUT')[0].value;
    if (document.getElementById(btnLoadDayEvents).dispatchEvent) {
        var e = document.createEvent("MouseEvents");
        e.initEvent("click", true, true);
        document.getElementById(btnLoadDayEvents).dispatchEvent(e);
    }
    else
        document.getElementById(btnLoadDayEvents).click();
}

function LoadQuickView() {
    if (!mousePos) {
        setTimeout('LoadQuickView()', 50);
        return false;
    }
    document.getElementById(hdnSelectedJobID).value = '';
    var win = WindowSize();
    var divWidth = document.getElementById(divQuickView).style.width.replace(/px/gi, '');
    var divHeight = document.getElementById(divQuickView).style.height.replace(/px/gi, '');
    var x = (1.0 * win.x - 1.0 * divWidth) / 2;
    var y = (1.0 * win.y - 1.0 * divHeight) / 2;
    varPopUp = new popUp(x, y, divWidth, divHeight, "divQuickView", document.getElementById(divQuickView), "QuickView", document.getElementById(hdnDate).value, btnClose);
}

function SelectJob(sender) {
    if (document.getElementById(hdnSelectedJob).value == sender.id) {
        sender.className = 'UnSelectedJob';
        document.getElementById(hdnSelectedJob).value = '';
    }
    else {
        sender.className = 'SelectedJob';
        if (document.getElementById(hdnSelectedJob).value != '')
            document.getElementById(document.getElementById(hdnSelectedJob).value).className = 'UnSelectedJob';
        document.getElementById(hdnSelectedJob).value = sender.id;
    }
}

function LoadDescription(varJobID) {
    document.getElementById(jobID).value = varJobID;
    if (document.getElementById(btnLoadDescription).dispatchEvent) {
        var e = document.createEvent("MouseEvents");
        e.initEvent("click", true, true);
        document.getElementById(btnLoadDescription).dispatchEvent(e);
    }
    else
        document.getElementById(btnLoadDescription).click();
}

function SelectServiceType(serviceTypeID) {
    document.getElementById(hdnServiceType).value = serviceTypeID;
}

function LoadAvailableDays(installerName) {
    if (!mousePos) {
        setTimeout('LoadAvailableDays(\'' + installerName + '\')', 50);
        return false;
    }
    var win = WindowSize();
    var divWidth = document.getElementById(divAvailableDays).style.width.replace(/px/gi, '');
    var divHeight = document.getElementById(divAvailableDays).style.height.replace(/px/gi, '');
    var x = (1.0 * win.x - 1.0 * divWidth) / 2;
    var y = (1.0 * win.y - 1.0 * divHeight) / 2;
    varPopUp = new popUp(x, y, divWidth, divHeight, "divAvailableDays", document.getElementById(divAvailableDays), installerName, '', btnCloseAvailability);
}

function ShowInstallerProfile(installerID) {
    document.getElementById(hdnInstallerID).value = installerID;
    if (document.getElementById(btnName).dispatchEvent) {
        var e = document.createEvent("MouseEvents");
        e.initEvent("click", true, true);
        document.getElementById(btnName).dispatchEvent(e);
    }
    else
        document.getElementById(btnName).click();
}

function InitializateServiceItem(popup) {
    var trs = document.getElementById(popup).getElementsByTagName('TR');
    for (var i = 0; i < trs.length; i++)
        if (trs[i].className == 'parentRow') {
        var inputs = trs[i].getElementsByTagName('INPUT');
        var cmb = trs[i].getElementsByTagName('SELECT')[0];
        var value = cmb.value.split(';')[0];
        var rate = cmb.value.split(';')[1];
        if (value == 0) {
            cmb.style.display = 'none';
            inputs[0].style.display = 'inline';
            inputs[0].value = '';
            inputs[1].style.display = 'inline';
            inputs[2].style.display = 'none';
            inputs[3].value = '';
            inputs[4].value = '';
        }
        else
            if (value > 0) {
            inputs[2].style.display = 'inline';
            inputs[4].value = rate;
        }
        else {
            inputs[2].style.display = 'none';
            inputs[4].value = '';
        }
    }
}

function ServiceItemChanged(sender) {
    var tr = sender;
    while (tr.className != 'parentRow')
        tr = window.ActiveXObject ? tr.parentElement : tr.parentNode;
    var inputs = tr.getElementsByTagName('INPUT');
    var value = sender.value.split(';')[0];
    var rate = sender.value.split(';')[1];
    if (value == 0) {
        sender.style.display = 'none';
        inputs[0].style.display = 'inline';
        inputs[0].value = '';
        inputs[1].style.display = 'inline';
        inputs[2].style.display = 'none';
        inputs[3].value = '';
        inputs[4].value = '';
    }
    else
        if (value > 0) {
        inputs[2].style.display = 'inline';
        inputs[4].value = rate;
    }
    else {
        inputs[2].style.display = 'none';
        inputs[4].value = '';
    }
}

function ServiceItemInstallerChanged(sender) {
    var tr = sender;
    while (tr.className != 'parentRow')
        tr = window.ActiveXObject ? tr.parentElement : tr.parentNode;
    var inputs = tr.getElementsByTagName('INPUT');
    var value = sender.value.split(';')[0];
    var rate = sender.value.split(';')[1];
    if (value > 0)
        inputs[1].value = rate;
    else
        inputs[1].value = '';
}

function CancelAddService(sender) {
    var tr = sender;
    while (tr.className != 'parentRow')
        tr = window.ActiveXObject ? tr.parentElement : tr.parentNode;
    tr.getElementsByTagName('SELECT')[0].style.display = 'inline';
    tr.getElementsByTagName('SELECT')[0].value = '-1';
    var inputs = tr.getElementsByTagName('INPUT');
    inputs[0].style.display = 'none';
    inputs[1].style.display = 'none';
    inputs[3].value = '';
    inputs[4].value = '';
}

function EditServiceItem(sender) {
    var tr = null;
    tr = window.ActiveXObject ? sender.parentElement.parentElement : td = sender.parentNode.parentNode;
    var inputs = tr.getElementsByTagName('INPUT');
    var select = tr.getElementsByTagName('SELECT')[0];
    select.style.display = 'none';
    inputs[0].style.display = 'inline';
    var options = select.getElementsByTagName('OPTION');
    for (var i = 0; i < options.length; i++)
        if (options[i].value == select.value)
        inputs[0].value = options[i].innerHTML;
    inputs[1].style.display = 'inline';
    inputs[2].style.display = 'none';
}

function LoadRateInstallerAlert(winTitle) {
    if (!mousePos) {
        setTimeout('LoadRateInstaller()', 50);
        return false;
    }
    var win = WindowSize();
    var divWidth = document.getElementById(divInstallerRate).style.width.replace(/px/gi, '');
    var divHeight = document.getElementById(divInstallerRate).style.height.replace(/px/gi, '');
    var x = (1.0 * win.x - 1.0 * divWidth) / 2;
    var y = (1.0 * win.y - 1.0 * divHeight) / 2;
    varPopUp = new popUp(x, y, divWidth, divHeight, "divInstallerRate", document.getElementById(divInstallerRate), winTitle, '', 'NOACTION');
}

function CalculateTotal() {
    try {
        var total = 0;
        var i = 0;
        var txtQ = null;
        var txtR = null;
        var q = 0;
        var r = 0;
        txtQ = document.getElementById(containerName + '_dlServiceProviders_ctl0' + i + '_txtQuantity');
        while (txtQ != null) {
            txtR = document.getElementById(containerName + '_dlServiceProviders_ctl0' + i + '_txtRate');
            q = txtQ.value;
            q = q * 1.0;
            r = txtR.value;
            r = r * 1.0;
            total += q * r;
            i++;
            txtQ = document.getElementById(containerName + '_dlServiceProviders_ctl0' + i + '_txtQuantity');
        }
        document.getElementById(totalID).value = total;
        if (document.getElementById(totalID).value == 'NaN')
            document.getElementById(totalID).value = '0';
    }
    catch (ex) {
        document.getElementById(totalID).value = '-1';
    }
}

function LoadExpiredTool() {
    if (!mousePos) {
        setTimeout('LoadExpiredTool()', 50);
        return false;
    }
    var win = WindowSize();
    var divWidth = document.getElementById(divToolEpired).style.width.replace(/px/gi, '');
    var divHeight = document.getElementById(divToolEpired).style.height.replace(/px/gi, '');
    var x = (1.0 * win.x - 1.0 * divWidth) / 2;
    var y = (1.0 * win.y - 1.0 * divHeight) / 2;
    varPopUp = new popUp(x, y, divWidth, divHeight, "divToolEpired", document.getElementById(divToolEpired), "Expired Tool", '', 'NOACTION');
}

function LoadExpire() {
    var win = WindowSize();
    var divWidth = document.getElementById(divExpire).style.width.replace(/px/gi, '');
    var divHeight = document.getElementById(divExpire).style.height.replace(/px/gi, '');
    var x = (1.0 * win.x - 1.0 * divWidth) / 2;
    var y = (1.0 * win.y - 1.0 * divHeight) / 2;
    varPopUp = new popUp(x, y, divWidth, divHeight, "divExpire", document.getElementById(divExpire), 'Classified Job Expired', '', 'NOACTION');
}

