comparison client/digitallibrary/jquery/jquery.digilib.js @ 631:4f7b52b97738 jquery

more work on initialisation
author robcast
date Tue, 18 Jan 2011 15:04:44 +0100
parents b426efcc8a8e
children 73357f3dec20
comparison
equal deleted inserted replaced
629:b426efcc8a8e 631:4f7b52b97738
352 // add parm=val 352 // add parm=val
353 paramString += key + '=' + settings[key]; 353 paramString += key + '=' + settings[key];
354 }; 354 };
355 } 355 }
356 return paramString; 356 return paramString;
357 }; 357 };
358 358
359 // processes some parameters into objects and stuff
360 var unpackParams = function (data) {
361 var settings = data.settings;
362 // read zoom area
363 var zoomArea = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh);
364 settings.zoomArea = zoomArea;
365
366 // read marks
367 var marks = [];
368 if (query.indexOf(";") >= 0) {
369 var pa = query.split(";"); // old format with ";"
370 } else {
371 var pa = query.split(","); // new format
372 }
373 for (var i = 0; i < pa.length ; i++) {
374 var pos = pa[i].split("/");
375 if (pos.length > 1) marks.push(geom.position(pos[0], pos[1]));
376 }
377 settings.marks = marks;
378 };
379
380 // put objects back into parameters
381 var packParams = function (data) {
382 var settings = data.settings;
383 if (settings.zoomArea) {
384 settings.wx = settings.zoomArea.x;
385 settings.wy = settings.zoomArea.y;
386 settings.ww = settings.zoomArea.width;
387 settings.wh = settings.zoomArea.height;
388 }
389 if (settings.marks) {
390 var ma = [];
391 for (var i = 0; i < settings.marks.length; i++) {
392 ma.push(cropFloat(settings.marks[i].x) + "/" + cropFloat(settings.marks[i].y));
393 }
394 settings.mk = ma.join(",");
395 }
396 };
397
359 // returns URL and query string for Scaler 398 // returns URL and query string for Scaler
360 var getScalerString = function (settings) { 399 var getScalerString = function (settings) {
361 var keys = settings.scalerParamNames; 400 var keys = settings.scalerParamNames;
362 var queryString = getParamString(settings, keys); 401 var queryString = getParamString(settings, keys);
363 var url = settings.scalerBaseUrl + '?' + queryString; 402 var url = settings.scalerBaseUrl + '?' + queryString;
515 var $elem = data.target; 554 var $elem = data.target;
516 var $img = data.img; 555 var $img = data.img;
517 556
518 return function() { 557 return function() {
519 console.debug("img loaded! this=", this, " data=", data); 558 console.debug("img loaded! this=", this, " data=", data);
520 var area = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh); 559 var area = settings.zoomArea;
521 settings.zoomArea = area;
522 // create Transform from current area and picsize 560 // create Transform from current area and picsize
523 var picpos = $img.offset(); 561 var picpos = $img.offset();
524 var picrect = geom.rectangle(picpos.left, picpos.top, $img.width(), $img.height()); 562 var picrect = geom.rectangle(picpos.left, picpos.top, $img.width(), $img.height());
525 var trafo = geom.transform(); 563 var trafo = geom.transform();
526 // subtract area offset and size 564 // subtract area offset and size
535 //digilib.showBirdDiv(isBirdDivVisible); 573 //digilib.showBirdDiv(isBirdDivVisible);
536 //digilib.showArrows(); // show arrow overlays for zoom navigation 574 //digilib.showArrows(); // show arrow overlays for zoom navigation
537 575
538 }; 576 };
539 }; 577 };
578
579 // auxiliary function to crop senseless precision
580 var cropFloat = function (x) {
581 return parseInt(10000 * x) / 10000;
582 };
583
540 // hook plugin into jquery 584 // hook plugin into jquery
541 $.fn.digilib = function(method) { 585 $.fn.digilib = function(method) {
542 if (methods[method]) { 586 if (methods[method]) {
543 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); 587 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
544 } else if (typeof(method) === 'object' || !method) { 588 } else if (typeof(method) === 'object' || !method) {