to work in IE8 and to be a little more XHTML valid.
Code:
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
/***********
Display multiple questions side by side
***********/
if ($('div.qRow1').length == 0) {
//////// Add question classes for later use ////////
// Give questions row specific attributes so we can easily manipulate them by row
$('#question190, #question191, #question192, #question193, #question194').addClass('qRow1 inlineQuestion');
$('#question195, #question196, #question197, #question198, #question199').addClass('qRow2 inlineQuestion');
$('#question200, #question201, #question202, #question203, #question204').addClass('qRow3 inlineQuestion');
$('#question205, #question206, #question207, #question208, #question209').addClass('qRow4 inlineQuestion');
// Give questions column specific classes so we can easily manipulate them by column
$('#question190, #question195, #question200, #question205').addClass('qCol1');
$('#question191, #question196, #question201, #question206').addClass('qCol2');
$('#question192, #question197, #question202, #question207').addClass('qCol3');
$('#question193, #question198, #question203, #question208').addClass('qCol4');
$('#question194, #question199, #question204, #question209').addClass('qCol5');
//////// Survey layout manipulation ////////
// Fix the width of the survey
$( 'table.outerframe' ).css({
'width': '900px'
});
// Wrap each row in a div
$('.qRow1').wrapAll('<div id="inlineWrapper1" />');
$('.qRow2').wrapAll('<div id="inlineWrapper2" />');
$('.qRow3').wrapAll('<div id="inlineWrapper3" />');
$('.qRow4').wrapAll('<div id="inlineWrapper4" />');
// Style the wrapper divs
$( '#inlineWrapper1, #inlineWrapper2, #inlineWrapper3, #inlineWrapper4' ).css({
'width': '850px',
'margin': '0 auto 0 auto',
'clear': 'both'
});
// Get all the questions to sit politely side by side
$( '.qRow1, .qRow2, .qRow3, .qRow4' ).css({
'float': 'left'
});
$( '.inlineQuestion .survey-question-help' ).parent().hide();
//////// Column manipulation ////////
// Set the column widths - can be set individually if necessary
// Must add up to less than 100%
$( '.qCol1' ).css({
'width': '12%'
});
$( '.qCol2, .qCol3, .qCol4, .qCol5' ).css({
'width': '22%'
});
//////// Question manipulation ////////
// Hide the answer element in boilerplate questions
$( 'div.boilerplate td.answer' ).parent().hide();
// Hide the question text elements in non-boilerplate questions
$('div.text-short td.questiontext, div.list-dropdown td.questiontext, div.yes-no td.questiontext, div.numeric td.questiontext').parent().hide();
// Push the question tables to 100%
$( 'div.qRow1 table, div.qRow2 table, div.qRow3 table, div.qRow4 table' ).css({
'width': '100%'
});
// Get everything to line up nicely vertically
$( 'td.questiontext, td.answer p' ).css({
'text-align': 'center'
});
// Adjust cell heights so everything lines up nicely horizontally
$( 'td.answer, td.questiontext' ).css({
'height':'35px',
'overflow':'hidden'
});
$( '.inlineQuestion' ).css({
'height':'40px',
'overflow':'hidden'
});
// Yes-no question styles
$( 'div.yes-no ul' ).css({
'text-align': 'center',
'font-size': '90%',
'margin': '0',
'padding-bottom': '5px'
});
$( 'div.yes-no li' ).css({
'padding-right': '1.5em'
});
$( 'div.yes-no td.answer' ).css({
'padding-bottom': '0'
});
// Short-text question styles
$( 'div.text-short input' ).css({
'width': '125px',
'margin-left': '0'
});
// Numeric question styles
$( 'div.numeric input' ).css({
'width': '125px',
'margin-left': '0'
});
$( 'div.numeric p.tip' ).css({
'display': 'none'
});
// Get rid of the margins around select boxes
$( 'p.question' ).css({'margin':'0'});
// Reduce the space caused by the question help table
$( '.qRow1, .qRow2, .qRow3' ).css({
'margin-bottom': '-8px'
});
}
});
</script>