diff --git a/scripts/scheduleInput.js b/scripts/scheduleInput.js new file mode 100644 --- /dev/null +++ b/scripts/scheduleInput.js @@ -0,0 +1,183 @@ + /* Set all default error messages to this */ + jQuery.each(jQuery.validator.messages, function(i) { + jQuery.validator.messages[i] = "

Please fill the field

"; + }); + + jQuery.validator.addMethod( + "selectNone", + function(value, element) { + if (element.value == "none") + { + return false; + } + else return true; + }, + "

Please select a time

" + ); + +/* Doesn't work right now: */ /* + jQuery.validator.addMethod( + "daysRequired", + function(value, element) { + var numChecked = 0; + jQuery(document).find('.daysRequire').each(function () { + jQuery('#scheduleForm').append('

Found something!

'); + if(this.value != "none") + numChecked++; + }); + jQuery('#scheduleForm').append('

Finished each loop, found ' + numChecked + ' checked boxes

'); + + if (numChecked >= 1) + { + return false; + } + else return true; + }, + "

Please select one or more days!.

" + ); +*/ + + jQuery.validator.addClassRules("selectRequired", { + selectNone: true + }); + + jQuery.validator.addClassRules("daysRequire", { + daysRequired: true + }); + + jQuery(document).ready(function() { + //-------------------------------------------------- + // Validates the form (pre-submission check) + //-------------------------------------------------- + jQuery('#scheduleForm').validate({ + debug: false, + }); + + + var classNum = 0; + var sectionsOfClass = new Array(); // holds number of sections for each class + + //-------------------------------------------------- + // Returns the common inputs for each new section. + //-------------------------------------------------- + function getCommonInputs(cnum) { + var snum = sectionsOfClass[cnum]; + + var result = '\ + \ + \ + \ + \ + \ + \ + \ + \ + '; + + return result; + } + + //-------------------------------------------------- + // Adds a new class to the input. + //-------------------------------------------------- + function addRow(){ + sectionsOfClass[classNum] = 0; // This is class 0, initialize at 0 + jQuery('#jsrows').append('' + getCommonInputs(classNum) + '
'); + classNum++; + }; + + addRow(); // Add initial row + + //-------------------------------------------------- + // Adds a new class when the add class button is + // clicked. + //-------------------------------------------------- + jQuery('#classage').click(function() { + addRow(); + }); + + //-------------------------------------------------- + // Deletes the selected class from input. + //-------------------------------------------------- + jQuery('.deleteClass').live('click', function() { + jQuery('.class'+ jQuery(this).parent().parent().attr("title")).remove(); + }); + + //-------------------------------------------------- + // Deletes the selected section from the input. + //-------------------------------------------------- + jQuery('.deleteSection').live('click', function() { + sectionsOfClass[jQuery(this).parent().parent().attr("title")]--; // TODO: this only decreases the number of classes, so php should loop until this number of classes is found in the array + jQuery(this).parent().parent().remove(); + }); + + //-------------------------------------------------- + // Adds a section to the selected class. + //-------------------------------------------------- + jQuery('.addSection').live('click', function() { + sectionsOfClass[jQuery(this).parent().parent().attr("title")]++; // Increases sectionsOfClass[classNum] + jQuery(this).parent().parent().after('' + getCommonInputs(jQuery(this).parent().parent().attr("title")) + '
'); + }); + + //-------------------------------------------------- + // Resets the form + //-------------------------------------------------- + jQuery('#reset').click(function() { + jQuery('#scheduleForm').resetForm(); + }); + + //-------------------------------------------------- + // Default text stuff + //-------------------------------------------------- + jQuery(".defText").focus(function(srcc) + { + if (jQuery(this).val() == jQuery(this)[0].title) + { + jQuery(this).removeClass("defaultTextActive"); + jQuery(this).val(""); + } + }); + jQuery(".defText").blur(function() + { + if (jQuery(this).val() == "") + { + jQuery(this).addClass("defaultTextActive"); + jQuery(this).val($(this)[0].title); + } + }); + jQuery(".defText").blur(); + +}); +