/* tilter */

/* used to tilt images on Firefox only - versions under 3.5 only */

function getImages(className){
	var children = document.getElementsByTagName('img'); 
	var elements = new Array(); var i = 0;
	var child; var classNames; var j = 0;
	for (i=0;i<children.length;i++) {
		child = children[i];
		classNames = child.className.split(' ');
		for (var j = 0; j < classNames.length; j++) {
			if (classNames[j] == className) {
				elements.push(child);
				break;
			}
		}
	}
	return elements;
}
function getClasses(classes,string){
	var temp = '';
	for (var j=0;j<classes.length;j++) {
		if (classes[j] != string) {
			if (temp) {
				temp += ' '
			}
			temp += classes[j];
		}
	}
	return temp;
}
function getClassAttribute(classes,string){
	var temp = 0; var pos = string.length;
	for (var j=0;j<classes.length;j++) {
		if (classes[j].indexOf(string) == 0) {
			temp = 1; 
			break;
		}
	}
	return temp;
}

function addTilt() {
	var theimages = getImages('tilted'); 
	var image; var object; var canvas; var context;  
	var border = 0;  
	var tiltrite; var tiltleft; 
	var classes = ''; var newClasses = '';
	var scale = 0; var xscale = 1; var yscale = 1;
	var i, ww, hh, ff, yo, xo, preserve;	
	for(i=0;i<theimages.length;i++) {	
		image = theimages[i]; object = image.parentNode; 
		canvas = document.createElement('canvas');
		preserve = 0; 
		tiltrite = 0;
		tiltleft = 0;
		if (canvas.getContext && image.width>=64 && image.height>=64) {
			classes = image.className.split(' '); 
			tiltleft = getClassAttribute(classes, 'tiltleft');
			tiltrite = getClassAttribute(classes, 'tiltrite');
			preserve = getClassAttribute(classes, 'preserve');
			
			if (tiltrite==true) {
				tilt = 'r';
			}
			if (tiltleft==true) {
				tilt = 'l';
			}
			
			newClasses = getClasses(classes,'tilted');
			canvas.className = newClasses;
			canvas.style.height = image.height + 'px';
			canvas.style.width = image.width + 'px';
			canvas.height = image.height;
			canvas.width = image.width;
			canvas.src = image.src;
			canvas.alt = image.alt;
			if(image.id!='') canvas.id = image.id;
			db = Math.round(Math.max(canvas.width,canvas.height)*0.05); 
			
			if (canvas.width>canvas.height) {
				xscale = 0.05; yscale = xscale*(canvas.width/canvas.height);
			}
			else if (canvas.width<canvas.height) {
				yscale = 0.05; xscale = yscale*(canvas.height/canvas.width);
			}
			else {
				xscale = 0.05; yscale = 0.05;
			}
			
			context = canvas.getContext('2d');
			object.replaceChild(canvas,image);
			context.save(); scale = 1.333333; 
			
			if (tilt=='r') {
				context.translate(db,0);
				context.scale(1-(scale*xscale),1-(scale*yscale));
				context.rotate(0.05); tilt = 'l';
			}
			else if (tilt=='l') {
				context.translate(0,db);
				context.scale(1-(scale*xscale),1-(scale*yscale));
				context.rotate(-0.05); tilt = 'r';
			}
			
			context.drawImage(image,border,border,canvas.width-(border*2),canvas.height-(border*2));
			canvas.style.visibility = 'visible';
		}
	}
}