if(typeof CGC=="undefined"||!CGC) {
	var CGC={};
}

CGC.template = (function() {
	// Modal services & weather specifics
	var mask,weatherShow,modalWeather,closeWeather;
	
	var animateMask,closeMask;
	
	mask = YAHOO.util.Dom.get("mask");
	weatherShow = YAHOO.util.Dom.get("modalWeatherLink");
	modalWeather = YAHOO.util.Dom.get("modalWeather");
	closeWeather = YAHOO.util.Dom.get("weather_close");
	
	animateMask = function(ev) {
		var maskStruct = maskDimensions();
		document.body.appendChild(mask);
		document.body.appendChild(modalWeather);
		YAHOO.util.Dom.setStyle(mask, "height", maskStruct.height + "px");
		YAHOO.util.Dom.setStyle(mask, "display", "block");
		YAHOO.util.Dom.setStyle(modalWeather, "display", "block");
		YAHOO.util.Dom.setStyle(modalWeather, "top", maskStruct.scrTop + 20 + "px");
		
		YAHOO.util.Event.addListener(closeWeather, "click", closeModal);
		YAHOO.util.Event.preventDefault(ev);
	}
	closeModal = function(ev) {
		YAHOO.util.Dom.setStyle(mask, "display", "none");
		YAHOO.util.Dom.setStyle(modalWeather, "display", "none");
		YAHOO.util.Event.preventDefault(ev);
	}
	maskDimensions = function() {
		var maskDims = {};
		var vp = YAHOO.util.Dom.getViewportHeight();
		var doc = document.body.clientHeight;
		
		if(vp > doc) {
			maskDims.height = vp ;
		} else {
			maskDims.height = doc;
		}
		maskDims.scrTop = YAHOO.util.Dom.getDocumentScrollTop();
		return maskDims;
	}
	
	return {
		init: function() {
			YAHOO.util.Event.addListener(weatherShow, "click", animateMask);
		}
	}
})(); 

CGC.homeGallery = (function() {
    //Home page rotating images
	var images = {};
    var wrapperHomeImage,defaultHomeImage;
    var setUpNodes,start,runAnimation,manageOrder;
    var imgElems = [];
    var realImgElems = [];
    //var moveIn;
	    
    wrapperHomeImage = document.getElementById("wrapperHomeImage");
    defaultHomeImage = document.getElementById("defaultHomeImage");
    
    var current,next,last;
	current = 0;
    next = 1;
    last = realImgElems.length - 1;

	var fadeOut =  new YAHOO.util.Anim(realImgElems[current], { opacity: { from: 1, to: 0 } }, 2, YAHOO.util.Easing.easeOut);
	var fadeIn =  new YAHOO.util.Anim(realImgElems[next], { opacity: { from: 0, to: 1 } }, 2, YAHOO.util.Easing.easeIn);
	
	// fadeIn.onComplete.subscribe(funcion() {
	// 		manageOrder();
	// 		runAnimation();
	// 	});
            
	images = {
		"Pics": [{
			src: "images/template_snow_2010.jpg",
			alt: "Clubhouse after heavy snowfall"
		},
		{
			src: "images/template_bluebells.jpg",
			alt: "Springtime bluebells"
		},
		{
			src: "images/template_honey.jpg",
			alt: "Honey the cat"
		}]
	}
    
    setUpNodes = function() {        
        
        imgElems.push(defaultHomeImage);
        
        for(var i=0, il = images.Pics.length; i < il; i++ ) {
            var elem = document.createElement("img");
            elem.src = images.Pics[i].src;
            elem.alt = images.Pics[i].alt;
			elem.style.opacity = 0;
            imgElems.push(elem);
            wrapperHomeImage.appendChild(elem);
            
            realImgElems = YAHOO.util.Dom.getElementsBy(function() {return true}, "img", wrapperHomeImage);
            
            
        };

		start = function() {
			
			window.setTimeout(function() {
                fadeOut.animate();
				fadeIn.animate();
				// manageOrder();
				// 				runAnimation();
            }, 5000);
			
			//manageOrder();
			//runAnimation(); 
		};
        
        
        runAnimation = function() {                                    
            // fadeIn.onComplete.subscribe(
            //                 function() {
            //                     manageOrder();
                    window.setTimeout(function() {
						fadeOut.animate();
						fadeIn.animate();
                    }, 3000);
                //}
                        // 
                        // );
        };
        
        
        manageOrder = function() {
            current = next;
            if(next === last) {
                next = 0;
            } else {
                next = next + 1;
            }
            fadeOut.setEl(realImgElems[current]); 
			fadeIn.setEl(realImgElems[next]);                    
        };
    
    }
	
	
	return {
        setUp: function() {
            setUpNodes();
			start();
                      
        }
	}
})();


