Kelda.Info.DmGrid = Ext.extend(Ext.grid.GridPanel,{
	initComponent : function() {
	
		
		
		this.defaultRenderer = function(val) {
			if(isNaN(val))
				return '-';
			return Kelda.Info.NumberFormat(val,'0.000,00/i');
		};
		this.rowActions = keldanNewRowaction(10);
		this.excelAction = keldanNewExportAction(10);
		this.bcolumns=[{
			id: 'title',
			dataIndex: 'name',
			hidden:false,
			sortable:true,
			renderer: function(val,meta,rec) {
				return keldan_lang_text(rec.data.langcode);
			},
			width: 35
		},{
            id: 'value', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 })
        	header:keldan_lang_text('value'),
        	dataIndex: 'last',
        	align:'left',
        	width: 25,
         	hidden:false,
         	renderer:function(val,meta,rec) {
        		if(isNaN(val))
        			return '-';
        		var format = '0.000,00/i';
        		//alert(rec.data.mes);
        		if(rec.data.lastFormat)
        			format = rec.data.lastFormat;
        		return Kelda.Info.NumberFormat(val,format)+(rec.data.mes?rec.data.mes:'');
			},
        	sortable:true
        },{
            id: 'lastChg', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 })
            header:keldan_lang_text('change'),
            dataIndex: 'changeLast',
            width: 20,
            align:'left',
            hidden:false,
            renderer:function(value,meta,rec) {
            	var format = rec.data.changeFormat?rec.data.changeFormat:'0.000,00/i';
        		if(value > 0){
        			return '<span style="color:green;">' + Kelda.Info.NumberFormat(value,format) + '</span>'+(rec.data.changeMes?rec.data.changeMes:'');
        		}else if(value < 0){
        			return '<span style="color:red;">' + Kelda.Info.NumberFormat(value,format) + '</span>'+(rec.data.changeMes?rec.data.changeMes:'');
        		}else if(isNaN(value))
        			return '-';
        		else
        			return Kelda.Info.ValueRenderer(value,keldan_lang);
			},
            sortable: true
        },{
            id: 'dateRange', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 })
            header:keldan_lang_text('period'),
            dataIndex: 'lastDateStr',
            width: 20,
            hidden:false,
            sortable: true
        },this.rowActions,this.excelAction];
		var bgrid = this;
		this.bstore = new Ext.data.JsonStore({
	        	id:'Dm',
	            fields: [ {name:'dmcode',mapping:'code',type:'string'},{name:'description',type:'string'},{name:'name',mapping:'altDescription',type:'string'},
	            	{name:'changeDescription',type:'string'},{name:'last',type: 'float'},{name:'prevLast',type:'float'},
	            	{name:'changeLast',type:'float'},{name:'lastDateStr',type:'string'},{name:'langcode'},
	            	{name:'prevLastDateStr',type:'string'},{name:'dateRange',type:'string'},{name:'nextUpdate',type:'string'},
	            	{name:'mes'},{name:'changeMes'},{name:'lastFormat'},{name:'changeFormat'}
	            ],
	            proxy: new Ext.data.HttpProxy({
	            	//url: window.location.protocol+"//"+window.location.hostname+"/"+basePath+"feedconnect/getFeed"
	            	url: window.location.protocol+"//"+window.location.hostname+"/"+basePath+"connector/getDmFeeds"
	            }),
	            sortInfo: {field:'name',direction:'ASC'}
        });
		this.bview = new Ext.grid.GridView( {
			forceFit : true,
			autoFill:true,
            enableRowBody:true,
            scrollOffset:4,
            showPreview:false,
            getRowClass : function(record, rowIndex, p, store){
				if ((parseInt(rowIndex) % 2) == 0)
					return 'odd-row';
			},
			columnsText:keldan_lang_text('columns'),
			sortAscText:keldan_lang_text('sort ascending'),
			sortDescText:keldan_lang_text('sort descending')
		});
		Ext.apply(this,{
			id:'Dmgrid_'+Math.random()*103,
    		store : this.bstore,
    	    columns:this.bcolumns,
    	    view:this.bview,
    	    plugins:[this.rowActions,this.excelAction],
    	    autoHeight:true
    	});
		
		
		this.on('mouseover',function(e,t){
			if( (row = this.getView().findRowIndex(t))!== false && (col=this.getView().findCellIndex(t))!==false) {
				var rec = this.getStore().getAt(row);
				var htmlel = this.getView().getCell(row,col);
				var header = this.getColumnModel().getColumnHeader(col);
				var html = '';
				if(!header) {
					  html = '<pre>'+keldan_lang_text(rec.data.langcode+'_tt')+'</pre>';
					  var tt1 = new Ext.ToolTip({
						target:htmlel,
						html:html,
						width:346,
						//cls:'fx-tooltip',
						//ctCls:'ct-fx-tooltip',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					  });
					
				}else if(header.indexOf(keldan_lang_text('plot')) != 0 && header.indexOf('Excel') != 0) {
					html = '<b>'+keldan_lang_text('currval')+' : '+Kelda.Info.NumberFormat(rec.data.last,'0.000,00/i')+' '+keldan_lang_text('dateshort')+ ' : '+rec.data.lastDateStr+'</b>'+
						'<br/><b>'+keldan_lang_text('prevval')+' : '+Kelda.Info.NumberFormat(rec.data.prevLast,'0.000,00/i')+' '+keldan_lang_text('dateshort')+ ' : '+rec.data.prevLastDateStr+'</b>';
					var tt1 = new Ext.ToolTip({
						target:htmlel,
						html:html,
						//cls:'fx-tooltip',
						//ctCls:'ct-fx-tooltip',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					});
				}
					
				
				
				
			}
		});
    	
    	
    	var s = this.bstore;
    	
    	this.btask = {
	        	run:function() {
    				//s.load({params:{feedName:'rsfaf',type:t}});
    				s.load();
				},
				interval: 600000
		};
    	
		this.bstore.on('load',function(){
			if(Ext.Msg.isVisible()) {
				keldan_store_count--;
				Ext.Msg.updateProgress((keldan_fixed_stcount-keldan_store_count)/keldan_fixed_stcount
						,keldan_fixed_stcount-keldan_store_count+(keldan_lang=='is' ? ' af ' : ' of ')+keldan_fixed_stcount);
				if(keldan_store_count==0) {
					Ext.Msg.hide();
					keldan_store_count=-1;
				}
			}
		});
    	
    	
    	this.on('render',function(comp) {
    		Ext.TaskMgr.start(this.btask);
    	});
    	this.on('destroy',function(){
    		Ext.TaskMgr.stop(this.btask);
    	});
    	
    	Kelda.Info.DmGrid.superclass.initComponent.apply(this,arguments);
	},
	 stopPoll : function() {
		Ext.TaskMgr.stop(this.btask);
	},
	startPoll : function() {
		Ext.TaskMgr.start(this.btask);
	}
});

Ext.reg('DmPortlet_Child',Kelda.Info.DmGrid);

Ext.reg('DmPortlet_Child',Kelda.Info.DmGrid);
Kelda.Info.DmPortlet = Ext.extend(Ext.Panel,{
	title: '',
	layout:'fit',
	plugins: [Ext.ux.PortletPlugin],
    closeable: true,
    maximizable:false,
    settings: false,
    resizeable:false,
    collapsible:true,
    collapsed:true,
    version:1.0001,
    nohelp:true,
    width:400,
    //height:344
    autoHeight:true,
    listeners : {
    	'render' : {
    		fn : function(panel) {
    			
	    		if(panel.collapsed) {
	    			
	    			if(Ext.Msg.isVisible()) {
	    				keldan_store_count--;
	    				Ext.Msg.updateProgress((keldan_fixed_stcount-keldan_store_count)/keldan_fixed_stcount
	    						,keldan_fixed_stcount-keldan_store_count+' af '+keldan_fixed_stcount);
	    				if(keldan_store_count==0) {
	    					Ext.Msg.hide();
	    					keldan_store_count=-1;
	    				}
	    			}
	    		}
    		}
    	}
    }
    
});
Ext.reg('DmPortlet',Kelda.Info.DmPortlet);

Kelda.Info.FundsGrid = Ext.extend(Ext.grid.GridPanel,{
	initComponent : function() {
		//alert('width is '+Ext.get('main-portal').getComputedWidth());
		var minW = 1280;
		var megaMinW = 1070;
		var useSmall = false;
		var useMegaSmall =false;
		var myW = Ext.get('main-portal').getComputedWidth();
		if(myW <= minW)
			useSmall = true;
		if(myW <= megaMinW)
			useMegaSmall =true;
		
		this.defaultRenderer = function(val) {
			if(isNaN(val))
				return '-';
			return Kelda.Info.NumberFormat(val,'0.000,00/i');
		};
		this.rowActions = keldanFundGraph(10);
		this.excelAction = keldanNewExportAction(10);
		Ext.apply(this.excelAction,{
		    hidden:true
		});
		if(useSmall)
			Ext.apply(this.excelAction,{hidden:true});
		var periodDispFunc = function(val,meta,rec) {
    		if(isNaN(val) || val==0)
    			return '-';
    		var format = '0.000,00/i';
    		/*
    		if(rec.data.lastFormat)
    			format = rec.data.lastFormat;
    		*/
    		//console.log('returning '+Kelda.Info.NumberFormat(val*100,format));
    		return Kelda.Info.NumberFormat(val*100,format)+(rec.data.mes?rec.data.mes:'')+'%';
		};
		
		this.bcolumns=[{
			id: 'owner',
			dataIndex: 'owner',
			header : keldan_lang_text('fundowner'),
			tooltip : keldan_lang_text('fundownertlp'),
			hidden:false,
			sortable:true,
			tooltip:keldan_lang_text('fundownertlp'),
			renderer : function(val,meta,rec) {
				return '<a href="'+rec.data.buyUrl+'" target="_blank"><img src="themes/keldanpremium/images/funds/'+val+'.png"></a>';
			},
			width: 8
		},{
			id: 'curr',
			dataIndex: 'currency',
			header : keldan_lang_text('currencyshort'),
			tooltip:keldan_lang=='is'?'Mynt':'Currency',
			hidden:true,
			sortable:true,
			renderer : function(val,meta,rec) {
				return '<img src="themes/keldanpremium/images/currencies/'+val+'.png">';
			},
			width: 8
		},{
			id: 'title',
			dataIndex: 'fundName',
			header : keldan_lang_text('name'),
			hidden:false,
			sortable:true,
			renderer : function(val,meta,rec) {
				return val;
			},
			width:useMegaSmall?10:20
		},{
        	id : 'type',
        	header : keldan_lang_text('typeshort'),
        	tooltip : keldan_lang_text('type'),
        	dataIndex:'type',
        	align:'left',
        	width:2,
        	hidden:false
        	
        },{
			id: 'ftime',
			dataIndex: 'lastDateStr',
			header:keldan_lang_text('dateshort'),
			tooltip : keldan_lang_text('date'),
			hidden:false,
			sortable:true,
			width:Ext.isIE?14:12
			
		},{
            id: 'value', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 })
        	header:keldan_lang_text('value'),
        	dataIndex: 'last',
        	align:'left',
        	width: 15,
         	hidden:false,
         	renderer: function(val,meta,rec) {
        		if(isNaN(val))
        			return '-';
        		var format = '0.000,000/i';
        		//alert(rec.data.mes);
        		if(rec.data.lastFormat)
        			format = rec.data.lastFormat;
        		return Kelda.Info.NumberFormat(val,format)+(rec.data.mes?rec.data.mes:'');
        	} ,
        	hidden:true,
        	sortable:true
        },{
        	id : 'size',
        	header : keldan_lang_text('size'),
        	dataIndex:'size',
        	align:'left',
        	renderer : function(val) {
        		if(val >= 1000000000)
        			return Kelda.Info.ValueRendererOne(val/1000000000,keldan_lang)+ (keldan_lang=='is'?' ma':' bi');
        		else if(val < 1000000000 && val >= 1000000)
        			return  Kelda.Info.ValueRendererOne(val/1000000,keldan_lang)+' m';
        		else if(val==0 || val=='0')
        			return '-';
        		else
        			return val;
        	},
        	width:14,
        	hidden:useSmall?true:false
        },{
        	id : '1m',
        	header : '1M',
        	dataIndex:'rate1M',
        	align:'left',
        	width:12,
        	renderer : periodDispFunc,
        	hidden:useMegaSmall?true:false
        },{
        	id : '3m',
        	header : '3M',
        	dataIndex:'rate3M',
        	align:'left',
        	width:12,
        	renderer : periodDispFunc,
        	hidden : true
        },{
        	id : '6m',
        	header : '6M',
        	dataIndex:'rate6M',
        	align:'left',
        	width:12,
        	renderer : periodDispFunc,
        	hidden:useMegaSmall?true:false
        },{
        	id : '9m',
        	header : '9M',
        	dataIndex:'rate9M',
        	align:'left',
        	hidden:true,
        	width:12,
        	renderer : periodDispFunc
        },{
        	id : '12m',
        	header : '12M',
        	dataIndex:'rate12M',
        	align:'left',
        	width:12,
        	renderer : periodDispFunc 
        },{
        	id : '24m',
        	header : '24M',
        	dataIndex:'rate24M',
        	align:'left',
        	width:12,
        	hidden:true,
        	renderer : periodDispFunc
        },{
        	id : '36m',
        	header : '36M',
        	dataIndex:'rate36M',
        	align:'left',
        	width:12,
        	hidden:true,
        	renderer : periodDispFunc
        },{
        	id : 'thisYear',
        	header : keldan_lang_text('thisyearshort'),
        	tooltip : keldan_lang_text('thisyear'),
        	dataIndex:'thisYear',
        	align:'left',
        	width:10,
        	hidden:true,
        	renderer:periodDispFunc
        },{
        	id : 'category',
        	header : keldan_lang_text('category'),
        	dataIndex:'category',
        	align:'left',
        	width:10,
        	hidden:true
        	
        },{
        	id : 'myOrder',
        	header : 'Röð',
        	dataIndex:'myOrder',
        	align:'left',
        	/*renderer : function(v,r,ri,ci,ds) {
        		return r.category;
        	},*/
        	width:10,
        	hidden:true
        	
        },this.rowActions,this.excelAction];
		var bgrid = this;
		this.jreader = new Ext.data.JsonReader({
			id:'fundRecId',
        	root : 'data',
            fields: [ {name:'fundRecId'},{name:'fundcode',mapping:'fund',type:'string'},{name:'description',type:'string'},{name:'name',mapping:'altDescription',type:'string'},
            	{name:'changeDescription',type:'string'},{name:'last',type: 'float'},{name:'prevLast',type:'float'},
            	{name:'changeLast',type:'float'},{name:'lastDateStr',type:'string'},{name:'langcode'},
            	{name:'prevLastDateStr',type:'string'},{name:'dateRange',type:'string'},{name:'nextUpdate',type:'string'},
            	{name:'mes'},{name:'changeMes'},{name:'lastFormat'},{name:'changeFormat'},{name:'fundNameShort'},{name:'currency'},{name:'ftime'},
            	{name:'rate1M',type:'float'},{name:'rate3M',type:'float'},{name:'rate9M',type:'float'},{name:'fundName'},
            	{name:'rate6M',type:'float'},{name:'rate12M',type:'float'},{name:'rate24M',type:'float'},{name:'rate36M',type:'float'},{name:'thisYear',type:'float'},
            	{name:'owner'},{name:'category'},{name:'buyUrl'},{name:'myOrder'},{name:'size',type:'float'},{name:'sizedate'},{name:'type'}
            ]
		});
		
		this.bstore = new Ext.data.GroupingStore({
	        	reader:this.jreader,
	            proxy: new Ext.data.HttpProxy({
	            	//url: window.location.protocol+"//"+window.location.hostname+"/"+basePath+"feedconnect/getFeed"
	            	url: window.location.protocol+"//"+window.location.hostname+"/"+basePath+"connector/getAllFunds"
	            }),
	            sortInfo: {field:'rate12M',direction:'DESC'},
	            groupField:'myOrder'
        });
		this.bview = new Ext.grid.GroupingView( {
			forceFit : true,
			showGroupName:false,
			groupTextTpl: '{[values.rs[0].data.category]} ({[values.rs.length]} {[values.rs.length > 1 ? "'+keldan_lang_text('funds')+'" : "'+keldan_lang_text('fund')+'"]})',
			autoFill:true,
            enableRowBody:true,
            scrollOffset:4,
            showPreview:false,
            getRowClass : function(record, rowIndex, p, store){
				if ((parseInt(rowIndex) % 2) == 0)
					return 'odd-row';
			},
			startCollapsed:true,
			columnsText:keldan_lang_text('columns'),
			sortAscText:keldan_lang_text('sort ascending'),
			sortDescText:keldan_lang_text('sort descending'),
			groupByText:keldan_lang_text('groupbytext'),
			showGroupsText:keldan_lang_text('showgroup')
		});
		Ext.apply(this,{
			id:'FundsGrid_'+Math.random()*103,
    		store : this.bstore,
    		ddGroup : 'fundGridDDGroup',
    		enableDragDrop : true,
    		selModel : new Ext.grid.RowSelectionModel({singleSelect : true}),
    	    columns:this.bcolumns,
    	    view:this.bview,
    	    plugins:[this.rowActions,this.excelAction],
    	    autoHeight:true
    	});
		var mygrid = this;
		var tooltipCells = new Ext.util.MixedCollection();
		/*
		this.on('rowclick', function(grid, rowIndex, e) {
            var record = grid.getStore().getAt(rowIndex);
            var win = new Ext.Window({
            	id : 'a',
            	width:1000,
            	autoHeight:true,
            	items:[{
            		xtype:'grid',
            		store : new Ext.data.Store({
            			reader : mygrid.jreader,
            			data : record
            		}),
            		columns:[{
            			id: 'owner',
            			dataIndex: 'owner',
            			header : keldan_lang_text('fundownertlp'),
            			hidden:false,
            			sortable:true,
            			tooltip:keldan_lang_text('fundownertlp'),
            			renderer : function(val,meta,rec) {
            				return '<a href="'+rec.data.buyUrl+'" target="_blank"><img src="themes/keldanpremium/images/funds/'+val+'.png"></a>';
            			},
            			width: 8
            		},{
            			id: 'curr',
            			dataIndex: 'currency',
            			header : keldan_lang_text('currencyshort'),
            			tooltip:keldan_lang=='is'?'Mynt':'Currency',
            			hidden:false,
            			sortable:true,
            			renderer : function(val,meta,rec) {
            				return '<img src="themes/keldanpremium/images/currencies/'+val+'.png">';
            			},
            			width: 8
            		},{
            			id: 'title',
            			dataIndex: 'fundName',
            			header : keldan_lang_text('name'),
            			hidden:false,
            			sortable:true,
            			renderer : function(val,meta,rec) {
            				return val;
            			},
            			width: 40
            		},{
            			id: 'ftime',
            			dataIndex: 'lastDateStr',
            			header:keldan_lang_text('date'),
            			hidden:false,
            			sortable:true,
            			width:24
            			
            		},{
                        id: 'value', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 })
                    	header:keldan_lang_text('value'),
                    	dataIndex: 'last',
                    	align:'left',
                    	width: 15,
                     	renderer: function(val,meta,rec) {
                    		if(isNaN(val))
                    			return '-';
                    		var format = '0.000,00/i';
                    		//alert(rec.data.mes);
                    		if(rec.data.lastFormat)
                    			format = rec.data.lastFormat;
                    		return Kelda.Info.NumberFormat(val,format)+(rec.data.mes?rec.data.mes:'');
                    	} ,
                    	hidden:false
                    	//sortable:true
                    },{
                    	id : 'size',
                    	header : keldan_lang_text('size'),
                    	dataIndex:'size',
                    	align:'left',
                    	renderer : function(val) {
                    		if(val >= 1000000000)
                    			return Kelda.Info.ValueRendererOne(val/1000000000,keldan_lang)+ (keldan_lang=='is'?' ma':' bi');
                    		else if(val < 1000000000 && val >= 1000000)
                    			return  Kelda.Info.ValueRendererOne(val/1000000,keldan_lang)+' m';
                    		else if(val==0 || val=='0')
                    			return '-';
                    		else
                    			return val;
                    	},
                    	width:14
                    },{
                    	id : '1m',
                    	header : '1M',
                    	dataIndex:'rate1M',
                    	align:'left',
                    	width:14,
                    	renderer : periodDispFunc
                    },{
                    	id : '3m',
                    	header : '3M',
                    	dataIndex:'rate3M',
                    	align:'left',
                    	width:14,
                    	renderer : periodDispFunc
                    },{
                    	id : '6m',
                    	header : '6M',
                    	dataIndex:'rate6M',
                    	align:'left',
                    	width:14,
                    	renderer : periodDispFunc
                    },{
                    	id : '9m',
                    	header : '9M',
                    	dataIndex:'rate9M',
                    	align:'left',
                    	width:14,
                    	renderer : periodDispFunc
                    },{
                    	id : '12m',
                    	header : '12M',
                    	dataIndex:'rate12M',
                    	align:'left',
                    	width:14,
                    	renderer : periodDispFunc 
                    },{
                    	id : '24m',
                    	header : '24M',
                    	dataIndex:'rate24M',
                    	align:'left',
                    	width:14,
                    	renderer : periodDispFunc
                    },{
                    	id : '36m',
                    	header : '36M',
                    	dataIndex:'rate36M',
                    	align:'left',
                    	width:14,
                    	renderer : periodDispFunc
                    },{
                    	id : 'category',
                    	header : keldan_lang_text('category'),
                    	dataIndex:'category',
                    	align:'left',
                    	width:54
                    	
                    },{
                    	id : 'myOrder',
                    	header : 'Röð',
                    	dataIndex:'myOrder',
                    	align:'left',
                    	hidden:true
                    	
                    }],
            		view: new Ext.grid.GridView({
            			forceFit : true,
                        enableRowBody:true,
                        getRowClass : function(record, rowIndex, p, store){
            				if ((parseInt(rowIndex) % 2) == 0)
            					return 'odd-row';	

            			},
            			columnsText:keldan_lang_text('columns'),
            			sortAscText:keldan_lang_text('sort ascending'),
            			sortDescText:keldan_lang_text('sort descending')
            		}),
            		plugins:[mygrid.rowActions,mygrid.excelAction],
            		autoHeight:true
            	},{
                	
			    	id:'fund_graph_iframe_mini',
			    	xtype:'iframepanel',
			    	width:'auto',
			    	defaultSrc:window.location.protocol + "//"
					+ window.location.hostname + "/" + basePath+'funds/chart/'+record.data.fundName
					
			    
            }]
            });
            win.show();
            
        });  
		*/
		this.on('mouseover',function(e,t){
			if( (row = this.getView().findRowIndex(t))!== false && (col=this.getView().findCellIndex(t))!==false) {
				var rec = this.getStore().getAt(row);
				var htmlel = this.getView().getCell(row,col);
				var header = this.getColumnModel().getColumnHeader(col);
				var dIdx = this.getColumnModel().getDataIndex(col);
				//alert('data index is '+dIdx);
				var html = '';
				/*if(!header) {
					  html = '<pre>'+keldan_lang_text(rec.data.langcode+'_tt')+'</pre>';
					  var tt1 = new Ext.ToolTip({
						target:htmlel,
						html:html,
						width:346,
						//cls:'fx-tooltip',
						//ctCls:'ct-fx-tooltip',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					  });
				}*/if(header.indexOf(keldan_lang_text('fundownertlp')) == 0) {
					
					new Ext.ToolTip({
						target:htmlel,	
						html:'<b>'+rec.data.owner+'<b>',
						//	cls:'fx-tooltip',
						//		ctCls:'ct-fx-tooltip',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					});
					
				}else if(header.indexOf(keldan_lang_text('value'))==0) {
					html = '<b>'+keldan_lang_text('currval')+' : '+Kelda.Info.NumberFormat(rec.data.last,'0.000,000/i')+' '+keldan_lang_text('dateshort')+ ' : '+rec.data.lastDateStr+'</b>'+
						'<br/><b>'+keldan_lang_text('prevval')+' : '+Kelda.Info.NumberFormat(rec.data.prevLast,'0.000,000/i')+' '+keldan_lang_text('dateshort')+ ' : '+rec.data.prevLastDateStr+'</b>';
					var tt1 = new Ext.ToolTip({
						target:htmlel,
						html:html,
						//cls:'fx-tooltip',
						//ctCls:'ct-fx-tooltip',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					});
				}else if(header.indexOf(keldan_lang_text('name'))==0) {
					new Ext.ToolTip({
						target:htmlel,
						html:'<b>'+rec.data.owner+' : '+rec.data.fundName+'</b>',
						//cls:'fx-tooltip',
						//ctCls:'ct-fx-tooltip',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					});
				}else if(header.indexOf(keldan_lang_text('size'))==0) {
					new Ext.ToolTip({
						target:htmlel,
						html:'<b>'+keldan_lang_text('fundsize')+' : '+Kelda.Info.ValueRendererNoPrec(rec.data.size/1000000,keldan_lang)+' m. '+rec.data.currency+'</b><br/>'+
						'<b>'+rec.data.sizedate+'</b>',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					});
				}else if(header.indexOf('M')==1 || header.indexOf('M')==2 || header.indexOf(keldan_lang_text('thisyear'))==0) {
					new Ext.ToolTip({
						target:htmlel,
						html:'<b>'+Kelda.Info.ValueRendererThree(rec.data[dIdx]*100,keldan_lang)+' %</b> '+keldan_lang_text('fundnominal')+' '+rec.data.lastDateStr+' '+keldan_lang_text('period')+': '+keldan_lang_text(header),
						showDelay:0,
						hideDelay:0,
						trackMouse:false,
						constrainPosition:true,
						frame:true,
						dismissDelay:0
						
					});
				}else if(header.indexOf(keldan_lang_text('currencyshort'))==0) {
					new Ext.ToolTip({
						target:htmlel,	
						html:'<b>'+keldan_lang_text('fundbasecurrency')+' : '+rec.data.currency+'</b>',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					});
				}else if(header.indexOf(keldan_lang_text('typeshort'))==0) {
					new Ext.ToolTip({
						target:htmlel,
						html:rec.data.type=='F'?'F = Fjárfestingasjóður':'V = Verðbréfasjóður',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					});
				}
					
				
				
				
			}
		});
    	
    	
    	var s = this.bstore;
    	
    	this.btask = {
	        	run:function() {
    				//s.load({params:{feedName:'rsfaf',type:t}});
    				s.load();
				},
				interval: 600000
		};
    	
		this.bstore.on('load',function(){
			if(Ext.Msg.isVisible()) {
				keldan_store_count--;
				Ext.Msg.updateProgress((keldan_fixed_stcount-keldan_store_count)/keldan_fixed_stcount
						,keldan_fixed_stcount-keldan_store_count+(keldan_lang=='is' ? ' af ' : ' of ')+keldan_fixed_stcount);
				if(keldan_store_count==0) {
					Ext.Msg.hide();
					keldan_store_count=-1;
				}
			}
			mygrid.getView().toggleRowIndex(1,true);
		});
    	
		this.on('viewready',function(grid) {
			
		});
		
    	this.on('render',function(comp) {
    		
    		Ext.TaskMgr.start(this.btask);
    	});
    	this.on('destroy',function(){
    		Ext.TaskMgr.stop(this.btask);
    	});
    	
    	Kelda.Info.FundsGrid.superclass.initComponent.apply(this,arguments);
	},
	 stopPoll : function() {
		Ext.TaskMgr.stop(this.btask);
	},
	startPoll : function() {
		Ext.TaskMgr.start(this.btask);
	},
	expandFirst : function() {
		this.getView().toggleRowIndex(1,true)
	}
});

Ext.reg('FundPortlet_Child',Kelda.Info.FundsGrid);

Ext.reg('FundPortlet_Child',Kelda.Info.FundsGrid);
Kelda.Info.fundPortlet = Ext.extend(Ext.Panel,{
	title: '',
	layout:'fit',
	plugins: [Ext.ux.PortletPlugin],
    closeable: true,
    maximizable:false,
    settings: false,
    resizeable:false,
    collapsible:true,
    version:1.0001,
    nohelp:true,
    width:400,
    //height:344
    autoHeight:true,
    footerCfg: {
		tag:'div',
		cls:'x-panel-footer',
		children:[{
			tag:'pre',
			cls:'footer-text-title funds-footer',
			html:'<a style="color:#77BBE6" id="funds-disc-link" target="_blank" href="'+window.location.protocol+"//"+window.location.hostname+"/"+basePath+"funds/getDisclaimer"+'">'+keldan_lang_text('legalnotice')+'</a>'
		}]
	}
    
});
Ext.reg('FundPortlet',Kelda.Info.fundPortlet);
Kelda.Info.FundList = Ext.extend(Ext.grid.GridPanel,{
	initComponent : function() {
		
		this.defaultRenderer = function(val) {
			if(isNaN(val))
				return '-';
			return Kelda.Info.NumberFormat(val,'0.000,00/i');
		};
		
		
		var periodDispFunc = function(val,meta,rec) {
    		if(isNaN(val) || val==0)
    			return '-';
    		var format = '0.000,0/i';
    		return Kelda.Info.NumberFormat(val*100,format)+(rec.data.mes?rec.data.mes:'')+'%';
		};
		
		this.bcolumns=[{
			id: 'owner',
			dataIndex: 'owner',
			header : keldan_lang_text('fundownertlp'),
			hidden:false,
			sortable:true,
			tooltip:keldan_lang_text('fundownertlp'),
			renderer : function(val,meta,rec) {
				return '<a href="'+rec.data.buyUrl+'" target="_blank"><img src="themes/keldanpremium/images/funds/'+val+'.png"></a>';
			},
			width: 4
		},{
			id: 'title',
			dataIndex: 'fundName',
			header : keldan_lang_text('name'),
			hidden:false,
			sortable:true,
			renderer : function(val,meta,rec) {
				return val;
			},
			width: 30
		},{
        	id : '12m',
        	header : '12M',
        	dataIndex:'rate12M',
        	align:'left',
        	width:10,
        	hidden:true,
        	renderer : periodDispFunc
        },{
        	id : 'category',
        	header : keldan_lang_text('category'),
        	dataIndex:'category',
        	align:'left',
        	width:10,
        	hidden:true
        	
        },{
        	id : 'type',
        	header : keldan_lang_text('type'),
        	dataIndex:'type',
        	align:'left',
        	width:10,
        	hidden:true
        	
        },{
        	id : 'myOrder',
        	header : 'Röð',
        	dataIndex:'myOrder',
        	align:'left',
        	/*renderer : function(v,r,ri,ci,ds) {
        		return r.category;
        	},*/
        	width:10,
        	hidden:true
        	
        }];
		var bgrid = this;
		this.jreader = new Ext.data.JsonReader({
			id:'fundRecId',
        	root : 'data',
            fields: [ {name:'fundRecId'},{name:'fundcode',mapping:'fund',type:'string'},
            	{name:'lastDateStr',type:'string'},
            	{name:'rate12M',type:'float'},{name:'fundName'},
            	{name:'owner'},{name:'category'},{name:'myOrder'},{name:'type'}
            ]
		});
		
		this.bstore = new Ext.data.GroupingStore({
	        	reader:this.jreader,
	            proxy: new Ext.data.HttpProxy({
	            	//url: window.location.protocol+"//"+window.location.hostname+"/"+basePath+"feedconnect/getFeed"
	            	url: window.location.protocol+"//"+window.location.hostname+"/"+basePath+"connector/getAllFunds"
	            }),
	            sortInfo: {field:'rate12M',direction:'DESC'},
	            groupField:'myOrder'
        });
		this.bview = new Ext.grid.GroupingView( {
			forceFit : true,
			showGroupName:false,
			groupTextTpl: '{[values.rs[0].data.category]}',
			autoFill:true,
            enableRowBody:true,
            scrollOffset:0,
            showPreview:false,
            getRowClass : function(record, rowIndex, p, store){
				if ((parseInt(rowIndex) % 2) == 0)
					return 'odd-row';
			},
			startCollapsed:true,
			columnsText:keldan_lang_text('columns'),
			sortAscText:keldan_lang_text('sort ascending'),
			sortDescText:keldan_lang_text('sort descending')
		});
		Ext.apply(this,{
			id:'FundsGrid_Small',
			border:false,
			header:false,
			hideHeaders:true,
    		store : this.bstore,
    		selModel : new Ext.grid.RowSelectionModel({singleSelect : true}),
    	    columns:this.bcolumns,
    	    view:this.bview
    	    //autoHeight:true
    	    
    	});
		var mygrid = this;
		var startRow = this.startRow;
		this.on('mouseover',function(e,t){
			if( (row = this.getView().findRowIndex(t))!== false && (col=this.getView().findCellIndex(t))!==false) {
				var rec = this.getStore().getAt(row);
				var htmlel = this.getView().getCell(row,col);
				var header = this.getColumnModel().getColumnHeader(col);
				var dIdx = this.getColumnModel().getDataIndex(col);
				//alert('data index is '+dIdx);
				var html = '';
				if(header.indexOf(keldan_lang_text('fundownertlp')) == 0) {
					
					new Ext.ToolTip({
						target:htmlel,	
						html:'<b>'+rec.data.owner+'<b>',
						//	cls:'fx-tooltip',
						//		ctCls:'ct-fx-tooltip',
						showDelay:0,
						hideDelay:0,
						trackMouse:false,
						constrainPosition:true,
						frame:true,
						dismissDelay:0
					});
					
				}else if(header.indexOf(keldan_lang_text('name'))==0) {
					new Ext.ToolTip({
						target:htmlel,
						html:'<b>'+rec.data.owner+' : '+rec.data.fundName+'</b>',
						//cls:'fx-tooltip',
						//ctCls:'ct-fx-tooltip',
						showDelay:0,
						hideDelay:0,
						trackMouse:false,
						constrainPosition:true,
						frame:true,
						dismissDelay:0
					});
				}else if(header.indexOf('M')==1 || header.indexOf('M')==2 || header.indexOf(keldan_lang_text('thisyear'))==0) {
					new Ext.ToolTip({
						target:htmlel,
						html:'<b>'+Kelda.Info.ValueRendererThree(rec.data[dIdx]*100,keldan_lang)+' %</b> '+keldan_lang_text('fundnominal')+' '+rec.data.lastDateStr+' '+keldan_lang_text('period')+': '+keldan_lang_text(header),
						showDelay:0,
						hideDelay:0,
						trackMouse:false,
						constrainPosition:true,
						frame:true,
						dismissDelay:0
						
					});
				}else if(header.indexOf(keldan_lang_text('currencyshort'))==0) {
					new Ext.ToolTip({
						target:htmlel,
						html:'<b>'+keldan_lang_text('fundbasecurrency')+' : '+rec.data.currency+'</b>',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					});
				}
					
				
				
				
			}
		});
    	
		var s = this.bstore;
		this.on('render',function(comp) {
    		s.load();
    	});
    	
		this.bstore.on('load',function(){
			
			mygrid.getView().toggleRowIndex(startRow,true);
		});
    	
    	Kelda.Info.FundList.superclass.initComponent.apply(this,arguments);
	}
});

Ext.reg('FundList',Kelda.Info.FundList);

Kelda.Info.FundCheckList = Ext.extend(Ext.grid.GridPanel,{
	initComponent : function() {
		var sm = new Ext.grid.CheckboxSelectionModel(/*{
			listeners : {
    			'rowselect' : {
    				fn : function(sm,rowIndex,record) {
    					var selrecs = sm.getSelections();
    					var str = '';
    					for(i = 0,j=selrecs.length; i<j; i++) {
    						//console.log(selrecs[i].data.fundcode+" is selected");
    						str+=selrecs[i].data.fundcode+':';
    					}
    					var iframe = Ext.getCmp('fund_graph_iframe');
    					iframe.setSrc(window.location.protocol + "//"
    							+ window.location.hostname + "/" + basePath+'funds/chart/static/'+str.substring(0,str.length-1));
    				}
    			 }
    		}
		}*/);
		this.defaultRenderer = function(val) {
			if(isNaN(val))
				return '-';
			return Kelda.Info.NumberFormat(val,'0.000,00/i');
		};
		
		
		var periodDispFunc = function(val,meta,rec) {
    		if(isNaN(val) || val==0)
    			return '-';
    		var format = '0.000,0/i';
    		return Kelda.Info.NumberFormat(val*100,format)+(rec.data.mes?rec.data.mes:'')+'%';
		};
		
		this.bcolumns=[sm,{
			id: 'owner',
			dataIndex: 'owner',
			header : keldan_lang_text('fundownertlp'),
			hidden:false,
			sortable:true,
			tooltip:keldan_lang_text('fundownertlp'),
			renderer : function(val,meta,rec) {
				return '<a href="'+rec.data.buyUrl+'" target="_blank"><img src="themes/keldanpremium/images/funds/'+val+'.png"></a>';
			},
			width: 4
		},{
			id: 'title',
			dataIndex: 'fundName',
			header : keldan_lang_text('name'),
			hidden:false,
			sortable:true,
			renderer : function(val,meta,rec) {
				return val;
			},
			width: 30
		},{
        	id : '12m',
        	header : '12M',
        	dataIndex:'rate12M',
        	align:'left',
        	width:10,
        	hidden:true,
        	renderer : periodDispFunc
        },{
        	id : 'category',
        	header : keldan_lang_text('category'),
        	dataIndex:'category',
        	align:'left',
        	width:10,
        	hidden:true
        	
        },{
        	id : 'type',
        	header : keldan_lang_text('type'),
        	dataIndex:'type',
        	align:'left',
        	width:10,
        	hidden:true
        	
        },{
        	id : 'myOrder',
        	header : 'Röð',
        	dataIndex:'myOrder',
        	align:'left',
        	/*renderer : function(v,r,ri,ci,ds) {
        		return r.category;
        	},*/
        	width:10,
        	hidden:true
        	
        }];
		var bgrid = this;
		this.jreader = new Ext.data.JsonReader({
			id:'fundRecId',
        	root : 'data',
            fields: [ {name:'fundRecId'},{name:'fundcode',mapping:'fund',type:'string'},
            	{name:'lastDateStr',type:'string'},
            	{name:'rate12M',type:'float'},{name:'fundName'},
            	{name:'owner'},{name:'category'},{name:'myOrder'},{name:'type'}
            ]
		});
		
		this.bstore = new Ext.data.GroupingStore({
	        	reader:this.jreader,
	            proxy: new Ext.data.HttpProxy({
	            	//url: window.location.protocol+"//"+window.location.hostname+"/"+basePath+"feedconnect/getFeed"
	            	url: window.location.protocol+"//"+window.location.hostname+"/"+basePath+"connector/getAllFunds"
	            }),
	            sortInfo: {field:'rate12M',direction:'DESC'},
	            groupField:'myOrder'
        });
		this.bview = new Ext.grid.GroupingView( {
			forceFit : true,
			showGroupName:false,
			groupTextTpl: '{[values.rs[0].data.category]}',
			autoFill:true,
            enableRowBody:true,
            scrollOffset:0,
            showPreview:false,
            getRowClass : function(record, rowIndex, p, store){
				if ((parseInt(rowIndex) % 2) == 0)
					return 'odd-row';
			},
			startCollapsed:true,
			columnsText:keldan_lang_text('columns'),
			sortAscText:keldan_lang_text('sort ascending'),
			sortDescText:keldan_lang_text('sort descending')
		});
		Ext.apply(this,{
			id:'FundsGrid_Small',
			border:false,
			header:false,
			sm:sm,
			hideHeaders:true,
    		store : this.bstore,
    		selModel : new Ext.grid.RowSelectionModel({singleSelect : true}),
    	    columns:this.bcolumns,
    	    view:this.bview
    	    //autoHeight:true
    	    
    	});
		var mygrid = this;
		var startRow = this.startRow;
		this.on('mouseover',function(e,t){
			if( (row = this.getView().findRowIndex(t))!== false && (col=this.getView().findCellIndex(t))!==false) {
				var rec = this.getStore().getAt(row);
				var htmlel = this.getView().getCell(row,col);
				var header = this.getColumnModel().getColumnHeader(col);
				var dIdx = this.getColumnModel().getDataIndex(col);
				//alert('data index is '+dIdx);
				var html = '';
				if(header.indexOf(keldan_lang_text('fundownertlp')) == 0) {
					
					new Ext.ToolTip({
						target:htmlel,	
						html:'<b>'+rec.data.owner+'<b>',
						//	cls:'fx-tooltip',
						//		ctCls:'ct-fx-tooltip',
						showDelay:0,
						hideDelay:0,
						trackMouse:false,
						constrainPosition:true,
						frame:true,
						dismissDelay:0
					});
					
				}else if(header.indexOf(keldan_lang_text('name'))==0) {
					new Ext.ToolTip({
						target:htmlel,
						html:'<b>'+rec.data.owner+' : '+rec.data.fundName+'</b>',
						//cls:'fx-tooltip',
						//ctCls:'ct-fx-tooltip',
						showDelay:0,
						hideDelay:0,
						trackMouse:false,
						constrainPosition:true,
						frame:true,
						dismissDelay:0
					});
				}else if(header.indexOf('M')==1 || header.indexOf('M')==2 || header.indexOf(keldan_lang_text('thisyear'))==0) {
					new Ext.ToolTip({
						target:htmlel,
						html:'<b>'+Kelda.Info.ValueRendererThree(rec.data[dIdx]*100,keldan_lang)+' %</b> '+keldan_lang_text('fundnominal')+' '+rec.data.lastDateStr+' '+keldan_lang_text('period')+': '+keldan_lang_text(header),
						showDelay:0,
						hideDelay:0,
						trackMouse:false,
						constrainPosition:true,
						frame:true,
						dismissDelay:0
						
					});
				}else if(header.indexOf(keldan_lang_text('currencyshort'))==0) {
					new Ext.ToolTip({
						target:htmlel,
						html:'<b>'+keldan_lang_text('fundbasecurrency')+' : '+rec.data.currency+'</b>',
						showDelay:0,
						hideDelay:0,
						trackMouse:true,
						frame:true,
						dismissDelay:0
					});
				}
					
				
				
				
			}
		});
    	
		var s = this.bstore;
		this.on('render',function(comp) {
    		s.load();
    		
    	});
    	
		this.bstore.on('load',function(){
			mygrid.getView().toggleRowIndex(startRow,true);
			
			
		});
		this.on('viewready',function(grid){
			grid.getSelectionModel().selectRow(startRow,true);
		});
    	
    	Kelda.Info.FundCheckList.superclass.initComponent.apply(this,arguments);
	}
});

Ext.reg('FundCheckList',Kelda.Info.FundCheckList);

















