// Author: Al Sierra
// Version: 6.03.2009
// Description: Scripting for global nav
function isdefined( variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}


if (typeof tfy === 'undefined' || !tfy)  {
    var tfy = {};
}


tfy.nav = function () {
	function init (){
		$$('#main-nav li.top').each(function(el){
			navobj.init(el)
		})
	}

	var navobj = {
		init: function(el) {
			
			var subMenu = $$('#'+ el.id +' ul')[0],
				overDiv = $$('#'+ el.id +' .over')[0],
				sibDiv = $$('#'+ el.id +' .sib')[0];
			if (!overDiv) {
				var oDiv = new Element('div', { 'class': 'over' }).setStyle({display: 'none'})
				el.insert(oDiv,{position:'top'});
			}	
			if (!sibDiv) {
				var sDiv = new Element('div', { 'class': 'sib' }).setStyle({display: 'none'})
				el.insert(sDiv,{position:'top'});
			}				
			el.observe('mouseover',function(e){ navobj.overEl(e,this)});
			el.observe('mouseout',function(e){ navobj.outEl(e,this)});
			
		},
		overEl: function(e,el) {
			if(el.id =='nav-home' || el.id =='nav-shop'){
				if(el.id =='nav-home'){
					$(el.id+'_a').style.backgroundPosition = "0 -37px";
				} else {
					if(el.className != 'top active stop'){
						$(el.id+'_a').style.backgroundPosition = "-514px -37px";
					}
				}
				return;
			}
			if (el.hasClassName('ovr')) return;
			var subMenu = $$('#'+ el.id +' ul')[0],
				overDiv = $$('#'+ el.id +' div')[0];
			if (subMenu) var sibDiv = (el.id != 'nav-story' ? $(el.id).next().select('.sib')[0] :  $(el.id).previous().select('.sib')[0]);
	
			el.addClassName('ovr');
			//Effect.Appear(overDiv,{ duration: 0 });
			$(overDiv).style.display="block";
			if (subMenu) {
				subMenu.setStyle({top: '37px',display: 'none'});
				//Effect.Appear(subMenu,{ duration: 0 });
				$(subMenu).style.display="block";
				//if (el.id == 'nav-story') sibDiv.addClassName('left');
			//	Effect.Appear(sibDiv,{ duration: 0 });
			}
		},
		outEl: function(e,el) {
			if(el.id =='nav-home' || el.id =='nav-shop') {
				if(el.id =='nav-home'){
					$(el.id+'_a').style.backgroundPosition = "";
				} else {
					if(el.className != 'top active stop'){
						$(el.id+'_a').style.backgroundPosition = "-514px 0";
					}
				}
				return;
			}
			try{
				if (e.relatedTarget.descendantOf(el)) return;
			}
			catch(err){
			
			}
			el.removeClassName('ovr');
			var subMenu = $$('#'+ el.id +' ul')[0],
				overDiv = $$('#'+ el.id +' div')[0];
				
			if (subMenu) var sibDiv = (el.id != 'nav-story' ? $(el.id).next().select('.sib')[0] :  $(el.id).previous().select('.sib')[0]);
			
			//Effect.Fade(overDiv,{ duration: 0 });
			$(overDiv).style.display="none";
			if (subMenu) {
				//Effect.Fade(sibDiv,{ duration: 0 });
				//Effect.Fade(subMenu,{ duration: 0 });
				$(sibDiv).style.display="none";
				$(subMenu).style.display="none";
				if (el.id == 'nav-story') Element.removeClassName.delay(0, sibDiv, 'left');

			}
		},

		overEls: function(e,el) {
			if(el.id =='nav-home' || el.id =='nav-shop'){
				if(el.id =='nav-home'){
					$(el.id+'_a').style.backgroundPosition = "0 -37px";
				} else {
					$(el.id+'_a').style.backgroundPosition = "-514px -37px";
				}
				return;
			}
			if (el.hasClassName('ovr')) return;
			var subMenu = $$('#'+ el.id +' ul')[0],
				overDiv = $$('#'+ el.id +' div')[0];
			if (subMenu) var sibDiv = (el.id != 'nav-story' ? $(el.id).next().select('.sib')[0] :  $(el.id).previous().select('.sib')[0]);
	
			el.addClassName('ovr');
			Effect.Appear(overDiv,{ duration: 0 });
			if (subMenu) {
				subMenu.setStyle({top: '37px',display: 'none'});
				Effect.Appear(subMenu,{ duration: 0 });
				//if (el.id == 'nav-story') sibDiv.addClassName('left');
			//	Effect.Appear(sibDiv,{ duration: 0 });
			}
		},
		outEls: function(e,el) {
			if(el.id =='nav-home' || el.id =='nav-shop') {
				if(el.id =='nav-home'){
					$(el.id+'_a').style.backgroundPosition = "";
				} else {
					$(el.id+'_a').style.backgroundPosition = "-514px 0";
				}
				return;
			}
			if (e.relatedTarget.descendantOf(el)) return;
			el.removeClassName('ovr');
			var subMenu = $$('#'+ el.id +' ul')[0],
				overDiv = $$('#'+ el.id +' div')[0];
				
			if (subMenu) var sibDiv = (el.id != 'nav-story' ? $(el.id).next().select('.sib')[0] :  $(el.id).previous().select('.sib')[0]);
			
			Effect.Fade(overDiv,{ duration: 0 });
			if (subMenu) {
				Effect.Fade(sibDiv,{ duration: 0 });
				Effect.Fade(subMenu,{ duration: 0 });
				if (el.id == 'nav-story') Element.removeClassName.delay(0, sibDiv, 'left');

			}
		}
	}
	return {
        init : init
    };
}();