var template = {
	init: function() {
		YAHOO.util.Dom.setStyle("eggs", "opacity", "0");
		YAHOO.util.Event.addListener('link9eggs', 'click', template.manageCreditToggle);
		template.manageLastChild();
	}
	,
	manageCreditToggle: function(e) {
		template.showCredit();
		YAHOO.util.Event.addListener('eggsClose', 'click', template.hideCredit);
		YAHOO.util.Event.preventDefault(e);
	}
	,
	showCredit: function() {
		YAHOO.util.Dom.setStyle("eggs", "display", "block");
		var creditAppear =  new YAHOO.util.Anim('eggs', { opacity: { from: 0, to: 1 } }, 1.5, YAHOO.util.Easing.easeOut);
		creditAppear.animate();
	}
	,
	hideCredit: function(e) {
		var creditDisappear =  new YAHOO.util.Anim('eggs', { opacity: { from: 1, to: 0 } }, 1.25, YAHOO.util.Easing.easeOut);
		creditDisappear.onComplete.subscribe(
			function() {YAHOO.util.Dom.setStyle("eggs", "display", "none");}
		);
		creditDisappear.animate();
		YAHOO.util.Event.preventDefault(e);
	}
	,
	manageLastChild: function() {
		navChildren = YAHOO.util.Dom.getElementsByClassName("child", "li", "contentNavigation");
		YAHOO.util.Dom.addClass(navChildren[navChildren.length - 1], "last_child");
	}
}

/*
JSTarget function by Roger Johansson, www.456bereastreet.com - adapted for YUI library!!
*/
var JSTarget = {
	init: function(att,val,warning) {
		if (document.getElementById && document.createElement && document.appendChild) {
			var strAtt = ((typeof att == 'undefined') || (att == null)) ? 'class' : att;
			var strVal = ((typeof val == 'undefined') || (val == null)) ? 'non-html' : val;
			var strWarning = ((typeof warning == 'undefined') || (warning == null)) ? '' : warning;
			var oWarning;
			var arrLinks = document.getElementsByTagName('a');
			var oLink;
			var oRegExp = new RegExp("(^|\\s)" + strVal + "(\\s|$)");
			for (var i = 0; i < arrLinks.length; i++) {
				oLink = arrLinks[i];
				if ((strAtt == 'class') && (oRegExp.test(oLink.className)) || (oRegExp.test(oLink.getAttribute(strAtt)))) {
					oWarning = document.createElement("em");
					oWarning.appendChild( document.createTextNode(strWarning) );
					oLink.appendChild(oWarning);
					oLink.onclick = JSTarget.openWin;
				}
			oWarning = null;
			}
		}
	},
	openWin: function(e) {
		var event = (!e) ? window.event : e;
		if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return true;
		else {
			var oWin = window.open(this.getAttribute('href'), '_blank');
			if (oWin) {
			if (oWin.focus) oWin.focus();
			return false;
		}
			oWin = null;
			return true;
		}
	}
}

var YUIUtils = {
	blag: function() {
		return true
	}
}

var imageGallery = {
	manageGalleryListeners: function() {
		allThumbs = YAHOO.util.Dom.getElementsBy(YUIUtils.blag, "a", "imageGallery");
		for(i=0; i < allThumbs.length; i++) {
			YAHOO.util.Event.addListener(allThumbs[i], "click", imageGallery.showPic, allThumbs[i], true);
		}
	}
	,
	showPic: function(ev, obj) {
		var placeholder = YAHOO.util.Dom.getElementsBy(YUIUtils.blag, "img", "imageGalleryShow");
		placeholder[0].src = obj.href;
		var placeholder = YAHOO.util.Dom.getElementsBy(YUIUtils.blag, "p", "imageGallery");
		placeholder[0].innerHTML = obj.title;
		YAHOO.util.Event.preventDefault(ev);
	}
}

var modalScreen = function() {
	Dom = YAHOO.util.Dom,Event = YAHOO.util.Event;
	var showOpenDay = Dom.get('showOpenDay');
	var mask = Dom.get("mask");
	var openday = Dom.get("openDay2008");
	var close = Dom.get("mask_content_close");
	var addListeners = function() {
		Event.addListener(showOpenDay, "click", animateModal);
	}
	var animateModal = function(ev) {
		document.body.appendChild(mask);
		document.body.appendChild(openday);
		Dom.setStyle(mask, "height", document.body.offsetHeight + "px");
		Dom.setStyle(mask, "display", "block");
		Dom.setStyle(openday, "display", "block");
		Event.addListener(close, "click", closeModal);
		Event.preventDefault(ev);
	}
	var closeModal = function(ev) {
		Dom.setStyle(mask, "display", "none");
		Dom.setStyle(openday, "display", "none");
		Event.preventDefault(ev);
	}
	return {
		init: function() {
			addListeners();
		}
	}
}();
YAHOO.util.Event.addListener(window, "load", template.init);
YAHOO.util.Event.addListener(window, "load", CGC.template.init);
YAHOO.util.Event.addListener(window, 'load', function(){JSTarget.init("rel","external");});
YAHOO.util.Event.addListener(window, "load", modalScreen.init);