/* =============================== */
/*             GALLERY             */
/* =============================== */

function resizeLayer() {
	var x = (document.all) ? document.body.scrollLeft : window.pageXOffset; 
	var y = (document.all) ? document.body.scrollTop  : window.pageYOffset; 
	var height = document.body.clientHeight;
	var width = document.body.clientWidth;
	changeLayerProperties('fade',0,0,width,height);
}

function imagePosition() {
	var img = document.getElementById('imageLarge');
	if (!img) return;
	
	img.style.left = Math.round((document.body.clientWidth - img.clientWidth) / 2) + 'px';
	img.style.top = '50px';
}

function imageFit(img) {
	img.style.width  = '640px'; 
	img.style.height = ''; 
	
	var maxHeight = 0;
	if (window.innerHeight) {
		maxHeight = window.innerHeight; 
	} else if (document.documentElement && document.documentElement.offsetHeight ) {
		maxHeight = document.documentElement.offsetHeight;
	}

	maxHeight -= 200;
	var aspect    = img.clientWidth / img.clientHeight;
	if (img.clientHeight > maxHeight) {
		img.style.width  = maxHeight * aspect + 'px'; 
		img.style.height = maxHeight + 'px';
	}
}

function changeLayerProperties(id,x,y,width,height) {
	try {
		var obj = document.getElementById(id).style;
	} catch (err) {
		return false;
	}
	if (obj) {
		if (x || x != null) obj.left = x+'px';
		if (y || y != null)	obj.top = y+'px';
		if (width || width != null)	obj.width = width+'px';
		if (height || height != null) obj.height = height+'px';
		return true;
	}
	return false;
}

function opacity(id, opacStart, opacEnd, millisec) { 

    var speed = Math.round(millisec / 100); 
    var timer = 0; 


    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        }
    }
} 

function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
	object.visibility = 'visible';
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")";
}

function prev_next(current_position) {
	current_position = parseInt(current_position);

	var prev = document.getElementById('prev');
	var next = document.getElementById('next');
	
	
	var attr_prev = (gallery_images[current_position-1]) ? current_position-1 : gallery_images.length-1;
	var attr_next = (gallery_images[current_position+1]) ? current_position+1 : 0;
	
	var src = gallery_images[current_position];
	changeObjectProperty('imageLargeSrc','onclick','prev_next('+attr_next+');');
	changeObjectProperty('imageLargeSrc','src',src);
	
	prev.setAttribute('prev',attr_prev);
	next.setAttribute('next',attr_next);
}

function changeObjectProperty(id,name,value) {
	var obj = document.getElementById(id);
	if (obj) {
		obj[name] = value;
	}
}

function popupImage(img) {
	opacity('fade', 0, 50, 200); 
	opacity('imageLarge', 0, 100, 200); 
	document.getElementById('imageLargeSrc').src = img; 
	imagePosition(); 
	prev_next(findPicture(img)); 
	resizeLayer();
}

function popupClose() {
	document.getElementById('fade').style.visibility = 'hidden'; 
	document.getElementById('imageLarge').style.visibility = 'hidden'; 
}

function findPicture(src) {
	var i;
	
	for (i=0; i<gallery_images.length; i++) {
		if (src == gallery_images[i]) return i;
	}
	return -1;
}

