// JavaScript Document
// ====================================================
// script: Gerard Ferrandez - Ge-1-doot - June 2005
// http://www.dhteumeuleu.com/
// ====================================================

window.onerror         = new Function("return true");
document.onselectstart = new Function("return false");

var object2 = new Array();
var margin = 20;
var K = 0;

function CObj(N,x,y,txt){
	this.obj = document.createElement("span");
	this.obj.innerHTML = txt;
	this.obj.className = "word";
	this.obj.onmouseover = new Function("this.className='word_over',object2["+N+"].izoom();");
	document.getElementById("sp").appendChild(this.obj);
	this.obj.style.left = x;
	this.obj.style.top  = y;
	this.obz = 0;
	this.x  = x;
	this.y  = y;
	this.x0 = x;
	this.y0 = y;
	this.fs = 12;
	this.c  = 0;
	this.px = txt.length * .02;
	this.py = .04;
	this.zoom = function () {
		with(this){
			fs *= 1.08;
			c = 512 - fs * 2;
			x -= fs * px;
			y -= fs * py;

			with(obz.style){
				left = x;
				top  = y;
				fontSize = Math.round(fs);
				color = "RGB("+Math.round(c*.5)+","+Math.round(c*.5)+","+Math.round(c)+")";
			}

			if(c<8){
				document.getElementById("sp").removeChild(obz);
				obj.className="word";
				x = x0;
				y = y0;
				fs = 12;
				obz = 0;
				K--;
			} else setTimeout("object2["+N+"].zoom();",16);
		}
	}
	this.izoom = function () {
		with(this){
			if(K<20){
				if(obz == 0){
					obz = document.createElement("span");
					obz.className = "word_zoom";
					obz.innerHTML = txt;
					obz.style.left = x-1;
					obz.style.top  = y;
					document.getElementById("sp").appendChild(obz);
					zoom();
					K++;
				}
			} else setTimeout("object2["+N+"].izoom();",128);
		}
	}
}


function fontWidth(word){
	// arial font
	var S = "a68b68c68d68e68f31g68h68i31j31k68l31m108n68o68p68q68r39s68t39u68v50w90x68y68z68A90B90C90D90E90F78G98H90I28J59K90L68M108N90O98P90Q98R90S90T68U90V90W130X68Y90Z68'30.42!29?68-41/41=72";
	var l = word.length;
	var s = 0;
	var x = 0;
	var c = 0;
	for(i=0;i<l;i++){
		c = word.charAt(i);
		x = S.indexOf(c);
		if(c>="0" && c<="9")s+=69;
		else if(x>=0)s+=parseInt(S.substring(x+1,x+4));
		else s+=68;
	}
	return s/10;
}

onload = function(){

	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	T = [
		"Truqui 93 450 03 89",
	];

	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	x = 0;
	y = 0;
	k = 0;
	for(j in T){
		Tx = T[j].split(" ");
		// justify
		xt = 0;
		for(i in Tx){
			txt = Tx[i];
			xt += fontWidth(txt);
		}
		if(Tx.length)sP = (-2*margin + parseInt(document.getElementById("sp").style.width) - xt) / (Tx.length-1); else sP = 0;
		// insert word
		for(i in Tx){
			txt = Tx[i];
			if(txt) {
				object2[k] = new CObj(k, margin+x, margin+y, txt);
				x += (fontWidth(txt)+sP);
				k++;
			}
		}
		y += 18;
		x = 0;
	}
}

// ========================================================
//              ===== images slider ====
// script: Gerard Ferrandez - Ge-1-doot - February 2008
// http://www.dhteumeuleu.com
// CC-BY-NC
// ========================================================

