// CoreMetrics Changes Start
var SelectedDeviceID = "";
var SelectedManufacturerName = "";
var SelectedValuePricing = "";
var SelectedFeature = "";
var SelectedType = "";
var PrepaidAttribute = "prepaid no commitment";
var ContractAttribute = "2-year contract";
var compDeviceCount = 0;
var maxCompare = 5;
// CoreMetrics Changes End

function clearCheckBoxControl() {


    $(".msgCmpAll").hide();
    var objAllDivs = $(".chkCompare");
    for (var i = 0; i < objAllDivs.length; i++) {
        var checkBox = $("#" + objAllDivs[i].id + " > input[type=checkbox]")[0];
        checkBox.checked = false;
        checkBox.disabled = false;
    }
}


// call this each time a checkbox is clicked
function CompareCheckChanged(checkBox, DeviceID) {
    if (typeof ('hdnSelectedDeviceId') != 'undefined')
        document.getElementById('hdnSelectedDeviceId').value = GetSelectedDeviceID(checkBox, DeviceID);

    if (checkBox.checked == true) {
        compDeviceCount++;
        IncrementValue(document.forms[0].txtSelectedDevices)
    }
    else {
        compDeviceCount--;
        DecrementValue(document.forms[0].txtSelectedDevices)
    }

    CompareControl();
    document.getElementById("hdnFilter").value = "";
} //function CheckChanged(checkBox)

function CompareControl() {
    $(".msgCmpAll").hide();
    if (compDeviceCount == 0)
        return;

    var objAllDivs = $(".chkCompare");

    for (var i = 0; i < objAllDivs.length; i++) {

        var checkBox = $("#" + objAllDivs[i].id + " > input[type=checkbox]")[0];
        var id = objAllDivs[i].id.replace("divCmp_", "");
        if (SelectedDeviceID.indexOf(id) >= 0)
            checkBox.checked = true;
        checkBox.disabled = false;
        $("#" + objAllDivs[i].id + " > span").removeClass("ftxtclr6a6a6a");
        if (compDeviceCount == 1) {
            if (checkBox.checked == true) {
                $("#" + objAllDivs[i].id + " .msgCheck").show();
                break;
            }
        }
        else if (compDeviceCount > 1 && compDeviceCount < maxCompare) {
            if (checkBox.checked == true) {
                $("#" + objAllDivs[i].id + " .cmdCmpNow").show();
            }
        }
        else if (compDeviceCount > 1 && compDeviceCount == maxCompare) {
            if (checkBox.checked == true) {
                $("#" + objAllDivs[i].id + " .cmdCmpNow").show();
            }
            else {
                $("#" + objAllDivs[i].id + " > span").addClass("ftxtclr6a6a6a");
                checkBox.disabled = true;
                $("#" + objAllDivs[i].id + " .msgUnCheck").show();
            }
        }
    }
}


function GetSelectedDeviceID(chkBox, DeviceID) {
    if (chkBox.checked) {
        if (SelectedDeviceID.length == 0 && DeviceID.length > 0) {
            SelectedDeviceID = DeviceID;
        }
        else {
            SelectedDeviceID = SelectedDeviceID + "," + DeviceID;
        }
    }
    else {
        if ((SelectedDeviceID.length > 0) && (SelectedDeviceID.indexOf(DeviceID) >= 0)) {
            var removeddevice = SelectedDeviceID.replace(DeviceID, "");

            SelectedDeviceID = removeddevice.substring(0, removeddevice.lastIndexOf(',')).replace(",,", ',');
        }
    }
    document.forms[0].txtSelectedDevices.value = SelectedDeviceID.split(',').length;
    return SelectedDeviceID;
}

function FeatureCheckChanged(checkBox) {
    if (checkBox.checked == true) {
        IncrementValue(document.forms[0].txtSelectedFeatures)
    }
    else {
        DecrementValue(document.forms[0].txtSelectedFeatures)
    }
}

function IncrementValue(textBox) {
    var val = parseInt(textBox.value);
    val += 1;
    textBox.value = val;
}
function DecrementValue(textBox) {
    var val = parseInt(textBox.value);
    val -= 1;
    if (val < 0) {
        val = 0;
    }
    textBox.value = val;
}
function ValidateCompare() {
    var selectedFeatures = parseInt(document.forms[0].txtSelectedFeatures.value);
    var selectedDevices = parseInt(document.forms[0].txtSelectedDevices.value);
    if (selectedFeatures > 0) {
        if (selectedDevices != 1 || SelectedDeviceID.split(',').length >= 2) {
            return true;
        }
        else {
            alert("Please select more than one device to compare.");
            return false;
        }
    }
    else {
        if (selectedDevices > 1 || SelectedDeviceID.split(',').length >= 2) {
            return true;
        }
        else {
            alert("Please select more than one device to compare.");
            return false;
        }
    }
}

