Mercurial > hg > digilib
comparison client/digitallibrary/jquery/jquery.digilib.js @ 703:d16dffcaeee1 jquery
cosmetics
author | hertzhaft |
---|---|
date | Sat, 29 Jan 2011 23:50:06 +0100 |
parents | 89ff5133d1c1 |
children | 1e45fb7f2e8b |
comparison
equal
deleted
inserted
replaced
702:89ff5133d1c1 | 703:d16dffcaeee1 |
---|---|
280 // create HTML structure for scaler | 280 // create HTML structure for scaler |
281 setupScalerDiv(data); | 281 setupScalerDiv(data); |
282 // add buttons | 282 // add buttons |
283 for (var i = 0; i < elemSettings.visibleButtonSets; ++i) { | 283 for (var i = 0; i < elemSettings.visibleButtonSets; ++i) { |
284 showButtons(data, true, i); | 284 showButtons(data, true, i); |
285 } | 285 }; |
286 // bird's eye view creation | 286 // bird's eye view creation |
287 if (elemSettings.isBirdDivVisible ) { | 287 if (elemSettings.isBirdDivVisible) { |
288 setupBirdDiv(data); | 288 setupBirdDiv(data); |
289 } | 289 }; |
290 // about window creation - TODO: could be deferred? restrict to only one item? | 290 // about window creation - TODO: could be deferred? restrict to only one item? |
291 setupAboutDiv(data); | 291 setupAboutDiv(data); |
292 // TODO: the actual moving code | 292 // TODO: the actual moving code |
293 setupZoomDrag(data); | 293 setupZoomDrag(data); |
294 }); | 294 }); |
295 }, | 295 }, |
296 | 296 |
297 // destroy: clean up digilib | 297 // destroy: clean up digilib |
434 factor = window.prompt("Contrast (-8, 8)", cont); | 434 factor = window.prompt("Contrast (-8, 8)", cont); |
435 } | 435 } |
436 data.settings.cont = factor; | 436 data.settings.cont = factor; |
437 redisplay(data); | 437 redisplay(data); |
438 }, | 438 }, |
439 | 439 |
440 // display more (or less) button sets | 440 // display more (or less) button sets |
441 morebuttons : function (data, more) { | 441 morebuttons : function (data, more) { |
442 var settings = data.settings; | 442 var settings = data.settings; |
443 if (more == null) { | 443 if (more == null) { |
444 // toggle more or less (only works for 2 sets) | 444 // toggle more or less (only works for 2 sets) |
502 if (noprompt == null) { | 502 if (noprompt == null) { |
503 window.prompt("URL reference to the current view", url); | 503 window.prompt("URL reference to the current view", url); |
504 } | 504 } |
505 return url; | 505 return url; |
506 }, | 506 }, |
507 | 507 |
508 // set image quality | 508 // set image quality |
509 setquality : function (data, qual) { | 509 setquality : function (data, qual) { |
510 var oldq = getQuality(data); | 510 var oldq = getQuality(data); |
511 if (qual == null) { | 511 if (qual == null) { |
512 qual = window.prompt("Image quality (0..2)", oldq); | 512 qual = window.prompt("Image quality (0..2)", oldq); |
525 }; | 525 }; |
526 | 526 |
527 // returns parameters from embedded img-element | 527 // returns parameters from embedded img-element |
528 var parseImgParams = function($elem) { | 528 var parseImgParams = function($elem) { |
529 var src = $elem.find('img').first().attr('src'); | 529 var src = $elem.find('img').first().attr('src'); |
530 if (!src) { | 530 if (!src) return null; |
531 return null; | |
532 } | |
533 var pos = src.indexOf('?'); | 531 var pos = src.indexOf('?'); |
534 var query = (pos < 0) ? '' : src.substring(pos + 1); | 532 var query = (pos < 0) ? '' : src.substring(pos + 1); |
535 var scalerUrl = src.substring(0, pos); | 533 var scalerUrl = src.substring(0, pos); |
536 var params = parseQueryString(query); | 534 var params = parseQueryString(query); |
537 params.scalerBaseUrl = scalerUrl; | 535 params.scalerBaseUrl = scalerUrl; |
577 // returns URL and query string for Scaler | 575 // returns URL and query string for Scaler |
578 var getScalerUrl = function (data) { | 576 var getScalerUrl = function (data) { |
579 var settings = data.settings; | 577 var settings = data.settings; |
580 if (settings.scalerBaseUrl == null) { | 578 if (settings.scalerBaseUrl == null) { |
581 alert("ERROR: URL of digilib Scaler servlet missing!"); | 579 alert("ERROR: URL of digilib Scaler servlet missing!"); |
582 } | 580 }; |
583 packParams(data); | 581 packParams(data); |
584 var keys = settings.scalerParamNames; | 582 var keys = settings.scalerParamNames; |
585 var queryString = getParamString(settings, keys, defaults); | 583 var queryString = getParamString(settings, keys, defaults); |
586 var url = settings.scalerBaseUrl + '?' + queryString; | 584 var url = settings.scalerBaseUrl + '?' + queryString; |
587 return url; | 585 return url; |
611 var mk = settings.mk; | 609 var mk = settings.mk; |
612 if (mk.indexOf(";") >= 0) { | 610 if (mk.indexOf(";") >= 0) { |
613 var pa = mk.split(";"); // old format with ";" | 611 var pa = mk.split(";"); // old format with ";" |
614 } else { | 612 } else { |
615 var pa = mk.split(","); // new format | 613 var pa = mk.split(","); // new format |
616 } | 614 }; |
617 for (var i = 0; i < pa.length ; i++) { | 615 for (var i = 0; i < pa.length ; i++) { |
618 var pos = pa[i].split("/"); | 616 var pos = pa[i].split("/"); |
619 if (pos.length > 1) { | 617 if (pos.length > 1) { |
620 marks.push(geom.position(pos[0], pos[1])); | 618 marks.push(geom.position(pos[0], pos[1])); |
621 } | 619 }; |
622 } | 620 }; |
623 } | 621 }; |
624 data.marks = marks; | 622 data.marks = marks; |
625 // mo (Scaler flags) | 623 // mo (Scaler flags) |
626 var flags = {}; | 624 var flags = {}; |
627 if (settings.mo) { | 625 if (settings.mo) { |
628 var pa = settings.mo.split(","); | 626 var pa = settings.mo.split(","); |
629 for (var i = 0; i < pa.length ; i++) { | 627 for (var i = 0; i < pa.length ; i++) { |
630 flags[pa[i]] = pa[i]; | 628 flags[pa[i]] = pa[i]; |
631 } | 629 }; |
632 } | 630 }; |
633 data.scalerFlags = flags; | 631 data.scalerFlags = flags; |
634 retrieveOptionsCookie(data); | 632 retrieveOptionsCookie(data); |
635 }; | 633 }; |
636 | 634 |
637 // put objects back into parameters | 635 // put objects back into parameters |
641 if (data.zoomArea) { | 639 if (data.zoomArea) { |
642 settings.wx = cropFloat(data.zoomArea.x); | 640 settings.wx = cropFloat(data.zoomArea.x); |
643 settings.wy = cropFloat(data.zoomArea.y); | 641 settings.wy = cropFloat(data.zoomArea.y); |
644 settings.ww = cropFloat(data.zoomArea.width); | 642 settings.ww = cropFloat(data.zoomArea.width); |
645 settings.wh = cropFloat(data.zoomArea.height); | 643 settings.wh = cropFloat(data.zoomArea.height); |
646 } | 644 }; |
647 // marks | 645 // marks |
648 if (data.marks) { | 646 if (data.marks) { |
649 settings.mk = ''; | 647 settings.mk = ''; |
650 for (var i = 0; i < data.marks.length; i++) { | 648 for (var i = 0; i < data.marks.length; i++) { |
651 if (i) { | 649 if (i) { |
652 settings.mk += ','; | 650 settings.mk += ','; |
653 } | 651 }; |
654 settings.mk += cropFloat(data.marks[i].x).toString() + '/' + cropFloat(data.marks[i].y).toString(); | 652 settings.mk |
655 } | 653 += cropFloat(data.marks[i].x).toString() + '/' |
656 } | 654 + cropFloat(data.marks[i].y).toString(); |
655 }; | |
656 }; | |
657 // Scaler flags | 657 // Scaler flags |
658 if (data.scalerFlags) { | 658 if (data.scalerFlags) { |
659 var mo = ''; | 659 var mo = ''; |
660 for (var f in data.scalerFlags) { | 660 for (var f in data.scalerFlags) { |
661 if (mo) { | 661 if (mo) { |
663 } | 663 } |
664 mo += f; | 664 mo += f; |
665 } | 665 } |
666 settings.mo = mo; | 666 settings.mo = mo; |
667 } | 667 } |
668 // user interface options | |
668 storeOptionsCookie(data); | 669 storeOptionsCookie(data); |
669 }; | 670 }; |
670 | 671 |
671 var storeOptionsCookie = function (data) { | 672 var storeOptionsCookie = function (data) { |
672 // save digilib options in cookie | 673 // save digilib options in cookie |
689 data.dlOpts.buttons = settings.visibleButtonSets; | 690 data.dlOpts.buttons = settings.visibleButtonSets; |
690 var clop = ''; | 691 var clop = ''; |
691 for (var o in data.dlOpts) { | 692 for (var o in data.dlOpts) { |
692 if (clop) { | 693 if (clop) { |
693 clop += '&'; | 694 clop += '&'; |
694 } | 695 }; |
695 clop += o + '=' + data.dlOpts[o]; | 696 clop += o + '=' + data.dlOpts[o]; |
696 } | 697 }; |
697 if (jQuery.cookie) { | 698 if (jQuery.cookie) { |
698 var ck = "digilib:fn:" + escape(settings.fn) + ":pn:" + settings.pn; | 699 var ck = "digilib:fn:" + escape(settings.fn) + ":pn:" + settings.pn; |
699 console.debug("set cookie=", ck, " value=", clop); | 700 console.debug("set cookie=", ck, " value=", clop); |
700 jQuery.cookie(ck, clop); | 701 jQuery.cookie(ck, clop); |
701 }; | 702 }; |
746 // update location.href (browser URL) in fullscreen mode | 747 // update location.href (browser URL) in fullscreen mode |
747 var url = getDigilibUrl(data); | 748 var url = getDigilibUrl(data); |
748 var history = window.history; | 749 var history = window.history; |
749 if (typeof(history.pushState) === 'function') { | 750 if (typeof(history.pushState) === 'function') { |
750 console.debug("we could modify history, but we don't..."); | 751 console.debug("we could modify history, but we don't..."); |
751 } | 752 }; |
752 window.location = url; | 753 window.location = url; |
753 } else { | 754 } else { |
754 // embedded mode -- just change img src | 755 // embedded mode -- just change img src |
755 var url = getScalerUrl(data); | 756 var url = getScalerUrl(data); |
756 data.$img.attr('src', url); | 757 data.$img.attr('src', url); |
757 // and update bird's eye view | 758 }; |
758 //if (settings.isBirdDivVisible) { | |
759 // renderBirdZoom(data); | |
760 //} | |
761 }; | |
762 }; | 759 }; |
763 | 760 |
764 // returns maximum size for scaler img in fullscreen mode | 761 // returns maximum size for scaler img in fullscreen mode |
765 var getFullscreenImgSize = function($elem) { | 762 var getFullscreenImgSize = function($elem) { |
766 var $win = $(window); | 763 var $win = $(window); |
929 $content.text('Version: ' + settings.version); | 926 $content.text('Version: ' + settings.version); |
930 // click hides | 927 // click hides |
931 $aboutDiv.bind('click.digilib', function () { | 928 $aboutDiv.bind('click.digilib', function () { |
932 settings.isAboutDivVisible = showDiv(settings.isAboutDivVisible, $aboutDiv, 0); | 929 settings.isAboutDivVisible = showDiv(settings.isAboutDivVisible, $aboutDiv, 0); |
933 return false; | 930 return false; |
934 }); | 931 }); |
935 data.$aboutDiv = $aboutDiv; | 932 data.$aboutDiv = $aboutDiv; |
936 }; | 933 }; |
937 | 934 |
938 // shows some window e.g. 'about' (toggle visibility if show is null) | 935 // shows some window e.g. 'about' (toggle visibility if show is null) |
939 var showDiv = function (isVisible, $div, show) { | 936 var showDiv = function (isVisible, $div, show) { |
941 // toggle visibility | 938 // toggle visibility |
942 isVisible = !isVisible; | 939 isVisible = !isVisible; |
943 } else { | 940 } else { |
944 // set visibility | 941 // set visibility |
945 isVisible = show; | 942 isVisible = show; |
946 } | 943 }; |
947 if (isVisible) { | 944 if (isVisible) { |
948 $div.fadeIn(); | 945 $div.fadeIn(); |
949 } else { | 946 } else { |
950 $div.fadeOut(); | 947 $div.fadeOut(); |
951 } | 948 }; |
952 return isVisible; | 949 return isVisible; |
953 }; | 950 }; |
954 | 951 |
955 // display more (or less) button sets | 952 // display more (or less) button sets |
956 var showButtons = function (data, more, setIdx, animated) { | 953 var showButtons = function (data, more, setIdx, animated) { |
961 if (data.$buttonSets && data.$buttonSets[setIdx]) { | 958 if (data.$buttonSets && data.$buttonSets[setIdx]) { |
962 // set exists | 959 // set exists |
963 $set = data.$buttonSets[setIdx]; | 960 $set = data.$buttonSets[setIdx]; |
964 } else { | 961 } else { |
965 $set = createButtons(data, setIdx); | 962 $set = createButtons(data, setIdx); |
966 } | 963 }; |
967 if ($set == null) return false; | 964 if ($set == null) return false; |
968 var btnWidth = $set.width(); | 965 var btnWidth = $set.width(); |
969 // move remaining sets left and show new set | 966 // move remaining sets left and show new set |
970 if (animated) { | 967 if (animated) { |
971 $otherSets.animate({left : '-='+btnWidth+'px'}, 'fast', | 968 $otherSets.animate({left : '-='+btnWidth+'px'}, 'fast', |
972 function () {$set.show();}); | 969 function () {$set.show();}); |
973 } else { | 970 } else { |
974 var oldpos = $otherSets.position(); | 971 var oldpos = $otherSets.position(); |
975 if (oldpos) { | 972 if (oldpos) { |
976 $otherSets.css({left : oldpos.left-btnWidth+'px'}); | 973 $otherSets.css({left : oldpos.left-btnWidth+'px'}); |
977 } | 974 }; |
978 $set.show(); | 975 $set.show(); |
979 } | 976 }; |
980 } else { | 977 } else { |
981 // remove set | 978 // remove set |
982 var $set = data.$buttonSets[setIdx]; | 979 var $set = data.$buttonSets[setIdx]; |
983 if ($set == null) return false; | 980 if ($set == null) return false; |
984 var btnWidth = $set.width(); | 981 var btnWidth = $set.width(); |
988 var $otherSets = data.$elem.find('div.buttons:visible'); | 985 var $otherSets = data.$elem.find('div.buttons:visible'); |
989 if (animated) { | 986 if (animated) { |
990 $otherSets.animate({left : '+='+btnWidth+'px'}, 'fast'); | 987 $otherSets.animate({left : '+='+btnWidth+'px'}, 'fast'); |
991 } else { | 988 } else { |
992 $otherSets.css({left : '+='+btnWidth+'px'}); | 989 $otherSets.css({left : '+='+btnWidth+'px'}); |
993 } | 990 }; |
994 } | 991 }; |
995 return true; | 992 return true; |
996 }; | 993 }; |
997 | 994 |
998 // create Transform from area and $img | 995 // create Transform from area and $img |
999 var getImgTrafo = function ($img, area, rot, hmir, vmir) { | 996 var getImgTrafo = function ($img, area, rot, hmir, vmir) { |
1008 // move [0.5,0.5] to center | 1005 // move [0.5,0.5] to center |
1009 trafo.concat(trafo.getTranslation(geom.position(-0.5, -0.5))); | 1006 trafo.concat(trafo.getTranslation(geom.position(-0.5, -0.5))); |
1010 if (hmir) { | 1007 if (hmir) { |
1011 // mirror about center | 1008 // mirror about center |
1012 trafo.concat(trafo.getMirror('y')); | 1009 trafo.concat(trafo.getMirror('y')); |
1013 } | 1010 }; |
1014 if (vmir) { | 1011 if (vmir) { |
1015 // mirror about center | 1012 // mirror about center |
1016 trafo.concat(trafo.getMirror('x')); | 1013 trafo.concat(trafo.getMirror('x')); |
1017 } | 1014 }; |
1018 if (rot) { | 1015 if (rot) { |
1019 // rotate around center | 1016 // rotate around center |
1020 trafo.concat(trafo.getRotation(parseFloat(rot))); | 1017 trafo.concat(trafo.getRotation(parseFloat(rot))); |
1021 } | 1018 }; |
1022 // move back | 1019 // move back |
1023 trafo.concat(trafo.getTranslation(geom.position(0.5, 0.5))); | 1020 trafo.concat(trafo.getTranslation(geom.position(0.5, 0.5))); |
1024 } | 1021 }; |
1025 // scale to screen position and size | 1022 // scale to screen position and size |
1026 trafo.concat(trafo.getScale(picrect)); | 1023 trafo.concat(trafo.getScale(picrect)); |
1027 trafo.concat(trafo.getTranslation(picrect)); | 1024 trafo.concat(trafo.getTranslation(picrect)); |
1028 return trafo; | 1025 return trafo; |
1029 }; | 1026 }; |
1073 // create mark | 1070 // create mark |
1074 var html = '<div class="mark">'+(i+1)+'</div>'; | 1071 var html = '<div class="mark">'+(i+1)+'</div>'; |
1075 var $mark = $(html); | 1072 var $mark = $(html); |
1076 $elem.append($mark); | 1073 $elem.append($mark); |
1077 $mark.offset({left : mpos.x, top : mpos.y}); | 1074 $mark.offset({left : mpos.x, top : mpos.y}); |
1078 } | 1075 }; |
1079 } | 1076 }; |
1080 }; | 1077 }; |
1081 | 1078 |
1082 // show zoom area indicator on bird's eye view | 1079 // show zoom area indicator on bird's eye view |
1083 var renderbirdZoom = function (data) { | 1080 var renderbirdZoom = function (data) { |
1084 var $birdZoom = data.$birdZoom; | 1081 var $birdZoom = data.$birdZoom; |
1170 // mouseup handler: end moving | 1167 // mouseup handler: end moving |
1171 var zoomEnd = function (evt) { | 1168 var zoomEnd = function (evt) { |
1172 pt2 = geom.position(evt); | 1169 pt2 = geom.position(evt); |
1173 // assume a click and continue if the area is too small | 1170 // assume a click and continue if the area is too small |
1174 var clickRect = geom.rectangle(pt1, pt2); | 1171 var clickRect = geom.rectangle(pt1, pt2); |
1175 if (clickRect.getArea() <= 5) { | 1172 if (clickRect.getArea() <= 5) return false; |
1176 return false; | |
1177 } | |
1178 // hide zoom div | 1173 // hide zoom div |
1179 $zoomDiv.remove(); | 1174 $zoomDiv.remove(); |
1180 // unregister events | 1175 // unregister events |
1181 $elem.unbind("mousemove.digilib", zoomMove); | 1176 $elem.unbind("mousemove.digilib", zoomMove); |
1182 $elem.unbind("mouseup.digilib", zoomEnd); | 1177 $elem.unbind("mouseup.digilib", zoomEnd); |
1278 var $bg = $elem.has('div.bgDrag'); | 1273 var $bg = $elem.has('div.bgDrag'); |
1279 if ($bg.length === 0) { | 1274 if ($bg.length === 0) { |
1280 $bg = $('<div class="bgDrag" style="display:none; position:absolute"/>'); | 1275 $bg = $('<div class="bgDrag" style="display:none; position:absolute"/>'); |
1281 $scaler.before($bg); // set as background | 1276 $scaler.before($bg); // set as background |
1282 }; | 1277 }; |
1283 | 1278 |
1284 var dragStart = function (evt) { | 1279 var dragStart = function (evt) { |
1285 // drag the image and load a new detail on mouse up | 1280 // drag the image and load a new detail on mouse up |
1286 // useless if not zoomed | 1281 // useless if not zoomed |
1287 if (isFullArea(data.zoomArea)) return false; | 1282 if (isFullArea(data.zoomArea)) return false; |
1288 if(evt.preventDefault) evt.preventDefault(); // no Firefox drag and drop (NEEDED?) | 1283 if(evt.preventDefault) evt.preventDefault(); // no Firefox drag and drop (NEEDED?) |
1300 $bg.show(); | 1295 $bg.show(); |
1301 $(document).bind("mousemove.digilib", dragMove); | 1296 $(document).bind("mousemove.digilib", dragMove); |
1302 $(document).bind("mouseup.digilib", dragEnd); | 1297 $(document).bind("mouseup.digilib", dragEnd); |
1303 window.focus(); | 1298 window.focus(); |
1304 }; | 1299 }; |
1305 | 1300 |
1306 var dragMove = function (evt) { | 1301 var dragMove = function (evt) { |
1307 // mousemove handler: drag | 1302 // mousemove handler: drag |
1308 var pos = geom.position(evt); | 1303 var pos = geom.position(evt); |
1309 if(evt.preventDefault) evt.preventDefault(); // no Firefox drag and drop (NEEDED?) | 1304 if(evt.preventDefault) evt.preventDefault(); // no Firefox drag and drop (NEEDED?) |
1310 dx = pos.x - pt1.x; | 1305 dx = pos.x - pt1.x; |
1313 $bg.css({ | 1308 $bg.css({ |
1314 'background-position' : dx + "px " + dy + "px" | 1309 'background-position' : dx + "px " + dy + "px" |
1315 }); | 1310 }); |
1316 return false; | 1311 return false; |
1317 }; | 1312 }; |
1318 | 1313 |
1319 var dragEnd = function (evt) { | 1314 var dragEnd = function (evt) { |
1320 // mouseup handler: reload digilib | 1315 // mouseup handler: reload digilib |
1321 $bg.css({ | 1316 $bg.css({ |
1322 'cursor' : 'default' | 1317 'cursor' : 'default' |
1323 }); | 1318 }); |
1324 $(document).unbind("mousemove.digilib", dragMove); | 1319 $(document).unbind("mousemove.digilib", dragMove); |
1325 $(document).unbind("mouseup.digilib", dragEnd); | 1320 $(document).unbind("mouseup.digilib", dragEnd); |
1326 // calculate relative offset | 1321 // calculate relative offset |
1327 if (dx == 0 && dy == 0) | 1322 if (dx == 0 && dy == 0) return false // no movement |
1328 return false // no movement | |
1329 // reload with scaler image showing the new ausschnitt | 1323 // reload with scaler image showing the new ausschnitt |
1330 // digilib.moveBy(x, y); | 1324 // digilib.moveBy(x, y); |
1331 var pos = geom.position(-dx, -dy); | 1325 var pos = geom.position(-dx, -dy); |
1332 var newPos = data.imgTrafo.invtransform(pos); | 1326 var newPos = data.imgTrafo.invtransform(pos); |
1333 var newArea = data.zoomArea.setPt1(newPos); | 1327 var newArea = data.zoomArea.setPt1(newPos); |
1351 var setQuality = function (data, qual) { | 1345 var setQuality = function (data, qual) { |
1352 var flags = data.scalerFlags; | 1346 var flags = data.scalerFlags; |
1353 // clear flags | 1347 // clear flags |
1354 for (var i = 0; i < 3; ++i) { | 1348 for (var i = 0; i < 3; ++i) { |
1355 delete flags['q'+i]; | 1349 delete flags['q'+i]; |
1356 } | 1350 }; |
1357 flags['q'+qual] = 'q'+qual; | 1351 flags['q'+qual] = 'q'+qual; |
1358 }; | 1352 }; |
1359 | 1353 |
1360 // sets a key to a value (relative values with +/- if relative=true) | 1354 // sets a key to a value (relative values with +/- if relative=true) |
1361 var setNumValue = function(settings, key, value) { | 1355 var setNumValue = function(settings, key, value) { |
1362 if (isNumber(value)) return settings[key] = value; | 1356 if (isNumber(value)) return settings[key] = value; |
1363 var sign = value.substring(0,1); | 1357 var sign = value.substring(0,1); |
1364 if (sign === '+' || sign === '-') { | 1358 if (sign === '+' || sign === '-') { |
1365 if (settings[key] == null) { | 1359 if (settings[key] == null) { |
1366 // this isn't perfect but still... | 1360 // this isn't perfect but still... |
1367 settings[key] = 0; | 1361 settings[key] = 0; |
1368 } | 1362 }; |
1369 settings[key] = parseFloat(settings[key]) + parseFloat(value); | 1363 settings[key] = parseFloat(settings[key]) + parseFloat(value); |
1370 } else { | 1364 } else { |
1371 settings[key] = value; | 1365 settings[key] = value; |
1372 } | 1366 }; |
1373 return settings[key]; | 1367 return settings[key]; |
1374 }; | 1368 }; |
1375 | 1369 |
1376 // auxiliary function (from old dllib.js) | 1370 // auxiliary function (from old dllib.js) |
1377 isFullArea = function(area) { | 1371 isFullArea = function(area) { |
1378 return (area.width === 1.0) && (area.height === 1.0); | 1372 return (area.width === 1.0) && (area.height === 1.0); |
1379 }; | 1373 }; |
1380 | 1374 |
1381 // auxiliary function (from Douglas Crockford, A.10) | 1375 // auxiliary function (from Douglas Crockford, A.10) |
1382 var isNumber = function isNumber(value) { | 1376 var isNumber = function isNumber(value) { |
1383 return typeof value === 'number' && isFinite(value); | 1377 return typeof value === 'number' && isFinite(value); |
1384 }; | 1378 }; |
1385 | 1379 |
1386 // auxiliary function to crop senseless precision | 1380 // auxiliary function to crop senseless precision |
1387 var cropFloat = function (x) { | 1381 var cropFloat = function (x) { |
1388 return parseInt(10000 * x, 10) / 10000; | 1382 return parseInt(10000 * x, 10) / 10000; |
1419 } else if (typeof(action) === 'object' || !action) { | 1413 } else if (typeof(action) === 'object' || !action) { |
1420 // call init on this | 1414 // call init on this |
1421 return actions.init.apply(this, arguments); | 1415 return actions.init.apply(this, arguments); |
1422 } else { | 1416 } else { |
1423 $.error( 'action ' + action + ' does not exist on jQuery.digilib' ); | 1417 $.error( 'action ' + action + ' does not exist on jQuery.digilib' ); |
1424 } | 1418 }; |
1425 }; | 1419 }; |
1426 | 1420 |
1427 })(jQuery); | 1421 })(jQuery); |