A review of things you need to know before you go home on Friday; migrant surge, credit card honey pot, consumers confident, job market strong, IAG doesn't want to to fix it, wholesale rates rise

Short headline: 
What happened Friday

Here are the key things you need to know before you leave work today.

TODAY'S MORTGAGE RATE CHANGES
There were no changes announced today.

TODAY'S DEPOSIT RATE CHANGES
Similarly, there are no TD changes to report.

AN ALL-TIME HIGH
Migration gains broke all previous records in February. Net migration is now adding more than 7,000 new residents a month to the country's population, 45% of them settling in Auckland. However, the importance of student arrivals to this increase cannot be understated – with arrivals from India surging and representing 30.4% of all net arrivals. They are followed by arrivals from China representing 15%, and the UK representing 5.8% in February. More ethan half of all migrants come from these three countries.

A $4 BLN HONEY POT
Following yesterday's news that Westpac have attacked BNZ's credit card advantage, we leaned today that the total NZ credit card market now has balances owed of $6.4 bln, and 65% of that incurs interest.

LOCAL DEMAND UNDERPINS GROWTH
Consumers are confident but less so than at the same time a year ago. A healthy glow is certainly evident says ANZ. That’s a positive sign for a sustainable trend in retail spending. Buoyant levels of consumer sentiment in association with business optimism continue to augur well for the economic expansion. ANZ is picking 3% growth over the year ahead. South Islanders are the pace setters in regards to consumer sentiment. House price expectations at +4.9% remain strong and are even stronger in Auckland at +5.6% pa. 

LOTS OF JOBS, LOTS OF WORKERS
The latest jobs ads survey was out today from ANZ. They report the data suggests continuing steady demand for labour. Over a 3-month average, Auckland has seen the strongest annual total job ad growth of the three main centres, up 13.2%. By the same measure Canterbury ads are up 5.8% and Wellington ads have fallen 4.2% y-on-y. National labour supply has been broadly keeping pace with labour demand thanks to high migration and increasing labour force participation. ANZ's economists expect the unemployment rate to ease only modestly from current 5.7% level over the coming year. 

A KEY MARKET SLOWS
But things are getting tougher in China. Their largest companies reported a worsening in business confidence in March according to the latest MNI China Business Sentiment Survey. The MNI China Business Sentiment Indicator, a gauge of current business sentiment, fell for the third consecutive month to 52.2 in March from 52.8 in February, leaving confidence at the lowest level since October last year. 

BUYING A FIGHT ?
In insurance news, IAG has announced that it is started to pressure its Christchurch policy holders into cash-settling their quake claims. Under the guise of the industry ' commitment' to get their quake claims resolved by the end of 2016, it will now push to offer cash instead of the 'full replacement' commitment they gave in their policies. This will relieve them of construction cost inflation pressures and put it back on their clients. How compliant their policy holders are to this move will be interesting to watch. Looks like a "pressure-from-Sydney-HQ" move to me given how many claims are yet to settle and the level of cost pressure in the Christchurch market.

WHOLESALE RATES SHARPLY LOWER
Against expectations, wholesale swap rates rose today by +2 bps across the whole curve. There was an earlier expectation that the would follow Wall Street down, but that has not turned out to be the case. The 90 day bank bill rate was unchanged at 3.62%.

NZ DOLLAR CLIMBS
Check our real-time charts here.  The NZD climbed today from this mornings opening levels, but it is still lower that where it was at this time yesterday. It is now at 74.3 USc, at 96.9 AUc, and the TWI is at 79.5

You can now see an animation of this chart. Click on it, or click here.

Daily exchange rates

