/** Start: Date Picker Combo box **/

function loadDatePicker(startdateElementId,enddateElementId,startdateField,enddateField,
						startdate,enddate,fundId,shareClassId) {
	
	startdateField = new Ext.form.DateField({
       				format:'d/m/y',
					applyTo: document.getElementById(startdateElementId),
					width:80,
					triggerClass:'calendar-ico'
   				});   				
   	startdateField.setValue(startdate);
   	   	
	enddateField = new Ext.form.DateField({
       				format:'d/m/y',
       				width:80,
					applyTo: document.getElementById(enddateElementId),
					triggerClass:'calendar-ico'
   				});
   	enddateField.setValue(enddate);
 	
 	var cbArray = transformComboBoxes(startdateElementId,enddateElementId,startdateField,enddateField,
						fundId,shareClassId);
						
	startdateField.on('select',function(field,date) {onSelect(cbArray,date,startdateElementId,fundId,shareClassId);} );
	populateDD(cbArray,startdateElementId,startdate);
	
	enddateField.on('select',function(field,date) {onSelect(cbArray,date,enddateElementId,fundId,shareClassId);} );
 	populateDD(cbArray,enddateElementId,enddate);
 	
 	var array = [];
 	array[0]=startdateField;
 	array[1]=enddateField;
 	return array;
}

function refreshChart(dateElementId,fundId,shareClassId) {
	var startdateElementId,enddateElementId;
	if(dateElementId.indexOf('start')!=-1) {
		startdateElementId = dateElementId;
		enddateElementId = dateElementId.replace('start','end');
	} else {
		startdateElementId = dateElementId.replace('end','start');
		enddateElementId = dateElementId;		
	}
	var startdate = getDateFromDD(startdateElementId);
	var enddate = getDateFromDD(enddateElementId);
		
	//alert("refresh chart.. startdate="+startdate+" enddate"+enddate);
	var url="fundPerformancegraph.html?fundId="+fundId+"&shareClassId="+shareClassId+"&period=CUSTOM&start="+startdate+"&end="+enddate;
	
	var img = document.createElement('img');
	img.onload = function (evt) {
	    document.getElementById('img'+startdateElementId).src=this.src;
	}
	img.src = url;
	return false;
}

function onSelect(cbArray,date,dateElementId,fundId,shareClassId) {
	populateDD(cbArray,dateElementId,date);	
	refreshChart(dateElementId,fundId,shareClassId);
}

function onChange(dateField,dateElementId,fundId,shareClassId) {
	dateField.setValue(getDateFromDD(dateElementId));
	refreshChart(dateElementId,fundId,shareClassId);
}

function populateDD(cbArray,dateElementId,date) {
	var cbArray1;
	if(dateElementId.indexOf('start')!=-1) {
		cbArray1=cbArray[0];		
	} else {
		cbArray1=cbArray[1];
	}
	cbArray1[0].setValue(date.getMonth());
	cbArray1[1].setValue(date.getDate());
	cbArray1[2].setValue(date.getYear());	
}

function getDateFromDD(dateElementId){
	var date = new Date(document.getElementById('year'+dateElementId).value,
				 document.getElementById('month'+dateElementId).value,
				 document.getElementById('day'+dateElementId).value).format('d/m/y');
	return date;					 
}

function transformComboBoxes(startdateElementId,enddateElementId,startdateField,enddateField,
						fundId,shareClassId) {
	var smcb = getTransformedComboBox('month'+startdateElementId,startdateElementId,startdateField,fundId,shareClassId);
	var sdcb = getTransformedComboBox('day'+startdateElementId,startdateElementId,startdateField,fundId,shareClassId);
	var sycb = getTransformedComboBox('year'+startdateElementId,startdateElementId,startdateField,fundId,shareClassId);
	var emcb = getTransformedComboBox('month'+enddateElementId,enddateElementId,enddateField,fundId,shareClassId);
	var edcb = getTransformedComboBox('day'+enddateElementId,enddateElementId,enddateField,fundId,shareClassId);
	var eycb = getTransformedComboBox('year'+enddateElementId,enddateElementId,enddateField,fundId,shareClassId);
	
	var sCmbArray = [];
    sCmbArray[0] = smcb;
    sCmbArray[1] = sdcb;
    sCmbArray[2] = sycb;
    
    var eCmbArray = [];
    eCmbArray[0] = emcb;
    eCmbArray[1] = edcb;
    eCmbArray[2] = eycb;
	
	var cmbArray = [];
    cmbArray[0] = sCmbArray;
    cmbArray[1] = eCmbArray;
	return cmbArray;
}

function getTransformedComboBox(ddElementId,dateElementId,dateField,fundId,shareClassId) {
	var cb = new Ext.form.ComboBox({
				typeAhead: true,
				triggerAction: 'all',
				transform:ddElementId,
				width:50,
				resizable: true
			});
	cb.on('select',function(a,b){ onChange(dateField,dateElementId,fundId,shareClassId) } );
	return cb;
}

/** End: Date Picker Combo box **/

/** Start : Date Picker Text Fields **/

function refreshChartTextFields(dateElementId,fundId,shareClassId) {
	var startdateElementId,enddateElementId;
	if(dateElementId.indexOf('start')!=-1) {
		startdateElementId = dateElementId;
		enddateElementId = dateElementId.replace('start','end');
	} else {
		startdateElementId = dateElementId.replace('end','start');
		enddateElementId = dateElementId;		
	}
	var startdate = document.getElementById(startdateElementId).value;
	var enddate = document.getElementById(enddateElementId).value;
		
	//alert("refresh chart.. startdate="+startdate+" enddate"+enddate);
	var url="fundPerformancegraph.html?fundId="+fundId+"&shareClassId="+shareClassId+"&period=CUSTOM&start="+startdate+"&end="+enddate;
	
	var img = document.createElement('img');
	img.onload = function (evt) {
	    document.getElementById('img'+startdateElementId).src=this.src;
	}
	img.src = url;
	return false;
}

/** End : Date Picker Text Fields **/

/** Start: Dividend Grid methods**/

function handleActivate(tab){
	var tableId = tab.contentEl+'Table';
	
    if(document.getElementById(tableId)) {
    	var grid = new Ext.ux.grid.TableGrid(tableId, {
			stripeRows: true,
			fields: [
				{sortType: 'asDate', dateFormat: 'd M Y'},
				{sortType: 'asDate', dateFormat: 'd M Y'},
				{}
			]
		});
		grid.render();
	}
}
