$("document").ready(function() {
    $(".grid_question").each(function() {
        gridToSlider($(this)); 
    });
});

function gridToSlider(g) {
    //only look for this particular question (in case there is more than one on the page)
    
    //gather up the row data
    var gRows = {};
    var counter = 0;
    
    // [] mark the first 'real' option
    
    var realFirst = 2;
    
    // [] if there is no row text, the first option is missing
    if (g.find("#gridrow_0_1").find(".qb_option_vert_text").text() == " ") {
        g.find(".qb_option_vert_text").hide();
        g.find(".qb_option_horiz_text:first").hide();
    }
    
    realFirst = 2;
    
    var opcount = 0;
    g.find(".qb_option_horiz_text").each(function() {
        opcount ++;
        if (opcount == 2) {
            $(this).addClass("opFirst");   
        }
    });
    
    opcount --;

    
    var marLeft = g.find(".opFirst").width() / 2;
    var marRight = g.find(".qb_option_horiz_text:last").width() / 2;
        
    g.find(".qb_option_row_1, .qb_option_row_2").each(function() {
        counter ++;
        gRows['r'+counter+'rowText'] = $(this).find('.qb_option_vert_text').html();
        gRows['r'+counter+'mqid'] = $(this).find('input[type="hidden"]:first').attr("id");
        gRows['r'+counter+'val'] = $(this).find('input[type="hidden"]:first').val();
        var opArray = [];
        $(this).find('.qb_option_holder img').each(function() {
            var op = $(this).attr("id").split("_");
            opArray.push(op[3]);
        });
        gRows['r'+counter+'opid'] = opArray;
        
        $(this).find('.qb_option_holder:first').addClass("sliderHere").attr("id", counter);
        $(this).find('.qb_option_holder:first').attr("colspan", gRows['r1opid'].length);              
        $(this).find('.qb_option_holder:not(".sliderHere")').remove();
        var sliderHtml = '<input type="hidden" value="'+gRows['r'+counter+'val']+'" name="'+gRows['r'+counter+'mqid']+'" id="'+gRows['r'+counter+'mqid']+'" /><div style="margin-right:'+marRight+'px; margin-left:'+marLeft+'px;" class="doslider" id="slider_'+gRows['r'+counter+'mqid']+'" />';
        $(this).find('.qb_option_holder').html(sliderHtml);
        $(this).find('.qb_option_holder').css("vertical-align","middle");
        $('#slider_'+gRows['r'+counter+'mqid']).slider({
            min: 1,
            max: (opcount * 1),
            step: 1,
            stop: function(event, ui) {
                var myRow = $(this).parent(".sliderHere").attr("id");
                $("#"+gRows['r'+myRow+'mqid']).val(gRows['r'+myRow+'opid'][(ui.value - 1)]);
            }
        });
        
        //set the slider to the right value (if there is one)
        var sliVal = $("#"+gRows['r'+counter+'mqid']).val();
        if (sliVal) {
            //work out how many options 'along' it is
            var findTheVal = 0;
            for (var i in gRows['r'+counter+'opid']) {
                findTheVal ++;
                if (sliVal == gRows['r'+counter+'opid'][i]) {
                    var theVal = findTheVal;
                }
            }
            $('#slider_'+gRows['r'+counter+'mqid']).slider("option", "value", theVal);
        }
        
        
        
        if ($("#page_slider_start").text() == '0' && !$('#slider_'+gRows['r'+counter+'mqid']).slider("option", "value")) {
            $('#slider_'+gRows['r'+counter+'mqid']).find('.ui-slider-handle').css('left', -20);
        }    
        if ($("#page_slider_start").text() == '1' && !$('#slider_'+gRows['r'+counter+'mqid']).slider("option", "value")) {
            $('#slider_'+gRows['r'+counter+'mqid']).find('.ui-slider-handle').css('left', '50%');
        }                
    });
    


}
