MDL-20700 coding style cleanup - cvs keywords removed, closign php tag removed, trail...
authorPetr Skoda <skodak@moodle.org>
Wed, 4 Nov 2009 08:11:02 +0000 (08:11 +0000)
committerPetr Skoda <skodak@moodle.org>
Wed, 4 Nov 2009 08:11:02 +0000 (08:11 +0000)
211 files changed:
calendar/event_form.php
calendar/export.php
calendar/lib.php
calendar/preferences.html
calendar/view.php
course/completion.js
course/delete_category_form.php
course/edit.php
course/edit_form.php
course/editcategory.php
course/editcategory_form.php
course/editsection_form.php
course/enrol.php
course/external.php
course/format/README.txt
course/format/scorm/config.php
course/format/scorm/format.php
course/format/scorm/lib.php
course/format/social/config.php
course/format/social/format.php
course/format/social/lib.php
course/format/topics/ajax.php
course/format/topics/config.php
course/format/topics/format.php
course/format/topics/lib.php
course/format/weeks/ajax.php
course/format/weeks/config.php
course/format/weeks/format.php
course/format/weeks/lib.php
course/import.php
course/import/activities/import_form.php
course/import/activities/index.php
course/import/activities/mod.php
course/import/groups/import_form.php
course/import/groups/index.php
course/import/groups/mod.php
course/importstudents.html
course/importstudents.php
course/info.php
course/jumpto.php
course/lib.php
course/loginas.php
course/mod.php
course/modedit.php
course/moodleform_mod.php
course/pending.php
course/recent.php
course/recent_form.php
course/report.php
course/report/log/db/access.php
course/report/log/graph.php
course/report/log/index.php
course/report/log/indexlive.php
course/report/log/lib.php
course/report/log/live.php
course/report/log/mod.php
course/report/log/version.php
course/report/outline/db/access.php
course/report/outline/index.php
course/report/outline/mod.php
course/report/outline/version.php
course/report/participation/db/access.php
course/report/participation/index.php
course/report/participation/mod.php
course/report/participation/version.php
course/report/progress/db/access.php
course/report/progress/index.php
course/report/progress/mod.php
course/report/progress/textrotate.js
course/report/progress/version.php
course/report/stats/db/access.php
course/report/stats/graph.php
course/report/stats/index.php
course/report/stats/mod.php
course/report/stats/report.php
course/report/stats/version.php
course/request.php
course/request_form.php
course/reset.php
course/reset_form.php
course/resources.php
course/rest.php
course/scales.php
course/search.php
course/simpletest/broken_testexternal.php
course/simpletest/testcourselib.php
course/switchrole.php
course/togglecompletion.php
course/unenrol.php
course/user.php
course/view.php
repository/repository_ajax.php
theme/anomaly/config.php
theme/anomaly/footer.html
theme/anomaly/header.html
theme/chameleon/README.html
theme/chameleon/config.php
theme/chameleon/footer.html
theme/chameleon/pix/mod/README.txt
theme/chameleon/styles_ie7.css
theme/chameleon/ui/ChameleonCSS.class.php
theme/chameleon/ui/ChameleonFileBrowser.class.php
theme/chameleon/ui/chameleon.php
theme/chameleon/ui/chameleon_js.php
theme/chameleon/ui/chameleon_ui.css
theme/chameleon/ui/css.php
theme/chameleon/ui/sarissa.js
theme/chameleon/user_styles.css
theme/colors/colors.css
theme/colors/config.php
theme/colors/footer.html
theme/colors/gradients.css
theme/colors/header.html
theme/colors/js/CSSClass.js
theme/colors/js/js.php
theme/colors/pix/mod/README.txt
theme/cornflower/config.php
theme/cornflower/cornflower.css
theme/custom_corners/config.php
theme/custom_corners/footer.html
theme/custom_corners/header.html
theme/custom_corners/js/CSSClass.js
theme/custom_corners/js/js.php
theme/custom_corners/user_styles.css
theme/formal_white/config.php
theme/formal_white/fw_color.css
theme/formal_white/fw_fonts.css
theme/formal_white/fw_layout.css
theme/index.php
theme/lines/config.php
theme/lines/footer.html
theme/lines/header.html
theme/lines/js/CSSClass.js
theme/lines/js/js.php
theme/lines/js/yui.php
theme/lines/lines.css
theme/metal/README.txt
theme/metal/colors.css
theme/metal/config.php
theme/metal/gradients.css
theme/oceanblue/config.php
theme/oceanblue/styles_color.css
theme/orangewhite/config.php
theme/orangewhite/csshover.htc
theme/orangewhite/styles_color.css
theme/orangewhite/styles_fonts.css
theme/orangewhite/styles_layout.css
theme/orangewhitepda/config.php
theme/orangewhitepda/styles_pda.css
theme/standard/README.html
theme/standard/rtl.css
theme/standard/styles_color.css
theme/standard/styles_layout.css
theme/standardblue/config.php
theme/standardblue/gradients.css
theme/standardgreen/config.php
theme/standardgreen/gradients.css
theme/standardlogo/config.php
theme/standardred/config.php
theme/standardred/gradients.css
theme/standardwhite/config.php
theme/standardwhite/footer.html
theme/standardwhite/gradients.css
theme/styles.php
theme/wood/README.html
theme/wood/config.php
theme/wood/styles_color.css
user/action_redir.php
user/addnote.php
user/edit.php
user/edit_form.php
user/editadvanced.php
user/editadvanced_form.php
user/editlib.php
user/extendenrol.php
user/external.php
user/filters/courserole.php
user/filters/date.php
user/filters/globalrole.php
user/filters/lib.php
user/filters/profilefield.php
user/filters/select.php
user/filters/simpleselect.php
user/filters/text.php
user/filters/user_filter_forms.php
user/filters/yesno.php
user/groupextendenrol.php
user/index.php
user/messageselect.php
user/policy.php
user/portfolio.php
user/portfoliologs.php
user/profile/definelib.php
user/profile/field/checkbox/define.class.php
user/profile/field/checkbox/field.class.php
user/profile/field/menu/define.class.php
user/profile/field/menu/field.class.php
user/profile/field/text/define.class.php
user/profile/field/text/field.class.php
user/profile/field/textarea/define.class.php
user/profile/field/textarea/field.class.php
user/profile/index.php
user/profile/index_category_form.php
user/profile/index_field_form.php
user/profile/lib.php
user/repository.php
user/selector/lib.php
user/selector/script.js
user/selector/search.php
user/tabs.php
user/view.php

index 8904392..157c0b4 100644 (file)
@@ -30,7 +30,7 @@ require_once($CFG->dirroot.'/lib/formslib.php');
 
 /**
  * The mform class for creating and editing a calendar
- * 
+ *
  * @copyright 2009 Sam Hemelryk
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
index e6f7983..e3ef48c 100644 (file)
@@ -56,7 +56,7 @@ $day  = optional_param('cal_d', 0, PARAM_INT);
 $mon  = optional_param('cal_m', 0, PARAM_INT);
 $yr   = optional_param('cal_y', 0, PARAM_INT);
 if ($courseid = optional_param('course', 0, PARAM_INT)) {
-    $course = $DB->get_record('course', array('id'=>$courseid)); 
+    $course = $DB->get_record('course', array('id'=>$courseid));
 } else {
     $course = NULL;
 }
index 1102ada..ec291bd 100644 (file)
@@ -452,7 +452,7 @@ function calendar_get_upcoming($courses, $groups, $users, $daysinfuture, $maxeve
                 }
                 if ($event->modulename == 'assignment'){
                     // TODO: rewrite this hack somehow
-                    if (!calendar_edit_event_allowed($event)){ // cannot manage entries, eg. student  
+                    if (!calendar_edit_event_allowed($event)){ // cannot manage entries, eg. student
                         if (!$assignment = $DB->get_record('assignment', array('id'=>$event->instance))) {
                             // print_error("invalidid", 'assignment');
                             continue;
@@ -572,9 +572,9 @@ function calendar_print_event($event, $showactions=true) {
     if (isset($event->cssclass)) {
         echo '<td class="description '.$event->cssclass.'">';
     } else {
-        echo '<td class="description">'; 
+        echo '<td class="description">';
     }
-    
+
     echo $event->description;
     if (calendar_edit_event_allowed($event) && $showactions) {
         echo '<div class="commands">';
@@ -860,7 +860,7 @@ function calendar_filter_controls($type, $vars = NULL, $course = NULL, $courses
     } else {
         $content .= '<td style="width: 11px;"><img src="'.$OUTPUT->old_icon_url('t/show') . '" class="iconsmall" alt="'.get_string('hide').'" title="'.get_string('tt_showcourse', 'calendar').'" style="cursor:pointer" onclick="location.href='."'".CALENDAR_URL.'set.php?var=showcourses'.$getvars."'".'" /></td>';
         $content .= '<td><a href="'.CALENDAR_URL.'set.php?var=showcourses'.$getvars.'" title="'.get_string('tt_showcourse', 'calendar').'">'.get_string('course', 'calendar').'</a></td>'."\n";
-    
+
     }
 
 
@@ -1190,7 +1190,7 @@ function calendar_session_vars($course=null) {
     if ($course !== null) {
         // speedup hack for calendar related blocks
         $SESSION->cal_courses_shown = array($course->id => $course);
-    } else {    
+    } else {
         $SESSION->cal_courses_shown = calendar_get_default_courses(true);
     }
     if(empty($SESSION->cal_users_shown)) {
@@ -1219,9 +1219,9 @@ function calendar_set_filters(&$courses, &$group, &$user, $courseeventsfrom = NU
         $SESSION->cal_courses_shown = intval($SESSION->cal_courses_shown);
     }
     if($courseeventsfrom === NULL) {
-        $courseeventsfrom = $SESSION->cal_courses_shown;    
+        $courseeventsfrom = $SESSION->cal_courses_shown;
     }
-    
+
     // MDL-9059, $courseeventsfrom can be an int, or an array of ints, or an array of course objects
     // convert all to array of objects
     // we probably should do some clean up and make sure that session is set to use the proper form
@@ -1233,8 +1233,8 @@ function calendar_set_filters(&$courses, &$group, &$user, $courseeventsfrom = NU
         foreach ($courseeventsfrom as $i=>$courseid) { // TODO: this seems wrong, the array is often constructed as [courseid] => 1 ???
             if (is_int($courseid)) {
                 $courseeventsfrom[$i] = $DB->get_record('course', array('id'=>$courseid));
-            } 
-        }    
+            }
+        }
     }
 
     if($groupeventsfrom === NULL) {
@@ -1325,7 +1325,7 @@ function calendar_set_filters(&$courses, &$group, &$user, $courseeventsfrom = NU
                             $courserecord = $courseeventsfrom[$courseid];
                         } else {
                             $courserecord = $DB->get_record('course', array('id'=>$courseid));
-                        } 
+                        }
                         $courserecord = $DB->get_record('course', array('id'=>$courseid));
                         if ($courserecord->groupmode != NOGROUPS || !$courserecord->groupmodeforce) {
                             $groupids[] = $courseid;
@@ -1592,7 +1592,7 @@ function calendar_get_allowed_types(&$allowed) {
 
         if(has_capability('moodle/calendar:manageentries', $coursecontext)) {
             $allowed->courses = array($course->id => 1);
-    
+
             if($course->groupmode != NOGROUPS || !$course->groupmodeforce) {
                 $allowed->groups = groups_get_all_groups($SESSION->cal_course_referer);
             }
@@ -1877,7 +1877,7 @@ class calendar_event {
 
     /**
      * Return the number of repeat events there are in this events series
-     * 
+     *
      * @return int
      */
     public function count_repeats() {
@@ -1965,7 +1965,7 @@ class calendar_event {
 
                 $DB->set_field('event', 'description', $this->properties->description, array('id'=>$this->properties->id));
             }
-            
+
             // Log the event entry.
             add_to_log($this->properties->courseid, 'calendar', 'add', 'event.php?action=edit&amp;id='.$this->properties->id, $this->properties->name);
 
@@ -2209,7 +2209,7 @@ class calendar_event {
             } else {
                 $draftiddescription = 0;
             }
-            
+
             // Structure the description field as the editor requires
             $properties->description = array('text'=>$properties->description, 'format'=>$properties->format, 'itemid'=>$draftiddescription);
         }
index ea6da99..8ca47f1 100644 (file)
@@ -10,7 +10,7 @@
         $options[CALENDAR_TF_12] = get_string('timeformat_12', 'calendar');
         $options[CALENDAR_TF_24] = get_string('timeformat_24', 'calendar');
         $select = html_select::make($options, "timeformat", $prefs->timeformat, false);
-        $select->nothingvalue = ''; 
+        $select->nothingvalue = '';
         echo $OUTPUT->select($select);
     ?>
     <p><?php print_string('explain_timeformat', 'calendar'); ?></p>
@@ -30,7 +30,7 @@
         $options[5] = get_string('friday', 'calendar');
         $options[6] = get_string('saturday', 'calendar');
         $select = html_select::make($options, 'startwday', $prefs->startwday, false);
-        $select->nothingvalue = ''; 
+        $select->nothingvalue = '';
         echo $OUTPUT->select($select);
     ?>
     <p><?php print_string('explain_startwday', 'calendar'); ?></p>
@@ -46,7 +46,7 @@
             $options[$i] = $i;
         }
         $select = html_select::make($options, "maxevents", $prefs->maxevents, false);
-        $select->nothingvalue = ''; 
+        $select->nothingvalue = '';
         echo $OUTPUT->select($select);
     ?>
     <p><?php print_string('explain_maxevents', 'calendar'); ?></p>
@@ -62,7 +62,7 @@
             $options[$i] = $i;
         }
         $select = html_select::make($options, "lookahead", $prefs->lookahead, false);
-        $select->nothingvalue = ''; 
+        $select->nothingvalue = '';
         echo $OUTPUT->select($select);
     ?>
     <p><?php print_string('explain_lookahead', 'calendar'); ?></p>
@@ -72,9 +72,9 @@
 <tr>
     <th scope="row"><?php print_string('pref_persistflt', 'calendar')?>:</th>
     <td>
-    <?php 
+    <?php
     $select = html_select::make(array(0 => get_string('no'), 1 => get_string('yes')), 'persistflt', $prefs->persistflt, false);
-    $select->nothingvalue = ''; 
+    $select->nothingvalue = '';
     echo $OUTPUT->select($select);
     ?>
     <p><?php print_string('explain_persistflt', 'calendar'); ?></p>
index e02dc60..8b4cbc6 100644 (file)
@@ -399,7 +399,7 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users, $course
             }
         }
     }
-    
+
     // Extract information: events vs. time
     calendar_events_by_day($events, $m, $y, $eventsbyday, $durationbyday, $typesbyday, $courses);
 
@@ -539,54 +539,54 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users, $course
 
     echo "</table>\n"; // Tabular display of days ends
 
-       // OK, now for the filtering display     
-            echo '<div class="filters"><table><tr>';    
-                
-            // Global events    
-            if($SESSION->cal_show_global) {     
-                echo '<td class="event_global" style="width: 8px;"></td><td><strong>'.get_string('globalevents', 'calendar').':</strong> ';     
-                echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showglobal&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";      
-            }   
-            else {      
-                echo '<td style="width: 8px;"></td><td><strong>'.get_string('globalevents', 'calendar').':</strong> ';          
-                echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showglobal&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";     
-            }   
-                
-            // Course events    
-            if(!empty($SESSION->cal_show_course)) {     
-                echo '<td class="event_course" style="width: 8px;"></td><td><strong>'.get_string('courseevents', 'calendar').':</strong> ';     
-                echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showcourses&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";     
-            }   
-            else {      
-                echo '<td style="width: 8px;"></td><td><strong>'.get_string('courseevents', 'calendar').':</strong> ';          
-                echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showcourses&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";    
-            }   
-                
-            echo "</tr>\n";     
-                
+       // OK, now for the filtering display    
+            echo '<div class="filters"><table><tr>';   
+               
+            // Global events   
+            if($SESSION->cal_show_global) {    
+                echo '<td class="event_global" style="width: 8px;"></td><td><strong>'.get_string('globalevents', 'calendar').':</strong> ';    
+                echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showglobal&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";     
+            }  
+            else {     
+                echo '<td style="width: 8px;"></td><td><strong>'.get_string('globalevents', 'calendar').':</strong> ';         
+                echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showglobal&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";    
+            }  
+               
+            // Course events   
+            if(!empty($SESSION->cal_show_course)) {    
+                echo '<td class="event_course" style="width: 8px;"></td><td><strong>'.get_string('courseevents', 'calendar').':</strong> ';    
+                echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showcourses&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";    
+            }  
+            else {     
+                echo '<td style="width: 8px;"></td><td><strong>'.get_string('courseevents', 'calendar').':</strong> ';         
+                echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showcourses&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";   
+            }  
+               
+            echo "</tr>\n";    
+               
             if(!empty($USER->id) && !has_capability('moodle/legacy:guest', get_context_instance(CONTEXT_SYSTEM), 0, false)) {
-                echo '<tr>';    
-                // Group events         
-                if($SESSION->cal_show_groups) {         
-                    echo '<td class="event_group" style="width: 8px;"></td><td><strong>'.get_string('groupevents', 'calendar').':</strong> ';   
-                    echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showgroups&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";          
-                }       
-                else {          
-                    echo '<td style="width: 8px;"></td><td><strong>'.get_string('groupevents', 'calendar').':</strong> ';       
-                    echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showgroups&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";         
-                }       
-                // User events          
-                if($SESSION->cal_show_user) {   
-                    echo '<td class="event_user" style="width: 8px;"></td><td><strong>'.get_string('userevents', 'calendar').':</strong> ';     
-                    echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showuser&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";    
-                }       
-                else {          
-                    echo '<td style="width: 8px;"></td><td><strong>'.get_string('userevents', 'calendar').':</strong> ';        
-                    echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showuser&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";   
-                }       
-                echo "</tr>\n";         
-            }   
-                
+                echo '<tr>';   
+                // Group events        
+                if($SESSION->cal_show_groups) {        
+                    echo '<td class="event_group" style="width: 8px;"></td><td><strong>'.get_string('groupevents', 'calendar').':</strong> ';  
+                    echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showgroups&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";         
+                }      
+                else {         
+                    echo '<td style="width: 8px;"></td><td><strong>'.get_string('groupevents', 'calendar').':</strong> ';      
+                    echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showgroups&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";        
+                }      
+                // User events         
+                if($SESSION->cal_show_user) {  
+                    echo '<td class="event_user" style="width: 8px;"></td><td><strong>'.get_string('userevents', 'calendar').':</strong> ';    
+                    echo get_string('shown', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showuser&amp;'.$getvars.'">'.get_string('clickhide', 'calendar').'</a>)</td>'."\n";   
+                }      
+                else {         
+                    echo '<td style="width: 8px;"></td><td><strong>'.get_string('userevents', 'calendar').':</strong> ';       
+                    echo get_string('hidden', 'calendar').' (<a href="'.CALENDAR_URL.'set.php?var=showuser&amp;'.$getvars.'">'.get_string('clickshow', 'calendar').'</a>)</td>'."\n";  
+                }      
+                echo "</tr>\n";        
+            }  
+               
             echo '</table></div>';
 }
 
index 5144238..3c7dd03 100644 (file)
@@ -2,9 +2,9 @@ function completion_init() {
   // Check the reload-forcing
   var changeDetector=document.getElementById('completion_dynamic_change');
   if(changeDetector.value==1) {
-    changeDetector.value=0;  
+    changeDetector.value=0;
     window.location.reload();
-    return; 
+    return;
   }
 
   var toggles=YAHOO.util.Dom.getElementsByClassName('togglecompletion', 'form');
@@ -13,7 +13,7 @@ function completion_init() {
       completion_init_toggle(toggles[i]);
     }
   }
