// JavaScript Document

var myUtils = {
	
	debug : Boolean = false,
	
	init : function()
	{
		// init functions here
		var btns = document.getElementsByTagName("A");
		for( i=0;i<btns.length;i++ )
		{
			if( btns[i].id  && btns[i].id.indexOf("showhide_")>-1 )
			{
				var btn = btns[i];
				btn.onclick = function()
				{
					var div = document.getElementById(this.rel);
					div.style.display = (div.style.display!='block') ? 'block':'none';
					return false;
				}
			}
		}
		
		if($('gallery_image')) myUtils.gallery_init();
	},
	
	getAll : function (tagname,key,val)
	{
		var tags = document.getElementsByTagName(tagname.toUpperCase());
		//alert(tags.length);
		if( key && val )
		{
			//alert("we're getting specific...");
			var specific_tags = new Array();
			for( var i=0;i<tags.length;i++ )
			{
				if(tags[i][key] && tags[i][key].indexOf(val)>-1)
				{
					specific_tags.push(tags[i]);
				}
			}
			return (specific_tags.length>0) ? specific_tags : false;
		}
		else
		{
			return tags;	
		}
	},
	
	trace : function (str)
	{
		if(this.debug) alert(str);
	},
	
	gallery_init : function()
	{
		// init gallery
		var duration = 0.2;
		var thumbs = new Array();
		var num = 0;
		var current_num = 0;
		var current_thumb;
		
		for( i=0; i<$('gallery_thumbs').childNodes.length; i++ )
		{
			if($('gallery_thumbs').childNodes[i].tagName == "IMG")
			{
				var thumb = $('gallery_thumbs').childNodes[i];
				thumbs.push(thumb);
				thumb.num = num++;
				if(!current_thumb) 
				{
					current_thumb = thumb;
					thumb.className = 'current';
				}
				
				// set click action
				thumb.onclick = function()
				{
					current_num = this.num;
					changeImage(this);
				}
				
				// preload other images
				var preload = new Image();
				preload.src = thumb.src.replace('thumb','med');
			}
			
			var prev = $('gallery_prev');
			var next = $('gallery_next');
			
			if(prev)
			{
				prev.onclick = function()
				{
					current_num = (current_num==0) ? thumbs.length-1 : current_num-1;
					changeImage(thumbs[current_num]);
					return false;
				}
			}
			
			if(next)
			{
				next.onclick = function()
				{
					current_num = (current_num==thumbs.length-1) ? 0 : current_num+1;
					changeImage(thumbs[current_num]);
					return false;
				}
			}
			
			function changeImage(thumb)
			{
				current_thumb.className = '';
				current_thumb = thumb;
				thumb.className = 'current';
				
				$('gallery_image').parentNode.href = thumb.src.replace('thumb','large');
				
				$('gallery_image').fade( 
				{
					duration: duration, 
					from: 1.0, 
					to: 0.01,
					queue: 'end',
					afterFinish: (function()
										{
											$('gallery_image').src = thumb.src.replace('thumb','med');
											$('gallery_image').appear({duration: duration});
										})
				});
			}
		}
	},

	
	css_validation : function(form)
	{
		if(!form) form = document.forms[0];
		var submit_it = true;
		for( i=0;i<form.length;i++ )
		{
			if( form[i].className && form[i].className.indexOf('REQUIRED') > -1 )
			{
				form[i].oldclass = form[i].parentNode.parentNode.className;
				if( form[i].value == '' )
				{
					form[i].parentNode.parentNode.className = form[i].oldclass+" error";
					submit_it = false;
				}
				else
				{
					while(form[i].parentNode.parentNode.className.indexOf(" error")>-1)
					{
						form[i].parentNode.parentNode.className = form[i].parentNode.parentNode.className.replace(" error","");
					}
				}
			}
		}
		if( !submit_it ) document.getElementById('errormsg').innerHTML = '<strong>Please review the highlighted fields and resubmit.</strong>';
		return submit_it;
	}
}

Event.observe(window, 'load', myUtils.init);