Perwoll.Poll = function() {
	 var Dom = YAHOO.util.Dom;
	 var Event = YAHOO.util.Event;
	 var Anim = YAHOO.util.Anim;
	 
	 var zoomElAnim = null;
	 var overlay = null;
	 
	 Event.addListener("poll-zoom", "mouseover", onZoomOver);
	 Event.addListener("poll-zoom", "mouseout", onZoomOut);
	 Event.addListener("poll-zoom", "click", onZoom);
	 Event.addListener(Dom.getElementsByClassName("close", null, "poll-overlay-image")[0], "click", onUnZoom);
	 
	 
	 Event.on(window, "load", function() {
	 	 var progressBars = Dom.getElementsByClassName("progress-bar");
		 for(var i= 0; i < progressBars.length; i++)
	     {
	        var prct = progressBars[i].className.match(/[0-9]+/)[0];
	        
	        if(prct == 0)
	        {
	            continue;
	        }
	        
	        var prctEl = Dom.getFirstChild(progressBars[i]);
	        var speed = 50;
	        var time = prct / speed;
	        
	        
	        var anim = new Anim(prctEl, {width: {to: prct, unit : "%"}}, time, YAHOO.util.Easing.easeOut);
	        anim.animate();
	     }
	 });
	 
	 var layer = Dom.get("poll-overlay-image");
	 
	 function getOverlay()
	 {
	 	if(!overlay)
		{
			overlay = document.createElement("div");
			overlay.style.background = "#ffffff";
			overlay.style.position = "absolute";
			document.body.appendChild(overlay);
			Dom.setStyle(overlay, "opacity", 0);
			Dom.setStyle(overlay, "visibility", "hidden");
			var mainContEl = Dom.get("main-content");
            overlay.style.width = mainContEl.offsetWidth + "px";
            overlay.style.height = mainContEl.offsetHeight + "px";
            var mainXy = Dom.getXY(mainContEl);
            Dom.setXY(overlay, mainXy);
            Dom.setStyle(overlay, "opacity", 0.5);
		}
		
		return overlay;
	 }
	 
	 function onZoom() 
     {
        var e = Event.getEvent();
		Event.stopEvent(e);
		
		var t = Event.getTarget(e);
		
		Dom.setStyle(getOverlay(), "visibility", "visible");
		
        var layer = Dom.get("poll-overlay-image");
		if(layer.parentNode.nodeName.toLowerCase() != "body")
		{
			layer.parentNode.removeChild(layer);
			document.body.appendChild(layer);
		}
		
		layer.style.width = "0px";
		layer.style.height = "0px";
		
		var layerXyStart = Dom.getXY(t);
		
		
		Dom.setXY(layer, layerXyStart);
		
		var endSize = [438, 554];
		
		layer.style.visibility = "visible";
		
		var animCfg = {
			width: {to: endSize[0]}, 
			height : {to: endSize[1]},
			top : {to:  Dom.getDocumentScrollTop() + (Dom.getViewportHeight() -  endSize[1]) / 2},
			left: {to: Dom.getDocumentScrollLeft() + (Dom.getViewportWidth() - endSize[0]) / 2}
		};
		
		
		var img = layer.getElementsByTagName("img")[0];
		Dom.setStyle(img, "opacity", 0);
		
		
		var anim = new Anim(layer, animCfg, .5, YAHOO.util.Easing.easeOut);
		anim.animate();
		setTimeout(function() {
			var anim = new Anim(img, {opacity: {to: 1}}, 1, YAHOO.util.Easing.easeOut);
			anim.animate();
		}, 200);
		
		
     }
	 
	 function onUnZoom()
	 {
	 	var e = Event.getEvent();
        Event.stopEvent(e);
		
		Dom.setStyle(getOverlay(), "visibility", "hidden");
		Dom.setStyle("poll-overlay-image", "visibility", "hidden");
	 }
	 
	 function onZoomOver() 
	 {
	 	stopAnim(zoomElAnim);
		
		zoomElAnim = new Anim("poll-zoom", {width: {to: 105}}, .3, YAHOO.util.Easing.easeOut);
		zoomElAnim.animate();
	 }
	 
	 function onZoomOut() 
     {
        stopAnim(zoomElAnim);
		
		zoomElAnim = new Anim("poll-zoom", {width: {to: 32}}, .3, YAHOO.util.Easing.easeOut);
        zoomElAnim.animate();
     }
	 
	 function stopAnim(anim)
	 {
	 	if(anim && anim.isAnimated())
		{
			anim.stop();
		}
	 }
	
	
}();
