PDA

View Full Version : Zoom In/Out Script Help



theflyingminstrel
03-04-2009, 12:27 AM
Hi I am trying to get this script to also include images in what it will enlarge and decrease in size.
Any help is greatly appreciated.




// --------------------------------------------------------------------
// Javascript Magnifier v 0.97
// Written by Dino Termini - termini@email.it - May 9, 2003
// This script is freeware (GPL) but if you use it, please let me know!
//
// Portions of code by zoomIN, zoomOUT
// Author: Nguyen Duong Minh (Obie) - obie4web@yahoo.com
// WWW: http://ObieWebsite.SourceForge.net
// License: GNU (GPL)
//
// Portions of code by Webreference Javascript Cookie Functions
// Jupirmedia Corporation
// http://www.internet.com
// --------------------------------------------------------------------

measureUnit = "px"
minSize = 1;
minStyleSize = 10;
maxSize = 6;
maxStyleSize = 30;
startSize = 1;
startStyleSize = 10;
stepSize = 1;
stepStyleSize = 2;

var keyin = 61;
var keyinCAPS = 43;
var keyout = 45;
var keyoutCAPS = 95;
var keyinIe = 46;
var keyinIeCAPS = 62;
var keyoutIe = 44;
var keyoutIeCAPS = 60;
var zoomFactor = 1.1;
var maxZoom = 4.096;
var minZoom = 0.625;
var startDecZoom = 0.7;
var startIncZoom = 1.3;

userExpiry = 365 * 24 * 60 * 60 * 1000;

alertEnabled = false;

allowInputResize = false;

function setCookie(name, value, expires, path, domain, secure) {

document.cookie = "Enabled=true";
var cookieValid = document.cookie;

if (cookieValid.indexOf("Enabled=true") != -1) {
var curCookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");

document.cookie = curCookie;
return(true);
}
else {
return(false);
}
}

