/*
# ------------------------------------------------------------------------
# JA Teline III - Version 1.3 - Licence Owner jSharing.COM
# ------------------------------------------------------------------------
# Copyright (C) Lifetime Joomla Just for Sharing, Ltd. All Rights Reserved.
# @license - Copyrighted Commercial Software
# Author: Joomla Just for Sharing
# Websites:  http://jsharing.com -  http://jsharing.net
# This file may not be redistributed in whole or significant part.
# ------------------------------------------------------------------------
*/

JAWidgetStock = new Class({	
	initialize: function() {
		this.aStock = new Array();
		this.IDStore = 'portfolio';
		this.IDAdd = 'stock_add';
		this.IDChart = 'ja-stock-chart';
		
		this.legendPrefix = 'stock-legend-';
		this.legendClass = 'legend';
		this.legendIcon = 'icon';
	},
	
	init: function(stocks, defaults) {
		this.options = Object.extend({
			modid: '',
			chartUrl: 'http://www.google.com/finance/chart?cht=c',
			chartTlf: '12h'
		}, defaults || {});
		
		this.aStock = stocks.split(",");
	},
	
	saveStock: function() {
		if($(this.IDStore)) {
			$(this.IDStore).value = this.aStock.toString();
		}
	},
	
	addStock: function()
	{
		var aAdded = $(this.IDAdd).value.split(",");
		
		for (var i = 0, j = aAdded.length; i < j; i++) {
			stock = aAdded[i].toUpperCase();
			if((this.aStock.indexOf(stock) == - 1) && stock != ''){
				this.aStock.include(stock);
			}
		}
		
		this.saveStock();
	},
	
	removeStock: function(id, stock)
	{
		var d = new Date();
		$(id).remove();
		this.aStock.remove(stock);
		this.saveStock();
		var stocks = this.aStock.toString();
		
		var len = this.aStock.length;
		if(len > 4) len = 4;
		var aCompare = this.aStock.copy(0, len);
		var compareStocks = aCompare.toString();
		
		//reload chart
		$(this.IDChart).setProperties({
			src: this.options.chartUrl + '&q=' + compareStocks + '&tlf=' + this.options.chartTlf + '&nocache='+d.getTime(),
			alt: compareStocks
		}); 
		
		this.changeLegandIcon();
		
		//save user setting
		var url = siteurl + "index.php?do=ajax_usersetting&action=save_setting&group=default&tmpl=component";
		url += "&modid="+this.options.modid+"&rand="+(Math.random()*Math.random());
		
		new Ajax( url, { method:'post', 
						postBody:this.IDStore+"="+encodeURIComponent(stocks)+"&"+this.IDAdd+"="+encodeURIComponent(''),
						onComplete:function(data){ 
							if(this.callBack) {
								this.callBack();
							}
						}.bind(this) , 
					onFailure: function(){ alert('fail request');} }
				).request();
	},
	
	changeLegandIcon: function()
	{
		var prefix = this.legendPrefix;
		var legendClass = this.legendClass;
		var legendIcon = this.legendIcon;
		
		var i=0;
		this.aStock.each(function(stock, index) {
			var obj = $(prefix + stock);
			if(obj){
				i++;
				var no = (i<5) ? i : 'over';
				obj.removeProperty('class');
				obj.addClass(legendClass);
				obj.addClass(legendIcon + '-' + no);
			}
		});
	}
});

function JAStock_ShowError() {
	if($('wrong_data_stock')) {
		$('wrong_data_stock').removeClass('stock-alert-off');
		$('wrong_data_stock').addClass('stock-alert-on');
	}
}

function JAStock_HideError() {
	if($('wrong_data_stock')) {
		$('wrong_data_stock').removeClass('stock-alert-on');
		$('wrong_data_stock').addClass('stock-alert-off');
	}
}