Fx.Opacity = Fx.Style.extend({initialize: function(el, options){this.now = 1;this.parent(el, 'opacity', options);},toggle: function(){return (this.now > 0) ? this.start(1, 0) : this.start(0, 1);},show: function(){return this.set(1);}});

window.addEvent("load",function(){
	$ES(".gks_main").each(function(el,i){
		var module_id = el.getProperty("id");
		var wrapper = el;
		var triggers = $ES('.gks_trigger',wrapper);
		var links = $ES('.gks_stock_name',wrapper);
		var links_wrap = $ES('.gks_stock',wrapper);
		var tooltip_data = $ES('.gks_tooltip_stock',wrapper);
		if(tooltip_data.length > 0){
			var tooltip = new Element("div",{"class":"gks_tooltip"});
			tooltip.injectInside($(document.body));
			tooltip.setStyle("display","block");
			var tooltipFX = new Fx.Opacity(tooltip,{duration:250,wait:false});
			tooltipFX.set(0);
		}
		var active = [];
		if($E('.first',wrapper)) active[0] = $E('.first',wrapper).getProperty("title");
		if($E('.second',wrapper)) active[1] = $E('.second',wrapper).getProperty("title");
		if($E('.third',wrapper)) active[2] = $E('.third',wrapper).getProperty("title");
		if($E('.fourth',wrapper)) active[3] = $E('.fourth',wrapper).getProperty("title");
		var counter_max = active.length;
		var counter = 0;
		
		if(tooltip_data.length > 0){
			links.each(function(elmt,j){
				elmt.addEvent("mouseenter",function(e){
					var evt = new Event(e);
					tooltip.setStyles({
						"top" : (evt.page.y-10)+"px",
						"left" : (evt.page.x-562)+"px"
					});
					tooltip.innerHTML = tooltip_data[j].innerHTML;
					tooltipFX.start(1);
				});
				elmt.addEvent("mouseleave",function(){
					tooltipFX.start(0);
				});
			});
			
			links_wrap.each(function(elmt,j){
				elmt.addEvent("mouseover",function(e){
					var evt = new Event(e);
					if(evt.target != links[j]){
						tooltipFX.start(0);
					}
				});
			});
		}
		triggers.each(function(elmt,j){
			elmt.addEvent("click", function(){
				if(
					elmt != $E('.first',wrapper) && 
					elmt != $E('.second',wrapper) &&
					elmt != $E('.third',wrapper) &&
					elmt != $E('.fourth',wrapper)
				){
					switch(counter)
					{
						case 0:
							$E('.first',wrapper).toggleClass('first');
							elmt.toggleClass('first');
							active[0] = elmt.getProperty("title"); 
						break;
						case 1:
							$E('.second',wrapper).toggleClass('second');
							elmt.toggleClass('second');
							active[1] = elmt.getProperty("title"); 
						break;
						case 2:
							$E('.third',wrapper).toggleClass('third');
							elmt.toggleClass('third');
							active[2] = elmt.getProperty("title"); 
						break;
						case 3:
							$E('.fourth',wrapper).toggleClass('fourth');
							elmt.toggleClass('fourth');
							active[3] = elmt.getProperty("title"); 
						break;
					}
					
					counter = (counter + 1 < counter_max) ? counter + 1 : 0;
					
					
					var oldImg = $E('.gks_img',wrapper);
					var newImg = new Asset.image('http://www.google.com/finance/chart?cht=c&q='+active.join(',')+'&nc='+$random(10000,99999), {"class": 'gks_img', onload: function(){
						new Fx.Opacity($E('.gks_img',wrapper),{duration:350,wait:true}).start(0);
						(function(){
							newImg.setOpacity(0);
							newImg.injectBefore(oldImg);
							new Fx.Opacity(newImg,{duration:350,wait:true}).start(1);								
						}).delay(350);
						(function(){oldImg.setStyle("display","none");}).delay(700);			
					}
					});					
				}
			});
		});
	});
});
