/* 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
" ); jQuery.validator.addMethod( "daysRequired", function(value, element) { var checkedCount = 0; jQuery(element).parent().children('.daysRequired:checked').each( function() { checkedCount++; }); if (checkedCount == 0) { return false; } else return true; }, "Pick a day!
" ); /* 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("daysRequired", { daysRequired: true }); jQuery(document).ready(function() { //-------------------------------------------------- // Validates the form (pre-submission check) //-------------------------------------------------- jQuery('#scheduleForm').validate({ debug: false, }); /* classNum is declared in theto enable loading of saved classes */ /* sectionsOfClass is declared in the
to enable loading of saved sections */ function numberedIds(name){ return '
\ '; } function letteredIds(name){ return '
\ '; } function customIds(name){ return '
'; } //-------------------------------------------------- // Returns the common inputs for each new section. //-------------------------------------------------- function getCommonInputs(cnum) { var snum = sectionsOfClass[cnum]; var result = ''; if(jQuery('#isNumeric').val() == "lettered"){ result = result + letteredIds('postData[' + cnum + '][' + snum + '][letter]'); } else if(jQuery('#isNumeric').val() == "numbered") { result = result + numberedIds('postData[' + cnum + '][' + snum + '][letter]'); } else { result = result + customIds('postData[' + cnum + '][' + snum + '][letter]'); } result = 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('
'); classNum++; }; addRow(); // Add initial row //-------------------------------------------------- // Adds a new class when the add class button is // clicked. //-------------------------------------------------- jQuery('#addclass').click(function() { addRow(); }); //-------------------------------------------------- // Deletes the selected class from input. //-------------------------------------------------- jQuery('.deleteClass').live('click', function() { if(confirm('Delete class and all sections of this class?')) { 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('
'); }); //-------------------------------------------------- // 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(); //-------------------------------------------------- // Change between numbered and lettered on event //-------------------------------------------------- jQuery("#isNumeric").live('change', function() { if(this.value == "lettered"){ /* Replace with lettered */ jQuery(".sectionIdentifier").each( function(index) { var name = jQuery("select", this).attr("name"); jQuery(this).empty(); jQuery(this).append(letteredIds(name)); }); } else if(this.value == "numbered"){ /* Replace with numbered */ jQuery(".sectionIdentifier").each( function(index) { var name = jQuery("select", this).attr("name"); jQuery(this).empty(); jQuery(this).append(numberedIds(name)); }); } else { /* Replace with custom */ jQuery(".sectionIdentifier").each( function(index) { var name = jQuery("select", this).attr("name"); jQuery(this).empty(); jQuery(this).append(customIds(name)); }); } }); jQuery('.advanced').hide(); jQuery('#showadvanced').click( function() { jQuery('#showadvanced').hide(); jQuery('.advanced').slideToggle(); }); });