//var root_url=”http://www.interest.co.nz/”
var root_url=”http://www.interest.co.nz/charts-csv/” // left untouched for now
var tabs_count=”7″;
var csvfiles_loc= [“/charts-csv/chart_data/exchangerates/daily-usd.csv”,” /charts-csv/chart_data/exchangerates/daily-aud.csv”,” /charts-csv/chart_data/exchangerates/daily-twi.csv”,” /charts-csv/chart_data/exchangerates/daily-yen.csv”,” /charts-csv/chart_data/exchangerates/daily-yuan.csv”,” /charts-csv/chart_data/exchangerates/daily-eur.csv”,” /charts-csv/chart_data/exchangerates/daily-gbp.csv”];
var chart_title_arr= [“US dollar”,”Australian dollar”,”Trade weighted index”,”Japanese Yen”,”Chinese Yuan”,”Euro”,”British pound”];
var chart_subtitles_arr= [“Daily benchmark rate”,”Daily benchmark rate”,”Daily benchmark rate”,”Daily benchmark rate”,”Daily benchmark rate”,”Daily benchmark rate”,”Daily benchmark rate”];
var tab_titles_arr= [“US$”,”AU$”,”TWI”,”u00a5en”,”u00a5uan”,”u20acuro”,”GBP”];
var source_arr= [“RBNZ”,”RBNZ”,”RBNZ”,”RBNZ”,”RBNZ”,”RBNZ”,”RBNZ”];
var source_hyperlink_arr= [“http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”];
var tabswidth=”8″;
var decimal_arr= [“4″,”4″,”4″,”2″,”2″,”4″,”4”];

// variable declaration
var xpad;
var padding_value=0;
var range_selector=0
var loc;
var updt;
var val_num;
var vi=0;
var max_val;
var x;

var finalAr = new Array();
for (var i = 0; i <= tabs_count; i++) {
finalAr[i] = new Array();
}
var flagAr = new Array();
for (var i = 0; i <= tabs_count; i++) {
flagAr[i] =[];
}
var yaxisAr = new Array();
for (var i = 0; i 536)
{
var b = arr.length – 536; // to get last 36 points
}
else if (arr.length < 536)
{
var b = 537 – arr.length;
}
else if(arr.length == 536)
{
var b=2;
}

// to generate the format for date representation in x axis

var timestamweek = 604800000;
var timestamday = 86400000;
var timestammonth30 = 2592000000;
var timestammonth31 = 2678400000;
var timestamyear = 31536000000;
var timestamquarterly = 7776000000;

