|
Castello Loches Visitare il Castello di Loches significa fare un vero e proprio tuffo nel passato, per scoprire una delle più belle città fortificate di Francia.
Situato nell’omonima città di Loches, nel dipartimento Indre-et-Loire della Valle della Loira, ha origini molto antiche, che risalgono al nono secolo.
Vuoi passare la notte al Castello o nei dintorni? Trova l’hotel che fa per te e prenota subito la tua notte fuoriporta!
Un po’ di storia…
Il Castello di Loches viene occupato da Enrico II d’Inghilterra e dal figlio, Riccardo I d’Inghilterra.
In una sala della loggia avviene poi l’incontro tra Giovanna d’Arco e il Delfino Carlo, che si convinse a recarsi in Francia per farsi consacrare re di Francia.
Il Re viene inoltre fortemente influenzato da Agnés Sorel, damigella di corte diventata sua amante, che gli impartisce utili consigli sulla gestione della sua politica, e che diventa la prima nobildonna ad essere riconosciuta come maitresse en titre, favorita ufficiale del Re; è possibile visitare la sua tomba negli appartamenti reali.
Agli inizi del XI secolo viene realizzato dai conti d’Angiò l’imponente torrione che, con i suoi 36 metri, è non solo il più imponente del suo tempo in tutta Europa, ma risulta tuttora il meglio conservato; Luigi XI lo trasformerà poi in prigione, dove vengono imprigionati importanti personaggi, come il cardinale Balue e Ludovico Sforza detto Il Moro, che muore proprio qui.
Durante la Rivoluzione Francese il Castello viene saccheggiato e danneggiato, i lavori di restauro iniziano solo nel 1806, ma di alcune parti attualmente restano solo le rovine.
Il Castello, di proprietà della città di Loches, è oggi aperto al pubblico.
Il castello…
Non appena si accede al Castello di Loches attraverso il torrione, il visitatore è immerso nell’ambiente carcerario del Medioevo… La torre di Luigi XI, le carceri, le segrete, le fortificazioni sotterranee ed i graffiti dei prigionieri riportano alla mente episodi di dura crudeltà.
Per contro, poco lontano dalla casa del Governatore, i giardini con i suoi pergolati, prati e panchine, sembrano in qualche modo oscurare l’ambiente oppressivo che si respirava all’interno.
La loggia reale, splendido gioiello del Rinascimento francese e residenza prediletta della dinastia dei Valois, è composta da una torre nella parte sinistra, una costruzione con feritoie e torre di guardia al centro ed un padiglione di caccia a destra.
Al suo interno troviamo una tappezzeria fiamminga che rappresenta gli strumenti musicali, un ritratto di Carlo V, la prestigiosa “Passione di Cristo“, attribuita a Jehan Poyet intorno al XV secolo, e la tomba in marmo bianco di Agnés Sorel, decorata con sculture del XV secolo.
Nella Tour du Martelet si trovano la prigione e la stanza delle torture. Attraverso una scala stretta si raggiunge il torrione, dal quale si può ammirare una veduta panoramica di tutto il complesso.
All’interno del complesso sorge inoltre una chiesa in stile romanico, la Collegiata di Saint Ours, dalle forme decisamente singolari, in cui venne sepolto Ludovico il Moro, che si innalza al centro degli edifici con i suoi due campanili.
|
Date.MILLISECONDS_PER_DAY = Date.prototype.MILLISECONDS_PER_DAY = 86400000;
var browser = navigator.appName
var version = navigator.appVersion
var startstring = parseFloat(version.indexOf("MSIE"))+1
var browserverion = parseFloat(version.substring(startstring+4,startstring+7))
var isIE5 = ((browser=="Microsoft Internet Explorer") && (browserverion < 6))? true : false; var isIE6 = ((browser=="Microsoft Internet Explorer") && (browserverion > 5.5) && (browserverion < 6))? true : false; // Put placeholder in destination input box if empty, and remove when focused var destination = document.getElementById('destination'); destination.onblur = function () { if (!this.value) { this.value = this.getAttribute('title'); this.className += ' blur'; } } destination.onfocus = function () { if (this.value == this.getAttribute('title')) { this.value = ''; this.className = this.className.replace(/ blur/, ''); } } destination.onblur(); function tickCheckBox(el) { if (document.getElementById) { if (document.getElementById(el)) { document.getElementById(el).checked = false; } } return true; } Date.prototype.getTwoDigitMonth = function () { // Returns a two-digit string from '01' to '12' representing the month property of a Date object. var month = (this.getMonth() + 1).toFixed().toString(); if (month.length == 1) { month = '0' + month; } return month; }; function checkDateOrder(me, ci_day, ci_month_year, co_day, co_month_year) { var frm = document.getElementById('frm'), my, ci = new Date( 0 ), co = new Date( 0 ), com, today = new Date(); // create date object from checkin values // set date to 12:00 to avoid problems with one // date being wintertime and the other summertime if ( frm[ci_day].value !== '0' ) { ci.setDate( frm[ci_day].value ); } if ( frm[ci_month_year].value !== '0' ) { my = frm[ci_month_year].value.split( "-" ); ci.setFullYear( my[0] ); ci.setMonth( my[1] - 1 ); } ci.setHours( 12 ); ci.setMinutes( 0 ); ci.setSeconds( 0 ); // create date object from checkout values if ( frm[co_day].value !== '0' ) { co.setDate( frm[co_day].value ); } if ( frm[co_month_year].value !== '0' ) { my = frm[co_month_year].value.split( "-" ); co.setFullYear( my[0] ); co.setMonth( my[1] - 1 ); } co.setHours( 12 ); co.setMinutes( 0 ); co.setSeconds( 0 ); // If the new checkin date's month does not match // the current value of the dropdown, then it is // because the month was incremented creating an // invalid date (e.g. February 31st). // We'll cycle back the checkin date until we're in // the correct month. if ( frm[ci_month_year].value !== '0' ) { while ( ci.getMonth() != frm[ci_month_year].value.split( "-" )[1] - 1 ) { ci.setDate( ci.getDate() - 1 ); frm[ci_day].value = ci.getDate(); } var cim = ci.getMonth() + 1; frm[ci_month_year].value = ci.getFullYear() + "-" + cim; } // if checkin date is at or after checkout date, // add a day full of milliseconds, and set the // selectbox values for checkout date to new value if ( ci >= co )
{
co.setTime( ci.getTime() + Date.prototype.MILLISECONDS_PER_DAY );
com = co.getMonth() + 1;
if ( frm[ci_day].value !== '0' )
{
frm[co_day].value = co.getDate();
}
if ( frm[ci_month_year].value !== '0' )
{
frm[co_month_year].value = co.getFullYear() + "-" + com;
}
}
}
function updateDaySelect( me )
{
// 1-2 testing
if ( !booking.env.b_simple_weekdays_for_js )
{
return;
}
var frm = document.getElementById('frm');
if ( frm.getAttribute( 'id' ) !== 'frm' && frm.className !== 'availForm' )
{
return;
}
// Check if we have all fields. If not, we are in the first stage
// of the book process and should not auto-update selects since there
// is only the check-in select and the amount of nights.
if ( !frm.checkin_monthday || !frm.checkout_monthday || !frm.checkin_year_month || !frm.checkout_year_month )
{
return;
}
if ( frm.checkin_monthday.value === '0' && frm.checkout_monthday.value === '0' && frm.checkin_year_month.value === '0' && frm.checkout_year_month.value === '0' )
{
return;
}
// If the year-month fields have nonzero values, prepend the day of the week to each monthday in the check-in and check-out monthday Selects.
var
ci_d = frm.checkin_monthday,
co_d = frm.checkout_monthday,
ci_my,
co_my,
todaysDate;
// If the form field has a nonzero value, use it;
if ( frm.checkin_year_month.value !== '0' )
{
ci_my = frm.checkin_year_month.value.split( "-" );
}
else
{
// Use the current date value.
todaysDate = new Date();
ci_my = [ todaysDate.getFullYear(), todaysDate.getTwoDigitMonth() ];
}
if ( frm.checkout_year_month.value !== '0' )
{
co_my = frm.checkout_year_month.value.split( "-" );
}
else
{
todaysDate = new Date();
co_my = [ todaysDate.getFullYear(), todaysDate.getTwoDigitMonth() ];
}
var
ci_sel = Math.max( ci_d.selectedIndex, 0 ),
co_sel = Math.max( co_d.selectedIndex, 0 ),
ci_sel_value = ci_d[ ci_sel ].value,
co_sel_value = co_d[ co_sel ].value,
monthDays = [],
opt,
i;
ci_d.innerHTML = '';
co_d.innerHTML = '';
var MonthdayPromptOption = function ()
{
this.option = {
"_this" : this,
"@selected" : "selected",
"@class" : "day prompt site_experiment_encourage_date_entry_2",
"@value" : 0,
"#text" : "giorno"
};
};
if ( ci_sel_value === '0' )
{
buildHtmlNode( new MonthdayPromptOption(), ci_d ).selected = true;
}
if ( co_sel_value === '0' )
{
buildHtmlNode( new MonthdayPromptOption(), co_d ).selected = true;
}
function writeMonthdaysOptions( numberOfMonthdaysToShow, yearMonthSelectElement, monthDaysArray, monthDaysSelectElement, monthDaySelectValue )
{
var i, optionElementInnerHTML, optionElement;
for ( i = 0; i < numberOfMonthdaysToShow; i++ ) { optionElement = document.createElement( 'option' ); optionElementInnerHTML = i + 1; if ( yearMonthSelectElement.value !== '0' ) { optionElementInnerHTML = monthDaysArray[i] + ' ' + optionElementInnerHTML; } optionElement.innerHTML = optionElementInnerHTML; optionElement.value = ( i + 1 ); if ( i > 0 && monthDaySelectValue == i + 1 )
{
optionElement.defaultSelected = optionElement.selected = true;
}
monthDaysSelectElement.appendChild( optionElement );
}
}
// Check-in month
monthDays = buildDaysForMonth( ci_my[0], ci_my[1] );
var numberOfMonthdaysToShow = 31;
if ( frm.checkin_year_month.value !== '0' )
{
numberOfMonthdaysToShow = monthDays.length;
}
writeMonthdaysOptions( numberOfMonthdaysToShow, frm.checkin_year_month, monthDays, ci_d, ci_sel_value );
// Checkout month
monthDays = buildDaysForMonth( co_my[0], co_my[1] );
numberOfMonthdaysToShow = 31;
if ( frm.checkout_year_month.value !== '0' )
{
numberOfMonthdaysToShow = monthDays.length;
}
writeMonthdaysOptions( numberOfMonthdaysToShow, frm.checkout_year_month, monthDays, co_d, co_sel_value );
// IE 6 exhibits a bug whereby the value of the monthday select always jumps to zero.
if (isIE6) {
ci_d.value = ci_sel_value;
co_d.value = co_sel_value;
}
}
function buildDaysForMonth( year, month )
{
// Month index starts on 0(-11) in Date()-object
var monthDate = new Date( year, month - 1 );
var orgMonth = monthDate.getMonth();
var dayArray = [], weekDay;
while ( monthDate.getMonth() == orgMonth )
{
// Week starts on Sunday in Date()-object
weekDay = ( monthDate.getDay() == 0 ) ? 6 : ( monthDate.getDay() - 1 );
dayArray.push( booking.env.b_simple_weekdays_for_js[weekDay] );
monthDate.setDate( monthDate.getDate() + 1 );
}
return dayArray;
}
function buildHtmlNode (elementsObject, targetNode, refChild)
{
/*
Accepts an object of elements where the key specifies the tagname unless prefixed by @, in which case it specifies an attribute of the parent, or when it is #cdata, in which case it specifies a CDATA child.
http://xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html
The big flaw now is the case , which cannot be represented as a JS object. In that case interject an array of generic div or span elements.
*/
// If we want to validate as JSON, we must make sure what we pass in is JSON, which it presently isnot.
//elementsObject = booking.json.validate(elementsObject);
var
key,
counter,
found,
newElement,
newNode;
for (key in elementsObject)
{
if (elementsObject.hasOwnProperty(key))
{
var
prefix = key.substring(0, 1),
primaryKey = key.substring(1);
if (prefix != '_') // We窶决e on a non-DOM key, so skip.
{
if (prefix == '@') // Attribute
{
if (!targetNode.getAttribute(primaryKey))
{
// Perhaps extend this in the future to support multiple class values.
targetNode.setAttribute(primaryKey, elementsObject[key]);
}
}
else
{
if (prefix == '#') // Text or CDATA
{
if (primaryKey == 'text') // Text
{
found = false;
if (targetNode.childNodes && targetNode.childNodes.length > 0)
{
// Traverse text node children and append only if it isn窶冲 already there.
counter = 0;
while (counter < targetNode.childNodes.length && !found)
{
if (targetNode.childNodes[counter].nodeType == Node.TEXT_NODE && targetNode.childNodes[counter].nodeValue == elementsObject[key])
{
found = true;
}
counter++;
}
}
if (!found)
{
// MGP 040209: Cope with strings split by linebreaks - need to insert elements
if ( elementsObject[key].indexOf("\n") == -1 )
{
newNode = document.createTextNode(elementsObject[key]);
if (refChild)
{
targetNode.insertBefore(newNode, refChild);
}
else
{
targetNode.appendChild(newNode);
}
}
else
{
// Found some linebreaks - split the string into component parts
var newNodeParts = elementsObject[key].split("\n");
// Loop through the parts, adding a linebreak after each one (except the last one)
for ( var i = 0; i < newNodeParts.length; i++ )
{
// Check for the existence of a star rating in the text node
if ( newNodeParts[i].match(/\d\*$/) )
{
// Found a star rating - extract the star
lastSpace = newNodeParts[i].lastIndexOf(" ");
newNodeString = newNodeParts[i].substring( 0, lastSpace );
starImgSrc = 'http://q.bstatic.com/static/img/icons/stars/' + newNodeParts[i].substr( lastSpace + 1, 1 ) + 'sterren-small.png';
}
else
{
newNodeString = newNodeParts[i];
starImgSrc = '';
}
newNode = document.createTextNode(newNodeString);
if (refChild)
{
targetNode.insertBefore(newNode, refChild);
if ( starImgSrc )
{
newImg = document.createElement('img');
newImg.setAttribute('src', starImgSrc);
newImg.className = "stars";
targetNode.insertBefore(newImg, refChild);
}
}
else
{
targetNode.appendChild(newNode);
if ( starImgSrc )
{
newImg = document.createElement('img');
newImg.setAttribute('src', starImgSrc);
newImg.className = "stars";
targetNode.appendChild(newImg);
}
}
if ( i < newNodeParts.length - 1)
{
// Add a
newBR = document.createElement("br");
if (refChild)
{
targetNode.insertBefore(newBR, refChild);
}
else
{
targetNode.appendChild(newBR);
}
}
}
}
}
}
else
{
if (primaryKey == 'cdata') // CDATA
{
targetNode.appendChild(document.createCDATASection(elementsObject[key]));
}
}
}
else // Element
{
// If targetNode was passed into this function, append the new child to it窶ヲ
if (targetNode)
{
// If elementsObject[key] is an array, we窶冤l create an element of type key for each array member.
if (elementsObject[key].length > 0)
{
for (counter = 0; counter < elementsObject[key].length; counter++)
{
if (elementsObject[key][counter])
{
if (!elementsObject[key][counter]._node)
{
newElement = document.createElement(key);
elementsObject[key][counter]._node = newElement;
var r = counter + 1;
while (r < elementsObject[key].length && !refChild)
{
if (elementsObject[key][r])
{
refChild = elementsObject[key][r]._node;
}
r++;
}
if (refChild)
{
newNode = targetNode.insertBefore(
elementsObject[key][counter]._node,
refChild);
}
else
{
newNode = targetNode.appendChild(
elementsObject[key][counter]._node);
}
arguments.callee(
elementsObject[key][counter],
newNode);
newElement._elementTree = elementsObject[key][counter];
}
else
{
arguments.callee(
elementsObject[key][counter],
elementsObject[key][counter]._node);
}
}
}
}
else
{
if (elementsObject[key].length !== 0)
{
if (!elementsObject[key]._node)
{
newElement = document.createElement(key);
elementsObject[key]._node = newElement;
if (refChild)
{
newNode = targetNode.insertBefore(
elementsObject[key]._node,
refChild);
}
else
{
newNode = targetNode.appendChild(
elementsObject[key]._node);
}
arguments.callee(
elementsObject[key],
newNode);
newElement._elementTree = elementsObject;
}
else
{
arguments.callee(
elementsObject[key],
elementsObject[key]._node);
}
}
}
}
// else create the new element as targetNode.
else
{
if (!elementsObject[key]._node)
{
arguments.callee(elementsObject[key],
elementsObject[key]._node = targetNode = document.createElement(key));
}
else
{
arguments.callee(elementsObject[key],
elementsObject[key]._node);
}
}
}
}
}
}
}
return targetNode;
};
|