function SharedTariffPage(tabList, tariffList, handsetMRCHdrList, totalHandsetMRCHdrList, allowanceMRC, handsetMRC, totalHandsetMRC){
    this._tabList = tabList;
    this._tariffList = tariffList;
    this._handsetMRCHdrList = handsetMRCHdrList;
    this._totalHandsetMRCHdrList = totalHandsetMRCHdrList;
    this._allowanceMRC = allowanceMRC;
    this._handsetMRC = handsetMRC;
    this._totalHandsetMRC = totalHandsetMRC;

    this.init = function(initTab){
        if (!this._tariffList || !this._tabList){
            return;
        }
        var checkPersistedValue = this.getCookie();
        if (checkPersistedValue != null){
            this.showTab(checkPersistedValue);
        } else {
            this.showTab(initTab);
        }
    }

    var i, tab, tabNode;
    this.showTab = function(tabId) {
        for (i = 0; i < this._tabList.length; i++){
            tab = this._tabList[i];
            tabNode = document.getElementById(tab.nodeId);
            if (tabNode) {
                if (tab.key != tabId)
                    tabNode.className = "";
                else
                    tabNode.className = "current";
            }
        }
        for (i = 0; i < this._tariffList.length; i++){
            tab = this._tariffList[i];
            tabNode = document.getElementById(tab.nodeId);
            if (tabNode) {
                if (tab.key != tabId)
                    tabNode.style.display = "none";
                else
                    tabNode.style.display = "block";
            }
        }
        this.setCookie(tabId);
    }

    this.selectSharer = function(sharerNumber) {
        var i, tab, tabNode;

        var sharerText = sharerNumber;
        if (sharerNumber == 1)
            sharerText = sharerText + ' handset';
        else
            sharerText = sharerText + ' handsets';

        for (i = 0; i < this._handsetMRCHdrList.length; i++){
            tab = this._handsetMRCHdrList[i];
            tabNode = document.getElementById(tab.nodeId);
            if (tabNode) tabNode.innerHTML = sharerText;
        }
        for (i = 0; i < this._totalHandsetMRCHdrList.length; i++){
            tab = this._totalHandsetMRCHdrList[i];
            tabNode = document.getElementById(tab.nodeId);
            if (tabNode) tabNode.innerHTML = sharerText;
        }

        for (i = 0; i < this._tariffList.length; i++){
            tab = this._tariffList[i];
            var tariffMrc = parseFloat(tab.mrc);
            for (var j = 0; j < tab.csoCount; j++) {
                var csoMrc = this._allowanceMRC['tariff'+tab.cid][j];
                if (csoMrc.cid != j) continue;
                csoMrcValue = parseFloat(csoMrc.mrc);
                var mrcValue = tariffMrc * sharerNumber;

                var mrc = this._handsetMRC['tariff'+tab.cid][j];
                if (mrc.cid != j) continue;
                var mrcNode = document.getElementById(mrc.nodeId);
                if (mrcNode) {
                    mrcNode.innerHTML = "&pound;" + mrcValue.toFixed(2);
                }

                var total = this._totalHandsetMRC['tariff'+tab.cid][j];
                if (total.cid != j) continue;
                var totalNode = document.getElementById(total.nodeId);
                if (totalNode) {
                    var totalValue = mrcValue + csoMrcValue;
                    totalNode.innerHTML = "&pound;" + totalValue.toFixed(2);
                }
            }
        }
        this._updateBasket(sharerNumber);
    }

    this._updateBasket = function(sharerNumber) {
        var emptyPanel = document.getElementById("minibasket_empty_panel");
        if (emptyPanel) {
            var sharersPanel = document.getElementById("minibasket_sharers_panel");
            if (emptyPanel.style.display != "none") {
                emptyPanel.style.display = "none";
                sharersPanel.style.display = "block";
            }
            var sharerNode = document.getElementById("minibasket_sharers");
            if (sharerNode) sharerNode.innerHTML = sharerNumber;
        }
    }

    this.getCookie = function() {
        var re=new RegExp("sharedTab=[^;]+", "i");
        if (document.cookie.match(re)){
            var cookieHere = document.cookie.match(re);
            var keyValArray = cookieHere[0].split('=');
            return keyValArray[1];
        }
    }

    this.setCookie = function(tabSelected){
        if (tabSelected)
            document.cookie = "sharedTab="+tabSelected+";path=/";
        else
            document.cookie = "sharedTab="+tabSelected+"; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/";
    }

}