function AddDeleteIDS(obj, IDS, hdnStore) {
    //Modified by RG to support dynamic filtering of adtiles and phoneheader
    var AllValue = document.getElementById(hdnStore).value
    if (obj.checked == true) {
        AllValue = AllValue + IDS + ",";
        document.getElementById("hdnSelections").value += "#" + IDS + ":" + hdnStore;

    }
    else {
        AllValue = AllValue.replace(IDS + ",", "");
        document.getElementById("hdnSelections").value = document.getElementById("hdnSelections").value.replace("#" + IDS + ":" + hdnStore, "");

    }
    document.getElementById(hdnStore).value = AllValue;
    document.getElementById("hdnPageIndex").value = 1;
    document.getElementById("hdnFilter").value = "1";

}

function ClearIDS() {
    //DebugLog("ClearIDS called");
    document.getElementById("hdnFilter").value = "1";
    document.getElementById("hdnManufacturer").value = "";
    document.getElementById("hdnType").value = "";
    document.getElementById("hdnPriceRange").value = "";
    document.getElementById("hdnFeature").value = "";
    document.getElementById("hdnCapCode").value = "";
    document.getElementById("hdnOtherFilters").value = "";
    ClearHiddenFldToStoreNames();

    document.getElementById("hdnSelections").value = "";

    // clear all filter checkbox 
    ClearCapabilityFileterCheckBox();

    SelectedManufacturerName = "";
    SelectedValuePricing = "";
    SelectedFeature = "";
    SelectedType = "";
    //DebugLog("ClearIDS called end");
}

// find all checkbox related to capablity filter on 'divPriceRange,divCondition,divOS'div (shop\phones\default.aspx) and make it unchecked ( checked=false)
function ClearCapabilityFileterCheckBox() {
    try {
        UnCheckChkboxUnderDiv("divPriceRange");
        UnCheckChkboxUnderDiv("divCondition");
        UnCheckChkboxUnderDiv("divOS");
    } catch (e) {
    }
}

// find checkbox & uncheck it under <Div> tag for which id is given as parameter 'strDivId'
function UnCheckChkboxUnderDiv(strDivId) {
    try {
        if (!IsEmptyOrNull(strDivId)) {
            $("#" + strDivId).find('input[type=checkbox]').each
            (
                function() {
                    $(this).attr("checked", false);
                }
             );
        }
    }
    catch (e) {
     }
}

function ClearHiddenFldToStoreNames() {
    try {
        document.getElementById("hdnFeatureNames").value = "";
        document.getElementById("hdnTypeNames").value = "";
        document.getElementById("hdnManufacturerNames").value = "";
        document.getElementById("hdnPriceRangeText").value = "";
        document.getElementById("hdnOtherFilters").value = "";
    } catch (e) {
    }
}

function AddProductType(value) {
    ClearHiddenFldToStoreNames();

    document.getElementById("hdnProductType").value = value;
    var curDataType = document.getElementById("hdnProductType").value;
    if (curDataType == "GSM" || curDataType == "PrePaid") {
        $("#PhoneRadioButons").css('display', 'none');
    }

    // OS section filter should be visible only for GSM ( phone tab on t-mobile.com/shop/phones/)
    if (curDataType == "GSM") {
        $("#divOS").css('display', 'block');
    }
    else {
        $("#divOS").css('display', 'none');
    }
}

function AddManufacturer(obj, IDS, hdnStore) {
    document.getElementById("hdnType").value = "";
    document.getElementById("hdnPriceRange").value = "";
    document.getElementById("hdnFeature").value = "";
    // call func frm \HtmlServices\assets\scripts\Core.js
    var curpage = GetCurrentPageName();
    if (!IsObjEmptyOrNull(curpage)) {
        if (curpage != "prepaid.aspx") {
            document.getElementById("hdnCapCode").value = "";
        }
    }
    else {
        document.getElementById("hdnCapCode").value = "";
    }

    ClearHiddenFldToStoreNames();

    document.getElementById("hdnSelections").value += "#" + IDS + ":" + hdnStore;
    document.getElementById(hdnStore).value = IDS;
    document.getElementById("hdnPageIndex").value = 1;
    document.getElementById("hdnFilter").value = "1";
    document.forms[0].txtSelectedFeatures.value = 0;
    document.forms[0].txtSelectedDevices.value = 0;
    ClearCapabilityFileterCheckBox();
}

function AddDeleteFilters(obj, IDS, hdnStore) {
    var AllValue = document.getElementById(hdnStore).value;
    //Coremetrics Changes Start
    var Attributes = "";
    var nextobj = obj.nextSibling;
    //Coremetrics Changes End
    if (obj.checked == true) {
        AllValue = AllValue + IDS + ",";
        document.getElementById("hdnSelections").value += "#" + IDS + ":" + hdnStore;

    }
    else {
        AllValue = AllValue.replace(IDS + ",", "");
        document.getElementById("hdnSelections").value = document.getElementById("hdnSelections").value.replace("#" + IDS + ":" + hdnStore, "");

    }



    document.getElementById(hdnStore).value = AllValue;
    document.getElementById("hdnPageIndex").value = 1;
    document.getElementById("hdnFilter").value = "1";
    document.forms[0].txtSelectedFeatures.value = 0;
    document.forms[0].txtSelectedDevices.value = 0;
}

