$(document).ready(function() { //makes buttons buttons $("button").button(); console.log('document ready'); //makes datepickers $( ".datepicker" ).datepicker(); //$('#newworkout').find('input.datepicker').datepicker(); $('.datepicker').datepicker('setDate', new Date()); //$('.datepicker').datepicker("hide"); //jsut everything work better $.ajax({async:false}); jQuery.extend({ getValues: function(url) { var result = null; $.ajax({ url: url, type: 'get', dataType: 'json', async: false, success: function(data) { result = data; } }); return result; } }); originalExerciselist = $.getValues("/api/exerciselist"); //*[@id="F_x5F_Pectorals"] // $('div#SVG1').empty().load("/images/BlankBody.svg", function(){ // console.log('svg loaded'); // }); $('div#SVG1').svg({ loadURL: '/images/BlankBody.svg', // External document to load onLoad: null, // Callback once loaded settings: {width: '10cm', height: '5cm'}, // Additional settings for SVG element initPath: ''}); var colors = "0f0 0ff f60 f0f 00f f00".split(' '), i=0; $(document).on('click', 'g',(function() { console.log('click ' + this.id); this.find('path').style.fill = "#"+colors[i++%colors.length]; }) ); $("button#addExercise").click(function() { console.log("click!"); var newElem = $('
  • '); $(newElem).appendTo('ul#exercises'); $("button").button(); $( "ul#exercises" ).sortable( "refresh" ); $('#newworkout').trigger('sortupdate'); }); $(document).on('click', '.addSet',(function() { var newElem = $('
  • '); $(this).siblings('ul.sets').append(newElem); $("button").button(); $("ul.sets").sortable({ items: "> li", cancel: ':input, button' , placeholder: "ui-state-highlight", revert: true, start: function(e, ui){ ui.placeholder.height(ui.item.height()); }, stop: function(event, ui) { $('#newworkout').trigger('sortupdate'); } }); $( "#exercises" ).sortable( "refresh" ); $( ".sets" ).sortable( "refresh" ); $('#newworkout').trigger('sortupdate'); })); $(document).on('click', '.delete',function() { $(this).closest('li').remove(); $('#newworkout').trigger('sortupdate'); }); $("#newworkout").bind('sortupdate', function(event, ui) { $('#exercises > li').each(function(){ var itemindex= $(this).index(); // var newname = $(this).find('input, select').attr('name').replace(/elements\[[0-9]*\]/,'elements[' + itemindex + ']'); $(this).find('input, select').each(function() { var newname = $(this).attr('name').replace(/elements\[[0-9]*\]/,'elements[' + itemindex + ']'); $(this).attr('name', newname); }); // $(this).find('label').each(function() { // var value = $(this).attr('href'); // console.log ('value -' + value); // $(this).attr('href', value.replace(/elements\[[0-9]*\]/,'elements[' + itemindex + ']')); // //var newname = $(this).html.replace(/elements\[[0-9]*\]/,'elements[' + itemindex + ']'); // //$(this).html(newname); // }); $(this).find('ul li').each(function(){ var itemindex2= $(this).index(); $(this).children('input').each(function(){ var newname2 = $(this).attr('name').replace(/\[splits\]\[[0-9]*\]/,'[splits][' + itemindex2 + ']'); newname2 = newname2.replace(/elements\[[0-9]*\]/,'elements[' + itemindex + ']'); $(this).attr('name', newname2); }); $(this).children('label').each(function(){ //var newname2 = $(this).attr('name').replace(/\[splits\]\[[0-9]*\]/,'[splits][' + itemindex2 + ']'); //newname2 = newname2.replace(/elements\[[0-9]*\]/,'elements[' + itemindex + ']'); var newname2 = 'Set '+ (itemindex2 + 1 ) + ''; $(this).html(newname2); }); //Only show delete if more than 1 set if ( $(this).siblings('.set').length > 0 ) { $(this).children('.delete').show(); } else { $(this).children('.delete').hide(); } }); }); //return false; }); $("#Leftpane").delegate("button.recent-link", "click",function () { var id = $(this).attr('value'); $('div#Rightpane').empty().load("/workouts/"+ id + "/recent/", function(){ $("button").button(); }); $('div#Leftpane').empty().load("/users/"+ id + "/sidebar", function(){ $("button").button(); }); }); $("#Leftpane").delegate("button.newex-link", "click",function () { var id = $(this).attr('value'); $('div#Rightpane').empty().load(id); $('div#Leftpane').empty().load("/workouts/filters", function(){ PopulateExerciseList(originalExerciselist); $("ul#exercises").sortable({ items: "> li", cancel: ':input, button' , placeholder: "ui-state-highlight", revert: true, start: function(e, ui){ ui.placeholder.height(ui.item.height()); }, stop: function(event, ui) { $('#newworkout').trigger('sortupdate'); } }); }); $("button").button(); $(document).on('click', 'path#F_x5F_Pectorals', function(){alert('hello2');}); }); $("#top").delegate("button.home-link", "click",function() { //$("#top").delegate("button.home-link", "click",function () { // window.location = this.id; var id = $(this).attr('value'); $('div#Rightpane').empty().load("/workouts/"+ id + "/recent/", function(){ $("button").button(); }); $('div#Leftpane').empty().load("/users/"+ id + "/sidebar", function(){ $("button").button(); }); }); $("#Rightpane").delegate("a", "click",function() { console.log("yup yup" + $(this).attr('href')); var id = $(this).attr('href'); $('div#Rightpane').empty().load(id , function(){ $("button").button(); }); // Stop regular handling of "click" in IE (and some others) return false; }); $("#Leftpane").delegate("button.map-link", "click",function () { var id = $(this).attr('value'); $('div#Rightpane').empty().load(id); $("button").button(); }); $(document).on('click', '.addthisExercise',(function() { // $("button.addthisExercise").click(function() { console.log("This exercise name li" + JSON.stringify($(this).closest('li').data())); var newElem = $('
  • '); $(newElem).data('musclearray', $(this).closest('li').data('musclearray')); $(newElem).data('musclearrayMod', $(this).closest('li').data('musclearrayMod')); $(newElem).appendTo('ul#exercises'); $( ".hiddenelement" ).hide(); $("button").button(); $( "ul#exercises" ).sortable( "refresh" ); $( "ul#sets" ).sortable( "refresh" ); $('#newworkout').trigger('sortupdate'); }) ); //filteredExerciseArray = filterarray(originalExerciselist); //PopulateExerciseList(arr); $(document).on('click', '.filter', function(){ filterarray(); }); $(document).on('keyup', '#searchbox', function(){ filterarray(); }); function filterarray(){ console.time('Filter'); var searchstring = $("#searchbox").val(); var keyREGEX= ""; if(jQuery.trim(searchstring).length > 0) { keyREGEX += '('+ searchstring +')'; } if ($(".filter:checked").length > 0) { // any one is checked var len = $('.filter').length; $(".filter").each(function(index, element) { if ($(this).is (':checked')) { // Do stuff keyREGEX += '('+ $(this).val() +')'; } }); //keyREGEX += "'"; keyREGEX = keyREGEX.replace(/\)\(/g, ")|("); } console.log("Regex= " + keyREGEX); //filteredExerciseArray = filterarray(originalExerciselist, keyREGEX); //PopulateExerciseList(filteredExerciseArray); $("#exerciselist li").each(function(){ //var keywordarray = $(this).data('keywords'); var keyworddata = $(this).data('keywords').toString(); if(jQuery.trim(searchstring).length > 0) { if ( ($(this).text().search(new RegExp(keyREGEX,'i')) > -1) && (keyworddata.search(new RegExp(keyREGEX,'ig')) > -1) ) { console.log("search" + $(this).text() + " " + keyREGEX); $(this).show(); console.log('thisshow1 ' + $(this).text() + ' ' + keyworddata.search(new RegExp(keyREGEX,'ig')) ); } else { console.log('thishide1 ' + $(this).text() + ' ' + keyworddata.search(new RegExp(keyREGEX,'ig'))); $(this).hide(); } } else if (keyworddata.search(new RegExp(keyREGEX,'ig')) > -1) { console.log('thisshow ' + $(this).text() + ' ' + keyworddata + ' ' + keyworddata.search(new RegExp(keyREGEX,'ig'))); $(this).show(); } else { console.log('thishide ' + $(this).text() + ' ' + keyworddata + ' ' + keyworddata.search(new RegExp(keyREGEX,'ig'))); $(this).hide(); } }); console.timeEnd('Filter'); } ///////////////////////////////// // Pseudocode for 1RM calcs // for each exercise in workout // get H1RM for exercise // C1RMsum = 0 // for each set in exercise // calculate C1RM and store in array // find highest C1RM in array // if C1RM > H1RM then // H1RM = C1RM // set comment to "yay" // for each value in array // set[index] = value/H1RM // C1RMsum += value/H1RM // Done // assume sum sumarray * each in musclearray ////// Make below standalone funtion "updateExerciselistDIV" function PopulateExerciseList(exerciselist) { console.time('PopulateExList'); var newExerciselist = $('
    '); $.each(exerciselist, function (i, item) { //console.log("Exercisename = " + item.name); var newElem = $('
  • '+item.name + ' - ' + item.description + '
  • '); $(newElem).data('name', item.name); $(newElem).data('exid', item._id); $(newElem).data('musclearray', item.musclearray); $(newElem).data('keywords', item.keywords); //$(newElem).data('musclearrayMod', item.musclearrayMod); $(newElem).data('datafields', item.datafields); newExerciselist.append(newElem); }); console.log("newexlist outside= " + newExerciselist); $('#exerciselist').empty(); $(newExerciselist).appendTo('#exerciselist'); $("button").button(); console.timeEnd('PopulateExList'); } });