﻿/*
* --------------------------------------------------------------------
* jQuery-Plugin - selectToUISlider - creates a UI slider component from a select element(s)
* by Scott Jehl, scott@filamentgroup.com
* http://www.filamentgroup.com
* reference article: http://www.filamentgroup.com/lab/update_jquery_ui_16_slider_from_a_select_element/
* demo page: http://www.filamentgroup.com/examples/slider_v2/index.html
* 
* Copyright (c) 2008 Filament Group, Inc
* Dual licensed under the MIT (filamentgroup.com/examples/mit-license.txt) and GPL (filamentgroup.com/examples/gpl-license.txt) licenses.
*
* Usage Notes: please refer to our article above for documentation
*  
* --------------------------------------------------------------------
*/


jQuery.fn.selectToUISlider = function(settings) {
    var selects = jQuery(this);

    //accessible slider options
    var options = jQuery.extend({
        labels: 3, //number of visible labels
        tooltip: false, //show tooltips, boolean
        tooltipSrc: 'text', //accepts 'value' as well
        labelSrc: 'value', //accepts 'value' as well	,
        sliderOptions: null
    }, settings);


    //handle ID attrs - selects each need IDs for handles to find them
    var handleIds = (function() {
        var tempArr = [];
        selects.each(function() {
            tempArr.push('handle_' + jQuery(this).attr('id'));
        });
        return tempArr;
    })();

    //array of all option elements in select element (ignores optgroups)
    var selectOptions = (function() {
        var opts = [];
        selects.eq(0).find('option').each(function() {
            opts.push({
                value: jQuery(this).attr('value'),
                text: jQuery(this).text()
            });
        });
        return opts;
    })();

    //array of opt groups if present
    var groups = (function() {
        if (selects.eq(0).find('optgroup').size() > 0) {
            var groupedData = [];
            selects.eq(0).find('optgroup').each(function(i) {
                groupedData[i] = {};
                groupedData[i].label = jQuery(this).attr('label');
                groupedData[i].options = [];
                jQuery(this).find('option').each(function() {
                    groupedData[i].options.push({ text: jQuery(this).text(), value: jQuery(this).attr('value') });
                });
            });
            return groupedData;
        }
        else return null;
    })();

    //check if obj is array
    function isArray(obj) {
        return obj.constructor == Array;
    }
    //return tooltip text from option index
    function ttText(optIndex) {
        return (options.tooltipSrc == 'text') ? selectOptions[optIndex].text : selectOptions[optIndex].value;
    }

    //plugin-generated slider options (can be overridden)
    var sliderOptions = {
        step: 1,
        min: 0,
        //orientation: 'horizontal',
        max: selectOptions.length - 1,
        range: selects.length > 1, //multiple select elements = true
        slide: function(e, ui) {//slide function
            var thisHandle = jQuery(ui.handle);
            //handle feedback 
            var textval = ttText(ui.value);
            thisHandle
					.attr('aria-valuetext', textval)
					.attr('aria-valuenow', ui.value)
					.find('.ui-slider-tooltip .ttContent')
						.text(textval);

            //control original select menu
            var currSelect = jQuery('#' + thisHandle.attr('id').split('handle_')[1]);
            currSelect.find('option').eq(ui.value).attr('selected', 'selected');
            // TODO !!!

            var tmp = $(currSelect).attr('name');
            //alert($(currSelect).attr('name'));
            switch (tmp) {
                case 'value1A':
                    $('#txtFrom1').val($(currSelect).find('option').eq(ui.value).attr('value'));
                    var tmp = $('#handle_Select2').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm1 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm1 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm1 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm1 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value1B':
                    $('#txtTo1').val($(currSelect).find('option').eq(ui.value).attr('value'));
                    var tmp = $('#handle_Select1').attr('aria-valuenow');
                    for (var i = 0; i <= 42; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm1 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm1 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm1 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm1 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value2A':
                    $('#txtFrom2').val($(currSelect).find('option').eq(ui.value).attr('value'));
                    var tmp = $('#handle_valueB').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm2 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm2 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm2 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm2 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value2B':
                    $('#txtTo2').val($(currSelect).find('option').eq(ui.value).attr('value'));
                    var tmp = $('#handle_valueA').attr('aria-valuenow');
                    for (var i = 0; i <= 30; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm2 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm2 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm2 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm2 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value3A':
                    var tmp = $('#handle_Select8').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm5 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm5 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm5 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm5 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value3B':
                    var tmp = $('#handle_Select7').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm5 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm5 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm5 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm5 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value4A':
                    var tmp = $('#handle_Select4').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm3 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm3 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm3 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm3 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value4B':
                    var tmp = $('#handle_Select3').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm3 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm3 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm3 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm3 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value5A':
                    var tmp = $('#handle_Select20').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm11 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm11 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm11 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm11 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value5B':
                    var tmp = $('#handle_Select19').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm1 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm11 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm11 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm11 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value6A':
                    var tmp = $('#handle_Select22').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm12 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm12 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm12 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm12 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value6B':
                    var tmp = $('#handle_Select21').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm12 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm12 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm12 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm12 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value7A':
                    var tmp = $('#handle_Select24').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm13 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm13 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm13 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm13 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value7B':
                    var tmp = $('#handle_Select23').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm13 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm13 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm13 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm13 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value8A':
                    var tmp = $('#handle_Select6').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm4 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm4 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm4 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm4 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value8B':
                    var tmp = $('#handle_Select5').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm4 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm4 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm4 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm4 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value9A':
                    var tmp = $('#handle_Select26').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm14 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm14 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm14 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm14 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value9B':
                    var tmp = $('#handle_Select25').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm14 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm14 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm14 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm14 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value10A':
                    var tmp = $('#handle_Select28').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm15 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm15 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm15 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm15 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value10B':
                    var tmp = $('#handle_Select27').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm15 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm15 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm15 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm15 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value11A':
                    var tmp = $('#handle_Select30').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm16 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm16 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm16 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm16 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value11B':
                    var tmp = $('#handle_Select29').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm16 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm16 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm16 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm16 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value12A':
                    var tmp = $('#handle_Select10').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm6 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm6 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm6 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm6 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value12B':
                    var tmp = $('#handle_Select9').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm6 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm6 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm6 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm6 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value13A':
                    var tmp = $('#handle_Select12').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm7 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm7 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm7 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm7 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value13B':
                    var tmp = $('#handle_Select11').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm7 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm7 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm7 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm7 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value14A':
                    var tmp = $('#handle_Select14').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm8 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm8 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm8 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm8 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value14B':
                    var tmp = $('#handle_Select13').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm8 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm8 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm8 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm8 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value15A':
                    var tmp = $('#handle_Select16').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm9 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm9 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm9 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm9 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value15B':
                    var tmp = $('#handle_Select15').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm9 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm9 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm9 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm9 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value16A':
                    var tmp = $('#handle_Select18').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm10 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm10 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm10 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm10 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value16B':
                    var tmp = $('#handle_Select17').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm10 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm10 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm10 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm10 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value17A':
                    var tmp = $('#handle_Select32').attr('aria-valuenow');
                    for (var i = 0; i <= tmp; i++) {
                        if (i >= ui.value && i <= tmp) {
                            $('#frm17 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm17 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm17 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm17 .lbl_' + i).css('color', '');
                        }
                    }
                    break;
                case 'value17B':
                    var tmp = $('#handle_Select31').attr('aria-valuenow');
                    for (var i = 0; i <= 6; i++) {
                        if (i >= tmp && i <= ui.value) {
                            $('#frm17 .lbl_' + i).css('font-weight', 'bold');
                            $('#frm17 .lbl_' + i).css('color', '#2E7AB2');
                        }
                        else {
                            $('#frm17 .lbl_' + i).css('font-weight', 'normal');
                            $('#frm17 .lbl_' + i).css('color', '');
                        }
                    }
                    break;                     
            }
        },
        values: (function() {
            var values = [];
            selects.each(function() {
                values.push(jQuery(this).get(0).selectedIndex);
            });
            return values;
        })()
    };

    //slider options from settings
    options.sliderOptions = (settings) ? jQuery.extend(sliderOptions, settings.sliderOptions) : sliderOptions;

    //select element change event	
    selects.bind('change keyup click', function() {
        var thisIndex = jQuery(this).get(0).selectedIndex;
        var thisHandle = jQuery('#handle_' + jQuery(this).attr('id'));
        var handleIndex = thisHandle.data('handleNum');
        thisHandle.parents('.ui-slider:eq(0)').slider("values", handleIndex, thisIndex);
    });


    //create slider component div
    var sliderComponent = jQuery('<div></div>');

    //CREATE HANDLES
    selects.each(function(i) {
        var hidett = '';

        //associate label for ARIA
        var thisLabel = jQuery('label[for=' + jQuery(this).attr('id') + ']');
        //labelled by aria doesn't seem to work on slider handle. Using title attr as backup
        var labelText = (thisLabel.size() > 0) ? 'Slider control for ' + thisLabel.text() + '' : '';
        var thisLabelId = thisLabel.attr('id') || thisLabel.attr('id', 'label_' + handleIds[i]).attr('id');


        if (options.tooltip == false) { hidett = ' style="display: none;"'; }
        jQuery('<a ' +
				'href="#" tabindex="0" ' +
				'id="' + handleIds[i] + '" ' +
				'class="ui-slider-handle btn' + i + '" style="z-index:9;" ' +
				'role="slider" ' +
				'aria-labelledby="' + thisLabelId + '" ' +
				'aria-valuemin="' + options.sliderOptions.min + '" ' +
				'aria-valuemax="' + options.sliderOptions.max + '" ' +
				'aria-valuenow="' + options.sliderOptions.values[i] + '" ' +
				'aria-valuetext="' + ttText(options.sliderOptions.values[i]) + '" ' +
			'><span class="screenReaderContext">' + labelText + '</span>' +
			'<span class="ui-slider-tooltip ui-widget-content ui-corner-all"' + hidett + '><span class="ttContent"></span>' +
				'<span class="ui-tooltip-pointer-down ui-widget-content"><span class="ui-tooltip-pointer-down-inner"></span></span>' +
			'</span></a>')
			.data('handleNum', i)
			.appendTo(sliderComponent);
    });

    //CREATE SCALE AND TICS

    //write dl if there are optgroups
    if (groups) {
        var inc = 0;
        var scale = sliderComponent.append('<dl class="ui-slider-scale ui-helper-reset" role="presentation"></dl>').find('.ui-slider-scale:eq(0)');
        jQuery(groups).each(function(h) {
            scale.append('<dt style="width: ' + (100 / groups.length).toFixed(2) + '%' + '; left:' + (h / (groups.length - 1) * 100).toFixed(2) + '%' + '"><span>' + this.label + '</span></dt>'); //class name becomes camelCased label
            var groupOpts = this.options;
            jQuery(this.options).each(function(i) {
                var style = (inc == selectOptions.length - 1 || inc == 0) ? 'style="display: none;"' : '';
                var labelText = (options.labelSrc == 'text') ? groupOpts[i].text : groupOpts[i].value;
                scale.append('<dd style="left:' + leftVal(inc) + '"><span class="ui-slider-label">' + labelText + '</span><span class="ui-slider-tic ui-widget-content"' + style + '></span></dd>');
                inc++;
            });
        });
    }
    //write ol
    else {
        if (sliderOptions.orientation == 'horizontal') {
            var scale = sliderComponent.append('<ol class="ui-slider-scale ui-helper-reset" role="presentation"></ol>').find('.ui-slider-scale:eq(0)');
            jQuery(selectOptions).each(function(i) {
                var style = (i == selectOptions.length - 1 || i == 0) ? 'style="display: none;"' : '';
                //var labelText = (options.labelSrc == 'text') ? this.text : this.value;
                var labelText = this.text;
                if (labelText != '') {
                    scale.append('<li style="left:' + leftVal(i) + '"><span class="ui-slider-label lbl_' + i + '">' + labelText + '</span><span class="ui-slider-tic ui-widget-content"' + style + '></span></li>');
                }
                else
                    scale.append('<li style="left:' + leftVal(i) + '"><span class="ui-slider-label lbl_' + i + '">' + labelText + '</span><span class="ui-slider-tica ui-widget-content"' + style + '></span></li>');
            });
        }
        else {
            var scale = sliderComponent.append('<ol class="ui-slider-scale ui-helper-reset" role="presentation"></ol>').find('.ui-slider-scale:eq(0)');
            jQuery(selectOptions).each(function(i) {
                var style = (i == selectOptions.length - 1 || i == 0) ? 'style="display: none;"' : '';
                var labelText = (options.labelSrc == 'text') ? this.text : this.value;
                scale.append('<li style="bottom:' + leftVal(i) + '"><span class="ui-slider-label lbl_' + i + '" style="left:30px;width:150px;">' + labelText + '</span><span class="ui-slider-tic ui-widget-content"' + style + '></span></li>');
            });
        }
    }

    function leftVal(i) {
        return (i / (selectOptions.length - 1) * 100).toFixed(2) + '%';

    }




    //show and hide labels depending on labels pref
    //show the last one if there are more than 1 specified
    if (options.labels > 1) sliderComponent.find('.ui-slider-scale li:last span.ui-slider-label, .ui-slider-scale dd:last span.ui-slider-label').addClass('ui-slider-label-show');

    //set increment
    var increm = Math.max(1, Math.round(selectOptions.length / options.labels));
    //show em based on inc
    for (var j = 0; j < selectOptions.length; j += increm) {
        if ((selectOptions.length - j) > increm) {//don't show if it's too close to the end label
            sliderComponent.find('.ui-slider-scale li:eq(' + j + ') span.ui-slider-label, .ui-slider-scale dd:eq(' + j + ') span.ui-slider-label').addClass('ui-slider-label-show');
        }
    }

    //style the dt's
    sliderComponent.find('.ui-slider-scale dt').each(function(i) {
        jQuery(this).css({
            'left': ((100 / (groups.length)) * i).toFixed(2) + '%'
        });
    });


    //inject and return 
    sliderComponent
	.insertAfter(jQuery(this).eq(this.length - 1))
	.slider(options.sliderOptions)
	.attr('role', 'application')
	.find('.ui-slider-label')
	.each(function() {
	    jQuery(this).css('marginLeft', -jQuery(this).width() / 2);
	});

    //update tooltip arrow inner color
    sliderComponent.find('.ui-tooltip-pointer-down-inner').each(function() {
        var bWidth = jQuery('.ui-tooltip-pointer-down-inner').css('borderTopWidth');
        var bColor = jQuery(this).parents('.ui-slider-tooltip').css('backgroundColor')
        jQuery(this).css('border-top', bWidth + ' solid ' + bColor);
    });

    var values = sliderComponent.slider('values');

    if (isArray(values)) {
        jQuery(values).each(function(i) {
            sliderComponent.find('.ui-slider-tooltip .ttContent').eq(i).text(ttText(this));
        });
    }
    else {
        sliderComponent.find('.ui-slider-tooltip .ttContent').eq(0).text(ttText(values));
    }

    return this;
}




