1 /************************************************************************/
3 /************************************************************************/
4 /* Copyright (c) 2002 - 2010 */
5 /* Inclusive Design Institute */
8 /* This program is free software. You can redistribute it and/or */
9 /* modify it under the terms of the GNU General Public License */
10 /* as published by the Free Software Foundation. */
11 /************************************************************************/
14 var ATutor = ATutor || {};
15 ATutor.users = ATutor.users || {};
16 ATutor.users.preferences = ATutor.users.preferences || {};
20 * A function to open a popup window
22 ATutor.poptastic = function (url) {
23 var newwindow=window.open(url,'popup','height=600,width=600,scrollbars=yes,resizable=yes');
32 var getexpirydate = function (nodays) {
33 var Today = new Date();
34 var nomilli = Date.parse(Today);
35 Today.setTime(nomilli + nodays * 24 * 60 * 60 * 1000);
36 return Today.toUTCString();
39 ATutor.setcookie = function (name, value, duration) {
40 document.cookie = name + "=" + escape(value) + ";path=/;expires=" + getexpirydate(duration);;
41 if( !ATutor.getcookie(name) ){
48 ATutor.getcookie = function (cookiename) {
49 var cookiestring = "" + document.cookie;
50 var index1 = cookiestring.indexOf(cookiename);
51 if (index1 == -1 || cookiename == "") {
54 var index2 = cookiestring.indexOf( ';', index1);
56 index2 = cookiestring.length;
58 return unescape(cookiestring.substring(index1 + cookiename.length + 1, index2));
61 //styles block for user preferences
62 //used by ATutor.users.preferences.setStyles
63 ATutor.users.preferences.user_styles =
64 '<style id="pref_style" type="text/css">' +
67 'FG_COLOR BG_COLOR FONT_SIZE FONT_FAMILY' +
69 'h1, h2, h3, h4, h5, h6 {' +
78 '.editor_buttontab {' +
81 '.editor_tab_selected {' +
87 '.test_instruction {' +
91 'FG_COLOR BG_COLOR FONT_SIZE FONT_FAMILY'+
99 'a:link, a:visited, a:active { ' +
100 'FG_COLOR BG_COLOR ' +
102 'a.dropdown-title {' +
103 'FG_COLOR BG_COLOR' +
105 '.button, .button2 {' +
106 'FG_COLOR BG_COLOR' +
108 '.editorsmallbox, .editorlargebox {' +
109 'FG_COLOR BG_COLOR' +
112 'FG_COLOR BG_COLOR FONT_SIZE FONT_FAMILY' +
114 '.prefs_buttontab {' +
115 'FG_COLOR BG_COLOR FONT_SIZE FONT_FAMILY' +
118 'FG_COLOR BG_COLOR FONT_FAMILY' +
120 '.prefs_tab_selected {' +
121 'FG_COLOR BG_COLOR FONT_SIZE FONT_FAMILY' +
124 'FG_COLOR BG_COLOR FONT_FAMILY' +
127 'FG_COLOR BG_COLOR FONT_FAMILY' +
130 'FG_COLOR BG_COLOR' +
133 'FG_COLOR BG_COLOR' +
136 'FG_COLOR BG_COLOR' +
139 'FG_COLOR BG_COLOR' +
142 'FG_COLOR BG_COLOR' +
145 'FG_COLOR BG_COLOR' +
147 'td.dropdown-heading {' +
148 'FG_COLOR BG_COLOR' +
151 'FG_COLOR BG_COLOR' +
153 'td.dropdown a, td.dropdown a:visited {' +
154 'FG_COLOR BG_COLOR' +
156 'td.dropdown strong {' +
157 'FG_COLOR BG_COLOR' +
159 'h5.search-results {' +
160 'FG_COLOR BG_COLOR' +
162 'small.search-info {' +
163 'FG_COLOR BG_COLOR' +
165 'p.search-description {' +
166 'FG_COLOR BG_COLOR' +
169 'FG_COLOR BG_COLOR' +
171 'table.tabbed-table th.tab {' +
172 'FG_COLOR BG_COLOR' +
174 'table.tabbed-table th.selected {' +
175 'FG_COLOR BG_COLOR' +
177 'div#sub-navigation {' +
178 'FG_COLOR BG_COLOR' +
180 'div#sub-navigation strong {' +
181 'FG_COLOR BG_COLOR' +
184 'FG_COLOR BG_COLOR' +
187 'FG_COLOR BG_COLOR' +
190 'FG_COLOR BG_COLOR' +
193 'FG_COLOR BG_COLOR' +
196 'FG_COLOR BG_COLOR' +
199 'FG_COLOR BG_COLOR' +
202 'FG_COLOR BG_COLOR' +
204 'table.data th a {' +
205 'FG_COLOR BG_COLOR' +
207 'table.data tbody th {' +
208 'FG_COLOR BG_COLOR' +
210 'table.data tbody tr.selected {' +
211 'FG_COLOR BG_COLOR' +
213 'table.data tfoot {' +
214 'FG_COLOR BG_COLOR' +
216 'table.data tfoot tr:first-child td {' +
217 'FG_COLOR BG_COLOR' +
219 'table.data tfoot input {' +
220 'FG_COLOR BG_COLOR' +
223 'FG_COLOR BG_COLOR' +
226 'FG_COLOR BG_COLOR' +
229 'FG_COLOR BG_COLOR' +
232 'FG_COLOR BG_COLOR' +
235 'FG_COLOR BG_COLOR' +
238 'FG_COLOR BG_COLOR' +
240 'div.news span.date {' +
241 'FG_COLOR BG_COLOR' +
244 'FG_COLOR BG_COLOR' +
246 'div.dropdown-heading {' +
247 'FG_COLOR BG_COLOR' +
250 'FG_COLOR BG_COLOR' +
253 'FG_COLOR BG_COLOR' +
256 'FG_COLOR BG_COLOR' +
259 'FG_COLOR BG_COLOR' +
261 'div.tabs a.selected {' +
262 'FG_COLOR BG_COLOR' +
265 'FG_COLOR BG_COLOR' +
268 'FG_COLOR BG_COLOR' +
270 'div.box a:visited {' +
271 'FG_COLOR BG_COLOR' +
274 'FG_COLOR BG_COLOR' +
277 'FG_COLOR BG_COLOR' +
280 'FG_COLOR BG_COLOR' +
282 'fieldset#shortcuts {' +
283 'FG_COLOR BG_COLOR' +
286 'FG_COLOR BG_COLOR' +
288 'div#content-test ol ul li{' +
289 'FG_COLOR BG_COLOR' +
291 'div#content-info {' +
292 'FG_COLOR BG_COLOR' +
295 'FG_COLOR BG_COLOR' +
298 'FG_COLOR BG_COLOR' +
300 '#forum-thread li {' +
301 'FG_COLOR BG_COLOR' +
303 '#forum-thread li.even {' +
304 'FG_COLOR BG_COLOR' +
306 '#forum-thread li.odd {' +
307 'FG_COLOR BG_COLOR' +
309 'div.forum-post-ctrl span {' +
310 'FG_COLOR BG_COLOR' +
312 'div.forum-post-content p.date {' +
313 'FG_COLOR BG_COLOR' +
315 'div.forum-paginator{' +
316 'FG_COLOR BG_COLOR' +
318 'div#topnavlistcontainer {' +
319 'FG_COLOR BG_COLOR' +
321 'ul#topnavlist li a {' +
322 'FG_COLOR BG_COLOR' +
325 'FG_COLOR BG_COLOR' +
327 '.crumbcontainer {' +
328 'FG_COLOR BG_COLOR' +
331 'FG_COLOR BG_COLOR' +
333 'ul#topnavlist li a.selected {' +
334 'FG_COLOR BG_COLOR' +
336 'ol#tools>li:hover {' +
337 'FG_COLOR BG_COLOR' +
340 'FG_COLOR BG_COLOR' +
342 'dl.browse-course {' +
343 'FG_COLOR BG_COLOR' +
345 'legend.group_form{' +
346 'FG_COLOR BG_COLOR' +
348 'div.column_equivalent{' +
349 'FG_COLOR BG_COLOR' +
351 'div.resource_box{' +
352 'FG_COLOR BG_COLOR' +
354 'h2.alternatives_to{' +
355 'FG_COLOR BG_COLOR' +
357 'div.alternative_box{' +
358 'FG_COLOR BG_COLOR' +
360 'div.alternative_box legend {' +
361 'FG_COLOR BG_COLOR' +
363 'div.resource_box legend {' +
364 'FG_COLOR BG_COLOR' +
367 'FG_COLOR BG_COLOR' +
370 'FG_COLOR BG_COLOR' +
372 'div.input-form div.row {' +
373 'FG_COLOR BG_COLOR' +
375 'input[type=checkbox]{' +
376 'FG_COLOR BG_COLOR' +
378 'div.input-form div.buttons input {' +
379 'FG_COLOR BG_COLOR' +
381 'div.input-form div.row_alternatives {' +
382 'FG_COLOR BG_COLOR' +
384 'a:active, a:hover, a:focus, .highlight, a.highlight {' +
385 'HL_COLOR FG_COLOR }' +
386 'ul#topnavlist li a:hover, ul#topnavlist li a:focus, ul#topnavlist li a.active {' +
387 'HL_COLOR FG_COLOR' +
390 'background-color: #FF0000; ; FG_COLOR' +
392 '.button:focus, .button2:focus {' +
393 'background-color: #FF0000; ; FG_COLOR' +
395 'table.data tfoot {' +
396 'HL_COLOR FG_COLOR' +
399 'HL_COLOR FG_COLOR FONT_SIZE FONT_FAMILY' +
401 '.buttontab selected {' +
402 'HL_COLOR FG_COLOR' +
404 'td.dropdown a:hover {' +
405 'HL_COLOR FG_COLOR' +
407 'table.tabbed-table th.tab:hover {' +
408 'HL_COLOR FG_COLOR' +
410 'table.tabbed-table th.tab a:focus {' +
411 'HL_COLOR FG_COLOR' +
413 'table.tabbed-table a, table.tabbed-table a:visited, table.tabbed-table a:hover {' +
414 'HL_COLOR FG_COLOR' +
416 'div#top-links a:focus{' +
417 'HL_COLOR FG_COLOR' +
419 'a#editor-link:hover {' +
420 'HL_COLOR FG_COLOR' +
422 'table.data tbody tr:hover {' +
423 'HL_COLOR FG_COLOR' +
425 'table.data tfoot input:focus {' +
426 'HL_COLOR FG_COLOR' +
428 'div.home-link:hover {' +
429 'HL_COLOR FG_COLOR' +
431 '#header a:hover {' +
432 'HL_COLOR FG_COLOR' +
434 'div.tabs a:hover, div.tabs a.active {' +
435 'HL_COLOR FG_COLOR' +
437 'div.course:hover {' +
438 'HL_COLOR FG_COLOR' +
440 '#navlist li a:hover, #navlist li a:active {' +
441 'HL_COLOR FG_COLOR' +
443 'input[type=image].fl-force-right {' +
444 'BG_COLOR FG_COLOR' +
446 /** Armin 23.09.2010 */
448 'BG_COLOR FG_COLOR' +
450 'div.recent_activity_box {' +
451 'BG_COLOR FG_COLOR' +
453 'div.current_box {' +
454 'BG_COLOR FG_COLOR' +
457 'BG_COLOR FG_COLOR' +
460 'BG_COLOR FG_COLOR' +
462 /** Armin 23.09.2010 */
467 * Substitutes styles into styles block above and then places those styles on the page
469 ATutor.users.preferences.setStyles = function (bg_color, fg_color, hl_color, font, font_size) {
470 var font_style = font ? 'font-family:' + font + ' !important;\n' : '';
471 var font_size_style = font_size ? 'font-size:' + font_size + 'em !important;\n' : '';
472 var bg_color_style = bg_color ? 'background-color: #' + bg_color + ' !important;\n' : '';
473 var fg_color_style = fg_color ? 'color: #' + fg_color + ' !important;\n' : '';
474 var hl_color_style = hl_color ? 'background-color: #' + hl_color + '! important;\n' : '';
476 var pref_style = ATutor.users.preferences.user_styles.replace(/FONT_FAMILY/g, font_style).replace(/FONT_SIZE/g, font_size_style).replace(/BG_COLOR/g, bg_color_style).replace(/FG_COLOR/g, fg_color_style).replace(/HL_COLOR/g, hl_color_style);
477 jQuery('#pref_style').replaceWith(pref_style);
478 if (window.opener) jQuery('#pref_style', window.opener.document).replaceWith(pref_style);
482 * Adds click hander to links with id pref_wiz_launcher
484 ATutor.users.preferences.addPrefWizClickHandler = function () {
485 var launcherArray = jQuery(".pref_wiz_launcher");
486 launcherArray.click(function() {
487 var query_string = "";
488 if (ATutor.users.preferences.course_id !== "") {
489 query_string = 'course_id=' + ATutor.users.preferences.course_id;
491 if (query_string !== "") {
492 query_string = "?" + query_string;
494 window.open(ATutor.base_href + 'users/pref_wizard/index.php' + query_string,'prefWizWindow','menubar=0,scrollbars=1,resizable=1,width=640,height=580');