/** =============================================================================
 * included in ark-template-2
 ===============================================================================*/

/**
 * Load predical calendar info from server
 *
 * @param firstTime
 */
function loadCalendar(firstTime, yearSelected, itemUrl)
{
	var xmlHttp = getAjaxXmlHttpRequest();
	xmlHttp.onreadystatechange = function()
															 {
																	if(xmlHttp.readyState == 4)
																	{
																		var response = xmlHttp.responseText;
																		//alert(response);
																		var array = response.split('\n');
																		for(var i = 0; i < array.length - 1; i++)
																		{
																			var subArray = array[i].split('|');
																			dates_disp[0][i] = parseInt(subArray[0]);
																			dates_disp[1][i] = parseInt(subArray[1]);
																			dates_disp[2][i] = parseInt(subArray[2]);
																			dates_disp[3][i] = subArray[3];
																			dates_disp[4][i] = subArray[4];
																			dates_disp[5][i] = subArray[5];
																			dates_disp[6][i] = subArray[6];

																			// find the first date which has imagette
																			if(i==0 && preselect_month == '')
																			{
																				preselect_month = dates_disp[1][i];
																				preselect_day = dates_disp[2][i];
																			}
																		}
																		nb_dates_disp = dates_disp[0].length;
																		if(firstTime)
																		{
																			init_calendar_values();
																			construct_dropdown_year();
																		}
																		else
																		{
																			var first_month = 0;
																			if(dates_disp[1][0])
																			{
																				first_month = dates_disp[1][0] - 1;
																			}
																			var first_day = 0;
																			if(dates_disp[2][0])
																			{
																				first_day = dates_disp[2][0];
																			}
																			var url = dates_disp[4][0];
																			//itemUrl = url;
																			on_change_year(yearSelected,first_month,first_day);
																			hasBitstream = true;
																			loadFasciculeDetail(url);
																		}
																	}
																}
	var requestUrl = '../../periodical-ref?itemURL=' + itemUrl + '&year=' + yearSelected;
	//alert(requestUrl);
	xmlHttp.open('get', requestUrl, true);
	xmlHttp.send(null);
}

/**
 * Get month display text list
 *
 * @parm shortPage, if the page is displayed in dspace search prototype interface (publication-search)
 * @parm lang, <code>en</code> for English, <code>fr</code> for french
 * @return list of month display text
 */
function getMonthTextList(shortPage, lang)
{
	var month = null;
	if(lang == "en")
	{
		if(shortPage)
		{
			month = new Array("Jan.", "Feb.", "March", "April", "May", "June", "July", "August", "Sep.", "Oct.", "Nov.", "Dec.");
		}
		else
		{
			month = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
		}
	}
	else
	{
		if(shortPage)
		{
			month = new Array("Jan.","F&eacute;v.","Mars","Avril","Mai","Juin","Juil.","Ao&ucirc;t","Sep.","Oct.","Nov.","D&eacute;c.");
		}
		else
		{
			month = new Array("Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet","Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");
		}
	}
	return month;
}

/**
 * Handle changes from the year select object.
 * Reload calendar data for the selected year.
 */
function doYearChange()
{
	var calendarForm = document.forms['calendar'];
	var yearFld = calendarForm.elements['year'];
	var yearSelectedIndex = yearFld.options.selectedIndex;
	var yearSelected = yearFld.options[yearSelectedIndex].value;
	loadCalendar(false, yearSelected, itemUrl);
}

/**
 * Display calendar month list.
 *
 * @param shortPage if the page is displayed in dspace search prototype interface (publication-search)
 */
function showMonthList(shortPage)
{
	var cssClass = shortPage ? 'calendar_s' : 'calendar';
	var htmlCode = '';
	for (var i=0; i<month.length;++i)
	{
		htmlCode = htmlCode + '<a href="change_month();" class="' + cssClass + '" id="m_' + i + '">' + month[i] + '</a>';
		htmlCode = htmlCode + '\n';
	}
	document.getElementById('monthBar').innerHTML = htmlCode;
}

/**
 * Display calendar day list.
 *
 * @param shortPage if the page is displayed in dspace search prototype interface (publication-search)
 */
function showDayList(shortPage)
{
	var cssClass = shortPage ? 'calendar_day_s' : 'calendar';
	var htmlCode = '';
	for (var i=1; i<=nb_jours; ++i)
	{
		htmlCode = htmlCode + '<a href="#" onclick="return link_url(' + i + ')" class="' + cssClass + '" id="d_' + i + '" onmouseover="display_thumbs(' + i + ')" onmouseout="dayMouseOut(' + i + ')">' + [i] + '</a>';
		htmlCode = htmlCode + '\n';
	}
	document.getElementById('dayBar').innerHTML = htmlCode;

	for (var j=1; j<=nb_jours; ++j)
	{
		var d_id="d_" + j;
		document.getElementById(d_id).style.visibility = 'visible';
	}
}

