function $(i){return document.getElementById(i);}


function get_elements_by_class(cn, root){
	if(!root) root = document;
	var queue = new Array();
	queue.push(root);
	var ret = new Array();
	while(queue.length > 0){
		element = queue.pop();
		if(element.className && element.className.indexOf(cn) != -1) ret.push(element);
		if(element.childNodes != null){
			if(element.childNodes.length>0){
				for(i = 0;i < element.childNodes.length; i++){
					queue.push(element.childNodes[i]);
				}
			}
		}
	}
	return ret;
}

var photo_size = '2';
var currentPhoto = 0;
var img = new Image();
img.src = 'img/loading.gif';

var p = 1.0009;
var a = 50;
var s = 0.00000001;
var fps = 25;
function setOpacity(el, op){
	if(op == 100) opacity = '1.0';
	else if(op < 10) opacity = '0.0' + op;
	else opacity = '0.' + op;
	el.style.filter = 'alpha(opacity=' + op + ')';
	el.style.KHTMLOpacity = opacity;
	el.style.MozOpacity = opacity;
	el.style.opacity = opacity;
} 
function inOutQuint(t, b, c, d) {if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;return c/2*((t-=2)*t*t*t*t + 2) + b;}
function slide(element, sourceHeight, targetHeight, sourceOpacity, targetOpacity, time, forceOneWay, elapsed){
   var back = false;
   if(!elapsed) {
       elapsed = 0;
       if(!forceOneWay){
       		back = Math.round(parseFloat($(element).style.height.replace('px',''))) == targetHeight;
	   		if($(element).offsetHeight > 0 && $(element).style.height == '') back = true;
	   }
	   $(element).style.display = /*back?'none':*/'block';

   }

   if(back){
       var tmp = sourceHeight;
       sourceHeight = targetHeight;
       targetHeight = tmp;
	   
       var tmp = sourceOpacity;
       sourceOpacity = targetOpacity;
       targetOpacity = tmp;
   }
   var destHeight = targetHeight - sourceHeight;
   var destOpacity = targetOpacity - sourceOpacity;
   
   var newHeight = inOutQuint(elapsed, sourceHeight, destHeight, time);
   var newOpacity = Math.round(inOutQuint(elapsed, sourceOpacity, destOpacity, time));
   if(elapsed <= time) {
       if($(element)) {
	       	$(element).style.height = newHeight + 'px';
	
			elapsed += 1000 / fps;
			setTimeout('slide(\''+element+'\', '+sourceHeight+', '+targetHeight+', '+sourceOpacity+', '+targetOpacity+', '+time+', '+forceOneWay+', '+elapsed+')', 1000 / fps);
	
			setOpacity($(element), newOpacity);
	   }
	   //window.scroll(0, 5000);
   } else {
       if($(element)) {
	       $(element).style.height = targetHeight + 'px';
	
		   $(element).style.display = Math.round(parseFloat($(element).style.height.replace('px',''))) == 0?'none':'block';
		   if(targetHeight == 0) $(element).style.display = 'none';
		   //setOpacity($(element), 100);
	   }
   }
}
function fade(element, sourceOpacity, targetOpacity, time, fade, elapsed){
	var back = fade == 'out';
	if(!elapsed) elapsed = 0;

	if(back){
		var tmp = sourceOpacity;
		sourceOpacity = targetOpacity;
		targetOpacity = tmp;
	}
	var destOpacity = targetOpacity - sourceOpacity;

	var newOpacity = Math.round(inOutQuint(elapsed, sourceOpacity, destOpacity, time));
	if(elapsed <= time) {
		setOpacity($(element), newOpacity);
		elapsed += 1000 / fps;
		setTimeout('fade(\''+element+'\', '+sourceOpacity+', '+targetOpacity+', '+time+', \''+fade+'\', '+elapsed+')', 1000 / fps);

	} else {
		//setOpacity($(element), 100);
	}
}