/* ==== slider nameSpace ==== */
var slider = function() {
	/* ==== private methods ==== */
	function getElementsByClass(object, tag, className) {
		var o = object.getElementsByTagName(tag);
		for ( var i = 0, n = o.length, ret = []; i < n; i++) {
			if (o[i].className == className) ret.push(o[i]);
		}
		if (ret.length == 1) ret = ret[0];
		return ret;
	}
	function setOpacity (obj,o) {
		if (obj.filters) obj.filters.alpha.opacity = Math.round(o);
		else obj.style.opacity = o / 100;
	}
	/* ==== Slider Constructor ==== */
	function Slider(oCont, speed, iW, iH, oP) {
		this.slides = [];
		this.over   = false;
		this.S      = this.S0 = speed;
		this.iW     = iW;
		this.iH     = iH;
		this.oP     = oP;
		this.oc     = document.getElementById(oCont);
		this.frm    = getElementsByClass(this.oc, 'div', 'slide');
		this.NF     = this.frm.length;
		this.resize();
		for (var i = 0; i < this.NF; i++) {
			this.slides[i] = new Slide(this, i);
		}
		this.oc.parent = this;
		this.view      = this.slides[0];
		this.Z         = this.mx;
		/* ==== on mouse out event ==== */
		this.oc.onmouseout = function () {
			this.parent.mouseout();
			return false;
		}
	}
	Slider.prototype = {
		/* ==== animation loop ==== */
		run : function () {
			this.Z += this.over ? (this.mn - this.Z) * .5 : (this.mx - this.Z) * .5;
			this.view.calc();
			var i = this.NF;
			while (i--) this.slides[i].move();
		},
		/* ==== resize  ==== */
		resize : function () {
			this.wh = this.oc.clientWidth;
			this.ht = this.oc.clientHeight;
			this.wr = this.wh * this.iW;
			this.r  = this.ht / this.wr;
			this.mx = this.wh / this.NF;
			this.mn = (this.wh * (1 - this.iW)) / (this.NF - 1);
		},
		/* ==== rest  ==== */
		mouseout : function () {
			this.over      = false;
			setOpacity(this.view.img, this.oP);
		}
	}
	/* ==== Slide Constructor ==== */
	Slide = function (parent, N) {
		this.parent = parent;
		this.N      = N;
		this.x0     = this.x1 = N * parent.mx;
		this.v      = 0;
		this.loaded = false;
		this.cpt    = 0;
		this.start  = new Date();
		this.obj    = parent.frm[N];
		this.txt    = getElementsByClass(this.obj, 'div', 'text');
		this.img    = getElementsByClass(this.obj, 'img', 'diapo');
		this.bkg    = document.createElement('div');
		this.bkg.className = 'backgroundText';
		this.obj.insertBefore(this.bkg, this.txt);
		if (N == 0) this.obj.style.borderLeft = 'none';
		this.obj.style.left = Math.floor(this.x0) + 'px';
		setOpacity(this.img, parent.oP);
		/* ==== mouse events ==== */
		this.obj.parent = this;
		this.obj.onmouseover = function() {
			this.parent.over();
			return false;
		}
	}
	Slide.prototype = {
		/* ==== target positions ==== */
		calc : function() {
			var that = this.parent;
			// left slides
			for (var i = 0; i <= this.N; i++) {
				that.slides[i].x1 = i * that.Z;
			}
			// right slides
			for (var i = this.N + 1; i < that.NF; i++) {
				that.slides[i].x1 = that.wh - (that.NF - i) * that.Z;
			}
		},
		/* ==== HTML animation : move slides ==== */
		move : function() {
			var that = this.parent;
			var s = (this.x1 - this.x0) / that.S;
			/* ==== lateral slide ==== */
			if (this.N && Math.abs(s) > .5) {
				this.obj.style.left = Math.floor(this.x0 += s) + 'px';
			}
			/* ==== vertical text ==== */
			var v = (this.N < that.NF - 1) ? that.slides[this.N + 1].x0 - this.x0 : that.wh - this.x0;
			if (Math.abs(v - this.v) > .5) {
				this.bkg.style.top = this.txt.style.top = Math.floor(2 + that.ht - (v - that.Z) * that.iH * that.r) + 'px';
				this.v = v;
				this.cpt++;
			} else {
				if (!this.pro) {
					/* ==== adjust speed ==== */
					this.pro = true;
					var tps = new Date() - this.start;
					if(this.cpt > 1) {
						that.S = Math.max(2, (28 / (tps / this.cpt)) * that.S0);
					}
				}
			}
			if (!this.loaded) {
				if (this.img.complete) {
					this.img.style.visibility = 'visible';
					this.loaded = true;
				}
			}
		},
		/* ==== light ==== */
		over : function () {
			this.parent.resize();
			this.parent.over = true;
			setOpacity(this.parent.view.img, this.parent.oP);
			this.parent.view = this;
			this.start = new Date();
			this.cpt = 0;
			this.pro = false;
			this.calc();
			setOpacity(this.img, 100);
		}
	}
	/* ==== public method - script initialization ==== */
	return {
		init : function() {
			// create instances of sliders here
			// parameters : HTMLcontainer name, speed (2 fast - 20 slow), Horizontal ratio, vertical text ratio, opacity
			this.s1 = new Slider("slider", 12, 1.84/3, 1/3.2, 70);
			setInterval("slider.s1.run();", 16);
		}
	}
}();

