/* 
	Mont Blanc Summer
	DOM Functions
	DOMFunctions.js
	
	Creator: Matt Kircher
	Created: 4/18/07
	Modified: --

*/

function getURL(url){
	location.href = (url!="" || url!=null)?url:location.href;
	return true;
}

/*---*/

function fadeIn(objId,opacity) {
  if (document.getElementById) {
    var obj = document.getElementById(objId);
    if (opacity <= 100) {
      setOpacity(obj, opacity);
      opacity += 10;
      window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 10);
    }
  }
}
function fadeOut(objId,opacity) {
  if (document.getElementById) {
    var obj = document.getElementById(objId);
    if (opacity >= 0) {
      setOpacity(obj, opacity);
      opacity -= 10;
      window.setTimeout("fadeOut('"+objId+"',"+opacity+")", 10);
    }
  }
}

function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  obj.style.filter = "alpha(opacity:"+opacity+")";	// IE/Win
  obj.style.KHTMLOpacity = opacity/100;				// Safari<1.2, Konqueror
  obj.style.MozOpacity = opacity/100;				// Older Mozilla and Firefox
  obj.style.opacity = opacity/100;					// Safari 1.2, newer Firefox and Mozilla, CSS3
}

function getDocDimensions(){
	var docWidth = 0, docHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		docWidth = window.innerWidth;
		docHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		docWidth = document.documentElement.clientWidth;
		docHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		docWidth = document.body.clientWidth;
		docHeight = document.body.clientHeight;
	}
	return [docWidth, docHeight];
}

function getDocDimensionOffset(){
	var docOffsetWidth = 0, docOffsetHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		docOffsetWidth = window.pageXOffset;
		docOffsetHeight = window.pageYOffset;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		docOffsetWidth = document.documentElement.scrollLeft;
		docOffsetHeight = document.documentElement.scrollTop;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		docOffsetWidth = document.body.scrollLeft;
		docOffsetHeight = document.body.scrollTop;
	}
	return [docOffsetWidth, docOffsetHeight];
}

function createImage(img, dd, w, h, desc){
	var target_container = document.getElementById("content");

	if(document.getElementById("ddimage_div") == null){
		
		// <div>
		var my_div = document.createElement("div");
		my_div.setAttribute("class","ddimage_div");
		my_div.setAttribute("className","ddimage_div");
		my_div.id = "ddimage_div";
		
		// <p><a href="">...</a></p>
		var close_bar = document.createElement("p");
		var close_bar_a = document.createElement("a");
		close_bar_a.href = "#";
		close_bar_a.onclick = function(){ destroyObject("ddimage_div"); return false; }
		var close_bar_txt = document.createTextNode("[x]");
		close_bar_a.appendChild(close_bar_txt);
		close_bar.appendChild(close_bar_a);
		my_div.appendChild(close_bar);
		
		// <img src="" />
		var my_img = document.createElement("img");
		my_img.src = img;
		my_img.border = 1;
		if(w != null){ my_img.width = w; }
		if(h != null){ my_img.height = h; }
		my_div.appendChild(my_img);
			
		// <p class="description">
		if(desc != null){
			var desc_bar = document.createElement("p");
			desc_bar.setAttribute("class","description");
			desc_bar.setAttribute("className","description");
			var desc_bar_txt = document.createTextNode(desc);
			desc_bar.appendChild(desc_bar_txt);
			my_div.appendChild(desc_bar);
		}
		
		target_container.appendChild(my_div);
		
		
		var div_h = my_div.offsetHeight;
		var img_w = my_img.offsetWidth;
		if(img_w < 50){
			img_w = my_div.offsetWidth;
		}
		var dims = getDocDimensions();
		var offsets = getDocDimensionOffset();
		my_div.style.width = eval(img_w+(my_div.style.padding*2))+"px";
		my_div.style.top = "0px"; //"-"+eval(div_h)+"px";
		my_div.style.left = eval((dims[0]/2)-(img_w/2))+"px";
		setOpacity(my_div, 0);
		fadeIn("ddimage_div", 0);
	
		var target_top = eval(((dims[1]/2)-(div_h/2)) + offsets[1]);
		my_div.style.top = eval(target_top-30)+"px";
		
		if(dd){	dropDownObj(my_div, 0, target_top, 10);	}
	}
}

