﻿ // Sample Custom Icon, Color and Formatter for Single View Configuration
var crmColors = {
    darkAmber: "#F67842",
    lightAmber: "#FFB223",
    darkRed: "#A52121",
    darkBlue: "#4573B1",
    lightBlue: "#5B99C4",
    darkPurple: "#B07395",
    darkGreen: "#4A962A",
    teal: "Teal"
};

function determineCustomColor(record, entityLogicalName) {
    switch (entityLogicalName) {
    case "fin_policy":
        if (record.fin_ProductId.Name.indexOf("Property") >= 0) {
            return crmColors.lightBlue
        }
        if (record.fin_ProductId.Name.indexOf("Home and Family") >= 0) {
            return crmColors.darkBlue
        }
        if (record.fin_ProductId.Name.indexOf("Motor Bike") >= 0) {
            return crmColors.darkBlue
        }
        if (record.fin_ProductId.Name.indexOf("Motor") >= 0) {
            return crmColors.darkBlue
        }
        if (record.fin_ProductId.Name.indexOf("Scooter") >= 0) {
            return crmColors.darkBlue
        }
        if (record.fin_ProductId.Name.indexOf("Auto") >= 0) {
            return crmColors.darkBlue
        }
        if (record.fin_ProductId.Name.indexOf("Fire") >= 0) {
            return crmColors.darkBlue
        }
        if (record.fin_ProductId.Name.indexOf("Casualty") >= 0) {
            return crmColors.darkAmber
        }
        if (record.fin_ProductId.Name.indexOf("Credit") >= 0) {
            return crmColors.darkPurple
        }
        if (record.fin_ProductId.Name.indexOf("Liability") >= 0) {
            return crmColors.darkPurple
        }
        if (record.fin_ProductId.Name.indexOf("Medical") >= 0) {
            return crmColors.darkAmber
        }
        if (record.fin_ProductId.Name.indexOf("Life") >= 0) {
            return crmColors.darkGreen
        }
        return crmColors.lightBlue;
    case "fin_claim":
        if (record.fin_ClaimStatus.Value == 914950000) {
            return crmColors.darkBlue
        } // In Progress
        if (record.fin_ClaimStatus.Value == 914950001) {
            return crmColors.lightAmber
        } // Partially Accepted
        if (record.fin_ClaimStatus.Value == 914950002) {
            return crmColors.darkGreen
        } // Fully Accepted
        if (record.fin_ClaimStatus.Value == 914950003) {
            return crmColors.darkRed
        } // Rejected
        return crmColors.lightBlue;
    case "opportunity":
        return crmColors.darkGreen;
    case "incident":
        return crmColors.lightAmber; // Replace with RAG Status later on
    default:
        return crmColors.darkPurple;
    }
}
function determineCustomIcon(record, entityLogicalName) {
    switch (entityLogicalName) {
    case "opportunity":
        if (record.Name.indexOf("Equity") >= 0) {
            return "AssetMgt/Equity.png"
        }
        if (record.Name.indexOf("Quant") >= 0) {
            return "Banking/AdvisoryRoadAhead.png"
        }
        if (record.Name.indexOf("sample") >= 0) {
            return "AssetMgt/Investment.png"
        }
        if (record.Name.indexOf("Emerging Markets") >= 0) {
            return "Insurance/PensionDollar.png"
        }
        return "Temp.png";
    case "fin_claim":
        case "fin_policy":
        if (record.fin_ProductId.Name.indexOf("Property") >= 0) {
            return "Insurance/Home.png"
        }
        if (record.fin_ProductId.Name.indexOf("Home and Family") >= 0) {
            return "Insurance/HomeAndFamily.png"
        }
        if (record.fin_ProductId.Name.indexOf("Motorbike") >= 0) {
            return "Insurance/MotorBike.png"
        }
        if (record.fin_ProductId.Name.indexOf("Motor") >= 0) {
            return "Insurance/Mobility.png"
        }
        if (record.fin_ProductId.Name.indexOf("Scooter") >= 0) {
            return "Insurance/Scooter.png"
        }
        if (record.fin_ProductId.Name.indexOf("Auto") >= 0) {
            return "Insurance/Mobility.png"
        }
        if (record.fin_ProductId.Name.indexOf("Fire") >= 0) {
            return "Insurance/Fire.png"
        }
        if (record.fin_ProductId.Name.indexOf("Casualty") >= 0) {
            return "Insurance/Casualty.png"
        }
        if (record.fin_ProductId.Name.indexOf("Credit") >= 0) {
            return "Insurance/Liability.png"
        }
        if (record.fin_ProductId.Name.indexOf("Liability") >= 0) {
            return "Insurance/Liability.png"
        }
        if (record.fin_ProductId.Name.indexOf("Medical") >= 0) {
            return "Insurance/Medical.png"
        }
        if (record.fin_ProductId.Name.indexOf("Life") >= 0) {
            return "Insurance/Person.png"
        }
        return "Temp.png";
    case "incident":
        if (record.CaseTypeCode.Value == 1) {
            return "Temp.png"
        } // Question
        if (record.CaseTypeCode.Value == 2) {
            return "Insurance/Fire.png"
        } // Problem
        if (record.CaseTypeCode.Value == 3) {
            return "Insurance/Person.png"
        } // Request - Needs Different Icon
    default:
        return "Temp.png";
    }
}
function determineCustomFormat(record, entityLogicalName, field) {
    //alert(entityLogicalName + "/" + field + ": " + record[field]);
    //alert(record[field].Value);
    var t = record[field];
    switch (entityLogicalName + "/" + field) {
    case "opportunity/Name":
        t = t.replace(" (sample)", "").replace(" - ", ":<br />");
        if (record.StateCode.Value == 2) { // Lost Opportunity
            var reason = "Status " + record.StatusCode.Value;
            switch (record.StatusCode.Value) {
            case 4:
                reason = "Investment Canceled";
                break;
            case 5:
                reason = "Out-Sold";
                break;
            case 914950000:
                reason = "Lost on Relationship";
                break;
            case 914950001:
                reason = "Lost Funding";
                break;
            case 914950002:
                reason = "Lost on Price";
                break;
            }
            t += "<br />[" + reason + "]";
        } else { // Won, Open Opportunities
            var interest = (record.fin_FundId.Name != null) ? record.fin_FundId.Name : record.fin_ProductGroupId.Name;
            if (interest != null) {
                t += "<br>[" + interest + "]"
            }
        }
        return (t.length <= 60) ? "<br />" + t : t;
    case "fin_policy/fin_InsuredItems":
        var broker = record.fin_BrokerId;
        t = t.replace(": ", ":<br />").replace(/, /g, ",<br />");
        if (broker.Name != null) {
            t += "<br />[" + broker.Name + "]"
        }
        if (t.length <= 45) {
            t = "<br />" + t
        }
        return t;
    case "incident/Title":
        t = (t == null) ? "" : t.replace(" (sample)", "");
        return (t.length <= 60) ? "<br />" + t : t;
    default:
        return t;
    }
}
function quickButtonClicked(context) {
}
// PM: Unsupported Code for now for Update 7.1 pending Product Group feedback
top.window.quickButtonClicked = quickButtonClicked;
top.window.determineCustomColor = determineCustomColor;
top.window.determineCustomIcon = determineCustomIcon;
top.window.determineCustomFormat = determineCustomFormat;