// Create the Original Branding namespace
var OB = window.OB || {};

//Smooth scroll internal links
OB.scrollLinks = function(){
	return {
		start : function(){
			this.allLinks = $A(document.getElementsByTagName('*'));
			this.allLinks.each(function(lnk){
				if ((lnk.href && lnk.href.indexOf('#') != -1) && ( (lnk.pathname == location.pathname) || ('/'+lnk.pathname == location.pathname) ) && (lnk.search == location.search) && (lnk.className != 'no_scroll')) {
					if(!lnk.hash) return;
					lnk.onclick = function(){
						this.initialHash = this.hash;
						this.initialHref = this.href;
						this.href = "javascript:void(0)";
						OB.scrollLinks.go(this);
					};
				};
			});
		},
		go : function(link){
			this.allTags = $A(document.getElementsByTagName('*'));	
			this.currentHash = link.initialHash.slice(1);
			if (this.currentHash) {
				this.allTags.each(function(tag){
					if (tag.id == OB.scrollLinks.currentHash){
						new Effect.ScrollTo(tag, {afterFinish:function(){OB.scrollLinks.end(link);}});
					};
				});
			};
		},
		end : function(link){
			link.href = link.initialHref;
		}
	}
}();

//Tell a friend scroll open box
OB.scrollOpenClose = function(e,ele) {
	Event.stop(e);
	var el = $(ele);
	if(el.className != 'open'){
		new Effect.SlideDown(el);
		el.className = 'open';
	}else{
		new Effect.SlideUp(el);
		el.className = '';
	};
}

//fade main image
OB.imageFader = function(){
	var i = 0;
	return {
		images : [], 
		pause : 10,  //default pause duration
		target : '', //image to fade
		imgPath : '/imgs/',
		start : function() { 
			if(this.images.length == 0){OB.debug('Image Fader: No Image Set');return;}//no images set
			if(this.target == ''){OB.debug('Image Fader: No Target Set');return;} //no target set
			new PeriodicalExecuter(this.cycle, this.pause)
		}, 
		cycle : function() { 
			new Effect.Fade(OB.imageFader.target, { duration: 1, fps: 50, to:0.1, afterFinish: function(){
					$(OB.imageFader.target).src = OB.imageFader.imgPath + OB.imageFader.images[i];
					new Effect.Appear(OB.imageFader.target, { duration: 1, fps: 50, queue:'end' })
				} 
			});
			if(i == OB.imageFader.images.length-1){ i = 0 }else { i++ }
		} 
	} 
}();

// write debug message to firebug
OB.debug = function( text ){
	if( console.log ){ console.log( text ); };
};


//Shortcut keys
OB.keys = function(e){
	if (window.event) {
		keycode = event.keyCode;
		shift = event.shiftKey;
	} else {
		keycode = e.which;
		shift = e.shiftKey;
	}
	key = String.fromCharCode(keycode).toLowerCase();
	if( shift ){
		if( key == 'f' ) { OB.scrollOpenClose(e,'tell_a_friend_container') }
	}
}

//Send to friend
OB.sendToFriend = function(e){
	return {
		start : function(e){
			Event.stop(e);
			new Effect.Fade('frmTellAFriend', { duration: 1, fps: 50, afterFinish: function(){
					new Effect.Appear('loading', { duration: 1, fps: 50, queue:'end', afterFinish : function(){
						var url = 'includes/sendToFriend.inc.php'
						var pars = 'action=send&' + Form.serialize($('frmTellAFriend'));
						
						var myAjax = new Ajax.Request( url, { method: 'get', parameters: pars, onComplete: OB.sendToFriend.finished });
					}})
				} 
			});
		},
		finished : function(){
			var loadingImage = $('loading').innerHTML;
			new Effect.Fade('loading', { duration: 1, fps: 50, afterFinish: function(){
				$('loading').innerHTML = '<strong>Message Sent</strong>';
				new Effect.Appear('loading', { duration: 1, fps: 50, afterFinish: function(){ 
					new Effect.Fade('tell_a_friend_container', { duration: 1, fps: 50, queue:'end', afterFinish: function(){
						$('tell_a_friend_container').className = '';
						$('frmTellAFriend').style.display = '';
						Element.hide('loading');
					}}) ;
				}});
			}});
		}
	}
}();

function pageLoader(){
	//start link scroller
	OB.scrollLinks.start();
	
	// Image Fader code, have a look if we need to set different images
	switch ( document.getElementsByTagName('body')[0].className ){
		case 'snow_locations':
			OB.imageFader.images = new Array('snow-world-1.jpg','snow-world-2.jpg','snow-world-3.jpg','snow-world-4.jpg');
			break;
		case 'sky_locations':
			OB.imageFader.images =  new Array('sky-world-1.jpg','sky-world-2.jpg','sky-world-3.jpg');
			break;
		default :
			OB.imageFader.images = new Array('skiing-image.jpg','skydive-image.jpg');
	};
	OB.imageFader.imgPath = 'http://www.skyandsnowadventures.com/images/graphics/'
	OB.imageFader.target = 'mainImage'; //image to fade
	OB.imageFader.pause = 10; //fade pause time
	OB.imageFader.start(); //start image fader
	
	//add events
	Event.observe($('tell_a_friend'), 'click', function(e){OB.scrollOpenClose(e,'tell_a_friend_container')}, false);
	$('tell_a_friend').onclick = function() {return false;}; //Added for safari
	Event.observe(document, 'keydown', OB.keys, false);
	Event.observe($('frmTellAFriend'), 'submit', OB.sendToFriend.start, false);
	$('frmTellAFriend').onsubmit = function() {return false;}; //Added for safari
}
Event.observe(window, 'load', pageLoader, false);