/**
 * Initialize calendar display section. Should be called when the page is loaded.
 *
 * @param shortPage if the page is displayed in dspace search prototype interface (publication-search)
 * @param itemUrl the url of the current displayed item.
 */
function initializeCalendarDisplay(shortPage, itemUrl)
{
	showMonthList(shortPage);
	showDayList(shortPage);
	if (preselect_year)
	{
		loadCalendar(true, preselect_year, itemUrl);
	}
	else
	{
		loadCalendar(true, perio_years[0], itemUrl);
	}
	loadFasciculeDetail(itemUrl);
}

/**
 * Replace "arks:" in url by "arks:".
 * For temporary usage only, can be deleted when the new refactored templates are in place.
 *
 * @param itemUrl the url of the current displayed item.
 *
 */
function getArkUrl(itemUrl)
{
	var currentUrl = location.href;

	if(currentUrl.indexOf('arks:') > 0)
	{
		return itemUrl.replace('ark:', 'arks:');
	}
	else return itemUrl;
}

/**
 * Display pdf file in the preview section
 *
 * @param itemUrl the url of the current displayed item.
 * @param keyword searched keyword, used when displayed in banq dspace search prototype interface (publication-search).
 */
function showItemWithPdfPreview(itemUrl, keyword)
{
	createCookie('bsPreviewMode', 'pdf', -1)
	var url = getArkUrl(itemUrl) + '?mode=bspreview&type=pdf';
	if(keyword && keyword.length > 0) url = url + '&keyword=' + keyword;
	location.href = url;
	return false;
}

/**
 * Display file in flipbook mode in the preview section
 *
 * @param itemUrl the url of the current displayed item.
 * @param keyword searched keyword, used when displayed in banq dspace search prototype interface (publication-search).
 */
function showItemWithFlipbookPreview(itemUrl, keyword)
{
	createCookie('bsPreviewMode', 'flipbook', -1)
	var url = getArkUrl(itemUrl) + '?mode=bspreview&type=flipbook';
	if(keyword && keyword.length > 0) url = url + '&keyword=' + keyword;
	location.href = url;
	return false;
}

function showItemWithHightDefinitionPreview(itemUrl, keyword)
{
	createCookie('bsPreviewMode', 'hd', -1)
	var url = getArkUrl(itemUrl) + '?mode=bspreview&type=hd';
	if(keyword && keyword.length > 0) url = url + '&keyword=' + keyword;
	location.href = url;
	return false;
}

/**
 * Display a flash object (for a flipbook preview)
 *
 * @param fsiFile url to find the fsiFile
 * @param pageWidth width of the flash object area in pixel
 * @parm lang, <code>en</code> for English, <code>fr</code> for french
 *
 */
function showFlipbook(fsiFile, pageWidth, lang)
{
	var fsiurl = 'http://images.banq.qc.ca/erez4/fsi4/fsi.swf';
	fsiurl = fsiurl + '?pages_server=';
	fsiurl = fsiurl + 'http://images.banq.qc.ca/erez4';
	fsiurl = fsiurl + '&FPXBase=';
	fsiurl = fsiurl + 'http://images.banq.qc.ca/erez4%2Ferez%3Fsrc%3D&cfg=' + fsiFile;
	fsiurl = fsiurl + '&pages_InitialPage=1&slider=false&pages_pagecolor=FFFFFF&pages_zoom=1&pages_ButtonsFirstLastPage=1&pages_print=0';
	fsiurl = fsiurl + '&pages_save=0&pages_search=0&MouseModes_Mode2=0&pages_pagebordercolor=FFFFFF&pages_PageNumColor=000000&pages_PageNumBGColor=FFFFFF';
	fsiurl = fsiurl + '&NavWidth=100&MenuAlign=TL&Language=' + (lang == 'en' ? 'english' : 'french');
	fsiurl = fsiurl + '&effects=%26quality%3D100&MouseModes_Mode3=false&MouseModes_Mode2=false&Skin=mcc&Zoommeter_SrcRelative=true';
	fsiurl = fsiurl + '&HelpUrl=http://www.banq.qc.ca/portal/dt/aide/Pistard-visualiseur/visualiseur.jsp&HelpURLTarget=_blank&pages_BendEffect=none';

	var fallbackimg = 'http://images.banq.qc.ca/erez4/erez?src=erez-private/flashrequired.svg&tmp=Large&quality=95&redirect=0&expire=0&width=800&height=450';
	var parameters = 'width=' + pageWidth + ';height=450;bgcolor=FFFFFF;wmode=transparent';

	writeFlashCode(fsiurl, fallbackimg, parameters);
}