function dropDownObj(obj, from, to, speed){
	obj.style.top = from+"px";
	var target_top = to;
	
	var dd_timer = setInterval(function(){
		var current_pos = eval(obj.style.top.substring(0,obj.style.top.length-2));
		if(current_pos < target_top){
			obj.style.top = eval(current_pos+5)+"px";
		} else {
			clearInterval(dd_timer);
		}
	}, speed);	
}

function destroyObject(objId){
	var c = document.getElementById(objId).parentNode;
	var n = document.getElementById(objId);
	c.removeChild(n);
}


// GALLERY DOM FUNCTIONS

function buildImageGallery(images){
	buildImageGalleryThumbnails(images);
	setupThumbnailActions();
}
function buildImageGalleryThumbnails(images){
	var thumbnails = document.getElementById('thumbnails');
	
	var thumbs = document.createElement('div');
	thumbs.id = "thumbnail-images";
	thumbs.innerHTML = images;	
	
	var w = 15;
	for(var x=0; x<thumbs.childNodes.length; x++){
		thumbs.childNodes[x].width = 50;
		thumbs.childNodes[x].height = 50;
		thumbs.childNodes[x].align = "left";
		
		thumbs.childNodes[x].onclick = function(){
			var curr_img = document.getElementById('current-image');
			var curr_img_desc = document.getElementById('current-image-desc');
			curr_img.innerHTML = '<img src="'+this.src+'" alt="'+this.alt+'" title="'+this.title+'" />';
			//remove to hide captions
			curr_img_desc.innerHTML = this.title;
			//curr_img_desc.innerHTML = "";
			
			var curr_img_height = curr_img.getElementsByTagName('img')[0].offsetHeight;
			var curr_img_container_height = curr_img.offsetHeight;
			
			if(curr_img_container_height > curr_img_height){
				curr_img.getElementsByTagName('img')[0].style.marginTop = eval((curr_img_container_height-curr_img_height)/2)+"px";
			} else {
				curr_img.getElementsByTagName('img')[0].style.marginTop = "0px";
				curr_img.getElementsByTagName('img')[0].style.height = eval(curr_img_container_height - 50)+"px";
			}
		}
		w += 65;
	}
	thumbs.style.width = w+"px";
	
	var curr_img = document.getElementById('current-image');
	var curr_img_desc = document.getElementById('current-image-desc');
	curr_img.innerHTML = '<img src="'+thumbs.childNodes[0].src+'" alt="'+thumbs.childNodes[0].alt+'" title="'+thumbs.childNodes[0].title+'" />';
	//remove to hide captions
	curr_img_desc.innerHTML = thumbs.childNodes[0].title;
	
	var curr_img_height = curr_img.getElementsByTagName('img')[0].offsetHeight;
	var curr_img_container_height = curr_img.offsetHeight;
	
	if(curr_img_container_height > curr_img_height){
		curr_img.getElementsByTagName('img')[0].style.marginTop = "0px";
	} else {
		curr_img.getElementsByTagName('img')[0].style.marginTop = "0px";
		curr_img.getElementsByTagName('img')[0].style.height = eval(curr_img_container_height - 50)+"px";
	}
	thumbnails.appendChild(thumbs);
	
	thumbnails.style.position = "relative";
	thumbs.style.position = "absolute";
	thumbs.style.left = "0px";
	
	if(navigator.appName != "Microsoft Internet Explorer"){
		thumbs.style.overflow = "hidden";
	} else {
		thumbs.style.width = thumbs.offsetWidth+"px";
		thumbnails.style.overflow = "hidden";
	}
}

var thumbnail_xpos = 0;
function setupThumbnailActions(){
	var prev = document.getElementById('prev-thumbnail');
	var next = document.getElementById('next-thumbnail');
	var thumbs = document.getElementById('thumbnail-images');
	var xMove = 50;
	prev.onclick = function(){
		thumbnail_xpos += xMove;
		if(thumbnail_xpos >= 0){ thumbnail_xpos = 0; }
		thumbs.style.left = thumbnail_xpos+"px";
		return false;
	};
	next.onclick = function(){
		if(thumbnail_xpos > eval((-1)*(thumbs.offsetWidth)) + 540){ thumbnail_xpos -= xMove; }
		thumbs.style.left = thumbnail_xpos+"px";
		return false;
	};
}
function galleryIsWaiting(isWaiting){
	var base = findHrefBase();
	if(isWaiting){
		//document.getElementById('current-image').innerHTML = '<img id="waiting_icon" src="'+base+'images/gallery_wait_icon.jpg" />';	
	} else { 
		//fadeOut('waiting_icon', 100, true); 
	}
}