if(typeof Effect=='undefined')
throw("lightwindow.js requires including script.aculo.us' effects.js library!");
try {
document.execCommand("BackgroundImageCache", false, true);
} catch(e){}
var lightwindow = Class.create();	
lightwindow.prototype = {
element : null,
contentToFetch : null,
windowActive : false,
dataEffects : [],
dimensions : {
cruft : null,
container : null,
viewport : {
height : null,
width : null,
offsetTop : null,
offsetLeft : null
}},
pagePosition : {
x : 0,
y : 0
},
pageDimensions : {
width : null,
height : null
},
preloadImage : [],
preloadedImage : [],
galleries : [],
resizeTo : {
height : null,
heightPercent : null,
width : null,
widthPercent : null,
fixedTop : null,
fixedLeft : null
},
scrollbarOffset : 18,
navigationObservers : {
previous : null,
next : null
},
containerChange : {
height : 0,
width : 0
},
activeGallery : false,
galleryLocation : {
current : 0,
total : 0
},
initialize : function(options){
this.options = Object.extend({
resizeSpeed : 8,
contentOffset : {
height : 20,
width : 20
},
dimensions : {
image : {height : 250, width : 250},
page : {height : 250, width : 250},
inline : {height : 250, width : 250},
media : {height : 250, width : 250},
external : {height : 250, width : 250},
titleHeight : 25
},
classNames : {	
standard : 'lightwindow',
action : 'lightwindow_action'
},
fileTypes : {
page : ['asp', 'aspx', 'cgi', 'cfm', 'htm', 'html', 'pl', 'php4', 'php3', 'php', 'php5', 'phtml', 'rhtml', 'shtml', 'txt', 'vbs', 'rb'],
media : ['aif', 'aiff', 'asf', 'avi', 'divx', 'm1v', 'm2a', 'm2v', 'm3u', 'mid', 'midi', 'mov', 'moov', 'movie', 'mp2', 'mp3', 'mpa', 'mpa', 'mpe', 'mpeg', 'mpg', 'mpg', 'mpga', 'pps', 'qt', 'rm', 'ram', 'swf', 'viv', 'vivo', 'wav'],
image : ['bmp', 'gif', 'jpg', 'png', 'tiff']
},
mimeTypes : {
avi : 'video/avi',
aif : 'audio/aiff',
aiff : 'audio/aiff',
gif : 'image/gif',
bmp : 'image/bmp',
jpeg : 'image/jpeg',
m1v : 'video/mpeg',
m2a : 'audio/mpeg',
m2v : 'video/mpeg',
m3u : 'audio/x-mpequrl',
mid : 'audio/x-midi',
midi : 'audio/x-midi',
mjpg : 'video/x-motion-jpeg',
moov : 'video/quicktime',
mov : 'video/quicktime',
movie : 'video/x-sgi-movie',
mp2 : 'audio/mpeg',
mp3 : 'audio/mpeg3',
mpa : 'audio/mpeg',
mpa : 'video/mpeg',
mpe : 'video/mpeg',
mpeg : 'video/mpeg',
mpg : 'audio/mpeg',
mpg : 'video/mpeg',
mpga : 'audio/mpeg',
pdf : 'application/pdf',
png : 'image/png',
pps : 'application/mspowerpoint',
qt : 'video/quicktime',
ram : 'audio/x-pn-realaudio-plugin',
rm : 'application/vnd.rn-realmedia',
swf	: 'application/x-shockwave-flash',
tiff : 'image/tiff',
viv : 'video/vivo',
vivo : 'video/vivo',
wav : 'audio/wav',
wmv : 'application/x-mplayer2'			
},	
classids : {
mov : 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
swf : 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000',
wmv : 'clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6'
},
codebases : {
mov : 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
swf : 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0',
wmv : 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715'
},	
viewportPadding : 10,
EOLASFix : 'swf,wmv,fla,flv',
overlay : {
opacity : 0.7,
image : 'images/black.png',
presetImage : 'images/black-70.png'
},
skin : 	{
main : 	'<div id="lightwindow_container" >'+
'<div id="lightwindow_title_bar" >'+
'<div id="lightwindow_title_bar_inner" >'+
'<span id="lightwindow_title_bar_title"></span>'+
'<a id="lightwindow_title_bar_close_link" title="Fermer"><img src="images/lightwindow/fermer.png" alt="Fermer" onmouseover="survolFermer()" onmouseout="sortieFermer()" id="FermerLightWindow" /></a>'+
'</div>'+
'</div>'+
'<div id="lightwindow_stage" >'+
'<div id="lightwindow_contents" >'+
'</div>'+
'<div id="lightwindow_navigation" >'+
'<a href="#" id="lightwindow_previous" >'+
'<span id="lightwindow_previous_title"></span>'+
'</a>'+
'<a href="#" id="lightwindow_next" >'+
'<span id="lightwindow_next_title"></span>'+
'</a>'+
'<iframe name="lightwindow_navigation_shim" id="lightwindow_navigation_shim" src="javascript:false;" frameBorder="0" scrolling="no"></iframe>'+
'</div>'+								
'<div id="lightwindow_galleries">'+
'<div id="lightwindow_galleries_tab_container" >'+
'<a href="#" id="lightwindow_galleries_tab" >'+
'<span id="lightwindow_galleries_tab_span" class="up" >Galleries</span>'+
'</a>'+
'</div>'+
'<div id="lightwindow_galleries_list" >'+
'</div>'+
'</div>'+
'</div>'+
'<div id="lightwindow_data_slide" >'+
'<div id="lightwindow_data_slide_inner" >'+
'<div id="lightwindow_data_details" >'+
'<div id="lightwindow_data_gallery_container" >'+
'<span id="lightwindow_data_gallery_current"></span>'+
' of '+
'<span id="lightwindow_data_gallery_total"></span>'+
'</div>'+
'<div id="lightwindow_data_author_container" >'+
'by <span id="lightwindow_data_author"></span>'+
'</div>'+
'</div>'+
'<div id="lightwindow_data_caption" >'+
'</div>'+
'</div>'+
'</div>'+
'</div>',	
loading : 	'<div id="lightwindow_loading" >'+
'<img src="images/lightwindow/loader.gif" alt="Chargement en cours..." />'+
'<span><a href="javascript:myLightWindow.deactivate();">Annuler</a></span>'+
'<iframe name="lightwindow_loading_shim" id="lightwindow_loading_shim" src="javascript:false;" frameBorder="0" scrolling="no"></iframe>'+
'</div>',
iframe : 	'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'+
'<html xmlns="http://www.w3.org/1999/xhtml">'+
'<body>'+
'{body_replace}'+
'</body>'+
'</html>',
gallery : {
top :		'<div class="lightwindow_galleries_list">'+
'<h1>{gallery_title_replace}</h1>'+
'<ul>',
middle : 			'<li>'+
'{gallery_link_replace}'+
'</li>',
bottom : 		'</ul>'+
'</div>'
}},
formMethod : 'get',
hideFlash : false,
hideGalleryTab : false,
showTitleBar : true,
animationHandler : false,
navigationHandler : false,
transitionHandler : false,
finalAnimationHandler : false,
formHandler : false,
galleryAnimationHandler : false,
showGalleryCount : true
}, options || {});
this.duration = ((11-this.options.resizeSpeed)*0.15);
this._setupLinks();
this._getScroll();
this._getPageDimensions();
this._browserDimensions();
this._addLightWindowMarkup(false);
this._setupDimensions(); 
this.buildGalleryList();
},
activate : function(e, link){		
this._clearWindowContents(true);
this._addLoadingWindowMarkup();
this._setupWindowElements(link);
this._getScroll();
this._browserDimensions();
this._setupDimensions();
this._toggleTroubleElements('hidden', false);
this._displayLightWindow('block', 'hidden');
this._setStatus(true);
this._monitorKeyboard(true);
this._prepareIE(true);
this._loadWindow();
},
deactivate : function(){
this.windowActive = false;
this.activeGallery = false;
if(!this.options.hideGalleryTab){
this._handleGalleryAnimation(false);
}
this.animating = false;
this.element = null;
this._displayLightWindow('none', 'visible');
this._clearWindowContents(false);
var queue = Effect.Queues.get('lightwindowAnimation').each(function(e){e.cancel();});
this._prepareIE(false);
this._setupDimensions();
this._toggleTroubleElements('visible', false);	
this._monitorKeyboard(false);	
},
createWindow : function(element, attributes){
this._processLink($(element));
},
activateWindow : function(options){
this.element = Object.extend({
href : null,
title : null,
author : null,
caption : null,
rel : null,
top : null,
left : null,
type : null,
showImages : null,
height : null,
width : null,
loadingAnimation : null,
iframeEmbed : null,
form : null
}, options || {});
this.contentToFetch = this.element.href;
this.windowType = this.element.type ? this.element.type : this._fileType(this.element.href);	
this._clearWindowContents(true);
this._addLoadingWindowMarkup();
this._getScroll();
this._browserDimensions();
this._setupDimensions();
this._toggleTroubleElements('hidden', false);
this._displayLightWindow('block', 'hidden');
this._setStatus(true);
this._monitorKeyboard(true);
this._prepareIE(true);
this._loadWindow();
},
submitForm : function(e){
if(this.options.formHandler){
this.options.formHandler(e);
}else{
this._defaultFormHandler(e);
}},
openWindow : function(element){
var element = $(element);
this.windowActive = true;
this._clearWindowContents(true);
this._addLoadingWindowMarkup();
this._setupWindowElements(element);
this._setStatus(true);
this._handleTransition();
},
navigateWindow : function(direction){
this._handleNavigation(false);
if(direction=='previous'){
this.openWindow(this.navigationObservers.previous);
} else if(direction=='next'){ 
this.openWindow(this.navigationObservers.next);
}},
buildGalleryList : function(){
var output = '';
var galleryLink;
for (i in this.galleries){
if(typeof this.galleries[i]=='object'){
output+=(this.options.skin.gallery.top).replace('{gallery_title_replace}', unescape(i));
for (j in this.galleries[i]){
if(typeof this.galleries[i][j]=='object'){						
galleryLink = '<a href="#" id="lightwindow_gallery_'+i+'_'+j+'" >'+unescape(j)+'</a>';
output+=(this.options.skin.gallery.middle).replace('{gallery_link_replace}', galleryLink);
}}
output+=this.options.skin.gallery.bottom;
}}
new Insertion.Top('lightwindow_galleries_list', output);
for (i in this.galleries){
if(typeof this.galleries[i]=='object'){
for (j in this.galleries[i]){
if(typeof this.galleries[i][j]=='object'){
Event.observe($('lightwindow_gallery_'+i+'_'+j), 'click', this.openWindow.bind(this, this.galleries[i][j][0]), false);
$('lightwindow_gallery_'+i+'_'+j).onclick = function(){return false;};	
}}
}}
},
_setupLinks : function(){
var links = $$('.'+this.options.classNames.standard);
links.each(function(link){
this._processLink(link);
}.bind(this));	
},
_processLink : function(link){
if((this._fileType(link.getAttribute('href'))=='image' || this._fileType(link.getAttribute('href'))=='media')){
if(gallery = this._getGalleryInfo(link.rel)){
if(!this.galleries[gallery[0]]){
this.galleries[gallery[0]] = new Array();
}
if(!this.galleries[gallery[0]][gallery[1]]){
this.galleries[gallery[0]][gallery[1]] = new Array();
}
this.galleries[gallery[0]][gallery[1]].push(link);
}}
var url = link.getAttribute('href');
if(url.indexOf('?') > -1){
url = url.substring(0, url.indexOf('?'));
}
var container = url.substring(url.indexOf('#')+1);
if($(container)){
$(container).setStyle({
display : 'none'
});
}
Event.observe(link, 'click', this.activate.bindAsEventListener(this, link), false);
link.onclick = function(){return false;};		
},
_setupActions : function(){
var links = $$('#lightwindow_container .'+this.options.classNames.action);
links.each(function(link){
Event.observe(link, 'click', this[link.getAttribute('rel')].bindAsEventListener(this, link), false);
link.onclick = function(){return false;};
}.bind(this));
},
_addLightWindowMarkup : function(rebuild){
var overlay = Element.extend(document.createElement('div'));
overlay.setAttribute('id', 'lightwindow_overlay');		
if(Prototype.Browser.Gecko){
overlay.setStyle({
backgroundImage: 'url('+this.options.overlay.presetImage+')',
backgroundRepeat: 'repeat',
height: this.pageDimensions.height+'px'
});			
}else{
overlay.setStyle({
opacity: this.options.overlay.opacity,
backgroundImage: 'url('+this.options.overlay.image+')',
backgroundRepeat: 'repeat',
height: this.pageDimensions.height+'px'
});
}
var lw = document.createElement('div');
lw.setAttribute('id', 'lightwindow');
lw.innerHTML = this.options.skin.main;
var body = document.getElementsByTagName('body')[0];
body.appendChild(overlay);
body.appendChild(lw);	
if($('lightwindow_title_bar_close_link')){
Event.observe('lightwindow_title_bar_close_link', 'click', this.deactivate.bindAsEventListener(this));
$('lightwindow_title_bar_close_link').onclick = function(){return false;};
}
Event.observe($('lightwindow_previous'), 'click', this.navigateWindow.bind(this, 'previous'), false);
$('lightwindow_previous').onclick = function(){return false;};		
Event.observe($('lightwindow_next'), 'click', this.navigateWindow.bind(this, 'next'), false);
$('lightwindow_next').onclick = function(){return false;};
if(!this.options.hideGalleryTab){
Event.observe($('lightwindow_galleries_tab'), 'click', this._handleGalleryAnimation.bind(this, true), false);
$('lightwindow_galleries_tab').onclick = function(){return false;};
}
if(Prototype.Browser.IE){
Event.observe(document, 'mousewheel', this._stopScrolling.bindAsEventListener(this), false);
}else{
Event.observe(window, 'DOMMouseScroll', this._stopScrolling.bindAsEventListener(this), false);
}
Event.observe(overlay, 'click', this.deactivate.bindAsEventListener(this), false);
overlay.onclick = function(){return false;};
},
_addLoadingWindowMarkup : function(){
$('lightwindow_contents').innerHTML+=this.options.skin.loading;
},
_setupWindowElements : function(link){
this.element = link;
this.element.title = null ? '' : link.getAttribute('title');
this.element.author = null ? '' : link.getAttribute('author');
this.element.caption = null ? '' : link.getAttribute('caption');
this.element.rel = null ? '' : link.getAttribute('rel');
this.element.params = null ? '' : link.getAttribute('params');
// Set the window type
this.contentToFetch = this.element.href;
this.windowType = this._getParameter('lightwindow_type') ? this._getParameter('lightwindow_type') : this._fileType(this.contentToFetch);	
},
_clearWindowContents : function(contents){
if($('lightwindow_iframe')){
Element.remove($('lightwindow_iframe'));
}
if($('lightwindow_media_primary')){
try {
$('lightwindow_media_primary').Stop();
} catch(e){}
Element.remove($('lightwindow_media_primary'));
}
if($('lightwindow_media_secondary')){
try {
$('lightwindow_media_secondary').Stop();
} catch(e){}
Element.remove($('lightwindow_media_secondary'));
}
this.activeGallery = false;
this._handleNavigation(this.activeGallery);
if(contents){
$('lightwindow_contents').innerHTML = '';
$('lightwindow_contents').setStyle({
overflow: 'hidden'
});		
if(!this.windowActive){
$('lightwindow_data_slide_inner').setStyle({
display: 'none'
});
$('lightwindow_title_bar_title').innerHTML = '';
}
$('lightwindow_data_slide').setStyle({
height: 'auto'
});
}
this.resizeTo.height = null;
this.resizeTo.width = null;
},
_setStatus : function(status){
this.animating = status;
if(status){
Element.show('lightwindow_loading');
}
if(!(/MSIE 6./i.test(navigator.userAgent))){
this._fixedWindow(status);
}},
_fixedWindow : function(status){
if(status){
if(this.windowActive){
this._getScroll();
$('lightwindow').setStyle({
position: 'absolute',
top: parseFloat($('lightwindow').getStyle('top'))+this.pagePosition.y+'px',
left: parseFloat($('lightwindow').getStyle('left'))+this.pagePosition.x+'px'
});		
}else{
$('lightwindow').setStyle({
position: 'absolute'
});						
}}else{
if(this.windowActive){
this._getScroll();
$('lightwindow').setStyle({
position: 'fixed',
top: parseFloat($('lightwindow').getStyle('top'))-this.pagePosition.y+'px',
left: parseFloat($('lightwindow').getStyle('left'))-this.pagePosition.x+'px'
});		
}else{
if($('lightwindow_iframe')){
this._browserDimensions();
}
$('lightwindow').setStyle({
position: 'fixed',
top: (parseFloat(this._getParameter('lightwindow_top')) ? parseFloat(this._getParameter('lightwindow_top'))+'px' : this.dimensions.viewport.height/2+'px'),
left: (parseFloat(this._getParameter('lightwindow_left')) ? parseFloat(this._getParameter('lightwindow_left'))+'px' : this.dimensions.viewport.width/2+'px')
});
}}
},
_prepareIE : function(setup){
if(Prototype.Browser.IE){
var height, overflowX, overflowY;
if(setup){ 
var height = '100%';
}else{
var height = 'auto';
}
var body = document.getElementsByTagName('body')[0];
var html = document.getElementsByTagName('html')[0];
html.style.height = body.style.height = height;
}},
_stopScrolling : function(e){
if(this.animating){
if(e.preventDefault){
e.preventDefault();
}
e.returnValue = false;		
}},
_getScroll : function(){
if(typeof(window.pageYOffset)=='number'){
this.pagePosition.x = window.pageXOffset;
this.pagePosition.y = window.pageYOffset;
} else if(document.body && (document.body.scrollLeft || document.body.scrollTop)){
this.pagePosition.x = document.body.scrollLeft;
this.pagePosition.y = document.body.scrollTop;
} else if(document.documentElement){
this.pagePosition.x = document.documentElement.scrollLeft;
this.pagePosition.y = document.documentElement.scrollTop;
}},
_setScroll : function(x, y){
document.documentElement.scrollLeft = x; 
document.documentElement.scrollTop = y; 
},
_toggleTroubleElements : function(visibility, content){
if(content){
var selects = $('lightwindow_contents').getElementsByTagName('select');
}else{
var selects = document.getElementsByTagName('select');
}
for(var i = 0; i < selects.length; i++){
selects[i].style.visibility = visibility;
}
if(!content){
if(this.options.hideFlash){
var objects = document.getElementsByTagName('object');
for (i = 0; i != objects.length; i++){
objects[i].style.visibility = visibility;
}
var embeds = document.getElementsByTagName('embed');
for (i = 0; i != embeds.length; i++){
embeds[i].style.visibility = visibility;
}}
var iframes = document.getElementsByTagName('iframe');
for (i = 0; i != iframes.length; i++){
iframes[i].style.visibility = visibility;
}}
},
_getPageDimensions : function(){
var xScroll, yScroll;
if(window.innerHeight && window.scrollMaxY){	
xScroll = document.body.scrollWidth;
yScroll = window.innerHeight + window.scrollMaxY;
} else if(document.body.scrollHeight > document.body.offsetHeight){ 
xScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
}else{ 
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;
}
var windowWidth, windowHeight;
if(self.innerHeight){	
windowWidth = self.innerWidth;
windowHeight = self.innerHeight;
} else if(document.documentElement && document.documentElement.clientHeight){ 
windowWidth = document.documentElement.clientWidth;
windowHeight = document.documentElement.clientHeight;
} else if(document.body){ 
windowWidth = document.body.clientWidth;
windowHeight = document.body.clientHeight;
}	
if(yScroll < windowHeight){
this.pageDimensions.height = windowHeight;
}else{ 
this.pageDimensions.height = yScroll;
}
if(xScroll < windowWidth){	
this.pageDimensions.width = windowWidth;
}else{
this.pageDimensions.width = xScroll;
}},
_displayLightWindow : function(display, visibility){
$('lightwindow_overlay').style.display = $('lightwindow').style.display = $('lightwindow_container').style.display = display;	
$('lightwindow_overlay').style.visibility = $('lightwindow').style.visibility = $('lightwindow_container').style.visibility = visibility;
},
_setupDimensions : function(){
var originalHeight, originalWidth;
switch (this.windowType){
case 'page' :
originalHeight = this.options.dimensions.page.height;
originalWidth = this.options.dimensions.page.width;
break;
case 'image' :
originalHeight = this.options.dimensions.image.height;
originalWidth = this.options.dimensions.image.width;
break;
case 'media' :
originalHeight = this.options.dimensions.media.height;
originalWidth = this.options.dimensions.media.width;
break;
case 'external' : 
originalHeight = this.options.dimensions.external.height;
originalWidth = this.options.dimensions.external.width;
break;
case 'inline' :
originalHeight = this.options.dimensions.inline.height;
originalWidth = this.options.dimensions.inline.width;
break;
default :
originalHeight = this.options.dimensions.page.height;
originalWidth = this.options.dimensions.page.width;
break;
}
var offsetHeight = this._getParameter('lightwindow_top') ? parseFloat(this._getParameter('lightwindow_top'))+this.pagePosition.y : this.dimensions.viewport.height/2+this.pagePosition.y;
var offsetWidth = this._getParameter('lightwindow_left') ? parseFloat(this._getParameter('lightwindow_left'))+this.pagePosition.x : this.dimensions.viewport.width/2+this.pagePosition.x;
$('lightwindow').setStyle({
top: offsetHeight+'px',
left: offsetWidth+'px'
});
$('lightwindow_container').setStyle({
height: originalHeight+'px',
width: originalWidth+'px',
left: -(originalWidth/2)+'px',
top: -(originalHeight/2)+'px'
});
$('lightwindow_contents').setStyle({
height: originalHeight+'px',
width: originalWidth+'px'
});
},
_fileType : function(url){
var image = new RegExp("[^\.]\.("+this.options.fileTypes.image.join('|')+")\s*$", "i");
if(image.test(url)) return 'image';
if(url.indexOf('#') > -1 && (document.domain==this._getDomain(url))) return 'inline';		
if(url.indexOf('?') > -1) url = url.substring(0, url.indexOf('?'));
var type = 'unknown';
var page = new RegExp("[^\.]\.("+this.options.fileTypes.page.join('|')+")\s*$", "i");
var media = new RegExp("[^\.]\.("+this.options.fileTypes.media.join('|')+")\s*$", "i");
if(document.domain != this._getDomain(url)) type = 'external';
if(media.test(url)) type = 'media';
if(type=='external' || type=='media') return type;
if(page.test(url) || url.substr((url.length-1), url.length)=='/') type = 'page';
return type;
},
_fileExtension : function(url){
if(url.indexOf('?') > -1){
url = url.substring(0, url.indexOf('?'));
}
var extenstion = '';
for (var x = (url.length-1); x > -1; x--){
if(url.charAt(x)=='.'){
return extenstion;
}
extenstion = url.charAt(x)+extenstion;
}},
_monitorKeyboard : function(status){
if(status) document.onkeydown = this._eventKeypress.bind(this); 
else document.onkeydown = '';
},
_eventKeypress : function(e){
if(e==null){
var keycode = event.keyCode;
}else{
var keycode = e.which;
}
switch (keycode){ 
case 27: 
this.deactivate(); 
break;
case 13:
return;
default:
break;
}
if(this.animating){
return false;
}
switch (String.fromCharCode(keycode).toLowerCase()){
case 'p':
if(this.navigationObservers.previous){
this.navigateWindow('previous');
}
break;
case 'n':
if(this.navigationObservers.next){
this.navigateWindow('next');
}
break;
default:
break;
}},
_getGalleryInfo : function(rel){
if(!rel) return false;
if(rel.indexOf('[') > -1){
return new Array(escape(rel.substring(0, rel.indexOf('['))), escape(rel.substring(rel.indexOf('[')+1, rel.indexOf(']'))));
}else{
return false;
}},
_getDomain : function(url){    
var leadSlashes = url.indexOf('//');
var domainStart = leadSlashes+2;
var withoutResource = url.substring(domainStart, url.length);
var nextSlash = withoutResource.indexOf('/');
var domain = withoutResource.substring(0, nextSlash);
if(domain.indexOf(':') > -1){
var portColon = domain.indexOf(':');
domain = domain.substring(0, portColon);
}
return domain;
},
_getParameter : function(parameter, parameters){
if(!this.element) return false;
if(parameter=='lightwindow_top' && this.element.top){
return unescape(this.element.top);
} else if(parameter=='lightwindow_left' && this.element.left){
return unescape(this.element.left);
} else if(parameter=='lightwindow_type' && this.element.type){
return unescape(this.element.type);
} else if(parameter=='lightwindow_show_images' && this.element.showImages){
return unescape(this.element.showImages);
} else if(parameter=='lightwindow_height' && this.element.height){
return unescape(this.element.height);
} else if(parameter=='lightwindow_width' && this.element.width){
return unescape(this.element.width);
} else if(parameter=='lightwindow_loading_animation' && this.element.loadingAnimation){
return unescape(this.element.loadingAnimation);
} else if(parameter=='lightwindow_iframe_embed' && this.element.iframeEmbed){
return unescape(this.element.iframeEmbed);
} else if(parameter=='lightwindow_form' && this.element.form){
return unescape(this.element.form);
}else{
if(!parameters){
if(this.element.params) parameters = this.element.params;
else return;
}
var value;
var parameterArray = parameters.split(',');
var compareString = parameter+'=';
var compareLength = compareString.length;
for (var i = 0; i < parameterArray.length; i++){
if(parameterArray[i].substr(0, compareLength)==compareString){
var currentParameter = parameterArray[i].split('=');
value = currentParameter[1];
break;
}}
if(!value) return false;
else return unescape(value);
}},
_browserDimensions : function(){
if(Prototype.Browser.IE){
this.dimensions.viewport.height = document.documentElement.clientHeight;
this.dimensions.viewport.width = document.documentElement.clientWidth;   
}else{
this.dimensions.viewport.height = window.innerHeight;
this.dimensions.viewport.width = document.width || document.body.offsetWidth;
}},
_getScrollerWidth : function(){
var scrollDiv = Element.extend(document.createElement('div'));
scrollDiv.setAttribute('id', 'lightwindow_scroll_div');
scrollDiv.setStyle({
position: 'absolute',
top: '-10000px',
left: '-10000px',
width: '100px',
height: '100px',
overflow: 'hidden'
});
var contentDiv = Element.extend(document.createElement('div'));
contentDiv.setAttribute('id', 'lightwindow_content_scroll_div');
contentDiv.setStyle({
width: '100%',
height: '200px'
});
scrollDiv.appendChild(contentDiv);
var body = document.getElementsByTagName('body')[0];
body.appendChild(scrollDiv);
var noScroll = $('lightwindow_content_scroll_div').offsetWidth;
scrollDiv.style.overflow = 'auto';
var withScroll = $('lightwindow_content_scroll_div').offsetWidth;
Element.remove($('lightwindow_scroll_div'));
this.scrollbarOffset = noScroll-withScroll;
},
_addParamToObject : function(name, value, object, id){
var param = document.createElement('param');
param.setAttribute('value', value);
param.setAttribute('name', name);
if(id){
param.setAttribute('id', id);
}
object.appendChild(param);
return object;
},
_outerHTML : function(object){
if(Prototype.Browser.IE){
return object.outerHTML;
}else{
var clone = object.cloneNode(true);
var cloneDiv = document.createElement('div');
cloneDiv.appendChild(clone);
return cloneDiv.innerHTML;
}},
_convertToMarkup : function(object, closeTag){
var markup = this._outerHTML(object).replace('</'+closeTag+'>', '');
if(Prototype.Browser.IE){
for (var i = 0; i < object.childNodes.length; i++){
markup+=this._outerHTML(object.childNodes[i]);
}
markup+='</'+closeTag+'>';
}
return markup;
},
_appendObject : function(object, closeTag, appendTo){
if(Prototype.Browser.IE){
appendTo.innerHTML+=this._convertToMarkup(object, closeTag);
// Fix the Eolas activate thing but only for specified media, for example doing this to a quicktime film breaks it.
if(this.options.EOLASFix.indexOf(this._fileType(this.element.href)) > -1){
var objectElements = document.getElementsByTagName('object');
for (var i = 0; i < objectElements.length; i++){
if(objectElements[i].getAttribute("data")) objectElements[i].removeAttribute('data');
objectElements[i].outerHTML = objectElements[i].outerHTML;
objectElements[i].style.visibility = "visible";
}}
}else{
appendTo.appendChild(object);	
}	
},
_appendIframe : function(scroll){
var iframe = document.createElement('iframe');
iframe.setAttribute('id', 'lightwindow_iframe');
iframe.setAttribute('name', 'lightwindow_iframe');
iframe.setAttribute('src', 'about:blank');
iframe.setAttribute('height', '100%');
iframe.setAttribute('width', '100%');
iframe.setAttribute('frameborder', '0');
iframe.setAttribute('marginwidth', '0');
iframe.setAttribute('marginheight', '0');
iframe.setAttribute('scrolling', scroll);	
this._appendObject(iframe, 'iframe', $('lightwindow_contents'));
},
_writeToIframe : function(content){
var template = this.options.skin.iframe;
template = template.replace('{body_replace}', content); 
if($('lightwindow_iframe').contentWindow){
$('lightwindow_iframe').contentWindow.document.open();
$('lightwindow_iframe').contentWindow.document.write(template);
$('lightwindow_iframe').contentWindow.document.close();
}else{
$('lightwindow_iframe').contentDocument.open();
$('lightwindow_iframe').contentDocument.write(template);
$('lightwindow_iframe').contentDocument.close();
}},
_loadWindow : function(){
switch (this.windowType){
case 'image' :
var current = 0;
var images = [];
this.checkImage = [];
this.resizeTo.height = this.resizeTo.width = 0;
this.imageCount = this._getParameter('lightwindow_show_images') ? parseInt(this._getParameter('lightwindow_show_images')) : 1;
// If there is a gallery get it
if(gallery = this._getGalleryInfo(this.element.rel)){	
for (current = 0; current < this.galleries[gallery[0]][gallery[1]].length; current++){
if(this.contentToFetch.indexOf(this.galleries[gallery[0]][gallery[1]][current].href) > -1){
break;
}}
if(this.galleries[gallery[0]][gallery[1]][current-this.imageCount]){
this.navigationObservers.previous = this.galleries[gallery[0]][gallery[1]][current-this.imageCount];
}else{
this.navigationObservers.previous = false;
}
if(this.galleries[gallery[0]][gallery[1]][current+this.imageCount]){
this.navigationObservers.next = this.galleries[gallery[0]][gallery[1]][current+this.imageCount];
}else{
this.navigationObservers.next = false;
}
this.activeGallery = true;
}else{
this.navigationObservers.previous = false;
this.navigationObservers.next = false;					
this.activeGallery = false;
}
for (var i = current; i < (current+this.imageCount); i++){
if(gallery && this.galleries[gallery[0]][gallery[1]][i]){
this.contentToFetch = this.galleries[gallery[0]][gallery[1]][i].href;
this.galleryLocation = {current: (i+1)/this.imageCount, total: (this.galleries[gallery[0]][gallery[1]].length)/this.imageCount};
if(!this.galleries[gallery[0]][gallery[1]][i+this.imageCount]){
$('lightwindow_next').setStyle({
display: 'none'
});
}else{
$('lightwindow_next').setStyle({
display: 'block'
});
$('lightwindow_next_title').innerHTML = this.galleries[gallery[0]][gallery[1]][i+this.imageCount].title;
}
if(!this.galleries[gallery[0]][gallery[1]][i-this.imageCount]){
$('lightwindow_previous').setStyle({
display: 'none'
});
}else{
$('lightwindow_previous').setStyle({
display: 'block'
});
$('lightwindow_previous_title').innerHTML = this.galleries[gallery[0]][gallery[1]][i-this.imageCount].title;
}}
images[i] = document.createElement('img');
images[i].setAttribute('id', 'lightwindow_image_'+i);
images[i].setAttribute('border', '0');
images[i].setAttribute('src', this.contentToFetch);
$('lightwindow_contents').appendChild(images[i]);
// We have to do this instead of .onload 
this.checkImage[i] = new PeriodicalExecuter(function(i){
if(!(typeof $('lightwindow_image_'+i).naturalWidth != "undefined" && $('lightwindow_image_'+i).naturalWidth==0)){
this.checkImage[i].stop();
var imageHeight = $('lightwindow_image_'+i).getHeight();
if(imageHeight > this.resizeTo.height){
this.resizeTo.height = imageHeight;
}
this.resizeTo.width+=$('lightwindow_image_'+i).getWidth();
this.imageCount--;
$('lightwindow_image_'+i).setStyle({
height: '100%'
});
if(this.imageCount==0){
this._processWindow();
}}
}.bind(this, i), 1);			
}
break;
case 'media' :			
var current = 0;
this.resizeTo.height = this.resizeTo.width = 0;
if(gallery = this._getGalleryInfo(this.element.rel)){	
for (current = 0; current < this.galleries[gallery[0]][gallery[1]].length; current++){
if(this.contentToFetch.indexOf(this.galleries[gallery[0]][gallery[1]][current].href) > -1){
break;
}}
if(this.galleries[gallery[0]][gallery[1]][current-1]){
this.navigationObservers.previous = this.galleries[gallery[0]][gallery[1]][current-1];
}else{
this.navigationObservers.previous = false;
}
if(this.galleries[gallery[0]][gallery[1]][current+1]){
this.navigationObservers.next = this.galleries[gallery[0]][gallery[1]][current+1];
}else{
this.navigationObservers.next = false;
}
this.activeGallery = true;
}else{
this.navigationObservers.previous = false;
this.navigationObservers.next = false;
this.activeGallery = false;
}
if(gallery && this.galleries[gallery[0]][gallery[1]][current]){
this.contentToFetch = this.galleries[gallery[0]][gallery[1]][current].href;
this.galleryLocation = {current: current+1, total: this.galleries[gallery[0]][gallery[1]].length};
if(!this.galleries[gallery[0]][gallery[1]][current+1]){
$('lightwindow_next').setStyle({
display: 'none'
});
}else{
$('lightwindow_next').setStyle({
display: 'block'
});
$('lightwindow_next_title').innerHTML = this.galleries[gallery[0]][gallery[1]][current+1].title;
}
if(!this.galleries[gallery[0]][gallery[1]][current-1]){
$('lightwindow_previous').setStyle({
display: 'none'
});
}else{
$('lightwindow_previous').setStyle({
display: 'block'
});
$('lightwindow_previous_title').innerHTML = this.galleries[gallery[0]][gallery[1]][current-1].title;
}}
if(this._getParameter('lightwindow_iframe_embed')){
this.resizeTo.height = this.dimensions.viewport.height;
this.resizeTo.width = this.dimensions.viewport.width;	
}else{
this.resizeTo.height = this._getParameter('lightwindow_height');
this.resizeTo.width = this._getParameter('lightwindow_width');				
}
this._processWindow();
break;
case 'external' :		
this._appendIframe('auto');
this.resizeTo.height = this.dimensions.viewport.height;
this.resizeTo.width = this.dimensions.viewport.width;
this._processWindow();
break;
case 'page' :	
var newAJAX = new Ajax.Request(
this.contentToFetch, {
method: 'get', 
parameters: '', 
onComplete: function(response){
$('lightwindow_contents').innerHTML+=response.responseText;
this.resizeTo.height = $('lightwindow_contents').scrollHeight+(this.options.contentOffset.height);
this.resizeTo.width = $('lightwindow_contents').scrollWidth+(this.options.contentOffset.width);
this._processWindow();
}.bind(this)
}
);
break;
case 'inline' : 
var content = this.contentToFetch;
if(content.indexOf('?') > -1){
content = content.substring(0, content.indexOf('?'));
}
content = content.substring(content.indexOf('#')+1);
new Insertion.Top($('lightwindow_contents'), $(content).innerHTML);
this.resizeTo.height = $('lightwindow_contents').scrollHeight+(this.options.contentOffset.height);
this.resizeTo.width = $('lightwindow_contents').scrollWidth+(this.options.contentOffset.width);
this._toggleTroubleElements('hidden', true); 			
this._processWindow();
break;
default : 
throw("Page Type could not be determined, please amend this lightwindow URL "+this.contentToFetch);
break;
}},
_resizeWindowToFit : function(){
if(this.resizeTo.height+this.dimensions.cruft.height > this.dimensions.viewport.height){
var heightRatio = this.resizeTo.height/this.resizeTo.width;
this.resizeTo.height = this.dimensions.viewport.height-this.dimensions.cruft.height-(2*this.options.viewportPadding);
// We only care about ratio's with this window type			
if(this.windowType=='image' || (this.windowType=='media' && !this._getParameter('lightwindow_iframe_embed'))){
this.resizeTo.width = this.resizeTo.height/heightRatio;
$('lightwindow_data_slide_inner').setStyle({
width: this.resizeTo.width+'px'
});			
}} 
if(this.resizeTo.width+this.dimensions.cruft.width > this.dimensions.viewport.width){
var widthRatio = this.resizeTo.width/this.resizeTo.height;
this.resizeTo.width = this.dimensions.viewport.width-2*this.dimensions.cruft.width-(2*this.options.viewportPadding);
// We only care about ratio's with this window type
if(this.windowType=='image' || (this.windowType=='media' && !this._getParameter('lightwindow_iframe_embed'))){
this.resizeTo.height = this.resizeTo.width/widthRatio;
$('lightwindow_data_slide_inner').setStyle({
height: this.resizeTo.height+'px'
});
}}
},
_presetWindowSize : function(){
if(this._getParameter('lightwindow_height')){
this.resizeTo.height = parseFloat(this._getParameter('lightwindow_height'));
}
if(this._getParameter('lightwindow_width')){
this.resizeTo.width = parseFloat(this._getParameter('lightwindow_width'));
}},
_processWindow : function(){
this.dimensions.dataEffects = [];
if(this.element.caption || this.element.author || (this.activeGallery && this.options.showGalleryCount)){
if(this.element.caption){
$('lightwindow_data_caption').innerHTML = this.element.caption;
$('lightwindow_data_caption').setStyle({
display: 'block'
});
}else{
$('lightwindow_data_caption').setStyle({
display: 'none'
});				
}
if(this.element.author){
$('lightwindow_data_author').innerHTML = this.element.author;
$('lightwindow_data_author_container').setStyle({
display: 'block'
});
}else{
$('lightwindow_data_author_container').setStyle({
display: 'none'
});				
}
if(this.activeGallery && this.options.showGalleryCount){
$('lightwindow_data_gallery_current').innerHTML = this.galleryLocation.current;
$('lightwindow_data_gallery_total').innerHTML = this.galleryLocation.total;
$('lightwindow_data_gallery_container').setStyle({
display: 'block'
});
}else{
$('lightwindow_data_gallery_container').setStyle({
display: 'none'
});				
}
$('lightwindow_data_slide_inner').setStyle({
width: this.resizeTo.width+'px',
height: 'auto',
visibility: 'visible',
display: 'block'
});
$('lightwindow_data_slide').setStyle({
height: $('lightwindow_data_slide').getHeight()+'px',
width: '1px',
overflow: 'hidden',
display: 'block'
});
}else{
$('lightwindow_data_slide').setStyle({
display: 'none',
width: 'auto'
});
$('lightwindow_data_slide_inner').setStyle({
display: 'none',
visibility: 'hidden',
width: this.resizeTo.width+'px',
height: '0px'
});
}
if(this.element.title != 'null'){		
$('lightwindow_title_bar_title').innerHTML = this.element.title;
}else{
$('lightwindow_title_bar_title').innerHTML = '';
}
var originalContainerDimensions = {height: $('lightwindow_container').getHeight(), width: $('lightwindow_container').getWidth()};
$('lightwindow_container').setStyle({
height: 'auto',
width: $('lightwindow_container').getWidth()+this.options.contentOffset.width-(this.windowActive ? this.options.contentOffset.width : 0)+'px'
});
var newContainerDimensions = {height: $('lightwindow_container').getHeight(), width: $('lightwindow_container').getWidth()};
this.containerChange = {height: originalContainerDimensions.height-newContainerDimensions.height, width: originalContainerDimensions.width-newContainerDimensions.width};
this.dimensions.container = {height: $('lightwindow_container').getHeight(), width: $('lightwindow_container').getWidth()};
this.dimensions.cruft = {height: this.dimensions.container.height-$('lightwindow_contents').getHeight()+this.options.contentOffset.height, width: this.dimensions.container.width-$('lightwindow_contents').getWidth()+this.options.contentOffset.width};
this._presetWindowSize();
this._resizeWindowToFit();
if(!this.windowActive){
$('lightwindow_container').setStyle({
left: -(this.dimensions.container.width/2)+'px',
top: -(this.dimensions.container.height/2)+'px'
});
}
$('lightwindow_container').setStyle({
height: this.dimensions.container.height+'px',
width: this.dimensions.container.width+'px'
});
this._displayLightWindow('block', 'visible');
this._animateLightWindow();
},
_animateLightWindow : function(){
if(this.options.animationHandler){
this.options.animationHandler().bind(this);
}else{
this._defaultAnimationHandler();
}},
_handleNavigation : function(display){
if(this.options.navigationHandler){
this.options.navigationHandler().bind(this, display);
}else{
this._defaultDisplayNavigation(display);
}},
_handleTransition : function(){
if(this.options.transitionHandler){
this.options.transitionHandler().bind(this);
}else{
this._defaultTransitionHandler();
}},
_handleFinalWindowAnimation : function(delay){
if(this.options.finalAnimationHandler){
this.options.finalAnimationHandler().bind(this, delay);
}else{
this._defaultfinalWindowAnimationHandler(delay);
}		
},
_handleGalleryAnimation : function(list){
if(this.options.galleryAnimationHandler){
this.options.galleryAnimationHandler().bind(this, list);
}else{
this._defaultGalleryAnimationHandler(list);
}		
},
_defaultDisplayNavigation : function(display){
if(display){
$('lightwindow_navigation').setStyle({
display: 'block',
height: $('lightwindow_contents').getHeight()+'px',
width: '100%',
marginTop: this.options.dimensions.titleHeight+'px'
});			
}else{
$('lightwindow_navigation').setStyle({
display: 'none',
height: 'auto',
width: 'auto'
});			
}},
_defaultAnimationHandler : function(){	
if(this.element.caption || this.element.author || (this.activeGallery && this.options.showGalleryCount)){
$('lightwindow_data_slide').setStyle({
display: 'none',
width: 'auto'
});
this.dimensions.dataEffects.push(
new Effect.SlideDown('lightwindow_data_slide', {sync: true}),
new Effect.Appear('lightwindow_data_slide', {sync: true, from: 0.0, to: 1.0})
);
}
$('lightwindow_title_bar_inner').setStyle({
height: '0px',
marginTop: this.options.dimensions.titleHeight+'px'
});
this.dimensions.dataEffects.push(
new Effect.Morph('lightwindow_title_bar_inner', {sync: true, style: {height: this.options.dimensions.titleHeight+'px', marginTop: '0px'}}),
new Effect.Appear('lightwindow_title_bar_inner', {sync: true, from: 0.0, to: 1.0})
);		
if(!this.options.hideGalleryTab){
this._handleGalleryAnimation(false);
if($('lightwindow_galleries_tab_container').getHeight()==0){
this.dimensions.dataEffects.push(
new Effect.Morph('lightwindow_galleries_tab_container', {sync: true, style: {height: '20px', marginTop: '0px'}})
);
$('lightwindow_galleries').setStyle({
width: '0px'
});
}}
var resized = false;
var ratio = this.dimensions.container.width-$('lightwindow_contents').getWidth()+this.resizeTo.width+this.options.contentOffset.width;
if(ratio != $('lightwindow_container').getWidth()){
new Effect.Parallel([
new Effect.Scale('lightwindow_contents', 100*(this.resizeTo.width/$('lightwindow_contents').getWidth()), {scaleFrom: 100*($('lightwindow_contents').getWidth()/($('lightwindow_contents').getWidth()+(this.options.contentOffset.width))), sync: true,  scaleY: false, scaleContent: false}),
new Effect.Scale('lightwindow_container', 100*(ratio/(this.dimensions.container.width)), {sync: true, scaleY: false, scaleFromCenter: true, scaleContent: false})
], {
duration: this.duration, 
delay: 0.25,
queue: {position: 'end', scope: 'lightwindowAnimation'}}
);		
}
ratio = this.dimensions.container.height-$('lightwindow_contents').getHeight()+this.resizeTo.height+this.options.contentOffset.height;
if(ratio != $('lightwindow_container').getHeight()){
new Effect.Parallel([
new Effect.Scale('lightwindow_contents', 100*(this.resizeTo.height/$('lightwindow_contents').getHeight()), {scaleFrom: 100*($('lightwindow_contents').getHeight()/($('lightwindow_contents').getHeight()+(this.options.contentOffset.height))), sync: true, scaleX: false, scaleContent: false}),
new Effect.Scale('lightwindow_container', 100*(ratio/(this.dimensions.container.height)), {sync: true, scaleX: false, scaleFromCenter: true, scaleContent: false})
], {
duration: this.duration, 
afterFinish: function(){				
if(this.dimensions.dataEffects.length > 0){
if(!this.options.hideGalleryTab){
$('lightwindow_galleries').setStyle({
width: this.resizeTo.width+'px'
});
}
new Effect.Parallel(this.dimensions.dataEffects, {
duration: this.duration,
afterFinish: function(){
this._finishWindow();
}.bind(this),
queue: {position: 'end', scope: 'lightwindowAnimation'} 
}
);
}}.bind(this), 
queue: {position: 'end', scope: 'lightwindowAnimation'} 
}
);
resized = true;
}
if(!resized && this.dimensions.dataEffects.length > 0){	
new Effect.Parallel(this.dimensions.dataEffects, {
duration: this.duration,
beforeStart: function(){
if(!this.options.hideGalleryTab){
$('lightwindow_galleries').setStyle({
width: this.resizeTo.width+'px'
});
}
if(this.containerChange.height != 0 || this.containerChange.width != 0){
new Effect.MoveBy('lightwindow_container', this.containerChange.height, this.containerChange.width, {transition: Effect.Transitions.sinoidal});
}}.bind(this),			
afterFinish: function(){
this._finishWindow();
}.bind(this),
queue: {position: 'end', scope: 'lightwindowAnimation'} 
}
);
}			
},
_defaultfinalWindowAnimationHandler : function(delay){
if(this.windowType=='media' || this._getParameter('lightwindow_loading_animation')){	
Element.hide('lightwindow_loading');
this._handleNavigation(this.activeGallery);
this._setStatus(false);
}else{
Effect.Fade('lightwindow_loading', {
duration: 0.75,
delay: 1.0, 
afterFinish: function(){
if(this.windowType != 'image' && this.windowType != 'media' && this.windowType != 'external'){
$('lightwindow_contents').setStyle({
overflow: 'auto'
});
}
this._handleNavigation(this.activeGallery);
this._defaultGalleryAnimationHandler();
this._setStatus(false);
}.bind(this),
queue: {position: 'end', scope: 'lightwindowAnimation'}});
}},
_defaultGalleryAnimationHandler : function(list){
if(this.activeGallery){
$('lightwindow_galleries').setStyle({
display: 'block',
marginBottom: $('lightwindow_data_slide').getHeight()+this.options.contentOffset.height/2+'px'
});
$('lightwindow_navigation').setStyle({
height: $('lightwindow_contents').getHeight()-20+'px'
});
}else{
$('lightwindow_galleries').setStyle({
display: 'none'
});	
$('lightwindow_galleries_tab_container').setStyle({
height: '0px',
marginTop: '20px'
});
$('lightwindow_galleries_list').setStyle({
height: '0px'
});
return false;
}
if(list){
if($('lightwindow_galleries_list').getHeight()==0){
var height = $('lightwindow_contents').getHeight()*0.80;
$('lightwindow_galleries_tab_span').className = 'down';
}else{
var height = 0;
$('lightwindow_galleries_tab_span').className = 'up';
}
new Effect.Morph('lightwindow_galleries_list', {
duration: this.duration,
transition: Effect.Transitions.sinoidal,
style: {height: height+'px'},
beforeStart: function(){
$('lightwindow_galleries_list').setStyle({
overflow: 'hidden'
});					
},
afterFinish: function(){
$('lightwindow_galleries_list').setStyle({
overflow: 'auto'
});
},
queue: {position: 'end', scope: 'lightwindowAnimation'}});	
}},
_defaultTransitionHandler : function(){
this.dimensions.dataEffects = [];
if($('lightwindow_data_slide').getStyle('display') != 'none'){
this.dimensions.dataEffects.push(
new Effect.SlideUp('lightwindow_data_slide', {sync: true}),
new Effect.Fade('lightwindow_data_slide', {sync: true, from: 1.0, to: 0.0})
);
}
if(!this.options.hideGalleryTab){
if($('lightwindow_galleries').getHeight() != 0 && !this.options.hideGalleryTab){
this.dimensions.dataEffects.push(
new Effect.Morph('lightwindow_galleries_tab_container', {sync: true, style: {height: '0px', marginTop: '20px'}})
);
}
if($('lightwindow_galleries_list').getHeight() != 0){
$('lightwindow_galleries_tab_span').className = 'up';
this.dimensions.dataEffects.push(
new Effect.Morph('lightwindow_galleries_list', {
sync: true, 
style: {height: '0px'},
transition: Effect.Transitions.sinoidal,
beforeStart: function(){
$('lightwindow_galleries_list').setStyle({
overflow: 'hidden'
});					
},
afterFinish: function(){
$('lightwindow_galleries_list').setStyle({
overflow: 'auto'
});
}})
);
}}
this.dimensions.dataEffects.push(
new Effect.Morph('lightwindow_title_bar_inner', {sync: true, style: {height: '0px', marginTop: this.options.dimensions.titleHeight+'px'}}),
new Effect.Fade('lightwindow_title_bar_inner', {sync: true, from: 1.0, to: 0.0})
);
new Effect.Parallel(this.dimensions.dataEffects, {
duration: this.duration,
afterFinish: function(){
this._loadWindow();
}.bind(this),
queue: {position: 'end', scope: 'lightwindowAnimation'} 
}
);	
},
_defaultFormHandler : function(e){
var element = Event.element(e).parentNode;
var parameterString = Form.serialize(this._getParameter('lightwindow_form', element.getAttribute('params')));
if(this.options.formMethod=='post'){
var newAJAX = new Ajax.Request(element.href, { 
method: 'post', 
postBody: parameterString, 
onComplete: this.openWindow.bind(this, element)
});
} else if(this.options.formMethod=='get'){
var newAJAX = new Ajax.Request(element.href, { 
method: 'get', 
parameters: parameterString, 
onComplete: this.openWindow.bind(this, element)
});
}},
_finishWindow : function(){
if(this.windowType=='external'){
$('lightwindow_iframe').setAttribute('src', this.element.href);
this._handleFinalWindowAnimation(1);	
} else if(this.windowType=='media'){
var outerObject = document.createElement('object');
outerObject.setAttribute('classid', this.options.classids[this._fileExtension(this.contentToFetch)]);
outerObject.setAttribute('codebase', this.options.codebases[this._fileExtension(this.contentToFetch)]);
outerObject.setAttribute('id', 'lightwindow_media_primary');
outerObject.setAttribute('name', 'lightwindow_media_primary');
outerObject.setAttribute('width', this.resizeTo.width);
outerObject.setAttribute('height', this.resizeTo.height);
outerObject = this._addParamToObject('movie', this.contentToFetch, outerObject);
outerObject = this._addParamToObject('src', this.contentToFetch, outerObject);
outerObject = this._addParamToObject('controller', 'true', outerObject);
outerObject = this._addParamToObject('wmode', 'transparent', outerObject);
outerObject = this._addParamToObject('cache', 'false', outerObject);
outerObject = this._addParamToObject('quality', 'high', outerObject);
if(!Prototype.Browser.IE){
var innerObject = document.createElement('object');
innerObject.setAttribute('type', this.options.mimeTypes[this._fileExtension(this.contentToFetch)]);
innerObject.setAttribute('data', this.contentToFetch);
innerObject.setAttribute('id', 'lightwindow_media_secondary');
innerObject.setAttribute('name', 'lightwindow_media_secondary');
innerObject.setAttribute('width', this.resizeTo.width);
innerObject.setAttribute('height', this.resizeTo.height);
innerObject = this._addParamToObject('controller', 'true', innerObject);
innerObject = this._addParamToObject('wmode', 'transparent', innerObject);
innerObject = this._addParamToObject('cache', 'false', innerObject);
innerObject = this._addParamToObject('quality', 'high', innerObject);
outerObject.appendChild(innerObject);
}	
if(this._getParameter('lightwindow_iframe_embed')){
this._appendIframe('no');
this._writeToIframe(this._convertToMarkup(outerObject, 'object'));
}else{
this._appendObject(outerObject, 'object', $('lightwindow_contents'));
}
this._handleFinalWindowAnimation(0);
}else{
this._handleFinalWindowAnimation(0);
}
this._setupActions();
}}
Event.observe(window, 'load', lightwindowInit, false);
function survolFermer(){document.getElementById('FermerLightWindow').src='images/lightwindow/fermer_over.png';}
function sortieFermer(){document.getElementById('FermerLightWindow').src='images/lightwindow/fermer.png';}
var myLightWindow = null;
function lightwindowInit(){
myLightWindow = new lightwindow();
}