


var ImageScaler = new Object();
ImageScaler.VERSION = "1.3"
ImageScaler.m_nTimeout = 500;
ImageScaler.enabled = false;

/**
 * Skaliert alle Bilder mit dem geg. Namen so, 
 * dass Sie in ein Quadrat mit der geg. Kantenlänge passen würden.
 * @param {String} strImgName Der Wert des "name" Attributs der zu skalierenden Bilder
 * @param {Number} nSquareLength Die Kantenlänge des Quadrats in das das Bild skaliert werden soll
 */
ImageScaler.startResizeImagesInterval = function(strImgName, nSquareLength) {
	//Sicherheitshalber ein bestehendes Interval löschen
	ImageScaler.clearResizeImagesInterval(strImgName, nSquareLength);
	
	//Neues Interval setzen
	if (typeof(ImageScaler.enabled) == 'boolean') {
		if (ImageScaler.enabled === true) {
			ImageScaler[strImgName + '_' + nSquareLength] = window.setInterval("ImageScaler.resizeAvailableImages('" + strImgName + "', " + nSquareLength + ")", ImageScaler.m_nTimeout);
		}
	}
}

ImageScaler.clearResizeImagesInterval = function (strImgName, nSquareLength) {
	if (ImageScaler[strImgName + '_' + nSquareLength] != undefined) {
		window.clearInterval(ImageScaler[strImgName + '_' + nSquareLength]);
		ImageScaler[strImgName + '_' + nSquareLength] = undefined;
	}
}

ImageScaler.resizeAvailableImages = function(strImgName, nSquareLength) {
	//Alle Images holen
    var imgs = document.images;
    if (imgs == undefined) {
    	imgs = document.getElementsByTagName('img');
    }
    var handledImages = 0;
    var requiredImages = 0;
    if (imgs != undefined) {
    	for (i=0; i < imgs.length; i++) {
        	if (imgs[i].name == strImgName) {
            	++requiredImages;
            }
        }
        for (i=0; i < imgs.length; i++) {
        	if (imgs[i].name == strImgName) {
            	var width = imgs[i].width;
                var height = imgs[i].height;
                if (width > 0 && height > 0) {
                	++handledImages;
                    // Bild ist da, skalieren
                    if (width > nSquareLength || height > nSquareLength) {
                    	var scaleFactor = 1;
                        if (width > height) {
                        	scaleFactor = (nSquareLength / width);
                        }
                        else {
                        	scaleFactor = (nSquareLength / height);
                        }
						var newWidth = Math.round(width * scaleFactor);
						var newHeight = Math.round(height * scaleFactor);
											
                        imgs[i].height = newHeight;
                        imgs[i].width = newWidth;
                    }
                }
            }
        }
		if (handledImages >= requiredImages) {
			//alert('resize fertig');
            ImageScaler.clearResizeImagesInterval(strImgName, nSquareLength);
        }
    }
    else {
		//alert('keine bilder');
      	ImageScaler.clearResizeImagesInterval(strImgName, nSquareLength);
    }
}