function waitFor(element, tn, name){
	if(!img.complete){
		setTimeout('waitFor(\'' + element + '\', \'' + tn + '\', \'' + name + '\')', 250);
	} else {
		setOpacity($(element), 0);
		$(element).parentNode.style.textAlign = '';
		$(element).style.marginTop = '5px';
		$(element).style.marginBottom = '0';
		$(element).src = 'img/upload/' + tn + '_tn'+photo_size+'.jpg';
		$('photodesc').innerHTML = name;
		//$(element).width = 362;
		chn(element, tn, name, 0, 1);
	}
}
function galleryNext(){
	if(currentPhoto+1 >= $('gallery').getElementsByTagName('img').length){
		$('photo_next').className = 'inactive';
		return false;
	}
	$('photo_next').className = '';
	$('photo_previous').className = '';
	if(currentPhoto+2 >= $('gallery').getElementsByTagName('img').length) $('photo_next').className = 'inactive';

	$('gallery').getElementsByTagName('img')[++currentPhoto].onclick();
	$('actual').innerHTML = currentPhoto+1;
	
}
function galleryPrev(){
	if(currentPhoto <= 0){
		$('photo_previous').className = 'inactive';
		return false;
	}
	$('photo_previous').className = '';
	$('photo_next').className = '';
	if(currentPhoto <= 1) $('photo_previous').className = 'inactive';

	$('gallery').getElementsByTagName('img')[--currentPhoto].onclick();
	$('actual').innerHTML = currentPhoto+1;

	
}
function chn2(element, tn, name, no) {
	photo_size = '1';
	currentPhoto = no-1;
	
	$('photo_previous').className = '';
	$('photo_next').className = '';
	if(no <= 1) $('photo_previous').className = 'inactive';
	if(no >= $('gallery').getElementsByTagName('img').length) $('photo_next').className = 'inactive';
	
	$('actual').innerHTML = no;
	return chn(element, tn, name);
}
function chn1(element, tn, name, op, f) {
	photo_size = '2';
	return chn(element, tn, name, op, f);
}
function chn(element, tn, name, op, f) {
	if(f == null) f = 0;
	if(op == null) op = 100;
	if(name == '') name = '&nbsp;';
	if(f == 0){
		if(op > 0){
			setOpacity($(element), op);
			op -= 10;
			setTimeout('chn(\'' + element + '\', \'' + tn + '\', \'' + name + '\', ' + op + ', 0)', 30);
			return;
		}
	} else {
		if(op <= 100){
			setOpacity($(element), op);
			op += 10;
			setTimeout('chn(\'' + element + '\', \'' + tn + '\', \'' + name + '\', ' + op + ', 1)', 30);
			return;
		} else return;
	}
	img = new Image();
	img.src = 'img/upload/' + tn + '_tn'+photo_size+'.jpg';
	if(!img.complete){
		$(element).parentNode.style.textAlign = 'center';
		$(element).src = 'img/loading.gif';
		
		if(photo_size == '2'){
			$(element).style.marginTop = '145px';
			$(element).style.marginBottom = '128px';
		} else {
			$(element).style.marginTop = '235px';
			$(element).style.marginBottom = '218px';
		}
		//$(element).width = 32;
		//$(element).style.width = 32;
		setOpacity($(element), 100);
	}
	waitFor(element, tn, name);
}
function fade(element, op, f) {
	if(navigator.userAgent.indexOf('MSIE') != -1){
		if(f == 0) $(element).style.display = 'none';
		else $(element).style.display = 'block';
		return;
	}
	if(f == 0){
		if(op >= 0){
			setOpacity($(element), op);
			op -= 10;
			setTimeout('fade(\'' + element + '\', ' + op + ', 0)', 30);
		}else $(element).style.display = 'none';
	} else {
		if(op <= 100){
			$(element).style.display = 'block';
			setOpacity($(element), op);
			op += 10;
			setTimeout('fade(\'' + element + '\', ' + op + ', 1)', 30);
		}
	}
}
function scroller(){
	var startPos = 0;
    var scrollCursor = startPos;
    var speed = 7;
    var timeoutID = 0;
	var right_visible = true;
	var left_visible = false;
	var element = $('gallery_parent');
	if(!element) return;
	childNodeWidth = 0;

	
	if(element.childNodes[1]) childNodeWidth = element.childNodes[1].offsetWidth;
	else childNodeWidth = element.childNodes[0].offsetWidth;

	$('scroll_left').style.display = 'none';
	$('scroll_right').style.display = '';
	
	if(childNodeWidth < element.parentNode.offsetWidth){
		$('scroll_left').style.display = 'none';
		$('scroll_right').style.display = 'none';
		return;
	}

	element.style.left = startPos+'px';
	$('scroll_left').onmouseover = function() { scrollLeft();};
	$('scroll_left').onmouseout = function() { clearTimeout(timeoutID);};
	$('scroll_right').onmouseover = function() { scrollRight();};
	$('scroll_right').onmouseout = function() { clearTimeout(timeoutID);};

	scrollRight = function() {
        if (element) {
        	
            scrollCursor -= speed;
			if(scrollCursor < -(childNodeWidth - element.parentNode.offsetWidth)) {
				if(right_visible) {
					fade('scroll_right', 100, 0);
					right_visible = false;
				}
				return;
			}
			if(!left_visible){
				fade('scroll_left', 0, 1);
				left_visible = true;
			}
			
			//alert(element.tagName);
			element.style.left = scrollCursor+'px';
            timeoutID = setTimeout('scrollRight()', 20);
        }
    }
	scrollLeft = function() {
        if (element) {
			scrollCursor = (scrollCursor + speed) > startPos ? startPos : scrollCursor + speed;
			if(scrollCursor + speed > startPos){
				if(left_visible) {
					fade('scroll_left', 100, 0);
					left_visible = false;
				}
				return;
			}
			if(!right_visible){
				fade('scroll_right', 0, 1);
				right_visible = true;
			}
            element.style.left = scrollCursor+'px';
            timeoutID = setTimeout('scrollLeft()', 20);
        }
    }
}

