﻿
function plateViewItemO() {

    this.D = YAHOO.util.Dom;

    this.init = function(sliderbg, sliderthumb, textBoxSize, divPriceTag, sliderResultCtl, minStepMM, callbackFunc, sliderStartPos, sliderMin, sliderMax, designSizeRatio, productId, visiplateId) {

        this.widthPx = 175;

        this.minStepMM = parseFloat(minStepMM);
        this.sliderbg = sliderbg;
        this.sliderthumb = sliderthumb;
        this.textBoxSize = this.D.get(textBoxSize);
        this.sliderResultCtl = this.D.get(sliderResultCtl);
        this.divPriceTag = this.D.get(divPriceTag);
        this.sliderMin = parseFloat(sliderMin);
        this.sliderMax = parseFloat(sliderMax);
        this.sliderStartPos = parseFloat(sliderStartPos);
        this.designSizeRatio = designSizeRatio;
        this.productId = productId;
        this.visiplateId = visiplateId;
        this.callbackFunc = callbackFunc;


        this.slider = YAHOO.widget.Slider.getHorizSlider(sliderbg, sliderthumb, 0, this.widthPx);
        var startPoxPx = (sliderStartPos - sliderMin) * this.widthPx / (sliderMax - sliderMin);
        this.slider.setValue(startPoxPx);
        this.calcCurrentVal();

        this.slider.subscribe('change', function(a, b) { b.calcCurrentVal(); }, this);
        this.slider.subscribe("slideEnd", function(a, b) { b.calcCurrentVal(); b.updatePriceTag(); }, this);

    };

    this.calcCurrentVal = function() {

        var val = this.slider.getValue();

        val = val / this.widthPx * (this.sliderMax - this.sliderMin) + this.sliderMin;
        val = val / 10;
        val = Math.round(val / this.minStepMM, 1) * this.minStepMM;
        val = Math.round(val, 0);
        this.sliderResultCtl.value = val * 10;
        if (this.textBoxSize != null) {
            var newWCm = Math.round(val);
            var newHCm = Math.round(newWCm * this.designSizeRatio);
            var outText = newWCm + "x" + newHCm;
            this.textBoxSize.innerHTML = outText;
        }
    }


    this.ajaxEnabled = false;
    this.updatePriceTag = function() {

        /// reject first call since it comes from initialisation
        if (!this.ajaxEnabled) {
            this.ajaxEnabled = true;
            return;
        }

        var callback =
        {
            success: this.updatePriceTagSuccess,
            failure: function(o) { /*failure handler code*/ },
            argument: this.divPriceTag
        }

        //var sUrl = '/ajax_actions.aspx?action=getPriceCalcVisiplate&plateid=' + this.visiplateId + '&prodid=' + this.productId + '&newVal=' + this.sliderResultCtl.value;
        //var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, null);

        //lbaJS.__doPostBackAsync('ctl00$ContentPlaceHolder1$ctl00$dataListPlates$ctl00$ucPlate$cpdw','');
        eval(this.callbackFunc);
    }

    this.updatePriceTagSuccess = function(o) {
        var response = o.responseText;
        o.argument.innerHTML = response;
    }
}