tfy.pops = function () {
	function init (){
		var popLinks = $$('.popup');
		popUps.init(popLinks);
	}

	var popUps = {
		init: function(links) {
			
			this.buildPop();
			links.each(function(el){	
				el.observe('click',function(e){popUps.showPop(e,this)})
			});
		},
		buildPop: function() {
			var pDiv = new Element('div', { 'id': 'popUp' }).setStyle({display: 'none',top:'-999px',left:'-999px'}),
				pInDiv = new Element('div', { 'class': 'inner' }),
				clsDiv = new Element('div', { 'id': 'pop-close' }),
				cntnDiv = new Element('div', { 'id': 'pop-content' });
			pInDiv.insert(cntnDiv).insert(clsDiv);
			pDiv.insert(pInDiv);
			$$('body')[0].insert(pDiv,{position:'bottom'});
			clsDiv.observe('click',function(e){popUps.hidePop()})
		},
		showPop: function(e,el) {
			var contentID = el.readAttribute('rel');
			if (!contentID) {
				return false
			}
			var popUp = $('popUp'),
				pos = el.cumulativeOffset(),
				content = $(contentID),
				popContent = $('pop-content');
			if (!popUp) {
				this.buildPop();
			};
			popContent.update(content.innerHTML);
			popUp.setStyle({'top':pos.top - popUp.getHeight() +'px', left: pos.left + el.getWidth() +'px'});
			Effect.Appear(popUp,{ duration: 0 });
			var window_scroll_position = tfy.main.getYOffset();
			var pop_content_position = pos.top - popUp.getHeight();
			//Scroll to pop up content position if window scroll position is greater
			if(window_scroll_position > pop_content_position){
				window.scrollTo(0,pop_content_position);
			}
			Event.stop(e);
		},
		hidePop: function() {
			var popUp = $('popUp'),
				popContent = $('pop-content');
			Element.update.delay(0,popContent,'');
			Effect.Fade(popUp,{ duration: 0 });
		}
	}
	return {
        init : init
    };
}();



document.observe("dom:loaded", function() {
  tfy.nav.init();
  tfy.pops.init();
  
});