function scroller_personal(){
	var startPos = 0;
    var scrollCursor = startPos;
    var speed = 7;
    var timeoutID = 0;
	var right_visible = true;
	var left_visible = false;
	var element = $('gallery_parent_personal');
	if(!element) return;
	childNodeWidth2 = 0;

	
	if(element.childNodes[1]) childNodeWidth2 = element.childNodes[1].offsetWidth;
	else childNodeWidth2 = element.childNodes[0].offsetWidth;

	$('scroll_left_personal').style.display = 'none';
	$('scroll_right_personal').style.display = '';
	
	if(childNodeWidth2 < element.parentNode.offsetWidth){
		$('scroll_left_personal').style.display = 'none';
		$('scroll_right_personal').style.display = 'none';
		return;
	}

	element.style.left = startPos+'px';
	$('scroll_left_personal').onmouseover = function() { scrollLeftP();};
	$('scroll_left_personal').onmouseout = function() { clearTimeout(timeoutID);};
	$('scroll_right_personal').onmouseover = function() { scrollRightP();};
	$('scroll_right_personal').onmouseout = function() { clearTimeout(timeoutID);};

	scrollRightP = function() {
        if (element) {
        	
            scrollCursor -= speed;
			if(scrollCursor < -(childNodeWidth2 - element.parentNode.offsetWidth)) {
				if(right_visible) {
					fade('scroll_right_personal', 100, 0);
					right_visible = false;
				}
				return;
			}
			if(!left_visible){
				fade('scroll_left_personal', 0, 1);
				left_visible = true;
			}
			
			//alert(element.tagName);
			element.style.left = scrollCursor+'px';
            timeoutID = setTimeout('scrollRightP()', 20);
        }
    }
	scrollLeftP = function() {
        if (element) {
			scrollCursor = (scrollCursor + speed) > startPos ? startPos : scrollCursor + speed;
			if(scrollCursor + speed > startPos){
				if(left_visible) {
					fade('scroll_left_personal', 100, 0);
					left_visible = false;
				}
				return;
			}
			if(!right_visible){
				fade('scroll_right_personal', 0, 1);
				right_visible = true;
			}
            element.style.left = scrollCursor+'px';
            timeoutID = setTimeout('scrollLeftP()', 20);
        }
    }
}

