(function($, window, undefined){
var extensions={
flash: ['swf'],
image: ['bmp', 'gif', 'jpeg', 'jpg', 'png', 'tiff', 'tif', 'jfif', 'jpe'],
iframe: ['asp', 'aspx', 'cgi', 'cfm', 'htm', 'html', 'jsp', 'php', 'pl', 'php3', 'php4', 'php5', 'phtml', 'rb', 'rhtml', 'shtml', 'txt'],
video: ['avi', 'mov', 'mpg', 'mpeg', 'movie', 'mp4', 'webm', 'ogv', 'ogg', '3gp', 'm4v']
},
$win=$(window),
$doc=$(document),
browser,
transform,
gpuAcceleration,
fullScreenApi='',
userAgent=navigator.userAgent||navigator.vendor||window.opera,
supportTouch = !!('ontouchstart' in window)&&(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent)),
isMobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(userAgent)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(userAgent.substr(0, 4)),
clickEvent=supportTouch ? "itap.iLightBox":"click.iLightBox",
touchStartEvent=supportTouch ? "touchstart.iLightBox":"mousedown.iLightBox",
touchStopEvent=supportTouch ? "touchend.iLightBox":"mouseup.iLightBox",
touchMoveEvent=supportTouch ? "touchmove.iLightBox":"mousemove.iLightBox",
abs=Math.abs,
sqrt=Math.sqrt,
round=Math.round,
max=Math.max,
min=Math.min,
floor=Math.floor,
random=Math.random,
pluginspages={
quicktime: 'http://www.apple.com/quicktime/download',
flash: 'http://www.adobe.com/go/getflash'
},
iLightBox=function(el, options, items, instant){
var iL=this;
iL.options=options,
iL.selector=el.selector||el,
iL.context=el.context,
iL.instant=instant;
if(items.length < 1) iL.attachItems();
else iL.items=items;
iL.vars={
total: iL.items.length,
start: 0,
current: null,
next: null,
prev: null,
BODY: $('body'),
loadRequests: 0,
overlay: $('<div class="ilightbox-overlay"></div>'),
loader: $('<div class="ilightbox-loader"><div></div></div>'),
toolbar: $('<div class="ilightbox-toolbar"></div>'),
innerToolbar: $('<div class="ilightbox-inner-toolbar"></div>'),
title: $('<div class="ilightbox-title"></div>'),
closeButton: $('<a class="ilightbox-close" title="' + iL.options.text.close + '"></a>'),
fullScreenButton: $('<a class="ilightbox-fullscreen" title="' + iL.options.text.enterFullscreen + '"></a>'),
innerPlayButton: $('<a class="ilightbox-play" title="' + iL.options.text.slideShow + '"></a>'),
innerNextButton: $('<a class="ilightbox-next-button" title="' + iL.options.text.next + '"></a>'),
innerPrevButton: $('<a class="ilightbox-prev-button" title="' + iL.options.text.previous + '"></a>'),
holder: $('<div class="ilightbox-holder' + (supportTouch ? ' supportTouch':'') + '" ondragstart="return false;"><div class="ilightbox-container"></div></div>'),
nextPhoto: $('<div class="ilightbox-holder' + (supportTouch ? ' supportTouch':'') + ' ilightbox-next" ondragstart="return false;"><div class="ilightbox-container"></div></div>'),
prevPhoto: $('<div class="ilightbox-holder' + (supportTouch ? ' supportTouch':'') + ' ilightbox-prev" ondragstart="return false;"><div class="ilightbox-container"></div></div>'),
nextButton: $('<a class="ilightbox-button ilightbox-next-button" ondragstart="return false;" title="' + iL.options.text.next + '"><span></span></a>'),
prevButton: $('<a class="ilightbox-button ilightbox-prev-button" ondragstart="return false;" title="' + iL.options.text.previous + '"><span></span></a>'),
thumbnails: $('<div class="ilightbox-thumbnails" ondragstart="return false;"><div class="ilightbox-thumbnails-container"><a class="ilightbox-thumbnails-dragger"></a><div class="ilightbox-thumbnails-grid"></div></div></div>'),
thumbs: false,
nextLock: false,
prevLock: false,
hashLock: false,
isMobile: false,
mobileMaxWidth: 980,
isInFullScreen: false,
isSwipe: false,
mouseID: 0,
cycleID: 0,
isPaused: 0
};
iL.vars.hideableElements=iL.vars.nextButton.add(iL.vars.prevButton);
iL.normalizeItems();
iL.availPlugins();
iL.options.startFrom=(iL.options.startFrom > 0&&iL.options.startFrom >=iL.vars.total) ? iL.vars.total - 1:iL.options.startFrom;
iL.options.startFrom=(iL.options.randomStart) ? floor(random() * iL.vars.total):iL.options.startFrom;
iL.vars.start=iL.options.startFrom;
if(instant) iL.instantCall();
else iL.patchItemsEvents();
if(iL.options.linkId){
iL.hashChangeHandler();
$win.iLightBoxHashChange(function(){
iL.hashChangeHandler();
});
}
if(supportTouch){
var RegExp=/(click|mouseenter|mouseleave|mouseover|mouseout)/ig,
replace="itap";
iL.options.caption.show=iL.options.caption.show.replace(RegExp, replace),
iL.options.caption.hide=iL.options.caption.hide.replace(RegExp, replace),
iL.options.social.show=iL.options.social.show.replace(RegExp, replace),
iL.options.social.hide=iL.options.social.hide.replace(RegExp, replace);
}
if(iL.options.controls.arrows){
$.extend(iL.options.styles, {
nextOffsetX: 0,
prevOffsetX: 0,
nextOpacity: 0,
prevOpacity: 0
});
}};
iLightBox.prototype={
showLoader: function(){
var iL=this;
iL.vars.loadRequests +=1;
if(iL.options.path.toLowerCase()=="horizontal") iL.vars.loader.addClass('ilightbox-show').stop().animate({
top: '-30px'
}, iL.options.show.speed, 'easeOutCirc');
else iL.vars.loader.addClass('ilightbox-show').stop().animate({
left: '-30px'
}, iL.options.show.speed, 'easeOutCirc');
},
hideLoader: function(){
var iL=this;
iL.vars.loadRequests -=1;
iL.vars.loadRequests=(iL.vars.loadRequests < 0) ? 0:iL.vars.loadRequests;
if(iL.options.path.toLowerCase()=="horizontal"){
if(iL.vars.loadRequests <=0) iL.vars.loader.removeClass('ilightbox-show').stop().animate({
top: '-192px'
}, iL.options.show.speed, 'easeInCirc');
}else{
if(iL.vars.loadRequests <=0) iL.vars.loader.removeClass('ilightbox-show').stop().animate({
left: '-192px'
}, iL.options.show.speed, 'easeInCirc');
}},
createUI: function(){
var iL=this;
iL.ui={
currentElement: iL.vars.holder,
nextElement: iL.vars.nextPhoto,
prevElement: iL.vars.prevPhoto,
currentItem: iL.vars.current,
nextItem: iL.vars.next,
prevItem: iL.vars.prev,
hide: function(){
iL.closeAction();
},
refresh: function(){
(arguments.length > 0) ? iL.repositionPhoto(true): iL.repositionPhoto();
},
fullscreen: function(){
iL.fullScreenAction();
}};},
attachItems: function(){
var iL=this,
itemsObject=new Array(),
items=new Array();
$(iL.selector, iL.context).each(function(){
var t=$(this),
URL=t.attr(iL.options.attr)||null,
options=t.data("options")&&eval("({" + t.data("options") + "})")||{},
caption=t.data('caption'),
title=t.data('title'),
type=t.data('type')||getTypeByExtension(URL);
items.push({
URL: URL,
caption: caption,
title: title,
type: type,
options: options
});
if(!iL.instant) itemsObject.push(t);
});
iL.items=items,
iL.itemsObject=itemsObject;
},
normalizeItems: function(){
var iL=this,
newItems=new Array();
$.each(iL.items, function(key, val){
if(typeof val=="string") val={
url: val
};
var URL=val.url||val.URL||null,
options=val.options||{},
caption=val.caption||null,
title=val.title||null,
type=(val.type) ? val.type.toLowerCase():getTypeByExtension(URL),
ext=(typeof URL!='object') ? getExtension(URL):'';
options.thumbnail=options.thumbnail||((type=="image") ? URL:null),
options.videoType=options.videoType||null,
options.skin=options.skin||iL.options.skin,
options.width=options.width||null,
options.height=options.height||null,
options.mousewheel=(typeof options.mousewheel!='undefined') ? options.mousewheel:true,
options.swipe=(typeof options.swipe!='undefined') ? options.swipe:true,
options.social=(typeof options.social!='undefined') ? options.social:iL.options.social.buttons&&$.extend({}, {}, iL.options.social.buttons);
if(type=="video"){
options.html5video=(typeof options.html5video!='undefined') ? options.html5video:{};
options.html5video.webm=options.html5video.webm||options.html5video.WEBM||null;
options.html5video.controls=(typeof options.html5video.controls!='undefined') ? options.html5video.controls:"controls";
options.html5video.preload=options.html5video.preload||"metadata";
options.html5video.autoplay=(typeof options.html5video.autoplay!='undefined') ? options.html5video.autoplay:false;
}
if(!options.width||!options.height){
if(type=="video") options.width=1280, options.height=720;
else if(type=="iframe") options.width='100%', options.height='90%';
else if(type=="flash") options.width=1280, options.height=720;
}
delete val.url;
val.index=key;
val.URL=URL;
val.caption=caption;
val.title=title;
val.type=type;
val.options=options;
val.ext=ext;
newItems.push(val);
});
iL.items=newItems;
},
instantCall: function(){
var iL=this,
key=iL.vars.start;
iL.vars.current=key;
iL.vars.next=(iL.items[key + 1]) ? key + 1:null;
iL.vars.prev=(iL.items[key - 1]) ? key - 1:null;
iL.addContents();
iL.patchEvents();
},
addContents: function(){
var iL=this,
vars=iL.vars,
opts=iL.options,
viewport=getViewport(),
path=opts.path.toLowerCase(),
recognizingItems=vars.total > 0&&iL.items.filter(function(e, i, arr){
return ['image', 'flash', 'video'].indexOf(e.type)===-1&&typeof e.recognized==='undefined'&&(opts.smartRecognition||e.options.smartRecognition);
}),
needRecognition=recognizingItems.length > 0;
if(opts.mobileOptimizer&&!opts.innerToolbar)
vars.isMobile=viewport.width <=vars.mobileMaxWidth;
vars.overlay.addClass(opts.skin).hide().css('opacity', opts.overlay.opacity);
if(opts.linkId)
vars.overlay[0].setAttribute('linkid', opts.linkId);
if(opts.controls.toolbar){
vars.toolbar.addClass(opts.skin).append(vars.closeButton);
if(opts.controls.fullscreen)
vars.toolbar.append(vars.fullScreenButton);
if(opts.controls.slideshow)
vars.toolbar.append(vars.innerPlayButton);
if(vars.total > 1)
vars.toolbar.append(vars.innerPrevButton).append(vars.innerNextButton);
}
vars.BODY.addClass('ilightbox-noscroll').append(vars.overlay).append(vars.loader).append(vars.holder).append(vars.nextPhoto).append(vars.prevPhoto);
if(!opts.innerToolbar)
vars.BODY.append(vars.toolbar);
if(opts.controls.arrows)
vars.BODY.append(vars.nextButton).append(vars.prevButton);
if(opts.controls.thumbnail&&vars.total > 1){
vars.BODY.append(vars.thumbnails);
vars.thumbnails.addClass(opts.skin).addClass('ilightbox-' + path);
$('div.ilightbox-thumbnails-grid', vars.thumbnails).empty();
vars.thumbs=true;
}
var loaderCss=(opts.path.toLowerCase()=="horizontal") ? {
left: parseInt((viewport.width / 2) - (vars.loader.outerWidth() / 2))
}:{
top: parseInt((viewport.height / 2) - (vars.loader.outerHeight() / 2))
};
vars.loader.addClass(opts.skin).css(loaderCss);
vars.nextButton.add(vars.prevButton).addClass(opts.skin);
if(path=="horizontal")
vars.loader.add(vars.nextButton).add(vars.prevButton).addClass('horizontal');
vars.BODY[vars.isMobile ? 'addClass':'removeClass']('isMobile');
if(!opts.infinite){
vars.prevButton.add(vars.prevButton).add(vars.innerPrevButton).add(vars.innerNextButton).removeClass('disabled');
if(vars.current==0)
vars.prevButton.add(vars.innerPrevButton).addClass('disabled');
if(vars.current >=vars.total - 1)
vars.nextButton.add(vars.innerNextButton).addClass('disabled');
}
if(opts.show.effect){
vars.overlay.stop().fadeIn(opts.show.speed);
vars.toolbar.stop().fadeIn(opts.show.speed);
}else{
vars.overlay.show();
vars.toolbar.show();
}
var length=recognizingItems.length;
if(needRecognition){
iL.showLoader();
$.each(recognizingItems, function(key, val){
var resultFnc=function(result){
console.log(result);
var key=-1,
filter=iL.items.filter(function(e, i, arr){
if(e.URL==result.url)
key=i;
return e.URL==result.url;
}),
self=iL.items[key];
if(result)
$.extend(true, self, {
URL: result.source,
type: result.type,
recognized: true,
options: {
html5video: result.html5video,
width: (result.type=="image") ? 0:(result.width||self.width),
height: (result.type=="image") ? 0:(result.height||self.height),
thumbnail: self.options.thumbnail||result.thumbnail
}});
length--;
if(length==0){
iL.hideLoader();
vars.dontGenerateThumbs=false;
iL.generateThumbnails();
if(opts.show.effect)
setTimeout(function(){
iL.generateBoxes();
}, opts.show.speed);
else
iL.generateBoxes();
}};
iL.ogpRecognition(this, resultFnc);
});
}else{
if(opts.show.effect)
setTimeout(function(){
iL.generateBoxes();
}, opts.show.speed);
else
iL.generateBoxes();
}
iL.createUI();
window.iLightBox={
close: function(){
iL.closeAction();
},
fullscreen: function(){
iL.fullScreenAction();
},
moveNext: function(){
iL.moveTo('next');
},
movePrev: function(){
iL.moveTo('prev');
},
goTo: function(index){
iL.goTo(index);
},
refresh: function(){
iL.refresh();
},
reposition: function(){
(arguments.length > 0) ? iL.repositionPhoto(true): iL.repositionPhoto();
},
setOption: function(options){
iL.setOption(options);
},
destroy: function(){
iL.closeAction();
iL.dispatchItemsEvents();
}};
if(opts.linkId){
vars.hashLock=true;
window.location.hash=opts.linkId + '/' + vars.current;
setTimeout(function(){
vars.hashLock=false;
}, 55);
}
if(!opts.slideshow.startPaused){
iL.resume();
vars.innerPlayButton.removeClass('ilightbox-play').addClass('ilightbox-pause');
}
if(typeof iL.options.callback.onOpen=='function') iL.options.callback.onOpen.call(iL);
},
loadContent: function(obj, opt, speed){
var iL=this,
holder, item;
iL.createUI();
obj.speed=speed||iL.options.effects.loadedFadeSpeed;
if(opt=='current'){
if(!obj.options.mousewheel) iL.vars.lockWheel=true;
else iL.vars.lockWheel=false;
if(!obj.options.swipe) iL.vars.lockSwipe=true;
else iL.vars.lockSwipe=false;
}
switch (opt){
case 'current':
holder=iL.vars.holder, item=iL.vars.current;
break;
case 'next':
holder=iL.vars.nextPhoto, item=iL.vars.next;
break;
case 'prev':
holder=iL.vars.prevPhoto, item=iL.vars.prev;
break;
}
holder.removeAttr('style class').addClass('ilightbox-holder' + (supportTouch ? ' supportTouch':'')).addClass(obj.options.skin);
$('div.ilightbox-inner-toolbar', holder).remove();
if(obj.title||iL.options.innerToolbar){
var innerToolbar=iL.vars.innerToolbar.clone();
if(obj.title&&iL.options.show.title){
var title=iL.vars.title.clone();
title.empty().html(obj.title);
innerToolbar.append(title);
}
if(iL.options.innerToolbar){
innerToolbar.append((iL.vars.total > 1) ? iL.vars.toolbar.clone():iL.vars.toolbar);
}
holder.prepend(innerToolbar);
}
console.warn('loadContent', arguments);
iL.loadSwitcher(obj, holder, item, opt);
},
loadSwitcher: function(obj, holder, item, opt){
var iL=this,
opts=iL.options,
api={
element: holder,
position: item
};
switch (obj.type){
case 'image':
if(typeof opts.callback.onBeforeLoad=='function') opts.callback.onBeforeLoad.call(iL, iL.ui, item);
if(typeof obj.options.onBeforeLoad=='function') obj.options.onBeforeLoad.call(iL, api);
iL.loadImage(obj.URL, function(img){
if(typeof opts.callback.onAfterLoad=='function') opts.callback.onAfterLoad.call(iL, iL.ui, item);
if(typeof obj.options.onAfterLoad=='function') obj.options.onAfterLoad.call(iL, api);
var width=(img) ? img.width:400,
height=(img) ? img.height:200;
holder.data({
naturalWidth: width,
naturalHeight: height
});
$('div.ilightbox-container', holder).empty().append((img) ? '<img src="' + obj.URL + '" class="ilightbox-image" />':'<span class="ilightbox-alert">' + opts.errors.loadImage + '</span>');
if(typeof opts.callback.onRender=='function') opts.callback.onRender.call(iL, iL.ui, item);
if(typeof obj.options.onRender=='function') obj.options.onRender.call(iL, api);
iL.configureHolder(obj, opt, holder);
});
break;
case 'video':
holder.data({
naturalWidth: obj.options.width,
naturalHeight: obj.options.height
});
if(opt==='current'){
iL.addContent(holder, obj);
if(typeof opts.callback.onRender=='function') opts.callback.onRender.call(iL, iL.ui, item);
if(typeof obj.options.onRender=='function') obj.options.onRender.call(iL, api);
}else{
$('div.ilightbox-container', holder).empty();
}
iL.configureHolder(obj, opt, holder);
break;
case 'iframe':
holder.data({
naturalWidth: obj.options.width,
naturalHeight: obj.options.height
});
iL.configureHolder(obj, opt, holder);
if(opt==='current'){
var el=iL.addContent(holder, obj);
if(typeof opts.callback.onRender=='function') opts.callback.onRender.call(iL, iL.ui, item);
if(typeof obj.options.onRender=='function') obj.options.onRender.call(iL, api);
if(typeof opts.callback.onBeforeLoad=='function') opts.callback.onBeforeLoad.call(iL, iL.ui, item);
if(typeof obj.options.onBeforeLoad=='function') obj.options.onBeforeLoad.call(iL, api);
el.bind('load', function(){
if(typeof opts.callback.onAfterLoad=='function') opts.callback.onAfterLoad.call(iL, iL.ui, item);
if(typeof obj.options.onAfterLoad=='function') obj.options.onAfterLoad.call(iL, api);
el.unbind('load');
});
}else{
$('div.ilightbox-container', holder).empty();
}
break;
case 'inline':
var el=$(obj.URL),
content=iL.addContent(holder, obj),
images=findImageInElement(holder);
holder.data({
naturalWidth: (iL.items[item].options.width||el.outerWidth()),
naturalHeight: (iL.items[item].options.height||el.outerHeight())
});
content.children().eq(0).show();
if(typeof opts.callback.onRender=='function') opts.callback.onRender.call(iL, iL.ui, item);
if(typeof obj.options.onRender=='function') obj.options.onRender.call(iL, api);
if(typeof opts.callback.onBeforeLoad=='function') opts.callback.onBeforeLoad.call(iL, iL.ui, item);
if(typeof obj.options.onBeforeLoad=='function') obj.options.onBeforeLoad.call(iL, api);
iL.loadImage(images, function(){
if(typeof opts.callback.onAfterLoad=='function') opts.callback.onAfterLoad.call(iL, iL.ui, item);
if(typeof obj.options.onAfterLoad=='function') obj.options.onAfterLoad.call(iL, api);
iL.configureHolder(obj, opt, holder);
});
break;
case 'flash':
var el=iL.addContent(holder, obj);
holder.data({
naturalWidth: (iL.items[item].options.width||el.outerWidth()),
naturalHeight: (iL.items[item].options.height||el.outerHeight())
});
if(typeof opts.callback.onRender=='function') opts.callback.onRender.call(iL, iL.ui, item);
if(typeof obj.options.onRender=='function') obj.options.onRender.call(iL, api);
iL.configureHolder(obj, opt, holder);
break;
case 'ajax':
var ajax=obj.options.ajax||{};
if(typeof opts.callback.onBeforeLoad=='function') opts.callback.onBeforeLoad.call(iL, iL.ui, item);
if(typeof obj.options.onBeforeLoad=='function') obj.options.onBeforeLoad.call(iL, api);
iL.showLoader();
$.ajax({
url: obj.URL||opts.ajaxSetup.url,
data: ajax.data||null,
dataType: ajax.dataType||"html",
type: ajax.type||opts.ajaxSetup.type,
cache: ajax.cache||opts.ajaxSetup.cache,
crossDomain: ajax.crossDomain||opts.ajaxSetup.crossDomain,
global: ajax.global||opts.ajaxSetup.global,
ifModified: ajax.ifModified||opts.ajaxSetup.ifModified,
username: ajax.username||opts.ajaxSetup.username,
password: ajax.password||opts.ajaxSetup.password,
beforeSend: ajax.beforeSend||opts.ajaxSetup.beforeSend,
complete: ajax.complete||opts.ajaxSetup.complete,
success: function(data, textStatus, jqXHR){
iL.hideLoader();
var el=$(data),
container=$('div.ilightbox-container', holder),
elWidth=iL.items[item].options.width||parseInt(el[0].getAttribute('width')),
elHeight=iL.items[item].options.height||parseInt(el[0].getAttribute('height')),
css=(el[0].getAttribute('width')&&el[0].getAttribute('height')) ? {
'overflow': 'hidden'
}:{};
container.empty().append($('<div class="ilightbox-wrapper"></div>').css(css).html(el));
holder.show().data({
naturalWidth: (elWidth||container.outerWidth()),
naturalHeight: (elHeight||container.outerHeight())
}).hide();
if(typeof opts.callback.onRender=='function') opts.callback.onRender.call(iL, iL.ui, item);
if(typeof obj.options.onRender=='function') obj.options.onRender.call(iL, api);
var images=findImageInElement(holder);
iL.loadImage(images, function(){
if(typeof opts.callback.onAfterLoad=='function') opts.callback.onAfterLoad.call(iL, iL.ui, item);
if(typeof obj.options.onAfterLoad=='function') obj.options.onAfterLoad.call(iL, api);
iL.configureHolder(obj, opt, holder);
});
opts.ajaxSetup.success(data, textStatus, jqXHR);
if(typeof ajax.success=='function') ajax.success(data, textStatus, jqXHR);
},
error: function(jqXHR, textStatus, errorThrown){
if(typeof opts.callback.onAfterLoad=='function') opts.callback.onAfterLoad.call(iL, iL.ui, item);
if(typeof obj.options.onAfterLoad=='function') obj.options.onAfterLoad.call(iL, api);
iL.hideLoader();
$('div.ilightbox-container', holder).empty().append('<span class="ilightbox-alert">' + opts.errors.loadContents + '</span>');
iL.configureHolder(obj, opt, holder);
opts.ajaxSetup.error(jqXHR, textStatus, errorThrown);
if(typeof ajax.error=='function') ajax.error(jqXHR, textStatus, errorThrown);
}});
break;
case 'html':
var object=obj.URL,
el
container=$('div.ilightbox-container', holder);
if(object[0].nodeName) el=object.clone();
else {
var dom=$(object);
if(dom.selector) el=$('<div>' + dom + '</div>');
else el=dom;
}
var elWidth=iL.items[item].options.width||parseInt(el.attr('width')),
elHeight=iL.items[item].options.height||parseInt(el.attr('height'));
iL.addContent(holder, obj);
el.appendTo(document.documentElement).hide();
if(typeof opts.callback.onRender=='function') opts.callback.onRender.call(iL, iL.ui, item);
if(typeof obj.options.onRender=='function') obj.options.onRender.call(iL, api);
var images=findImageInElement(holder);
if(typeof opts.callback.onBeforeLoad=='function') opts.callback.onBeforeLoad.call(iL, iL.ui, item);
if(typeof obj.options.onBeforeLoad=='function') obj.options.onBeforeLoad.call(iL, api);
iL.loadImage(images, function(){
if(typeof opts.callback.onAfterLoad=='function') opts.callback.onAfterLoad.call(iL, iL.ui, item);
if(typeof obj.options.onAfterLoad=='function') obj.options.onAfterLoad.call(iL, api);
holder.show().data({
naturalWidth: (elWidth||container.outerWidth()),
naturalHeight: (elHeight||container.outerHeight())
}).hide();
el.remove();
iL.configureHolder(obj, opt, holder);
});
break;
}},
configureHolder: function(obj, opt, holder){
var iL=this,
vars=iL.vars,
opts=iL.options;
if(opt!="current")(opt=="next") ? holder.addClass('ilightbox-next'):holder.addClass('ilightbox-prev');
if(opt=="current")
var item=vars.current;
else if(opt=="next")
var opacity=opts.styles.nextOpacity,
item=vars.next;
else
var opacity=opts.styles.prevOpacity,
item=vars.prev;
var api={
element: holder,
position: item
};
iL.items[item].options.width=iL.items[item].options.width||0,
iL.items[item].options.height=iL.items[item].options.height||0;
if(opt=="current"){
if(opts.show.effect) holder.css(transform, gpuAcceleration).fadeIn(obj.speed, function(){
holder.css(transform, '');
if(obj.caption){
iL.setCaption(obj, holder);
var caption=$('div.ilightbox-caption', holder),
percent=parseInt((caption.outerHeight() / holder.outerHeight()) * 100);
if(opts.caption.start & percent <=50) caption.fadeIn(opts.effects.fadeSpeed);
}
var social=obj.options.social;
if(social){
iL.setSocial(social, obj.URL, holder);
if(opts.social.start) $('div.ilightbox-social', holder).fadeIn(opts.effects.fadeSpeed);
}
iL.generateThumbnails();
if(typeof opts.callback.onShow=='function') opts.callback.onShow.call(iL, iL.ui, item);
if(typeof obj.options.onShow=='function') obj.options.onShow.call(iL, api);
});
else {
holder.show();
iL.generateThumbnails();
if(typeof opts.callback.onShow=='function') opts.callback.onShow.call(iL, iL.ui, item);
if(typeof obj.options.onShow=='function') obj.options.onShow.call(iL, api);
}}else{
if(opts.show.effect) holder.fadeTo(obj.speed, opacity, function(){
if(opt=="next") vars.nextLock=false;
else vars.prevLock=false;
iL.generateThumbnails();
if(typeof opts.callback.onShow=='function') opts.callback.onShow.call(iL, iL.ui, item);
if(typeof obj.options.onShow=='function') obj.options.onShow.call(iL, api);
});
else {
holder.css({
opacity: opacity
}).show();
if(opt=="next") vars.nextLock=false;
else vars.prevLock=false;
iL.generateThumbnails();
if(typeof opts.callback.onShow=='function') opts.callback.onShow.call(iL, iL.ui, item);
if(typeof obj.options.onShow=='function') obj.options.onShow.call(iL, api);
}}
setTimeout(function(){
iL.repositionPhoto();
}, 0);
},
generateBoxes: function(){
var iL=this,
vars=iL.vars,
opts=iL.options;
if(opts.infinite&&vars.total >=3){
if(vars.current==vars.total - 1) vars.next=0;
if(vars.current==0) vars.prev=vars.total - 1;
} else opts.infinite=false;
iL.loadContent(iL.items[vars.current], 'current', opts.show.speed);
if(iL.items[vars.next]) iL.loadContent(iL.items[vars.next], 'next', opts.show.speed);
if(iL.items[vars.prev]) iL.loadContent(iL.items[vars.prev], 'prev', opts.show.speed);
},
generateThumbnails: function(){
var iL=this,
vars=iL.vars,
opts=iL.options,
timeOut=null;
if(vars.thumbs&&!iL.vars.dontGenerateThumbs){
var thumbnails=vars.thumbnails,
container=$('div.ilightbox-thumbnails-container', thumbnails),
grid=$('div.ilightbox-thumbnails-grid', container),
i=0;
grid.removeAttr('style').empty();
$.each(iL.items, function(key, val){
var isActive=(vars.current==key) ? 'ilightbox-active':'',
opacity=(vars.current==key) ? opts.thumbnails.activeOpacity:opts.thumbnails.normalOpacity,
thumb=val.options.thumbnail,
thumbnail=$('<div class="ilightbox-thumbnail"></div>'),
icon=$('<div class="ilightbox-thumbnail-icon"></div>');
thumbnail.css({
opacity: 0
}).addClass(isActive);
if((val.type=="video"||val.type=="flash")&&typeof val.options.icon=='undefined'){
icon.addClass('ilightbox-thumbnail-video');
thumbnail.append(icon);
}else if(val.options.icon){
icon.addClass('ilightbox-thumbnail-' + val.options.icon);
thumbnail.append(icon);
}
if(thumb) iL.loadImage(thumb, function(img){
i++;
if(img) thumbnail.data({
naturalWidth: img.width,
naturalHeight: img.height
}).append('<img src="' + thumb + '" border="0" />');
else thumbnail.data({
naturalWidth: opts.thumbnails.maxWidth,
naturalHeight: opts.thumbnails.maxHeight
});
clearTimeout(timeOut);
timeOut=setTimeout(function(){
iL.positionThumbnails(thumbnails, container, grid);
}, 20);
setTimeout(function(){
thumbnail.fadeTo(opts.effects.loadedFadeSpeed, opacity);
}, i * 20);
});
grid.append(thumbnail);
});
iL.vars.dontGenerateThumbs=true;
}},
positionThumbnails: function(thumbnails, container, grid){
var iL=this,
vars=iL.vars,
opts=iL.options,
viewport=getViewport(),
path=opts.path.toLowerCase();
if(!thumbnails) thumbnails=vars.thumbnails;
if(!container) container=$('div.ilightbox-thumbnails-container', thumbnails);
if(!grid) grid=$('div.ilightbox-thumbnails-grid', container);
var thumbs=$('.ilightbox-thumbnail', grid),
widthAvail=(path=='horizontal') ? viewport.width - opts.styles.pageOffsetX:thumbs.eq(0).outerWidth() - opts.styles.pageOffsetX,
heightAvail=(path=='horizontal') ? thumbs.eq(0).outerHeight() - opts.styles.pageOffsetY:viewport.height - opts.styles.pageOffsetY,
gridWidth=(path=='horizontal') ? 0:widthAvail,
gridHeight=(path=='horizontal') ? heightAvail:0,
active=$('.ilightbox-active', grid),
gridCss={},
css={};
if(arguments.length < 3){
thumbs.css({
opacity: opts.thumbnails.normalOpacity
});
active.css({
opacity: opts.thumbnails.activeOpacity
});
}
thumbs.each(function(i){
var t=$(this),
data=t.data(),
width=(path=='horizontal') ? 0:opts.thumbnails.maxWidth;
height=(path=='horizontal') ? opts.thumbnails.maxHeight:0;
dims=iL.getNewDimenstions(width, height, data.naturalWidth, data.naturalHeight, true);
t.css({
width: dims.width,
height: dims.height
});
if(path=='horizontal') t.css({
'float': 'left'
});
(path=='horizontal') ? (
gridWidth +=t.outerWidth()
):(
gridHeight +=t.outerHeight()
);
});
gridCss={
width: gridWidth,
height: gridHeight
};
grid.css(gridCss);
gridCss={};
var gridOffset=grid.offset(),
activeOffset=(active.length) ? active.offset():{
top: parseInt(heightAvail / 2),
left: parseInt(widthAvail / 2)
};
gridOffset.top=(gridOffset.top - $doc.scrollTop()),
gridOffset.left=(gridOffset.left - $doc.scrollLeft()),
activeOffset.top=(activeOffset.top - gridOffset.top - $doc.scrollTop()),
activeOffset.left=(activeOffset.left - gridOffset.left - $doc.scrollLeft());
(path=='horizontal') ? (
gridCss.top=0,
gridCss.left=parseInt((widthAvail / 2) - activeOffset.left - (active.outerWidth() / 2))
):(
gridCss.top=parseInt(((heightAvail / 2) - activeOffset.top - (active.outerHeight() / 2))),
gridCss.left=0
);
if(arguments.length < 3) grid.stop().animate(gridCss, opts.effects.repositionSpeed, 'easeOutCirc');
else grid.css(gridCss);
},
loadImage: function(image, callback){
if(!$.isArray(image)) image=[image];
var iL=this,
length=image.length;
if(length > 0){
iL.showLoader();
$.each(image, function(index, value){
var img=new Image();
img.onload=function(){
length -=1;
if(length==0){
iL.hideLoader();
callback(img);
}};
img.onerror=img.onabort=function(){
length -=1;
if(length==0){
iL.hideLoader();
callback(false);
}};
img.src=image[index];
});
} else callback(false);
},
patchItemsEvents: function(){
var iL=this,
vars=iL.vars,
clickEvent=supportTouch ? "itap.iL":"click.iL",
vEvent=supportTouch ? "click.iL":"itap.iL";
if(iL.context&&iL.selector){
var $items=$(iL.selector, iL.context);
$(iL.context).on(clickEvent, iL.selector, function(){
var $this=$(this),
key=$items.index($this);
if($('body').hasClass('mobile-browser')&&$('body').hasClass('mobile-two-click')){
if(!$this.hasClass('hovered')){
$this.addClass('hovered');
return false;
}}
vars.current=key;
vars.next=iL.items[key + 1] ? key + 1:null;
vars.prev=iL.items[key - 1] ? key - 1:null;
iL.addContents();
iL.patchEvents();
return false;
}).on(vEvent, iL.selector, function(){
return false;
});
} else
$.each(iL.itemsObject, function(key, val){
val.on(clickEvent, function(){
vars.current=key;
vars.next=iL.items[key + 1] ? key + 1:null;
vars.prev=iL.items[key - 1] ? key - 1:null;
iL.addContents();
iL.patchEvents();
return false;
}).on(vEvent, function(){
return false;
});
});
},
dispatchItemsEvents: function(){
var iL=this,
vars=iL.vars,
opts=iL.options;
if(iL.context&&iL.selector)
$(iL.context).off('.iL', iL.selector);
else
$.each(iL.itemsObject, function(key, val){
val.off('.iL');
});
},
refresh: function(){
var iL=this;
iL.dispatchItemsEvents();
iL.attachItems();
iL.normalizeItems();
iL.patchItemsEvents();
},
patchEvents: function(){
var iL=this,
vars=iL.vars,
opts=iL.options,
path=opts.path.toLowerCase(),
holders=$('.ilightbox-holder'),
fullscreenEvent=fullScreenApi.fullScreenEventName + '.iLightBox',
durationThreshold=1000,
horizontalDistanceThreshold =
verticalDistanceThreshold=100,
buttonsArray=[vars.nextButton[0], vars.prevButton[0], vars.nextButton[0].firstChild, vars.prevButton[0].firstChild];
$win.bind('resize.iLightBox', function(){
var viewport=getViewport();
if(opts.mobileOptimizer&&!opts.innerToolbar) vars.isMobile=viewport.width <=vars.mobileMaxWidth;
vars.BODY[vars.isMobile ? 'addClass':'removeClass']('isMobile');
iL.repositionPhoto(null);
if(supportTouch){
clearTimeout(vars.setTime);
vars.setTime=setTimeout(function(){
var scrollTop=getScrollXY().y;
window.scrollTo(0, scrollTop - 30);
window.scrollTo(0, scrollTop + 30);
window.scrollTo(0, scrollTop);
}, 2000);
}
if(vars.thumbs) iL.positionThumbnails();
}).bind('keydown.iLightBox', function(event){
if(opts.controls.keyboard){
switch (event.keyCode){
case 13:
if(event.shiftKey&&opts.keyboard.shift_enter) iL.fullScreenAction();
break;
case 27:
if(opts.keyboard.esc) iL.closeAction();
break;
case 37:
if(opts.keyboard.left&&!vars.lockKey) iL.moveTo('prev');
break;
case 38:
if(opts.keyboard.up&&!vars.lockKey) iL.moveTo('prev');
break;
case 39:
if(opts.keyboard.right&&!vars.lockKey) iL.moveTo('next');
break;
case 40:
if(opts.keyboard.down&&!vars.lockKey) iL.moveTo('next');
break;
}}
});
if(fullScreenApi.supportsFullScreen) $win.bind(fullscreenEvent, function(){
iL.doFullscreen();
});
var holderEventsArr=[opts.caption.show + '.iLightBox', opts.caption.hide + '.iLightBox', opts.social.show + '.iLightBox', opts.social.hide + '.iLightBox'].filter(function(e, i, arr){
return arr.lastIndexOf(e)===i;
}),
holderEvents="";
$.each(holderEventsArr, function(key, val){
if(key!=0) holderEvents +=' ';
holderEvents +=val;
});
$doc.on(clickEvent, '.ilightbox-overlay', function(){
if(opts.overlay.blur) iL.closeAction();
}).on(clickEvent, '.ilightbox-next, .ilightbox-next-button', function(){
iL.moveTo('next');
}).on(clickEvent, '.ilightbox-prev, .ilightbox-prev-button', function(){
iL.moveTo('prev');
}).on(clickEvent, '.ilightbox-thumbnail', function(){
var t=$(this),
thumbs=$('.ilightbox-thumbnail', vars.thumbnails),
index=thumbs.index(t);
if(index!=vars.current) iL.goTo(index);
}).on(holderEvents, '.ilightbox-holder:not(.ilightbox-next, .ilightbox-prev)', function(e){
var caption=$('div.ilightbox-caption', vars.holder),
social=$('div.ilightbox-social', vars.holder),
fadeSpeed=opts.effects.fadeSpeed;
if(vars.nextLock||vars.prevLock){
if(e.type==opts.caption.show&&!caption.is(':visible')) caption.fadeIn(fadeSpeed);
else if(e.type==opts.caption.hide&&caption.is(':visible')) caption.fadeOut(fadeSpeed);
if(e.type==opts.social.show&&!social.is(':visible')) social.fadeIn(fadeSpeed);
else if(e.type==opts.social.hide&&social.is(':visible')) social.fadeOut(fadeSpeed);
}else{
if(e.type==opts.caption.show&&!caption.is(':visible')) caption.stop().fadeIn(fadeSpeed);
else if(e.type==opts.caption.hide&&caption.is(':visible')) caption.stop().fadeOut(fadeSpeed);
if(e.type==opts.social.show&&!social.is(':visible')) social.stop().fadeIn(fadeSpeed);
else if(e.type==opts.social.hide&&social.is(':visible')) social.stop().fadeOut(fadeSpeed);
}}).on('mouseenter.iLightBox mouseleave.iLightBox', '.ilightbox-wrapper', function(e){
if(e.type=='mouseenter') vars.lockWheel=true;
else vars.lockWheel=false;
}).on(clickEvent, '.ilightbox-toolbar a.ilightbox-close, .ilightbox-toolbar a.ilightbox-fullscreen, .ilightbox-toolbar a.ilightbox-play, .ilightbox-toolbar a.ilightbox-pause', function(){
var t=$(this);
if(t.hasClass('ilightbox-fullscreen')) iL.fullScreenAction();
else if(t.hasClass('ilightbox-play')){
iL.resume();
t.addClass('ilightbox-pause').removeClass('ilightbox-play');
}else if(t.hasClass('ilightbox-pause')){
iL.pause();
t.addClass('ilightbox-play').removeClass('ilightbox-pause');
} else iL.closeAction();
}).on(touchMoveEvent, '.ilightbox-overlay, .ilightbox-thumbnails-container', function(e){
e.preventDefault();
});
function mouseMoveHandler(e){
if(!vars.isMobile){
if(!vars.mouseID){
vars.hideableElements.show();
}
vars.mouseID=clearTimeout(vars.mouseID);
if(buttonsArray.indexOf(e.target)===-1)
vars.mouseID=setTimeout(function(){
vars.hideableElements.hide();
vars.mouseID=clearTimeout(vars.mouseID);
}, 3000);
}}
if(opts.controls.arrows&&!supportTouch) $doc.on('mousemove.iLightBox', mouseMoveHandler);
if(opts.controls.slideshow&&opts.slideshow.pauseOnHover) $doc.on('mouseenter.iLightBox mouseleave.iLightBox', '.ilightbox-holder:not(.ilightbox-next, .ilightbox-prev)', function(e){
if(e.type=='mouseenter'&&vars.cycleID) iL.pause();
else if(e.type=='mouseleave'&&vars.isPaused) iL.resume();
});
var switchers=$('.ilightbox-overlay, .ilightbox-holder, .ilightbox-thumbnails');
if(opts.controls.mousewheel) switchers.on('mousewheel.iLightBox', function(event, delta){
if(!vars.lockWheel){
event.preventDefault();
if(delta < 0) iL.moveTo('next');
else if(delta > 0) iL.moveTo('prev');
}});
if(opts.controls.swipe) holders.on(touchStartEvent, function(event){
if(vars.nextLock||vars.prevLock||vars.total==1||vars.lockSwipe) return;
vars.BODY.addClass('ilightbox-closedhand');
var data=event.originalEvent.touches ? event.originalEvent.touches[0]:event,
scrollTop=$doc.scrollTop(),
scrollLeft=$doc.scrollLeft(),
offsets=[
holders.eq(0).offset(),
holders.eq(1).offset(),
holders.eq(2).offset()
],
offSet=[{
top: offsets[0].top - scrollTop,
left: offsets[0].left - scrollLeft
}, {
top: offsets[1].top - scrollTop,
left: offsets[1].left - scrollLeft
}, {
top: offsets[2].top - scrollTop,
left: offsets[2].left - scrollLeft
}],
start={
time: (new Date()).getTime(),
coords: [data.pageX - scrollLeft, data.pageY - scrollTop]
},
stop;
function moveEachHandler(i){
var t=$(this),
offset=offSet[i],
scroll=[(start.coords[0] - stop.coords[0]), (start.coords[1] - stop.coords[1])];
t[0].style[path=="horizontal" ? 'left':'top']=(path=="horizontal" ? offset.left - scroll[0]:offset.top - scroll[1]) + 'px';
}
function moveHandler(event){
if(!start) return;
var data=event.originalEvent.touches ? event.originalEvent.touches[0]:event;
stop={
time: (new Date()).getTime(),
coords: [data.pageX - scrollLeft, data.pageY - scrollTop]
};
holders.each(moveEachHandler);
event.preventDefault();
}
function repositionHolders(){
holders.each(function(){
var t=$(this),
offset=t.data('offset')||{
top: t.offset().top - scrollTop,
left: t.offset().left - scrollLeft
},
top=offset.top,
left=offset.left;
t.css(transform, gpuAcceleration).stop().animate({
top: top,
left: left
}, 500, 'easeOutCirc', function(){
t.css(transform, '');
});
});
}
holders.bind(touchMoveEvent, moveHandler);
$doc.one(touchStopEvent, function(event){
holders.unbind(touchMoveEvent, moveHandler);
vars.BODY.removeClass('ilightbox-closedhand');
if(start&&stop){
if(path=="horizontal"&&stop.time - start.time < durationThreshold&&abs(start.coords[0] - stop.coords[0]) > horizontalDistanceThreshold&&abs(start.coords[1] - stop.coords[1]) < verticalDistanceThreshold){
if(start.coords[0] > stop.coords[0]){
if(vars.current==vars.total - 1&&!opts.infinite) repositionHolders();
else {
vars.isSwipe=true;
iL.moveTo('next');
}}else{
if(vars.current==0&&!opts.infinite) repositionHolders();
else {
vars.isSwipe=true;
iL.moveTo('prev');
}}
}else if(path=="vertical"&&stop.time - start.time < durationThreshold&&abs(start.coords[1] - stop.coords[1]) > horizontalDistanceThreshold&&abs(start.coords[0] - stop.coords[0]) < verticalDistanceThreshold){
if(start.coords[1] > stop.coords[1]){
if(vars.current==vars.total - 1&&!opts.infinite) repositionHolders();
else {
vars.isSwipe=true;
iL.moveTo('next');
}}else{
if(vars.current==0&&!opts.infinite) repositionHolders();
else {
vars.isSwipe=true;
iL.moveTo('prev');
}}
} else repositionHolders();
}
start=stop=undefined;
});
});
},
goTo: function(index){
var iL=this,
vars=iL.vars,
opts=iL.options,
diff=(index - vars.current);
if(opts.infinite){
if(index==vars.total - 1&&vars.current==0) diff=-1;
if(vars.current==vars.total - 1&&index==0) diff=1;
}
if(diff==1) iL.moveTo('next');
else if(diff==-1) iL.moveTo('prev');
else {
if(vars.nextLock||vars.prevLock) return false;
if(typeof opts.callback.onBeforeChange=='function') opts.callback.onBeforeChange.call(iL, iL.ui);
if(opts.linkId){
vars.hashLock=true;
window.location.hash=opts.linkId + '/' + index;
}
if(iL.items[index]){
if(!iL.items[index].options.mousewheel) vars.lockWheel=true;
else iL.vars.lockWheel=false;
if(!iL.items[index].options.swipe) vars.lockSwipe=true;
else vars.lockSwipe=false;
}
$.each([vars.holder, vars.nextPhoto, vars.prevPhoto], function(key, val){
val.css(transform, gpuAcceleration).fadeOut(opts.effects.loadedFadeSpeed);
});
vars.current=index;
vars.next=index + 1;
vars.prev=index - 1;
iL.createUI();
setTimeout(function(){
iL.generateBoxes();
}, opts.effects.loadedFadeSpeed + 50);
$('.ilightbox-thumbnail', vars.thumbnails).removeClass('ilightbox-active').eq(index).addClass('ilightbox-active');
iL.positionThumbnails();
if(opts.linkId) setTimeout(function(){
vars.hashLock=false;
}, 55);
if(!opts.infinite){
vars.nextButton.add(vars.prevButton).add(vars.innerPrevButton).add(vars.innerNextButton).removeClass('disabled');
if(vars.current==0){
vars.prevButton.add(vars.innerPrevButton).addClass('disabled');
}
if(vars.current >=vars.total - 1){
vars.nextButton.add(vars.innerNextButton).addClass('disabled');
}}
iL.resetCycle();
if(typeof opts.callback.onAfterChange=='function') opts.callback.onAfterChange.call(iL, iL.ui);
}},
moveTo: function(side){
var iL=this,
vars=iL.vars,
opts=iL.options,
path=opts.path.toLowerCase(),
viewport=getViewport(),
switchSpeed=opts.effects.switchSpeed;
if(vars.nextLock||vars.prevLock) return false;
else {
var item=(side=="next") ? vars.next:vars.prev;
if(opts.linkId){
vars.hashLock=true;
window.location.hash=opts.linkId + '/' + item;
}
if(side=="next"){
if(!iL.items[item]) return false;
var firstHolder=vars.nextPhoto,
secondHolder=vars.holder,
lastHolder=vars.prevPhoto,
firstClass='ilightbox-prev',
secondClass='ilightbox-next';
}else if(side=="prev"){
if(!iL.items[item]) return false;
var firstHolder=vars.prevPhoto,
secondHolder=vars.holder,
lastHolder=vars.nextPhoto,
firstClass='ilightbox-next',
secondClass='ilightbox-prev';
}
if(typeof opts.callback.onBeforeChange=='function')
opts.callback.onBeforeChange.call(iL, iL.ui);
(side=="next") ? vars.nextLock=true: vars.prevLock=true;
var captionFirst=$('div.ilightbox-caption', secondHolder),
socialFirst=$('div.ilightbox-social', secondHolder);
if(captionFirst.length)
captionFirst.stop().fadeOut(switchSpeed, function(){
$(this).remove();
});
if(socialFirst.length)
socialFirst.stop().fadeOut(switchSpeed, function(){
$(this).remove();
});
if(iL.items[item].caption){
iL.setCaption(iL.items[item], firstHolder);
var caption=$('div.ilightbox-caption', firstHolder),
percent=parseInt((caption.outerHeight() / firstHolder.outerHeight()) * 100);
if(opts.caption.start&&percent <=50) caption.fadeIn(switchSpeed);
}
var social=iL.items[item].options.social;
if(social){
iL.setSocial(social, iL.items[item].URL, firstHolder);
if(opts.social.start) $('div.ilightbox-social', firstHolder).fadeIn(opts.effects.fadeSpeed);
}
$.each([firstHolder, secondHolder, lastHolder], function(key, val){
val.removeClass('ilightbox-next ilightbox-prev');
});
var firstOffset=firstHolder.data('offset'),
winW=(viewport.width - (opts.styles.pageOffsetX)),
winH=(viewport.height - (opts.styles.pageOffsetY)),
width=firstOffset.newDims.width,
height=firstOffset.newDims.height,
thumbsOffset=firstOffset.thumbsOffset,
diff=firstOffset.diff,
top=parseInt((winH / 2) - (height / 2) - diff.H - (thumbsOffset.H / 2)),
left=parseInt((winW / 2) - (width / 2) - diff.W - (thumbsOffset.W / 2));
firstHolder.css(transform, gpuAcceleration).animate({
top: top,
left: left,
opacity: 1
}, switchSpeed, (vars.isSwipe) ? 'easeOutCirc':'easeInOutCirc', function(){
firstHolder.css(transform, '');
});
$('div.ilightbox-container', firstHolder).animate({
width: width,
height: height
}, switchSpeed, (vars.isSwipe) ? 'easeOutCirc':'easeInOutCirc');
var secondOffset=secondHolder.data('offset'),
object=secondOffset.object;
diff=secondOffset.diff;
width=secondOffset.newDims.width,
height=secondOffset.newDims.height;
width=parseInt(width * opts.styles[side=='next' ? 'prevScale':'nextScale']),
height=parseInt(height * opts.styles[side=='next' ? 'prevScale':'nextScale']),
top=(path=='horizontal') ? parseInt((winH / 2) - object.offsetY - (height / 2) - diff.H - (thumbsOffset.H / 2)):parseInt(winH - object.offsetX - diff.H - (thumbsOffset.H / 2));
if(side=='prev')
left=(path=='horizontal') ? parseInt(winW - object.offsetX - diff.W - (thumbsOffset.W / 2)):parseInt((winW / 2) - (width / 2) - diff.W - object.offsetY - (thumbsOffset.W / 2));
else {
top=(path=='horizontal') ? top:parseInt(object.offsetX - diff.H - height - (thumbsOffset.H / 2)),
left=(path=='horizontal') ? parseInt(object.offsetX - diff.W - width - (thumbsOffset.W / 2)):parseInt((winW / 2) - object.offsetY - (width / 2) - diff.W - (thumbsOffset.W / 2));
}
$('div.ilightbox-container', secondHolder).animate({
width: width,
height: height
}, switchSpeed, (vars.isSwipe) ? 'easeOutCirc':'easeInOutCirc');
secondHolder.addClass(firstClass).css(transform, gpuAcceleration).animate({
top: top,
left: left,
opacity: opts.styles.prevOpacity
}, switchSpeed, (vars.isSwipe) ? 'easeOutCirc':'easeInOutCirc', function(){
secondHolder.css(transform, '');
$('.ilightbox-thumbnail', vars.thumbnails).removeClass('ilightbox-active').eq(item).addClass('ilightbox-active');
iL.positionThumbnails();
if(iL.items[item]){
if(!iL.items[item].options.mousewheel) vars.lockWheel=true;
else vars.lockWheel=false;
if(!iL.items[item].options.swipe) vars.lockSwipe=true;
else vars.lockSwipe=false;
}
vars.isSwipe=false;
if(['iframe', 'video'].indexOf(iL.items[vars.current].type)!==-1){
$('div.ilightbox-container', secondHolder).empty();
}
if(side=="next"){
vars.nextPhoto=lastHolder,
vars.prevPhoto=secondHolder,
vars.holder=firstHolder;
vars.nextPhoto.hide();
vars.next=vars.next + 1,
vars.prev=vars.current,
vars.current=vars.current + 1;
if(opts.infinite){
if(vars.current > vars.total - 1) vars.current=0;
if(vars.current==vars.total - 1) vars.next=0;
if(vars.current==0) vars.prev=vars.total - 1;
}
iL.createUI();
if(!iL.items[vars.next])
vars.nextLock=false;
else
iL.loadContent(iL.items[vars.next], 'next');
}else{
vars.prevPhoto=lastHolder;
vars.nextPhoto=secondHolder;
vars.holder=firstHolder;
vars.prevPhoto.hide();
vars.next=vars.current;
vars.current=vars.prev;
vars.prev=vars.current - 1;
if(opts.infinite){
if(vars.current==vars.total - 1) vars.next=0;
if(vars.current==0) vars.prev=vars.total - 1;
}
iL.createUI();
if(!iL.items[vars.prev])
vars.prevLock=false;
else
iL.loadContent(iL.items[vars.prev], 'prev');
}
if(['iframe', 'video'].indexOf(iL.items[vars.current].type)!==-1){
iL.loadContent(iL.items[vars.current], 'current');
}
if(opts.linkId) setTimeout(function(){
vars.hashLock=false;
}, 55);
if(!opts.infinite){
vars.nextButton.add(vars.prevButton).add(vars.innerPrevButton).add(vars.innerNextButton).removeClass('disabled');
if(vars.current==0)
vars.prevButton.add(vars.innerPrevButton).addClass('disabled');
if(vars.current >=vars.total - 1)
vars.nextButton.add(vars.innerNextButton).addClass('disabled');
}
iL.repositionPhoto();
iL.resetCycle();
if(typeof opts.callback.onAfterChange=='function')
opts.callback.onAfterChange.call(iL, iL.ui);
});
top=(path=='horizontal') ? getPixel(lastHolder, 'top'):((side=="next") ? parseInt(-(winH / 2) - lastHolder.outerHeight()):parseInt(top * 2)),
left=(path=='horizontal') ? ((side=="next") ? parseInt(-(winW / 2) - lastHolder.outerWidth()):parseInt(left * 2)):getPixel(lastHolder, 'left');
lastHolder.css(transform, gpuAcceleration).animate({
top: top,
left: left,
opacity: opts.styles.nextOpacity
}, switchSpeed, (vars.isSwipe) ? 'easeOutCirc':'easeInOutCirc', function(){
lastHolder.css(transform, '');
}).addClass(secondClass);
}},
setCaption: function(obj, target){
var iL=this,
caption=$('<div class="ilightbox-caption"></div>');
if(obj.caption){
caption.html(obj.caption);
$('div.ilightbox-container', target).append(caption);
}},
normalizeSocial: function(obj, url){
var iL=this,
vars=iL.vars,
opts=iL.options,
baseURL=window.location.href;
$.each(obj, function(key, value){
if(!value)
return true;
var item=key.toLowerCase(),
source, text;
switch (item){
case 'facebook':
source="http://www.facebook.com/share.php?v=4&src=bm&u={URL}",
text="Share on Facebook";
break;
case 'twitter':
source="http://twitter.com/home?status={URL}",
text="Share on Twitter";
break;
case 'googleplus':
source="https://plus.google.com/share?url={URL}",
text="Share on Google+";
break;
case 'delicious':
source="http://delicious.com/post?url={URL}",
text="Share on Delicious";
break;
case 'digg':
source="http://digg.com/submit?phase=2&url={URL}",
text="Share on Digg";
break;
case 'reddit':
source="http://reddit.com/submit?url={URL}",
text="Share on reddit";
break;
}
obj[key]={
URL: value.URL&&absolutizeURI(baseURL, value.URL)||opts.linkId&&window.location.href||typeof url!=='string'&&baseURL||url&&absolutizeURI(baseURL, url)||baseURL,
source: value.source||source||value.URL&&absolutizeURI(baseURL, value.URL)||url&&absolutizeURI(baseURL, url),
text: value.text||text||"Share on " + key,
width: (typeof(value.width)!='undefined'&&!isNaN(value.width)) ? parseInt(value.width):640,
height: value.height||360
};});
return obj;
},
setSocial: function(obj, url, target){
var iL=this,
socialBar=$('<div class="ilightbox-social"></div>'),
buttons='<ul>';
obj=iL.normalizeSocial(obj, url);
$.each(obj, function(key, value){
if(value&&value.source){
var item=key.toLowerCase(),
source=value.source.replace(/\{URL\}/g, encodeURIComponent(value.URL).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+'));
buttons +='<li class="' + key + '"><a href="' + source + '" onclick="javascript:window.open(this.href' + ((value.width <=0||value.height <=0) ? '':', \'\', \'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=' + value.height + ',width=' + value.width + ',left=40,top=40\'') + ');return false;" title="' + value.text + '" target="_blank"></a></li>';
}});
buttons +='</ul>';
socialBar.html(buttons);
$('div.ilightbox-container', target).append(socialBar);
},
fullScreenAction: function(){
var iL=this,
vars=iL.vars;
if(fullScreenApi.supportsFullScreen){
if(fullScreenApi.isFullScreen()) fullScreenApi.cancelFullScreen(document.documentElement);
else fullScreenApi.requestFullScreen(document.documentElement);
}else{
iL.doFullscreen();
}},
doFullscreen: function(){
var iL=this,
vars=iL.vars,
viewport=getViewport(),
opts=iL.options;
if(opts.fullAlone){
var currentHolder=vars.holder,
current=iL.items[vars.current],
windowWidth=viewport.width,
windowHeight=viewport.height,
elements=[currentHolder, vars.nextPhoto, vars.prevPhoto, vars.nextButton, vars.prevButton, vars.overlay, vars.toolbar, vars.thumbnails, vars.loader],
hideElements=[vars.nextPhoto, vars.prevPhoto, vars.nextButton, vars.prevButton, vars.loader, vars.thumbnails];
if(!vars.isInFullScreen){
vars.isInFullScreen=vars.lockKey=vars.lockWheel=vars.lockSwipe=true;
vars.overlay.css({
opacity: 1
});
$.each(hideElements, function(i, element){
element.hide();
});
vars.fullScreenButton.attr('title', opts.text.exitFullscreen);
if(opts.fullStretchTypes.indexOf(current.type)!=-1) currentHolder.data({
naturalWidthOld: currentHolder.data('naturalWidth'),
naturalHeightOld: currentHolder.data('naturalHeight'),
naturalWidth: windowWidth,
naturalHeight: windowHeight
});
else {
var viewport=current.options.fullViewPort||opts.fullViewPort||'',
newWidth=windowWidth,
newHeight=windowHeight,
width=currentHolder.data('naturalWidth'),
height=currentHolder.data('naturalHeight');
if(viewport.toLowerCase()=='fill'){
newHeight=(newWidth / width) * height;
if(newHeight < windowHeight){
newWidth=(windowHeight / height) * width,
newHeight=windowHeight;
}}else if(viewport.toLowerCase()=='fit'){
var dims=iL.getNewDimenstions(newWidth, newHeight, width, height, true);
newWidth=dims.width,
newHeight=dims.height;
}else if(viewport.toLowerCase()=='stretch'){
newWidth=newWidth,
newHeight=newHeight;
}else{
var scale=(width > newWidth||height > newHeight) ? true:false,
dims=iL.getNewDimenstions(newWidth, newHeight, width, height, scale);
newWidth=dims.width,
newHeight=dims.height;
}
currentHolder.data({
naturalWidthOld: currentHolder.data('naturalWidth'),
naturalHeightOld: currentHolder.data('naturalHeight'),
naturalWidth: newWidth,
naturalHeight: newHeight
});
}
$.each(elements, function(key, val){
val.addClass('ilightbox-fullscreen');
});
if(typeof opts.callback.onEnterFullScreen=='function') opts.callback.onEnterFullScreen.call(iL, iL.ui);
}else{
vars.isInFullScreen=vars.lockKey=vars.lockWheel=vars.lockSwipe=false;
vars.overlay.css({
opacity: iL.options.overlay.opacity
});
$.each(hideElements, function(i, element){
element.show();
});
vars.fullScreenButton.attr('title', opts.text.enterFullscreen);
currentHolder.data({
naturalWidth: currentHolder.data('naturalWidthOld'),
naturalHeight: currentHolder.data('naturalHeightOld'),
naturalWidthOld: null,
naturalHeightOld: null
});
$.each(elements, function(key, val){
val.removeClass('ilightbox-fullscreen');
});
if(typeof opts.callback.onExitFullScreen=='function') opts.callback.onExitFullScreen.call(iL, iL.ui);
}}else{
if(!vars.isInFullScreen) vars.isInFullScreen=true;
else vars.isInFullScreen=false;
}
iL.repositionPhoto(true);
},
closeAction: function(){
var iL=this,
vars=iL.vars,
opts=iL.options;
$win.unbind('.iLightBox');
$doc.off('.iLightBox');
if(vars.isInFullScreen) fullScreenApi.cancelFullScreen(document.documentElement);
$('.ilightbox-overlay, .ilightbox-holder, .ilightbox-thumbnails').off('.iLightBox');
if(opts.hide.effect) vars.overlay.stop().fadeOut(opts.hide.speed, function(){
vars.overlay.remove();
vars.BODY.removeClass('ilightbox-noscroll').off('.iLightBox');
});
else {
vars.overlay.remove();
vars.BODY.removeClass('ilightbox-noscroll').off('.iLightBox');
}
var fadeOuts=[vars.toolbar, vars.holder, vars.nextPhoto, vars.prevPhoto, vars.nextButton, vars.prevButton, vars.loader, vars.thumbnails];
$.each(fadeOuts, function(i, element){
element.removeAttr('style').remove();
});
vars.dontGenerateThumbs=vars.isInFullScreen=false;
window.iLightBox=null;
if(opts.linkId){
vars.hashLock=true;
removeHash();
setTimeout(function(){
vars.hashLock=false;
}, 55);
}
if(typeof opts.callback.onHide=='function') opts.callback.onHide.call(iL, iL.ui);
},
repositionPhoto: function(){
var iL=this,
vars=iL.vars,
opts=iL.options,
path=opts.path.toLowerCase(),
viewport=getViewport(),
winWidth=viewport.width,
winHeight=viewport.height;
var thumbsOffsetW=(vars.isInFullScreen&&opts.fullAlone||vars.isMobile) ? 0:((path=='horizontal') ? 0:vars.thumbnails.outerWidth()),
thumbsOffsetH=vars.isMobile ? vars.toolbar.outerHeight():((vars.isInFullScreen&&opts.fullAlone) ? 0:((path=='horizontal') ? vars.thumbnails.outerHeight():0)),
width=(vars.isInFullScreen&&opts.fullAlone) ? winWidth:(winWidth - (opts.styles.pageOffsetX)),
height=(vars.isInFullScreen&&opts.fullAlone) ? winHeight:(winHeight - (opts.styles.pageOffsetY)),
offsetW=(path=='horizontal') ? parseInt((iL.items[vars.next]||iL.items[vars.prev]) ? ((opts.styles.nextOffsetX + opts.styles.prevOffsetX)) * 2:(((width / 10) <=30) ? 30:(width / 10))):parseInt(((width / 10) <=30) ? 30:(width / 10)) + thumbsOffsetW,
offsetH=(path=='horizontal') ? parseInt(((height / 10) <=30) ? 30:(height / 10)) + thumbsOffsetH:parseInt((iL.items[vars.next]||iL.items[vars.prev]) ? ((opts.styles.nextOffsetX + opts.styles.prevOffsetX)) * 2:(((height / 10) <=30) ? 30:(height / 10)));
var elObject={
type: 'current',
width: width,
height: height,
item: iL.items[vars.current],
offsetW: offsetW,
offsetH: offsetH,
thumbsOffsetW: thumbsOffsetW,
thumbsOffsetH: thumbsOffsetH,
animate: arguments.length,
holder: vars.holder
};
iL.repositionEl(elObject);
if(iL.items[vars.next]){
elObject=$.extend(elObject, {
type: 'next',
item: iL.items[vars.next],
offsetX: opts.styles.nextOffsetX,
offsetY: opts.styles.nextOffsetY,
holder: vars.nextPhoto
});
iL.repositionEl(elObject);
}
if(iL.items[vars.prev]){
elObject=$.extend(elObject, {
type: 'prev',
item: iL.items[vars.prev],
offsetX: opts.styles.prevOffsetX,
offsetY: opts.styles.prevOffsetY,
holder: vars.prevPhoto
});
iL.repositionEl(elObject);
}
var loaderCss=(path=="horizontal") ? {
left: parseInt((width / 2) - (vars.loader.outerWidth() / 2))
}:{
top: parseInt((height / 2) - (vars.loader.outerHeight() / 2))
};
vars.loader.css(loaderCss);
},
repositionEl: function(obj){
var iL=this,
vars=iL.vars,
opts=iL.options,
path=opts.path.toLowerCase(),
widthAvail=(obj.type=='current') ? ((vars.isInFullScreen&&opts.fullAlone) ? obj.width:(obj.width - obj.offsetW)):(obj.width - obj.offsetW),
heightAvail=(obj.type=='current') ? ((vars.isInFullScreen&&opts.fullAlone) ? obj.height:(obj.height - obj.offsetH)):(obj.height - obj.offsetH),
itemParent=obj.item,
item=obj.item.options,
holder=obj.holder,
offsetX=obj.offsetX||0,
offsetY=obj.offsetY||0,
thumbsOffsetW=obj.thumbsOffsetW,
thumbsOffsetH=obj.thumbsOffsetH;
if(obj.type=='current'){
if(typeof item.width=='number'&&item.width) widthAvail=((vars.isInFullScreen&&opts.fullAlone)&&(opts.fullStretchTypes.indexOf(itemParent.type)!=-1||item.fullViewPort||opts.fullViewPort)) ? widthAvail:((item.width > widthAvail) ? widthAvail:item.width);
if(typeof item.height=='number'&&item.height) heightAvail=((vars.isInFullScreen&&opts.fullAlone)&&(opts.fullStretchTypes.indexOf(itemParent.type)!=-1||item.fullViewPort||opts.fullViewPort)) ? heightAvail:((item.height > heightAvail) ? heightAvail:item.height);
}else{
if(typeof item.width=='number'&&item.width) widthAvail=(item.width > widthAvail) ? widthAvail:item.width;
if(typeof item.height=='number'&&item.height) heightAvail=(item.height > heightAvail) ? heightAvail:item.height;
}
if(opts.innerToolbar)
heightAvail=parseInt(heightAvail - $('.ilightbox-inner-toolbar', holder).outerHeight());
var width=(typeof item.width=='string'&&item.width.indexOf('%')!=-1) ? percentToValue(parseInt(item.width.replace('%', '')), obj.width):holder.data('naturalWidth'),
height=(typeof item.height=='string'&&item.height.indexOf('%')!=-1) ? percentToValue(parseInt(item.height.replace('%', '')), obj.height):holder.data('naturalHeight');
var dims=((typeof item.width=='string'&&item.width.indexOf('%')!=-1||typeof item.height=='string'&&item.height.indexOf('%')!=-1) ? {
width: width,
height: height
}:iL.getNewDimenstions(widthAvail, heightAvail, width, height)),
newDims=$.extend({}, dims, {});
if(obj.type=='prev'||obj.type=='next')
width=parseInt(dims.width * ((obj.type=='next') ? opts.styles.nextScale:opts.styles.prevScale)),
height=parseInt(dims.height * ((obj.type=='next') ? opts.styles.nextScale:opts.styles.prevScale));
else
width=dims.width,
height=dims.height;
var widthDiff=parseInt((getPixel(holder, 'padding-left') + getPixel(holder, 'padding-right') + getPixel(holder, 'border-left-width') + getPixel(holder, 'border-right-width')) / 2),
heightDiff=parseInt((getPixel(holder, 'padding-top') + getPixel(holder, 'padding-bottom') + getPixel(holder, 'border-top-width') + getPixel(holder, 'border-bottom-width') + ($('.ilightbox-inner-toolbar', holder).outerHeight()||0)) / 2);
switch (obj.type){
case 'current':
var top=parseInt((obj.height / 2) - (height / 2) - heightDiff - (thumbsOffsetH / 2)),
left=parseInt((obj.width / 2) - (width / 2) - widthDiff - (thumbsOffsetW / 2));
break;
case 'next':
var top=(path=='horizontal') ? parseInt((obj.height / 2) - offsetY - (height / 2) - heightDiff - (thumbsOffsetH / 2)):parseInt(obj.height - offsetX - heightDiff - (thumbsOffsetH / 2)),
left=(path=='horizontal') ? parseInt(obj.width - offsetX - widthDiff - (thumbsOffsetW / 2)):parseInt((obj.width / 2) - (width / 2) - widthDiff - offsetY - (thumbsOffsetW / 2));
break;
case 'prev':
var top=(path=='horizontal') ? parseInt((obj.height / 2) - offsetY - (height / 2) - heightDiff - (thumbsOffsetH / 2)):parseInt(offsetX - heightDiff - height - (thumbsOffsetH / 2)),
left=(path=='horizontal') ? parseInt(offsetX - widthDiff - width - (thumbsOffsetW / 2)):parseInt((obj.width / 2) - offsetY - (width / 2) - widthDiff - (thumbsOffsetW / 2));
break;
}
holder.data('offset', {
top: top,
left: left,
newDims: newDims,
diff: {
W: widthDiff,
H: heightDiff
},
thumbsOffset: {
W: thumbsOffsetW,
H: thumbsOffsetH
},
object: obj
});
if(obj.animate > 0&&opts.effects.reposition){
holder.css(transform, gpuAcceleration).stop().animate({
top: top,
left: left
}, opts.effects.repositionSpeed, 'easeOutCirc', function(){
holder.css(transform, '');
});
$('div.ilightbox-container', holder).stop().animate({
width: width,
height: height
}, opts.effects.repositionSpeed, 'easeOutCirc');
$('div.ilightbox-inner-toolbar', holder).stop().animate({
width: width
}, opts.effects.repositionSpeed, 'easeOutCirc', function(){
$(this).css('overflow', 'visible');
});
}else{
holder.css({
top: top,
left: left
});
$('div.ilightbox-container', holder).css({
width: width,
height: height
});
$('div.ilightbox-inner-toolbar', holder).css({
width: width
});
}},
resume: function(priority){
var iL=this,
vars=iL.vars,
opts=iL.options;
if(!opts.slideshow.pauseTime||opts.controls.slideshow&&vars.total <=1||priority < vars.isPaused){
return;
}
vars.isPaused=0;
if(vars.cycleID){
vars.cycleID=clearTimeout(vars.cycleID);
}
vars.cycleID=setTimeout(function(){
if(vars.current==vars.total - 1) iL.goTo(0);
else iL.moveTo('next');
}, opts.slideshow.pauseTime);
},
pause: function(priority){
var iL=this,
vars=iL.vars,
opts=iL.options;
if(priority < vars.isPaused){
return;
}
vars.isPaused=priority||100;
if(vars.cycleID){
vars.cycleID=clearTimeout(vars.cycleID);
}},
resetCycle: function(){
var iL=this,
vars=iL.vars,
opts=iL.options;
if(opts.controls.slideshow&&vars.cycleID&&!vars.isPaused){
iL.resume();
}},
getNewDimenstions: function(width, height, width_old, height_old, thumb){
var iL=this;
if(!width) factor=height / height_old;
else if(!height) factor=width / width_old;
else factor=min(width / width_old, height / height_old);
if(!thumb){
if(factor > iL.options.maxScale) factor=iL.options.maxScale;
else if(factor < iL.options.minScale) factor=iL.options.minScale;
}
var final_width=(iL.options.keepAspectRatio) ? round(width_old * factor):width,
final_height=(iL.options.keepAspectRatio) ? round(height_old * factor):height;
return {
width: final_width,
height: final_height,
ratio: factor
};},
setOption: function(options){
var iL=this;
iL.options=$.extend(true, iL.options, options||{});
iL.refresh();
},
availPlugins: function(){
var iL=this,
testEl=document.createElement("video");
iL.plugins={
flash: !isMobile,
quicktime: (parseInt(PluginDetect.getVersion("QuickTime")) >=0) ? true:false,
html5H264: !!(testEl.canPlayType&&testEl.canPlayType('video/mp4').replace(/no/, '')),
html5WebM: !!(testEl.canPlayType&&testEl.canPlayType('video/webm').replace(/no/, '')),
html5Vorbis: !!(testEl.canPlayType&&testEl.canPlayType('video/ogg').replace(/no/, '')),
html5QuickTime: !!(testEl.canPlayType&&testEl.canPlayType('video/quicktime').replace(/no/, ''))
};},
addContent: function(element, obj){
var iL=this,
el;
switch (obj.type){
case 'video':
var HTML5=false,
videoType=obj.videoType,
html5video=obj.options.html5video;
if(((videoType=='video/mp4'||obj.ext=='mp4'||obj.ext=='m4v')||html5video.h264)&&iL.plugins.html5H264)
obj.ext='mp4',
obj.URL=html5video.h264||obj.URL;
else if(html5video.webm&&iL.plugins.html5WebM)
obj.ext='webm',
obj.URL=html5video.webm||obj.URL;
else if(html5video.ogg&&iL.plugins.html5Vorbis)
obj.ext='ogv',
obj.URL=html5video.ogg||obj.URL;
if(iL.plugins.html5H264&&(videoType=='video/mp4'||obj.ext=='mp4'||obj.ext=='m4v')) HTML5=true, videoType="video/mp4";
else if(iL.plugins.html5WebM&&(videoType=='video/webm'||obj.ext=='webm')) HTML5=true, videoType="video/webm";
else if(iL.plugins.html5Vorbis&&(videoType=='video/ogg'||obj.ext=='ogv')) HTML5=true, videoType="video/ogg";
else if(iL.plugins.html5QuickTime&&(videoType=='video/quicktime'||obj.ext=='mov'||obj.ext=='qt')) HTML5=true, videoType="video/quicktime";
if(HTML5){
el=$('<video />', {
"width": "100%",
"height": "100%",
"preload": html5video.preload,
"autoplay": html5video.autoplay,
"poster": html5video.poster,
"controls": html5video.controls
}).append($('<source />', {
"src": obj.URL,
"type": videoType
}));
}else{
if(!iL.plugins.quicktime) el=$('<span />', {
"class": "ilightbox-alert",
html: iL.options.errors.missingPlugin.replace('{pluginspage}', pluginspages.quicktime).replace('{type}', 'QuickTime')
});
else {
el=$('<object />', {
"type": "video/quicktime",
"pluginspage": pluginspages.quicktime
}).attr({
"data": obj.URL,
"width": "100%",
"height": "100%"
}).append($('<param />', {
"name": "src",
"value": obj.URL
})).append($('<param />', {
"name": "autoplay",
"value": "false"
})).append($('<param />', {
"name": "loop",
"value": "false"
})).append($('<param />', {
"name": "scale",
"value": "tofit"
}));
if(browser.msie) el=QT_GenerateOBJECTText(obj.URL, '100%', '100%', '', 'SCALE', 'tofit', 'AUTOPLAY', 'false', 'LOOP', 'false');
}}
break;
case 'flash':
if(!iL.plugins.flash) el=$('<span />', {
"class": "ilightbox-alert",
html: iL.options.errors.missingPlugin.replace('{pluginspage}', pluginspages.flash).replace('{type}', 'Adobe Flash player')
});
else {
var flashvars="",
i=0;
if(obj.options.flashvars) $.each(obj.options.flashvars, function(k, v){
if(i!=0) flashvars +="&";
flashvars +=k + "=" + encodeURIComponent(v);
i++;
});
else flashvars=null;
el=$('<embed />').attr({
"type": "application/x-shockwave-flash",
"src": obj.URL,
"width": (typeof obj.options.width=='number'&&obj.options.width&&iL.options.minScale=='1'&&iL.options.maxScale=='1') ? obj.options.width:"100%",
"height": (typeof obj.options.height=='number'&&obj.options.height&&iL.options.minScale=='1'&&iL.options.maxScale=='1') ? obj.options.height:"100%",
"quality": "high",
"bgcolor": "#000000",
"play": "true",
"loop": "true",
"menu": "true",
"wmode": "transparent",
"scale": "showall",
"allowScriptAccess": "always",
"allowFullScreen": "true",
"flashvars": flashvars,
"fullscreen": "yes"
});
}
break;
case 'iframe':
el=$('<iframe />').attr({
"width": (typeof obj.options.width=='number'&&obj.options.width&&iL.options.minScale=='1'&&iL.options.maxScale=='1') ? obj.options.width:"100%",
"height": (typeof obj.options.height=='number'&&obj.options.height&&iL.options.minScale=='1'&&iL.options.maxScale=='1') ? obj.options.height:"100%",
src: obj.URL,
frameborder: 0,
'hspace': 0,
'vspace': 0,
'scrolling': supportTouch ? 'auto':'scroll',
'webkitAllowFullScreen': '',
'mozallowfullscreen': '',
'allowFullScreen': ''
});
break;
case 'inline':
el=$('<div class="ilightbox-wrapper"></div>').html($(obj.URL).clone(true));
break;
case 'html':
var object=obj.URL,
el;
if(object[0].nodeName){
el=$('<div class="ilightbox-wrapper"></div>').html(object);
}else{
var dom=$(obj.URL),
html=(dom.selector) ? $('<div>' + dom + '</div>'):dom;
el=$('<div class="ilightbox-wrapper"></div>').html(html);
}
break;
}
$('div.ilightbox-container', element).empty().html(el);
if(el[0].tagName.toLowerCase()==='video'&&browser.webkit) setTimeout(function(){
var src=el[0].currentSrc + '?' + floor(random() * 30000);
el[0].currentSrc=src;
el[0].src=src;
});
return el;
},
ogpRecognition: function(obj, callback){
var iL=this,
url=obj.URL;
iL.showLoader();
doAjax(url, function(data){
iL.hideLoader();
if(data){
var object=new Object();
object.length=false,
object.url=data.url;
if(data.status==200){
var result=data.results,
type=result.type,
source=result.source;
object.source=source.src,
object.width=source.width&&parseInt(source.width)||0,
object.height=source.height&&parseInt(source.height)||0,
object.type=type,
object.thumbnail=source.thumbnail||result.images&&result.images[0],
object.html5video=result.html5video||{},
object.length=true;
if(source.type=='application/x-shockwave-flash') object.type="flash";
else if(source.type.indexOf("video/")!=-1) object.type="video";
else if(source.type.indexOf("/html")!=-1) object.type="iframe";
else if(source.type.indexOf("image/")!=-1) object.type="image";
}else if(typeof data.response!='undefined')
throw data.response;
callback.call(this, object.length ? object:false);
}});
},
hashChangeHandler: function(url){
var iL=this,
vars=iL.vars,
opts=iL.options,
URL=url||window.location.href,
hash=parseURI(URL).hash,
split=hash.split('/'),
index=split[1];
if(vars.hashLock||('#' + opts.linkId!=split[0]&&hash.length > 1)) return;
if(index){
var target=split[1]||0;
if(iL.items[target]){
var overlay=$('.ilightbox-overlay');
if(overlay.length&&overlay.attr('linkid')==opts.linkId){
iL.goTo(target);
}else{
iL.itemsObject[target].trigger(supportTouch ? 'itap':'click');
}}else{
var overlay=$('.ilightbox-overlay');
if(overlay.length) iL.closeAction();
}}else{
var overlay=$('.ilightbox-overlay');
if(overlay.length) iL.closeAction();
}}
};
function getPixel($element, property){
return parseInt($element.css(property), 10)||0;
}
function within(number, min, max){
return number < min ? min:number > max ? max:number;
}
function getViewport(){
var e=window,
a='inner';
if(!('innerWidth' in window)){
a='client';
e=document.documentElement||document.body;
}
return {
width: e[a + 'Width'],
height: e[a + 'Height']
}}
function removeHash(){
var scroll=getScrollXY();
window.location.hash="";
window.scrollTo(scroll.x, scroll.y);
}
function doAjax(url, callback){
var url="//ilightbox.net/getSource/jsonp.php?url=" + encodeURIComponent(url).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A');
$.ajax({
url: url,
dataType: 'jsonp'
});
iLCallback=function(data){
callback.call(this, data);
};}
function findImageInElement(element){
var elements=$('*', element),
imagesArr=new Array();
elements.each(function(){
var url="",
element=this;
if($(element).css("background-image")!="none"){
url=$(element).css("background-image");
}else if(typeof($(element).attr("src"))!="undefined"&&element.nodeName.toLowerCase()=="img"){
url=$(element).attr("src");
}
if(url.indexOf("gradient")==-1){
url=url.replace(/url\(\"/g, "");
url=url.replace(/url\(/g, "");
url=url.replace(/\"\)/g, "");
url=url.replace(/\)/g, "");
var urls=url.split(",");
for (var i=0; i < urls.length; i++){
if(urls[i].length > 0&&$.inArray(urls[i], imagesArr)==-1){
var extra="";
if(browser.msie&&browser.version < 9){
extra="?" + floor(random() * 3000);
}
imagesArr.push(urls[i] + extra);
}}
}});
return imagesArr;
}
function getExtension(URL){
var ext=URL.split('.').pop().toLowerCase(),
extra=ext.indexOf('?')!==-1 ? ext.split('?').pop():'';
return ext.replace(extra, '');
}
function getTypeByExtension(URL){
var type,
ext=getExtension(URL);
if(extensions.image.indexOf(ext)!==-1) type='image';
else if(extensions.flash.indexOf(ext)!==-1) type='flash';
else if(extensions.video.indexOf(ext)!==-1) type='video';
else type='iframe';
return type;
}
function percentToValue(percent, total){
return parseInt((total / 100) * percent);
}
function parseURI(url){
var m=String(url).replace(/^\s+|\s+$/g, '').match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);
return (m ? {
href: m[0]||'',
protocol: m[1]||'',
authority: m[2]||'',
host: m[3]||'',
hostname: m[4]||'',
port: m[5]||'',
pathname: m[6]||'',
search: m[7]||'',
hash: m[8]||''
}:null);
}
function absolutizeURI(base, href){
var iL=this;
function removeDotSegments(input){
var output=[];
input.replace(/^(\.\.?(\/|$))+/, '')
.replace(/\/(\.(\/|$))+/g, '/')
.replace(/\/\.\.$/, '/../')
.replace(/\/?[^\/]*/g, function(p){
if(p==='/..'){
output.pop();
}else{
output.push(p);
}});
return output.join('').replace(/^\//, input.charAt(0)==='/' ? '/':'');
}
href=parseURI(href||'');
base=parseURI(base||'');
return !href||!base ? null:(href.protocol||base.protocol) +
(href.protocol||href.authority ? href.authority:base.authority) +
removeDotSegments(href.protocol||href.authority||href.pathname.charAt(0)==='/' ? href.pathname:(href.pathname ? ((base.authority&&!base.pathname ? '/':'') + base.pathname.slice(0, base.pathname.lastIndexOf('/') + 1) + href.pathname):base.pathname)) +
(href.protocol||href.authority||href.pathname ? href.search:(href.search||base.search)) +
href.hash;
}
function version_compare(v1, v2, operator){
this.php_js=this.php_js||{};
this.php_js.ENV=this.php_js.ENV||{};
var i=0,
x=0,
compare=0,
vm={
'dev': -6,
'alpha': -5,
'a': -5,
'beta': -4,
'b': -4,
'RC': -3,
'rc': -3,
'#': -2,
'p': 1,
'pl': 1
},
prepVersion=function(v){
v=('' + v).replace(/[_\-+]/g, '.');
v=v.replace(/([^.\d]+)/g, '.$1.').replace(/\.{2,}/g, '.');
return (!v.length ? [-8]:v.split('.'));
},
numVersion=function(v){
return !v ? 0:(isNaN(v) ? vm[v]||-7:parseInt(v, 10));
};
v1=prepVersion(v1);
v2=prepVersion(v2);
x=max(v1.length, v2.length);
for (i=0; i < x; i++){
if(v1[i]==v2[i]){
continue;
}
v1[i]=numVersion(v1[i]);
v2[i]=numVersion(v2[i]);
if(v1[i] < v2[i]){
compare=-1;
break;
}else if(v1[i] > v2[i]){
compare=1;
break;
}}
if(!operator){
return compare;
}
switch (operator){
case '>':
case 'gt':
return (compare > 0);
case '>=':
case 'ge':
return (compare >=0);
case '<=':
case 'le':
return (compare <=0);
case '==':
case '=':
case 'eq':
return (compare===0);
case '<>':
case '!=':
case 'ne':
return (compare!==0);
case '':
case '<':
case 'lt':
return (compare < 0);
default:
return null;
}}
$.fn.iLightBox=function(){
var args=arguments,
opt=($.isPlainObject(args[0])) ? args[0]:args[1],
items=($.isArray(args[0])||typeof args[0]=='string') ? args[0]:args[1];
if(!opt) opt={};
var options=$.extend(true, {
attr: 'href',
path: 'vertical',
skin: 'dark',
linkId: false,
infinite: false,
startFrom: 0,
randomStart: false,
keepAspectRatio: true,
maxScale: 1,
minScale: .2,
innerToolbar: false,
smartRecognition: false,
mobileOptimizer: true,
fullAlone: true,
fullViewPort: null,
fullStretchTypes: 'flash, video',
overlay: {
blur: true,
opacity: .85
},
controls: {
arrows: false,
slideshow: false,
toolbar: true,
fullscreen: true,
thumbnail: true,
keyboard: true,
mousewheel: true,
swipe: true
},
keyboard: {
left: true,
right: true,
up: true,
down: true,
esc: true,
shift_enter: true
},
show: {
effect: true,
speed: 300,
title: true
},
hide: {
effect: true,
speed: 300
},
caption: {
start: true,
show: 'mouseenter',
hide: 'mouseleave'
},
social: {
start: true,
show: 'mouseenter',
hide: 'mouseleave',
buttons: false
},
styles: {
pageOffsetX: 0,
pageOffsetY: 0,
nextOffsetX: 45,
nextOffsetY: 0,
nextOpacity: 1,
nextScale: 1,
prevOffsetX: 45,
prevOffsetY: 0,
prevOpacity: 1,
prevScale: 1
},
thumbnails: {
maxWidth: 120,
maxHeight: 80,
normalOpacity: 1,
activeOpacity: .6
},
effects: {
reposition: true,
repositionSpeed: 200,
switchSpeed: 500,
loadedFadeSpeed: 180,
fadeSpeed: 200
},
slideshow: {
pauseTime: 5000,
pauseOnHover: false,
startPaused: true
},
text: {
close: "Press Esc to close",
enterFullscreen: "Enter Fullscreen (Shift+Enter)",
exitFullscreen: "Exit Fullscreen (Shift+Enter)",
slideShow: "Slideshow",
next: "Next",
previous: "Previous"
},
errors: {
loadImage: "An error occurred when trying to load photo.",
loadContents: "An error occurred when trying to load contents.",
missingPlugin: "The content your are attempting to view requires the <a href='{pluginspage}' target='_blank'>{type} plugin<\/a>."
},
ajaxSetup: {
url: '',
beforeSend: function(jqXHR, settings){},
cache: false,
complete: function(jqXHR, textStatus){},
crossDomain: false,
error: function(jqXHR, textStatus, errorThrown){},
success: function(data, textStatus, jqXHR){},
global: true,
ifModified: false,
username: null,
password: null,
type: 'GET'
},
callback: {}}, opt);
var instant=($.isArray(items)||typeof items=='string') ? true:false;
items=$.isArray(items) ? items:new Array();
if(typeof args[0]=='string') items[0]=args[0];
if(version_compare($.fn.jquery, '1.8', '>=')){
var iLB=new iLightBox($(this), options, items, instant);
return {
close: function(){
iLB.closeAction();
},
fullscreen: function(){
iLB.fullScreenAction();
},
moveNext: function(){
iLB.moveTo('next');
},
movePrev: function(){
iLB.moveTo('prev');
},
goTo: function(index){
iLB.goTo(index);
},
refresh: function(){
iLB.refresh();
},
reposition: function(){
(arguments.length > 0) ? iLB.repositionPhoto(true): iLB.repositionPhoto();
},
setOption: function(options){
iLB.setOption(options);
},
destroy: function(){
iLB.closeAction();
iLB.dispatchItemsEvents();
}};}else{
throw "The jQuery version that was loaded is too old. iLightBox requires jQuery 1.8+";
}};
$.iLightBox=function(){
return $.fn.iLightBox(arguments[0], arguments[1]);
};
$.extend($.easing, {
easeInCirc: function(x, t, b, c, d){
return -c * (sqrt(1 - (t /=d) * t) - 1) + b;
},
easeOutCirc: function(x, t, b, c, d){
return c * sqrt(1 - (t=t / d - 1) * t) + b;
},
easeInOutCirc: function(x, t, b, c, d){
if((t /=d / 2) < 1) return -c / 2 * (sqrt(1 - t * t) - 1) + b;
return c / 2 * (sqrt(1 - (t -=2) * t) + 1) + b;
}});
function getScrollXY(){
var scrOfX=0,
scrOfY=0;
if(typeof(window.pageYOffset)=='number'){
scrOfY=window.pageYOffset;
scrOfX=window.pageXOffset;
}else if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){
scrOfY=document.body.scrollTop;
scrOfX=document.body.scrollLeft;
}else if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)){
scrOfY=document.documentElement.scrollTop;
scrOfX=document.documentElement.scrollLeft;
}
return {
x: scrOfX,
y: scrOfY
};}
(function(){
$.each(("touchstart touchmove touchend " +
"tap taphold " +
"swipe swipeleft swiperight " +
"scrollstart scrollstop").split(" "), function(i, name){
$.fn[name]=function(fn){
return fn ? this.bind(name, fn):this.trigger(name);
};
if($.attrFn){
$.attrFn[name]=true;
}});
var tapSettings={
startEvent: 'touchstart.iTap',
endEvent: 'touchend.iTap'
};
$.event.special.itap={
setup: function(){
var self=this,
$self=$(this),
start, stop;
$self.bind(tapSettings.startEvent, function(event){
start=getScrollXY();
$self.one(tapSettings.endEvent, function(event){
stop=getScrollXY();
var orgEvent=event||window.event;
event=$.event.fix(orgEvent);
event.type="itap";
if((start&&stop)&&(start.x==stop.x&&start.y==stop.y))($.event.dispatch||$.event.handle).call(self, event);
start=stop=undefined;
});
});
},
teardown: function(){
$(this).unbind(tapSettings.startEvent);
}};}());
(function(){
fullScreenApi={
supportsFullScreen: false,
isFullScreen: function(){
return false;
},
requestFullScreen: function(){},
cancelFullScreen: function(){},
fullScreenEventName: '',
prefix: ''
},
browserPrefixes='webkit moz o ms khtml'.split(' ');
if(typeof document.cancelFullScreen!='undefined'){
fullScreenApi.supportsFullScreen=true;
}else{
for (var i=0, il=browserPrefixes.length; i < il; i++){
fullScreenApi.prefix=browserPrefixes[i];
if(typeof document[fullScreenApi.prefix + 'CancelFullScreen']!='undefined'){
fullScreenApi.supportsFullScreen=true;
break;
}}
}
if(fullScreenApi.supportsFullScreen){
fullScreenApi.fullScreenEventName=fullScreenApi.prefix + 'fullscreenchange';
fullScreenApi.isFullScreen=function(){
switch (this.prefix){
case '':
return document.fullScreen;
case 'webkit':
return document.webkitIsFullScreen;
default:
return document[this.prefix + 'FullScreen'];
}}
fullScreenApi.requestFullScreen=function(el){
return (this.prefix==='') ? el.requestFullScreen():el[this.prefix + 'RequestFullScreen']();
}
fullScreenApi.cancelFullScreen=function(el){
return (this.prefix==='') ? document.cancelFullScreen():document[this.prefix + 'CancelFullScreen']();
}}
}());
(function(){
function uaMatch(ua){
ua=ua.toLowerCase();
var match=/(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua)||[];
return {
browser: match[1]||"",
version: match[2]||"0"
};}
var matched=uaMatch(navigator.userAgent);
browser={};
if(matched.browser){
browser[matched.browser]=true;
browser.version=matched.version;
}
if(browser.chrome){
browser.webkit=true;
}else if(browser.webkit){
browser.safari=true;
}}());
(function(){
var prefixes=['', 'webkit', 'moz', 'ms', 'o'];
var el=document.createElement('div');
function testProp(prop){
for (var p=0, pl=prefixes.length; p < pl; p++){
var prefixedProp=prefixes[p] ? prefixes[p] + prop.charAt(0).toUpperCase() + prop.slice(1):prop;
if(el.style[prefixedProp]!==undefined){
return prefixedProp;
}}
}
transform=testProp('transform')||'';
gpuAcceleration=testProp('perspective') ? 'translateZ(0) ':'';
}());
var PluginDetect={version:"0.7.9",name:"PluginDetect",handler:function(c,b,a){return function(){c(b,a)}},openTag:"<",isDefined:function(b){return typeof b!="undefined"},isArray:function(b){return(/array/i).test(Object.prototype.toString.call(b))},isFunc:function(b){return typeof b=="function"},isString:function(b){return typeof b=="string"},isNum:function(b){return typeof b=="number"},isStrNum:function(b){return(typeof b=="string"&&(/\d/).test(b))},getNumRegx:/[\d][\d\.\_,-]*/,splitNumRegx:/[\.\_,-]/g,getNum:function(b,c){var d=this,a=d.isStrNum(b)?(d.isDefined(c)?new RegExp(c):d.getNumRegx).exec(b):null;return a?a[0]:null},compareNums:function(h,f,d){var e=this,c,b,a,g=parseInt;if(e.isStrNum(h)&&e.isStrNum(f)){if(e.isDefined(d)&&d.compareNums){return d.compareNums(h,f)}c=h.split(e.splitNumRegx);b=f.split(e.splitNumRegx);for(a=0;a<min(c.length,b.length);a++){if(g(c[a],10)>g(b[a],10)){return 1}if(g(c[a],10)<g(b[a],10)){return -1}}}return 0},formatNum:function(b,c){var d=this,a,e;if(!d.isStrNum(b)){return null}if(!d.isNum(c)){c=4}c--;e=b.replace(/\s/g,"").split(d.splitNumRegx).concat(["0","0","0","0"]);for(a=0;a<4;a++){if(/^(0+)(.+)$/.test(e[a])){e[a]=RegExp.$2}if(a>c||!(/\d/).test(e[a])){e[a]="0"}}return e.slice(0,4).join(",")},$$hasMimeType:function(a){return function(c){if(!a.isIE&&c){var f,e,b,d=a.isArray(c)?c:(a.isString(c)?[c]:[]);for(b=0;b<d.length;b++){if(a.isString(d[b])&&/[^\s]/.test(d[b])){f=navigator.mimeTypes[d[b]];e=f?f.enabledPlugin:0;if(e&&(e.name||e.description)){return f}}}}return null}},findNavPlugin:function(l,e,c){var j=this,h=new RegExp(l,"i"),d=(!j.isDefined(e)||e)?/\d/:0,k=c?new RegExp(c,"i"):0,a=navigator.plugins,g="",f,b,m;for(f=0;f<a.length;f++){m=a[f].description||g;b=a[f].name||g;if((h.test(m)&&(!d||d.test(RegExp.leftContext+RegExp.rightContext)))||(h.test(b)&&(!d||d.test(RegExp.leftContext+RegExp.rightContext)))){if(!k||!(k.test(m)||k.test(b))){return a[f]}}}return null},getMimeEnabledPlugin:function(k,m,c){var e=this,f,b=new RegExp(m,"i"),h="",g=c?new RegExp(c,"i"):0,a,l,d,j=e.isString(k)?[k]:k;for(d=0;d<j.length;d++){if((f=e.hasMimeType(j[d]))&&(f=f.enabledPlugin)){l=f.description||h;a=f.name||h;if(b.test(l)||b.test(a)){if(!g||!(g.test(l)||g.test(a))){return f}}}}return 0},getPluginFileVersion:function(f,b){var h=this,e,d,g,a,c=-1;if(h.OS>2||!f||!f.version||!(e=h.getNum(f.version))){return b}if(!b){return e}e=h.formatNum(e);b=h.formatNum(b);d=b.split(h.splitNumRegx);g=e.split(h.splitNumRegx);for(a=0;a<d.length;a++){if(c>-1&&a>c&&d[a]!="0"){return b}if(g[a]!=d[a]){if(c==-1){c=a}if(d[a]!="0"){return b}}}return e},AXO:window.ActiveXObject,getAXO:function(a){var f=null,d,b=this,c={};try{f=new b.AXO(a)}catch(d){}return f},convertFuncs:function(f){var a,g,d,b=/^[\$][\$]/,c=this;for(a in f){if(b.test(a)){try{g=a.slice(2);if(g.length>0&&!f[g]){f[g]=f[a](f);delete f[a]}}catch(d){}}}},initObj:function(e,b,d){var a,c;if(e){if(e[b[0]]==1||d){for(a=0;a<b.length;a=a+2){e[b[a]]=b[a+1]}}for(a in e){c=e[a];if(c&&c[b[0]]==1){this.initObj(c,b)}}}},initScript:function(){var d=this,a=navigator,h,i=document,l=a.userAgent||"",j=a.vendor||"",b=a.platform||"",k=a.product||"";d.initObj(d,["$",d]);for(h in d.Plugins){if(d.Plugins[h]){d.initObj(d.Plugins[h],["$",d,"$$",d.Plugins[h]],1)}}d.convertFuncs(d);d.OS=100;if(b){var g=["Win",1,"Mac",2,"Linux",3,"FreeBSD",4,"iPhone",21.1,"iPod",21.2,"iPad",21.3,"Win.*CE",22.1,"Win.*Mobile",22.2,"Pocket\\s*PC",22.3,"",100];for(h=g.length-2;h>=0;h=h-2){if(g[h]&&new RegExp(g[h],"i").test(b)){d.OS=g[h+1];break}}};d.head=i.getElementsByTagName("head")[0]||i.getElementsByTagName("body")[0]||i.body||null;d.isIE=new Function("return/*@cc_on!@*/!1")();d.verIE=d.isIE&&(/MSIE\s*(\d+\.?\d*)/i).test(l)?parseFloat(RegExp.$1,10):null;d.verIEfull=null;d.docModeIE=null;if(d.isIE){var f,n,c=document.createElement("div");try{c.style.behavior="url(#default#clientcaps)";d.verIEfull=(c.getComponentVersion("{89820200-ECBD-11CF-8B85-00AA005B4383}","componentid")).replace(/,/g,".")}catch(f){}n=parseFloat(d.verIEfull||"0",10);d.docModeIE=i.documentMode||((/back/i).test(i.compatMode||"")?5:n)||d.verIE;d.verIE=n||d.docModeIE};d.ActiveXEnabled=false;if(d.isIE){var h,m=["Msxml2.XMLHTTP","Msxml2.DOMDocument","Microsoft.XMLDOM","ShockwaveFlash.ShockwaveFlash","TDCCtl.TDCCtl","Shell.UIHelper","Scripting.Dictionary","wmplayer.ocx"];for(h=0;h<m.length;h++){if(d.getAXO(m[h])){d.ActiveXEnabled=true;break}}};d.isGecko=(/Gecko/i).test(k)&&(/Gecko\s*\/\s*\d/i).test(l);d.verGecko=d.isGecko?d.formatNum((/rv\s*\:\s*([\.\,\d]+)/i).test(l)?RegExp.$1:"0.9"):null;d.isChrome=(/Chrome\s*\/\s*(\d[\d\.]*)/i).test(l);d.verChrome=d.isChrome?d.formatNum(RegExp.$1):null;d.isSafari=((/Apple/i).test(j)||(!j&&!d.isChrome))&&(/Safari\s*\/\s*(\d[\d\.]*)/i).test(l);d.verSafari=d.isSafari&&(/Version\s*\/\s*(\d[\d\.]*)/i).test(l)?d.formatNum(RegExp.$1):null;d.isOpera=(/Opera\s*[\/]?\s*(\d+\.?\d*)/i).test(l);d.verOpera=d.isOpera&&((/Version\s*\/\s*(\d+\.?\d*)/i).test(l)||1)?parseFloat(RegExp.$1,10):null;d.addWinEvent("load",d.handler(d.runWLfuncs,d))},init:function(d){var c=this,b,d,a={status:-3,plugin:0};if(!c.isString(d)){return a}if(d.length==1){c.getVersionDelimiter=d;return a}d=d.toLowerCase().replace(/\s/g,"");b=c.Plugins[d];if(!b||!b.getVersion){return a}a.plugin=b;if(!c.isDefined(b.installed)){b.installed=null;b.version=null;b.version0=null;b.getVersionDone=null;b.pluginName=d}c.garbage=false;if(c.isIE&&!c.ActiveXEnabled&&d!=="java"){a.status=-2;return a}a.status=1;return a},fPush:function(b,a){var c=this;if(c.isArray(a)&&(c.isFunc(b)||(c.isArray(b)&&b.length>0&&c.isFunc(b[0])))){a.push(b)}},callArray:function(b){var c=this,a;if(c.isArray(b)){for(a=0;a<b.length;a++){if(b[a]===null){return}c.call(b[a]);b[a]=null}}},call:function(c){var b=this,a=b.isArray(c)?c.length:-1;if(a>0&&b.isFunc(c[0])){c[0](b,a>1?c[1]:0,a>2?c[2]:0,a>3?c[3]:0)}else{if(b.isFunc(c)){c(b)}}},getVersionDelimiter:",",$$getVersion:function(a){return function(g,d,c){var e=a.init(g),f,b,h={};if(e.status<0){return null};f=e.plugin;if(f.getVersionDone!=1){f.getVersion(null,d,c);if(f.getVersionDone===null){f.getVersionDone=1}}a.cleanup();b=(f.version||f.version0);b=b?b.replace(a.splitNumRegx,a.getVersionDelimiter):b;return b}},cleanup:function(){var a=this;if(a.garbage&&a.isDefined(window.CollectGarbage)){window.CollectGarbage()}},isActiveXObject:function(d,b){var f=this,a=false,g,c='<object width="1" height="1" style="display:none" '+d.getCodeBaseVersion(b)+">"+d.HTML+f.openTag+"/object>";if(!f.head){return a}f.head.insertBefore(document.createElement("object"),f.head.firstChild);f.head.firstChild.outerHTML=c;try{f.head.firstChild.classid=d.classID}catch(g){}try{if(f.head.firstChild.object){a=true}}catch(g){}try{if(a&&f.head.firstChild.readyState<4){f.garbage=true}}catch(g){}f.head.removeChild(f.head.firstChild);return a},codebaseSearch:function(f,b){var c=this;if(!c.ActiveXEnabled||!f){return null}if(f.BIfuncs&&f.BIfuncs.length&&f.BIfuncs[f.BIfuncs.length-1]!==null){c.callArray(f.BIfuncs)}var d,o=f.SEARCH,k={};if(c.isStrNum(b)){if(o.match&&o.min&&c.compareNums(b,o.min)<=0){return true}if(o.match&&o.max&&c.compareNums(b,o.max)>=0){return false}d=c.isActiveXObject(f,b);if(d&&(!o.min||c.compareNums(b,o.min)>0)){o.min=b}if(!d&&(!o.max||c.compareNums(b,o.max)<0)){o.max=b}return d};var e=[0,0,0,0],l=[].concat(o.digits),a=o.min?1:0,j,i,h,g,m,n=function(p,r){var q=[].concat(e);q[p]=r;return c.isActiveXObject(f,q.join(","))};if(o.max){g=o.max.split(c.splitNumRegx);for(j=0;j<g.length;j++){g[j]=parseInt(g[j],10)}if(g[0]<l[0]){l[0]=g[0]}}if(o.min){m=o.min.split(c.splitNumRegx);for(j=0;j<m.length;j++){m[j]=parseInt(m[j],10)}if(m[0]>e[0]){e[0]=m[0]}}if(m&&g){for(j=1;j<m.length;j++){if(m[j-1]!=g[j-1]){break}if(g[j]<l[j]){l[j]=g[j]}if(m[j]>e[j]){e[j]=m[j]}}}if(o.max){for(j=1;j<l.length;j++){if(g[j]>0&&l[j]==0&&l[j-1]<o.digits[j-1]){l[j-1]+=1;break}}};for(j=0;j<l.length;j++){h={};for(i=0;i<20;i++){if(l[j]-e[j]<1){break}d=round((l[j]+e[j])/2);if(h["a"+d]){break}h["a"+d]=1;if(n(j,d)){e[j]=d;a=1}else{l[j]=d}}l[j]=e[j];if(!a&&n(j,e[j])){a=1};if(!a){break}};return a?e.join(","):null},addWinEvent:function(d,c){var e=this,a=window,b;if(e.isFunc(c)){if(a.addEventListener){a.addEventListener(d,c,false)}else{if(a.attachEvent){a.attachEvent("on"+d,c)}else{b=a["on"+d];a["on"+d]=e.winHandler(c,b)}}}},winHandler:function(d,c){return function(){d();if(typeof c=="function"){c()}}},WLfuncs0:[],WLfuncs:[],runWLfuncs:function(a){var b={};a.winLoaded=true;a.callArray(a.WLfuncs0);a.callArray(a.WLfuncs);if(a.onDoneEmptyDiv){a.onDoneEmptyDiv()}},winLoaded:false,$$onWindowLoaded:function(a){return function(b){if(a.winLoaded){a.call(b)}else{a.fPush(b,a.WLfuncs)}}},div:null,divID:"plugindetect",divWidth:50,pluginSize:1,emptyDiv:function(){var d=this,b,h,c,a,f,g;if(d.div&&d.div.childNodes){for(b=d.div.childNodes.length-1;b>=0;b--){c=d.div.childNodes[b];if(c&&c.childNodes){for(h=c.childNodes.length-1;h>=0;h--){g=c.childNodes[h];try{c.removeChild(g)}catch(f){}}}if(c){try{d.div.removeChild(c)}catch(f){}}}}if(!d.div){a=document.getElementById(d.divID);if(a){d.div=a}}if(d.div&&d.div.parentNode){try{d.div.parentNode.removeChild(d.div)}catch(f){}d.div=null}},DONEfuncs:[],onDoneEmptyDiv:function(){var c=this,a,b;if(!c.winLoaded){return}if(c.WLfuncs&&c.WLfuncs.length&&c.WLfuncs[c.WLfuncs.length-1]!==null){return}for(a in c){b=c[a];if(b&&b.funcs){if(b.OTF==3){return}if(b.funcs.length&&b.funcs[b.funcs.length-1]!==null){return}}}for(a=0;a<c.DONEfuncs.length;a++){c.callArray(c.DONEfuncs)}c.emptyDiv()},getWidth:function(c){if(c){var a=c.scrollWidth||c.offsetWidth,b=this;if(b.isNum(a)){return a}}return -1},getTagStatus:function(m,g,a,b){var c=this,f,k=m.span,l=c.getWidth(k),h=a.span,j=c.getWidth(h),d=g.span,i=c.getWidth(d);if(!k||!h||!d||!c.getDOMobj(m)){return -2}if(j<i||l<0||j<0||i<0||i<=c.pluginSize||c.pluginSize<1){return 0}if(l>=i){return -1}try{if(l==c.pluginSize&&(!c.isIE||c.getDOMobj(m).readyState==4)){if(!m.winLoaded&&c.winLoaded){return 1}if(m.winLoaded&&c.isNum(b)){if(!c.isNum(m.count)){m.count=b}if(b-m.count>=10){return 1}}}}catch(f){}return 0},getDOMobj:function(g,a){var f,d=this,c=g?g.span:0,b=c&&c.firstChild?1:0;try{if(b&&a){d.div.focus()}}catch(f){}return b?c.firstChild:null},setStyle:function(b,g){var f=b.style,a,d,c=this;if(f&&g){for(a=0;a<g.length;a=a+2){try{f[g[a]]=g[a+1]}catch(d){}}}},insertDivInBody:function(i,g){var f,c=this,h="pd33993399",b=null,d=g?window.top.document:window.document,a=d.getElementsByTagName("body")[0]||d.body;if(!a){try{d.write('<div id="'+h+'">.'+c.openTag+"/div>");b=d.getElementById(h)}catch(f){}}a=d.getElementsByTagName("body")[0]||d.body;if(a){a.insertBefore(i,a.firstChild);if(b){a.removeChild(b)}}},insertHTML:function(f,b,g,a,k){var l,m=document,j=this,p,o=m.createElement("span"),n,i;var c=["outlineStyle","none","borderStyle","none","padding","0px","margin","0px","visibility","visible"];var h="outline-style:none;border-style:none;padding:0px;margin:0px;visibility:visible;";if(!j.isDefined(a)){a=""}if(j.isString(f)&&(/[^\s]/).test(f)){f=f.toLowerCase().replace(/\s/g,"");p=j.openTag+f+' width="'+j.pluginSize+'" height="'+j.pluginSize+'" ';p+='style="'+h+'display:inline;" ';for(n=0;n<b.length;n=n+2){if(/[^\s]/.test(b[n+1])){p+=b[n]+'="'+b[n+1]+'" '}}p+=">";for(n=0;n<g.length;n=n+2){if(/[^\s]/.test(g[n+1])){p+=j.openTag+'param name="'+g[n]+'" value="'+g[n+1]+'" />'}}p+=a+j.openTag+"/"+f+">"}else{p=a}if(!j.div){i=m.getElementById(j.divID);if(i){j.div=i}else{j.div=m.createElement("div");j.div.id=j.divID}j.setStyle(j.div,c.concat(["width",j.divWidth+"px","height",(j.pluginSize+3)+"px","fontSize",(j.pluginSize+3)+"px","lineHeight",(j.pluginSize+3)+"px","verticalAlign","baseline","display","block"]));if(!i){j.setStyle(j.div,["position","absolute","right","0px","top","0px"]);j.insertDivInBody(j.div)}}if(j.div&&j.div.parentNode){j.setStyle(o,c.concat(["fontSize",(j.pluginSize+3)+"px","lineHeight",(j.pluginSize+3)+"px","verticalAlign","baseline","display","inline"]));try{o.innerHTML=p}catch(l){};try{j.div.appendChild(o)}catch(l){};return{span:o,winLoaded:j.winLoaded,tagName:f,outerHTML:p}}return{span:null,winLoaded:j.winLoaded,tagName:"",outerHTML:p}},Plugins:{quicktime:{mimeType:["video/quicktime","application/x-quicktimeplayer","image/x-macpaint","image/x-quicktime"],progID:"QuickTimeCheckObject.QuickTimeCheck.1",progID0:"QuickTime.QuickTime",classID:"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B",minIEver:7,HTML:'<param name="src" value="" /><param name="controller" value="false" />',getCodeBaseVersion:function(a){return'codebase="#version='+a+'"'},SEARCH:{min:0,max:0,match:0,digits:[16,128,128,0]},getVersion:function(c){var f=this,d=f.$,a=null,e=null,b;if(!d.isIE){if(d.hasMimeType(f.mimeType)){e=d.OS!=3?d.findNavPlugin("QuickTime.*Plug-?in",0):null;if(e&&e.name){a=d.getNum(e.name)}}}else{if(d.isStrNum(c)){b=c.split(d.splitNumRegx);if(b.length>3&&parseInt(b[3],10)>0){b[3]="9999"}c=b.join(",")}if(d.isStrNum(c)&&d.verIE>=f.minIEver&&f.canUseIsMin()>0){f.installed=f.isMin(c);f.getVersionDone=0;return}f.getVersionDone=1;if(!a&&d.verIE>=f.minIEver){a=f.CDBASE2VER(d.codebaseSearch(f))}if(!a){e=d.getAXO(f.progID);if(e&&e.QuickTimeVersion){a=e.QuickTimeVersion.toString(16);a=parseInt(a.charAt(0),16)+"."+parseInt(a.charAt(1),16)+"."+parseInt(a.charAt(2),16)}}}f.installed=a?1:(e?0:-1);f.version=d.formatNum(a,3)},cdbaseUpper:["7,60,0,0","0,0,0,0"],cdbaseLower:["7,50,0,0",null],cdbase2ver:[function(c,b){var a=b.split(c.$.splitNumRegx);return[a[0],a[1].charAt(0),a[1].charAt(1),a[2]].join(",")},null],CDBASE2VER:function(f){var e=this,c=e.$,b,a=e.cdbaseUpper,d=e.cdbaseLower;if(f){f=c.formatNum(f);for(b=0;b<a.length;b++){if(a[b]&&c.compareNums(f,a[b])<0&&d[b]&&c.compareNums(f,d[b])>=0&&e.cdbase2ver[b]){return e.cdbase2ver[b](e,f)}}}return f},canUseIsMin:function(){var f=this,d=f.$,b,c=f.canUseIsMin,a=f.cdbaseUpper,e=f.cdbaseLower;if(!c.value){c.value=-1;for(b=0;b<a.length;b++){if(a[b]&&d.codebaseSearch(f,a[b])){c.value=1;break}if(e[b]&&d.codebaseSearch(f,e[b])){c.value=-1;break}}}f.SEARCH.match=c.value==1?1:0;return c.value},isMin:function(c){var b=this,a=b.$;return a.codebaseSearch(b,c)?0.7:-1}},flash:{mimeType:"application/x-shockwave-flash",progID:"ShockwaveFlash.ShockwaveFlash",classID:"clsid:D27CDB6E-AE6D-11CF-96B8-444553540000",getVersion:function(){var b=function(i){if(!i){return null}var e=/[\d][\d\,\.\s]*[rRdD]{0,1}[\d\,]*/.exec(i);return e?e[0].replace(/[rRdD\.]/g,",").replace(/\s/g,""):null};var j=this,g=j.$,k,h,l=null,c=null,a=null,f,m,d;if(!g.isIE){m=g.hasMimeType(j.mimeType);if(m){f=g.getDOMobj(g.insertHTML("object",["type",j.mimeType],[],"",j));try{l=g.getNum(f.GetVariable("$version"))}catch(k){}}if(!l){d=m?m.enabledPlugin:null;if(d&&d.description){l=b(d.description)}if(l){l=g.getPluginFileVersion(d,l)}}}else{for(h=15;h>2;h--){c=g.getAXO(j.progID+"."+h);if(c){a=h.toString();break}}if(!c){c=g.getAXO(j.progID)}if(a=="6"){try{c.AllowScriptAccess="always"}catch(k){return"6,0,21,0"}}try{l=b(c.GetVariable("$version"))}catch(k){}if(!l&&a){l=a}}j.installed=l?1:-1;j.version=g.formatNum(l);return true}},shockwave:{mimeType:"application/x-director",progID:"SWCtl.SWCtl",classID:"clsid:166B1BCA-3F9C-11CF-8075-444553540000",getVersion:function(){var a=null,b=null,g,f,d=this,c=d.$;if(!c.isIE){f=c.findNavPlugin("Shockwave\\s*for\\s*Director");if(f&&f.description&&c.hasMimeType(d.mimeType)){a=c.getNum(f.description)}if(a){a=c.getPluginFileVersion(f,a)}}else{try{b=c.getAXO(d.progID).ShockwaveVersion("")}catch(g){}if(c.isString(b)&&b.length>0){a=c.getNum(b)}else{if(c.getAXO(d.progID+".8")){a="8"}else{if(c.getAXO(d.progID+".7")){a="7"}else{if(c.getAXO(d.progID+".1")){a="6"}}}}}d.installed=a?1:-1;d.version=c.formatNum(a)}},zz:0}};PluginDetect.initScript();
var gArgCountErr='The "%%" function requires an even number of arguments.\nArguments should be in the form "atttributeName", "attributeValue", ...',gTagAttrs=null,gQTGeneratorVersion=1;function AC_QuickTimeVersion(){return gQTGeneratorVersion}function _QTComplain(a,b){b=b.replace("%%",a);alert(b)}function _QTAddAttribute(a,b,c){var d;d=gTagAttrs[a+b];null==d&&(d=gTagAttrs[b]);return null!=d?(0==b.indexOf(a)&&null==c&&(c=b.substring(a.length)),null==c&&(c=b),c+'="'+d+'" '):""}function _QTAddObjectAttr(a,b){if(0==a.indexOf("emb#"))return"";0==a.indexOf("obj#")&&null==b&&(b=a.substring(4));return _QTAddAttribute("obj#",a,b)}function _QTAddEmbedAttr(a,b){if(0==a.indexOf("obj#"))return"";0==a.indexOf("emb#")&&null==b&&(b=a.substring(4));return _QTAddAttribute("emb#",a,b)}function _QTAddObjectParam(a,b){var c,d="",e=b?" />":">";-1==a.indexOf("emb#")&&(c=gTagAttrs["obj#"+a],null==c&&(c=gTagAttrs[a]),0==a.indexOf("obj#")&&(a=a.substring(4)),null!=c&&(d='  <param name="'+a+'" value="'+c+'"'+e+"\n"));return d}function _QTDeleteTagAttrs(){for(var a=0;a<arguments.length;a++){var b=arguments[a];delete gTagAttrs[b];delete gTagAttrs["emb#"+b];delete gTagAttrs["obj#"+b]}}function _QTGenerate(a,b,c){if(4>c.length||0!=c.length%2)return _QTComplain(a,gArgCountErr),"";gTagAttrs=[];gTagAttrs.src=c[0];gTagAttrs.width=c[1];gTagAttrs.height=c[2];gTagAttrs.classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B";gTagAttrs.pluginspage="http://www.apple.com/quicktime/download/";a=c[3];if(null==a||""==a)a="6,0,2,0";gTagAttrs.codebase="http://www.apple.com/qtactivex/qtplugin.cab#version="+a;for(var d,e=4;e<c.length;e+=2)d=c[e].toLowerCase(),a=c[e+1],"name"==d||"id"==d?gTagAttrs.name=a:gTagAttrs[d]=a;c="<object "+_QTAddObjectAttr("classid")+_QTAddObjectAttr("width")+_QTAddObjectAttr("height")+_QTAddObjectAttr("codebase")+_QTAddObjectAttr("name","id")+_QTAddObjectAttr("tabindex")+_QTAddObjectAttr("hspace")+_QTAddObjectAttr("vspace")+_QTAddObjectAttr("border")+_QTAddObjectAttr("align")+_QTAddObjectAttr("class")+_QTAddObjectAttr("title")+_QTAddObjectAttr("accesskey")+_QTAddObjectAttr("noexternaldata")+">\n"+_QTAddObjectParam("src",b);e="  <embed "+_QTAddEmbedAttr("src")+_QTAddEmbedAttr("width")+_QTAddEmbedAttr("height")+_QTAddEmbedAttr("pluginspage")+_QTAddEmbedAttr("name")+_QTAddEmbedAttr("align")+_QTAddEmbedAttr("tabindex");_QTDeleteTagAttrs("src","width","height","pluginspage","classid","codebase","name","tabindex","hspace","vspace","border","align","noexternaldata","class","title","accesskey");for(d in gTagAttrs)a=gTagAttrs[d],null!=a&&(e+=_QTAddEmbedAttr(d),c+=_QTAddObjectParam(d,b));return c+e+"> </embed>\n</object>"}function QT_GenerateOBJECTText(){return _QTGenerate("QT_GenerateOBJECTText",!1,arguments)};
(function(){function e(a){a=a||location.href;return"#"+a.replace(/^[^#]*#?(.*)$/,"$1")}var k=document,b,f=$.event.special,p=k.documentMode,m="oniLightBoxHashChange"in window&&(void 0===p||7<p);$.fn.iLightBoxHashChange=function(a){return a?this.bind("iLightBoxHashChange",a):this.trigger("iLightBoxHashChange")};$.fn.iLightBoxHashChange.delay=50;f.iLightBoxHashChange=$.extend(f.iLightBoxHashChange,{setup:function(){if(m)return!1;$(b.start)},teardown:function(){if(m)return!1;$(b.stop)}});b=function(){function a(){var c=
e(),d=f(l);c!==l?(n(l=c,d),$(window).trigger("iLightBoxHashChange")):d!==l&&(location.href=location.href.replace(/#.*/,"")+d);g=setTimeout(a,$.fn.iLightBoxHashChange.delay)}var h={},g,l=e(),b=function(c){return c},n=b,f=b;h.start=function(){g||a()};h.stop=function(){g&&clearTimeout(g);g=void 0};browser.msie&&!m&&function(){var c,d;h.start=function(){c||(d=(d=$.fn.iLightBoxHashChange.src)&&d+e(),c=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){d||n(e());a()}).attr("src",d||
"javascript:0").insertAfter("body")[0].contentWindow,k.onpropertychange=function(){try{"title"===event.propertyName&&(c.document.title=k.title)}catch(a){}})};h.stop=b;f=function(){return e(c.location.href)};n=function(a,d){var b=c.document,e=$.fn.iLightBoxHashChange.domain;a!==d&&(b.title=k.title,b.open(),e&&b.write('<script>document.domain="'+e+'"\x3c/script>'),b.close(),c.location.hash=a)}}();return h}()})();
if(!Array.prototype.filter){
Array.prototype.filter=function(fun ){
"use strict";
if(this==null)
throw new TypeError();
var t=Object(this);
var len=t.length >>> 0;
if(typeof fun!="function")
throw new TypeError();
var res=[];
var thisp=arguments[1];
for (var i=0; i < len; i++){
if(i in t){
var val=t[i];
if(fun.call(thisp, val, i, t))
res.push(val);
}}
return res;
};}
if(!Array.prototype.indexOf){
Array.prototype.indexOf=function(searchElement, fromIndex){
var k;
if(this==null){
throw new TypeError('"this" is null or not defined');
}
var O=Object(this);
var len=O.length >>> 0;
if(len===0){
return -1;
}
var n=+fromIndex||0;
if(abs(n)===Infinity){
n=0;
}
if(n >=len){
return -1;
}
k=max(n >=0 ? n:len - abs(n), 0);
while (k < len){
var kValue;
if(k in O&&O[k]===searchElement){
return k;
}
k++;
}
return -1;
};}
if(!Array.prototype.lastIndexOf){
Array.prototype.lastIndexOf=function(searchElement ){
"use strict";
if(this==null)
throw new TypeError();
var t=Object(this);
var len=t.length >>> 0;
if(len===0)
return -1;
var n=len;
if(arguments.length > 1){
n=Number(arguments[1]);
if(n!=n)
n=0;
else if(n!=0&&n!=(1 / 0)&&n!=-(1 / 0))
n=(n > 0||-1) * floor(abs(n));
}
var k=n >=0 ? min(n, len - 1):len - abs(n);
for (; k >=0; k--){
if(k in t&&t[k]===searchElement)
return k;
}
return -1;
};}})(jQuery, this);