
// jQuery_Auto 0.9
// Automatic functions for webpages (using the wonderful jQuery library)

// Copyright: (c) 2006, Michal Tatarynowicz (tatarynowicz@gmail.com)
// Licenced as Public Domain (http://creativecommons.org/licenses/publicdomain/)
// $Id: jquery_auto.js 426 2006-05-06 19:54:39Z Michał $


// Initialization

$.auto = {
	init: function() {
		for (module in $.auto) {
			if ($.auto[module].init)
				$.auto[module].init();
		}
	}
};

$(document).ready($.auto.init);


// Mouse hover

$.auto.hover = {

	init: function() {
		$('IMG.Hover')
			.bind('mouseover', this.enter)
			.bind('mouseout', this.exit)
			.each(this.preload);
	},

	preload: function() {
		this.preloaded = new Image;
		this.preloaded.src = this.src.replace(/^(.+)(\.[a-z]+)$/, "$1_ck$2");
	},

	enter: function() {
		this.src = this.src.replace(/^(.+)(\.[a-z]+)$/, "$1_ck$2");
	},

	exit: function() {
		this.src = this.src.replace(/^(.+)_ck(\.[a-z]+)$/, "$1$2");
	}
};

//pagetop
$.auto.pagetop = {
	init: function(){
		$("a",$("p.pagetop")).attr('href','javascript:$.auto.pagetop.moveWindow(0,0)');	
	},
	
	moveWindow: function(targetX,targetY) {
		speed = 3;//default 3
		smooth = 20;//default 20
		position = new Array();
		position = $.auto.pagetop.getPosition();
		moveY = targetY - position[1];
		moveX = targetX - position[0];
		if((-3 < moveX && moveX < 3) && (-3 < moveY && moveY < 3)){
			window.scrollTo(targetX,targetY);
		}else{
			toX = Math.floor(moveX/speed + position[0]);
			toY = Math.floor(moveY/speed + position[1]);
			window.scrollTo(toX,toY);
			window.setTimeout("$.auto.pagetop.moveWindow("+targetX+","+targetY+")",smooth);
		}
	},

	getPosition: function (){
		var x1 = x2 = x3 = 0;
		var y1 = y2 = y3 = 0;
	  if (document.documentElement) {
		  x1 = document.documentElement.scrollLeft || 0;
		  y1 = document.documentElement.scrollTop || 0;
	  }
	  if (document.body) {
		  x2 = document.body.scrollLeft || 0;
		  y2 = document.body.scrollTop || 0;
	  }
	  x3 = window.scrollX || 0;
	  y3 = window.scrollY || 0;
	  var x = Math.max(x1, Math.max(x2, x3));
	  var y = Math.max(y1, Math.max(y2, y3));
		return Array(x,y);
	}
}

