﻿var $ = function (id) {
    return "string" == typeof id ? document.getElementById(id) : id;
};

var addEvent = function(element,type,handler){
	if (!handler.$$guid) handler.$$guid = addEvent.guid++;
	if (!element.events) element.events = {};
	var handlers = element.events[type];
	if (!handlers) {
		handlers = element.events[type] = {};
		if (element["on" + type]) {
			handlers[0] = element["on" + type];
		};
	};
	handlers[handler.$$guid] = handler;
	element["on" + type] = handleEvent;
};
addEvent.guid = 1;

var removeEvent = function(element,type,handler){
	if (element.events && element.events[type]){
		delete element.events[type][handler.$$guid];
	};
};

var handleEvent = function(event){
	var returnValue = true;
	event = event || fixEvent(window.event);
	var handlers = this.events[event.type];
	for (var i in handlers) {
		this.$$handleEvent = handlers[i];
		if (this.$$handleEvent(event) === false) {
			returnValue = false;
		};
	};
	return returnValue;
};

var fixEvent = function(event) {
	event.preventDefault = fixEvent.preventDefault;
	event.stopPropagation = fixEvent.stopPropagation;
	return event;
};
fixEvent.preventDefault = function() {
	this.returnValue = false;
};
fixEvent.stopPropagation = function() {
	this.cancelBubble = true;
};

var cancelClick = function(e){
	if (window.event){
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
	if (e && e.stopPropagation && e.preventDefault){
		e.stopPropagation();
		e.preventDefault();
	}
};

var FlashJS = (function(){
	var etime = proy = proyc = false;
	var dynamicElement = function(obj,finalValue,interval,swFlag){
		var elem = obj; 
		var dist = false;
		if(obj.movement){
			clearInterval(elem.movement);
		};
		if(!elem.style.height){
			elem.style.height = "0px";
		}
		var height = parseInt(elem.style.height);
		if(height == finalValue){
			clearInterval(obj.movement);
			if(swFlag == "open"){
				if($("closeFlash").style.display == "none"){
					$("closeFlash").style.display = "block";
				};
			}else{
				if($("flashAdvCtl").style.display == "none"){
					$("flashAdvCtl").style.display = "block";
				};
				if($("closeFlash").style.display == "block"){
					$("closeFlash").style.display = "none";
				};
				$("flashAdv").style.display = "none";	
			}
		}
		if(height < finalValue){
			dist = Math.ceil((finalValue - height) / 10);
			height = height + dist;
		}
		if(height > finalValue){
			dist = Math.ceil((height - finalValue) / 10);
			height = height - dist;
		}
		elem.style.height = height + "px";
		
		obj.movement = setInterval(function(){
			dynamicElement(obj,finalValue,interval,swFlag);									 
		},interval);
	};
	/*var dynamicElement = function(obj,finalValue,swFlag){
		var openHandle = function(el,finalValue){
			var cy = parseInt(el.style.height);
			if(cy < finalValue){
				el.style.height = (cy + Math.ceil((finalValue - cy) / 5)) + "px";
			}else{
				clearInterval(proy);
				if($("closeFlash").style.display == "none"){
					$("closeFlash").style.display = "block";
				};
			};	
		}
		var closeHandle = function(el){
			var cy = parseInt(el.style.height);
			if(cy > 0){
				el.style.height = (cy - Math.ceil(cy / 5)) + "px";
			}else{
				clearInterval(proyc);
				clearInterval(proy);
				if($("flashAdvCtl").style.display == "none"){
					$("flashAdvCtl").style.display = "block";
				};
				if($("closeFlash").style.display == "block"){
					$("closeFlash").style.display = "none";
				};
				$("flashAdv").style.display = "none";
			}	
		};
		if(swFlag == "open"){
			proy = setInterval(function(){openHandle(obj,finalValue)},3);
		}else{		
			proyc = setInterval(function(){closeHandle(obj)},10);	
			//proy = setInterval(function(){closeHandle(obj)},10);	
		};
	};*/
	var flashOpenAdvHandle = function(e){
		var t = this;
		clearTimeout(etime);
		//clearInterval(proyc);
		//clearInterval(proy);
		if(t.style.display == "block"){
			t.style.display = "none";
		};
		$("flashAdv").style.display = "block";
		//dynamicElement($("flashAdv"),683,"open");
		dynamicElement($("flashAdv"),683,10,"open");
	};
	var flashCloseAdvHandle = function(e){
		var t = this;
		clearTimeout(etime);
		//closeed($("flashAdv"));
		//clearInterval(proy);
		//$("flashAdv").style.display = "none";
		dynamicElement($("flashAdv"),0,10,"close");
		//dynamicElement($("flashAdv"),0,"close");
	};
	return{
		init:function(){
			if(!document.getElementById || !document.createTextNode){return;}
			$("flashAdv").style.display = "block";	
			$("flashAdvCtl").style.display = "none";
			dynamicElement($("flashAdv"),683,10,"open");	
			etime = setTimeout(function(){
				dynamicElement($("flashAdv"),0,10,"close");	
			},50000);
			addEvent($("flashAdvCtl"), "click", flashOpenAdvHandle);
			addEvent($("closeFlash"), "click", flashCloseAdvHandle);
		}
	}						
})();
addEvent(window, "load", FlashJS.init);
