// -*- coding: utf-8; indent-tabs-mode: nil -*-
Ext.namespace('Zarafa.calendar.printer');

/**
 * @class Zarafa.calendar.printer.WeekViewRenderer
 * @extends Zarafa.calendar.printer.DaysViewRenderer
 *
 * Prints a single week calendar overview
 */
Zarafa.calendar.printer.WeekViewRenderer = Ext.extend(Zarafa.calendar.printer.DaysViewRenderer, {

	/**
	 * @constructor
	 * @param {Object} config Configuration object
	 */
	constructor : function(config)
	{
		config = config || {};

		Ext.applyIf(config, {
			timeStyle : 'width:33%;'
		});

		Zarafa.calendar.printer.WeekViewRenderer.superclass.constructor.call(this, config);
	},

	/**
	 * Returns the HTML that will be placed into the <body> part of the print window.
	 * @param {Ext.Component} component The component to render
	 * @return {String} The HTML fragment to place inside the print window's <body> element
	 */
	generateBodyTemplate: function(context) {
		var html = '';

		// +--------------------------------------------+
		// | start time -     | date pick  | date pick  |
		// | end time         | this month | next month |
		// +--------------------------------------------+
		/*
		 * +-----------------------------------------------+
		 * |                 day 1 |                 day 4 |
		 * +-----------------------------------------------+
		 * |                       |                       |
		 * |                       |                       |
		 * |                       |                       |
		 * +-----------------------------------------------+
		 * |                 day 2 |                 day 5 |
		 * +-----------------------------------------------+
		 * |                       |                       |
		 * |                       |                       |
		 * |                       |                       |
		 * +-----------------------------------------------+
		 * |                 day 3 |                 day 6 |
		 * +-----------------------------------------------+
		 * | s1 - e1 item1         |                       |
		 * | s2 - e2 item2         +-----------------------+
		 * |                       |                 day 7 |
		 * |                       +-----------------------+
		 * |                       |                       |
		 * +-----------------------------------------------+
		 */
		// [name]           [page nr]        [print date]
		html += '<table class="print-calendar" cellpadding=0 cellspacing=0>\n';

		html += '<tr style="height:10%;"><td colspan=2><table id="top">\n';
		// # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions
		html += '<tr><td align="left" width="60%">{startdate:date("' + _("l d/m/Y") + '")} -</td>'
			+ '<td align="center" valign="top" width="20%" rowspan=2><div id=datepicker_left></div></td>'
			+ '<td align="center" valign="top" width="20%" rowspan=2><div id=datepicker_right></div></td></tr>';
		// # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions
		html += '<tr><td align=left>{duedate:date("' + _("l jS F Y") + '")}</tr>';
		html += '</table></td></tr>\n';

		// date format l jS F == Monday 1st January
		html += ''
			+ '<tr style="height:40px;">'
			// # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions
			+ '  <th class="date-header">{date1:date("' + _("l jS F") + '")}</th>'
			// # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions
			+ '  <th class="date-header">{date4:date("' + _("l jS F") + '")}</th>'
			+ '</tr>'
			+ '<tr style="height:25%;">'
			+ '  <td valign="top"><table id="date1">{date1_table_data}</table></td>'
			+ '  <td valign="top"><table id="date4">{date4_table_data}</table></td>'
			+ '</tr>'
			+ '<tr style="height:40px;">'
			// # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions
			+ '  <th class="date-header">{date2:date("' + _("l jS F") + '")}</th>'
			// # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions
			+ '  <th class="date-header">{date5:date("' + _("l jS F") + '")}</th>'
			+ '</tr>'
			+ '<tr style="height:25%;">'
			+ '  <td valign="top"><table id="date2">{date2_table_data}</table></td>'
			+ '  <td valign="top"><table id="date5">{date5_table_data}</table></td>'
			+ '</tr>'
			+ '<tr style="height:40px;">'
			// # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions
			+ '  <th class="date-header">{date3:date("' + _("l jS F") + '")}</th>'
			// # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions
			+ '  <th class="date-header">{date6:date("' + _("l jS F") + '")}</th>'
			+ '</tr>'
			+ '<tr>'
			+ '  <td valign="top" rowspan=3><table id="date4">{date3_table_data}</table></td>'
			+ '  <td valign="top" style="height:15%;"><table id="date6">{date6_table_data}</table></td>'
			+ '</tr>'
			+ '  <tr style="height:40px;">'
			// # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions
			+ '  <th class="date-header">{date7:date("' + _("l jS F") + '")}</th>'
			+ '</tr>'
			+ '<tr>'
			+ '  <td valign="top"><table id="date7">{date7_table_data}</table></td>'
			+ '</tr>';

		html += '</table>';

		// skipping page nr for now
		html += '<table id="bottom">'
			+ '<tr>'
			+ '<td class="nowrap" align=left>{fullname:htmlEncode}</td>'
			// # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions
			+ '<td class="nowrap" align=right>{currenttime:date("' + _("l jS F Y G:i") + '")}</td>'
			+ '</tr>'
			+ '</table>\n';

		return html;
	}
});