function ClearFilters() {
    document.getElementById("hdnFilter").value = "1";
    document.getElementById("hdnPageIndex").value = 1;
    document.getElementById("hdnManufacturer").value = "";
    document.getElementById("hdnType").value = "";
    document.getElementById("hdnPriceRange").value = "";
    document.getElementById("hdnFeature").value = "";
    document.getElementById("hdnCapCode").value = "";
    ClearHiddenFldToStoreNames();

    document.getElementById("hdnSelections").value = "";
    document.forms[0].txtSelectedFeatures.value = 0;
    document.forms[0].txtSelectedDevices.value = 0;

    SelectedManufacturerName = "";
    SelectedValuePricing = "";
    SelectedFeature = "";
    SelectedType = "";
}

function dispFeatureHelp(obj) {

    document.getElementById(obj).style.display = 'block';
}

function hideFeatureHelp(obj) {
    document.getElementById(obj).style.display = 'none';
}

function dispCOBDesc() {
    document.getElementById("divCOBDescription").style.display = 'block';
    $("#divCOBDescription").css('margin-left', '80px');
}


function hideCOBDesc() {
    document.getElementById("divCOBDescription").style.display = 'none';
}


function openPromoPopup(url) {

    var interval = setInterval
                (
                    function() {
                        // Show popup
                        var popDiv = document.getElementById('divPromo');
                        $("#divPromoDetails").load(url, {});
                        clearInterval(interval);
                        openModalDiv('divPromo', 600, 450, null);
                        $("#divPromo").css("overflow", "scroll");
                    }
        , 100);
}

function OpenRebatesWindow(location) {
    window.open(location, 'rebates', "resizable=1,scrollbars=1,status=1,toolbar=0,menubar=0,location=0,width=700,height=500");
}



function SetTotalPrice(ddlAccessory, itemIndex, devicePrice) {

    var accId = ddlAccessory.options[ddlAccessory.selectedIndex].value;
    var divPrepaidDev = "#divPrepaidDev" + itemIndex;
    var finalPrice = 0.00;
    for (i = 0; i < PrepaidAccessoryPricing.length; i++) {
        if (PrepaidAccessoryPricing[i].ID == accId) {
            finalPrice = Math.round((parseFloat(PrepaidAccessoryPricing[i].Price) + parseFloat(devicePrice)) * 100) / 100;
            break;
        }
    }

    var fDollars = Math.floor(finalPrice);
    var fCents = Math.round((finalPrice % 1) * 100);

    finalPrice = "<span>$" + fDollars + "<sup>." + fCents + "</sup></span>";
    $(divPrepaidDev).find(".totalPrice").html(finalPrice);

}


function AddToCartPrepaidDevice(deviceId, itemIndex) {
    //debugger;
    $("#hdnDeviceId").val(deviceId);
    var divPrepaidDev = "#divPrepaidDev" + itemIndex;
    var accid = $(divPrepaidDev).find(".dropdown").val();
    $("#hdnSelddlAccessory").val(accid);

    __doPostBack('btnAddToCart', '');
    //return true;
}

// CR 54193
// this function is used in prepaid.aspx - to update selected item in (refill card)dropdown list for each device.
function UpdateRefillCardListBoxSelection() {
    // find all dropdown list ctrl from this page (prepaid.aspx) based on class as "dropdown"
    $(".dropdown").each(function() {
        // find parent of it to check if this box is related to which device as parent(<span>) id is same as Device Id
        var spanId = $(this).parent().attr('id');
        if (spanId) {
            if (!IsEmptyOrNull(SelectItemsForListBox) && SelectItemsForListBox.length > 0) {
                // search in array which has data about value to be set for this listbox
                for (m = 0; m < SelectItemsForListBox.length; m++) {
                    if (SelectItemsForListBox[m].ListBoxID == spanId) {
                        // set the value as selected in listbox
                        $(this).val(SelectItemsForListBox[m].ItemValue);
                        break;
                    }
                }
            }
        }
    });
}

// check if value is empty or null
function IsEmptyOrNull(chkValue) {
    if (chkValue == "undefined") {
        return true;
    }
    switch (chkValue) {
        case null:
        case "":
        case false:
            return true;
        default: return false;
    }
}
// Phone Tab Click for DP JUly Release
function ActivateDeviceTab() {
    ClearHiddenFldToStoreNames();

    $("#tabphones").removeClass("active");
    $("#tabdevices").removeClass("active");
    $("#tabdevices").addClass("active");
    $("#PhoneRadioButons").css('display', 'block');

}
function ShowPrepaidInternetDevice() {
    if ($("#PrePaidPhones")[0].checked == true) {
        AddProductType('PrePaid');
        __doPostBack('PrePaidPhones', '');

    }
}
function ShowPrepaidPhones() {
    window.location = '/shop/phones/prepaid.aspx?WT.mc_n=SeePrepaidPhones&amp;WT.mc_t=OnsiteAd';
}



