//-------------------------------------------------- // General Notes //-------------------------------------------------- /* classNum is declared in the
to enable loading of saved classes */ /* sectionsOfClass is declared in the
to enable loading of saved sections */ //-------------------------------------------------- // Validation Functions //-------------------------------------------------- //-------------------------------------------------- // Default Error Message //-------------------------------------------------- jQuery.each(jQuery.validator.messages, function(i) { jQuery.validator.messages[i] = "
Please fill the field
"; }); //-------------------------------------------------- // Time Selection Validation //-------------------------------------------------- jQuery.validator.addMethod( "selectNone", function(value, element) { if (element.value == "none") { return false; } else return true; }, "
Please select a time
" ); //-------------------------------------------------- // Days of Week validation //-------------------------------------------------- jQuery.validator.addMethod( "daysRequired", function(value, element) { var checkedCount = 0; jQuery(element).parent().parent().children().children('.daysRequired:checked').each( function() { checkedCount++; }); if (checkedCount == 0) { return false; } else return true; }, "
Select a day!
" ); //-------------------------------------------------- // Add validation rules //-------------------------------------------------- jQuery.validator.addClassRules("selectRequired", { selectNone: true }); jQuery.validator.addClassRules("daysRequired", { daysRequired: true }); //-------------------------------------------------- // General Input Functions //-------------------------------------------------- //-------------------------------------------------- // Custom ID generator - @FIXME: un-abstract //-------------------------------------------------- function customIds(name){ return '
'; } //-------------------------------------------------- // Returns the common inputs for each new section. //-------------------------------------------------- function getCommonInputs(cnum){ getCommonInputs(cnum,'','','','','',''); } function getCommonInputs(cnum,name,synonym,stime,etime,days,prof) { var snum = sectionsOfClass[cnum]; var result = '
'; return result; } //-------------------------------------------------- // Add a section to a class //-------------------------------------------------- function add_section(cnum) { jQuery('.pclass'+cnum).after(getCommonInputs(cnum)); } function add_section(cnum,name,synonym,stime,etime,days,prof) { jQuery('.pclass'+cnum).after(getCommonInputs(cnum,name,synonym,stime,etime,days,prof)); } //-------------------------------------------------- // Adds a new class to the input. //-------------------------------------------------- function add_class(){ sectionsOfClass[classNum] = 0; // Initialize at 0 jQuery('#jsrows').append('
'); jQuery('.className' + classNum).autocomplete({ source: "auto.php" }); classNum++; }; //-------------------------------------------------- // Items bound to pageload/events //-------------------------------------------------- jQuery(document).ready(function() { //-------------------------------------------------- // Validates the form (pre-submission check) //-------------------------------------------------- jQuery('#scheduleForm').validate({ debug: false, }); //-------------------------------------------------- // Bind the class-adding method //-------------------------------------------------- jQuery('#addclass').click(function() { add_class(); }); //-------------------------------------------------- // 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")]--; // Decreases the number of classes jQuery(this).parent().parent().remove(); }); //-------------------------------------------------- // Bind the section-adding method //-------------------------------------------------- jQuery('.addSection').live('click', function() { add_section(jQuery(this).parent().parent().attr("title"), sectionsOfClass[jQuery(this).parent().parent().attr("title")]); sectionsOfClass[jQuery(this).parent().parent().attr("title")]++; // Increases sectionsOfClass[classNum] }); //-------------------------------------------------- // Default text //-------------------------------------------------- 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(); //-------------------------------------------------- // Show/Hide advanced items //-------------------------------------------------- jQuery('.advanced').hide(); jQuery('#showadvanced').click( function() { jQuery('#showadvanced').hide(); jQuery('.advanced').slideToggle(); }); //-------------------------------------------------- // Add initial class //-------------------------------------------------- add_class(); });