var thisURL = document.location.href;
var splitURL = thisURL.split("#");
var photoId = splitURL[1] - 1;
var photoId = (!photoId)? 0 : photoId;
var borderSize = 10;
var photoDir = "pages/gallery/images/";
var photoArray = new Array(
	new Array("davod1.jpg", "406", "300", "Dávod"),
	new Array("davod2.jpg", "406", "300", "Dávod"),
	new Array("davod3.jpg", "406", "300", "Dávod"),
	new Array("davod4.jpg", "406", "300", "Dávod"),
	new Array("davod5.jpg", "406", "300", "Dávod"),
	new Array("dunafoldvar1.jpg", "400", "300", "Dunaföldvár"),
	new Array("dunafoldvar2.jpg", "400", "300", "Dunaföldvár"),
	new Array("dunafoldvar3.jpg", "400", "300", "Dunaföldvár"),
	new Array("dunafoldvar4.jpg", "400", "300", "Dunaföldvár"),
	new Array("dunafoldvar5.jpg", "400", "300", "Dunaföldvár"),
	new Array("paks1.jpg", "400", "300", "Paks"),
	new Array("paks2.jpg", "400", "300", "Paks"),
	new Array("paks3.jpg", "400", "300", "Paks"),
	new Array("paks4.jpg", "400", "300", "Paks"),
	new Array("paks5.jpg", "400", "300", "Paks"),
	new Array("paks6.jpg", "400", "300", "Paks"),
	new Array("sioagard.jpg", "400", "300", "Sióagárd"),
	new Array("tiszafoldvar.jpg", "400", "300", "Tiszaföldvár"),
	new Array("bolcske.jpg", "400", "300", "Bölcske, Színes aszfalt"),
	new Array("img_001.jpg", "400", "300", "Bajai telephelyünk"),
	new Array("img_002.jpg", "400", "300", "Felületi bevonat készítése"),
	new Array("img_003.jpg", "400", "300", "A kész burkolat"),
	new Array("img_006.jpg", "400", "300", "Útépítés Kalocsán #1"),
	new Array("img_007.jpg", "224", "300", "Útépítés Kalocsán #2"),
	new Array("img_008.jpg", "400", "300", "Mobil keverő"),
	new Array("img_011.jpg", "224", "300", "Munkálatok Pakson #1"),
	new Array("img_012.jpg", "400", "300", "Munkálatok Pakson #2"),
	new Array("img_013.jpg", "400", "300", "Solti telephelyünk"),
	new Array("img_014.jpg", "400", "300", "Munkálatok Solton #1"),
	new Array("img_015.jpg", "400", "300", "Munkálatok Solton #2"),
	new Array("img_016.jpg", "400", "300", "Munkálatok Solton #3"),
	new Array("img_017.jpg", "400", "300", "Soltvadkerti sétány #1"),
	new Array("img_018.jpg", "224", "300", "Soltvadkerti sétány #2")
	);
var photoNum = photoArray.length;
Object.extend(Element, {
	getWidth: function(element) {
   	element = $(element);
   	return element.offsetWidth; 
	},
	setWidth: function(element,w) {
   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   	element = $(element);
    	element.style.height = h +"px";
	},
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});
var Slideshow = Class.create();
Slideshow.prototype = {
	initialize: function(photoId) {
		this.photoId = photoId;
		this.photo = 'Photo';
		this.photoBox = 'PicContainer';
		this.prevLink = 'PrevLink';
		this.nextLink = 'NextLink';
		this.captionBox = 'CaptionContainer';
		this.caption = 'Caption';
		this.counter = 'Counter';
		this.loader = 'Loading';
	},
	getCurrentSize: function() {
		this.wCur = Element.getWidth(this.photoBox) - borderSize;
		this.hCur = Element.getHeight(this.photoBox) - borderSize;
	},
	getNewSize: function() {
		this.wNew = photoArray[photoId][1];
		this.hNew = photoArray[photoId][2];
	},
	getScaleFactor: function() {
		this.getCurrentSize();
		this.getNewSize();
		this.xScale = (this.wNew / this.wCur) * 100;
		this.yScale = (this.hNew / this.hCur) * 100;
	},
	setNewPhotoParams: function() {
		Element.setSrc(this.photo,photoDir + photoArray[photoId][0]);
		Element.setHref(this.prevLink, "#" + (photoId+1));
		Element.setHref(this.nextLink, "#" + (photoId+1));
	},
	setPhotoCaption: function() {
		Element.setInnerHTML(this.caption,photoArray[photoId][3]);
		Element.setInnerHTML(this.counter,((photoId+1)+'/'+photoNum));
	},
	resizePhotoBox: function() {
		this.getScaleFactor();
		new Effect.Scale(this.photoBox, this.yScale, {scaleX: false, duration: 0.3, queue: 'front'});
		new Effect.Scale(this.photoBox, this.xScale, {scaleY: false, delay: 0.5, duration: 0.3});
		Element.setWidth(this.captionBox,this.wNew-(-borderSize));
	},
	showPhoto: function(){
		new Effect.Fade(this.loader, {delay: 0.5, duration: 0.3});
		new Effect.Appear(this.photo, {duration: 0.5, queue: 'end', afterFinish: function(){Element.show('CaptionContainer');Element.show('PrevLink');Element.show('NextLink');}});
	},
	nextPhoto: function(){
		(photoId == (photoArray.length - 1)) ? photoId = 0 : photoId++;
		this.initSwap();
	},
	prevPhoto: function(){
		(photoId == 0) ? photoId = photoArray.length - 1 : photoId--;
		this.initSwap();
	},
	initSwap: function() {
		Element.show(this.loader);
		Element.hide(this.photo);
		Element.hide(this.captionBox);
		Element.hide(this.prevLink);
		Element.hide(this.nextLink);
		this.setNewPhotoParams();
		this.resizePhotoBox();
		this.setPhotoCaption();
	}
}
var myrules = {
	'#Photo' : function(element){
		element.onload = function(){
			var myPhoto = new Slideshow(photoId);
			myPhoto.showPhoto();
		}
	},
	'#PrevLink' : function(element){
		element.onmouseover = function(){
		}
		element.onclick = function(){
			var myPhoto = new Slideshow(photoId);
			myPhoto.prevPhoto();
		}
	},
	'#NextLink' : function(element){
		element.onmouseover = function(){
		}
		element.onclick = function(){
			var myPhoto = new Slideshow(photoId);
			myPhoto.nextPhoto();
		}
	},
	a : function(element){
		element.onfocus = function(){
			this.blur();
		}
	}
};
Behaviour.addLoadEvent(init);
Behaviour.apply();
function init() {
	var myPhoto = new Slideshow(photoId);
	myPhoto.initSwap();
}
