/////////////////Auto Generate Tables for each section//////////////////////// // eiTables.js version 2.0.6 function eiTables() { this.self = this; self.workers = []; var rows = []; var fieldReplace = function(source, field, row) { var temp = $(field).html(); if (temp !== undefined) { if (source['Fields'] !== undefined) { source['Fields'].forEach(function(item, idx) { if (item !== null) { if ((row) && (row.constructor === Array) && (row[idx] !== undefined)) { if (row[idx] !== "") { temp = temp.replace("%" + item + "%", row[idx]); } } } }); $(field).html(temp); } } } var resizeTable = function(selector, newSize) { var oldSize = $(selector + " tbody tr").length; if (newSize > oldSize) { for (i = 0; i < newSize - oldSize; i++) { $(selector + " a.cf-table-add-row").click(); } } else if (newSize < oldSize) { for (i = 0; i < oldSize - newSize; i++) { $(selector + " span.form-del-field").last().click(); } } } var resizeCollection = function(selector, newSize) { var oldSize = $(selector + " .rpx").length; if (newSize > oldSize) { for (i = 0; i < newSize - oldSize; i++) { $(selector + " a.cf-collection-append").click(); } } else if (newSize < oldSize) { for (i = 0; i < oldSize - newSize; i++) { $(selector + " span.cf-collection-delete").last().click(); } } } var popoluteTarget = function(target, source, data) { if (target['Type'] === "collection") { resizeCollection(target['Selector'], data.length); var blocks = $(target['Selector'] + " .rpx"); rows.forEach(function(row, index) { $(blocks.get(index)).find( ":input[id], .eiField").each(function( idx, item) { if ($(item).hasClass("eiField")) { fieldReplace(source, item, row); } else { $(item).val(row[idx]); } }); }); } else if (target['Type'] === "table") { resizeTable(target['Selector'], data.length); var blocks = $(target['Selector'] + " tbody tr"); rows.forEach(function(row, index) { $(blocks.get(index)).find( ":input[id], .eiField").each(function( idx, item) { if ($(item).hasClass("eiField")) { fieldReplace(source, item, row); } else { $(item).val(row[idx]); } }); }); } else if (target['Type'] === "text") { if (target.master === undefined) { target.master = $(target['Selector']).html(); } else { $(target['Selector']).html(target.master); } fieldReplace(source, target['Selector'], rows[0]); } } var extractSource = function(source) { rows = []; if (source['Type'] === "dropdown") { $(source['Selector'] + " option").each(function(idx, item) { if ((item.value === "") && (source[ 'IgnoreBlank'] === true)) {} else { if (source['SplitOn'] === undefined) { rows.push(item.value); } else { row = [] item.value.split(source['SplitOn']).forEach( function(item) { row.push(item); }); rows.push(row); } } }); } else if (source['Type'] === "text") { $(source['Selector']).val().split("\n").forEach(function( item) { if ((item.value === "") && (source[ 'IgnoreBlank'] === true)) {} else { if (source['SplitOn'] === undefined) { rows.push(item.value); } else { row = [] item.value.split(source['SplitOn']).forEach( function(item) { row.push(item); }); rows.push(row); } } }); } else if (source['Type'] === "fields") { var row = []; $(source['Selector']).find("input").each(function(idx, item) { row.push($(item).val()); }); rows.push(row); } return rows; } var executeWorker = function(worker) { var rows = extractSource(worker['Source']); if (worker['Target'].constructor === Array) { worker['Target'].forEach(function(item) { popoluteTarget(item, worker['Source'], rows); }); } else { popoluteTarget(worker['Target'], worker['Source'], rows); } }; var changeTrigger = function() { self.workers.forEach(function(worker) { if (worker['Trigger']['Type'] === "change") { executeWorker(worker); } }); }; var ajaxTrigger = function() { self.workers.forEach(function(worker) { if (worker['Trigger']['Type'] === "ajax") { executeWorker(worker); } }); }; this.create = function(workerdef) { self.workers.push(workerdef); if (workerdef['Trigger']['Type'] === "ajax") { $(document).bind("ajaxComplete", ajaxTrigger); } else if (workerdef['Trigger']['Type'] === "change") { $(workerdef['Trigger']['Selector']).bind("change", changeTrigger); } }; } eiTables.prototype['create'] = eiTables.prototype.create; $ei = new eiTables(); $ei2 = new eiTables(); $ei3 = new eiTables(); $ei4 = new eiTables(); $ei5 = new eiTables(); $ei6 = new eiTables(); $ei7 = new eiTables(); $ei8 = new eiTables(); $ei9 = new eiTables(); //////////////// On Change of each Table and Field///////////////// $(document).ready(function() { $(document).on('blur change', '#q3 input', autofill); $('#q10.cf-table-block').on('blur', 'input', avg1); $('#q43.cf-table-block').on('blur', 'input', avg2); $('#q51.cf-table-block').on('blur', 'input', avg3); $('#q59.cf-table-block').on('blur', 'input', avg4); $('#q67.cf-table-block').on('blur', 'input', avg5); $('#q75.cf-table-block').on('blur', 'input', avg6); $('#q83.cf-table-block').on('blur', 'input', avg7); $('#q92.cf-table-block').on('blur', 'input', avg8); $('#q101.cf-table-block').on('blur', 'input', avg9); function autofill() { $('.autofill').trigger('click'); } //////////////////////// Fill table elements based on Button Clicked///////////////// $('#q3').change(autofill); $ei.create({ Trigger: { Type: "ajax" }, Source: { //source field Selector: "#q37", SplitOn: "+", IgnoreBlank: true, Type: "dropdown", Fields: ["LR_Comp"] }, Target: { //Target cf-block Selector: "#q10", Type: "table", }, }); $ei2.create({ Trigger: { Type: "ajax" }, Source: { //source field Selector: "#q39", SplitOn: "+", IgnoreBlank: true, Type: "dropdown", Fields: ["PC_Comp"] }, Target: { //Target cf-block Selector: "#q43", Type: "table", }, }); $ei3.create({ Trigger: { Type: "ajax" }, Source: { //source field Selector: "#q47", SplitOn: "+", IgnoreBlank: true, Type: "dropdown", Fields: ["Laundry_Comp"] }, Target: { //Target cf-block Selector: "#q51", Type: "table", }, }); $ei4.create({ Trigger: { Type: "ajax" }, Source: { //source field Selector: "#q55", SplitOn: "+", IgnoreBlank: true, Type: "dropdown", Fields: ["Bath_Comp"] }, Target: { //Target cf-block Selector: "#q59", Type: "table", }, }); $ei5.create({ Trigger: { Type: "ajax" }, Source: { //source field Selector: "#q63", SplitOn: "+", IgnoreBlank: true, Type: "dropdown", Fields: ["Kitchen_Comp"] }, Target: { //Target cf-block Selector: "#q67", Type: "table", }, }); $ei6.create({ Trigger: { Type: "ajax" }, Source: { //source field Selector: "#q71", SplitOn: "+", IgnoreBlank: true, Type: "dropdown", Fields: ["Bed_Comp"] }, Target: { //Target cf-block Selector: "#q75", Type: "table", }, }); $ei7.create({ Trigger: { Type: "ajax" }, Source: { //source field Selector: "#q79", SplitOn: "+", IgnoreBlank: true, Type: "dropdown", Fields: ["Van_Comp"] }, Target: { //Target cf-block Selector: "#q83", Type: "table", }, }); $ei8.create({ Trigger: { Type: "ajax" }, Source: { //source field Selector: "#q88", SplitOn: "+", IgnoreBlank: true, Type: "dropdown", Fields: ["Pink_Comp"] }, Target: { //Target cf-block Selector: "#q92", Type: "table", }, }); $ei9.create({ Trigger: { Type: "ajax" }, Source: { //source field Selector: "#q97", SplitOn: "+", IgnoreBlank: true, Type: "dropdown", Fields: ["Janitor_Comp"] }, Target: { //Target cf-block Selector: "#q101", Type: "table", }, }); ///////////////////Buttons for Each Section and Next Section Buttons/////////////////////////// var section1 = $('.section1 h1:first').text(); var section2 = $('.section2 h1:first').text(); var section3 = $('.section3 h1:first').text(); var section4 = $('.section4 h1:first').text(); var section5 = $('.section5 h1:first').text(); var section6 = $('.section6 h1:first').text(); var section7 = $('.section7 h1:first').text(); var section8 = $('.section8 h1:first').text(); var section9 = $('.section9 h1:first').text(); $('
').insertBefore('#q26'); $('').appendTo('.section1'); $('').appendTo('.section2'); $('').appendTo('.section3'); $('').appendTo('.section4'); $('').appendTo('.section5'); $('').appendTo('.section6'); $('').appendTo('.section7'); $('').appendTo('.section8'); $('.navitem').on('touchstart click', function() { $( '.section1, .section2, .section3, .section4, .section5, .section6, .section7, .section8, .section9' ).hide(); $('.navbar').find('.navitem').removeClass('selected'); if ($(this).hasClass('living2')) { $('.section1').show(); $('.navbar').find('.living2').addClass('selected'); } else if ($(this).hasClass('computer2')) { $('.section2').show(); $('.navbar').find('.computer2').addClass('selected'); } else if ($(this).hasClass('laundry2')) { $('.section3').show(); $('.navbar').find('.laundry2').addClass('selected'); } else if ($(this).hasClass('bathroom2')) { $(".section4").show(); $('.navbar').find('.bathroom2').addClass('selected'); } else if ($(this).hasClass('kitchen2')) { $(".section5").show(); $('.navbar').find('.kitchen2').addClass('selected'); } else if ($(this).hasClass('bedrooms2')) { $(".section6").show(); $('.navbar').find('.bedrooms2').addClass('selected'); } else if ($(this).hasClass('van2')) { $(".section7").show(); $('.navbar').find('.van2').addClass('selected'); } else if ($(this).hasClass('pink2')) { $(".section8").show(); $('.navbar').find('.pink2').addClass('selected'); } else if ($(this).hasClass('janitor2')) { $(".section9").show(); $('.navbar').find('.janitor2').addClass('selected'); } }) $('.navitem.living2').trigger('click'); }); ////////////////////Addition and Average of Tables////////////////// function avg1() { var sum = 0; $('#q10.cf-table-block tbody tr').each(function() { var s = 0; var q = 0; var r = 0; $(this).find('.livingscore input').each(function() { s += parseNumber($(this).val()); $(this).val(s.toFixed(2)); }); //$(this).find('.subtotal input').val((s).toFixed(2)); sum += s; //$('.priority option').text('Urgent'); }); sum = sum / ($('#q10.cf-table-block tr').length - 1); $('.total1 input').val(sum.toFixed(2)); } function avg2() { var sum = 0; $('#q43.cf-table-block tbody tr').each(function() { var s = 0; var q = 0; var r = 0; $(this).find('.pcscore input').each(function() { s += parseNumber($(this).val()); $(this).val(s.toFixed(2)); }); //$(this).find('.subtotal input').val((s).toFixed(2)); sum += s; //$('.priority option').text('Urgent'); }); sum = sum / ($('#q43.cf-table-block tr').length - 1); $('.total2 input').val(sum.toFixed(2)); } function avg3() { var sum = 0; $('#q51.cf-table-block tbody tr').each(function() { var s = 0; var q = 0; var r = 0; $(this).find('.laundryscore input').each(function() { s += parseNumber($(this).val()); $(this).val(s.toFixed(2)); }); //$(this).find('.subtotal input').val((s).toFixed(2)); sum += s; //$('.priority option').text('Urgent'); }); sum = sum / ($('#q51.cf-table-block tr').length - 1); $('.total3 input').val(sum.toFixed(2)); } function avg4() { var sum = 0; $('#q59.cf-table-block tbody tr').each(function() { var s = 0; var q = 0; var r = 0; $(this).find('.bathscore input').each(function() { s += parseNumber($(this).val()); $(this).val(s.toFixed(2)); }); //$(this).find('.subtotal input').val((s).toFixed(2)); sum += s; //$('.priority option').text('Urgent'); }); sum = sum / ($('#q59.cf-table-block tr').length - 1); $('.total4 input').val(sum.toFixed(2)); } function avg5() { var sum = 0; $('#q67.cf-table-block tbody tr').each(function() { var s = 0; var q = 0; var r = 0; $(this).find('.kitchenscore input').each(function() { s += parseNumber($(this).val()); $(this).val(s.toFixed(2)); }); //$(this).find('.subtotal input').val((s).toFixed(2)); sum += s; //$('.priority option').text('Urgent'); }); sum = sum / ($('#q67.cf-table-block tr').length - 1); $('.total5 input').val(sum.toFixed(2)); } function avg6() { var sum = 0; $('#q75.cf-table-block tbody tr').each(function() { var s = 0; var q = 0; var r = 0; $(this).find('.bedscore input').each(function() { s += parseNumber($(this).val()); $(this).val(s.toFixed(2)); }); //$(this).find('.subtotal input').val((s).toFixed(2)); sum += s; //$('.priority option').text('Urgent'); }); sum = sum / ($('#q75.cf-table-block tr').length - 1); $('.total6 input').val(sum.toFixed(2)); } function avg7() { var sum = 0; $('#q83.cf-table-block tbody tr').each(function() { var s = 0; var q = 0; var r = 0; $(this).find('.vanscore input').each(function() { s += parseNumber($(this).val()); $(this).val(s.toFixed(2)); }); //$(this).find('.subtotal input').val((s).toFixed(2)); sum += s; //$('.priority option').text('Urgent'); }); sum = sum / ($('#q83.cf-table-block tr').length - 1); $('.total7 input').val(sum.toFixed(2)); } function avg8() { var sum = 0; $('#q92.cf-table-block tbody tr').each(function() { var s = 0; var q = 0; var r = 0; $(this).find('.pinkscore input').each(function() { s += parseNumber($(this).val()); $(this).val(s.toFixed(2)); }); //$(this).find('.subtotal input').val((s).toFixed(2)); sum += s; //$('.priority option').text('Urgent'); }); sum = sum / ($('#q92.cf-table-block tr').length - 1); $('.total8 input').val(sum.toFixed(2)); } function avg9() { var sum = 0; $('#q101.cf-table-block tbody tr').each(function() { var s = 0; var q = 0; var r = 0; $(this).find('.janitorscore input').each(function() { s += parseNumber($(this).val()); $(this).val(s.toFixed(2)); }); //$(this).find('.subtotal input').val((s).toFixed(2)); sum += s; //$('.priority option').text('Urgent'); }); sum = sum / ($('#q101.cf-table-block tr').length - 1); $('.total9 input').val(sum.toFixed(2)); } /////////////////////////// Parse Number Code///////////////////// function parseNumber(n) { var f = parseFloat(n); //Convert to float number. return isNaN(f) ? 0 : f; //treat invalid input as 0; }