-} 
+}
 
 function completion_init_toggle(form) {
   // Store all necessary references for easy access
@@ -22,7 +22,7 @@ function completion_init_toggle(form) {
     switch(inputs[i].name) {
       case 'id' : form.cmid=inputs[i].value; break;
       case 'completionstate' : form.otherState=inputs[i].value; break;
-    } 
+    }
     if(inputs[i].type=='image') {
       form.image=inputs[i];
     }
@@ -84,7 +84,7 @@ function completion_handle_failure(o) {
 
 function completion_toggle(e) {
   YAHOO.util.Event.preventDefault(e);
-  // By setting completion_wwwroot you can cause it to use absolute path 
+  // By setting completion_wwwroot you can cause it to use absolute path
   // otherwise script assumes it is called from somewhere in /course
   var target = moodle_cfg.wwwroot + '/course/togglecompletion.php';
   YAHOO.util.Connect.asyncRequest('POST',target,
index 9c3fb34..8c18dbc 100644 (file)
@@ -1,4 +1,4 @@
-<?php  //$Id$
+<?php
 
 require_once($CFG->libdir.'/formslib.php');
 require_once($CFG->libdir.'/questionlib.php');
@@ -141,4 +141,4 @@ class delete_category_form extends moodleform {
         return $errors;
     }
 }
-?>
+
index ffe4696..c02dcde 100644 (file)
 
     echo $OUTPUT->footer();
 
-?>
\ No newline at end of file
index 8591781..a833a72 100644 (file)
@@ -52,7 +52,7 @@ class course_edit_form extends moodleform {
             $coursecontext = null;
             $context = $categorycontext;
         }
-        
+
 /// form definition with new course defaults
 //--------------------------------------------------------------------------------
         $mform->addElement('header','general', get_string('general', 'form'));
@@ -114,7 +114,7 @@ class course_edit_form extends moodleform {
             $mform->setConstants('idnumber', $course->idnumber);
         }
 
-        
+
         $mform->addElement('editor','summary_editor', get_string('summary'), null, $editoroptions);
         $mform->setHelpButton('summary_editor', array('text2', get_string('helptext')), true);
         $mform->setType('summary_editor', PARAM_RAW);
@@ -496,4 +496,4 @@ class course_edit_form extends moodleform {
         return $errors;
     }
 }
-?>
+
index 522cc28..c02e9b0 100644 (file)
@@ -116,4 +116,4 @@ echo $OUTPUT->heading($strtitle);
 $mform->display();
 
 echo $OUTPUT->footer();
-?>
+
index 8da5a95..a5b9cdd 100644 (file)
@@ -1,4 +1,4 @@
-<?php 
+<?php
 require_once ($CFG->dirroot.'/course/moodleform_mod.php');
 class editcategory_form extends moodleform {
 
@@ -41,5 +41,5 @@ class editcategory_form extends moodleform {
 
         $this->add_action_buttons(true, $strsubmit);
     }
-} 
-?>
+}
+
index ef825af..b517ec7 100644 (file)
@@ -1,4 +1,4 @@
-<?php  //$Id$
+<?php
 
 require_once($CFG->libdir.'/formslib.php');
 
index 7844da7..0cce490 100644 (file)
@@ -131,4 +131,3 @@ $enrol->print_entry($course);
 
 /// Easy!
 
-?>
\ No newline at end of file
index ecd51aa..c3abbe3 100644 (file)
@@ -689,7 +689,7 @@ final class course_external extends moodle_external {
                 }
 
                 $activities = get_array_of_activities($id);
-               
+
                 foreach ($activities as $activity) {
                     if (empty($type)) {
                         $module = array('id' => $activity->id, 'courseid' => $id, 'name' => $activity->name, 'type' => $activity->mod);
@@ -746,4 +746,4 @@ final class course_external extends moodle_external {
 
 }
 
-?>
+
index e8fecdb..4543daf 100644 (file)
@@ -3,33 +3,33 @@ Course formats
 
 To create a new course format, make another folder in here.
 
-If you want a basic format, you only need to write the 'standard files' listed 
-below. 
+If you want a basic format, you only need to write the 'standard files' listed
+below.
 
 If you want to store information in the database for your format, or control
 access to features of your format, you need some of the optional files too.
 
-All names below assume that your format is called 'yourformat'. 
+All names below assume that your format is called 'yourformat'.
 
 
 Standard files
 --------------
 
-* yourformat/format.php 
+* yourformat/format.php
 
-  Code that actually displays the course view page. See existing formats for 
+  Code that actually displays the course view page. See existing formats for
   examples.
-* yourformat/config.php 
 
-  Configuration file, mainly controlling default blocks for the format. 
+* yourformat/config.php
+
+  Configuration file, mainly controlling default blocks for the format.
   See existing formats for examples.
-  
+
 * yourformat/lang/en_utf8/format_yourformat.php
 
   Language file containing basic language strings for your format. Here
   is a minimal language file:
-  
+
 <?php
 $string['formatyourformat']='Your format'; // Name to display for format
 $string['nameyourformat']='section'; // Name of a section within your format
@@ -37,20 +37,20 @@ $string['nameyourformat']='section'; // Name of a section within your format
 
   The first string is used in the dropdown menu of course settings. The second
   is used when editing an activity within a course of your format.
-  
-  Note that existing formats store their language strings in the main 
+
+  Note that existing formats store their language strings in the main
   moodle.php, which you can also do, but this separate file is recommended
   for contributed formats.
-  
+
   You can also store other strings in this file if you wish. They can be
   accessed as follows, for example to get the section name:
-  
+
   get_string('nameyourformat','format_yourformat');
-  
+
   Of course you can have other folders as well as just English if you want
   to provide multiple languages.
-  
-  
+
+
 Optional files (database access)
 --------------------------------
 
@@ -61,17 +61,17 @@ visit the admin page.
 
   Database table definitions. Use your format name at the start of the table
   names to increase the chance that they are unique.
-  
+
 * yourformat/db/upgrade.php
 
   Database upgrade instructions. Similar to other upgrade.php files, so look
-  at those for modules etc. if you want to see. 
-  
+  at those for modules etc. if you want to see.
+
   The function must look like:
-  
-  function xmldb_format_yourformat_upgrade($oldversion) { 
+
+  function xmldb_format_yourformat_upgrade($oldversion) {
   ...
-  
+
 * yourformat/version.php
 
   Required if you use database tables.
@@ -81,7 +81,7 @@ visit the admin page.
   $plugin->requires = 2006092801; // Required Moodle version
   ?>
 
-  
+
 Optional files (backup)
 -----------------------
 
@@ -94,44 +94,44 @@ the course. You can't back up the course format data independently.
 
   function yourformat_backup_format_data($bf,$preferences) {
   ...
-  
+
 * yourformat/restorelib.php
 
   Similar to restore code for other plugins. Must have a function:
-  
+
   function yourformat_restore_format_data($restore,$data) {
   ...
-  
+
   ($data is the xmlized data underneath FORMATDATA in the backup XML file.
   Do print_object($data); while testing to see how it looks.)
-  
-  
-Optional file (capabilities)  
+
+
+Optional file (capabilities)
 ----------------------------
-  
+
 If this file exists, Moodle refreshes your format's capabilities
 (checks that they are all included in the database) whenever you increase
 the version in yourformat/version.php.
-  
+
 * yourformat/db/access.php
 
-  Contains capability entries similar to other access.php files. 
-  
+  Contains capability entries similar to other access.php files.
+
   The array definition must look like:
-  
-  $format_yourformat_capabilities = array( 
+
+  $format_yourformat_capabilities = array(
   ...
-  
-  Format names must look like: 
-  
+
+  Format names must look like:
+
   format/yourformat:specialpower
-  
+
   Capability definitions in your language file must look like:
-  
+
   $string['yourformat:specialpower']='Revolutionise the world';
 
-  
-  
+
+
 Optional file (styles)
 ----------------------
 
index ca02d73..13bd6d6 100755 (executable)
@@ -1,4 +1,4 @@
-<?php //$Id$
+<?php
 //
 // Optional course format configuration file
 //
@@ -8,4 +8,4 @@
 // The default blocks layout for this course format:
     $format['defaultblocks'] = ':news_items,recent_activity,calendar_upcoming';
 
-?>
+
index d92ea4f..465f7f7 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
       // format.php - course format featuring single activity
       //              included from view.php
 
@@ -12,6 +12,6 @@
     $moduleformat = $module.'_course_format_display';
     if (function_exists($moduleformat)) {
         $moduleformat($USER,$course);
-    } else { 
+    } else {
         echo $OUTPUT->notification('The module '. $module. ' does not support single activity course format');
     }
index 01605e5..09eba86 100644 (file)
@@ -52,4 +52,4 @@ function callback_scorm_display_content() {
     return false;
 }
 
-?>
+
index d2d8a9c..d89f0e8 100755 (executable)
@@ -1,4 +1,4 @@
-<?php //$Id$
+<?php
 //
 // Optional course format configuration file
 //
@@ -8,4 +8,4 @@
 // The default blocks layout for this course format:
     $format['defaultblocks'] = ':search_forums,calendar_upcoming,social_activities,recent_activity,admin,course_list';
 
-?>
+
index 659ae06..65b7737 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
       // format.php - course format featuring social forum
       //              included from view.php
 
index 5b1bd1e..7e19bce 100644 (file)
@@ -80,4 +80,4 @@ function callback_social_display_content() {
     return false;
 }
 
-?>
+
index 2280edd..0dbea4e 100644 (file)
@@ -7,4 +7,4 @@
 $CFG->ajaxcapable = true;
 $CFG->ajaxtestedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111);
 
-?>
+
index cf58f2d..1a429b4 100755 (executable)
@@ -2,10 +2,9 @@
 //
 // Optional course format configuration file
 //
-// This file contains any specific configuration settings for the 
+// This file contains any specific configuration settings for the
 // format.
 //
 // The default blocks layout for this course format:
     $format['defaultblocks'] = ':search_forums,news_items,calendar_upcoming,recent_activity';
 //
-?>
\ No newline at end of file
index a3b20eb..9a1e56a 100644 (file)
@@ -4,25 +4,25 @@
 // Included from "view.php"
 /**
  * Evaluation topics format for course display - NO layout tables, for accessibility, etc.
- * 
- * A duplicate course format to enable the Moodle development team to evaluate 
- * CSS for the multi-column layout in place of layout tables. 
+ *
+ * A duplicate course format to enable the Moodle development team to evaluate
+ * CSS for the multi-column layout in place of layout tables.
  * Less risk for the Moodle 1.6 beta release.
  *   1. Straight copy of topics/format.php
  *   2. Replace <table> and <td> with DIVs; inline styles.
  *   3. Reorder columns so that in linear view content is first then blocks;
  * styles to maintain original graphical (side by side) view.
  *
- * Target: 3-column graphical view using relative widths for pixel screen sizes 
+ * Target: 3-column graphical view using relative widths for pixel screen sizes
  * 800x600, 1024x768... on IE6, Firefox. Below 800 columns will shift downwards.
- * 
+ *
  * http://www.maxdesign.com.au/presentation/em/ Ideal length for content.
  * http://www.svendtofte.com/code/max_width_in_ie/ Max width in IE.
  *
  * @copyright &copy; 2006 The Open University
  * @author N.D.Freear@open.ac.uk, and others.
  * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
- * @package  
+ * @package
  */
 //TODO (nfreear): Accessibility: evaluation, lang/en_utf8/moodle.php: $string['formattopicscss']
 
index c91a586..228e21e 100644 (file)
@@ -70,4 +70,4 @@ function callback_topics_definition() {
 function callback_topics_request_key() {
     return 'topic';
 }
-?>
+
index 2280edd..0dbea4e 100644 (file)
@@ -7,4 +7,4 @@
 $CFG->ajaxcapable = true;
 $CFG->ajaxtestedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111);
 
-?>
+
index cf58f2d..1a429b4 100755 (executable)
@@ -2,10 +2,9 @@
 //
 // Optional course format configuration file
 //
-// This file contains any specific configuration settings for the 
+// This file contains any specific configuration settings for the
 // format.
 //
 // The default blocks layout for this course format:
     $format['defaultblocks'] = ':search_forums,news_items,calendar_upcoming,recent_activity';
 //
-?>
\ No newline at end of file
index 8e56aaa..7830bcf 100644 (file)
@@ -1,27 +1,27 @@
-<?php // $Id$
+<?php
       // Display the whole course as "weeks" made of of modules
       // Included from "view.php"
 /**
  * Evaluation weekly format for course display - NO layout tables, for accessibility, etc.
- * 
- * A duplicate course format to enable the Moodle development team to evaluate 
- * CSS for the multi-column layout in place of layout tables. 
+ *
+ * A duplicate course format to enable the Moodle development team to evaluate
+ * CSS for the multi-column layout in place of layout tables.
  * Less risk for the Moodle 1.6 beta release.
  *   1. Straight copy of weeks/format.php
  *   2. Replace <table> and <td> with DIVs; inline styles.
  *   3. Reorder columns so that in linear view content is first then blocks;
  * styles to maintain original graphical (side by side) view.
  *
- * Target: 3-column graphical view using relative widths for pixel screen sizes 
+ * Target: 3-column graphical view using relative widths for pixel screen sizes
  * 800x600, 1024x768... on IE6, Firefox. Below 800 columns will shift downwards.
- * 
+ *
  * http://www.maxdesign.com.au/presentation/em/ Ideal length for content.
  * http://www.svendtofte.com/code/max_width_in_ie/ Max width in IE.
  *
  * @copyright &copy; 2006 The Open University
  * @author N.D.Freear@open.ac.uk, and others.
  * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
- * @package  
+ * @package
  */
 //TODO (nfreear): Accessibility: evaluation, lang/en_utf8/moodle.php: $string['formatweekscss']
 
@@ -86,9 +86,9 @@
         // Note, 'right side' is BEFORE content.
         echo '<li id="section-0" class="section main" >';
         echo '<div class="left side">&nbsp;</div>';
-        echo '<div class="right side" >&nbsp;</div>';        
+        echo '<div class="right side" >&nbsp;</div>';
         echo '<div class="content">';
-        
+
         echo '<div class="summary">';
 
         $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id);
                  ' class="icon edit" alt="'.$streditsummary.'" /></a></p>';
         }
         echo '</div>';
-        
+
         print_section($course, $thissection, $mods, $modnamesused);
 
         if ($PAGE->user_is_editing()) {
 
             // Note, 'right side' is BEFORE content.
             echo '<div class="right side">';
-            
+
             if ($displaysection == $section) {
                 echo '<a href="view.php?id='.$course->id.'&amp;week=0#section-'.$section.'" title="'.$strshowallweeks.'">'.
                      '<img src="'.$OUTPUT->old_icon_url('i/all') . '" class="icon wkall" alt="'.$strshowallweeks.'" /></a><br />';
index 0130dc4..ebad925 100644 (file)
@@ -71,4 +71,4 @@ function callback_weeks_definition() {
 function callback_weeks_request_key() {
     return 'week';
 }
-?>
+
index ffb0d05..7bef40a 100644 (file)
@@ -71,4 +71,4 @@ foreach ($imports as $import => $importdir) {
 }
 
 echo $OUTPUT->footer();
-?>
+
index 4e997fe..745933f 100755 (executable)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
 require_once($CFG->libdir.'/formslib.php');
 
@@ -57,4 +57,4 @@ class course_import_activities_form_2 extends moodleform {
     }
 
 }
-?>
+
index 63f942c..61bd005 100644 (file)
@@ -104,4 +104,3 @@ require_once('mod.php');
 
 echo $OUTPUT->footer();
 
-?>
\ No newline at end of file
index d021655..f1d0a59 100644 (file)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
     if (!defined('MOODLE_INTERNAL')) {
         die('Direct access to this script is forbidden.');    ///  It must be included from a Moodle page
@@ -97,4 +97,4 @@
     if (!empty($table)) {
         echo $OUTPUT->table($table);
     }
-?>
+
index f0a7f1a..c6bd14f 100755 (executable)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
 require_once($CFG->libdir.'/formslib.php');
 
@@ -34,4 +34,4 @@ class course_import_groups_form extends moodleform {
         }
     }
 }
-?>
+
index 60d47f1..cd79671 100755 (executable)
@@ -232,4 +232,3 @@ function my_file_get_contents($filename, $use_include_path = 0) {
     return $data;
 }
 
-?>
\ No newline at end of file
index 4a73e81..b264515 100644 (file)
@@ -53,4 +53,3 @@ echo $OUTPUT->box_end();
 
 echo '</p>';
 
-?>
\ No newline at end of file
index 6463648..403c344 100644 (file)
@@ -12,7 +12,7 @@
                   onFocus="getElementById('studentform').add.disabled=true;
                            getElementById('studentform').remove.disabled=false;
                            getElementById('studentform').addselect.selectedIndex=-1;">
-          <?php 
+          <?php
             foreach ($alreadycourses as $course) {
                 echo "<option value=\"$course->id\">".course_format_name($course,60)."</option>\n";
             }
@@ -34,7 +34,7 @@
                            getElementById('studentform').remove.disabled=true;
                            getElementById('studentform').removeselect.selectedIndex=-1;">
           <?php
-  
+
               if (!empty($searchcourses)) {
                   echo "<optgroup label=\"$strsearchresults (" . count($searchcourses) . ")\">\n";
                   foreach ($searchcourses as $course) {
@@ -57,7 +57,7 @@
          </select>
          <br />
          <label for="searchtext" class="accesshide"><?php p($strsearch) ?></label>
-         <input type="text" name="searchtext" id="searchtext" size="30" value="<?php p($searchtext) ?>" 
+         <input type="text" name="searchtext" id="searchtext" size="30" value="<?php p($searchtext) ?>"
                   onFocus ="getElementById('studentform').add.disabled=true;
                             getElementById('studentform').remove.disabled=true;
                             getElementById('studentform').removeselect.selectedIndex=-1;
index 0a2421c..23dcd07 100644 (file)
 
     echo $OUTPUT->footer();
 
-?>
+
index 2570956..ded88b3 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
 
 /// Displays external information about a course
 
@@ -94,4 +94,4 @@
 
     echo $OUTPUT->footer();
 
-?>
+
index 040f1f7..e01aacb 100644 (file)
@@ -36,7 +36,7 @@ if (!confirm_sesskey()) {
 
 if (strpos($jump, $CFG->wwwroot) === 0) {            // Anything on this site
     redirect(new moodle_url(urldecode($jump)));
-} else if (preg_match('/^[a-z]+\.php\?/', $jump)) { 
+} else if (preg_match('/^[a-z]+\.php\?/', $jump)) {
     redirect(new moodle_url(urldecode($jump)));
 }
 
@@ -44,4 +44,3 @@ if(isset($_SERVER['HTTP_REFERER'])) {
     redirect(new moodle_url($_SERVER['HTTP_REFERER']));   // Return to sender, just in case
 }
 
-?>
\ No newline at end of file
index 44eaf7f..f599fcf 100644 (file)
@@ -406,7 +406,7 @@ function print_log($course, $user=0, $date=0, $order="l.time ASC", $page=0, $per
         echo "<td class=\"cell c2\">\n";
         $link = html_link::make("/iplookup/index.php?ip=$log->ip&user=$log->userid", $log->ip);
         $link->add_action(new popup_action('click', $link->url, 'iplookup', array('height' => 440, 'width' => 700)));
-        echo $OUTPUT->link($link);                    
+        echo $OUTPUT->link($link);
         echo "</td>\n";
         $fullname = fullname($log, has_capability('moodle/site:viewfullnames', get_context_instance(CONTEXT_COURSE, $course->id)));
         echo "<td class=\"cell c3\">\n";
@@ -419,7 +419,7 @@ function print_log($course, $user=0, $date=0, $order="l.time ASC", $page=0, $per
         } else {
             $link = html_link::make(make_log_url($log->module,$log->url), $displayaction);
             $link->add_action(new popup_action('click', $link->url, 'fromloglive'), array('height' => 440, 'width' => 700));
-            echo $OUTPUT->link($link);                    
+            echo $OUTPUT->link($link);
         }
         echo "</td>\n";;
         echo "<td class=\"cell c5\">{$log->info}</td>\n";
@@ -518,7 +518,7 @@ function print_mnet_log($hostid, $course, $user=0, $date=0, $order="l.time ASC",
         echo "<td class=\"r$row c2\" >\n";
         $link = html_link::make("/iplookup/index.php?ip=$log->ip&user=$log->userid", $log->ip);
         $link->add_action(new popup_action('click', $link->url, 'iplookup', array('height' => 400, 'width' => 700)));
-        echo $OUTPUT->link($link);                    
+        echo $OUTPUT->link($link);
         echo "</td>\n";
         $fullname = fullname($log, has_capability('moodle/site:viewfullnames', get_context_instance(CONTEXT_COURSE, $course->id)));
         echo "<td class=\"r$row c3\" >\n";
@@ -1655,14 +1655,14 @@ function print_section_add_menus($course, $section, $modnames, $vertical=false,
     if (!empty($resources)) {
         $select = html_select::make_popup_form($popupurl, 'add', $resources, "ressection$section", null);
         $select->nothinglabel = $straddresource;
-        $select->set_help_icon('resource/types', $straddresource); 
+        $select->set_help_icon('resource/types', $straddresource);
         $output .= $OUTPUT->select($select);
     }
 
     if (!empty($activities)) {
         $select = html_select::make_popup_form($popupurl, 'add', $activities, "section$section", null);
         $select->nothinglabel = $straddactivity;
-        $select->set_help_icon('mods', $straddactivity); 
+        $select->set_help_icon('mods', $straddactivity);
         $output .= $OUTPUT->select($select);
     }
 
@@ -2010,7 +2010,7 @@ function print_category_info($category, $depth, $showcourses = false) {
                     $link = html_link::make('/course/info.php?id='.$course->id, '<img alt="'.$strsummary.'" src="'.$OUTPUT->old_icon_url('i/info') . '" />');
                     $link->add_action(new popup_action('click', $link->url, 'courseinfo', array('height' => 400, 'width' => 500)));
                     $link->title = $strsummary;
-                    echo $OUTPUT->link($link);                    
+                    echo $OUTPUT->link($link);
                 } else {
                     echo '<img alt="" style="width:18px;height:16px;" src="'.$OUTPUT->old_icon_url('spacer') . '" />';
                 }
@@ -3700,7 +3700,7 @@ class course_request {
         // Notify the admin if required.
         if ($CFG->courserequestnotify) {
             $users = get_users_from_config($CFG->courserequestnotify, 'moodle/site:approvecourse');
-            
+
             $a = new stdClass;
             $a->link = "$CFG->wwwroot/course/pending.php";
             $a->user = fullname($USER);
index 6303311..8a0e7a9 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
       // Allows a teacher/admin to login as another user (in stealth mode)
 
     require_once('../config.php');
@@ -80,4 +80,4 @@
     notice($strloggedinas, "$CFG->wwwroot/course/view.php?id=$course->id");
 
 
-?>
+
index d4349c6..2233f0b 100644 (file)
@@ -324,4 +324,4 @@ if ((!empty($movetosection) or !empty($moveto)) and confirm_sesskey()) {
     print_error('unknowaction');
 }
 
-?>
+
index c1dcbaa..ebc5294 100644 (file)
             $currenttab = 'update';
             require($CFG->dirroot.'/'.$CFG->admin.'/roles/tabs.php');
         }
-        
+
         $helpicon = new moodle_help_icon();
         $helpicon->page = 'mods';
         $helpicon->text = $pageheading;
         $helpicon->module = $module->name;
         echo $OUTPUT->heading_with_help($helpicon, $OUTPUT->mod_icon_url('icon', $module->name));
-        
+
         $mform->display();
-        
+
         echo $OUTPUT->footer();
     }
index a2dae5d..fb8f3b7 100644 (file)
@@ -1,4 +1,4 @@
-<?php  //$Id$
+<?php
 require_once ($CFG->libdir.'/formslib.php');
 if (!empty($CFG->enablecompletion) or !empty($CFG->enableavailability)) {
     require_once($CFG->libdir.'/completionlib.php');
@@ -59,7 +59,7 @@ abstract class moodleform_mod extends moodleform {
         } else {
             $this->context = get_context_instance(CONTEXT_COURSE, $course->id);
         }
-        
+
         // Guess module name
         $matches = array();
         if (!preg_match('/^mod_([^_]+)_mod_form$/', get_class($this), $matches)) {
@@ -198,10 +198,10 @@ abstract class moodleform_mod extends moodleform {
                             get_string('completedwarningtext', 'completion', $completedcount)),
                         'unlockcompletion');
                     $mform->setHelpButton('completedwarning', array('completionlocked', get_string('help_completionlocked', 'completion'), 'completion'));
-                            
+
                     $freeze = true;
                 }
-            } 
+            }
 
             if ($freeze) {
                 $mform->freeze('completion');
@@ -212,7 +212,7 @@ abstract class moodleform_mod extends moodleform {
                     $mform->freeze('completionusegrade');
                 }
                 $mform->freeze($this->_customcompletionelements);
-            } 
+            }
         }
 
         // Availability conditions
@@ -273,7 +273,7 @@ abstract class moodleform_mod extends moodleform {
                 $errors['cmidnumber'] = get_string('idnumbertaken');
             }
         }
-        
+
         // Completion: Don't let them choose automatic completion without turning
         // on some conditions
         if (array_key_exists('completion', $data) && $data['completion']==COMPLETION_TRACKING_AUTOMATIC) {
@@ -284,12 +284,12 @@ abstract class moodleform_mod extends moodleform {
         }
 
         // Conditions: Don't let them set dates which make no sense
-        if (array_key_exists('availablefrom', $data) && 
-            $data['availablefrom'] && $data['availableuntil'] && 
+        if (array_key_exists('availablefrom', $data) &&
+            $data['availablefrom'] && $data['availableuntil'] &&
             $data['availablefrom'] > $data['availableuntil']) {
             $errors['availablefrom'] = get_string('badavailabledates', 'condition');
         }
-        
+
         return $errors;
     }
 
@@ -305,7 +305,7 @@ abstract class moodleform_mod extends moodleform {
             $default_values = (array)$default_values;
         }
 
-        $this->data_preprocessing($default_values);        
+        $this->data_preprocessing($default_values);
         parent::set_data($default_values);
     }
 
@@ -401,14 +401,14 @@ abstract class moodleform_mod extends moodleform {
             $grouparray[] =& $mform->createElement('static', '', '','% '.get_string('grade_upto','condition').' ');
             $grouparray[] =& $mform->createElement('text', 'conditiongrademax','',array('size'=>3));
             $grouparray[] =& $mform->createElement('static', '', '','%');
-            $mform->setType('conditiongrademin',PARAM_FLOAT);            
-            $mform->setType('conditiongrademax',PARAM_FLOAT);            
-            $group = $mform->createElement('group','conditiongradegroup', 
+            $mform->setType('conditiongrademin',PARAM_FLOAT);
+            $mform->setType('conditiongrademax',PARAM_FLOAT);
+            $group = $mform->createElement('group','conditiongradegroup',
                 get_string('gradecondition', 'condition'),$grouparray);
 
             // Get version with condition info and store it so we don't ask
             // twice
-            if(!empty($this->_cm)) {           
+            if(!empty($this->_cm)) {
                 $ci = new condition_info($this->_cm, CONDITION_MISSING_EXTRATABLE);
                 $this->_cm = $ci->get_full_course_module();
                 $count = count($this->_cm->conditionsgrade)+1;
@@ -442,10 +442,10 @@ abstract class moodleform_mod extends moodleform {
                     COMPLETION_COMPLETE_PASS=>get_string('completion_pass','condition'),
                     COMPLETION_COMPLETE_FAIL=>get_string('completion_fail','condition'));
 
-                $grouparray = array();        
+                $grouparray = array();
                 $grouparray[] =& $mform->createElement('select','conditionsourcecmid','',$completionoptions);
                 $grouparray[] =& $mform->createElement('select','conditionrequiredcompletion','',$completionvalues);
-                $group = $mform->createElement('group','conditioncompletiongroup', 
+                $group = $mform->createElement('group','conditioncompletiongroup',
                     get_string('completioncondition', 'condition'),$grouparray);
 
                 $count = empty($this->_cm) ? 1 : count($this->_cm->conditionscompletion)+1;
@@ -455,15 +455,15 @@ abstract class moodleform_mod extends moodleform {
                 $mform->setHelpButton('conditioncompletiongroup[0]', array('completioncondition', get_string('help_completioncondition', 'condition'), 'condition'));
             }
 
-            // Do we display availability info to students?        
-            $mform->addElement('select', 'showavailability', get_string('showavailability', 'condition'), 
-                    array(CONDITION_STUDENTVIEW_SHOW=>get_string('showavailability_show', 'condition'), 
+            // Do we display availability info to students?
+            $mform->addElement('select', 'showavailability', get_string('showavailability', 'condition'),
+                    array(CONDITION_STUDENTVIEW_SHOW=>get_string('showavailability_show', 'condition'),
                     CONDITION_STUDENTVIEW_HIDE=>get_string('showavailability_hide', 'condition')));
-            $mform->setDefault('showavailability', CONDITION_STUDENTVIEW_SHOW);                
+            $mform->setDefault('showavailability', CONDITION_STUDENTVIEW_SHOW);
             $mform->setHelpButton('showavailability', array('showavailability', get_string('help_showavailability', 'condition'), 'condition'));
         }
 
-        // Conditional activities: completion tracking section 
+        // Conditional activities: completion tracking section
         if(!isset($completion)) {
             $completion = new completion_info($COURSE);
         }
@@ -477,8 +477,8 @@ abstract class moodleform_mod extends moodleform {
             $mform->addElement('hidden', 'completionunlocked', 0);
             $mform->setType('completionunlocked', PARAM_INT);
 
-            $mform->addElement('select', 'completion', get_string('completion', 'completion'), 
-                array(COMPLETION_TRACKING_NONE=>get_string('completion_none', 'completion'), 
+            $mform->addElement('select', 'completion', get_string('completion', 'completion'),
+                array(COMPLETION_TRACKING_NONE=>get_string('completion_none', 'completion'),
                 COMPLETION_TRACKING_MANUAL=>get_string('completion_manual', 'completion')));
             $mform->setHelpButton('completion', array('completion', get_string('help_completion', 'completion'), 'completion'));
             $mform->setDefault('completion', $this->_features->defaultcompletion
@@ -507,7 +507,7 @@ abstract class moodleform_mod extends moodleform {
             // Automatic completion according to module-specific rules
             $this->_customcompletionelements = $this->add_completion_rules();
             foreach ($this->_customcompletionelements as $element) {
-                $mform->disabledIf($element, 'completion', 'ne', COMPLETION_TRACKING_AUTOMATIC);                
+                $mform->disabledIf($element, 'completion', 'ne', COMPLETION_TRACKING_AUTOMATIC);
             }
 
             $gotcompletionoptions = $gotcompletionoptions ||
@@ -518,17 +518,17 @@ abstract class moodleform_mod extends moodleform {
                 $mform->getElement('completion')->addOption(
                     get_string('completion_automatic', 'completion'),
                     COMPLETION_TRACKING_AUTOMATIC);
-            } 
+            }
 
             // Completion expected at particular date? (For progress tracking)
             $mform->addElement('date_selector', 'completionexpected', get_string('completionexpected', 'completion'), array('optional'=>true));
             $mform->setHelpButton('completionexpected', array('completionexpected', get_string('help_completionexpected', 'completion'), 'completion'));
-            $mform->disabledIf('completionexpected', 'completion', 'eq', COMPLETION_TRACKING_NONE);    
+            $mform->disabledIf('completionexpected', 'completion', 'eq', COMPLETION_TRACKING_NONE);
         }
 
         $this->standard_hidden_coursemodule_elements();
     }
-    
+
     /**
      * Can be overridden to add custom completion rules if the module wishes
      * them. If overriding this, you should also override completion_rule_enabled.
@@ -640,4 +640,4 @@ abstract class moodleform_mod extends moodleform {
     }
 }
 
-?>
+
index f931f4e..3fc067a 100644 (file)
@@ -111,10 +111,10 @@ if (empty($pending)) {
     $keyicon->alt = $strrequireskey;
     $keyicon->add_class('icon');
     $keyicon = $OUTPUT->image($keyicon);
-    
+
     foreach ($pending as $course) {
         $course = new course_request($course);
-        
+
         // Check here for shortname collisions and warn about them.
         $course->check_shortname_collision();
 
index 2c0ab50..dc0dc54 100644 (file)
@@ -304,4 +304,3 @@ function compare_activities_by_time_asc($a, $b) {
     return ($a->timestamp < $b->timestamp) ? -1 : 1;
 }
 
-?>
\ No newline at end of file
index 12723eb..d90048a 100644 (file)
@@ -56,7 +56,7 @@ class recent_form extends moodleform {
             } else {
                 $groups = '';
             }
-            
+
             if ($courseusers = get_users_by_capability($context, 'moodle/course:view', 'u.id, u.firstname, u.lastname', 'lastname ASC, firstname DESC', '', '', $groups)) {
                 foreach ($courseusers as $courseuser) {
                     $options[$courseuser->id] = fullname($courseuser, $viewfullnames);
index ad8711b..510ecb0 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
       // Display all the interfaces for importing data into a specific course
 
     require_once('../config.php');
@@ -40,4 +40,4 @@
     }
 
     echo $OUTPUT->footer();
-?>
+
index cac7b0e..43e741a 100644 (file)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
@@ -65,4 +65,4 @@ $coursereport_log_capabilities = array(
     )
 );
 
-?>
+
index 59a9cd3..eb72edd 100644 (file)
@@ -212,4 +212,3 @@ switch ($type) {
    break;
 }
 
-?>
\ No newline at end of file
index 2809042..7ca593c 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
       // Displays different views of the logs.
 
     require_once('../../../config.php');
     echo $OUTPUT->footer();
 
     exit;
-?>
+
index 63fa964..abfed36 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
       // Display link to live logs in separate window
 
     require_once('../../../config.php');
@@ -37,9 +37,9 @@
     echo $OUTPUT->container_start('info');
     $link = html_link::make('/course/report/log/live.php?id='. $course->id, get_string('livelogs'));
     $link->add_action(new popup_action('click', $link->url, 'livelog', array('height' => 500, 'width' => 800)));
-    echo $OUTPUT->link($link);                    
+    echo $OUTPUT->link($link);
     echo $OUTPUT->container_end();
 
     echo $OUTPUT->footer();
 
-?>
+
index 80cf0b6..c430168 100644 (file)
@@ -28,7 +28,7 @@ function print_mnet_log_selector_form($hostid, $course, $selecteduser=0, $select
 
     global $USER, $CFG, $SITE, $DB, $OUTPUT, $SESSION;
     require_once $CFG->dirroot.'/mnet/peer.php';
-    
+
     $mnet_peer = new mnet_peer();
     $mnet_peer->set_id($hostid);
 
@@ -41,9 +41,9 @@ function print_mnet_log_selector_form($hostid, $course, $selecteduser=0, $select
     if ($numcourses < COURSE_MAX_COURSES_PER_DROPDOWN && !$showcourses) {
         $showcourses = 1;
     }
-    
+
     $sitecontext = get_context_instance(CONTEXT_SYSTEM);
-    
+
     // Context for remote data is always SITE
     // Groups for remote data are always OFF
     if ($hostid == $CFG->mnet_localhost_id) {
@@ -254,7 +254,7 @@ function print_mnet_log_selector_form($hostid, $course, $selecteduser=0, $select
     echo "<input type=\"hidden\" name=\"showusers\" value=\"$showusers\" />\n";
     echo "<input type=\"hidden\" name=\"showcourses\" value=\"$showcourses\" />\n";
     if (has_capability('coursereport/log:view', $sitecontext) && $showcourses) {
-        $cid = empty($course->id)? '1' : $course->id; 
+        $cid = empty($course->id)? '1' : $course->id;
         $select = html_select::make($dropdown, "host_course", $hostid.'/'.$cid);
         $select->nested = true;
         echo $OUTPUT->select($select);
@@ -299,16 +299,16 @@ function print_mnet_log_selector_form($hostid, $course, $selecteduser=0, $select
             ."&id=$course->id&date=$selecteddate&modid=$selectedactivity&showusers=1&showcourses=$showcourses";
         print_string('logtoomanyusers','moodle',$a);
     }
-    
+
     echo $OUTPUT->select(html_select::make($dates, "date", $selecteddate, get_string("alldays")));
-    
+
     $select = html_select::make($activities, "modid", $selectedactivity);
     $select->nothinglabel = get_string("allactivities");
     $select->nothingvalue = '';
     echo $OUTPUT->select($select);
-    
+
     echo $OUTPUT->select(html_select::make($actions, 'modaction', $modaction, get_string("allactions")));
-    
+
     $logformats = array('showashtml' => get_string('displayonpage'),
                         'downloadascsv' => get_string('downloadtext'),
                         'downloadasods' => get_string('downloadods'),
@@ -329,10 +329,10 @@ function print_log_selector_form($course, $selecteduser=0, $selecteddate='today'
     if ($numcourses < COURSE_MAX_COURSES_PER_DROPDOWN && !$showcourses) {
         $showcourses = 1;
     }
-    
+
     $sitecontext = get_context_instance(CONTEXT_SYSTEM);
     $context = get_context_instance(CONTEXT_COURSE, $course->id);
-   
+
     /// Setup for group handling.
     if ($course->groupmode == SEPARATEGROUPS and !has_capability('moodle/site:accessallgroups', $context)) {
         $selectedgroup = -1;
@@ -367,7 +367,7 @@ function print_log_selector_form($course, $selecteduser=0, $selecteddate='today'
         // this may be a lot of users :-(
         $courseusers = $DB->get_records('user', array('deleted'=>0), 'lastaccess DESC', 'id, firstname, lastname, idnumber');
     }
-   
+
     if (count($courseusers) < COURSE_MAX_USERS_PER_DROPDOWN && !$showusers) {
         $showusers = 1;
     }
@@ -530,19 +530,19 @@ function print_log_selector_form($course, $selecteduser=0, $selecteddate='today'
         print_string('logtoomanyusers','moodle',$a);
     }
     echo $OUTPUT->select(html_select::make($dates, "date", $selecteddate, get_string("alldays")));
-    
+
     $select = html_select::make($activities, "modid", $selectedactivity);
     $select->nothinglabel = get_string("allactivities");
     $select->nothingvalue = '';
     echo $OUTPUT->select($select);
-    
+
     echo $OUTPUT->select(html_select::make($actions, 'modaction', $modaction, get_string("allactions")));
-    
+
     $logformats = array('showashtml' => get_string('displayonpage'),
                         'downloadascsv' => get_string('downloadtext'),
                         'downloadasods' => get_string('downloadods'),
                         'downloadasexcel' => get_string('downloadexcel'));
-    
+
     echo $OUTPUT->select(html_select::make($logformats, 'logformat', $logformat, false));
     echo '<input type="submit" value="'.get_string('gettheselogs').'" />';
     echo '</div>';
index 9ed7d5f..f59b1a6 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
       //  Displays live view of recent logs
 
     require_once("../../../config.php");
     $context = get_context_instance(CONTEXT_COURSE, $course->id);
     require_capability('coursereport/log:viewlive', $context);
 
-    add_to_log($course->id, "course", "report live", "report/log/live.php?id=$course->id", $course->id); 
+    add_to_log($course->id, "course", "report live", "report/log/live.php?id=$course->id", $course->id);
 
     session_get_instance()->write_close();
 
     // we override the default framename so header/footer
-    // links open in a new window 
+    // links open in a new window
     if (empty($CFG->framename) || $CFG->framename==='_top') {
         $CFG->framename = '_blank';
     }
@@ -46,4 +46,4 @@
 
     exit;
 
-?>
+
index f949ace..bd38f79 100644 (file)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
     if (!defined('MOODLE_INTERNAL')) {
         die('Direct access to this script is forbidden.');    ///  It must be included from a Moodle page
@@ -18,7 +18,7 @@
         echo '<p>';
         $link = html_link::make('/course/report/log/live.php?id='. $course->id, get_string('livelogs'));
         $link->add_action(new popup_action('click', $link->url, 'livelog', array('height' => 500, 'width' => 800)));
-        echo $OUTPUT->link($link);                    
+        echo $OUTPUT->link($link);
         echo '</p>';
     }
-?>
+
index 7aa04cf..4c0cf26 100644 (file)
@@ -1,4 +1,4 @@
-<?PHP // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
@@ -26,4 +26,4 @@
 $plugin->version  = 2007101504;
 $plugin->requires = 2007101532;
 
-?>
+
index 05cfadc..81a7523 100644 (file)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
@@ -39,4 +39,4 @@ $coursereport_outline_capabilities = array(
     )
 );
 
-?>
+
index 19ba73e..8b1821e 100644 (file)
     echo $OUTPUT->footer();
 
 
-?>
+
index 1caf681..22a5b66 100644 (file)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
     if (!defined('MOODLE_INTERNAL')) {
         die('Direct access to this script is forbidden.');    ///  It must be included from a Moodle page
@@ -11,4 +11,3 @@
         echo "$activityreport</a>\n";
         echo '</p>';
     }
-?>
\ No newline at end of file
index 5892742..de2beeb 100644 (file)
@@ -1,4 +1,4 @@
-<?PHP // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
@@ -26,4 +26,4 @@
 $plugin->version  = 2007101501;
 $plugin->requires = 2007101532;
 
-?>
+
index 420f633..d90bc72 100644 (file)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
@@ -39,4 +39,4 @@ $coursereport_participation_capabilities = array(
     )
 );
 
-?>
+
index a9db751..6395dc5 100644 (file)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
     require_once('../../../config.php');
     require_once($CFG->dirroot.'/lib/tablelib.php');
@@ -13,7 +13,7 @@
     $action     = optional_param('action', '', PARAM_ALPHA);
     $page       = optional_param('page', 0, PARAM_INT);                     // which page to show
     $perpage    = optional_param('perpage', DEFAULT_PAGE_SIZE, PARAM_INT);  // how many per page
-    
+
     $PAGE->set_url('course/report/participation/index.php', compact('id', 'roleid', 'instanceid', 'timefrom', 'page', 'perpage'));
 
     if ($action != 'view' and $action != 'post') {
         }
 
         list($actionsql, $params) = $DB->get_in_or_equal($actions, SQL_PARAMS_NAMED, 'action0');
-        $actionsql = "l.action $actionsql"; 
+        $actionsql = "l.action $actionsql";
 
         $relatedcontexts = get_related_contexts_string($context);
 
 
     echo $OUTPUT->footer();
 
-?>
+
index 3842814..5c1fbff 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
 
     if (!defined('MOODLE_INTERNAL')) {
         die('Direct access to this script is forbidden.');    ///  It must be included from a Moodle page
@@ -11,4 +11,4 @@
         echo "$participationreport</a>\n";
         echo '</p>';
     }
-?>
+
index 5892742..de2beeb 100644 (file)
@@ -1,4 +1,4 @@
-<?PHP // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
@@ -26,4 +26,4 @@
 $plugin->version  = 2007101501;
 $plugin->requires = 2007101532;
 
-?>
+
index da27d3f..dbb4390 100644 (file)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
@@ -39,4 +39,4 @@ $coursereport_progress_capabilities = array(
     )
 );
 
-?>
+
index 09286a8..8c9bc94 100644 (file)
@@ -291,4 +291,4 @@ print '<ul class="progress-actions"><li><a href="index.php?course='.$course->id.
     get_string('excelcsvdownload','completion').'</a></li></ul>';
 
 echo $OUTPUT->footer();
-?>
+
index a2428a2..e8bbadc 100644 (file)
@@ -1,4 +1,4 @@
-<?php  //$Id$
+<?php
 
     if (!defined('MOODLE_INTERNAL')) {
         die('Direct access to this script is forbidden.'); // It must be included from a Moodle page
@@ -12,4 +12,4 @@
             echo '</p>';
         }
     }
-?>
+
index 1c0a40e..41dbfbe 100644 (file)
@@ -3,7 +3,7 @@ var SVGNS='http://www.w3.org/2000/svg',XLINKNS='http://www.w3.org/1999/xlink';
 function textrotate_make_svg(el)
 {
   var string=el.firstChild.nodeValue;
-  
+
   // Add absolute-positioned string (to measure length)
   var abs=document.createElement('div');
   abs.appendChild(document.createTextNode(string));
@@ -18,7 +18,7 @@ function textrotate_make_svg(el)
   var width=(textHeight*9)/8;
   svg.setAttribute('width',width);
   svg.setAttribute('height',textWidth+20);
-  
+
   // Add text
   var text=document.createElementNS(SVGNS,'text');
   svg.appendChild(text);
@@ -27,7 +27,7 @@ function textrotate_make_svg(el)
   text.setAttribute('text-anchor','end');
   text.setAttribute('transform','rotate(90)');
   text.appendChild(document.createTextNode(string));
-  
+
   // Is there an icon near the text?
   var icon=el.parentNode.firstChild;
   if(icon.nodeName.toLowerCase()=='img') {
@@ -41,7 +41,7 @@ function textrotate_make_svg(el)
     image.setAttribute('height',16);
     image.setAttributeNS(XLINKNS,'href',icon.src);
     svg.appendChild(image);
-  }  
+  }
 
   // Replace original content with this new SVG
   el.parentNode.insertBefore(svg,el);
@@ -59,7 +59,7 @@ function textrotate_init() {
 
   elements=YAHOO.util.Dom.getElementsByClassName('completion-expected', 'div');
   for(var i=0;i<elements.length;i++)
-  {    
+  {
     var el=elements[i];
     el.style.display='inline';
     var parent=el.parentNode;
@@ -81,5 +81,5 @@ function textrotate_init() {
   }
 }
 
-YAHOO.util.Event.onDOMReady(textrotate_init); 
+YAHOO.util.Event.onDOMReady(textrotate_init);
 
index c62920f..1424557 100644 (file)
@@ -1,4 +1,4 @@
-<?PHP // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
@@ -26,4 +26,4 @@
 $plugin->version  = 2007101500;
 $plugin->requires = 2007101532;
 
-?>
+
index 573b38b..29dbd79 100644 (file)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
@@ -39,4 +39,4 @@ $coursereport_stats_capabilities = array(
     )
 );
 
-?>
+
index 8a5796c..d5da0b1 100644 (file)
@@ -181,4 +181,3 @@ if (empty($param->crosstab)) {
 
 $graph->draw_stack();
 
-?>
\ No newline at end of file
index 642c72f..6ff293a 100644 (file)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
     require_once('../../../config.php');
     require_once($CFG->dirroot.'/lib/statslib.php');
@@ -71,4 +71,4 @@
 
     echo $OUTPUT->footer();
 
-?>
+
index e1257b4..1f70b7a 100644 (file)
@@ -1,4 +1,4 @@
-<?php  //$Id$
+<?php
 
     if (!defined('MOODLE_INTERNAL')) {
         die('Direct access to this script is forbidden.');    ///  It must be included from a Moodle page
@@ -15,4 +15,4 @@
             echo '</p>';
         }
     }
-?>
+
index 53a9a2c..4be01a4 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
 
     if (!defined('MOODLE_INTERNAL')) {
         die('Direct access to this script is forbidden.');    ///  It must be included from a Moodle page
         }
     }
 
-?>
+
index 5892742..de2beeb 100644 (file)
@@ -1,4 +1,4 @@
-<?PHP // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
@@ -26,4 +26,4 @@
 $plugin->version  = 2007101501;
 $plugin->requires = 2007101532;
 
-?>
+
index 518b7d6..5a3d886 100644 (file)
@@ -55,7 +55,7 @@ $PAGE->set_heading($strtitle);
 if ($requestform->is_cancelled()){
     redirect($returnurl);
 
-} else if ($data = $requestform->get_data()) {    
+} else if ($data = $requestform->get_data()) {
     $request = course_request::create($data);
 
     // and redirect back to the course listing.
index 5fc5da7..604dd84 100644 (file)
@@ -141,4 +141,4 @@ class reject_request_form extends moodleform {
         $this->add_action_buttons(true, get_string('reject'));
     }
 }
-?>
+
index 56088f3..6c26bbe 100755 (executable)
@@ -103,4 +103,4 @@ echo $OUTPUT->box(get_string('resetinfo'));
 $mform->display();
 echo $OUTPUT->footer();
 
-?>
+
index 88b1979..43f9a30 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
 require_once $CFG->libdir.'/formslib.php';
 
 class course_reset_form extends moodleform {
index e1fb68a..b740707 100644 (file)
@@ -18,9 +18,9 @@
 /**
  * List of all resource type modules in course
  *
- * @package    moodlecore
+ * @package   moodlecore
  * @copyright 2009 Petr Skoda (http://skodak.org)
- * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
 require_once('../config.php');
index d8e5e16..7f072e7 100644 (file)
@@ -212,4 +212,4 @@ switch($requestmethod) {
         break;
 }
 
-?>
+
index 38139bd..afbae3f 100644 (file)
@@ -134,4 +134,3 @@ if ($scales = $DB->get_records("scale", array("courseid"=>0), "name ASC")) {
 echo $OUTPUT->close_window_button();
 echo $OUTPUT->footer();
 
-?>
\ No newline at end of file
index 763fed0..38bedc5 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
 
 /// Displays external information about a course
 
@@ -14,7 +14,7 @@
     $show      = optional_param('show', 0, PARAM_INT);
     $blocklist = optional_param('blocklist', 0, PARAM_INT);
     $modulelist= optional_param('modulelist', '', PARAM_ALPHAEXT);
-    
+
     $PAGE->set_url('course/search.php', compact('search', 'page', 'perpage', 'blocklist', 'modulelist', 'edit'));
     $PAGE->set_context(get_context_instance(CONTEXT_SYSTEM));
     $search = trim(strip_tags($search)); // trim & clean raw searched string
 
             $form = new html_form();
             $form->url = new moodle_url("$CFG->wwwroot/course/search.php", array(
-                    'edit' => $edit, 
+                    'edit' => $edit,
                     'sesskey' => sesskey(),
                     'search' => s($search, true),
                     'page' => $page,
         }
     }
 
-?>
+
index 1758e58..497ce1e 100644 (file)
@@ -74,7 +74,7 @@ class course_external_test extends UnitTestCase {
         $course->shortname = "TestCourseForCourse";
         $course->idnumber = 123456789;
         $course = create_course($course);
-        $this->course = $course; 
+        $this->course = $course;
 
     }
 
@@ -314,7 +314,7 @@ class course_external_test extends UnitTestCase {
         $course["id"] = $this->course->id;
         $params[] = $course;
         $activities = course_external::get_course_modules($params);
-        
+
         $activities = course_external::get_course_activities($params);
         varlog($activities);
         chat_delete_instance($chatid);
@@ -331,4 +331,4 @@ class course_external_test extends UnitTestCase {
     }
 */
 }
-?>
+
index 3afb478..2104d84 100755 (executable)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
 
 ///////////////////////////////////////////////////////////////////////////
 //                                                                       //
index 739704d..0313163 100644 (file)
@@ -83,4 +83,3 @@ if ($returnurl===false) {
 }
 redirect($returnurl);
 
-?>
\ No newline at end of file
index 5a72f5f..31f7462 100644 (file)
@@ -81,4 +81,3 @@ if($fromajax) {
     redirect($backto);
 }
 
-?>
\ No newline at end of file
index 04453d3..95aa9c9 100644 (file)
@@ -121,4 +121,3 @@ if ($userid) {
 
 echo $OUTPUT->footer();
 
-?>
\ No newline at end of file
index 81c453c..bc89ef0 100644 (file)
@@ -390,4 +390,3 @@ function print_outline_row($mod, $instance, $result) {
     echo "</tr>";
 }
 
-?>
\ No newline at end of file
index 562f78a..7855be2 100644 (file)
@@ -1,4 +1,4 @@
-<?php // $Id$
+<?php
 
 //  Display the course home page.
 
@@ -69,7 +69,7 @@
     }
 
     //If course is hosted on an external server, redirect to corresponding
-    //url with appropriate authentication attached as parameter 
+    //url with appropriate authentication attached as parameter
     if (file_exists($CFG->dirroot .'/course/externservercourse.php')) {
         include $CFG->dirroot .'/course/externservercourse.php';
         if (function_exists('extern_server_course')) {
 
 
     // AJAX-capable course format?
-    $useajax = false; 
+    $useajax = false;
     $ajaxformatfile = $CFG->dirroot.'/course/format/'.$course->format.'/ajax.php';
     $bodytags = '';
 
     $completion = new completion_info($course);
     if ($completion->is_enabled() && ajaxenabled()) {
         $PAGE->requires->yui_lib('connection')->asap();
-        $PAGE->requires->js('course/completion.js')->asap();      
+        $PAGE->requires->js('course/completion.js')->asap();
         $PAGE->requires->js_function_call('completion_init')->on_dom_ready();
         $PAGE->requires->data_for_js('completion_strsaved', get_string('saved', 'completion'));
         $PAGE->requires->data_for_js('completion_strtitley', get_string('completion-title-manual-y', 'completion'));
         $PAGE->requires->data_for_js('completion_strtitlen', get_string('completion-title-manual-n', 'completion'));
         $PAGE->requires->data_for_js('completion_stralty', get_string('completion-alt-manual-y', 'completion'));
-        $PAGE->requires->data_for_js('completion_straltn', get_string('completion-alt-manual-n', 'completion'));        
+        $PAGE->requires->data_for_js('completion_straltn', get_string('completion-alt-manual-n', 'completion'));
     }
 
     // The "Editing On" button will be appearing only in the "main" course screen
     // Content wrapper end.
     echo "</div>\n\n";
 
-    // Use AJAX?    
+    // Use AJAX?
     if ($useajax && has_capability('moodle/course:manageactivities', $context)) {
         // At the bottom because we want to process sections and activities
         // after the relevant html has been generated. We're forced to do this
-        // because of the way in which lib/ajax/ajaxcourse.js is written.       
-    
+        // because of the way in which lib/ajax/ajaxcourse.js is written.
+
         echo '<script type="text/javascript" ';
         echo "src=\"{$CFG->wwwroot}/lib/ajax/ajaxcourse.js\"></script>\n";
         $COURSE->javascriptportal->print_javascript($course->id);
 
     echo $OUTPUT->footer();
 
-?>
+
index c0c57f5..8887b3e 100755 (executable)
@@ -1,4 +1,4 @@
-<?php  // $Id$
+<?php
 
 /// The Web service script that is called from the filepicker front end
 
index aa3fcf9..d2a5840 100644 (file)
@@ -1,53 +1,53 @@
-<?PHP // $Id$
+<?php
 
 ////////////////////////////////////////////////////////////////////////////////
-/// This file contains a few configuration variables that control 
+/// This file contains a few configuration variables that control
 /// how Moodle uses this theme.
 ////////////////////////////////////////////////////////////////////////////////
 
 
 $THEME->sheets = array('styles', 'styles_select');
 
-/// This variable is an array containing the names of all the 
+/// This variable is an array containing the names of all the
 /// stylesheet files you want included in this theme, and in what order
 ////////////////////////////////////////////////////////////////////////////////
 
 
-$THEME->standardsheets = true;  
+$THEME->standardsheets = true;
 
 /// This variable can be set to an array containing
-/// filenames from the *STANDARD* theme.  If the 
-/// array exists, it will be used to choose the 
+/// filenames from the *STANDARD* theme.  If the
+/// array exists, it will be used to choose the
 /// files to include in the standard style sheet.
 /// When false, then no files are used.
 /// When true or NON-EXISTENT, then ALL standard files are used.
-/// This parameter can be used, for example, to prevent 
+/// This parameter can be used, for example, to prevent
 /// having to override too many classes.
 /// Note that the trailing .css should not be included
 /// eg $THEME->standardsheets = array('styles_layout','styles_fonts','styles_color');
 ////////////////////////////////////////////////////////////////////////////////
 
 
-$THEME->parent = '';  
+$THEME->parent = '';
 
 /// This variable can be set to the name of a parent theme
 /// which you want to have included before the current theme.
-/// This can make it easy to make modifications to another 
+/// This can make it easy to make modifications to another
 /// theme without having to actually change the files
-/// If this variable is empty or false then a parent theme 
+/// If this variable is empty or false then a parent theme
 /// is not used.
 ////////////////////////////////////////////////////////////////////////////////
 
 
-$THEME->parentsheets = false;  
+$THEME->parentsheets = false;
 
 /// This variable can be set to an array containing
-/// filenames from a chosen *PARENT* theme.  If the 
-/// array exists, it will be used to choose the 
+/// filenames from a chosen *PARENT* theme.  If the
+/// array exists, it will be used to choose the
 /// files to include in the standard style sheet.
 /// When false, then no files are used.
 /// When true or NON-EXISTENT, then ALL standard files are used.
-/// This parameter can be used, for example, to prevent 
+/// This parameter can be used, for example, to prevent
 /// having to override too many classes.
 /// Note that the trailing .css should not be included
 /// eg $THEME->parentsheets = array('styles_layout','styles_fonts','styles_color');
@@ -61,23 +61,23 @@ $THEME->pluginsheets = array('mod', 'block', 'format', 'gradereport');
 
 $THEME->metainclude = false;
 
-/// When this is enabled (or not set!) then Moodle will try 
-/// to include a file meta.php from this theme into the 
+/// When this is enabled (or not set!) then Moodle will try
+/// to include a file meta.php from this theme into the
 /// <head></head> part of the page.
 
 
 $THEME->standardmetainclude = true;
 
 
-/// When this is enabled (or not set!) then Moodle will try 
-/// to include a file meta.php from the standard theme into the 
+/// When this is enabled (or not set!) then Moodle will try
+/// to include a file meta.php from the standard theme into the
 /// <head></head> part of the page.
 
 
 $THEME->parentmetainclude = false;
 
-/// When this is enabled (or not set!) then Moodle will try 
-/// to include a file meta.php from the parent theme into the 
+/// When this is enabled (or not set!) then Moodle will try
+/// to include a file meta.php from the parent theme into the
 /// <head></head> part of the page.
 
 
@@ -88,7 +88,7 @@ $THEME->block_r_max_width = 200;
 
 $THEME->navmenuwidth = 50;
 
-/// You can use this to control the cutoff point for strings 
+/// You can use this to control the cutoff point for strings
 /// in the navmenus (list of activities in popup menu etc)
 /// Default is 50 characters wide.
 
@@ -97,22 +97,22 @@ $THEME->makenavmenulist = false;
 
 /// By setting this to true, then you will have access to a
 /// new variable in your header.html and footer.html called
-/// $navmenulist ... this contains a simple XHTML menu of 
-/// all activities in the current course, mostly useful for 
+/// $navmenulist ... this contains a simple XHTML menu of
+/// all activities in the current course, mostly useful for
 /// creating popup navigation menus and so on.
 
 
 
-$THEME->resource_mp3player_colors = 
+$THEME->resource_mp3player_colors =
  'bgColour=000000&btnColour=ffffff&btnBorderColour=cccccc&iconColour=000000&'.
  'iconOverColour=00cc00&trackColour=cccccc&handleColour=ffffff&loaderColour=ffffff&'.
  'font=Arial&fontColour=3333FF&buffer=10&waitForPlay=no&autoPlay=yes';
 
-/// With this you can control the colours of the "big" MP3 player 
+/// With this you can control the colours of the "big" MP3 player
 /// that is used for MP3 resources.
 
 
-$THEME->filter_mediaplugin_colors = 
+$THEME->filter_mediaplugin_colors =
  'bgColour=000000&btnColour=ffffff&btnBorderColour=cccccc&iconColour=000000&'.
  'iconOverColour=00cc00&trackColour=cccccc&handleColour=ffffff&loaderColour=ffffff&'.
  'waitForPlay=yes';
@@ -122,10 +122,10 @@ $THEME->filter_mediaplugin_colors =
 
 $THEME->custompix = false;
 
-/// If true, then this theme must have a "pix" 
-/// subdirectory that contains copies of all 
+/// If true, then this theme must have a "pix"
+/// subdirectory that contains copies of all
 /// files from the moodle/pix directory, plus a
-/// "pix/mod" directory containing all the icons 
+/// "pix/mod" directory containing all the icons
 /// for all the activity modules.
 
 
@@ -134,7 +134,7 @@ $THEME->custompix = false;
 ///$CFG->block_search_button = link_arrow_right(get_string('search'), $url='', $accesshide=true);
 ///
 /// Accessibility: Right and left arrow-like characters are
-/// used in the breadcrumb trail, course navigation menu 
+/// used in the breadcrumb trail, course navigation menu
 /// (previous/next activity), calendar, and search forum block.
 ///
 /// If the theme does not set characters, appropriate defaults
@@ -143,4 +143,4 @@ $THEME->custompix = false;
 /// use &lt; &gt; &raquo; - these are confusing for blind users.
 ////////////////////////////////////////////////////////////////////////////////
 
-?>
+
index 153cbfe..2f9d6f9 100644 (file)
@@ -10,7 +10,7 @@
     <div id="footer-l">
         <div id="footer-r">
             <div id="footer-m" class="clearfix">
-    
+
                 <div id="footer-logo">
                     <a href="http://moodle.org" target="_blank"><img src="<?php echo $CFG->themewww .'/'. current_theme() ?>/images/logo.jpg" title="Moodle <?php echo $CFG->release ?>" /></a>
                 </div>
@@ -22,7 +22,7 @@
                 <div id="footer-loggedinas">
                     <?php echo $loggedinas; ?>
                 </div>
-            
+
             </div>
         </div>
     </div>
 <script type="text/javascript" charset="utf-8">
 /* <![CDATA[ */
     var CSSClass={};CSSClass.is=function(e,c){if(typeof e=="string")e=document.getElementById(e);var classes=e.className;if(!classes)return false;if(classes==c)return true;return e.className.search("\\b"+c+"\\b")!=-1;};CSSClass.add=function(e,c){if(typeof e=="string")e=document.getElementById(e);if(CSSClass.is(e,c))return;if(e.className)c=" "+c;e.className+=c;};CSSClass.remove=function(e,c){if(typeof e=="string")e=document.getElementById(e);e.className=e.className.replace(new RegExp("\\b"+c+"\\b\\s*","g"),"");};
-    
+
     var jsscript = {
-        
+
         corrections: function () {
-            
+
             // check for layouttabel and add haslayouttable class to body
             function setbodytag () {
                 var bd = document.getElementsByTagName('body')[0];
                     setTimeout(function() { setbodytag() }, 10);
                 }
             };
-            
+
             setbodytag();
         },
-        
+
         init: function() {
             jsscript.corrections();
         }
     };
-    
+
     jsscript.init();
 /* ]]> */
 </script>
index fa145b9..671059f 100644 (file)
@@ -34,7 +34,7 @@
       if ($home) {  // This is what gets printed on the home page only
 ?>
     <?php echo $OUTPUT->container_start('clearfix header-home'); ?>
-    
+
     <div id="header-t">
        <div id="header-r">
                <div id="header-l">
index a6a1bb8..7303d02 100644 (file)
@@ -2,15 +2,15 @@
     Chameleon, the flexible Moodle theme.
 </h3>
 <p>
-    Chameleon is a Moodle theme with an option to interactively change your theme within your browser page. 
-    You click on an element to change it's style. Please read the 
-    <a href="http://docs.moodle.org/en/Chameleon" alt="Chameleon Moodle Docs">Chameleon Moodle Docs explanation</a> 
+    Chameleon is a Moodle theme with an option to interactively change your theme within your browser page.
+    You click on an element to change it's style. Please read the
+    <a href="http://docs.moodle.org/en/Chameleon" alt="Chameleon Moodle Docs">Chameleon Moodle Docs explanation</a>
     for more information about Chameleon's interactive theme work.
 </p>
 <p>
-    To enable editing you change "$THEME->chameleonenabled = false;" in the config.php file 
-    in your Chameleon theme folder to true. It is recommended to change "$THEME->chameleonenabled = true;" 
-    back to false again once you're satisfied with your theme because the editing engine loads several 
+    To enable editing you change "$THEME->chameleonenabled = false;" in the config.php file
+    in your Chameleon theme folder to true. It is recommended to change "$THEME->chameleonenabled = true;"
+    back to false again once you're satisfied with your theme because the editing engine loads several
     extra files into the browser. Therefore the page loading speed is reduced.
 </p>
 
 </h4>
 
 <p>
-    If you want to hand code styles you must not write hooks as comma separated lists of elements like 
+    If you want to hand code styles you must not write hooks as comma separated lists of elements like
 <pre>
-td#middle-column div.bt, 
+td#middle-column div.bt,
 div#middle-column div.bt {
     ...
 }
 </pre>
-    in Chameleon themes because the Chameleon engine can't handle these comma lists. 
+    in Chameleon themes because the Chameleon engine can't handle these comma lists.
     Please write two separate statements instead.
 <pre>
 td#middle-column div.bt {
@@ -39,6 +39,6 @@ div#middle-column div.bt {
 </p>
 
 <p>
-    A Moodle Theme from <strong>Urs Hunkler, <a href="http://www.unodo.de">unodo</a> 
+    A Moodle Theme from <strong>Urs Hunkler, <a href="http://www.unodo.de">unodo</a>
     and Andrew Walker, <a href="http://www.altoncollege.ac.uk/">Alton College</a></strong>.
 </p>
\ No newline at end of file
index 6c6c01b..19c5efa 100644 (file)
@@ -1,14 +1,14 @@
-<?PHP // $Id$
+<?php
 
 ////////////////////////////////////////////////////////////////////////////////
-/// This file contains a few configuration variables that control 
+/// This file contains a few configuration variables that control
 /// how Moodle uses this theme.
 ////////////////////////////////////////////////////////////////////////////////
 
 
 $THEME->sheets = array('user_styles');
 
-/// This variable is an array containing the names of all the 
+/// This variable is an array containing the names of all the
 /// stylesheet files you want included in this theme, and in what order
 ////////////////////////////////////////////////////////////////////////////////
 
@@ -16,38 +16,38 @@ $THEME->sheets = array('user_styles');
 $THEME->standardsheets = array('styles_layout', 'styles_color');
 
 /// This variable can be set to an array containing
-/// filenames from the *STANDARD* theme.  If the 
-/// array exists, it will be used to choose the 
+/// filenames from the *STANDARD* theme.  If the
+/// array exists, it will be used to choose the
 /// files to include in the standard style sheet.
 /// When false, then no files are used.
 /// When true or NON-EXISTENT, then ALL standard files are used.
-/// This parameter can be used, for example, to prevent 
+/// This parameter can be used, for example, to prevent
 /// having to override too many classes.
 /// Note that the trailing .css should not be included
 /// eg $THEME->standardsheets = array('styles_layout','styles_fonts','styles_color');
 ////////////////////////////////////////////////////////////////////////////////
 
 
-$THEME->parent = '';  
+$THEME->parent = '';
 
 /// This variable can be set to the name of a parent theme
 /// which you want to have included before the current theme.
-/// This can make it easy to make modifications to another 
+/// This can make it easy to make modifications to another
 /// theme without having to actually change the files
-/// If this variable is empty or false then a parent theme 
+/// If this variable is empty or false then a parent theme
 /// is not used.
 ////////////////////////////////////////////////////////////////////////////////
 
 
-$THEME->parentsheets = false;  
+$THEME->parentsheets = false;
 
 /// This variable can be set to an array containing
-/// filenames from a chosen *PARENT* theme.  If the 
-/// array exists, it will be used to choose the 
+/// filenames from a chosen *PARENT* theme.  If the
+/// array exists, it will be used to choose the
 /// files to include in the standard style sheet.
 /// When false, then no files are used.
 /// When true or NON-EXISTENT, then ALL standard files are used.
-/// This parameter can be used, for example, to prevent 
+/// This parameter can be used, for example, to prevent
 /// having to override too many classes.
 /// Note that the trailing .css should not be included
 /// eg $THEME->parentsheets = array('styles_layout','styles_fonts','styles_color');
@@ -62,28 +62,28 @@ $THEME->pluginsheets = array('mod', 'block', 'format', 'gradereport');
 
 $THEME->metainclude = true;
 
-/// When this is enabled (or not set!) then Moodle will try 
-/// to include a file meta.php from this theme into the 
+/// When this is enabled (or not set!) then Moodle will try
+/// to include a file meta.php from this theme into the
 /// <head></head> part of the page.
 
 
 $THEME->standardmetainclude = true;
 
-/// When this is enabled (or not set!) then Moodle will try 
-/// to include a file meta.php from the standard theme into the 
+/// When this is enabled (or not set!) then Moodle will try
+/// to include a file meta.php from the standard theme into the
 /// <head></head> part of the page.
 
 
 $THEME->parentmetainclude = false;
 
-/// When this is enabled (or not set!) then Moodle will try 
-/// to include a file meta.php from the parent theme into the 
+/// When this is enabled (or not set!) then Moodle will try
+/// to include a file meta.php from the parent theme into the
 /// <head></head> part of the page.
 
 
 $THEME->navmenuwidth = 50;
 
-/// You can use this to control the cutoff point for strings 
+/// You can use this to control the cutoff point for strings
 /// in the navmenus (list of activities in popup menu etc)
 /// Default is 50 characters wide.
 
@@ -92,34 +92,34 @@ $THEME->makenavmenulist = false;
 
 /// By setting this to true, then you will have access to a
 /// new variable in your header.html and footer.html called
-/// $navmenulist ... this contains a simple XHTML menu of 
-/// all activities in the current course, mostly useful for 
+/// $navmenulist ... this contains a simple XHTML menu of
+/// all activities in the current course, mostly useful for
 /// creating popup navigation menus and so on.
 
 
 $THEME->chameleonenabled = false;
 
 /// By setting this to true it enables editing of the stylsheets.
-/// It is recommended to set this to false again once you're 
+/// It is recommended to set this to false again once you're
 /// satisfied with your theme.
 
 
 $THEME->chameleonteachereditenabled = false;
 
-/// If you use chameleon as a course theme setting this to true 
-/// will allow teachers on that course to edit the theme. 
+/// If you use chameleon as a course theme setting this to true
+/// will allow teachers on that course to edit the theme.
 
 
-$THEME->resource_mp3player_colors = 
+$THEME->resource_mp3player_colors =
  'bgColour=000000&btnColour=ffffff&btnBorderColour=cccccc&iconColour=000000&'.
  'iconOverColour=00cc00&trackColour=cccccc&handleColour=ffffff&loaderColour=ffffff&'.
  'font=Arial&fontColour=3333FF&buffer=10&waitForPlay=no&autoPlay=yes';
 
-/// With this you can control the colours of the "big" MP3 player 
+/// With this you can control the colours of the "big" MP3 player
 /// that is used for MP3 resources.
 
 
-$THEME->filter_mediaplugin_colors = 
+$THEME->filter_mediaplugin_colors =
  'bgColour=000000&btnColour=ffffff&btnBorderColour=cccccc&iconColour=000000&'.
  'iconOverColour=00cc00&trackColour=cccccc&handleColour=ffffff&loaderColour=ffffff&'.
  'waitForPlay=yes';
@@ -129,11 +129,11 @@ $THEME->filter_mediaplugin_colors =
 
 $THEME->custompix = true;
 
-/// If true, then this theme must have a "pix" 
-/// subdirectory that contains copies of all 
+/// If true, then this theme must have a "pix"
+/// subdirectory that contains copies of all
 /// files from the moodle/pix directory, plus a
-/// "pix/mod" directory containing all the icons 
+/// "pix/mod" directory containing all the icons
 /// for all the activity modules.
 ////////////////////////////////////////////////////////////////////////////////
 
-?>
+
index bd6794b..7e0916f 100644 (file)
@@ -16,7 +16,7 @@
 <!-- <p><div class="homelink"><a <?php echo $CFG->frametarget ?> href="<?php $CFG->wwwroot ?>/course/view.php?id=<?php $COURSE->id ?>"> <?php $COURSE->shortname ?> </a></div></p> -->
 <p>
 <!-- <<a href="http://validator.w3.org/check?verbose=1&amp;ss=1&amp;uri=<?php echo urlencode(qualified_me()) ?>"><img src="<?php echo "$CFG->themewww/$CFG->theme" ?>/xhtml_1_0.gif" alt="XHTML Validator" /></a>
-<a href="http://jigsaw.w3.org/css-validator/validator?uri=<?php echo urlencode(qualified_me()) ?>&amp;warning=1&amp;profile=css2&amp;usermedium=all"><img src="<?php echo "$CFG->themewww/$CFG->theme" ?>/css.gif" alt="CSS Validator" /></a> 
+<a href="http://jigsaw.w3.org/css-validator/validator?uri=<?php echo urlencode(qualified_me()) ?>&amp;warning=1&amp;profile=css2&amp;usermedium=all"><img src="<?php echo "$CFG->themewww/$CFG->theme" ?>/css.gif" alt="CSS Validator" /></a>
 <a href="http://www.contentquality.com/mynewtester/cynthia.exe?rptmode=-1&amp;url1=<?php echo urlencode(qualified_me()) ?>"><img src="<?php echo "$CFG->themewww/$CFG->theme" ?>/section_508.gif" alt="Section 508 Validator" /></a> -->
 </p>
 </div>
index 6dadbc9..d9ddd91 100644 (file)
@@ -13,7 +13,7 @@ Each of these modules contains a number of expected components:
   icon.gif: a 16x16 icon for the module
 
   db/mysql.sql: an SQL dump of all the required db tables and data
+
   index.php: a page to list all instances in a course
 
   view.php: a page to view a particular instance
@@ -37,6 +37,6 @@ Each of these modules contains a number of expected components:
 
 
 If you are a developer and interested in developing new Modules see:
-  
+
    Moodle Documentation:  http://moodle.org/doc
    Moodle Community:      http://moodle.org/community
index bab2407..5cfebaa 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * These styles are ONLY included for IE 7 (via meta.php)
  */
+
 input[type="submit"] {
   padding: 0 2px;
 }
index 0713e86..560c22b 100644 (file)
@@ -3,22 +3,22 @@
 class ChameleonCSS {
     var $error;
     var $base;
-    
+
     var $perm;
     var $temp;
 
-    function ChameleonCSS($base, $perm, $temp) { 
+    function ChameleonCSS($base, $perm, $temp) {
         $this->base = $base;
         $this->perm = $perm;
         $this->temp = $temp;
     }
-    
+
     function update($file, $content = '') {
         if (!is_writable($this->base . $this->$file)) {
             $this->error = $this->$file . ' is not writeable, the file permissions are currently ' . $this->getfilepermissions($this->$file);
             return false;
         }
-        
+
         if (!$fp = fopen($this->base . $this->$file, 'w')) {
             $this->error = 'couldn\'t open file';
             return false;
@@ -27,7 +27,7 @@ class ChameleonCSS {
         fclose($fp);
         return true;
     }
-    
+
     function getfilepermissions($file) {
         return substr(sprintf('%o', fileperms($this->base . $file)), -4);
     }
@@ -35,29 +35,29 @@ class ChameleonCSS {
     function read() {
         $permcss = file_get_contents($this->base . $this->perm);
         $tempcss = file_get_contents($this->base . $this->temp);
-           
+
         if ($permcss === false || $tempcss === false) {
             $this->error = 'Couldn\'t read file';
             return false;
         }
-        
+
         $permcss = trim($permcss);
         $tempcss = trim($tempcss);
-        
+
         if ($tempcss == '') {
             return $permcss;
         }
         return $this->_merge($permcss, $tempcss);
     }
-    
-    
-    
-    
+
+
+
+
     function _merge($permcss, $tempcss) {
         $csssrcs = array($this->_toobj($permcss), $this->_toobj($tempcss));
-        
+
         $merged = array();
-        
+
         for ($i = 0; $i < 2; ++$i) {
             foreach ($csssrcs[$i] as $sel => $rule) {
                 $newsel = false;
@@ -84,13 +84,13 @@ class ChameleonCSS {
                 }
             }
         }
-        
+
         return $this->_tostr($merged);
     }
-    
-   
-    
-    
+
+
+
+
     function _toobj($cssstr) {
         $cssobj = array();
         $end = strpos($cssstr, '}');
@@ -120,8 +120,8 @@ class ChameleonCSS {
         }
         return $cssobj;
     }
-    
-    
+
+
     function _tostr($cssobj) {
         $cssstr = '';
         foreach ($cssobj as $sel => $rule) {
index 7b1aca5..4b1dca5 100644 (file)
@@ -5,13 +5,13 @@ class ChameleonFileBrowser {
     var $path;
     var $dir;
     var $IMAGE_TYPES;
-  
+
     var $founddirs = array();
     var $foundfiles = array();
 
     function ChameleonFileBrowser() {
         $this->IMAGE_TYPES = array('jpeg', 'jpg', 'gif', 'png');
-        
+
         $tmp = explode('/', str_replace('\\', '/', __FILE__));
         array_pop($tmp);
         array_pop($tmp);
@@ -25,11 +25,11 @@ class ChameleonFileBrowser {
         if ($path == 'root') {
             return 'pix';
         }
-        
+
         if (substr($path, 0, 3) != 'pix') {
             $this->send('<chameleon_error>Not a valid directory</chameleon_error>');
         }
-        
+
         return preg_replace('/[.]+/', '', $path);
     }
 
@@ -44,8 +44,8 @@ class ChameleonFileBrowser {
         if (!is_dir($this->dir)) {
             $this->send('<chameleon_error>Not a valid directory</chameleon_error>');
         }
-        
-        $handle = opendir($this->dir);       
+
+        $handle = opendir($this->dir);
         while (false !== ($file = readdir($handle))) {
             if ($file == '.' || $file == '..') {
                 continue;
@@ -72,10 +72,10 @@ class ChameleonFileBrowser {
             $out .= "  <file type=\"img\">$this->path/$file</file>\n";
         }
         $out .= "</files>";
-        
+
         $this->send($out);
     }
-    
+
     function send($out) {
         header("Content-type: application/xml; charset=utf-8");
         die($out);
index 195bee7..10461a9 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 
-   
+
 if (!empty($THEME->chameleonenabled)) {
     $chameleon_isadmin = has_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
     $chameleon_isteacher = false;
@@ -10,8 +10,8 @@ if (!empty($THEME->chameleonenabled)) {
         $chameleon_courseparam = '?id=' . $COURSE->id;
         $chameleon_isteacher = !empty($COURSE->theme) and has_capability('moodle/course:update', get_context_instance(CONTEXT_COURSE, $COURSE->id));
     }
-    
-    if ($chameleon_isadmin or ($chameleon_isteacher and !empty($CFG->allowcoursethemes) and !empty($THEME->chameleonteachereditenabled))) { 
+
+    if ($chameleon_isadmin or ($chameleon_isteacher and !empty($CFG->allowcoursethemes) and !empty($THEME->chameleonteachereditenabled))) {
         // either we're an admin or we're a teacher and this is being used as the course theme
         // if we're on a page using a course theme edit that, otherwise edit the main chameleon theme
         $chameleon_theme = $PAGE->theme->name;
index 5368180..b7f373a 100644 (file)
@@ -37,7 +37,7 @@ String.prototype.trim = function() {
 
     var struct = [];
     var hotspotMode = null;
-        
+
     var Config = {
         THEME_ROOT: '<?php echo $chameleon_theme_root; ?>',
         REMOTE_URI: '<?php echo substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')); ?>/css.php<?php echo (isset($_GET['id'])) ? '?id='.(int) $_GET['id'] : '?dummy=1'; ?>',
@@ -52,7 +52,7 @@ String.prototype.trim = function() {
         UNITS: ['px', 'pt', 'em', '%'],
         PROPS_LIST: ['color', 'background-color', 'background-image', 'background-attachment', 'background-position', 'font-family', 'font-size', 'font-weight', 'font-style', 'line-height', 'margin', 'padding', 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width', 'border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style', 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color']
     };
-      
+
 
 
     var Util = {
@@ -65,7 +65,7 @@ String.prototype.trim = function() {
             obj.setAttribute('id', id);
             return obj;
         },
-    
+
         removeElement: function(obj) {
             if (!obj || !obj.parentNode) return false;
 
@@ -73,7 +73,7 @@ String.prototype.trim = function() {
             if (!kids.length && typeof obj.all != 'undefined') {
                 kids = obj.all;
             }
-            
+
             var n = kids.length;
             while (n--) {
                 if (kids[n].id && Util.__registry[kids[n].id]) {
@@ -83,23 +83,23 @@ String.prototype.trim = function() {
             if (Util.__registry[obj.id]) {
                 Util.__removeAllEvents(obj);
             }
-            obj.parentNode.removeChild(obj); 
+            obj.parentNode.removeChild(obj);
         },
-        
+
         clearElement: function(obj) {
             while (obj.hasChildNodes()) {
                 obj.removeChild(obj.firstChild);
             }
-        }, 
+        },
 
         addEvent: function(obj, ev, fn) {
             if (!Util.__addToRegistry(obj, ev, fn)) return;
-  
+
             if (obj.addEventListener) {
                 obj.addEventListener(ev, fn, false);
             } else if (obj.attachEvent) {
                 obj['e' + ev + fn] = fn;
-                obj[ev + fn] = function() { 
+                obj[ev + fn] = function() {
                     obj['e' + ev + fn](window.event);
                 };
                 obj.attachEvent('on' + ev, obj[ev + fn]);
@@ -112,7 +112,7 @@ String.prototype.trim = function() {
                 obj.removeEventListener(ev, fn, false);
             } else if (obj.detachEvent) {
                 obj.detachEvent('on' + ev, obj[ev + fn]);
-                obj[ev + fn] = null;     
+                obj[ev + fn] = null;
             }
         },
 
@@ -150,9 +150,9 @@ String.prototype.trim = function() {
         },
         __removeFromRegistry: function(obj, ev, fn) {
             var id = Util.__getEventId(obj);
-     
+
             if (!id) return false;
+
             var pos = Util.__findEvent(id, ev, fn);
             if (pos != -1) {
                 Util.__registry[id][ev].splice(pos, 1);
@@ -203,26 +203,26 @@ String.prototype.trim = function() {
             return {x: x, y: y};
         }
     };
-    
-    
-    
+
+
+
 
 
 
 
     var CSS = {
-        
+
         __localCSS: {},
         __remoteCSS: {},
-        
+
         __localSaveRequired: false,
         __remoteSaveRequired: false,
-        
-        
+
+
         requireRemoteSave: function() {
-            CSS.__remoteSaveRequired = true;            
+            CSS.__remoteSaveRequired = true;
         },
-        
+
         clearTheme: function() {
             /*var links = document.getElementsByTagName('link');
             var n = links.length;
@@ -233,7 +233,7 @@ String.prototype.trim = function() {
                 }
             }*/
         },
-        
+
 
         loadRemote: function(doSetup) {
             if (!Sarissa.IS_ENABLED_XMLHTTP) {
@@ -260,34 +260,34 @@ String.prototype.trim = function() {
             xmlhttp.send(null);
             return true;
         },
-        
-        
+
+
         updateTemp: function(e, reset) {
             if (!CSS.__localSaveRequired && !reset) {
                 UI.statusMsg('There are no changes that need saving!', 'chameleon-notice');
                 return;
             }
-            
+
             if (!reset) {
                 UI.statusMsg('Updating temporary styles on the server...', 'chameleon-working');
             } else {
                 UI.statusMsg('Deleting temporary styles from the server...', 'chameleon-working');
             }
-            
+
             var css = CSS.toString();
             var xmlhttp = new XMLHttpRequest();
             xmlhttp.onreadystatechange = function() {
                 if (xmlhttp.readyState == 4) {
                     if (xmlhttp.responseText.indexOf('CHAMELEON_ERROR') != -1) {
                         UI.statusMsg('There was an error saving to the server:\n' + xmlhttp.responseText.replace(/CHAMELEON_ERROR /, '') + '.', 'chameleon-error');
-                        
+
                     } else {
                         CSS.__localSaveRequired = false;
                         if (!reset) {
                             UI.statusMsg('Temporary styles have been updated.', 'chameleon-ok');
                         } else {
                             UI.statusMsg('Temporary styles have been cleared.', 'chameleon-ok');
-                        }        
+                        }
                     }
                     xmlhttp = null;
                 }
@@ -296,14 +296,14 @@ String.prototype.trim = function() {
             xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
             xmlhttp.send('css=' + css);
         },
-        
+
 
         updateRemote: function() {
             if (!CSS.__remoteSaveRequired) {
                 UI.statusMsg('There are no changes that need saving!', 'chameleon-notice');
                 return;
             }
-        
+
             var css = CSS.toString(CSS.__localCSS);
 
             UI.statusMsg('Updating styles on the server...', 'chameleon-working');
@@ -325,33 +325,33 @@ String.prototype.trim = function() {
             xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
             xmlhttp.send('css=' + css);
         },
-        
-    
-        
-        
-      
-      
+
+
+
+
+
+
         hardReset: function(e, noPrompt) {
             if (noPrompt || confirm('Are you sure? This will erase all styles that have not been permanently saved to the server.')) {
                 CSS.__localCSS = {};
                 CSS.updateTemp(null, true);
-                
+
                 CSS.__localCSS = CSS.__clone(CSS.__remoteCSS);
                 CSS.__localSaveRequired = false;
                 CSS.__remoteSaveRequired = false;
                 CSS.preview();
             }
         },
-        
-        
-        
+
+
+
         setPropValue: function(prop, value, selector) {
             if (!selector) var selector = CSS.Selector.get();
 
             if (!CSS.__localCSS[selector]) {
                 CSS.__localCSS[selector] = {};
             }
-            
+
             var matches = prop.match(/^border\-([^\-]+)$/);
             if (value) {
                 var func = CSS.__requiresFunction(prop);
@@ -375,12 +375,12 @@ String.prototype.trim = function() {
                     CSS.unsetProp(prop, selector);
                 }
             }
-            
+
             CSS.__localSaveRequired = true;
             CSS.__remoteSaveRequired = true;
             CSS.preview(selector);
         },
-        
+
         getPropValue: function(prop, selector) {
             if (!selector) var selector = CSS.Selector.get();
 
@@ -403,8 +403,8 @@ String.prototype.trim = function() {
                 delete CSS.__localCSS[selector];
             }
         },
-        
-        
+
+
         __hasProps: function(selector) {
             for (var prop in CSS.__localCSS[selector]) {
                 if (prop) {
@@ -413,8 +413,8 @@ String.prototype.trim = function() {
             }
             return false;
         },
-        
-        
+
+
 
 
         __cleanFunctions: function(val) {
@@ -444,7 +444,7 @@ String.prototype.trim = function() {
 
         fixPath: function(val) {
             if (val == 'none') return val;
-            
+
             var tmp = val.split('(');
             if (tmp.length > 1) {
                 tmp[1] = Config.THEME_ROOT + '/' + tmp[1];
@@ -452,27 +452,27 @@ String.prototype.trim = function() {
             }
             return Config.THEME_ROOT + '/' + val;
         },
-        
-        
-        
+
+
+
         preview: function(sel) {
             var styleId = 'chameleon-preview-styles';
 
             var h = document.getElementsByTagName('head')[0];
             var s = document.getElementById(styleId);
-            
+
             if (!s) {
                 var s = Util.createElement('style', styleId);
                 s.setAttribute('type', 'text/css');
                 h.appendChild(s);
             }
-            
+
             if (navigator.userAgent.toLowerCase().indexOf('msie') != -1  && !window.opera && document.styleSheets && document.styleSheets.length > 0) {
                 var lastStyle = document.styleSheets[document.styleSheets.length - 1];
-                
+
                 var ieCrashProtector = /[^a-z0-9 #_:\.\-\*]/i; // some characters appearing in a selector can cause addRule to crash IE in spectacular style - if the selector contains any character outside this list don't try to add to the preview
                 var ieWarning = false;
-                
+
                 if (sel) {
                     var matchedSelectors = [];
                     if (typeof sel == 'string') {
@@ -490,7 +490,7 @@ String.prototype.trim = function() {
                                 sel.splice(ns, 1);
                                 break;
                             }
-                            
+
                             if (lastStyle.rules[n].selectorText.toLowerCase() == sel[ns].toLowerCase()) {
                                 matchedSelectors.push(sel[ns]);
                                 sel.splice(ns, 1);
@@ -509,7 +509,7 @@ String.prototype.trim = function() {
                     while (n--) {
                         lastStyle.removeRule(n);
                     }
-                   
+
                     for (var sel in CSS.__localCSS) {
                         if (sel.match(ieCrashProtector)) {
                             ieWarning = true;
@@ -519,18 +519,18 @@ String.prototype.trim = function() {
                         lastStyle.addRule(sel, dec);
                     }
                 }
-                
+
                 if (ieWarning) {
                     UI.statusMsg('The edited CSS contains content that can not be previewed by Internet Explorer', 'chameleon-notice');
                 }
-                
+
             } else {
                 Util.clearElement(s);
                 s.appendChild(document.createTextNode(CSS.toString(CSS.__localCSS, true))); // I think innerHTML would be faster here, but it doesn't work in KHTML browsers (Safari etc)
             }
         },
-        
-        
+
+
 
         __merge: function() {
             var merged = {};
@@ -565,7 +565,7 @@ String.prototype.trim = function() {
             }
             return merged;
         },
-        
+
         __clone: function(src) {
             var cloned = {};
             for (var sel in src) {
@@ -578,30 +578,30 @@ String.prototype.trim = function() {
             }
             return cloned;
         },
-        
-        
+
+
         toString: function(css, fixpath) {
             if (!css) var css = CSS.__localCSS;
-            
+
             var dec = '';
             for (var sel in css) {
                 dec += sel + ' ' + CSS.__propsToString(css[sel], fixpath, sel);
             }
             return dec;
         },
-        
+
         __propsToString: function(css, fixpath) {
             CSS.__Shorthand.border = {};
-            
+
             var hasBorder = false;
             var col = false;
             var importantBorders = [];
 
             var dec = '{\n';
             for (var prop in css) {
-                
+
                 var includeProp = true;
-                
+
                 if (prop.indexOf('border') != -1 && prop.indexOf('spacing') == -1 && prop.indexOf('collapse') == -1) {
                     if (css[prop].indexOf('!important') == -1) {
                         CSS.__Shorthand.recordBorder(prop, css[prop]);
@@ -611,7 +611,7 @@ String.prototype.trim = function() {
                     includeProp = false;
                     hasBorder = true;
                 }
-                
+
                 if (prop == 'color') {
                     col = css[prop];
                 }
@@ -624,7 +624,7 @@ String.prototype.trim = function() {
                     }
                 }
             }
-            
+
             if (hasBorder) {
                 dec += CSS.__Shorthand.getBorderString(col);
             }
@@ -634,14 +634,14 @@ String.prototype.trim = function() {
                     dec += '  ' + importantBorders[n].prop + ': ' + importantBorders[n].css + ';\n';
                 }
             }
-            
+
             dec += '}\n';
             return dec;
         },
-        
-                
-        
-        
+
+
+
+
         toObject: function(css) {
             var cssObj = {};
             var end;
@@ -655,7 +655,7 @@ String.prototype.trim = function() {
                 } else {
                     var selectorArr = [selector];
                 }
-                
+
                 var rules = parts.pop().trim();
                 rules = rules.split(';');
                 for (var i = 0; i < rules.length; ++i) {
@@ -665,22 +665,22 @@ String.prototype.trim = function() {
                     var rule = rules[i].split(':');
                     var prop = rule.shift().trim();
                     var val = rule.pop().trim();
-                    
+
                     for (var j = 0; j < selectorArr.length; ++j) {
                         var noFontPropReset = {};
-                        
+
                         selector = selectorArr[j].trim();
                         if (!cssObj[selector]) {
                             cssObj[selector] = {};
                         }
-                    
+
                         if (prop != 'font' && (prop.indexOf('font') != -1 || prop == 'line-height')) {
                             noFontPropReset[prop] = true;
                         }
-                    
+
                         if (prop == 'background') {
                             CSS.__Shorthand.setBackground(cssObj, selector, val);
-                        } else if (prop == 'font') {    
+                        } else if (prop == 'font') {
                             CSS.__Shorthand.setFont(cssObj, selector, val, noFontPropReset);
                         } else if ((prop == 'border' || prop.match(/^border\-([^-]+)$/)) && prop.indexOf('spacing') == -1 && prop.indexOf('collapse') == -1) {
                             CSS.__Shorthand.setBorder(cssObj, selector, val, prop);
@@ -693,11 +693,11 @@ String.prototype.trim = function() {
             }
             return cssObj;
         },
-        
-        
-        
-        
-        
+
+
+
+
+
         getSelectorCSS: function(selector, asObject) {
             if (!selector) var selector = CSS.Selector.get();
 
@@ -707,36 +707,36 @@ String.prototype.trim = function() {
             }
             return selector + ' ' + CSS.__propsToString(css);
         },
-        
-        
-        
+
+
+
         saveRequired: function() {
             return CSS.__localSaveRequired || CSS.__serverSaveRequired;
         },
-        
-        
+
+
         checkSpec: function(e, selector) {
             if (!selector) var selector = CSS.Selector.get();
             if (selector == '') {
                 UI.statusMsg('First you have to choose which item to style!', 'chameleon-notice');
                 return;
             }
-            
+
             var splitSelector = function(selector) {
                 var selectorEnd = selector.split(' ').pop();
                 selectorEnd = selectorEnd.replace(/([\.:#])/g, '|$1');
                 return selectorEnd.split('|');
             };
-            
+
             var similar = [];
-        
+
             var selectorBits = splitSelector(selector);
-        
+
             for (var sel in CSS.__localCSS) {
                 var selBits = splitSelector(sel);
-        
+
                 var n = selectorBits.length;
-        
+
                 while (n--) {
                     var match = selectorBits[n];
                     var m = selBits.length;
@@ -758,15 +758,15 @@ String.prototype.trim = function() {
                     }
                 }
             }
-            
+
             if (similar.length) {
                 UI.Selector.__displayOverview(null, similar, selector);
             } else {
                 UI.statusMsg('Your file currently contains no selectors that appear similar to "' + selector + '"', 'chameleon-notice');
-            }  
+            }
         },
-        
-        
+
+
         unloadPrompt: function() {
             if (CSS.__localSaveRequired) {
                 if (confirm('You have made changes to the CSS on this page since the last time it was saved, these changes will be lost unless you save them now. Select OK to save a temporary copy or Cancel to continue and discard the unsaved CSS.')) {
@@ -779,18 +779,18 @@ String.prototype.trim = function() {
         }
 
     };
-    
-    
-    
+
+
+
     CSS.Selector = {
-        
+
         trimmed: [],
         full: [],
         selector: '',
-        
+
         create: function() {
             CSS.Selector.trimmed = [];
+
             var n = struct.length;
             while (n--) {
                 if (CSS.Selector.full[n]) {
@@ -799,11 +799,11 @@ String.prototype.trim = function() {
             }
             CSS.Selector.set(CSS.Selector.trimmed.join(' '));
         },
-        
+
         modify: function(e) {
             var target = e.target || e.srcElement;
             var p = target.position;
-            
+
             var sel = CSS.Selector.full;
 
             if (!sel[p]) {
@@ -821,27 +821,27 @@ String.prototype.trim = function() {
             CSS.Selector.create();
             UI.Selector.displaySelector(CSS.Selector.trimmed);
         },
-        
+
         set: function(sel) {
             CSS.Selector.selector = sel;
         },
-        
+
         get: function() {
-            return CSS.Selector.selector;  
+            return CSS.Selector.selector;
         },
 
         reset: function() {
             CSS.Selector.trimmed = [];
             CSS.Selector.full = [];
             CSS.Selector.set('');
-        }               
+        }
     };
-    
-    
-    
+
+
+
     CSS.__Shorthand = {
         border: {},
-        
+
         recordBorder: function(prop, value) {
             var pr = prop.split('-')
             var p = pr.pop();
@@ -858,19 +858,19 @@ String.prototype.trim = function() {
             CSS.__Shorthand.border[p].push({prop: prop, value: value});
             CSS.__Shorthand.border[s][p] = value;
         },
-        
+
         getBorderString: function(col) {
             var cb = CSS.__Shorthand.border;
-            
+
             var useHowManyProps = function(prop) {
                 if (!cb['top'] || !cb['right'] || !cb['bottom'] || !cb['left']) {
                     return false;
                 }
-                
+
                 if (!(cb['top'][prop] && cb['right'][prop] && cb['bottom'][prop] && cb['left'][prop])) {
                     return false;
                 }
-                
+
                 if (cb['top'][prop] == cb['right'][prop] && cb['top'][prop] == cb['bottom'][prop] && cb['top'][prop] == cb['left'][prop]) {
                     return 1;
                 }
@@ -882,13 +882,13 @@ String.prototype.trim = function() {
                 }
                 return 4;
             };
-            
+
             var getPropShorthand = function(prop) {
                 var num = useHowManyProps(prop);
                 if (!num) {
                     return '';
                 }
-                
+
                 if (prop.indexOf('color') != -1) {
                     var l = inheritColor(cb['left'][prop]);
                     var r = inheritColor(cb['right'][prop]);
@@ -900,7 +900,7 @@ String.prototype.trim = function() {
                     var t = cb['top'][prop];
                     var b = cb['bottom'][prop];
                 }
-                
+
                 var propShorthand = '';
                 if (num == 1) {
                     propShorthand += '  border-' + prop + ': ' + l;
@@ -913,7 +913,7 @@ String.prototype.trim = function() {
                 }
                 return propShorthand + ';\n';
             };
-            
+
             var propsStr = function(props) {
                 var str = '';
                 for (var i = 0; i < props.length; ++i) {
@@ -921,29 +921,29 @@ String.prototype.trim = function() {
                 }
                 return str;
             };
-            
+
             var inheritColor = function(val) {
-                if (!col || val != 'inherit') return val;               
+                if (!col || val != 'inherit') return val;
                 return col;
             };
-            
+
             var setImportant = function(str) {
                 if (!str) return '';
                 if (str.indexOf('!important') == -1) return str;
                 str = str.replace(/ *\!important */g, ' ');
                 return str.substr(0, str.lastIndexOf(';')) + ' !important;\n';
             };
-                      
+
             var widthEqual = (cb['width']) ? CSS.__Shorthand.__allPropsEqual(cb['width']) : false;
             var styleEqual = (cb['style']) ? CSS.__Shorthand.__allPropsEqual(cb['style']) : false;
             var colorEqual = (cb['color']) ? CSS.__Shorthand.__allPropsEqual(cb['color']) : false;
-                        
+
             if (widthEqual && styleEqual && colorEqual) {
-                var propStr = setImportant(cb['width'][0].value + ' ' + cb['style'][0].value + ' ' + inheritColor(cb['color'][0].value) + ';\n');              
+                var propStr = setImportant(cb['width'][0].value + ' ' + cb['style'][0].value + ' ' + inheritColor(cb['color'][0].value) + ';\n');
                 if (cb['left'] && cb['top'] && cb['right'] && cb['bottom']) {
                     return '  border: ' + propStr;
                 }
-                
+
                 var sideShorthand = '';
                 if (cb['top']) {
                     sideShorthand += '  border-top: ' + propStr;
@@ -959,7 +959,7 @@ String.prototype.trim = function() {
                 }
                 return sideShorthand;
             }
-            
+
             var widthProps = getPropShorthand('width');
             if (!widthProps) {
                 widthProps = (cb['width']) ? propsStr(cb['width']) : '';
@@ -972,15 +972,15 @@ String.prototype.trim = function() {
             if (!colorProps) {
                 colorProps = (cb['color']) ? propsStr(cb['color']) : '';
             }
-            
+
             return setImportant(widthProps) + setImportant(styleProps) + setImportant(colorProps);
 
         },
-        
-        
-        
-        
-        
+
+
+
+
+
         setBorder: function(css, selector, value, prop) {
             var props = {};
             var p = '';
@@ -997,10 +997,10 @@ String.prototype.trim = function() {
                 regexp: /^((rgb\(\d{1,3} *, *\d{1,3} *, *\d{1,3} *\))|(#[A-F0-9]{3}([A-F0-9]{3})?)|([a-z]+))$/i,
                 def: 'inherit'
             };
-            
+
             var bits = value.split(' ');
             var imp = (bits[bits.length - 1] == '!important') ? ' ' + bits.pop() : '';
-                        
+
             if (prop == 'border') {
                 for (var i in props) {
                     css[selector]['border-top-' + i] = props[i].def;
@@ -1029,7 +1029,7 @@ String.prototype.trim = function() {
                             bits.splice(j, 1);
                             break;
                         }
-                    }   
+                    }
                 }
                 imp = '';
 
@@ -1073,18 +1073,18 @@ String.prototype.trim = function() {
                     }
                 }
             }
-            
+
         },
-        
-        
-        
-        
+
+
+
+
         setBackground: function(css, selector, value) {
             var imp = (value.indexOf('!important') != -1) ? ' !important' : '';
             if (imp != '') {
                 value = value.replace(/ *\!important */g, '');
             }
-            
+
             var urlPos = value.indexOf('url(');
             if (urlPos == -1 && value.indexOf('none') == -1) {
                 css[selector]['background-color'] = value + imp;
@@ -1104,12 +1104,12 @@ String.prototype.trim = function() {
                 return;
             }
             css[selector]['background-image'] = 'url(' + bits[1].substr(0, endImg).replace(/["']+/g, '') + ')' + imp; //"
-            
+
             var pos = [];
-            
+
             var bgOptions =  bits[1].substring(endImg + 1).split(' ');
             var n = bgOptions.length;
-            
+
             for (var i = 0; i < n; ++i) {
                 var opt = bgOptions[i].trim();
                 if (opt.indexOf('repeat') != -1) {
@@ -1128,13 +1128,13 @@ String.prototype.trim = function() {
                 css[selector]['background-color'] = col + imp;
             }
         },
-        
+
         setFont: function(css, selector, value, noreset) {
             var imp = (value.indexOf('!important') != -1) ? ' !important' : '';
             if (imp != '') {
                 value = value.replace(/ *\!important */g, '');
             }
-            
+
             var order = ['font-style', 'font-variant', 'font-weight', 'font-size', 'font-family'];
             var numProps = order.length;
             var allowedVals = {};
@@ -1143,13 +1143,13 @@ String.prototype.trim = function() {
             allowedVals['font-weight'] = /(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit)/;
             allowedVals['font-size'] = /([^ ]+)/;
             allowedVals['font-family'] = /(.+$)/;
-            
+
             if (!noreset['font-style']) css[selector]['font-style'] = 'normal';
             if (!noreset['font-variant']) css[selector]['font-variant'] = 'normal';
             if (!noreset['font-weight']) css[selector]['font-weight'] = 'normal';
             if (!noreset['font-size']) css[selector]['font-size'] = 'medium';
             if (!noreset['line-height']) css[selector]['line-height'] = 'normal';
-            
+
             var expandShorthand = function(bits) {
                 var numBits = bits.length;
                 var startProp = 0;
@@ -1172,7 +1172,7 @@ String.prototype.trim = function() {
                     }
                 }
             };
-            
+
             var removeCommaListSpaces = function(str) {
                 var comma = str.indexOf(',');
                 if (comma != -1) {
@@ -1180,29 +1180,29 @@ String.prototype.trim = function() {
                 }
                 return str;
             };
-            
+
             var hasQuote = value.match(/(["'])/); //"
             if (hasQuote) {
                 var tmp = value.split(hasQuote[1]);
                 var bits = removeCommaListSpaces(tmp.shift()).split(' ');
                 var startFont = bits.pop();
-                
+
                 expandShorthand(bits);
-                
-                css[selector]['font-family'] = startFont + hasQuote[1] + tmp.join(hasQuote[1]) + imp;           
+
+                css[selector]['font-family'] = startFont + hasQuote[1] + tmp.join(hasQuote[1]) + imp;
             } else {
-                value = removeCommaListSpaces(value);            
+                value = removeCommaListSpaces(value);
                 expandShorthand(value.split(' '));
             }
         },
-        
-        
-        
+
+
+
 
         __allPropsEqual: function(props) {
             var num = props.length - 1;
             if (num < 3) return false;
-            
+
             for (var i = 0; i < num; ++i) {
                 if (props[i].value != props[i + 1].value) {
                     return false;
@@ -1211,19 +1211,19 @@ String.prototype.trim = function() {
             return true;
         }
     };
-    
-    
-    
+
+
+
     CSS.FreeEdit = {
-      
+
         __initial: {},
-        
+
         setInitial: function(e) {
             var target = e.target || e.srcElement;
 
             CSS.FreeEdit.__initial = CSS.toObject(target.value);
         },
-        
+
         saveComplete: function(e) {
             var target = e.target || e.srcElement;
             target.value = CSS.FreeEdit.__stripComments(target.value);
@@ -1235,11 +1235,11 @@ String.prototype.trim = function() {
 
             CSS.preview();
         },
-        
+
         saveSelector: function(e) {
             var target = e.target || e.srcElement;
             target.value = CSS.FreeEdit.__stripComments(target.value);
-            
+
             var changedSelectors = [];
             var css = CSS.toObject(target.value);
             for (var sel in css) {
@@ -1266,25 +1266,25 @@ String.prototype.trim = function() {
                     }
                 }
             }
-            
+
             CSS.__localSaveRequired = true;
             CSS.__remoteSaveRequired = true;
             CSS.preview(changedSelectors);
         },
-        
+
         __stripComments: function(str) {
             return str.replace(/\/\*([\s\S])*?\*\//g, '');
         }
-        
+
     };
-    
-    
-    
-    
-    
-    
+
+
+
+
+
+
     var FileHandler = {
-        
+
         getFiles: function(path) {
             if (!path) path = '';
             var xmlhttp = new XMLHttpRequest();
@@ -1299,11 +1299,11 @@ String.prototype.trim = function() {
             return true;
         }
     };
-    
-    
-    
-    
-    
+
+
+
+
+
     var UI = {
         boxes: [],
         boxOffsetX: 35,
@@ -1314,7 +1314,7 @@ String.prototype.trim = function() {
 
         statusMsg: function(msg, cls) {
             UI.clearStatusMsg();
-            
+
             var target = UI.__getBox();
             if (!target) {
                 var box = Util.createElement('div', 'chameleon-status-msg');
@@ -1322,26 +1322,26 @@ String.prototype.trim = function() {
                 box.style.zIndex = ++UI.zIndex;
                 UI.addToDoc(box);
             } else {
-         
+
                 var statusTable = Util.createElement('table', 'chameleon-status-msg');
                 var statusTableBody = Util.createElement('tbody');
                 var statusRow = Util.createElement('tr');
                 var statusIconCell = Util.createElement('td');
                 var statusMsgCell = Util.createElement('td');
                 var statusBtnCell = Util.createElement('td');
-                
+
                 if (cls) {
                     statusIconCell.className = cls;
                 }
                 statusMsgCell.appendChild(document.createTextNode(msg));
                 statusBtnCell.appendChild(UI.createButton('chameleon-status-msg-btn', 'OK', 'Clear this message', UI.clearStatusMsg));
-                
+
                 statusRow.appendChild(statusIconCell);
                 statusRow.appendChild(statusMsgCell);
                 statusRow.appendChild(statusBtnCell);
                 statusTableBody.appendChild(statusRow);
                 statusTable.appendChild(statusTableBody);
-                
+
                 target.appendChild(statusTable);
             }
         },
@@ -1362,7 +1362,7 @@ String.prototype.trim = function() {
                 var offset = x + 525 - screen.width;
                 x -= offset;
             }
-            
+
             var box = Util.createElement('div', id);
             box.style.left = x + 'px';
             box.style.top = y + 'px';
@@ -1373,7 +1373,7 @@ String.prototype.trim = function() {
             closeBtn.appendChild(document.createTextNode('x'));
             closeBtn.setAttribute('title', 'Close');
             topBar.setAttribute('title', 'Drag me!');
-            
+
             UI.__dragTargetId = id + '-handle';
 
             Util.addEvent(closeBtn, 'click', UI.closeBoxes);
@@ -1383,12 +1383,12 @@ String.prototype.trim = function() {
 
             topBar.appendChild(closeBtn);
             box.appendChild(topBar);
-   
+
             UI.boxes.push(id);
 
             return box;
         },
-        
+
         closeAllBoxes: function() {
             var n = UI.boxes.length;
             while (n--) {
@@ -1403,7 +1403,7 @@ String.prototype.trim = function() {
                 var target = e.target || e.srcElement;
                 var box = target.parentNode.parentNode;
             }
-                        
+
             var n = UI.boxes.length;
             while (n--) {
                 if (UI.boxes[n] == box.id) {
@@ -1422,7 +1422,7 @@ String.prototype.trim = function() {
             var mouseCoords = Pos.getMouse(e);
             var elementCoords = Pos.getElement(target);
             target.mouseX = mouseCoords.x - elementCoords.x;
-            target.mouseY = mouseCoords.y - elementCoords.y;    
+            target.mouseY = mouseCoords.y - elementCoords.y;
 
             UI.__dragTargetId = target.id;
 
@@ -1439,7 +1439,7 @@ String.prototype.trim = function() {
             var mouseCoords = Pos.getMouse(e);
             target.parentNode.style.left = (mouseCoords.x - target.mouseX) + 'px';
             target.parentNode.style.top = (mouseCoords.y - target.mouseY) + 'px';
-            
+
             if (e.preventDefault) {
                 e.preventDefault();
             } else if (window.event) {
@@ -1451,7 +1451,7 @@ String.prototype.trim = function() {
             var target = e.target || e.srcElement;
             target.parentNode.style.zIndex = ++UI.zIndex;
         },
-        
+
         __getBox: function() {
             var obj = document.getElementById(UI.__dragTargetId);
             if (obj && obj.parentNode) {
@@ -1459,10 +1459,10 @@ String.prototype.trim = function() {
             }
             return false;
         },
-        
-        
-        
-        
+
+
+
+
         setupPane: function(tabs, parentId, tabId, active) {
             for (var i = 0; i < tabs.length; ++i) {
                 var obj = document.getElementById(tabId + '-tab-' + tabs[i]);
@@ -1477,7 +1477,7 @@ String.prototype.trim = function() {
             }
             return parent;
         },
-        
+
         setupButtons: function() {
             var parentId = arguments[0];
             var parent = document.getElementById(parentId);
@@ -1496,7 +1496,7 @@ String.prototype.trim = function() {
                 }
             }
         },
-        
+
         createButton: function(id, value, title, fn, hidden) {
             var btn = Util.createElement('input', id);
             btn.setAttribute('type', 'submit');
@@ -1518,15 +1518,15 @@ String.prototype.trim = function() {
             }
         }
     };
-    
-    
+
+
     UI.Selector = {
         controlsId: 'chameleon-selector-controls',
         viewedProp: null,
         displayPropWatch: false,
         sections: ['choose', 'overview', 'free-edit'],
-        
-        
+
+
         editWindow: function(e) {
             if (!e.shiftKey) {
                 return;
@@ -1537,7 +1537,7 @@ String.prototype.trim = function() {
             if (typeof tmpStruct == 'string') {
                 return;
             }
-            
+
             hotspotMode = false;
 
             var box = document.getElementById('chameleon-selector-box');
@@ -1558,7 +1558,7 @@ String.prototype.trim = function() {
             var tabsContainer = Util.createElement('table', 'chameleon-selector-tabs');
             var tabsBody = Util.createElement('tbody');
             var tabs = Util.createElement('tr');
+
             tabs.appendChild(UI.Selector.__createTab('Choose', UI.Selector.__editSelector, true, 'Choose'));
             tabs.appendChild(UI.Selector.__createTab('Overview', UI.Selector.__displayOverview, false, 'Overview'));
             tabs.appendChild(UI.Selector.__createTab('Free Edit', UI.Selector.__editCode, false, 'Free Edit'));
@@ -1575,18 +1575,18 @@ String.prototype.trim = function() {
             UI.addToDoc(box);
 
             UI.Selector.__editSelector();
-            
+
             if (e.preventDefault) {
                 e.preventDefault();
             } else if (window.event) {
                 window.event.returnValue = false;
             }
         },
-        
-       
+
+
         __listProps: function(e) {
              var target = e.target || e.srcElement;
-             
+
              Util.removeElement(document.getElementById('chameleon-selector-element-list'));
              UI.Selector.viewedProp = target.options[target.selectedIndex].value;
              if (!document.getElementById('chameleon-selector-list')) {
@@ -1595,7 +1595,7 @@ String.prototype.trim = function() {
                  target.parentNode.parentNode.insertBefore(UI.Selector.__elementList(target.options[target.selectedIndex].value), document.getElementById('chameleon-selector-list'));
              }
         },
-        
+
         __editSelector: function() {
             var parent = UI.setupPane(UI.Selector.sections, UI.Selector.controlsId, 'chameleon-selector', 'choose');
             UI.setupButtons('chameleon-selector-buttons', 'edit', 'check');
@@ -1605,17 +1605,17 @@ String.prototype.trim = function() {
             var instructions = Util.createElement('p');
             instructions.appendChild(document.createTextNode('Please choose the element you wish to style.'));
             container.appendChild(instructions);
-            
+
             var options = Util.createElement('p');
-            
+
             if (UI.Selector.__displayPropWatch) {
-                            
+
                 var selectProp = Util.createElement('select', 'chameleon-selector-prop-select');
                 var optionProp = Util.createElement('option');
                 optionProp.appendChild(document.createTextNode('Select a CSS property to view'));
                 optionProp.setAttribute('value', '');
                 selectProp.appendChild(optionProp);
-            
+
                 for (var i = 0; i < Config.PROPS_LIST.length; ++i) {
                     optionProp = Util.createElement('option');
                     optionProp.setAttribute('value', Config.PROPS_LIST[i]);
@@ -1623,52 +1623,52 @@ String.prototype.trim = function() {
                         optionProp.setAttribute('selected', 'selected');
                     }
                     optionProp.appendChild(document.createTextNode(Config.PROPS_LIST[i]));
-                    selectProp.appendChild(optionProp); 
+                    selectProp.appendChild(optionProp);
                 }
-            
+
                 Util.addEvent(selectProp, 'change', UI.Selector.__listProps);
-            
+
                 options.appendChild(selectProp);
+
             }
-            
+
             var togglePropWatch = Util.createElement('a');
             togglePropWatch.setAttribute('title', 'The property inspector allows you to check the current value of a range of CSS properties for these elements');
             togglePropWatch.appendChild(document.createTextNode(' (' + (UI.Selector.__displayPropWatch ? 'Hide property inspector' : 'Show property inspector') + ')'));
             Util.addEvent(togglePropWatch, 'click', UI.Selector.__togglePropWatch);
             options.appendChild(togglePropWatch);
-            
-            
+
+
             container.appendChild(options);
-            
+
             container.appendChild(UI.Selector.__elementList());
 
             parent.appendChild(container);
 
             UI.Selector.displaySelector(CSS.Selector.trimmed);
         },
-        
+
         __togglePropWatch: function() {
             UI.Selector.__displayPropWatch = !UI.Selector.__displayPropWatch;
             UI.Selector.__editSelector();
         },
-        
+
         __displayOverview: function(e, selectors, selector) {
             var parent = UI.setupPane(UI.Selector.sections, UI.Selector.controlsId, 'chameleon-selector', 'overview');
             UI.setupButtons('chameleon-selector-buttons');
-            
+
             var container = Util.createElement('div', 'chameleon-style-overview-container');
             parent.appendChild(container); // doing it this way is much faster than creating the table then applying the overflow
             UI.setOverflow(container, 350, true);
-            
+
             var overviewTable = Util.createElement('table', 'chameleon-style-overview');
             var overviewTableBody = Util.createElement('tbody');
-            
+
             if (!selectors) {
 
                 for (var sel in CSS.__localCSS) {
                     var overviewTableRow = Util.createElement('tr');
-                
+
                     var overviewTableCell = Util.createElement('th');
                     overviewTableCell.className = 'selector';
                     overviewTableCell.appendChild(document.createTextNode(sel));
@@ -1698,12 +1698,12 @@ String.prototype.trim = function() {
                     }
                 }
             } else {
-            
+
                 var n = selectors.length;
-                
+
                 if (!CSS.__localCSS[selector]) {
                     var overviewTableRow = Util.createElement('tr');
-                
+
                     var overviewTableCell = Util.createElement('th');
                     overviewTableCell.className = 'current-selector';
                     overviewTableCell.appendChild(document.createTextNode(selector));
@@ -1720,12 +1720,12 @@ String.prototype.trim = function() {
                     overviewTableRow.appendChild(overviewTableCell);
                     overviewTableBody.appendChild(overviewTableRow);
                 }
-                
+
                 for (var i = 0; i < n; ++i) {
                     var sel = selectors[i];
-                    
+
                     var overviewTableRow = Util.createElement('tr');
-                
+
                     var overviewTableCell = Util.createElement('th');
                     overviewTableCell.className = (sel == selector) ? 'current-selector' : 'selector';
                     overviewTableCell.appendChild(document.createTextNode(sel));
@@ -1741,7 +1741,7 @@ String.prototype.trim = function() {
 
                     overviewTableRow.appendChild(overviewTableCell);
                     overviewTableBody.appendChild(overviewTableRow);
-                    
+
                     for (var prop in CSS.__localCSS[sel]) {
                         overviewTableRow = Util.createElement('tr');
                         overviewTableCell = Util.createElement('td');
@@ -1755,18 +1755,18 @@ String.prototype.trim = function() {
                         overviewTableBody.appendChild(overviewTableRow);
                     }
                 }
-            
+
             }
 
-            overviewTable.appendChild(overviewTableBody);            
+            overviewTable.appendChild(overviewTableBody);
             container.appendChild(overviewTable);
         },
-        
+
         __elementList: function(showComputedStyle) {
             if (!showComputedStyle && UI.Selector.viewedProp) {
                 showComputedStyle = UI.Selector.viewedProp;
             }
-            
+
             var list = Util.createElement('ol', 'chameleon-selector-element-list');
             var n = struct.length;
             var classStr = '';
@@ -1783,7 +1783,7 @@ String.prototype.trim = function() {
                 tag.appendChild(document.createTextNode(struct[n].tagname));
                 tag.selectorValue = struct[n].tagname;
                 tag.position = n;
-               
+
                 UI.Selector.__autoHighlight(tag);
 
                 Util.addEvent(tag, 'click', CSS.Selector.modify);
@@ -1792,8 +1792,8 @@ String.prototype.trim = function() {
 
                 if (idStr = struct[n].id) {
                     var id = Util.createElement('span', 'chameleon-id-attr-' + n);
-                    id.selectorValue = struct[n].tagname + '#' + idStr; 
-                    id.position = n;      
+                    id.selectorValue = struct[n].tagname + '#' + idStr;
+                    id.position = n;
                     id.appendChild(document.createTextNode('#' + idStr));
 
                     UI.Selector.__autoHighlight(id);
@@ -1807,7 +1807,7 @@ String.prototype.trim = function() {
                     for (var i = 0; i < classArr.length; ++i) {
                         var cn = Util.createElement('span', 'chameleon-class-attr-' + n + '-' + i);
                         cn.selectorValue = struct[n].tagname + '.' + classArr[i];
-                        cn.position = n;      
+                        cn.position = n;
                         cn.appendChild(document.createTextNode('.' + classArr[i]));
 
                         UI.Selector.__autoHighlight(cn);
@@ -1821,7 +1821,7 @@ String.prototype.trim = function() {
                         var pc = Util.createElement('span', 'chameleon-pseudo-class' + n + '-' + i);
                         pc.selectorValue = struct[n].tagname + ':' + pseudoClasses[i];
 
-                        pc.position = n;      
+                        pc.position = n;
                         pc.appendChild(document.createTextNode(':' + pseudoClasses[i]));
 
                         UI.Selector.__autoHighlight(pc);
@@ -1830,17 +1830,17 @@ String.prototype.trim = function() {
                         item.appendChild(pc);
                     }
                 }
-                
+
                 if (showComputedStyle) {
                     var sides = ['top', 'right', 'bottom', 'left'];
-                    
+
                     if (document.defaultView && document.defaultView.getComputedStyle) {
                         if (showComputedStyle == 'margin' || showComputedStyle == 'padding') {
                             var styleVal = [];
-                            for (var i = 0; i < 4; ++i) {                                
+                            for (var i = 0; i < 4; ++i) {
                                 styleVal.push(document.defaultView.getComputedStyle(struct[n].el, null).getPropertyValue(showComputedStyle + '-' + sides[i]))
                             }
-                            
+
                             if (styleVal[0] == styleVal[1] && styleVal[1] == styleVal[2] && styleVal[2] == styleVal[3]) {
                                 styleVal = styleVal[0];
                             } else if (styleVal[0] == styleVal[2] && styleVal[1] == styleVal[3]) {
@@ -1850,40 +1850,40 @@ String.prototype.trim = function() {
                             } else {
                                 styleVal = styleVal.join(' ');
                             }
-                        } else {                    
+                        } else {
                             var styleVal = document.defaultView.getComputedStyle(struct[n].el, null).getPropertyValue(showComputedStyle);
                         }
 
-                        
+
                         if (styleVal.indexOf('rgb') != -1) {
                             styleVal = UI.Selector.__formatColor(styleVal);
                         }
+
                     } else if (struct[n].el.currentStyle) {
                         var propBits = showComputedStyle.split('-');
                         for (var i = 1; i < propBits.length; ++i) {
                             propBits[i] = propBits[i].charAt(0).toUpperCase() + propBits[i].substring(1);
                         }
-                        var styleVal = struct[n].el.currentStyle[propBits.join('')];                       
+                        var styleVal = struct[n].el.currentStyle[propBits.join('')];
                     }
-                    
+
                     var sp = Util.createElement('span');
                     sp.className = 'prop-value';
                     sp.appendChild(document.createTextNode(styleVal));
-                    
+
                     item.appendChild(sp);
                 }
 
-                
+
                 list.appendChild(item);
             }
-            
+
             return list;
         },
-        
-        
+
+
         __formatColor: function(color) {
-            var newColor = '';            
+            var newColor = '';
             colorBits = color.replace(/rgb\(|[ \)]/g, '').split(',');
             var hexCol = (colorBits[0] << 16 | colorBits[1] << 8 | colorBits[2]).toString(16);
             while (hexCol.length < 6) {
@@ -1891,15 +1891,15 @@ String.prototype.trim = function() {
             }
             return '#' + hexCol;
         },
-        
-        
+
+
         __editCode: function() {
             var parent = UI.setupPane(UI.Selector.sections, UI.Selector.controlsId, 'chameleon-selector', 'free-edit');
             UI.setupButtons('chameleon-selector-buttons', 'revert', 'save-local', 'save-server');
 
             var container = Util.createElement('div');
             var textarea = Util.createElement('textarea', 'chameleon-free-edit-all-field');
-            
+
             textarea.style.width = '100%';
             textarea.style.height = '350px';
             Util.addEvent(textarea, 'blur', CSS.FreeEdit.saveComplete);
@@ -1909,17 +1909,17 @@ String.prototype.trim = function() {
             parent.appendChild(container);
             textarea.value = CSS.toString(); // avoid Konqueror bug
         },
-        
-        
-        
-        
+
+
+
+
         __selectorList: function() {
             return Util.createElement('ol', 'chameleon-selector-list');
         },
-        
-        
-        
-        
+
+
+
+
         __createTab: function(str, fn, active, title) {
             var id = 'chameleon-selector-tab-' + str.replace(/ +/, '-').toLowerCase();
             var tab = Util.createElement('td', id);
@@ -1941,10 +1941,10 @@ String.prototype.trim = function() {
 
             return p;
         },
-        
-        
-        
-        
+
+
+
+
         __autoHighlight: function(el) {
             if (CSS.Selector.full[el.position] && CSS.Selector.full[el.position].val == el.selectorValue) {
                 UI.Selector.highlight(el);
@@ -1952,7 +1952,7 @@ String.prototype.trim = function() {
                 UI.Selector.unhighlight(el);
             }
         },
-        
+
         highlight: function(el) {
             UI.Selector.unhighlight(el);
             el.className += 'active-selector';
@@ -1961,10 +1961,10 @@ String.prototype.trim = function() {
         unhighlight: function(el) {
             el.className = el.className.replace(/\bactive-selector\b/, '');
         },
-        
-        
-        
-        
+
+
+
+
         displaySelector: function(selector) {
             var n = selector.length;
 
@@ -1991,13 +1991,13 @@ String.prototype.trim = function() {
                 item.appendChild(document.createTextNode('That are descended from ' + UI.Selector.__describe(selector[n])));
                 list.appendChild(item);
             }
-            
+
             UI.setOverflow(list, 100);
         },
 
         __describe: function(txt) {
             if (!txt) return '';
-            
+
             if (txt.indexOf(':') != -1) {
                 var parts = txt.split(':');
                 var pc = ' the "' + parts.pop() + '" state of ';
@@ -2017,23 +2017,23 @@ String.prototype.trim = function() {
             return pc + txt + ' tags';
         }
     };
-    
-    
-    
+
+
+
     UI.CSS = {
         redraw: null,
         colorType: null,
         controlsId: 'chameleon-style-controls',
         sections: ['text', 'backgrounds', 'borders-all', 'borders-separate', 'free-edit'],
-        
+
         __borderEditGroup: true,
-        
+
         editWindow: function(e) {
             if (CSS.Selector.get() == '') {
                 UI.statusMsg('First you have to choose which item to style!', 'chameleon-notice');
                 return;
             }
-            
+
             var box = document.getElementById('chameleon-style-box');
             if (box) UI.closeBoxes(true, box);
 
@@ -2052,7 +2052,7 @@ String.prototype.trim = function() {
             var tabsContainer = Util.createElement('table', 'chameleon-style-tabs');
             var tabsBody = Util.createElement('tbody');
             var tabs = Util.createElement('tr');
+
             tabs.appendChild(UI.CSS.__createTab('Text', UI.CSS.__editText, true, 'Text'));
             tabs.appendChild(UI.CSS.__createTab('Backgrounds', UI.CSS.__editBackgrounds, false, 'Backgrounds'));
             tabs.appendChild(UI.CSS.__createTab('Borders (All)', UI.CSS.__editBordersAll, false, 'Borders (All)'));
@@ -2069,19 +2069,19 @@ String.prototype.trim = function() {
             box.appendChild(UI.CSS.__addButtons());
 
             UI.addToDoc(box);
-            
+
             UI.CSS.__editText();
         },
-        
-        
-        
+
+
+
         launchEditWindow: function(e) {
             var target = e.target || e.srcElement;
             CSS.Selector.set(target.value);
             UI.CSS.editWindow(e);
         },
-        
-        
+
+
         __editText: function(e, redraw) {
             UI.CSS.redraw = arguments.callee;
             UI.CSS.colorType = 'color';
@@ -2096,7 +2096,7 @@ String.prototype.trim = function() {
                 container.appendChild(row.node);
 
                 row = UI.CSS.__selectBox('font-family', '-select-font-family', Check.fontFamily, Config.FONTS_LIST);
-                container.appendChild(row.node);        
+                container.appendChild(row.node);
 
                 row = UI.CSS.__inputField('font-family', '-input-font-family', Check.fontFamily, !row.meta.sel);
                 container.appendChild(row.node);
@@ -2112,7 +2112,7 @@ String.prototype.trim = function() {
 
                 row = UI.CSS.__selectBox('font-style', '-select-font-style', Check.fontStyle, Config.FONT_STYLES);
                 container.appendChild(row.node);
-                
+
                 row = UI.CSS.__selectBox('text-align', '-select-text-align', Check.textAlign, Config.TEXT_ALIGN);
                 container.appendChild(row.node);
 
@@ -2127,7 +2127,7 @@ String.prototype.trim = function() {
                 }
             }
         },
-        
+
         __editBackgrounds: function(e, redraw) {
             UI.CSS.redraw = arguments.callee;
             UI.CSS.colorType = 'background-color';
@@ -2145,12 +2145,12 @@ String.prototype.trim = function() {
                 container.appendChild(row.node);
 
                 var extraFields = row.meta;
-                
+
                 row = UI.CSS.__selectBox('background-repeat', '-select-background-repeat', Check.backgroundRepeat, Config.REPEAT_LIST, !extraFields);
                 container.appendChild(row.node);
 
                 row = UI.CSS.__selectBox('background-position', '-select-background-position', Check.backgroundPosition, Config.POSITION_LIST, !extraFields);
-                container.appendChild(row.node);   
+                container.appendChild(row.node);
 
                 containerTable.appendChild(container);
                 parent.appendChild(containerTable);
@@ -2180,24 +2180,24 @@ String.prototype.trim = function() {
                 imgPreview.setAttribute('height', '20');
             }
         },
-        
+
         __editBordersAll: function(e, redraw) {
             UI.CSS.redraw = arguments.callee;
             UI.CSS.colorType = 'border-color';
-                        
+
             var containerTable = document.getElementById('chameleon-style-edit-borders-all-container');
             if (!containerTable) {
-               
+
                 var parent = UI.setupPane(UI.CSS.sections, UI.CSS.controlsId, 'chameleon-style', 'borders-all');
                 containerTable = Util.createElement('table', 'chameleon-style-edit-borders-all-container');
                 var container = Util.createElement('tbody');
 
                 var row = UI.CSS.__inputField('border-width', '-input-border-width', Check.borderWidth);
                 container.appendChild(row.node);
-  
+
                 row = UI.CSS.__inputField('border-color', '-input-border-color', Check.color);
                 container.appendChild(row.node);
-             
+
                 row = UI.CSS.__selectBox('border-style', '-select-border-style', Check.borderStyle, Config.BORDER_LIST);
                 container.appendChild(row.node);
 
@@ -2209,10 +2209,10 @@ String.prototype.trim = function() {
                 }
             }
         },
-        
+
         __editBordersSeparate: function(e, redraw) {
             UI.CSS.redraw = arguments.callee;
-            
+
             var containerTable = document.getElementById('chameleon-style-edit-borders-separate-container');
             if (!containerTable) {
                 var parent = UI.setupPane(UI.CSS.sections, UI.CSS.controlsId, 'chameleon-style', 'borders-separate');
@@ -2221,24 +2221,24 @@ String.prototype.trim = function() {
 
                 var row = UI.CSS.__inputField('border-top-width', '-input-border-top-width', Check.borderWidth);
                 container.appendChild(row.node);
-  
+
                 row = UI.CSS.__inputField('border-top-color', '-input-border-top-color', Check.color, false, UI.CSS.__setColorType);
                 container.appendChild(row.node);
-             
+
                 row = UI.CSS.__selectBox('border-top-style', '-select-border-top-style', Check.borderStyle, Config.BORDER_LIST);
-                container.appendChild(row.node); 
+                container.appendChild(row.node);
 
 
                 row = UI.CSS.__inputField('border-right-width', '-input-border-right-width', Check.borderWidth);
                 container.appendChild(row.node);
+
                 row = UI.CSS.__inputField('border-right-color', '-input-border-right-color', Check.color, false, UI.CSS.__setColorType);
                 container.appendChild(row.node);
 
                 row = UI.CSS.__selectBox('border-right-style', '-select-border-right-style', Check.borderStyle, Config.BORDER_LIST);
-                container.appendChild(row.node);  
+                container.appendChild(row.node);
+
 
                 row = UI.CSS.__inputField('border-bottom-width', '-input-border-bottom-width', Check.borderWidth);
                 container.appendChild(row.node);
 
@@ -2246,9 +2246,9 @@ String.prototype.trim = function() {
                 container.appendChild(row.node);
 
                 row = UI.CSS.__selectBox('border-bottom-style', '-select-border-bottom-style', Check.borderStyle, Config.BORDER_LIST);
-                container.appendChild(row.node);   
+                container.appendChild(row.node);
+
 
                 row = UI.CSS.__inputField('border-left-width', '-input-border-left-width', Check.borderWidth);
                 container.appendChild(row.node);
 
@@ -2257,7 +2257,7 @@ String.prototype.trim = function() {
 
                 row = UI.CSS.__selectBox('border-left-style', '-select-border-left-style', Check.borderStyle, Config.BORDER_LIST);
                 container.appendChild(row.node);
-                
+
                 containerTable.appendChild(container);
                 parent.appendChild(containerTable);
             } else {
@@ -2266,7 +2266,7 @@ String.prototype.trim = function() {
                 }
             }
         },
-        
+
         __editCode: function(e) {
             UI.CSS.redraw = arguments.callee;
 
@@ -2274,7 +2274,7 @@ String.prototype.trim = function() {
 
             var container = Util.createElement('div');
             var textarea = Util.createElement('textarea', 'chameleon-free-edit-field');
-            
+
             textarea.style.width = '100%';
             textarea.style.height = '350px';
 
@@ -2285,32 +2285,32 @@ String.prototype.trim = function() {
             parent.appendChild(container);
             textarea.value = CSS.getSelectorCSS(); // avoid Konqueror bug
         },
-        
-        
-        
-        
-        
-        
-        
+
+
+
+
+
+
+
         __getPropValue: function(prop) {
             var val = UI.CSS.__getBorderPropValue(prop);
             if (val === '') {
                 return false;
             }
-            
+
             if (val === false) {
                 val = CSS.getPropValue(prop);
             }
             return val;
         },
-        
-        
+
+
         __setColorDisplay: function(prop, value, field, picker) {
             if (!field) var field = document.getElementById(UI.CSS.controlsId + '-input-' + prop);
             if (!picker) var picker = document.getElementById(UI.CSS.controlsId + '-color-picker-' + prop);
-            
+
             if (!field || !picker) return;
-            
+
             field.value = value;
             try {
                 picker.style.backgroundColor = (value != '') ? value.replace(/[ ]*\!important/, '') : '#000';
@@ -2321,22 +2321,22 @@ String.prototype.trim = function() {
                 UI.statusMsg(value + ' is an Invalid color!', 'chameleon-error');
             }
         },
-        
+
         __setImageDisplay: function(value, field, picker) {
             if (!field) var field = document.getElementById(UI.CSS.controlsId + '-input-background-image');
             if (!picker) var picker = document.getElementById(UI.CSS.controlsId + '-background-image-picker');
-            
+
             var preview = document.getElementById('chameleon-image-preview');
-            
+
             if (!field || !picker) return;
-            
+
             field.value = value;
             if (value != '') {
                 if (!preview) {
                     preview = Util.createElement('img', 'chameleon-image-preview');
                     picker.appendChild(preview);
                 }
-                
+
                 if (field.value != 'none') {
                     preview.setAttribute('src', CSS.fixPath(value.replace(/[ ]*\!important/, '')));
                 } else {
@@ -2354,57 +2354,57 @@ String.prototype.trim = function() {
                 picker.setAttribute('title', 'Open image picker');
                 Util.addEvent(picker, 'click', UI.CSS.__loadImagePicker);
             }
-            
-            
+
+
         },
-        
+
         __shorthandWarningIcon: function() {
              var img = Util.createElement('img');
              img.setAttribute('src', CSS.fixPath('ui/images/notice.gif'));
              img.style.margin = '0 2px -5px 0';
-             img.setAttribute('title', 'Currently this property has specific values set for one or more individual sides. Updating the value here will set this property for all sides, overwriting these individual values.');  
+             img.setAttribute('title', 'Currently this property has specific values set for one or more individual sides. Updating the value here will set this property for all sides, overwriting these individual values.');
              return img;
         },
-        
+
         __inputField: function(prop, id, validate, hidden, init) {
             var row = Util.createElement('tr', UI.CSS.controlsId + '-row' + id);
             id = UI.CSS.controlsId + id;
-            
+
             var labelCell = Util.createElement('td');
             var fieldCell = Util.createElement('td');
 
             var field = Util.createElement('input', id);
             field.setAttribute('type', 'text');
             field.className = 'chameleon-input-text';
-            
-            
+
+
             var val = UI.CSS.__getPropValue(prop);
             if (val !== false) {
                 field.value = val;
             } else {
                 labelCell.appendChild(UI.CSS.__shorthandWarningIcon());
             }
-            
+
             Util.addEvent(field, 'blur', validate);
             if (init) {
                 Util.addEvent(field, 'focus', init);
             }
-            
+
             labelCell.appendChild(document.createTextNode(UI.CSS.__formatProp(prop) + ': '));
             labelCell.className = 'label';
 
             fieldCell.appendChild(field);
-             
+
             row.appendChild(labelCell);
             row.appendChild(fieldCell);
-            
+
             if (prop == 'color' || prop.indexOf('-color') != -1) {
                 var colorCell = Util.createElement('td');
                 var colorPicker = Util.createElement('div', UI.CSS.controlsId + '-color-picker-' + prop);
 
                 colorPicker.setAttribute('title', 'Open color picker');
                 UI.CSS.__setColorDisplay(prop, field.value, field, colorPicker);
-                
+
                 Util.addEvent(colorPicker, 'click', UI.CSS.__displayColorPicker);
                 if (init) {
                     Util.addEvent(colorPicker, 'click', init);
@@ -2415,12 +2415,12 @@ String.prototype.trim = function() {
             } else if (prop.indexOf('-image') != -1) {
                 var imgCell = Util.createElement('td');
                 var imgPicker = Util.createElement('div', UI.CSS.controlsId + '-background-image-picker');
-                
+
                 UI.CSS.__setImageDisplay(field.value, field, imgPicker);
 
                 imgCell.appendChild(imgPicker);
                 row.appendChild(imgCell);
-                
+
             } else {
                 fieldCell.setAttribute('colspan', '2');
             }
@@ -2429,8 +2429,8 @@ String.prototype.trim = function() {
             }
             return {node: row, meta: (field.value == 'none') ? false : field.value};
         },
-        
-        
+
+
         __selectBox: function(prop, id, validate, src, hidden) {
             var row = Util.createElement('tr', UI.CSS.controlsId + '-row' + id);
             id = UI.CSS.controlsId + id;
@@ -2438,7 +2438,7 @@ String.prototype.trim = function() {
             var labelCell = Util.createElement('td');
             var fieldCell = Util.createElement('td');
             fieldCell.setAttribute('colspan', '2');
-            
+
             var currentValue = UI.CSS.__getPropValue(prop);
             if (currentValue === false) {
                 labelCell.appendChild(UI.CSS.__shorthandWarningIcon());
@@ -2456,7 +2456,7 @@ String.prototype.trim = function() {
 
             var selected = false;
             var otherSelected = false;
-        
+
             for (var i = 0; i < src.length; ++i) {
                 op = Util.createElement('option');
                 op.setAttribute('value', src[i]);
@@ -2484,9 +2484,9 @@ String.prototype.trim = function() {
 
             return {node: row, meta: {sel: otherSelected, value: currentValue}};
         },
-        
-        
-        
+
+
+
         __createTab: function(str, fn, active, title) {
             var id = 'chameleon-style-tab-' + str.replace(/[\( ]+/, '-').replace(/[\)]+/, '').toLowerCase();
             var tab = Util.createElement('td', id);
@@ -2495,7 +2495,7 @@ String.prototype.trim = function() {
             Util.addEvent(tab, 'click', fn);
             return tab;
         },
-        
+
         __addButtons: function() {
             var p = Util.createElement('p', 'chameleon-style-buttons');
             p.style.textAlign = 'right';
@@ -2506,7 +2506,7 @@ String.prototype.trim = function() {
 
             return p;
         },
-        
+
         __formatProp: function(txt) {
             if (txt.length > 15 && txt.indexOf('-') != -1) {
                 return txt.split('-').slice(1).join('-');
@@ -2519,7 +2519,7 @@ String.prototype.trim = function() {
 
         __loadImagePicker: function(e) {
             var target = e.target || e.srcElement;
-        
+
             if (target.value) {
                 UI.statusMsg('Loading file list for ' + target.value + '...', 'chameleon-working');
                 FileHandler.getFiles(target.value);
@@ -2528,7 +2528,7 @@ String.prototype.trim = function() {
                 FileHandler.getFiles('root');
             }
         },
-        
+
         displayImagePicker: function(xmldata) {
             UI.clearStatusMsg();
 
@@ -2537,15 +2537,15 @@ String.prototype.trim = function() {
 
             var coords = Pos.getElement(document.getElementById('chameleon-style-box'));
             box = UI.makeDraggableBox('chameleon-file-box', coords.x + UI.boxOffsetX, coords.y + UI.boxOffsetY);
-            
+
             if (xmldata.firstChild.nodeName.toLowerCase() == 'chameleon_error') {
                 UI.statusMsg('There was an error reading files from the server:\n' + xmldata.firstChild.firstChild.nodeValue + '.', 'chameleon-error');
                 return;
             }
-            
+
             var files = xmldata.firstChild;
             var hasFiles = false;
-        
+
             var infoTable = Util.createElement('table');
             var infoTableBody = Util.createElement('tbody');
             var infoTableRow = Util.createElement('tr');
@@ -2561,7 +2561,7 @@ String.prototype.trim = function() {
                 Util.addEvent(parentLink, 'click', UI.CSS.__loadImagePicker);
                 parentCell.appendChild(parentLink);
                 infoTableRow.appendChild(parentCell);
-            } 
+            }
 
             var location = Util.createElement('td', 'chameleon-files-location');
             var locationPara = Util.createElement('p');
@@ -2575,7 +2575,7 @@ String.prototype.trim = function() {
             infoTableBody.appendChild(infoTableRow);
             infoTable.appendChild(infoTableBody);
             box.appendChild(infoTable);
-        
+
             var fileList = Util.createElement('div');
 
             for (var i = 0; i < files.childNodes.length; ++i) {
@@ -2609,14 +2609,14 @@ String.prototype.trim = function() {
 
             UI.setOverflow(fileList, 350);
         },
-        
-        
-   
-   
+
+
+
+
         __displayColorPicker: function(e) {
             var box = document.getElementById('chameleon-color-box');
             if (box) UI.closeBoxes(true, box);
-            
+
             var extraColors = ['000000', '333333', '666666', '999999', 'cccccc', 'ffffff', 'ff0000', '00ff00', '0000ff', 'ffff00', 'ff00ff', '00ffff'];
 
             var coords = Pos.getElement(document.getElementById('chameleon-style-box'));
@@ -2633,9 +2633,9 @@ String.prototype.trim = function() {
                         while (col.length < 6) {
                             col = '0' + col;
                         }
-                        
+
                         yi = (xx > 17) ? 5 : 0;
-                                                
+
                         var colorTab = Util.createElement('div');
                         colorTab.style.position = 'absolute';
                         colorTab.style.left = ((15 * x) + 17) + 'px';
@@ -2646,7 +2646,7 @@ String.prototype.trim = function() {
                         colorTab.setAttribute('title', '#' + col);
 
                         container.appendChild(colorTab);
-                        
+
                         if (x == 17) {
                             x = 0;
                             if (xx == 35) {
@@ -2659,10 +2659,10 @@ String.prototype.trim = function() {
                             ++x;
                             ++xx;
                         }
-                    }                
+                    }
                 }
             }
-            
+
             for (var i = 0; i < extraColors.length; ++i) {
                 var colorTab = Util.createElement('div');
                 colorTab.style.position = 'absolute';
@@ -2675,23 +2675,23 @@ String.prototype.trim = function() {
 
                 container.appendChild(colorTab);
             }
-            
+
             Util.addEvent(container, 'click', Check.color);
 
             container.style.height = (((y + yi) * 15) + 20) + 'px';
 
             UI.addToDoc(box);
         },
-        
-      
-      
+
+
+
         __setColorType: function(e) {
             var target = e.target || e.srcElement;
 
             UI.CSS.colorType = UI.CSS.getBorderProp(target.id);
         },
-        
-        
+
+
         getBorderProp: function(id) {
             var separators = ['color-picker', 'input', 'select'];
             for (var i = 0; i < separators.length; ++i) {
@@ -2712,36 +2712,36 @@ String.prototype.trim = function() {
                 if (!p1 && !p2 && !p3 && !p4) {
                     return false;
                 }
-                
+
                 if (!(p1 && p2 && p3 && p4)) {
                     return '';
                 }
-                
-                return (p1 == p2 && p2 == p3 && p3 == p4) ?  p1 : ''; 
+
+                return (p1 == p2 && p2 == p3 && p3 == p4) ?  p1 : '';
             }
             return false;
         }
-          
+
     };
-   
-    
-    
+
+
+
     UI.HotSpots = {
         __selectors: null,
         __counter: 0,
         __lookup: {},
-        
+
         init: function() {
             var box = Util.createElement('div', 'chameleon-launch-hotspots');
             box.appendChild(document.createTextNode('Load hotspots'));
             box.style.zIndex = ++UI.zIndex;
-            
+
             box.hotSpotsOn = false;
             Util.addEvent(box, 'click', UI.HotSpots.__load);
-            
+
             UI.addToDoc(box);
         },
-        
+
         getString: function() {
             var sel = CSS.Selector.get();
             if (UI.HotSpots.__selectors[sel]) {
@@ -2749,21 +2749,21 @@ String.prototype.trim = function() {
             }
             return '"' + sel + '"';
         },
-        
+
         __load: function(e) {
             var target = e.target || e.srcElement;
             target.hotSpotsOn = !target.hotSpotsOn;
-            
+
             UI.HotSpots.__counter = 0;
             UI.HotSpots.__lookup = {};
-            
+
             if (!target.hotSpotsOn) {
                 target.firstChild.nodeValue = 'Show hotspots';
                 UI.HotSpots.__clear();
                 return;
             }
             target.firstChild.nodeValue = 'Hide hotspots';
-          
+
             if (!UI.HotSpots.__selectors) {
                 UI.HotSpots.__selectors = {};
                 UI.HotSpots.__selectors['body'] = 'The body of the page (all pages)';
@@ -2798,55 +2798,55 @@ String.prototype.trim = function() {
                 UI.HotSpots.__selectors['table.generaltable tr.r0'] = 'Odd numbered table rows';
                 UI.HotSpots.__selectors['table.generaltable tr.r1'] = 'Even numbered table rows';
             }
-            
+
             UI.HotSpots.__parse();
         },
-        
+
         __parse: function() {
             var pos = {};
-            
+
             for (var sel in UI.HotSpots.__selectors) {
                 var matches = cssQuery(sel);
                 var nm = matches.length;
                 if (!nm) {
                     continue;
                 }
-                
+
                 for (var j = 0; j < nm; ++j) {
                     if (matches[j].hasAttribute && matches[j].hasAttribute('id') && matches[j].getAttribute('id').indexOf('chameleon') != -1) {
                         continue;
                     }
-                    
+
                     if (!matches[j].chameleonHotspotId) {
                         var coords = Pos.getElement(matches[j]);
                         coords.x = 20 * Math.round(coords.x / 20);
                         coords.y = 20 * Math.round(coords.y / 20);
-                        
+
                         while (pos[coords.x + '-' + coords.y]) {
                             coords.x += 20;
                         }
                         pos[coords.x + '-' + coords.y] = true;
-                        
+
                         var button = UI.HotSpots.__makeButton(UI.HotSpots.__selectors[sel], coords.x, coords.y);
                         UI.addToDoc(button);
-                        
+
                         matches[j].chameleonHotspotId = button.id;
                         UI.HotSpots.__lookup[button.id] = sel;
                         break;
                     } else {
                         UI.HotSpots.__lookup[matches[j].chameleonHotspotId] += '|' + sel;
                         document.getElementById(matches[j].chameleonHotspotId).title += ", " + UI.HotSpots.__selectors[sel];
-                        
+
                         break;
                     }
                 }
             }
-            
+
             pos = null;
             matches = null;
         },
-        
-        
+
+
         __clear: function() {
             for (var sel in UI.HotSpots.__selectors) {
                 var matches = cssQuery(sel);
@@ -2854,7 +2854,7 @@ String.prototype.trim = function() {
                 if (!nm) {
                     continue;
                 }
-                
+
                 for (var j = 0; j < nm; ++j) {
                     if (matches[j].chameleonHotspotId) {
                         UI.HotSpots.__lookup[matches[j].chameleonHotspotId] = null;
@@ -2863,10 +2863,10 @@ String.prototype.trim = function() {
                         break;
                     }
                 }
-            }          
+            }
         },
-     
-        
+
+
         __makeButton: function(title, x, y) {
             var d = Util.createElement('img', 'chameleon-hotspot-' + ++UI.HotSpots.__counter);
             d.style.width = d.style.height = '20px';
@@ -2874,33 +2874,33 @@ String.prototype.trim = function() {
             d.style.left = (x - 5) + 'px';
             d.style.top = (y + 15) + 'px';
             d.style.cursor = 'pointer';
-            
+
             d.setAttribute('src', CSS.fixPath('ui/images/hotspot.gif'));
             d.setAttribute('title', title);
             Util.addEvent(d, 'click', UI.HotSpots.__launch);
             return d;
         },
-        
+
         __launch: function(e) {
             var target = e.target || e.srcElement;
             var selectors = UI.HotSpots.__lookup[target.id].split('|');
-                       
+
             var coords = Pos.getMouse(e);
-            
+
             hotspotMode = true;
-                
+
             var box = document.getElementById('chameleon-selector-box');
             if (box) UI.closeBoxes(true, box);
-                
+
             var box = UI.makeDraggableBox('chameleon-selector-box', coords.x, coords.y);
-            
+
             if (selectors.length > 1) {
                 var instructions = Util.createElement('p');
                 instructions.appendChild(document.createTextNode('This element matches more than one selector, please choose which you would like to style.'));
                 instructions.className = 'chameleon-instructions';
                 box.appendChild(instructions);
             }
-            
+
             var selList = Util.createElement('ul');
             for (var i = 0; i < selectors.length; ++i) {
                 var item = Util.createElement('li');
@@ -2908,38 +2908,38 @@ String.prototype.trim = function() {
                 itemLink.appendChild(document.createTextNode('Add/Edit styles for ' + UI.HotSpots.__selectors[selectors[i]]));
                 itemLink.value = selectors[i];
                 Util.addEvent(itemLink, 'click', UI.HotSpots.__launchCSSEditor);
-                    
+
                 item.appendChild(itemLink);
-                    
+
                 selList.appendChild(item);
-                    
-                box.appendChild(selList);   
+
+                box.appendChild(selList);
             }
             UI.addToDoc(box);
         },
-        
+
         __launchCSSEditor: function(e, value) {
             var target = e.target || e.srcElement;
-            
+
             if (!value) {
                 var value = target.value;
             }
             CSS.Selector.set(value);
             UI.CSS.editWindow(e);
         }
-        
+
     };
-   
 
-    
-   
-    
-    
+
+
+
+
+
     var Check = {
         color: function(e) {
             var target = e.target || e.srcElement;
             if (e.type == 'click' && !target.value) return;
-            
+
             var originalColor = UI.CSS.__getPropValue(UI.CSS.colorType);
             if (originalColor != target.value) {
                 CSS.setPropValue(UI.CSS.colorType, target.value);
@@ -2949,7 +2949,7 @@ String.prototype.trim = function() {
                 UI.closeBoxes(true, target.parentNode.parentNode);
             }
         },
-        
+
         backgroundImage: function(e) {
             var target = e.target || e.srcElement;
 
@@ -2958,20 +2958,20 @@ String.prototype.trim = function() {
             if (e.type == 'click') {
                 UI.closeBoxes(true, document.getElementById('chameleon-file-box'));
             }
-        },   
-        
+        },
+
         backgroundRepeat: function(e) {
             var target = e.target || e.srcElement;
             var value = target.options[target.options.selectedIndex].value.toLowerCase();
             CSS.setPropValue('background-repeat', value);
         },
-        
+
         backgroundPosition: function(e) {
             var target = e.target || e.srcElement;
             var value = target.options[target.options.selectedIndex].value.toLowerCase();
             CSS.setPropValue('background-position', value);
         },
-        
+
         borderWidth: function(e) {
             var target = e.target || e.srcElement;
 
@@ -2991,41 +2991,41 @@ String.prototype.trim = function() {
             } else if (!hasUnits) {
                 target.value = val + 'px';
             }
-            CSS.setPropValue(UI.CSS.getBorderProp(target.id), target.value);  
+            CSS.setPropValue(UI.CSS.getBorderProp(target.id), target.value);
         },
-        
+
         borderStyle: function(e) {
             var target = e.target || e.srcElement;
             var value = target.options[target.options.selectedIndex].value.toLowerCase();
             CSS.setPropValue(UI.CSS.getBorderProp(target.id), value);
         },
-        
+
         fontStyle: function(e) {
             var target = e.target || e.srcElement;
             var value = target.options[target.options.selectedIndex].value.toLowerCase();
             CSS.setPropValue('font-style', value);
         },
-        
+
         fontWeight: function(e) {
             var target = e.target || e.srcElement;
             var value = target.options[target.options.selectedIndex].value.toLowerCase();
             CSS.setPropValue('font-weight', value);
         },
-        
+
         fontSize: function(e) {
             var target = e.target || e.srcElement;
             CSS.setPropValue('font-size', target.value);
         },
-        
+
         lineHeight: function(e) {
             var target = e.target || e.srcElement;
             CSS.setPropValue('line-height', target.value);
         },
-        
+
         fontFamily: function(e) {
             var target = e.target || e.srcElement;
             var n = target.nodeName.toLowerCase();
-            
+
             if (n == 'select') {
                 var value = target.options[target.options.selectedIndex].value.toLowerCase();
                 var fontFamilyInputRow = target.parentNode.parentNode.nextSibling;
@@ -3045,21 +3045,21 @@ String.prototype.trim = function() {
                 CSS.setPropValue('font-family', target.value);
             }
         },
-        
+
         textDecoration: function(e) {
             var target = e.target || e.srcElement;
             var value = target.options[target.options.selectedIndex].value.toLowerCase();
             CSS.setPropValue('text-decoration', value);
         },
-        
+
         textAlign: function(e) {
             var target = e.target || e.srcElement;
             var value = target.options[target.options.selectedIndex].value.toLowerCase();
             CSS.setPropValue('text-align', value);
         }
     };
-    
-    
+
+
 
 
 
@@ -3106,18 +3106,18 @@ String.prototype.trim = function() {
 
     var setup = function() {
         UI.clearStatusMsg();
-        
+
         // UI.HotSpots.init();
-        
+
         var crumb = new cookie('chameleon_server_save_required');
         if (crumb.read() == 1) {
             CSS.requireRemoteSave();
         }
-        
+
         Util.addEvent(window, 'unload', CSS.unloadPrompt);
         Util.addEvent(window, 'unload', Util.cleanUp);
         Util.addEvent(document, 'mousedown', UI.Selector.editWindow);
-        
+
         //CSS.clearTheme();
     };
 
index 63ef82d..51a479d 100644 (file)
@@ -1,9 +1,9 @@
-/* sorry about the massive abuse of !important ;-) this tries to prevent user changes in CSS being 
+/* sorry about the massive abuse of !important ;-) this tries to prevent user changes in CSS being
 inherited by the user interface */
 
 /* general box styles */
-#chameleon-selector-box, #chameleon-style-box, 
-#chameleon-color-box, #chameleon-file-box, 
+#chameleon-selector-box, #chameleon-style-box,
+#chameleon-color-box, #chameleon-file-box,
 #chameleon-export-box {
   position: absolute !important;
   left: 0; top: 0;
@@ -55,8 +55,8 @@ inherited by the user interface */
 }
 
 /* drag handles */
-#chameleon-selector-box #chameleon-selector-box-handle, 
-#chameleon-style-box #chameleon-style-box-handle, 
+#chameleon-selector-box #chameleon-selector-box-handle,
+#chameleon-style-box #chameleon-style-box-handle,
 #chameleon-color-box #chameleon-color-box-handle,
 #chameleon-file-box #chameleon-file-box-handle,
 #chameleon-export-box #chameleon-export-box-handle {
@@ -64,8 +64,8 @@ inherited by the user interface */
   background: #ddd !important;
 }
 
-#chameleon-selector-box #chameleon-selector-box-close, 
-#chameleon-style-box #chameleon-style-box-close, 
+#chameleon-selector-box #chameleon-selector-box-close,
+#chameleon-style-box #chameleon-style-box-close,
 #chameleon-color-box #chameleon-color-box-close,
 #chameleon-file-box #chameleon-file-box-close {
   padding: 1px 5px !important;
@@ -324,9 +324,9 @@ body #chameleon-color-box {
 
 /* the buttons */
 
-#chameleon-selector-box input.chameleon-btn, 
-#chameleon-style-box input.chameleon-btn, 
-#chameleon-color-box input.chameleon-btn, 
+#chameleon-selector-box input.chameleon-btn,
+#chameleon-style-box input.chameleon-btn,
+#chameleon-color-box input.chameleon-btn,
 #chameleon-file-box input.chameleon-btn {
   cursor: pointer !important;
   margin-bottom: 3px !important;
index 57ef7a4..1553d73 100644 (file)
@@ -49,7 +49,7 @@ if (isset($_POST['css'])) {
             die('CHAMELEON_ERROR ' . $chameleon->error);
         }
     }
-    
+
 } else {
 
     $css = $chameleon->read();
index a6e1381..1205060 100644 (file)
@@ -28,7 +28,7 @@
  *
  */
 /**
- * <p>Sarissa is a utility class. Provides "static" methods for DOMDocument and 
+ * <p>Sarissa is a utility class. Provides "static" methods for DOMDocument and
  * XMLHTTP objects, DOM Node serializatrion to XML strings and other goodies.</p>
  * @constructor
  */
@@ -126,14 +126,14 @@ if(_SARISSA_IS_IE){
         };
         return oDoc;
     };
-    // see non-IE version   
+    // see non-IE version
     Sarissa.getParseErrorText = function (oDoc) {
         var parseErrorText = Sarissa.PARSED_OK;
         if(oDoc.parseError != 0){
-            parseErrorText = "XML Parsing Error: " + oDoc.parseError.reason + 
-                "\nLocation: " + oDoc.parseError.url + 
-                "\nLine Number " + oDoc.parseError.line + ", Column " + 
-                oDoc.parseError.linepos + 
+            parseErrorText = "XML Parsing Error: " + oDoc.parseError.reason +
+                "\nLocation: " + oDoc.parseError.url&nbs