//OK namespace. Please don't name any var in this name "OK"

    function getURLParam(strParamName){
      var strReturn = "";
      var strHref = window.location.href;
      if ( strHref.indexOf("?") > -1 ){
        var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
        var aQueryString = strQueryString.split("&");
        for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
          if (
    aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
            var aParam = aQueryString[iParam].split("=");
            strReturn = aParam[1];
            break;
          }
        }
      }
      return unescape(strReturn);
    } 

function toggleDescription(){
	var longVersion = document.getElementById('longVersion')
	var shortVersion = document.getElementById('shortVersion')
	if (longVersion.style.display == 'none') {
		longVersion.style.display = 'block'
		shortVersion.style.display = 'none'	
	} else {
		longVersion.style.display = 'none'
		shortVersion.style.display = 'block'	
	}
}



var OK = {
	_carouselArr : new Array(),
	
	init : function() {
		try {
			YAHOO.util.Event.onAvailable("header-carousel-container", function() {
				var carousel = new YAHOO.widget.Carousel("header-carousel-container", {
										isCircular: true, 
										animation: {speed: 0.4, effect: YAHOO.util.Easing.easeBoth},
										numVisible: 3,
										scrollIncrement: 3
								});			
				carousel.render();
				carousel.show();
				OK._carouselArr["header-carousel"] = carousel;
				document.getElementById("header-carousel-container").style.visibility = "visible";
			});
			YAHOO.util.Event.onDOMReady(function() {
				OK.galleryLandingPage.init("gallery-content");
				OK.stylePage.init("style_photo_content");
				OK.galleryPage.init();
				OK.commentController.init();				
			});			
		} catch(e) {}
	},
	
	event : {
		hover : function(obj, params) {
			var hoverDelay = {
				timer: null,
				timeout: null,
				curTime: null,
				hoverTime: null,
				mouseoverActivated: false				
			};
			function isLeaveEnter(e, node) { 
				var rel = e.relatedTarget ? e.relatedTarget : (e.type == 'mouseout' ? e.toElement : e.fromElement);
				while (rel && rel != node)
					rel = rel.parentNode;
				return (rel != node);
			}
			function hookupOnHover(obj, params, delay, timeout) {
				YAHOO.util.Event.addListener(obj, "mouseover", function(e) {
					if (isLeaveEnter(e, obj)) {
						if (hoverDelay.timeout != null)
							clearTimeout(hoverDelay.timeout);
						hoverDelay.curTime = new Date().getTime();
						var evt = e;
						//var target = YAHOO.util.Event.getTarget(e);
						hoverDelay.timer = setInterval(function() {
							hoverDelay.hoverTime = new Date().getTime();								
							if (hoverDelay.hoverTime-hoverDelay.curTime >= delay) {
								hoverDelay.mouseoverActivated = true;
								if (typeof params.over.args != "undefined")
									params.over.func(evt, params.over.args);
								else
									params.over.func(evt);
								if (hoverDelay.timer != null)
									clearInterval(hoverDelay.timer);
								//BUZZNET.widget.logger.log("mouseover");
							}
						}, 10);						
					}
				}, params);
				YAHOO.util.Event.addListener(obj, "mouseout", function(e) {
					if (isLeaveEnter(e, obj)) {						
						hoverDelay.curTime = new Date().getTime();
						hoverDelay.hoverTime = new Date().getTime();
						YAHOO.util.Event.removeListener(obj, "mouseover", params.over.func);
						if (hoverDelay.timer != null)
							clearInterval(hoverDelay.timer);
						if (hoverDelay.mouseoverActivated) {
							hoverDelay.mouseoverActivated = false;
							var evt = e;
							//var target = YAHOO.util.Event.getTarget(e);
							hoverDelay.timeout = setTimeout(function(){
								if (typeof params.out.args != "undefined")
									params.out.func(evt, params.out.args);
								else
									params.out.func(evt);
							}, timeout);							
						}
					}
				}, params);
			}	
			var delay = (params.delay)?params.delay*1000:1;
			var timeout = (params.timeout)?params.timeout:1;
			hookupOnHover(obj, params, delay, timeout);
		},
		
		aopBinding : function(target, evt, func, order) {	
			if (order == "before") {
				var originalEvt = target[evt];
				target[evt] = function() {
					eval(func).apply(target, arguments);
					return originalEvt.apply(target, arguments);
				};				
			}
			else if (order == "after") {
				var originalEvt = target[evt];
				target[evt] = function() {
					var rv = originalEvt.apply(target, arguments);
					return eval(func).apply(target, [rv]);
				};
			}
		}
	},
	
	hookupHover4MainImgs : function(id) {															  
		if (document.getElementById(id) != null) {
			var elems = YAHOO.util.Dom.getElementsByClassName("more_posts", "div", id);
			//console.log(elems[0]);
			for (var i = 0; i < elems.length; ++i) {
				var elem = elems[i];
				var overlay = YAHOO.util.Dom.getElementsByClassName("vert_overlay", "div", elem)[0];
				var orig_top = parseInt(YAHOO.util.Dom.getStyle(overlay, "top"));
				var orig_height = overlay.offsetHeight;
				var offset = 28;
				OK.event.hover(elem, {
					over: {func: function(e, args) {
						var ani = new YAHOO.util.Anim(args[1], {
										top: {to: (args[2] - offset)} ,
										height: {to: (args[3] + offset)}
									}, 0.2, YAHOO.util.Easing.easeOut);								
						/*ani.onComplete.subscribe(function() {
							args[1].style.top = (args[2] - 28) + "px";
							args[1].style.height = (args[3] + 28) + "px";
						});*/
						ani.animate();								
					}, args: [elem, overlay, orig_top, orig_height]},
					out: {func: function(e, args) {								
						var ani = new YAHOO.util.Anim(args[1], {
										top: {to: args[2]} ,
										height: {to: args[3]}
									}, 0.25, YAHOO.util.Easing.easeOut);								
						/*ani.onComplete.subscribe(function() {
							args[1].style.top = args[2] + "px";
							args[1].style.height = args[3] + "px";
						});*/
						ani.animate();																	
					}, args: [elem, overlay, orig_top, orig_height]}
				});
			}
		}
	},
	
	galleryLandingPage : {
		init : function(id) {
			OK.hookupHover4MainImgs(id);	
		}
	},
	
	stylePage : {
		init : function(id) {
			OK.hookupHover4MainImgs(id);	
		}
	},
	
	galleryPage : {
		_curIndx : 0,
		_curPage : 0,
		_totalPage : 0,
		_totalImg : 0,
		
		init : function() {
			if (document.getElementById("gallery-carousel-container") != null) {
				OK.galleryPage._totalImg = parseInt(document.getElementById("gallery-carousel-container").getAttribute("total_img_num"));
				var carousel = new YAHOO.widget.Carousel("gallery-carousel-container", {
										isCircular: false, 
										animation: {speed: 0.4, effect: YAHOO.util.Easing.easeBoth},
										numVisible: 3,
										scrollIncrement: 3,
										numItems: OK.galleryPage._totalImg

								});										
				carousel.on("itemSelected", function(indx){
					OK._carouselArr["gallery-carousel"].set("selectedItem", 0);
				});
				carousel.render();
				carousel.show();										
				OK.galleryPage._curIndx = parseInt(document.getElementById("gallery-carousel-moreinfo").getAttribute("cur_img_indx"));
				
				OK.galleryPage._curPage = parseInt(document.getElementById("gallery-carousel-moreinfo").getAttribute("cur_page"));
				OK.galleryPage._totalPage = parseInt(document.getElementById("gallery-carousel-container").getAttribute("total_page_num"));
				
				//set next image link url for lead image
				try {
					var nextImgLnk = document.getElementById("gallery-carousel-img-"+(OK.galleryPage._curIndx+1));
					nextImgLnk = nextImgLnk.parentNode.getAttribute("href");
					var url = window.location.href;
					var code = url.split("?");
					var query = code[1].substring(3);
					if (query) { nextImgLnk +="?hs="+query; }
					document.getElementById("lead-img").setAttribute("href", nextImgLnk);
				} catch(e) {}
				
				if (OK.galleryPage._curIndx >= 0)
					carousel.set("selectedItem", OK.galleryPage._curIndx);
				OK._carouselArr["gallery-carousel"] = carousel;
				OK.galleryPage.loadImages(OK.galleryPage._curPage);
				document.getElementById("gallery-carousel-container").style.visibility = "visible";	
				
				var photoNum = document.getElementById("num");
				var photoNum2 = document.getElementById("num2");
				if (photoNum != null)
					photoNum.innerHTML = (OK.galleryPage._curIndx+1) + " of " + OK.galleryPage._totalImg;
				if (photoNum2 != null)
					photoNum2.innerHTML = (OK.galleryPage._curIndx+1) + " of " + OK.galleryPage._totalImg;
			}
		},
		
		prev : function() {
			OK._carouselArr["gallery-carousel"].scrollBackward();
			OK.galleryPage._curPage--;	
			if (OK.galleryPage._curPage == 0) {
				document.getElementById("gallery-carousel-prev").className = "carousel-prev-disabled";
				OK.galleryPage.loadImages(OK.galleryPage._curPage);
			}
			else if (OK.galleryPage._curPage > 0) {
				OK.galleryPage.loadImages(OK.galleryPage._curPage);
			}
			else {
				OK.galleryPage._curPage = 0;				
			}
			//console.log(OK.galleryPage._curPage);
		},
		
		next : function() {
			OK._carouselArr["gallery-carousel"].scrollForward();
			OK.galleryPage._curPage++;			
			if (OK.galleryPage._curPage == OK.galleryPage._totalPage) {
				document.getElementById("gallery-carousel-next").className = "carousel-next-disabled";
				OK.galleryPage.loadImages(OK.galleryPage._curPage);
			}
			else if (OK.galleryPage._curPage <= OK.galleryPage._totalPage) {
				OK.galleryPage.loadImages(OK.galleryPage._curPage);
			}
			else {
				OK.galleryPage._curPage = OK.galleryPage._totalPage;				
			}
			//console.log(OK.galleryPage._curPage);
		},
		
		loadImages : function(page) {
			if (page == 0 && OK.galleryPage._totalPage > 0 && OK.galleryPage._totalImg > 3) {
				document.getElementById("gallery-carousel-next").className = "carousel-next";
			}
			else if (page == OK.galleryPage._totalPage && OK.galleryPage._totalPage > 0) {
				document.getElementById("gallery-carousel-prev").className = "carousel-prev";
			}
			else if (page > 0 && OK.galleryPage._totalPage > 0) {
				document.getElementById("gallery-carousel-prev").className = "carousel-prev";
				document.getElementById("gallery-carousel-next").className = "carousel-next";
			}
			for (var i = 0; i < 3; ++i) {
				var img = document.getElementById("gallery-carousel-img-"+((page*3)+i));
				if (img != null) {
					YAHOO.util.Event.addListener(img, "load", function(e) {
						YAHOO.util.Event.getTarget(e).className = "attachment-thumbnail";
					});
					img.src = img.getAttribute("url");					
				}
			}
		}
	},
	
	commentController : {
		init : function() {
			var submitFrm = document.getElementById("commentform");
			var submitBtn = document.getElementById("commentform").submit;
			if (YAHOO.env.ua.ie > 0 && submitFrm != null) {
				if (document.getElementById("sendToFacebook") != null) {	//stupid IE					
					submitBtn.style.top = '0px';
				}
				YAHOO.util.Event.addListener(submitBtn, "click", OK.commentController.validateFrm);				
			}
			else if (submitFrm != null) {
				submitFrm.setAttribute("onsubmit", "return OK.commentController.validateFrm()");
			}			
			OK.commentController.cookieSetFBPub();
		},
		
		validateFrm : function() {
			try {
				var author = document.getElementById("author");
				var email = document.getElementById("email");
				var comment = document.getElementById("comment");
				
				if (author != null)
					author.parentNode.className = "";
				if (email != null)
					email.parentNode.className = "";
				if (comment != null)
					comment.parentNode.className = "";
				
				if (author != null && YAHOO.lang.trim(author.value) == "") {
					alert("Please enter your Name");
					author.parentNode.className = "error";
					author.focus();
					return false;					
				}				
				
				if (email != null && !YAHOO.lang.trim(email.value).match(/^[\w\-\.]{1,255}@[\w\-\.]{2,255}\.\w{2,5}$/)) {
					alert("Please enter a valid Email address");
					email.parentNode.className = "error";
					email.focus();
					return false;	
				}	
				
				if (comment != null && YAHOO.lang.trim(comment.value) == "") {
					alert("Please enter your Comment");
					comment.parentNode.className = "error";
					comment.focus();
					return false;	
				}	
				return true;
			} catch(e) {}
		},
		
		cookieSetFBPub : function() {
			var checkbox = document.getElementById("sendToFacebook");
			var cookie = YAHOO.util.Cookie.get("ok_fbcommentpub"); 
			if (checkbox != null) {
				if (cookie != null && cookie == "0")
					checkbox.checked = false;
				YAHOO.util.Event.addListener(checkbox, "click", function() {
					if (checkbox.checked == true) {
						YAHOO.util.Cookie.set("ok_fbcommentpub", "1", {path: "/", domain: document.domain, expires: new Date("December 01, 2050")});
					}
					else {
						YAHOO.util.Cookie.set("ok_fbcommentpub", "0", {path: "/", domain: document.domain, expires: new Date("December 01, 2050")});
					}
				});
			}
		}
	}
}

OK.init();