function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else
begin += 2;
var end = document.cookie.indexOf(";", begin);
if (end == -1)
end = dc.length;
return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain) {
if (getCookie(name)) {
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}

function fixDate(date) {
var base = new Date(0);
var skew = base.getTime();
if (skew > 0)
date.setTime(date.getTime() - skew);
}

function searchTags(childTree, level) {
var retArray = new Array();
var tmpArray = new Array();
var j = 0;
var childName = "";
for (var i=0; i<childTree.length; i++) {
childName = childTree[i].nodeName;
if (childTree[i].hasChildNodes()) {
if ((childTree[i].childNodes.length == 1) && (childTree[i].childNodes[0].nodeName == "#text"))
retArray[j++] = childTree[i];
else {
tmpArray = searchTags(childTree[i].childNodes, level+1);
for (var k=0;k<tmpArray.length; k++)
retArray[j++] = tmpArray[k];
retArray[j++] = childTree[i];
}
}
else
retArray[j++] = childTree[i];
}
return(retArray);
}

function changeFontSize(stepSize, stepStyleSize, useCookie) {

if (document.body) {
var myObj = searchTags(document.body.childNodes, 0);
var myCookieSize = parseInt(getCookie("incrSize"));
var myCookieStyleSize = parseInt(getCookie("incrStyleSize"));
var myStepSize = stepSize;
var myStepStyleSize = stepStyleSize;

var now = new Date();

fixDate(now);

if (isNaN(myCookieSize)) myCookieSize = 0;
if (isNaN(myCookieStyleSize)) myCookieStyleSize = 0;

if (useCookie) {
myStepSize = myCookieSize;
myStepStyleSize = myCookieStyleSize;
}

now.setTime(now.getTime() + userExpiry);

myObjNumChilds = myObj.length;
for (i=0; i<myObjNumChilds; i++) {
myObjName = myObj[i].nodeName;

if (myObjName != "#text" && myObjName != "HTML" &&
myObjName != "HEAD" && myObjName != "TITLE" &&
myObjName != "STYLE" && myObjName != "SCRIPT" &&
myObjName != "BR" && myObjName != "TBODY" &&
myObjName != "#comment" && myObjName != "FORM") {

if (!allowInputResize && myObjName == "INPUT") continue;

size = parseInt(myObj[i].getAttribute("size"));

if (myObj[i].currentStyle)
styleSize = parseInt(myObj[i].currentStyle.fontSize);
else
styleSize = parseInt(window.getComputedStyle(myObj[i], null).fontSize);

if (isNaN(size) || (size < minSize) || (size > maxSize))
size = startSize;

if (isNaN(styleSize) || (styleSize < minStyleSize) || (styleSize > maxStyleSize))
styleSize = startStyleSize;

if ( ((size > minSize) && (size < maxSize)) ||
((size == minSize) && (stepSize > 0)) ||
((size == maxSize) && (stepSize < 0)) || useCookie) {
myObj[i].setAttribute("size", size+myStepSize);
}

if ( ((styleSize > minStyleSize) && (styleSize < maxStyleSize)) ||
((styleSize == minStyleSize) && (stepStyleSize > 0)) ||
((styleSize == maxStyleSize) && (stepStyleSize < 0)) || useCookie) {
newStyleSize = styleSize+myStepStyleSize;
myObj[i].style.fontSize = newStyleSize+measureUnit;
}
}
}

if (!useCookie) {
cookieIsSet = setCookie("incrSize", myStepSize+myCookieSize, now);
cookieIsSet = setCookie("incrStyleSize", myStepStyleSize+myCookieStyleSize, now);
if (alertEnabled && !cookieIsSet) {
alert("Per mantenere in memoria la dimensione scelta, abilita i cookie nel browser");
}
}

}
}

function increaseFontSize() {
if (document.body) {
changeFontSize(stepSize, stepStyleSize, false);
}
else {
if (alertEnabled) {
alert("Spiacente, il tuo browser non supporta questa funzione");
}
}
}

function decreaseFontSize() {
if (document.body) {
myStepSize = -stepSize;
myStepStyleSize = -stepStyleSize;
changeFontSize(myStepSize, myStepStyleSize, false);
}
else {
if (alertEnabled) {
alert("Spiacente, il tuo browser non supporta questa funzione");
}
}
}

function zoomin() {
if (window.parent.document.body.style.zoom < maxZoom) {
if (window.parent.document.body.style.zoom > 0) {
window.parent.document.body.style.zoom *= zoomFactor;
}
else {
window.parent.document.body.style.zoom = startIncZoom;
}
}
else {
if (alertEnabled) {
alert("Warning: Max size reached");
}
}
}

function zoomout() {
if ( (window.parent.document.body.style.zoom > minZoom) ||
(window.parent.document.body.style.zoom == 0) ) {
if (window.parent.document.body.style.zoom > 0) {
window.parent.document.body.style.zoom /= zoomFactor;
}
else {
window.parent.document.body.style.zoom = startDecZoom;
}
}
else {
if (alertEnabled) {
alert("Warning: Min size reached");
}
}
}

function checkzoom(e) {

if (document.all) {
myEvent = event.keyCode;
}
else {
myEvent = e.which;
}

switch(myEvent) {
case keyinIe:
case keyinIeCAPS:
zoomin();
break;

case keyoutIe:
case keyoutIeCAPS:
zoomout();
break;

case keyin:
case keyinCAPS:
increaseFontSize();
break;

case keyout:
case keyoutCAPS:
decreaseFontSize();
break;

default:
break;
}
}

if (document.layers) {
document.captureEvents(Event.KEYPRESS);
}

document.onkeypress = checkzoom;


<A HREF="#" onClick="javascript:increaseFontSize();">
<img src="images/font-inc.gif" alt="Increase Font Size" style="border:0px;"></A>
<A HREF="#" onClick="javascript:decreaseFontSize();">
<img src="images/font-dec.gif" alt="Decrease Font Size" style="border:0px;"></A>


Thank you