for (var u=0;u<2;u++) {
arr[u] = parseLineCSV(arr[u]);
fomat= String(arr[u][0]);
var k=0;

//alert(fomat.charAt(k));
do {
k++;
} while(fomat.charAt(k)!="-")
var k1 =k;

do {
k++;
} while(fomat.charAt(k)!="-")
var k2=k;

do {
k++;
} while(k<fomat.length)
var k3=k;

var dd= fomat.substring(0,k1);
var mm = fomat.substring(k1+1,k2);
var yy = "20"+fomat.substring(k2+1,k3+1);
var yy1=fomat.substring(k2+1,k3+1);

// conversion of months into numerical form

//+++++++++++++++++++++++++++++++++++
if (mm == "Jan")
{
mm= "01";
}
else if (mm == "Feb")
{
mm= "02";
}

else if (mm == "Mar")
{
mm= "03";
}

else if (mm == "Apr")
{
mm= "04";
}

else if (mm == "May")
{
mm= "05";
}

else if (mm == "Jun")
{
mm= "06";
}

else if (mm == "Jul")
{
mm= "07";
}

else if (mm == " Aug")
{
mm= "08";
}

else if (mm == "Sep")
{
mm= "09";
}

else if (mm == "Oct")
{
mm= "10";
}

else if (mm == "Nov")
{
mm= "11";
}

else if (mm == "Dec")
{
mm= "12";
}

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++

var date2 = mm+"/"+dd+"/"+yy;

if (u==0)
{
var timestam1 = Date.parse(date2);
}
else if(u==1)
{
var timestam2 = Date.parse(date2);
}
}
var timestamvar = (timestam2- timestam1);
var flagAR_count=0;
for (var i=2;i<arr.length;i++) {
flagAR_count++;
var tempAr = new Array();
var tempAr1 = new Array();
arr[i] = parseLineCSV(arr[i]);
//alert("this is arr[i]="+arr[i]);
if (arr[i]!='')
{

fomat= String(arr[i][0]);
replic=String(arr[i][0]);
//alert("this is the value fomat first cond= "+ fomat);
var k=0;

do {
k++;
} while(fomat.charAt(k)!="-")
var k1 =k;

do {
k++;
} while(fomat.charAt(k)!="-")
var k2=k;

do {
k++;
} while(k<fomat.length)
var k3=k;

var dd= fomat.substring(0,k1);
var mm = fomat.substring(k1+1,k2);
var current_year=""+new Date().getFullYear();
var c_year=Number(current_year.substring(2,4));
var c_data=Number(''+fomat.substring(k2+1,k3+1));
if(c_data c_year)
{
var yy = “19”+fomat.substring(k2+1,k3+1);
}
else if(c_data == c_year)
{
var yy = “20”+fomat.substring(k2+1,k3+1);
}
// conversion of months into numerical form

//+++++++++++++++++++++++++++++++++++
if (mm == “Jan”)
{
mm= “01”;
}
else if (mm == “Feb”)
{
mm= “02”;
}

else if (mm == “Mar”)
{
mm= “03”;
}

else if (mm == “Apr”)
{
mm= “04”;
}

else if (mm == “May”)
{
mm= “05”;
}

else if (mm == “Jun”)
{
mm= “06”;
}

else if (mm == “Jul”)
{
mm= “07”;
}

else if (mm == “Aug”)
{
mm= “08”;
}

else if (mm == “Sep”)
{
mm= “09”;
}

else if (mm == “Oct”)
{
mm= “10”;
}

else if (mm == “Nov”)
{
mm= “11”;
}

else if (mm == “Dec”)
{
mm= “12”;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++

var date = mm+”/”+dd+”/”+yy;
//alert(date);

//alert(flagAr[csvgen_counter]);
//alert(“this is flagAr”+flagAr);

var timestam_1 = Date.parse(date);
var timestam= timestam_1+86400000; //86400000 added to get correct timezone output from Date.parse
var time4 = new Date(timestam);
var Weeko = time4.getDay();
var dd2 = time4.getDate();
var mm2 = time4.getMonth();
var flag_y=arr[i][1];
var ahref_title=”Click here for full story”;
// var url= arr[i][2];
//var url=”http://www.nzherald.co.nz”;
//var flag_date='{“x”: “Date.UTC(‘+yy+’,’+mm2+’,’+dd2+’)”, “y”:’flag_y’, “title”: “On series”}’;
//var flag_date='{“x”:”‘+timestam+'”, “title”:”A”}’;
if(arr[i][2])
{
var url=arr[i][2];
var flag_date='{“x”:’+timestam+’, “title”:”  “,”text”:”Click here for Story!“}’;

//var flag_date='{“x”:”‘+timestam+'”, “title”: “A“}’;
//var flag_date=”{x:Date.UTC(“+yy+”,”+mm2+”,”+dd2+”), title:’On series’}”;
flagAr[csvgen_counter].push(flag_date);
}
var yy2 = time4.getFullYear();
var yy3 = yy2+””;
var yy4= yy3.substring(2,4);
//++++++++++++++++++++++++this for days conversion++++++++++++++++++++++++++++
if (Weeko==1)
{
Weeko = “Mon”;
}

else if (Weeko==2)
{
Weeko = “Tue”;
}

else if (Weeko==3)
{
Weeko = “Wed”;
}

else if (Weeko==4)
{
Weeko = “Thu”;
}

else if (Weeko==5)
{
Weeko = “Fri”;
}

else if (Weeko==6)
{
Weeko = “Sat”;
}

else if (Weeko==0)
{
Weeko = “Sun”;
}

//+++++++++++++++++++++++this is for month conversion+++++

if (mm2==0)
{
mm2 = “Jan”;
}

else if (mm2==1)
{
mm2 = “Feb”;
}

else if (mm2==2)
{
mm2 = “Mar”;
}

else if (mm2==3)
{
mm2 = “Apr”;
}

else if (mm2==4)
{
mm2 = “May”;
}

else if (mm2==5)
{
mm2 = “Jun”;
}

else if (mm2==6)
{
mm2 = “Jul”;
}

else if (mm2==7)
{
mm2 = “Aug”;
}

else if (mm2==8)
{
mm2 = “Sep”;
}

else if (mm2==9)
{
mm2 = “Oct”;
}

else if (mm2==10)
{
mm2 = “Nov”;
}

else if (mm2==11)
{
mm2 = “Dec”;
}
//++++++++++++++++++++++++++++++++++++++++

//weekly
if ( timestamvar == timestamweek)
{
fomat2=dd2+”-“+mm2+”-“+yy4;
padding_value=timestamweek;
range_selector=2;
}

// Daily
else if ( timestamvar = timestamyear)
{
fomat2=mm2+”-“+yy4;
padding_value=timestamyear;
range_selector=3;
}

//monthly
else if ((timestamvar <= timestammonth30)&&(timestamvar = timestamquarterly)
{
fomat2=mm2+”-“+yy4;
padding_value=timestamquarterly;
range_selector=3;
}

else
{
fomat2=dd2+”-“+mm2+”-“+yy4;
padding_value=timestamday;
range_selector=3;
}

arr[i][0]= fomat2;
//alert(“this is arr[i][0]”+arr[i][0]);
var decpad;
decpad = parseFloat(arr[i][1]);
//arr[i][1] = roundVal(decpad);
arr[i][1] = decpad;

if(i==(arr.length-1))
{

// Functionality to get the last value

var xvalu=dd2+”-“+mm2+”-“+yy4;
var yvalu= String(arr[i][1]);
var xyvalu=”Latest value at “+xvalu+” is “+yvalu;
updt=”Updated on “+xvalu;
//alert(“this is updt= “+updt);
}

tempAr.push(timestam);
if(!arr[i][1])
{
arr[i][1]=null;
}
yaxisAr[csvgen_counter].push(arr[i][1]);
// tempAr1.push(timestam);
// tempAr2.push(tempAr1);
tempAr.push(arr[i][1]);
last_val=timestam;
finalAr[csvgen_counter].push(tempAr);
}
xpad=last_val+padding_value; //*****************to end up graph early//////
//alert(finalAr[csvgen_counter]);
if(arr[i]== “”)
{
vi=arr.length-i;
arr.length=arr.length-vi;
i=arr.length-1;
fomat = replic;

var k=0;

do {
k++;
} while(fomat.charAt(k)!=”-“)
var k1 =k;

do {
k++;
} while(fomat.charAt(k)!=”-“)
var k2=k;

do {
k++;
} while(k<fomat.length)
var k3=k;

var dd= fomat.substring(0,k1);
var mm = fomat.substring(k1+1,k2);
var yy = "20"+fomat.substring(k2+1,k3+1);

// conversion of months into numerical form

//+++++++++++++++++++++++++++++++++++
if (mm == "Jan")
{
mm= "01";
}
else if (mm == "Feb")
{
mm= "02";
}

else if (mm == "Mar")
{
mm= "03";
}

else if (mm == "Apr")
{
mm= "04";
}

else if (mm == "May")
{
mm= "05";
}

else if (mm == "Jun")
{
mm= "06";
}

else if (mm == "Jul")
{
mm= "07";
}

else if (mm == "Aug")
{
mm= "08";
}

else if (mm == "Sep")
{
mm= "09";
}

else if (mm == "Oct")
{
mm= "10";
}

else if (mm == "Nov")
{
mm= "11";
}

else if (mm == "Dec")
{
mm= "12";
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++

var date = mm+"/"+dd+"/"+yy;
//here flagAr may be
var timestam = Date.parse(date);
var time4 = new Date(timestam);
var Weeko = time4.getDay();
var dd2 = time4.getDate();
var mm2 = time4.getMonth();

var yy2 = time4.getFullYear();
var yy3 = yy2+"";
var yy4= yy3.substring(2,4);
//++++++++++++++++++++++++this for days conversion++++++++++++++++++++++++++++
if (Weeko==1)
{
Weeko = "Mon";
}

else if (Weeko==2)
{
Weeko = "Tue";
}

else if (Weeko==3)
{
Weeko = "Wed";
}

else if (Weeko==4)
{
Weeko = "Thu";
}

else if (Weeko==5)
{
Weeko = "Fri";
}

else if (Weeko==6)
{
Weeko = "Sat";
}

else if (Weeko==0)
{
Weeko = "Sun";
}

//+++++++++++++++++++++++this is for month conversion+++++

if (mm2==0)
{
mm2 = "Jan";
}

else if (mm2==1)
{
mm2 = "Feb";
}

else if (mm2==2)
{
mm2 = "Mar";
}

else if (mm2==3)
{
mm2 = "Apr";
}

else if (mm2==4)
{
mm2 = "May";
}

else if (mm2==5)
{
mm2 = "Jun";
}

else if (mm2==6)
{
mm2 = "Jul";
}

else if (mm2==7)
{
mm2 = "Aug";
}

else if (mm2==8)
{
mm2 = "Sep";
}

else if (mm2==9)
{
mm2 = "Oct";
}

else if (mm2==10)
{
mm2 = "Nov";
}

else if (mm2==11)
{
mm2 = "Dec";
}
//++++++++++++++++++++++++++++++++++++++++

//weekly
if ( timestamvar == timestamweek)
{
fomat2=dd2+"-"+mm2+"-"+yy4;
}

// Daily
else if ( timestamvar = timestamyear)
{
fomat2=mm2+”-“+yy4;
}

//monthly
else if ((timestamvar <= timestammonth30)&&(timestamvar = timestamquarterly)
{
fomat2=mm2+”-“+yy4;
}

arr[i][0]= fomat2;
var decpad;

decpad = parseFloat(arr[i][1]);
//arr[i][1] = roundVal(decpad);
arr[i][1] = decpad;
if(i==(arr.length-1))
{

var xvalu=dd2+”-“+mm2+”-“+yy4;
var yvalu= String(arr[i][1]);
var xyvalu=”Latest value at “+xvalu+” is “+yvalu;
updt=”Updated on “+xvalu;
//alert(“this is updt= “+updt);
}
}

}
//alert(finalAr[csvgen_counter]);
}

//other required functions

//chart configuration starts here

function getXMLHttpRequest(file) {

//var arrSignatures = [“MSXML2.XMLHTTP.5.0”, “MSXML2.XMLHTTP.4.0″,
//”MSXML2.XMLHTTP.3.0”, “MSXML2.XMLHTTP”,
//”Microsoft.XMLHTTP”];

//for (var i=0; i < arrSignatures.length; i++) {

try
{
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("POST",file,false);
return xmlhttp;
}
catch(e)
{
error=e.message;
}

//}
throw new Error("MSXML is not installed on your system.");
}

function readCSV(locfile) {
// load a whole csv file, and then split it line by line
var req = new getXMLHttpRequest(locfile);
//req.open("POST",locfile,false);
req.send("");
//alert(req.responseText.split(/n/g));
return req.responseText.split(/n/g);
}

function parseLineCSV(lineCSV) {
// parse csv line by line into array
var CSV = new Array();

lineCSV = lineCSV.replace(/,/g," ,");

lineCSV = lineCSV.split(/,/g);

// This is continuing of 'split' issue in IE
// remove all trailing space in each field
for (var i=0;i<lineCSV.length;i++) {
lineCSV[i] = lineCSV[i].replace(/s*$/g,"");
}

lineCSV[lineCSV.length-1]=lineCSV[lineCSV.length-1].replace(/^s*|s*$/g,"");
var fstart = -1;

for (var i=0;i=0) {
for (var j=fstart+1;j<=i;j++) {
lineCSV[fstart]=lineCSV[fstart]+","+lineCSV[j];
lineCSV[j]="-DELETED-";

}
fstart=-1;
}
}
fstart = (lineCSV[i].match(/^"/)) ? i : fstart;
}

var j=0;

for (var i=0;i<lineCSV.length;i++) {
if (lineCSV[i]!="-DELETED-") {
CSV[j] = lineCSV[i];
j++;
}

}

return CSV;
}

function roundVal(val_num){
var dec = 2;
var result = Math.round(val_num*Math.pow(10,dec))/Math.pow(10,dec);
return result;
}

function setdecimalpoints(deca)
{
var deca1= deca;
var deca2= parseInt(deca);
if((deca1-deca2)!=0)
{
return 2;
}
else
{
return 0;
}
}
for(i=0;i<tabs_count;i++)
{
var loc=csvfiles_loc[i];
csvgenerata(loc);
//alert(flagAr[csvgen_counter]);
// var flag_test="["+flagAr[csvgen_counter]+"]";
// alert(flag_test);
}

Charts loading…
Charts loading…
Charts loading…
Charts loading…
Charts loading…
Charts loading…
Charts loading…

jQuery.noConflict();
(function($) {

//alert(xpad);
$.getJSON(‘http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?’, function(data) {
var demo = $(“div#mySliderTabs”).sliderTabs({
transition: ‘fade’,
});
for (var i=1;i<=tabs_count;i++)
{
//alert(range_selector);
//alert(finalAr[i]);
var arr_size=finalAr[i].length;
var arr_midpos=Math.floor(arr_size / 2);
var arr_uppermedian_pos=Math.floor((arr_size + arr_midpos)/2);
//alert(arr_uppermedian_pos);
var arr_uppermedian_val=finalAr[i][arr_uppermedian_pos][0];
//alert(finalAr[i][arr_uppermedian_pos][0]);
var oneDay = 24*60*60*1000;
var window_selector=Math.floor((xpad-arr_uppermedian_val)/oneDay);
//alert(window_selector);
var j=i-1;
var flag_test=flagAr[i];
ymax_pad[i]=Math.max.apply(Math, yaxisAr[i]);
ymin_pad[i]=Math.min.apply(Math, yaxisAr[i]);
var margin_max=ymax_pad[i] * 0.1;
var margin_min=ymin_pad[i] * 0.1;
var y_max=ymax_pad[i] + margin_max;
var y_min=ymin_pad[i] – margin_min;

// var ymax=ymax_pad[i];
// var ymin=ymin_pad[i];
// var max_ticks=1000;
// var ticks_int=(ymax-ymin)/max_ticks;
// var ymax_padder=ymax_pad[i]+ticks_int;
// var ymin_padder=ymin_pad[i]-ticks_int;
//alert(ticks_int);
// alert("ymax_pad="+ymax_pad[i]);
// alert("ymax="+ymax);
// alert("ymin_pad="+ymin_pad[i]);
// alert("ymin="+ymin);
$('#container_'+i).highcharts('StockChart', {
chart: {
borderColor: '#000000',
height:363,
width:547,
marginLeft:-3,
marginTop:-43, //takes the chart area up
events: {
load: function() {
this.renderer.image('/sites/all/libraries/InterestHighcharts/images/Interest_logo.gif', 170, 75, 200, 80).add(); // add image(url, x, y, w, h)
}
},
zoomType:'x'
},

credits: {
itemStyle: {
cursor: 'pointer',
color: '#000000',
fontSize: '11px',
fontWeight:'bold'
},
position: {
align: 'right',
x:-50,
verticalAlign: 'bottom',
y:-35
},
text: 'Source:'+source_arr[j],
href: source_hyperlink_arr[j] },

exporting: {
enabled:false, //diables the print button
},

rangeSelector : {
selected : 0,
inputEnabled : false,
buttonTheme:{
display: 'none'
},
labelStyle:{
color: 'transparent'
},
buttons: [{
type: 'day',
count: window_selector,
}, {
type: 'week',
count: 3,
text: '3w'
}, {
type: 'month',
count: 6,
text: '6m'
}, {
type: 'ytd',
text: 'YTD'
}, {
type: 'year',
count: 1,
text: '1y'
}, {
type: 'all',
text: 'All'
}] },

navigator : {
adaptToUpdatedData: false,
xAxis:{
labels:{
enabled: false,
},
},
height: 50,
margin:-2,
series:{
lineColor:'#FF0000',
fillColor : '#FFFFFF'
}
},

title : {
text : chart_title_arr[j],
align: 'left',
x: 26,
verticalAlign: 'top',
//y: 50,
style: {
fontFamily:'Arial,Helvetica,sans-serif',
fontWeight:'bold'
}
},

subtitle : {
text : chart_subtitles_arr[j],
floating:true, //enable us to position the subtitle using 'x' and 'y'
align: 'center',
x:10,
y:15,
style: {
fontFamily:'Arial,Helvetica,sans-serif',
},
},

xAxis: {
type:'datetime',
lineWidth: 20,
// gridLineColor:'#FAFFFF',
// gridLineDashStyle:'Dot',
dateTimeLabelFormats: {
day: '%e-%b',
week: '%e-%b',
month: '%b-%y',
year: '%Y'
},
max:xpad,
events: {
setExtremes: function(e) {
if (e.trigger === "navigator") {
max=e.max+padding_value;
var x=this;
setTimeout(function(){
x.setExtremes(e.min,max); //chart xAxis
}, 4);
}
}
},
labels: {
style: {
color: 'black',
fontSize: '10px',
fontWeight:'bold',
fontFamily:'Arial,Helvetica,sans-serif'
},
y:3
}
},

yAxis: {
opposite: true,
startonTick: true,
endonTick: true,
labels: {
formatter: function() {
return Highcharts.numberFormat(this.value,setdecimalpoints(this.value));
},
style: {
color: 'black',
fontSize: '10px',
fontWeight:'normal'
},
y:-12
}
},

scrollbar: {
liveRedraw: false
},

series : [{
data : finalAr[i],
id: 'dataseries',
lineWidth:3,
pointPlacement: 'on',
zIndex:9999,
name : 'AAPL Stock Price',
shadow:{
width:3,
color:'#000000'
},
lineColor:'#FF0000',
type : 'area',
threshold : null,
tooltip : {
valueDecimals : decimal_arr[i],
useHTML: true,
headerFormat:'

{point.key}
‘,
pointFormat: ‘{point.y}
‘,
footerFormat:’

‘,
},
dataGrouping:{
dateTimeLabelFormats: {
hour:[‘%b-%e,%Y’, ‘%b-%e,%Y’, ”],
day: [‘%b-%e,%Y’, ‘%b-%e,%Y’, ‘-%b %e, %Y’],
week: [‘%e-%b,%Y’, ‘%e-%b,%Y’, ‘-%e %b, %Y’],
month:[‘%b-%y’, ‘%b-%y’, ‘-%b %y %Y’],
year: [‘%Y’, ‘%Y’, ‘-%Y’] }
},
fillColor: {
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1},
stops: [
[0, ‘#FFD8D5’],
[1, ‘rgba(255,255,255,0)’] ] },
fillOpacity:.01
},
{
type: ‘flags’,
useHTML: true,
name: ‘Flags on series’,
data: JSON.parse(“[“+flag_test+”]”),
onSeries: ‘dataseries’,
shape: “url(/sites/all/libraries/InterestHighcharts/images/balloon.jpg)”,
width : 5,
y: -33 //this is for flag
}]

});
}
});
//$(‘.series’).animate({height: 600, width: 800});

})(jQuery);

We update this chart twice each day, from the same data the drives our 'live-rates' charts.

Read full story