/* This Code Free To Use As Long As These Lines Remain */
/* DOM Image Rollover Code */
/* Created by Chris Poole <http://www.chrispoole.com> */
/* Featured at <http://www.DesignerWiz.com> */
/* Development Resource & JavaScript Public Archive Center */

//Do this with mootools instead.
function init() {
	if (!document.getElementById) return
	var imgTemp = new Array();
	var imgarr = document.getElementsByTagName('img');
	for (var i = 0; i < imgarr.length; i++) {
		if (imgarr[i].getAttribute('hsrc')) {
			imgTemp[i] = new Image();
			imgTemp[i].src = imgarr[i].getAttribute('hsrc');
			imgarr[i].onmouseover = function() {
				this.setAttribute('src',this.getAttribute('hsrc'))
			}
			imgarr[i].onmouseout = function() {
				this.setAttribute('src',this.getAttribute('fsrc'))
			}
		}
	}
}

var expanded = 0; 
var bitExpanded = 0;

window.addEvent('domready', function() {
	/* Rollovers for little boxes */
	$$('.bit').each(function(item) {
		//this should be more generic
		var bit = item;
			color = bit.getStyle('backgroundColor');
		
		bit.set('opacity', 1).addEvents({
			mouseenter: function(){
				// This morphs the opacity 
				if (bit.id != bitExpanded) {
					var morpher = new Fx.Morph(bit, {duration: 'short'});
					morpher.start({
						'opacity': 0.4
					});
				}
			},
			mouseleave: function(){
				// Morphs back to the original style
				if (bit.id != bitExpanded) {
					var morpher = new Fx.Morph(bit, {duration: 'short'});
					morpher.start({
						'opacity': 1,
						'background-color': color
					});
				}
			}
		});

		bit.addEvent('click', function() {
			bit.set('opacity', 0.4);
			var imageNum = bit.id.split('_')[1];
			var image = $(bit.id.split('_')[0]);
			var text = $(image.id + '_text');
	
		//	console.log("%s %s %s", imageNum, image.id, text.id);

			if ((image.id == expanded && bit.id != bitExpanded) || bitExpanded == 0) {
				oldBitExpanded = bitExpanded;
				bitExpanded = item.id;
				var fx = new Fx();
		
		/*		console.log("Starting effects");
				console.trace();
		*/		fx.start(item.fade(0.4)).chain(
					function() { 
						if (oldBitExpanded != 0) { 
							this.start($(oldBitExpanded).fade(1));
						}
					},
					function() { this.start(text.fade(0)); this.start(image.fade(0)); },
					function() { this.start(image.set('src', 'images/dot.png')); },
					function() { this.start(image.set('src', 'images/'+image.id+'-'+imageNum+'.png')); this.start(text.set('src', 'images/'+image.id+'-text-'+imageNum+'.png')); },
					function() { this.start(text.fade(1)); this.start(image.fade(1)); }
				);
			}
		});
	});

	/* Our Work icon clicking/expanding */
	$$('.project_div').each(function(div) {
		div.addEvent('click', function() {
			var item = $(div.id.split('_')[0]);
			var d = $(item.id + '_div');
			var shadow = $(item + '_b');
			var fx = new Fx();
			var scroller = new Fx.Scroll(window, {offset: { 'x': 0, 'y': -150 }});
			
			if (expanded != item.id) {
				if (expanded != 0) { 
					var old_expanded = $(expanded);
					var old_expanded_text = $(old_expanded.id + "_text");

					var morph_back = new Fx.Morph(old_expanded.id + '_inner_img', {duration: 400});
					var morph_outer_back = new Fx.Morph(old_expanded.id + '_outer_img', {duration: 400});
					var other_fx = new Fx();
					other_fx.start(old_expanded.fade(0)).chain( 
						function() { this.start(old_expanded_text.fade(0)); },
						function() {
							this.start(old_expanded_text.set('src', 'images/dot.png'));
							this.start(morph_back.start('.project_inner_img')); 
							this.start(morph_outer_back.start('.project_outer_img'));
						},
						function() {
							this.start(old_expanded.set('src', 'images/'+old_expanded.id+'-SMALL.png'));
							this.start(old_expanded_text.set('src', 'images/'+old_expanded.id+'-text-SMALL.png'));
						},
						function() { 
							this.start(old_expanded_text.fade(1));
							this.start(old_expanded.fade(1));
						} 
					);
				}

				oldBitExpanded = bitExpanded;
				expanded = item.id;
				bitExpanded = item.id + '_1';
				var morph = new Fx.Morph(item.id + '_inner_img', {duration: 400});
				var morph_outer = new Fx.Morph(item.id + '_outer_img', {duration: 400});
				
				var text = $(item.id + '_text');
				var fader = new Fx.Tween(text, {duration: 200});
			
				if (oldBitExpanded != 0) { 
					$(oldBitExpanded).set('opacity', 1);
				}

				$(bitExpanded).set('opacity', 0.4);
				fx.start(item.fade(0)).chain( 
					function() {
						this.start(text.set('src', 'images/dot.png'));
						this.start(morph.start('.big_project_img'));
						this.start(morph_outer.start('.big_project_img_clear'));
					},
					function() { 
						this.start(item.set('src', 'images/dot.png')); 
						this.start(text.set('src', 'images/dot.png')); 
					},
					function() {
						this.start(item.set('src', 'images/'+item.id+'-1.png')); 
						this.start(text.set('src', 'images/'+item.id+'-text-1.png'));
						this.start(scroller.toElement(d));
					},
					function() { 
						this.start(text.fade(1)); 
						this.start(item.fade(1));
					}	
				);
			}
		});
	});

	/* Page sliding 
	var slideMain = new Fx.Slide('main', {duration:300});
	var slideFolio = new Fx.Slide('main_folio', {duration:300});
	slideFolio.hide();

	$('a_main').addEvent('click', function() {
		slideFolio.slideOut().chain(
			function() { 
				slideMain.slideIn(); 
			}
		);
	});

	$('a_our_work').addEvent('click', function() {
		slideMain.slideOut().chain( 
			function() {
				slideFolio.slideIn();
			}
		);
	});
	*/
});

function validateContactUsForm() {
 	var okSoFar=true;
 	with (document.contactForm) {
 		var foundAt = email.value.indexOf("@",0);
		if (foundAt < 1 && okSoFar) {
			okSoFar = false;
			alert ("Please enter a valid email address.");
			email.focus();
		}
		if(reference.value=="default" && okSoFar) {
			okSoFar = false;
			alert("Please select an option for how you heard about us.");
			reference.focus();
		}
		if(subject.value=="default" && okSoFar) {
			okSoFar = false;
			alert("Please select the subject of this message.");
			subject.focus();
		}
		if(firstName.value=="" && okSoFar) {
			okSoFar = false;
			alert("Please enter your first name.");
			firstName.focus();
		}
		if(lastName.value=="" && okSoFar) {
			okSoFar = false;
			alert("Please enter your last name.");
			lastName.focus();
		}
		if (subject.value=="" && okSoFar) {
			okSoFar=false;
			alert("Please select a Subject");
			subject.focus();
		}
		if (comments.value=="" && okSoFar) {
			okSoFar=false;
			alert("Please enter the details for your enquiry.");
			comments.focus();
		}
		if (okSoFar==true) {
			submit();
		}
	}
};

onload=init;

