var Preloader = {
	preloadArray: new Array(),
	preloadonArray: new Array(),
	pics: 0,
	trigger: null,
	loaded: false,
	
	setPics: function(pics) {
		this.pics = pics;
	},
	
	preloadImages: function(path, file) {
		var current;
		var c = 0;

		for (var i=0; i<this.pics; i++) {
			this.preloadArray[i] = new Image();
			this.preloadonArray[i] = new Image();
			this.preloadArray[i].src = path + file + i + '.gif';
			this.preloadonArray[i].src = path + file + i + '_on.gif';
			
			if((current=$(file+i)) != null) {
				addEvent("mouseover", on, current);
				addEvent("mouseout", off, current);
			}
			
			if(this.preloadonArray[i].complete == true) {
				c++;
				if(c == this.pics) this.loaded = true;
			} else {
				this.preloadonArray[i].onload = function() {
					c++;
					if(c == Preloader.pics) Preloader.loaded = true;
				}
			}
		}
	}
}

function addEvent(eventName, func, target) {
	if(!target) {
		target=window;
	}
	
	if(eventName=="unload" && !window.opera) {
		eventName="beforeunload";
	}
	
	if(target.addEventListener) {
		target.addEventListener(eventName, func, false);
	} else {
		if(target.attachEvent) {
			if(target==window && !(eventName=="unload" || eventName=="load" || eventName=="beforeunload")) {
				target=window.document;
			}
			target.attachEvent("on"+eventName, func);
		}
	}
}


function on(eventObject) {
	if((eventObject.target || eventObject.srcElement) && typeof(Preloader) == 'object') {
		Preloader.trigger=(eventObject.target || eventObject.srcElement);
		var idx = parseInt(Preloader.trigger.id.slice(1,Preloader.trigger.id.length));
		if(Preloader.loaded) $(Preloader.trigger.id).src = Preloader.preloadonArray[idx].src;
	}
}

function off(eventObject) {
	if((eventObject.target || eventObject.srcElement) && typeof(Preloader) == 'object') {
		Preloader.trigger=(eventObject.target || eventObject.srcElement);
		var idx = parseInt(Preloader.trigger.id.slice(1,Preloader.trigger.id.length));
		if(Preloader.loaded) $(Preloader.trigger.id).src = Preloader.preloadArray[idx].src;
	}
}

window.onload = function(){
	Preloader.preloadImages('img/','m');
	if(typeof(ProjectView) == 'object') ProjectView.setMargin();
}
