!function ()
{
var allfields =
{
/*�б��f=�ֶ�����t=��ʾ��/�ֶα��⣬digit=с��λ����-1�������ã�-2��ʾ�ַ���
* cfg: 1=��ʾ�������� 2=ǿ������ 4=ǿ��+�� 8=ǧλ���� 16=ʹ��th 32=�ǵ���ͷ
* css: custom_css
* ��/��:�զ��ж�λ��
* shift:����10�ļ��η�
* p: template */
counts: { s: 1 },
symbol: { key: 'symbol',title: '����' },
sym: { key: 'sym',title: '����' },
name: { key: 'name',title: '����' },
now: { key: 'now',title: ' ���¼�',digit: 2,cfg: 16 + 32 },
change: { key: 'change',title: '�ǵ���',digit: 2,cfg: 4 + 8 + 16 },
changep: { key: 'changep',title: '�ǵ���',digit: 2,cfg: 4 + 8 + 16,p: '$1%',color: true },
open: { key: 'open',title: '���̼�',digit: 2,cfg: 8 + 16 },
preclose: { key: 'preclose',title: '����',digit: 2,cfg: 8 + 16 },
volume: { key: 'volume',title: '�ɽ���(��)',digit: 0,cfg: 16,'��/��': true,shift: -2 },
amount: { key: 'amount',title: '�ɽ���(Ԫ)',digit: 2,cfg: 16,'��/��': true },
turnover: { key: 'turnover',title: '������',digit: 2,cfg: 8 + 16,p: '$1%' },
pe: { key: 'pe',title: '��ӯ��',digit: 2,cfg: 8 + 16 },
pb: { key: 'pb',title: '���',digit: 2,cfg: 8 + 16 },
high: { key: 'high',title: '���',digit: 2,cfg: 8 + 16 },
low: { key: 'low',title: '��ͼ�',digit: 2,cfg: 8 + 16 },
buy: { key: 'buy',title: '�����',digit: 2,cfg: 8 + 16 },
sell: { key: 'sell',title: '�����',digit: 2,cfg: 8 + 16 },
date: { key: 'date',title: '����' },
time: { key: 'time',title: 'ʱ��' },
swing: { key: 'swing',title: '���',digit: 2,cfg: 8 + 16,p: '$1%' },
eps: { key: 'eps',title: 'ÿ������',digit: 2,cfg: 8 + 16,s: 1 },
profit4season: { key: 'profit4season',title: '���4����ÿ������',digit: 2,cfg: 8 + 16,s: 1 },
profityear: { key: 'profityear',title: '��������ÿ������',digit: 2,cfg: 8 + 16,s: 1 },
netasset: { key: 'netasset',title: 'ÿ�ɾ��ʲ�',digit: 2,cfg: 8 + 16,s: 1 },
averagevolume: { key: 'averagevolume',title: 'ƽ���ɽ���',digit: 2,cfg: 8 + 16,s: 1 },
shares: { key: 'shares',title: '�ܹɱ�',digit: 0,cfg: 16,'��/��': true,s: 1 },
capital: { key: 'capital',title: '��ͨ�ɱ�',digit: 0,cfg: 16,'��/��': true,s: 1 },
cvs: { key: 'cvs',title: '��ͨ��ֵ(Ԫ)',digit: 2,cfg: 16,'��/��': true },
totalshare: { key: 'totalshare',title: '����ֵ(Ԫ)',digit: 2,cfg: 16,'��/��': true },
capitala: { key: 'capitala',title: '��ͨa��',digit: 0,cfg: 16,'��/��': true,s: 1 },
capitalb: { key: 'capitalb',title: '��ͨb��',digit: 0,cfg: 16,'��/��': true,s: 1 },
netprofit: { key: 'netprofit',title: '�����ⱦ�����(��Ԫ)',digit: 2,cfg: 16,'��/��': true,s: 1 },
issueprice: { key: 'issueprice',title: '���м�',digit: 2,cfg: 8 + 16,s: 1 },
roe: { key: 'roe',title: '���ʲ�������',digit: 2,cfg: 8 + 16,p: '$1%',s: 1 },
revenue: { key: 'revenue',title: '��ӫҵ������(��Ԫ)',digit: 2,cfg: 16,'��/��': true,s: 1 },
changes_5: { key: 'changes_5',title: '�����ǵ�',digit: 2,cfg: 8 + 16,p: '$1%',s: 1 },
changes_10: { key: 'changes_10',title: 'ʮ���ǵ�',digit: 2,cfg: 8 + 16,p: '$1%',s: 1 },
changes_20: { key: 'changes_20',title: '��ʮ���ǵ�',digit: 2,cfg: 8 + 16,p: '$1%',s: 1 },
changes_30: { key: 'changes_30',title: '��ʮ���ǵ�',digit: 2,cfg: 8 + 16,p: '$1%',s: 1 },
changes_60: { key: 'changes_60',title: '��ʮ���ǵ�',digit: 2,cfg: 8 + 16,p: '$1%',s: 1 },
netamount: { key: 'netamount',title: '������(Ԫ)',digit: 2,cfg: 16,'��/��': true },
netinflowrate: { key: 'netinflowrate',title: '��������',digit: 2,cfg: 8 + 16,p: '$1%' },
r0_in: { key: 'r0_in',title: '����������(Ԫ)',digit: 2,cfg: 16,'��/��': true },
r3_in: { key: 'r3_in',title: 'ɢ��������(Ԫ)',digit: 2,cfg: 16,'��/��': true },
r0_net_3: { key: 'r0_net_3',title: '3�վ�����(Ԫ)',digit: 2,cfg: 16,'��/��': true,s: 1 },
r0_net_5: { key: 'r0_net_5',title: '5�վ�����(Ԫ)',digit: 2,cfg: 16,'��/��': true,s: 1 }
};
window.allfields = allfields;
function $(id)
{
if(typeof id == 'string')
{
return document.getelementbyid(id);
}
else
{
return id;
}
}
/* container : ��������������ֱ��innerhtml��һ��������id����Ԫ��dom��ԭ����
* fieldscfg : ����ʹ�ö����ֶβ���������������allfields�ķ���
* csscfg : �ǵ�css��ʽ��ĭ��up��down��flat */
function datadrawer(container,fieldscfg,csscfg)
{
this.template = [];
this.html = '';
this.container = $(container);
this.fields = fieldscfg || {};
this.inittemplate();
this.css = merge({ up: 'up',down: 'down',flat: 'flat' },csscfg);
}
merge(datadrawer.prototype,
{
inittemplate: function ()
{
var _this = this;
var _html = this.container.innerhtml;
this.container.innerhtml = _html.replace(//g,'').replace(/@.*?@/g,'--');
_html = _html.replace(//g,function ($1,$2)
{
_this.template.push($2);
return '@template@';
});
this.html = _html;
},
/*������ijһ��������ҫ�����������ã����լ�һ��fieldsimportant����*/
draw: function (argdata)
{
var _this = this;
var _html = this.html;
var _template = this.template;
var _fortemplate = [];
var _temp = [];
var _data,_single;
_data = argdata;
/*�������array���ƕ�һ�ݵ����ݣ�ת������*/
/*���arrayԪ�ز������飬����һ��ѭ���ģ�ת������*/
if(_data && (_data.constructor !== array || (_data[0] && _data[0].constructor !== array)))
{
_data = [_data];
}
for(var di = 0;di < _data.length && di < _template.length;di++)
{
_single = _data[di];
if(_single && _single.constructor !== array)
{
_single = [_single];
}
_temp = [];
for(var i = 0,il = _single.length;i < il;i++)
{
_temp.push(_template[di].replace(/@ud_(.*?)@/g,function ($1,$2)
{
if(_single[i][$2] !== undefined)
{
var _d = _single[i][$2] * 1;
if(_d > 0)
{
return _this.css.up;
}
if(_d < 0)
{
return _this.css.down;
}
return _this.css.flat;
}
}).replace(/@(.*?)@/g,function ($1,$2)
{
return dataformat(_single[i][$2],(_single[i].fieldsimportant && _single[i].fieldsimportant[$2]) || _this.fields[$2] || allfields[$2]);
}));
}
_fortemplate.push(_temp.join(''));
}
var _tindex = 0;
_html = _html.replace(/@template@/g,function ()
{
_tindex++;
return _fortemplate[_tindex - 1] || '';
});
_html = _html.replace(/@ud_(.*?)@/g,function ($1,$2)
{
if(argdata[$2] !== undefined)
{
var _d = argdata[$2] * 1;
if(_d > 0)
{
return _this.css.up;
}
if(_d < 0)
{
return _this.css.down;
}
return _this.css.flat;
}
}).replace(/@(.*?)@/g,function ($1,$2)
{
return dataformat(argdata[$2],(argdata.fieldsimportant && argdata.fieldsimportant[$2]) || _this.fields[$2] || allfields[$2]);
});
this.container.innerhtml = _html;
}
});
window.datadrawer = datadrawer;
/*�����ݰ�field�涨�ķ�ʽ����������ҫ�ǵ���ͷ���贫��lastdata*/
function dataformat(data,field,lastdata)
{
/*_data�����ű仯��data��ԭʼ���ݣ������ж�����֮��*/
var _data = data;
var _field = field;
if(typeof field == 'string')
{
field = allfields[field];
}
var _measureby = '';
if(_data === undefined || _data === null)
{
_data = '--';
}
if(field)
{
/*���ֵijž��и�ʽ������*/
if(!isnan(data * 1) && isfinite(data * 1))
{
/*с������λ*/
if(_field.shift)
{
_data *= math.pow(10,_field.shift);
}
/*�жͼ�ȷ�̶�*/
if(_field['��/��'])
{
if(math.abs(_data) > 100000000)
{
_data /= 100000000;
_measureby = '��';
}
else if(math.abs(_data) > 10000)
{
_data /= 10000;
_measureby = '��';
}
}
/*с����λ��*/
if(_field.digit !== undefined && _field.digit >= 0)
{
if(_measureby)
{
_data = _data.tofixed(_field.digit || 2);
}
else
{
_data = _data.tofixed(_field.digit);
}
}
/*ǧλ����*/
if(_field.cfg & 8)
{
_data = _data.format();
}
/*������*/
if(_field.cfg & 4)
{
_data = (data * 1) > 0 ? '+' + _data : _data;
}
/*ǿ������*/
if(_field.cfg & 2)
{
_data = math.abs(_data * 1);
}
_data += _measureby;
/*�ǵ���ͷ*/
if(_field.cfg & 32 && this.lastdata)
{
if(data > this.lastdata[_field.key])
{
_data = '��' + _data;
}
if(data < this.lastdata[_field.key])
{
_data = '��' + _data;
}
}
if(_field.p)
{
_data = _field.p.replace('$1',_data);
}
}
return _data;
}
else
{
return _data;
}
}
window.dataformat = dataformat;
} ();