From b25aed5b484c19bb9fb4c60d4a358694c580d749 Mon Sep 17 00:00:00 2001 From: Sean Kenny Date: Mon, 15 Sep 2014 20:00:22 +0100 Subject: [PATCH] Missing test files --- readme.md | 2 + src/agenda/AgendaView.js | 2 +- src/resource/ResourceEventRenderer.js | 767 ----------- tests/iframe.html | 29 + tests/lib/fancybox/blank.gif | Bin 0 -> 43 bytes tests/lib/fancybox/fancy_close.png | Bin 0 -> 1517 bytes tests/lib/fancybox/fancy_loading.png | Bin 0 -> 10195 bytes tests/lib/fancybox/fancy_nav_left.png | Bin 0 -> 1446 bytes tests/lib/fancybox/fancy_nav_right.png | Bin 0 -> 1454 bytes tests/lib/fancybox/fancy_shadow_e.png | Bin 0 -> 107 bytes tests/lib/fancybox/fancy_shadow_n.png | Bin 0 -> 106 bytes tests/lib/fancybox/fancy_shadow_ne.png | Bin 0 -> 347 bytes tests/lib/fancybox/fancy_shadow_nw.png | Bin 0 -> 324 bytes tests/lib/fancybox/fancy_shadow_s.png | Bin 0 -> 111 bytes tests/lib/fancybox/fancy_shadow_se.png | Bin 0 -> 352 bytes tests/lib/fancybox/fancy_shadow_sw.png | Bin 0 -> 340 bytes tests/lib/fancybox/fancy_shadow_w.png | Bin 0 -> 103 bytes tests/lib/fancybox/fancy_title_left.png | Bin 0 -> 503 bytes tests/lib/fancybox/fancy_title_main.png | Bin 0 -> 96 bytes tests/lib/fancybox/fancy_title_over.png | Bin 0 -> 70 bytes tests/lib/fancybox/fancy_title_right.png | Bin 0 -> 506 bytes tests/lib/fancybox/fancybox-x.png | Bin 0 -> 203 bytes tests/lib/fancybox/fancybox-y.png | Bin 0 -> 176 bytes tests/lib/fancybox/fancybox.png | Bin 0 -> 15287 bytes tests/lib/fancybox/jquery.easing-1.3.pack.js | 72 + tests/lib/fancybox/jquery.fancybox-1.3.4.css | 359 +++++ tests/lib/fancybox/jquery.fancybox-1.3.4.js | 1156 +++++++++++++++++ .../fancybox/jquery.fancybox-1.3.4.pack.js | 46 + .../fancybox/jquery.mousewheel-3.0.4.pack.js | 14 + tests/lib/jquery-1.4.3.min.js | 166 +++ tests/lib/themeswitcher/README.md | 29 + tests/lib/themeswitcher/images/buttonbg.png | Bin 0 -> 4176 bytes .../themeswitcher/images/icon_color_arrow.gif | Bin 0 -> 46 bytes .../lib/themeswitcher/images/menuhoverbg.png | Bin 0 -> 546 bytes .../images/theme_90_black_matte.png | Bin 0 -> 3309 bytes .../images/theme_90_black_tie.png | Bin 0 -> 3623 bytes .../themeswitcher/images/theme_90_blitzer.png | Bin 0 -> 7533 bytes .../images/theme_90_cupertino.png | Bin 0 -> 8530 bytes .../images/theme_90_dark_hive.png | Bin 0 -> 10481 bytes .../themeswitcher/images/theme_90_dot_luv.png | Bin 0 -> 3166 bytes .../images/theme_90_eggplant.png | Bin 0 -> 9041 bytes .../images/theme_90_excite_bike.png | Bin 0 -> 3697 bytes .../themeswitcher/images/theme_90_flick.png | Bin 0 -> 6432 bytes .../images/theme_90_hot_sneaks.png | Bin 0 -> 2961 bytes .../images/theme_90_humanity.png | Bin 0 -> 3259 bytes .../themeswitcher/images/theme_90_le_frog.png | Bin 0 -> 9124 bytes .../images/theme_90_mint_choco.png | Bin 0 -> 8620 bytes .../images/theme_90_overcast.png | Bin 0 -> 7103 bytes .../images/theme_90_pepper_grinder.png | Bin 0 -> 11553 bytes .../images/theme_90_smoothness.png | Bin 0 -> 3417 bytes .../images/theme_90_south_street.png | Bin 0 -> 8417 bytes .../images/theme_90_start_menu.png | Bin 0 -> 3260 bytes .../themeswitcher/images/theme_90_sunny.png | Bin 0 -> 8581 bytes .../images/theme_90_swanky_purse.png | Bin 0 -> 5367 bytes .../images/theme_90_trontastic.png | Bin 0 -> 4191 bytes .../themeswitcher/images/theme_90_ui_dark.png | Bin 0 -> 8760 bytes .../images/theme_90_ui_light.png | Bin 0 -> 5153 bytes .../themeswitcher/images/theme_90_windoze.png | Bin 0 -> 3370 bytes .../lib/themeswitcher/jquery.themeswitcher.js | 466 +++++++ tests/many_agenda_events_json.txt | 1 + tests/many_events_json.txt | 1 + 61 files changed, 2342 insertions(+), 768 deletions(-) delete mode 100644 src/resource/ResourceEventRenderer.js create mode 100644 tests/iframe.html create mode 100644 tests/lib/fancybox/blank.gif create mode 100644 tests/lib/fancybox/fancy_close.png create mode 100644 tests/lib/fancybox/fancy_loading.png create mode 100644 tests/lib/fancybox/fancy_nav_left.png create mode 100644 tests/lib/fancybox/fancy_nav_right.png create mode 100644 tests/lib/fancybox/fancy_shadow_e.png create mode 100644 tests/lib/fancybox/fancy_shadow_n.png create mode 100644 tests/lib/fancybox/fancy_shadow_ne.png create mode 100644 tests/lib/fancybox/fancy_shadow_nw.png create mode 100644 tests/lib/fancybox/fancy_shadow_s.png create mode 100644 tests/lib/fancybox/fancy_shadow_se.png create mode 100644 tests/lib/fancybox/fancy_shadow_sw.png create mode 100644 tests/lib/fancybox/fancy_shadow_w.png create mode 100644 tests/lib/fancybox/fancy_title_left.png create mode 100644 tests/lib/fancybox/fancy_title_main.png create mode 100644 tests/lib/fancybox/fancy_title_over.png create mode 100644 tests/lib/fancybox/fancy_title_right.png create mode 100644 tests/lib/fancybox/fancybox-x.png create mode 100644 tests/lib/fancybox/fancybox-y.png create mode 100644 tests/lib/fancybox/fancybox.png create mode 100644 tests/lib/fancybox/jquery.easing-1.3.pack.js create mode 100644 tests/lib/fancybox/jquery.fancybox-1.3.4.css create mode 100644 tests/lib/fancybox/jquery.fancybox-1.3.4.js create mode 100644 tests/lib/fancybox/jquery.fancybox-1.3.4.pack.js create mode 100644 tests/lib/fancybox/jquery.mousewheel-3.0.4.pack.js create mode 100644 tests/lib/jquery-1.4.3.min.js create mode 100644 tests/lib/themeswitcher/README.md create mode 100644 tests/lib/themeswitcher/images/buttonbg.png create mode 100644 tests/lib/themeswitcher/images/icon_color_arrow.gif create mode 100644 tests/lib/themeswitcher/images/menuhoverbg.png create mode 100644 tests/lib/themeswitcher/images/theme_90_black_matte.png create mode 100644 tests/lib/themeswitcher/images/theme_90_black_tie.png create mode 100644 tests/lib/themeswitcher/images/theme_90_blitzer.png create mode 100644 tests/lib/themeswitcher/images/theme_90_cupertino.png create mode 100644 tests/lib/themeswitcher/images/theme_90_dark_hive.png create mode 100644 tests/lib/themeswitcher/images/theme_90_dot_luv.png create mode 100644 tests/lib/themeswitcher/images/theme_90_eggplant.png create mode 100644 tests/lib/themeswitcher/images/theme_90_excite_bike.png create mode 100644 tests/lib/themeswitcher/images/theme_90_flick.png create mode 100644 tests/lib/themeswitcher/images/theme_90_hot_sneaks.png create mode 100644 tests/lib/themeswitcher/images/theme_90_humanity.png create mode 100644 tests/lib/themeswitcher/images/theme_90_le_frog.png create mode 100644 tests/lib/themeswitcher/images/theme_90_mint_choco.png create mode 100644 tests/lib/themeswitcher/images/theme_90_overcast.png create mode 100644 tests/lib/themeswitcher/images/theme_90_pepper_grinder.png create mode 100644 tests/lib/themeswitcher/images/theme_90_smoothness.png create mode 100644 tests/lib/themeswitcher/images/theme_90_south_street.png create mode 100644 tests/lib/themeswitcher/images/theme_90_start_menu.png create mode 100644 tests/lib/themeswitcher/images/theme_90_sunny.png create mode 100644 tests/lib/themeswitcher/images/theme_90_swanky_purse.png create mode 100644 tests/lib/themeswitcher/images/theme_90_trontastic.png create mode 100644 tests/lib/themeswitcher/images/theme_90_ui_dark.png create mode 100644 tests/lib/themeswitcher/images/theme_90_ui_light.png create mode 100644 tests/lib/themeswitcher/images/theme_90_windoze.png create mode 100644 tests/lib/themeswitcher/jquery.themeswitcher.js create mode 100644 tests/many_agenda_events_json.txt create mode 100644 tests/many_events_json.txt diff --git a/readme.md b/readme.md index f272f74..33580d1 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,5 @@ +[![Build Status](https://travis-ci.org/seankenny/fullcalendar.png?branch=master)](https://travis-ci.org/seankenny/fullcalendar) + #FORK INFO This fork adds a vertical resource view to FullCalendar. Some details on usage, etc are available here: http://www.seankenny.me/blog/2013/08/14/fullcalendar-with-a-resource-day-view/ diff --git a/src/agenda/AgendaView.js b/src/agenda/AgendaView.js index 5f4d797..a8d7748 100644 --- a/src/agenda/AgendaView.js +++ b/src/agenda/AgendaView.js @@ -347,7 +347,7 @@ $.extend(AgendaView.prototype, { // the all-day area is flexible and might have a lot of events, so shift the height this.updateHeight(); - // /View.prototype.renderEvents.call(this, events); // call the super-method + View.prototype.renderEvents.call(this, events); // call the super-method }, diff --git a/src/resource/ResourceEventRenderer.js b/src/resource/ResourceEventRenderer.js deleted file mode 100644 index af88bf1..0000000 --- a/src/resource/ResourceEventRenderer.js +++ /dev/null @@ -1,767 +0,0 @@ - -function ResourceEventRenderer() { - var t = this; - - - // exports - t.renderEvents = renderEvents; - t.clearEvents = clearEvents; - t.slotSegHtml = slotSegHtml; - - - // imports - DayEventRenderer.call(t); - var opt = t.opt; - var trigger = t.trigger; - var isEventDraggable = t.isEventDraggable; - var isEventResizable = t.isEventResizable; - var eventElementHandlers = t.eventElementHandlers; - var setHeight = t.setHeight; - var getDaySegmentContainer = t.getDaySegmentContainer; - var getSlotSegmentContainer = t.getSlotSegmentContainer; - var getHoverListener = t.getHoverListener; - var computeDateTop = t.computeDateTop; - var getIsCellAllDay = t.getIsCellAllDay; - var colContentLeft = t.colContentLeft; - var colContentRight = t.colContentRight; - var cellToDate = t.cellToDate; - var getColCnt = function() { return getResources().length; }; - var getColWidth = t.getColWidth; - var getSnapHeight = t.getSnapHeight; - var getSnapDuration = t.getSnapDuration; - var getSlotHeight = t.getSlotHeight; - var getSlotDuration = t.getSlotDuration; - var getSlotContainer = t.getSlotContainer; - var reportEventElement = t.reportEventElement; - var showEvents = t.showEvents; - var hideEvents = t.hideEvents; - var eventDrop = t.eventDrop; - var eventResize = t.eventResize; - var renderDayOverlay = t.renderDayOverlay; - var clearOverlays = t.clearOverlays; - var renderDayEvents = t.renderDayEvents; - var getMinTime = t.getMinTime; - var getMaxTime = t.getMaxTime; - var calendar = t.calendar; - var formatDate = calendar.formatDate; - var getEventEnd = calendar.getEventEnd; - var getResources = t.getResources; - - - // overrides - t.draggableDayEvent = draggableDayEvent; - - - - /* Rendering - ----------------------------------------------------------------------------*/ - - - function renderEvents(events, modifiedEventId) { - var i, len=events.length, - dayEvents=[], - slotEvents=[]; - for (i=0; i rangeStart && eventStart < rangeEnd) { - - if (eventStart < rangeStart) { - segStart = rangeStart.clone(); - isStart = false; - } - else { - segStart = eventStart; - isStart = true; - } - - if (eventEnd > rangeEnd) { - segEnd = rangeEnd.clone(); - isEnd = false; - } - else { - segEnd = eventEnd; - isEnd = true; - } - - segs.push({ - event: event, - start: segStart, - end: segEnd, - isStart: isStart, - isEnd: isEnd - }); - } - } - - return segs.sort(compareSlotSegs); - } - - function eventsForResource(resource, events) { - var resourceEvents = []; - var hasResource = function(event) { - return event.resources && $.grep(event.resources, function(id) { - return id == resource.id; - }).length; - }; - - for (var i = 0; i < events.length; i++) { - if (hasResource(events[i])) { - resourceEvents.push(events[i]); - } - } - return resourceEvents; - } - - - // renders events in the 'time slots' at the bottom - // TODO: when we refactor this, when user returns `false` eventRender, don't have empty space - // TODO: refactor will include using pixels to detect collisions instead of dates (handy for seg cmp) - - function renderSlotSegs(segs, modifiedEventId) { - - var i, segCnt=segs.length, seg, - event, - top, - bottom, - columnLeft, - columnRight, - columnWidth, - width, - left, - right, - html = '', - eventElements, - eventElement, - triggerRes, - titleElement, - height, - slotSegmentContainer = getSlotSegmentContainer(), - isRTL = opt('isRTL'); - - // calculate position/dimensions, create html - for (i=0; i" + - "
" + - "
" + - htmlEscape(t.getEventTimeText(event)) + - "
" + - "
" + - htmlEscape(event.title || '') + - "
" + - "
" + - "
"; - - if (seg.isEnd && isEventResizable(event)) { - html += - "
=
"; - } - html += - ""; - return html; - } - - - function bindSlotSeg(event, eventElement, seg) { - var timeElement = eventElement.find('div.fc-event-time'); - if (isEventDraggable(event)) { - draggableSlotEvent(event, eventElement, timeElement); - } - if (seg.isEnd && isEventResizable(event)) { - resizableSlotEvent(event, eventElement, timeElement); - } - eventElementHandlers(event, eventElement); - } - - - - /* Dragging - -----------------------------------------------------------------------------------*/ - - - // when event starts out FULL-DAY - // overrides DayEventRenderer's version because it needs to account for dragging elements - // to and from the slot area. - - function draggableDayEvent(event, eventElement, seg) { - var isStart = seg.isStart; - var origWidth; - var revert; - var allDay = true; - var dayDelta; - var origCol; - - var hoverListener = getHoverListener(); - var colWidth = getColWidth(); - var minTime = getMinTime(); - var slotDuration = getSlotDuration(); - var slotHeight = getSlotHeight(); - var snapDuration = getSnapDuration(); - var snapHeight = getSnapHeight(); - - eventElement.draggable({ - opacity: opt('dragOpacity', 'month'), // use whatever the month view was using - revertDuration: opt('dragRevertDuration'), - start: function(ev, ui) { - - trigger('eventDragStart', eventElement[0], event, ev, ui); - hideEvents(event, eventElement); - origWidth = eventElement.width(); - - hoverListener.start(function(cell, origCell) { - clearOverlays(); - if (cell) { - revert = false; - origCol = origCell.col; - var origDate = cellToDate(0, origCell.col); - var date = cellToDate(0, cell.col); - dayDelta = date.diff(origDate, 'days'); - - if (!cell.row) { // on full-days - - renderDayOverlay( - event.start.clone().add(dayDelta, 'days'), - getEventEnd(event).add(dayDelta, 'days'), - true, - 1 - ); - - resetElement(); - } - else { // mouse is over bottom slots - - if (isStart) { - if (allDay) { - // convert event to temporary slot-event - eventElement.width(colWidth - 10); // don't use entire width - setOuterHeight(eventElement, calendar.defaultTimedEventDuration / slotDuration * slotHeight); // the default height - eventElement.draggable('option', 'grid', [ colWidth, 1 ]); - allDay = false; - } - } - else { - revert = true; - } - } - - revert = revert || (allDay && !dayDelta); - } - else { - resetElement(); - revert = true; - } - - eventElement.draggable('option', 'revert', revert); - - }, ev, 'drag'); - }, - stop: function(ev, ui) { - hoverListener.stop(); - clearOverlays(); - trigger('eventDragStop', eventElement[0], event, ev, ui); - - if (revert) { // hasn't moved or is out of bounds (draggable has already reverted) - - resetElement(); - eventElement.css('filter', ''); // clear IE opacity side-effects - showEvents(event, eventElement); - } - else { // changed! - // calculate column delta - var newCol = Math.round((eventElement.offset().left - getSlotContainer().offset().left) / colWidth); - // if (newCol !== origCol){ - // event.resources = [ resources()[newCol].id ]; - // } - var resources = event.resources; - if (newCol !== origCol){ - resources = [ getResources()[newCol].id ]; - } - - var eventStart = event.start.clone(); // already assumed to have a stripped time - var snapTime; - var snapIndex; - if (!allDay) { - snapIndex = Math.round((eventElement.offset().top - getSlotContainer().offset().top) / snapHeight); // why not use ui.offset.top? - snapTime = moment.duration(minTime + snapIndex * snapDuration); - eventStart = calendar.rezoneDate(eventStart.clone().time(snapTime)); - } - - eventDrop( - eventElement[0], - event, - resources, - eventStart, - ev, - ui - ); - } - } - }); - function resetElement() { - if (!allDay) { - eventElement - .width(origWidth) - .height('') - .draggable('option', 'grid', null); - allDay = true; - } - } - } - - - // when event starts out IN TIMESLOTS - - function draggableSlotEvent(event, eventElement, timeElement) { - var coordinateGrid = t.getCoordinateGrid(); - var colCnt = getColCnt(); - var colWidth = getColWidth(); - var snapHeight = getSnapHeight(); - var snapDuration = getSnapDuration(); - - // states - var origPosition; // original position of the element, not the mouse - var origCell; - var isInBounds, prevIsInBounds; - var isAllDay, prevIsAllDay; - var colDelta, prevColDelta; - var dayDelta; // derived from colDelta - var resourceDelta; // derived from colDelta - var snapDelta, prevSnapDelta; // the number of snaps away from the original position - - // newly computed - var eventStart, eventEnd; - - eventElement.draggable({ - scroll: false, - grid: [ colWidth, snapHeight ], - axis: colCnt==1 ? 'y' : false, - opacity: opt('dragOpacity'), - revertDuration: opt('dragRevertDuration'), - start: function(ev, ui) { - - trigger('eventDragStart', eventElement[0], event, ev, ui); - hideEvents(event, eventElement); - - coordinateGrid.build(); - - // initialize states - origPosition = eventElement.position(); - origCell = coordinateGrid.cell(ev.pageX, ev.pageY); - isInBounds = prevIsInBounds = true; - isAllDay = prevIsAllDay = getIsCellAllDay(origCell); - colDelta = prevColDelta = 0; - dayDelta = 0; - resourceDelta = 0; - snapDelta = prevSnapDelta = 0; - - eventStart = null; - eventEnd = null; - }, - drag: function(ev, ui) { - - // NOTE: this `cell` value is only useful for determining in-bounds and all-day. - // Bad for anything else due to the discrepancy between the mouse position and the - // element position while snapping. (problem revealed in PR #55) - // - // PS- the problem exists for draggableDayEvent() when dragging an all-day event to a slot event. - // We should overhaul the dragging system and stop relying on jQuery UI. - var cell = coordinateGrid.cell(ev.pageX, ev.pageY); - - // update states - isInBounds = !!cell; - if (isInBounds) { - isAllDay = getIsCellAllDay(cell); - - // calculate column delta - colDelta = Math.round((ui.position.left - origPosition.left) / colWidth); - if (colDelta != prevColDelta) { - // calculate the day delta based off of the original clicked column and the column delta - resourceDelta = colDelta; - } - - // calculate minute delta (only if over slots) - if (!isAllDay) { - snapDelta = Math.round((ui.position.top - origPosition.top) / snapHeight); - } - } - - // any state changes? - if ( - isInBounds != prevIsInBounds || - isAllDay != prevIsAllDay || - colDelta != prevColDelta || - snapDelta != prevSnapDelta - ) { - - // compute new dates - if (isAllDay) { - eventStart = event.start.clone().stripTime().add(dayDelta, 'days'); - eventEnd = eventStart.clone().add(calendar.defaultAllDayEventDuration); - } - else { - eventStart = event.start.clone().add(snapDelta * snapDuration).add(dayDelta, 'days'); - eventEnd = getEventEnd(event).add(snapDelta * snapDuration).add(dayDelta, 'days'); - } - - updateUI(); - - // update previous states for next time - prevIsInBounds = isInBounds; - prevIsAllDay = isAllDay; - prevColDelta = colDelta; - prevSnapDelta = snapDelta; - } - - // if out-of-bounds, revert when done, and vice versa. - eventElement.draggable('option', 'revert', !isInBounds); - - }, - stop: function(ev, ui) { - - clearOverlays(); - - trigger('eventDragStop', eventElement[0], event, ev, ui); - - if (isInBounds && (isAllDay || resourceDelta || snapDelta)) { // changed! - var resources = event.resources; - if (resourceDelta){ - resources = [ getResources()[origCell.col + resourceDelta].id ]; - } - eventDrop( - eventElement[0], - event, - resources, - eventStart, - ev, - ui - ); - } - else { // either no change or out-of-bounds (draggable has already reverted) - - // reset states for next time, and for updateUI() - isInBounds = true; - isAllDay = false; - colDelta = 0; - dayDelta = 0; - snapDelta = 0; - - updateUI(); - eventElement.css('filter', ''); // clear IE opacity side-effects - - // sometimes fast drags make event revert to wrong position, so reset. - // also, if we dragged the element out of the area because of snapping, - // but the *mouse* is still in bounds, we need to reset the position. - eventElement.css(origPosition); - - showEvents(event, eventElement); - } - } - }); - - function updateUI() { - clearOverlays(); - if (isInBounds) { - if (isAllDay) { - timeElement.hide(); - eventElement.draggable('option', 'grid', null); // disable grid snapping - renderDayOverlay(eventStart, eventEnd, false, origCell.col + colDelta); - } - else { - updateTimeText(); - timeElement.css('display', ''); // show() was causing display=inline - eventElement.draggable('option', 'grid', [colWidth, snapHeight]); // re-enable grid snapping - } - } - } - - function updateTimeText() { - if (eventStart) { // must of had a state change - timeElement.text( - t.getEventTimeText(eventStart, event.end ? eventEnd : null) - // ^ - // only display the new end if there was an old end - ); - } - } - - } - - - - /* Resizing - --------------------------------------------------------------------------------------*/ - - - function resizableSlotEvent(event, eventElement, timeElement) { - var snapDelta, prevSnapDelta; - var snapHeight = getSnapHeight(); - var snapDuration = getSnapDuration(); - var eventEnd; - - eventElement.resizable({ - handles: { - s: '.ui-resizable-handle' - }, - grid: snapHeight, - start: function(ev, ui) { - snapDelta = prevSnapDelta = 0; - hideEvents(event, eventElement); - trigger('eventResizeStart', eventElement[0], event, ev, ui); - }, - resize: function(ev, ui) { - // don't rely on ui.size.height, doesn't take grid into account - snapDelta = Math.round((Math.max(snapHeight, eventElement.height()) - ui.originalSize.height) / snapHeight); - if (snapDelta != prevSnapDelta) { - eventEnd = getEventEnd(event).add(snapDuration * snapDelta); - var text; - if (snapDelta) { // has there been a change? - text = t.getEventTimeText(event.start, eventEnd); - } - else { - text = t.getEventTimeText(event); // the original time text - } - timeElement.text(text); - prevSnapDelta = snapDelta; - } - }, - stop: function(ev, ui) { - trigger('eventResizeStop', eventElement[0], event, ev, ui); - if (snapDelta) { - eventResize( - eventElement[0], - event, - eventEnd, - ev, - ui - ); - } - else { - showEvents(event, eventElement); - // BUG: if event was really short, need to put title back in span - } - } - }); - } - - -} \ No newline at end of file diff --git a/tests/iframe.html b/tests/iframe.html new file mode 100644 index 0000000..43c69da --- /dev/null +++ b/tests/iframe.html @@ -0,0 +1,29 @@ + + + + + + + + + +
+ +

FancyBox v1.2.6

+ +

+Open a FullCalendar +

+ +
+ + diff --git a/tests/lib/fancybox/blank.gif b/tests/lib/fancybox/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancy_close.png b/tests/lib/fancybox/fancy_close.png new file mode 100644 index 0000000000000000000000000000000000000000..07035307ad435f8f2f8eedf0bce50f7ec8a858c2 GIT binary patch literal 1517 zcmV1To%f)hA(E>uTT$~N#GA0orBqo9-jKM;POccZrXJjTzge4|Sa0ca~7y<+{ z2m7~>41(Jqf9L`mBM6zAjf4;hkjP@@B~d6Xz385|dB5iCM=Ro&JZZmk-uHdZd2i=@ zK0a@Md;u9DFE7t8BO^nxckf<*yC?SckUFGmX^jwM@NV80+eiP zQ*s##s^a3}Ldwd@cHO*r^T5i=%Fj}=Cr_R@78e&C((#usU;YFS>C)2Dw4tG)YO=*P zWt;6ZfL46;=u!R1$jGM-hhvcpVyCa+S}Q!T2ALHx;BHe#M~BsHHos=s2iW})#C?}q ztqvud-gYjKsG$zHm2XhmYPB(Bn>kzw z=gS!w6cG`jJ$?H00VK+=!cMnBDn?IFkCkj7KmNq~hrkZvU@n=EP}|7Gxw*M}1_lPI zNx@_?IS^|%_ok<(o3gXBH^f+@(X7_g)K~%n0$gMM{{Ab=%gZ*hH99)_Eo>!VJd8_C zE)WMoNsBB#u&}W3BMEnPby>y64F-cra9>kX)4DJoA0KZ5fitNn`NTT4wY3%+fA;Lz zZ+K4ucJi+Mg!m%<>Ug8kSg^LX_JD-5va;NEM#+V_H)8UHgaj8UJ?LiZVx92t@KxlB zb1oz#Bo|{kAO!IDVfOII$VfwRad8C+y?XV^;VEu~g@tQka>%(zhlYl1p7P=0!-vj9 zYiMYw3l0uW##jWq+eZ-;6r@4F%{+PXGcz;xx78|Q_F7Eb+}ynGO@4TI*h!27r4#SzfR=K~ zhtpe&%-o-olT$}R&!0cHdm}}wbdd`2lO~)PlarHXnm>2$+(ng2^$EtJ+=vwl#Xg-* zSA%x<9|=lJ3CXuACMEY46&1O~{LGm%7HKm8lhZ|+Pv?nF1LcJswy+L%zshO4HzpR4skij zxq<8a{QPpl!oq4$R(*n7$-q`gsjcF2;NWZ?##l9wBW)lu_Bpk)RJgGO&Ey+2dDr3J z*x2~aJFl#)G^5U)q~qh`_b^ru6q9Xf%arlfse$W(T#z5f?cqE0>k)x`c6QcMUS4jN z#$B996B84z1O(|{7{3S{Bb#j7?T~OCi+pq$fP9eGqJ%Evk~i}B@#8tcAnk_QAg)9f z!qn81MJO5W0n6>}?Q|$y25QL`+uU$0x?KbSI<(UOBavf=wCW!^J3Ie)^yty-8!yk& z($YLG4fjwT{k&5mHL@*_7Xi1c4?x$HT^y5qc2zyPPCG3CUKl!f@Zj&~&!7K?fD>&z zDk^G(=74sN=`q$#Wm{gaK5myi7K~vRQ8s=CoB+NC8j<}iKpXzI(SMmt*2r@wST=`s zW7t-}X4hPqXy3W00000NkvXXu0mjftFGKG literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancy_loading.png b/tests/lib/fancybox/fancy_loading.png new file mode 100644 index 0000000000000000000000000000000000000000..2503017960b3972499d3aa92f89953935ae40934 GIT binary patch literal 10195 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 literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancy_nav_left.png b/tests/lib/fancybox/fancy_nav_left.png new file mode 100644 index 0000000000000000000000000000000000000000..ebaa6a4fd34e51575a01da366312c20618985cbc GIT binary patch literal 1446 zcmV;X1zGxuP)R`@usIzf?P{x4#0gFqr~|(;IJySuwjr=+Ar78e&sHZ(Lu;P)*wKU%|U#jmpg5~Q6= zNl8{#mZGz>Q!_F$qJ8n=#Z9x>Jn_n|ZEtTsSzllOW_Wn`!@Rt_=!l4jAl`tKb-5%L zv7js_CMF<1KR>Fcr{|nbr~AR4Y-MG|y0EZdwI6@^^5yrikSZ}TQ5hH*C?{R4Q{?KT zKD6U2SFWfB2M0g0TCEGD5GUP%Y0a>J0W!M1fVuVU?d@ix(YV91PjUK7@OzY8E)OJ~ z&Q30n%8njA8kC)#t?uvd&xMXHQZzI)WQmTB-n1vQM_gQ-{_*3-7UA?*_bJ9=m|W(F zT+IHE$H&L3T3T8zSS*%BTHM>)YZi;eI#;9uNVch|X-go#ckf=VQmKq2-ORBYaGo52 zejyg&!SS;_ltMX3~N9_#ORsfn&tMTp}T$j*yAd)6-A(_4O6g z0=-^ug|9bVkxorbSsNQ0x9sPG&EF`laq6qgf=!d ztnQGKnVtDqz_Vx1Y=Kr=TU+Vx?;nS;5H`1m#Lv%9fqI)#T3Y%!3C+yRSpE-E!h;77 zwm7Z1{&Y;%TkkIqz&m9sAKBbnCkzsHry#@vbY{a-wI?zu7 zloV4Q9NtQWLUAT7Ev=G-*4EZ6|HZd^F*!MDB>C#<>PDGN_5sGi_Yq4ZlG7@css!ck z9};wyN`LrygSGPaaLVfqXl2Z+Nkm;ygvo12>(Bf+YwDwC`Hbwy5foiCI>(Z2*F z+nZVe;)K}P*aF#9Y8tUS3{lK|w(!NULrkdP#x17leSb zXU`h&IIwaw4`8eqNV6{>BDOh|vjhZ0E{e&QDDu0Pe|>%Zmb;{dg@s0w$z&rPA0K~+ zu^J$UblaCq5g(ljxEe?Y`8AmFYt-vOfqZ&;+Eh?bV07kp3Z#jN34Zfk3!OW_7k zM!Hz%fopN!Lja&lI}y+lIZjBszTeT&@!Ra|?DQ)q4Us*EN5ey8M=zh0NVTlX;X`2G z(+8kuN)-Dfn@v@Ns?$arfE9ks%*_0?uCDGc0&cYN@bK_KngiO{r&oDx0_$@6^x5~= zW5Gx^5k=$2z;)mYpdQiR47B2ZEBzOVMD;v(on_N_Z6xdRarMj=Ped`)=n zv4Dh?$k=SYcJSdjDa(58`F?t%ZzxBbaRs;9zaA#)un(S!5dZ)H07*qoM6N<$g4RXF AD*ylh literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancy_nav_right.png b/tests/lib/fancybox/fancy_nav_right.png new file mode 100644 index 0000000000000000000000000000000000000000..873294e969db9160f5ddd4e1ab498ff60b080e3f GIT binary patch literal 1454 zcmV;f1yTBmP)Wa6`&Z+!IVkxf`V#(j>y7#5eg z5*PD+C=wGBwT+F9xi*_^fd=>X_FBba@wz8b0c3ma+OG#c&LYnSBp_4S(*6BG8m#QpsI))yBSw}|WBy?ft)>pk?VIMu|0u-xC@UxO$< zHa9o-0~vR8bXeVyB61x;@W6T@vgyO$TgWvPslhu zJ>BGvFeN3$D2UT9wO!c-2M2E;RvddB6cm(&J}nRg`1!DUaA;_#J})n?kc`&W*6f~w z$XoI8@o`6>)z;Ql1O^7iqc4Qr?IQ^Y2vDQmrd_^#`AagIo}RXO6Tw=o)=2K&OZ?8A zJDVKcH{^2p2j~ms)bf#Ff5Y^8{ZZ7~8Zw%koV0nHJ||9`FbS!%u(0sL`TfAafI}Du zN;}#qfQDkqhr?T=R;!O@W@c89(aOq-SHe5pO)Do4INRL6f8R{+tE;Q)Wir`E=nLN^ zERjf#VBjT`yZ^}0T`IW~brs!I17PDwDHNtJpz(@u7&_Ci&*x`nXGh4eva-_hHlhTo z>wKX6jrLg})!Ef*2q(qH#unh5y~V~`*!#E25W2>+0$@y%jAkE;d^% z7KiBQ=;#CV)c|?K?OZZNymTtyIv@+;=i$b0QLhID@u{gPOF=<_+1^cd)FbceJt|Pr3Z2#UW)pC9hbbpr%#_w3xu>9DucKZSqKjwKC}oa!!=;B zxw)ARh3h~maWUsB$KtMw06>R!GGHKatdM5?eS3TRA2TyEQ!m{-s9LkQG(13d^zuqc z)WBRWF9N%+J^)=)qIgeo*i|*CI?Xfzc;V-hCr|!<<;s9veooizpgD1ug<#0dV!Z literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancy_shadow_e.png b/tests/lib/fancybox/fancy_shadow_e.png new file mode 100644 index 0000000000000000000000000000000000000000..2eda0893649371f8d92b92976d8542cdd1b601ed GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W@!3HGnP3ltxQbwLGjv*Y^lSRZuwe#}JO|p{EaWGAM`~zK|Yh zF7SQ+m+Ig>B0@o-N8?trihfzZ+Vp1~`{zf0o*#X0$hUAi%N$P)W1wCJ22WQ%mvv4F FO#q)zAp-ya literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancy_shadow_ne.png b/tests/lib/fancybox/fancy_shadow_ne.png new file mode 100644 index 0000000000000000000000000000000000000000..79f6980a3ba5c43de120d963dbba2516b8f27ac7 GIT binary patch literal 347 zcmV-h0i^zkP)dR9Yb&V8f!h)aDezHAsc|y@|hdQ zYJb}?8~~zFbQ)ku!Ey)KSukutuvdZ@MKMX|x|A3tPyx?YVhN^6z!Mi4Mj2f#%<;nh z2{>?YAzu|{u^;Oq!;f7Z4tPBpJEmZ+^GZ#$=9nz(K+UmK7}|u&EPi%aRt_C3qOFB_ zHc`~N>51%{?ijG?xsHt>MwRChgk=x_z0gh3O2xSL)-6?+2LKZL74~Q>MZjWtwukkA tvjRC=&j+0R$&bLyT7MhBcTXDISHC&xXU0&5CWHV0002ovPDHLkV1fX+la~Mh literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancy_shadow_nw.png b/tests/lib/fancybox/fancy_shadow_nw.png new file mode 100644 index 0000000000000000000000000000000000000000..7182cd938ae98e7e28c65a0bc55df576042ff9f5 GIT binary patch literal 324 zcmV-K0lWT*P)2-&4CO{qhKP$XKD&mgeXEM77>~`RA}h@U^Z##eQZVtM>a-K?QT4 z&(8BFf(rD5V61)2I__wHYuRwoaDIqw5Vdr_JSDVr){#J@r;{vbDL|tRyCiirf~4OF zX-l=Ecm>@yR)1nSMt~dy90Zb`^`)TQbhf8jR@fA!l6V$musRyB9Y{p$SCW}!$3==V zk)fW)Xo{s^ez$t+XhmZj;ts)!kTokvmM>z)zt70000 literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancy_shadow_se.png b/tests/lib/fancybox/fancy_shadow_se.png new file mode 100644 index 0000000000000000000000000000000000000000..541e3ffd3e88224b34a4d2097c66a780e6060aeb GIT binary patch literal 352 zcmV-m0iXVfP){pM9=`y8<_IvWD02WY@RZ<9dgjNmAB|sYF}Xw>7Sq@O0000eMf9z;FC21=)67q_`W0*0KnS4AR00W2`RGn3i8UfsEegLO@ zPhds?2e1Tm)FK3=bymIAx?X=YFo3Mdh7W?@I#8s#svp!&PB> zwah@Ngd|l0N4SCfzvjtQnd$dZ0yM)N$X+lqdtN!Pt{Wn*_`0U}m1^#r1 mwpaW{;a?9KKt^WrpTAEd?0j1W(3L*`0000P{ho=rRL|66mGO)=r*Hk83F#~lnc)I$ztaD0e0sy?& B8X5oq literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancy_title_left.png b/tests/lib/fancybox/fancy_title_left.png new file mode 100644 index 0000000000000000000000000000000000000000..6049223d1ec6af46e100499c01f6489c9e2c6240 GIT binary patch literal 503 zcmV+)0005LNklqcp9&~$uJw{{rUub~E?-XJ#Upm4Fe%-Gl z!u%tb0N102a|s5;SPlQvJlFCTBbvYaK@wIW6Gjx@?i20AlVDJcHNfh25WRlbF6CIq zv9_ZnqOH`}ppaUR0@%ZcM9zpDt2uQM>f+Z#wIMmyuui3DeoYXWE|hQ{D$te=Yhgkq zIvyj+$t8T|S1wITzUftNOe(E+Qjn$kDotY;I5}1lRgwi=?K26ke)djLR5W2|!7CVH zJ-`tuAq|`lK978y+CnqGNCkUke_%Gig ukvFM-ftpWh!il7Wg7kz7Y?7xB@G*olNlgoj4E_Yv!rmdKI;Vst0Ha3^zyJUM literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancy_title_right.png b/tests/lib/fancybox/fancy_title_right.png new file mode 100644 index 0000000000000000000000000000000000000000..e36d9db2a7c6e570aec993d3665cbc13620115e2 GIT binary patch literal 506 zcmV+)0005ONklxjQB-g>5=x46nGBwseihc$zfzvTFh(=tCRj6cJ4M&ASrCAq-HbokPnRBAHVa2(-|l wYU(UxfYLN;KDSr z1<%~X^wgl##FWaylc_d9MY*0Xjv*Ddw)7kFH5l+P-xcE$W)3=fYI&uMKVzWNT*W|n zhqlRY)q0r(8Mg&Fu_zpISivgz+b7g)c6G&O{~njE??Y{u-MM!p^=9_W+X-j8mhfK? zj`H2Yy;kp%)!V-M3;EVThyB(Z@o88wpMja-vy^g)SgE!<&|(HpS3j3^P6|6H_V+Po~-c6$N>^IEGZ*^681?Yf#{6Zf~e!I`r4y-J+3m*Ue*gH=cNZ zzpU%p61aCO%jt%FHUKW&bEWLcUAGzK?;SYE)E{9#W9O8@uj{O@89qzNU(dkI YVCW(7-@(*!CeU;SPgg&ebxsLQ07`N|KL7v# literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/fancybox.png b/tests/lib/fancybox/fancybox.png new file mode 100644 index 0000000000000000000000000000000000000000..65e14f68fd83b87f75c22c0c074e7b20bf20a133 GIT binary patch literal 15287 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 ZMt7F5hocMxav&E)U0Fw|QQ>vO{{ZOG+C=~W literal 0 HcmV?d00001 diff --git a/tests/lib/fancybox/jquery.easing-1.3.pack.js b/tests/lib/fancybox/jquery.easing-1.3.pack.js new file mode 100644 index 0000000..9028179 --- /dev/null +++ b/tests/lib/fancybox/jquery.easing-1.3.pack.js @@ -0,0 +1,72 @@ +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright © 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('h.i[\'1a\']=h.i[\'z\'];h.O(h.i,{y:\'D\',z:9(x,t,b,c,d){6 h.i[h.i.y](x,t,b,c,d)},17:9(x,t,b,c,d){6 c*(t/=d)*t+b},D:9(x,t,b,c,d){6-c*(t/=d)*(t-2)+b},13:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t+b;6-c/2*((--t)*(t-2)-1)+b},X:9(x,t,b,c,d){6 c*(t/=d)*t*t+b},U:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t+1)+b},R:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t+b;6 c/2*((t-=2)*t*t+2)+b},N:9(x,t,b,c,d){6 c*(t/=d)*t*t*t+b},M:9(x,t,b,c,d){6-c*((t=t/d-1)*t*t*t-1)+b},L:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t+b;6-c/2*((t-=2)*t*t*t-2)+b},K:9(x,t,b,c,d){6 c*(t/=d)*t*t*t*t+b},J:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t*t*t+1)+b},I:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t*t+b;6 c/2*((t-=2)*t*t*t*t+2)+b},G:9(x,t,b,c,d){6-c*8.C(t/d*(8.g/2))+c+b},15:9(x,t,b,c,d){6 c*8.n(t/d*(8.g/2))+b},12:9(x,t,b,c,d){6-c/2*(8.C(8.g*t/d)-1)+b},Z:9(x,t,b,c,d){6(t==0)?b:c*8.j(2,10*(t/d-1))+b},Y:9(x,t,b,c,d){6(t==d)?b+c:c*(-8.j(2,-10*t/d)+1)+b},W:9(x,t,b,c,d){e(t==0)6 b;e(t==d)6 b+c;e((t/=d/2)<1)6 c/2*8.j(2,10*(t-1))+b;6 c/2*(-8.j(2,-10*--t)+2)+b},V:9(x,t,b,c,d){6-c*(8.o(1-(t/=d)*t)-1)+b},S:9(x,t,b,c,d){6 c*8.o(1-(t=t/d-1)*t)+b},Q:9(x,t,b,c,d){e((t/=d/2)<1)6-c/2*(8.o(1-t*t)-1)+b;6 c/2*(8.o(1-(t-=2)*t)+1)+b},P:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6-(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b},H:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6 a*8.j(2,-10*t)*8.n((t*d-s)*(2*8.g)/p)+c+b},T:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d/2)==2)6 b+c;e(!p)p=d*(.3*1.5);e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);e(t<1)6-.5*(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b;6 a*8.j(2,-10*(t-=1))*8.n((t*d-s)*(2*8.g)/p)*.5+c+b},F:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*(t/=d)*t*((s+1)*t-s)+b},E:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},16:9(x,t,b,c,d,s){e(s==u)s=1.l;e((t/=d/2)<1)6 c/2*(t*t*(((s*=(1.B))+1)*t-s))+b;6 c/2*((t-=2)*t*(((s*=(1.B))+1)*t+s)+2)+b},A:9(x,t,b,c,d){6 c-h.i.v(x,d-t,0,c,d)+b},v:9(x,t,b,c,d){e((t/=d)<(1/2.k)){6 c*(7.q*t*t)+b}m e(t<(2/2.k)){6 c*(7.q*(t-=(1.5/2.k))*t+.k)+b}m e(t<(2.5/2.k)){6 c*(7.q*(t-=(2.14/2.k))*t+.11)+b}m{6 c*(7.q*(t-=(2.18/2.k))*t+.19)+b}},1b:9(x,t,b,c,d){e(t')[0], { prop: 0 }), + + isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest, + + /* + * Private methods + */ + + _abort = function() { + loading.hide(); + + imgPreloader.onerror = imgPreloader.onload = null; + + if (ajaxLoader) { + ajaxLoader.abort(); + } + + tmp.empty(); + }, + + _error = function() { + if (false === selectedOpts.onError(selectedArray, selectedIndex, selectedOpts)) { + loading.hide(); + busy = false; + return; + } + + selectedOpts.titleShow = false; + + selectedOpts.width = 'auto'; + selectedOpts.height = 'auto'; + + tmp.html( '

The requested content cannot be loaded.
Please try again later.

' ); + + _process_inline(); + }, + + _start = function() { + var obj = selectedArray[ selectedIndex ], + href, + type, + title, + str, + emb, + ret; + + _abort(); + + selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox'))); + + ret = selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts); + + if (ret === false) { + busy = false; + return; + } else if (typeof ret == 'object') { + selectedOpts = $.extend(selectedOpts, ret); + } + + title = selectedOpts.title || (obj.nodeName ? $(obj).attr('title') : obj.title) || ''; + + if (obj.nodeName && !selectedOpts.orig) { + selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj); + } + + if (title === '' && selectedOpts.orig && selectedOpts.titleFromAlt) { + title = selectedOpts.orig.attr('alt'); + } + + href = selectedOpts.href || (obj.nodeName ? $(obj).attr('href') : obj.href) || null; + + if ((/^(?:javascript)/i).test(href) || href == '#') { + href = null; + } + + if (selectedOpts.type) { + type = selectedOpts.type; + + if (!href) { + href = selectedOpts.content; + } + + } else if (selectedOpts.content) { + type = 'html'; + + } else if (href) { + if (href.match(imgRegExp)) { + type = 'image'; + + } else if (href.match(swfRegExp)) { + type = 'swf'; + + } else if ($(obj).hasClass("iframe")) { + type = 'iframe'; + + } else if (href.indexOf("#") === 0) { + type = 'inline'; + + } else { + type = 'ajax'; + } + } + + if (!type) { + _error(); + return; + } + + if (type == 'inline') { + obj = href.substr(href.indexOf("#")); + type = $(obj).length > 0 ? 'inline' : 'ajax'; + } + + selectedOpts.type = type; + selectedOpts.href = href; + selectedOpts.title = title; + + if (selectedOpts.autoDimensions) { + if (selectedOpts.type == 'html' || selectedOpts.type == 'inline' || selectedOpts.type == 'ajax') { + selectedOpts.width = 'auto'; + selectedOpts.height = 'auto'; + } else { + selectedOpts.autoDimensions = false; + } + } + + if (selectedOpts.modal) { + selectedOpts.overlayShow = true; + selectedOpts.hideOnOverlayClick = false; + selectedOpts.hideOnContentClick = false; + selectedOpts.enableEscapeButton = false; + selectedOpts.showCloseButton = false; + } + + selectedOpts.padding = parseInt(selectedOpts.padding, 10); + selectedOpts.margin = parseInt(selectedOpts.margin, 10); + + tmp.css('padding', (selectedOpts.padding + selectedOpts.margin)); + + $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() { + $(this).replaceWith(content.children()); + }); + + switch (type) { + case 'html' : + tmp.html( selectedOpts.content ); + _process_inline(); + break; + + case 'inline' : + if ( $(obj).parent().is('#fancybox-content') === true) { + busy = false; + return; + } + + $('
') + .hide() + .insertBefore( $(obj) ) + .bind('fancybox-cleanup', function() { + $(this).replaceWith(content.children()); + }).bind('fancybox-cancel', function() { + $(this).replaceWith(tmp.children()); + }); + + $(obj).appendTo(tmp); + + _process_inline(); + break; + + case 'image': + busy = false; + + $.fancybox.showActivity(); + + imgPreloader = new Image(); + + imgPreloader.onerror = function() { + _error(); + }; + + imgPreloader.onload = function() { + busy = true; + + imgPreloader.onerror = imgPreloader.onload = null; + + _process_image(); + }; + + imgPreloader.src = href; + break; + + case 'swf': + selectedOpts.scrolling = 'no'; + + str = ''; + emb = ''; + + $.each(selectedOpts.swf, function(name, val) { + str += ''; + emb += ' ' + name + '="' + val + '"'; + }); + + str += ''; + + tmp.html(str); + + _process_inline(); + break; + + case 'ajax': + busy = false; + + $.fancybox.showActivity(); + + selectedOpts.ajax.win = selectedOpts.ajax.success; + + ajaxLoader = $.ajax($.extend({}, selectedOpts.ajax, { + url : href, + data : selectedOpts.ajax.data || {}, + error : function(XMLHttpRequest, textStatus, errorThrown) { + if ( XMLHttpRequest.status > 0 ) { + _error(); + } + }, + success : function(data, textStatus, XMLHttpRequest) { + var o = typeof XMLHttpRequest == 'object' ? XMLHttpRequest : ajaxLoader; + if (o.status == 200) { + if ( typeof selectedOpts.ajax.win == 'function' ) { + ret = selectedOpts.ajax.win(href, data, textStatus, XMLHttpRequest); + + if (ret === false) { + loading.hide(); + return; + } else if (typeof ret == 'string' || typeof ret == 'object') { + data = ret; + } + } + + tmp.html( data ); + _process_inline(); + } + } + })); + + break; + + case 'iframe': + _show(); + break; + } + }, + + _process_inline = function() { + var + w = selectedOpts.width, + h = selectedOpts.height; + + if (w.toString().indexOf('%') > -1) { + w = parseInt( ($(window).width() - (selectedOpts.margin * 2)) * parseFloat(w) / 100, 10) + 'px'; + + } else { + w = w == 'auto' ? 'auto' : w + 'px'; + } + + if (h.toString().indexOf('%') > -1) { + h = parseInt( ($(window).height() - (selectedOpts.margin * 2)) * parseFloat(h) / 100, 10) + 'px'; + + } else { + h = h == 'auto' ? 'auto' : h + 'px'; + } + + tmp.wrapInner('
'); + + selectedOpts.width = tmp.width(); + selectedOpts.height = tmp.height(); + + _show(); + }, + + _process_image = function() { + selectedOpts.width = imgPreloader.width; + selectedOpts.height = imgPreloader.height; + + $("").attr({ + 'id' : 'fancybox-img', + 'src' : imgPreloader.src, + 'alt' : selectedOpts.title + }).appendTo( tmp ); + + _show(); + }, + + _show = function() { + var pos, equal; + + loading.hide(); + + if (wrap.is(":visible") && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) { + $.event.trigger('fancybox-cancel'); + + busy = false; + return; + } + + busy = true; + + $(content.add( overlay )).unbind(); + + $(window).unbind("resize.fb scroll.fb"); + $(document).unbind('keydown.fb'); + + if (wrap.is(":visible") && currentOpts.titlePosition !== 'outside') { + wrap.css('height', wrap.height()); + } + + currentArray = selectedArray; + currentIndex = selectedIndex; + currentOpts = selectedOpts; + + if (currentOpts.overlayShow) { + overlay.css({ + 'background-color' : currentOpts.overlayColor, + 'opacity' : currentOpts.overlayOpacity, + 'cursor' : currentOpts.hideOnOverlayClick ? 'pointer' : 'auto', + 'height' : $(document).height() + }); + + if (!overlay.is(':visible')) { + if (isIE6) { + $('select:not(#fancybox-tmp select)').filter(function() { + return this.style.visibility !== 'hidden'; + }).css({'visibility' : 'hidden'}).one('fancybox-cleanup', function() { + this.style.visibility = 'inherit'; + }); + } + + overlay.show(); + } + } else { + overlay.hide(); + } + + final_pos = _get_zoom_to(); + + _process_title(); + + if (wrap.is(":visible")) { + $( close.add( nav_left ).add( nav_right ) ).hide(); + + pos = wrap.position(), + + start_pos = { + top : pos.top, + left : pos.left, + width : wrap.width(), + height : wrap.height() + }; + + equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height); + + content.fadeTo(currentOpts.changeFade, 0.3, function() { + var finish_resizing = function() { + content.html( tmp.contents() ).fadeTo(currentOpts.changeFade, 1, _finish); + }; + + $.event.trigger('fancybox-change'); + + content + .empty() + .removeAttr('filter') + .css({ + 'border-width' : currentOpts.padding, + 'width' : final_pos.width - currentOpts.padding * 2, + 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2 + }); + + if (equal) { + finish_resizing(); + + } else { + fx.prop = 0; + + $(fx).animate({prop: 1}, { + duration : currentOpts.changeSpeed, + easing : currentOpts.easingChange, + step : _draw, + complete : finish_resizing + }); + } + }); + + return; + } + + wrap.removeAttr("style"); + + content.css('border-width', currentOpts.padding); + + if (currentOpts.transitionIn == 'elastic') { + start_pos = _get_zoom_from(); + + content.html( tmp.contents() ); + + wrap.show(); + + if (currentOpts.opacity) { + final_pos.opacity = 0; + } + + fx.prop = 0; + + $(fx).animate({prop: 1}, { + duration : currentOpts.speedIn, + easing : currentOpts.easingIn, + step : _draw, + complete : _finish + }); + + return; + } + + if (currentOpts.titlePosition == 'inside' && titleHeight > 0) { + title.show(); + } + + content + .css({ + 'width' : final_pos.width - currentOpts.padding * 2, + 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2 + }) + .html( tmp.contents() ); + + wrap + .css(final_pos) + .fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish ); + }, + + _format_title = function(title) { + if (title && title.length) { + if (currentOpts.titlePosition == 'float') { + return '
' + title + '
'; + } + + return '
' + title + '
'; + } + + return false; + }, + + _process_title = function() { + titleStr = currentOpts.title || ''; + titleHeight = 0; + + title + .empty() + .removeAttr('style') + .removeClass(); + + if (currentOpts.titleShow === false) { + title.hide(); + return; + } + + titleStr = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(titleStr, currentArray, currentIndex, currentOpts) : _format_title(titleStr); + + if (!titleStr || titleStr === '') { + title.hide(); + return; + } + + title + .addClass('fancybox-title-' + currentOpts.titlePosition) + .html( titleStr ) + .appendTo( 'body' ) + .show(); + + switch (currentOpts.titlePosition) { + case 'inside': + title + .css({ + 'width' : final_pos.width - (currentOpts.padding * 2), + 'marginLeft' : currentOpts.padding, + 'marginRight' : currentOpts.padding + }); + + titleHeight = title.outerHeight(true); + + title.appendTo( outer ); + + final_pos.height += titleHeight; + break; + + case 'over': + title + .css({ + 'marginLeft' : currentOpts.padding, + 'width' : final_pos.width - (currentOpts.padding * 2), + 'bottom' : currentOpts.padding + }) + .appendTo( outer ); + break; + + case 'float': + title + .css('left', parseInt((title.width() - final_pos.width - 40)/ 2, 10) * -1) + .appendTo( wrap ); + break; + + default: + title + .css({ + 'width' : final_pos.width - (currentOpts.padding * 2), + 'paddingLeft' : currentOpts.padding, + 'paddingRight' : currentOpts.padding + }) + .appendTo( wrap ); + break; + } + + title.hide(); + }, + + _set_navigation = function() { + if (currentOpts.enableEscapeButton || currentOpts.enableKeyboardNav) { + $(document).bind('keydown.fb', function(e) { + if (e.keyCode == 27 && currentOpts.enableEscapeButton) { + e.preventDefault(); + $.fancybox.close(); + + } else if ((e.keyCode == 37 || e.keyCode == 39) && currentOpts.enableKeyboardNav && e.target.tagName !== 'INPUT' && e.target.tagName !== 'TEXTAREA' && e.target.tagName !== 'SELECT') { + e.preventDefault(); + $.fancybox[ e.keyCode == 37 ? 'prev' : 'next'](); + } + }); + } + + if (!currentOpts.showNavArrows) { + nav_left.hide(); + nav_right.hide(); + return; + } + + if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) { + nav_left.show(); + } + + if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) { + nav_right.show(); + } + }, + + _finish = function () { + if (!$.support.opacity) { + content.get(0).style.removeAttribute('filter'); + wrap.get(0).style.removeAttribute('filter'); + } + + if (selectedOpts.autoDimensions) { + content.css('height', 'auto'); + } + + wrap.css('height', 'auto'); + + if (titleStr && titleStr.length) { + title.show(); + } + + if (currentOpts.showCloseButton) { + close.show(); + } + + _set_navigation(); + + if (currentOpts.hideOnContentClick) { + content.bind('click', $.fancybox.close); + } + + if (currentOpts.hideOnOverlayClick) { + overlay.bind('click', $.fancybox.close); + } + + $(window).bind("resize.fb", $.fancybox.resize); + + if (currentOpts.centerOnScroll) { + $(window).bind("scroll.fb", $.fancybox.center); + } + + if (currentOpts.type == 'iframe') { + $('').appendTo(content); + } + + wrap.show(); + + busy = false; + + $.fancybox.center(); + + currentOpts.onComplete(currentArray, currentIndex, currentOpts); + + _preload_images(); + }, + + _preload_images = function() { + var href, + objNext; + + if ((currentArray.length -1) > currentIndex) { + href = currentArray[ currentIndex + 1 ].href; + + if (typeof href !== 'undefined' && href.match(imgRegExp)) { + objNext = new Image(); + objNext.src = href; + } + } + + if (currentIndex > 0) { + href = currentArray[ currentIndex - 1 ].href; + + if (typeof href !== 'undefined' && href.match(imgRegExp)) { + objNext = new Image(); + objNext.src = href; + } + } + }, + + _draw = function(pos) { + var dim = { + width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10), + height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10), + + top : parseInt(start_pos.top + (final_pos.top - start_pos.top) * pos, 10), + left : parseInt(start_pos.left + (final_pos.left - start_pos.left) * pos, 10) + }; + + if (typeof final_pos.opacity !== 'undefined') { + dim.opacity = pos < 0.5 ? 0.5 : pos; + } + + wrap.css(dim); + + content.css({ + 'width' : dim.width - currentOpts.padding * 2, + 'height' : dim.height - (titleHeight * pos) - currentOpts.padding * 2 + }); + }, + + _get_viewport = function() { + return [ + $(window).width() - (currentOpts.margin * 2), + $(window).height() - (currentOpts.margin * 2), + $(document).scrollLeft() + currentOpts.margin, + $(document).scrollTop() + currentOpts.margin + ]; + }, + + _get_zoom_to = function () { + var view = _get_viewport(), + to = {}, + resize = currentOpts.autoScale, + double_padding = currentOpts.padding * 2, + ratio; + + if (currentOpts.width.toString().indexOf('%') > -1) { + to.width = parseInt((view[0] * parseFloat(currentOpts.width)) / 100, 10); + } else { + to.width = currentOpts.width + double_padding; + } + + if (currentOpts.height.toString().indexOf('%') > -1) { + to.height = parseInt((view[1] * parseFloat(currentOpts.height)) / 100, 10); + } else { + to.height = currentOpts.height + double_padding; + } + + if (resize && (to.width > view[0] || to.height > view[1])) { + if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') { + ratio = (currentOpts.width ) / (currentOpts.height ); + + if ((to.width ) > view[0]) { + to.width = view[0]; + to.height = parseInt(((to.width - double_padding) / ratio) + double_padding, 10); + } + + if ((to.height) > view[1]) { + to.height = view[1]; + to.width = parseInt(((to.height - double_padding) * ratio) + double_padding, 10); + } + + } else { + to.width = Math.min(to.width, view[0]); + to.height = Math.min(to.height, view[1]); + } + } + + to.top = parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - to.height - 40) * 0.5)), 10); + to.left = parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - to.width - 40) * 0.5)), 10); + + return to; + }, + + _get_obj_pos = function(obj) { + var pos = obj.offset(); + + pos.top += parseInt( obj.css('paddingTop'), 10 ) || 0; + pos.left += parseInt( obj.css('paddingLeft'), 10 ) || 0; + + pos.top += parseInt( obj.css('border-top-width'), 10 ) || 0; + pos.left += parseInt( obj.css('border-left-width'), 10 ) || 0; + + pos.width = obj.width(); + pos.height = obj.height(); + + return pos; + }, + + _get_zoom_from = function() { + var orig = selectedOpts.orig ? $(selectedOpts.orig) : false, + from = {}, + pos, + view; + + if (orig && orig.length) { + pos = _get_obj_pos(orig); + + from = { + width : pos.width + (currentOpts.padding * 2), + height : pos.height + (currentOpts.padding * 2), + top : pos.top - currentOpts.padding - 20, + left : pos.left - currentOpts.padding - 20 + }; + + } else { + view = _get_viewport(); + + from = { + width : currentOpts.padding * 2, + height : currentOpts.padding * 2, + top : parseInt(view[3] + view[1] * 0.5, 10), + left : parseInt(view[2] + view[0] * 0.5, 10) + }; + } + + return from; + }, + + _animate_loading = function() { + if (!loading.is(':visible')){ + clearInterval(loadingTimer); + return; + } + + $('div', loading).css('top', (loadingFrame * -40) + 'px'); + + loadingFrame = (loadingFrame + 1) % 12; + }; + + /* + * Public methods + */ + + $.fn.fancybox = function(options) { + if (!$(this).length) { + return this; + } + + $(this) + .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {}))) + .unbind('click.fb') + .bind('click.fb', function(e) { + e.preventDefault(); + + if (busy) { + return; + } + + busy = true; + + $(this).blur(); + + selectedArray = []; + selectedIndex = 0; + + var rel = $(this).attr('rel') || ''; + + if (!rel || rel == '' || rel === 'nofollow') { + selectedArray.push(this); + + } else { + selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]"); + selectedIndex = selectedArray.index( this ); + } + + _start(); + + return; + }); + + return this; + }; + + $.fancybox = function(obj) { + var opts; + + if (busy) { + return; + } + + busy = true; + opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {}; + + selectedArray = []; + selectedIndex = parseInt(opts.index, 10) || 0; + + if ($.isArray(obj)) { + for (var i = 0, j = obj.length; i < j; i++) { + if (typeof obj[i] == 'object') { + $(obj[i]).data('fancybox', $.extend({}, opts, obj[i])); + } else { + obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts)); + } + } + + selectedArray = jQuery.merge(selectedArray, obj); + + } else { + if (typeof obj == 'object') { + $(obj).data('fancybox', $.extend({}, opts, obj)); + } else { + obj = $({}).data('fancybox', $.extend({content : obj}, opts)); + } + + selectedArray.push(obj); + } + + if (selectedIndex > selectedArray.length || selectedIndex < 0) { + selectedIndex = 0; + } + + _start(); + }; + + $.fancybox.showActivity = function() { + clearInterval(loadingTimer); + + loading.show(); + loadingTimer = setInterval(_animate_loading, 66); + }; + + $.fancybox.hideActivity = function() { + loading.hide(); + }; + + $.fancybox.next = function() { + return $.fancybox.pos( currentIndex + 1); + }; + + $.fancybox.prev = function() { + return $.fancybox.pos( currentIndex - 1); + }; + + $.fancybox.pos = function(pos) { + if (busy) { + return; + } + + pos = parseInt(pos); + + selectedArray = currentArray; + + if (pos > -1 && pos < currentArray.length) { + selectedIndex = pos; + _start(); + + } else if (currentOpts.cyclic && currentArray.length > 1) { + selectedIndex = pos >= currentArray.length ? 0 : currentArray.length - 1; + _start(); + } + + return; + }; + + $.fancybox.cancel = function() { + if (busy) { + return; + } + + busy = true; + + $.event.trigger('fancybox-cancel'); + + _abort(); + + selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts); + + busy = false; + }; + + // Note: within an iframe use - parent.$.fancybox.close(); + $.fancybox.close = function() { + if (busy || wrap.is(':hidden')) { + return; + } + + busy = true; + + if (currentOpts && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) { + busy = false; + return; + } + + _abort(); + + $(close.add( nav_left ).add( nav_right )).hide(); + + $(content.add( overlay )).unbind(); + + $(window).unbind("resize.fb scroll.fb"); + $(document).unbind('keydown.fb'); + + content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank'); + + if (currentOpts.titlePosition !== 'inside') { + title.empty(); + } + + wrap.stop(); + + function _cleanup() { + overlay.fadeOut('fast'); + + title.empty().hide(); + wrap.hide(); + + $.event.trigger('fancybox-cleanup'); + + content.empty(); + + currentOpts.onClosed(currentArray, currentIndex, currentOpts); + + currentArray = selectedOpts = []; + currentIndex = selectedIndex = 0; + currentOpts = selectedOpts = {}; + + busy = false; + } + + if (currentOpts.transitionOut == 'elastic') { + start_pos = _get_zoom_from(); + + var pos = wrap.position(); + + final_pos = { + top : pos.top , + left : pos.left, + width : wrap.width(), + height : wrap.height() + }; + + if (currentOpts.opacity) { + final_pos.opacity = 1; + } + + title.empty().hide(); + + fx.prop = 1; + + $(fx).animate({ prop: 0 }, { + duration : currentOpts.speedOut, + easing : currentOpts.easingOut, + step : _draw, + complete : _cleanup + }); + + } else { + wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup); + } + }; + + $.fancybox.resize = function() { + if (overlay.is(':visible')) { + overlay.css('height', $(document).height()); + } + + $.fancybox.center(true); + }; + + $.fancybox.center = function() { + var view, align; + + if (busy) { + return; + } + + align = arguments[0] === true ? 1 : 0; + view = _get_viewport(); + + if (!align && (wrap.width() > view[0] || wrap.height() > view[1])) { + return; + } + + wrap + .stop() + .animate({ + 'top' : parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - content.height() - 40) * 0.5) - currentOpts.padding)), + 'left' : parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - content.width() - 40) * 0.5) - currentOpts.padding)) + }, typeof arguments[0] == 'number' ? arguments[0] : 200); + }; + + $.fancybox.init = function() { + if ($("#fancybox-wrap").length) { + return; + } + + $('body').append( + tmp = $('
'), + loading = $('
'), + overlay = $('
'), + wrap = $('
') + ); + + outer = $('
') + .append('
') + .appendTo( wrap ); + + outer.append( + content = $('
'), + close = $(''), + title = $('
'), + + nav_left = $(''), + nav_right = $('') + ); + + close.click($.fancybox.close); + loading.click($.fancybox.cancel); + + nav_left.click(function(e) { + e.preventDefault(); + $.fancybox.prev(); + }); + + nav_right.click(function(e) { + e.preventDefault(); + $.fancybox.next(); + }); + + if ($.fn.mousewheel) { + wrap.bind('mousewheel.fb', function(e, delta) { + if (busy) { + e.preventDefault(); + + } else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) { + e.preventDefault(); + $.fancybox[ delta > 0 ? 'prev' : 'next'](); + } + }); + } + + if (!$.support.opacity) { + wrap.addClass('fancybox-ie'); + } + + if (isIE6) { + loading.addClass('fancybox-ie6'); + wrap.addClass('fancybox-ie6'); + + $('').prependTo(outer); + } + }; + + $.fn.fancybox.defaults = { + padding : 10, + margin : 40, + opacity : false, + modal : false, + cyclic : false, + scrolling : 'auto', // 'auto', 'yes' or 'no' + + width : 560, + height : 340, + + autoScale : true, + autoDimensions : true, + centerOnScroll : false, + + ajax : {}, + swf : { wmode: 'transparent' }, + + hideOnOverlayClick : true, + hideOnContentClick : false, + + overlayShow : true, + overlayOpacity : 0.7, + overlayColor : '#777', + + titleShow : true, + titlePosition : 'float', // 'float', 'outside', 'inside' or 'over' + titleFormat : null, + titleFromAlt : false, + + transitionIn : 'fade', // 'elastic', 'fade' or 'none' + transitionOut : 'fade', // 'elastic', 'fade' or 'none' + + speedIn : 300, + speedOut : 300, + + changeSpeed : 300, + changeFade : 'fast', + + easingIn : 'swing', + easingOut : 'swing', + + showCloseButton : true, + showNavArrows : true, + enableEscapeButton : true, + enableKeyboardNav : true, + + onStart : function(){}, + onCancel : function(){}, + onComplete : function(){}, + onCleanup : function(){}, + onClosed : function(){}, + onError : function(){} + }; + + $(document).ready(function() { + $.fancybox.init(); + }); + +})(jQuery); \ No newline at end of file diff --git a/tests/lib/fancybox/jquery.fancybox-1.3.4.pack.js b/tests/lib/fancybox/jquery.fancybox-1.3.4.pack.js new file mode 100644 index 0000000..1373ed0 --- /dev/null +++ b/tests/lib/fancybox/jquery.fancybox-1.3.4.pack.js @@ -0,0 +1,46 @@ +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated. + * + * Version: 1.3.4 (11/11/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +;(function(b){var m,t,u,f,D,j,E,n,z,A,q=0,e={},o=[],p=0,d={},l=[],G=null,v=new Image,J=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,W=/[^\.]\.(swf)\s*$/i,K,L=1,y=0,s="",r,i,h=false,B=b.extend(b("
")[0],{prop:0}),M=b.browser.msie&&b.browser.version<7&&!window.XMLHttpRequest,N=function(){t.hide();v.onerror=v.onload=null;G&&G.abort();m.empty()},O=function(){if(false===e.onError(o,q,e)){t.hide();h=false}else{e.titleShow=false;e.width="auto";e.height="auto";m.html('

The requested content cannot be loaded.
Please try again later.

'); +F()}},I=function(){var a=o[q],c,g,k,C,P,w;N();e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));w=e.onStart(o,q,e);if(w===false)h=false;else{if(typeof w=="object")e=b.extend(e,w);k=e.title||(a.nodeName?b(a).attr("title"):a.title)||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(k===""&&e.orig&&e.titleFromAlt)k=e.orig.attr("alt");c=e.href||(a.nodeName?b(a).attr("href"):a.href)||null;if(/^(?:javascript)/i.test(c)|| +c=="#")c=null;if(e.type){g=e.type;if(!c)c=e.content}else if(e.content)g="html";else if(c)g=c.match(J)?"image":c.match(W)?"swf":b(a).hasClass("iframe")?"iframe":c.indexOf("#")===0?"inline":"ajax";if(g){if(g=="inline"){a=c.substr(c.indexOf("#"));g=b(a).length>0?"inline":"ajax"}e.type=g;e.href=c;e.title=k;if(e.autoDimensions)if(e.type=="html"||e.type=="inline"||e.type=="ajax"){e.width="auto";e.height="auto"}else e.autoDimensions=false;if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick= +false;e.enableEscapeButton=false;e.showCloseButton=false}e.padding=parseInt(e.padding,10);e.margin=parseInt(e.margin,10);m.css("padding",e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(j.children())});switch(g){case "html":m.html(e.content);F();break;case "inline":if(b(a).parent().is("#fancybox-content")===true){h=false;break}b('
').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(j.children())}).bind("fancybox-cancel", +function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity();v=new Image;v.onerror=function(){O()};v.onload=function(){h=true;v.onerror=v.onload=null;e.width=v.width;e.height=v.height;b("").attr({id:"fancybox-img",src:v.src,alt:e.title}).appendTo(m);Q()};v.src=c;break;case "swf":e.scrolling="no";C='';P="";b.each(e.swf,function(x,H){C+='';P+=" "+x+'="'+H+'"'});C+='";m.html(C);F();break;case "ajax":h=false;b.fancybox.showActivity();e.ajax.win=e.ajax.success;G=b.ajax(b.extend({},e.ajax,{url:c,data:e.ajax.data||{},error:function(x){x.status>0&&O()},success:function(x,H,R){if((typeof R=="object"?R:G).status==200){if(typeof e.ajax.win== +"function"){w=e.ajax.win(c,x,H,R);if(w===false){t.hide();return}else if(typeof w=="string"||typeof w=="object")x=w}m.html(x);F()}}}));break;case "iframe":Q()}}else O()}},F=function(){var a=e.width,c=e.height;a=a.toString().indexOf("%")>-1?parseInt((b(window).width()-e.margin*2)*parseFloat(a)/100,10)+"px":a=="auto"?"auto":a+"px";c=c.toString().indexOf("%")>-1?parseInt((b(window).height()-e.margin*2)*parseFloat(c)/100,10)+"px":c=="auto"?"auto":c+"px";m.wrapInner('
');e.width=m.width();e.height=m.height();Q()},Q=function(){var a,c;t.hide();if(f.is(":visible")&&false===d.onCleanup(l,p,d)){b.event.trigger("fancybox-cancel");h=false}else{h=true;b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");f.is(":visible")&&d.titlePosition!=="outside"&&f.css("height",f.height());l=o;p=q;d=e;if(d.overlayShow){u.css({"background-color":d.overlayColor, +opacity:d.overlayOpacity,cursor:d.hideOnOverlayClick?"pointer":"auto",height:b(document).height()});if(!u.is(":visible")){M&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});u.show()}}else u.hide();i=X();s=d.title||"";y=0;n.empty().removeAttr("style").removeClass();if(d.titleShow!==false){if(b.isFunction(d.titleFormat))a=d.titleFormat(s,l,p,d);else a=s&&s.length? +d.titlePosition=="float"?'
'+s+'
':'
'+s+"
":false;s=a;if(!(!s||s==="")){n.addClass("fancybox-title-"+d.titlePosition).html(s).appendTo("body").show();switch(d.titlePosition){case "inside":n.css({width:i.width-d.padding*2,marginLeft:d.padding,marginRight:d.padding}); +y=n.outerHeight(true);n.appendTo(D);i.height+=y;break;case "over":n.css({marginLeft:d.padding,width:i.width-d.padding*2,bottom:d.padding}).appendTo(D);break;case "float":n.css("left",parseInt((n.width()-i.width-40)/2,10)*-1).appendTo(f);break;default:n.css({width:i.width-d.padding*2,paddingLeft:d.padding,paddingRight:d.padding}).appendTo(f)}}}n.hide();if(f.is(":visible")){b(E.add(z).add(A)).hide();a=f.position();r={top:a.top,left:a.left,width:f.width(),height:f.height()};c=r.width==i.width&&r.height== +i.height;j.fadeTo(d.changeFade,0.3,function(){var g=function(){j.html(m.contents()).fadeTo(d.changeFade,1,S)};b.event.trigger("fancybox-change");j.empty().removeAttr("filter").css({"border-width":d.padding,width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2});if(c)g();else{B.prop=0;b(B).animate({prop:1},{duration:d.changeSpeed,easing:d.easingChange,step:T,complete:g})}})}else{f.removeAttr("style");j.css("border-width",d.padding);if(d.transitionIn=="elastic"){r=V();j.html(m.contents()); +f.show();if(d.opacity)i.opacity=0;B.prop=0;b(B).animate({prop:1},{duration:d.speedIn,easing:d.easingIn,step:T,complete:S})}else{d.titlePosition=="inside"&&y>0&&n.show();j.css({width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2}).html(m.contents());f.css(i).fadeIn(d.transitionIn=="none"?0:d.speedIn,S)}}}},Y=function(){if(d.enableEscapeButton||d.enableKeyboardNav)b(document).bind("keydown.fb",function(a){if(a.keyCode==27&&d.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if((a.keyCode== +37||a.keyCode==39)&&d.enableKeyboardNav&&a.target.tagName!=="INPUT"&&a.target.tagName!=="TEXTAREA"&&a.target.tagName!=="SELECT"){a.preventDefault();b.fancybox[a.keyCode==37?"prev":"next"]()}});if(d.showNavArrows){if(d.cyclic&&l.length>1||p!==0)z.show();if(d.cyclic&&l.length>1||p!=l.length-1)A.show()}else{z.hide();A.hide()}},S=function(){if(!b.support.opacity){j.get(0).style.removeAttribute("filter");f.get(0).style.removeAttribute("filter")}e.autoDimensions&&j.css("height","auto");f.css("height","auto"); +s&&s.length&&n.show();d.showCloseButton&&E.show();Y();d.hideOnContentClick&&j.bind("click",b.fancybox.close);d.hideOnOverlayClick&&u.bind("click",b.fancybox.close);b(window).bind("resize.fb",b.fancybox.resize);d.centerOnScroll&&b(window).bind("scroll.fb",b.fancybox.center);if(d.type=="iframe")b('').appendTo(j); +f.show();h=false;b.fancybox.center();d.onComplete(l,p,d);var a,c;if(l.length-1>p){a=l[p+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(p>0){a=l[p-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(r.width+(i.width-r.width)*a,10),height:parseInt(r.height+(i.height-r.height)*a,10),top:parseInt(r.top+(i.top-r.top)*a,10),left:parseInt(r.left+(i.left-r.left)*a,10)};if(typeof i.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c); +j.css({width:c.width-d.padding*2,height:c.height-y*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},X=function(){var a=U(),c={},g=d.autoScale,k=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+k;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]*parseFloat(d.height)/100,10):d.height+k;if(g&&(c.width>a[0]||c.height>a[1]))if(e.type== +"image"||e.type=="swf"){g=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-k)/g+k,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-k)*g+k,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){c=a.offset();c.top+=parseInt(a.css("paddingTop"), +10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();c={width:c.width+d.padding*2,height:c.height+d.padding*2,top:c.top-d.padding-20,left:c.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+a[0]*0.5,10)}}return c},Z=function(){if(t.is(":visible")){b("div",t).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)}; +b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!h){h=true;b(this).blur();o=[];q=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")o.push(this);else{o=b("a[rel="+c+"], area[rel="+c+"]");q=o.index(this)}I()}});return this};b.fancybox=function(a,c){var g;if(!h){h=true;g=typeof c!=="undefined"?c:{};o=[];q=parseInt(g.index,10)||0;if(b.isArray(a)){for(var k= +0,C=a.length;ko.length||q<0)q=0;I()}};b.fancybox.showActivity=function(){clearInterval(K);t.show();K=setInterval(Z,66)};b.fancybox.hideActivity=function(){t.hide()};b.fancybox.next=function(){return b.fancybox.pos(p+ +1)};b.fancybox.prev=function(){return b.fancybox.pos(p-1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a);o=l;if(a>-1&&a1){q=a>=l.length?0:l.length-1;I()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");N();e.onCancel(o,q,e);h=false}};b.fancybox.close=function(){function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger("fancybox-cleanup");j.empty();d.onClosed(l,p,d);l=e=[];p=q=0;d=e={};h=false}if(!(h||f.is(":hidden"))){h= +true;if(d&&false===d.onCleanup(l,p,d))h=false;else{N();b(E.add(z).add(A)).hide();b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");j.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&n.empty();f.stop();if(d.transitionOut=="elastic"){r=V();var c=f.position();i={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)i.opacity=1;n.empty().hide();B.prop=1; +b(B).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){u.is(":visible")&&u.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,g;if(!h){g=a===true?1:0;c=U();!g&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]-20,c[3]+(c[1]-j.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-j.width()-40)*0.5- +d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('
'),t=b('
'),u=b('
'),f=b('
'));D=b('
').append('
').appendTo(f); +D.append(j=b('
'),E=b(''),n=b('
'),z=b(''),A=b(''));E.click(b.fancybox.close);t.click(b.fancybox.cancel);z.click(function(a){a.preventDefault();b.fancybox.prev()});A.click(function(a){a.preventDefault();b.fancybox.next()}); +b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(h)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){t.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('').prependTo(D)}}}; +b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing", +easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery); \ No newline at end of file diff --git a/tests/lib/fancybox/jquery.mousewheel-3.0.4.pack.js b/tests/lib/fancybox/jquery.mousewheel-3.0.4.pack.js new file mode 100644 index 0000000..cb66588 --- /dev/null +++ b/tests/lib/fancybox/jquery.mousewheel-3.0.4.pack.js @@ -0,0 +1,14 @@ +/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net) +* Licensed under the MIT License (LICENSE.txt). +* +* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. +* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. +* Thanks to: Seamus Leahy for adding deltaX and deltaY +* +* Version: 3.0.4 +* +* Requires: 1.2.2+ +*/ + +(function(d){function g(a){var b=a||window.event,i=[].slice.call(arguments,1),c=0,h=0,e=0;a=d.event.fix(b);a.type="mousewheel";if(a.wheelDelta)c=a.wheelDelta/120;if(a.detail)c=-a.detail/3;e=c;if(b.axis!==undefined&&b.axis===b.HORIZONTAL_AXIS){e=0;h=-1*c}if(b.wheelDeltaY!==undefined)e=b.wheelDeltaY/120;if(b.wheelDeltaX!==undefined)h=-1*b.wheelDeltaX/120;i.unshift(a,c,h,e);return d.event.handle.apply(this,i)}var f=["DOMMouseScroll","mousewheel"];d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a= +f.length;a;)this.addEventListener(f[--a],g,false);else this.onmousewheel=g},teardown:function(){if(this.removeEventListener)for(var a=f.length;a;)this.removeEventListener(f[--a],g,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); \ No newline at end of file diff --git a/tests/lib/jquery-1.4.3.min.js b/tests/lib/jquery-1.4.3.min.js new file mode 100644 index 0000000..c941a5f --- /dev/null +++ b/tests/lib/jquery-1.4.3.min.js @@ -0,0 +1,166 @@ +/*! + * jQuery JavaScript Library v1.4.3 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Oct 14 23:10:06 2010 -0400 + */ +(function(E,A){function U(){return false}function ba(){return true}function ja(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ga(a){var b,d,e=[],f=[],h,k,l,n,s,v,B,D;k=c.data(this,this.nodeType?"events":"__events__");if(typeof k==="function")k=k.events;if(!(a.liveFired===this||!k||!k.live||a.button&&a.type==="click")){if(a.namespace)D=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var H=k.live.slice(0);for(n=0;nd)break;a.currentTarget=f.elem;a.data=f.handleObj.data; +a.handleObj=f.handleObj;D=f.handleObj.origHandler.apply(f.elem,arguments);if(D===false||a.isPropagationStopped()){d=f.level;if(D===false)b=false}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(Ha,"`").replace(Ia,"&")}function ka(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Ja.test(b))return c.filter(b, +e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function la(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var k in e[h])c.event.add(this,h,e[h][k],e[h][k].data)}}})}function Ka(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)} +function ma(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?La:Ma,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function ca(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Na.test(a)?e(a,h):ca(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)? +e(a,""):c.each(b,function(f,h){ca(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(na.concat.apply([],na.slice(0,b)),function(){d[this]=a});return d}function oa(a){if(!da[a]){var b=c("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";da[a]=d}return da[a]}function ea(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var u=E.document,c=function(){function a(){if(!b.isReady){try{u.documentElement.doScroll("left")}catch(i){setTimeout(a, +1);return}b.ready()}}var b=function(i,r){return new b.fn.init(i,r)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,k=/\S/,l=/^\s+/,n=/\s+$/,s=/\W/,v=/\d/,B=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,D=/^[\],:{}\s]*$/,H=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,G=/(?:^|:|,)(?:\s*\[)+/g,M=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,j=/(msie) ([\w.]+)/,o=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false, +q=[],t,x=Object.prototype.toString,C=Object.prototype.hasOwnProperty,P=Array.prototype.push,N=Array.prototype.slice,R=String.prototype.trim,Q=Array.prototype.indexOf,L={};b.fn=b.prototype={init:function(i,r){var y,z,F;if(!i)return this;if(i.nodeType){this.context=this[0]=i;this.length=1;return this}if(i==="body"&&!r&&u.body){this.context=u;this[0]=u.body;this.selector="body";this.length=1;return this}if(typeof i==="string")if((y=h.exec(i))&&(y[1]||!r))if(y[1]){F=r?r.ownerDocument||r:u;if(z=B.exec(i))if(b.isPlainObject(r)){i= +[u.createElement(z[1])];b.fn.attr.call(i,r,true)}else i=[F.createElement(z[1])];else{z=b.buildFragment([y[1]],[F]);i=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,i)}else{if((z=u.getElementById(y[2]))&&z.parentNode){if(z.id!==y[2])return f.find(i);this.length=1;this[0]=z}this.context=u;this.selector=i;return this}else if(!r&&!s.test(i)){this.selector=i;this.context=u;i=u.getElementsByTagName(i);return b.merge(this,i)}else return!r||r.jquery?(r||f).find(i):b(r).find(i); +else if(b.isFunction(i))return f.ready(i);if(i.selector!==A){this.selector=i.selector;this.context=i.context}return b.makeArray(i,this)},selector:"",jquery:"1.4.3",length:0,size:function(){return this.length},toArray:function(){return N.call(this,0)},get:function(i){return i==null?this.toArray():i<0?this.slice(i)[0]:this[i]},pushStack:function(i,r,y){var z=b();b.isArray(i)?P.apply(z,i):b.merge(z,i);z.prevObject=this;z.context=this.context;if(r==="find")z.selector=this.selector+(this.selector?" ": +"")+y;else if(r)z.selector=this.selector+"."+r+"("+y+")";return z},each:function(i,r){return b.each(this,i,r)},ready:function(i){b.bindReady();if(b.isReady)i.call(u,b);else q&&q.push(i);return this},eq:function(i){return i===-1?this.slice(i):this.slice(i,+i+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(i){return this.pushStack(b.map(this,function(r,y){return i.call(r, +y,r)}))},end:function(){return this.prevObject||b(null)},push:P,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var i=arguments[0]||{},r=1,y=arguments.length,z=false,F,I,K,J,fa;if(typeof i==="boolean"){z=i;i=arguments[1]||{};r=2}if(typeof i!=="object"&&!b.isFunction(i))i={};if(y===r){i=this;--r}for(;r0)){if(q){for(var r=0;i=q[r++];)i.call(u,b);q=null}b.fn.triggerHandler&&b(u).triggerHandler("ready")}}},bindReady:function(){if(!p){p=true;if(u.readyState==="complete")return setTimeout(b.ready, +1);if(u.addEventListener){u.addEventListener("DOMContentLoaded",t,false);E.addEventListener("load",b.ready,false)}else if(u.attachEvent){u.attachEvent("onreadystatechange",t);E.attachEvent("onload",b.ready);var i=false;try{i=E.frameElement==null}catch(r){}u.documentElement.doScroll&&i&&a()}}},isFunction:function(i){return b.type(i)==="function"},isArray:Array.isArray||function(i){return b.type(i)==="array"},isWindow:function(i){return i&&typeof i==="object"&&"setInterval"in i},isNaN:function(i){return i== +null||!v.test(i)||isNaN(i)},type:function(i){return i==null?String(i):L[x.call(i)]||"object"},isPlainObject:function(i){if(!i||b.type(i)!=="object"||i.nodeType||b.isWindow(i))return false;if(i.constructor&&!C.call(i,"constructor")&&!C.call(i.constructor.prototype,"isPrototypeOf"))return false;for(var r in i);return r===A||C.call(i,r)},isEmptyObject:function(i){for(var r in i)return false;return true},error:function(i){throw i;},parseJSON:function(i){if(typeof i!=="string"||!i)return null;i=b.trim(i); +if(D.test(i.replace(H,"@").replace(w,"]").replace(G,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(i):(new Function("return "+i))();else b.error("Invalid JSON: "+i)},noop:function(){},globalEval:function(i){if(i&&k.test(i)){var r=u.getElementsByTagName("head")[0]||u.documentElement,y=u.createElement("script");y.type="text/javascript";if(b.support.scriptEval)y.appendChild(u.createTextNode(i));else y.text=i;r.insertBefore(y,r.firstChild);r.removeChild(y)}},nodeName:function(i,r){return i.nodeName&&i.nodeName.toUpperCase()=== +r.toUpperCase()},each:function(i,r,y){var z,F=0,I=i.length,K=I===A||b.isFunction(i);if(y)if(K)for(z in i){if(r.apply(i[z],y)===false)break}else for(;F";a=u.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var s=u.createElement("div"); +s.style.width=s.style.paddingLeft="1px";u.body.appendChild(s);c.boxModel=c.support.boxModel=s.offsetWidth===2;if("zoom"in s.style){s.style.display="inline";s.style.zoom=1;c.support.inlineBlockNeedsLayout=s.offsetWidth===2;s.style.display="";s.innerHTML="
";c.support.shrinkWrapBlocks=s.offsetWidth!==2}s.innerHTML="
t
";var v=s.getElementsByTagName("td");c.support.reliableHiddenOffsets=v[0].offsetHeight=== +0;v[0].style.display="";v[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&v[0].offsetHeight===0;s.innerHTML="";u.body.removeChild(s).style.display="none"});a=function(s){var v=u.createElement("div");s="on"+s;var B=s in v;if(!B){v.setAttribute(s,"return;");B=typeof v[s]==="function"}return B};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength", +cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var pa={},Oa=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?pa:a;var e=a.nodeType,f=e?a[c.expando]:null,h=c.cache;if(!(e&&!f&&typeof b==="string"&&d===A)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]= +c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==A)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?pa:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);else if(d)delete f[e];else for(var k in a)delete a[k]}},acceptData:function(a){if(a.nodeName){var b= +c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){if(typeof a==="undefined")return this.length?c.data(this[0]):null;else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===A){var e=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(e===A&&this.length){e=c.data(this[0],a);if(e===A&&this[0].nodeType===1){e=this[0].getAttribute("data-"+a);if(typeof e=== +"string")try{e=e==="true"?true:e==="false"?false:e==="null"?null:!c.isNaN(e)?parseFloat(e):Oa.test(e)?c.parseJSON(e):e}catch(f){}else e=A}}return e===A&&d[1]?this.data(d[0]):e}else return this.each(function(){var h=c(this),k=[d[0],b];h.triggerHandler("setData"+d[1]+"!",k);c.data(this,a,b);h.triggerHandler("changeData"+d[1]+"!",k)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=c.data(a,b);if(!d)return e|| +[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===A)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this, +a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var qa=/[\n\t]/g,ga=/\s+/,Pa=/\r/g,Qa=/^(?:href|src|style)$/,Ra=/^(?:button|input)$/i,Sa=/^(?:button|input|object|select|textarea)$/i,Ta=/^a(?:rea)?$/i,ra=/^(?:radio|checkbox)$/i;c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this, +a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(s){var v=c(this);v.addClass(a.call(this,s,v.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ga),d=0,e=this.length;d-1)return true;return false}, +val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var B=c.makeArray(v);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),B)>=0});if(!B.length)this.selectedIndex=-1}else this.value=v}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return A;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==A;b=e&&c.props[b]||b;if(a.nodeType===1){var h=Qa.test(b);if((b in a||a[b]!==A)&&e&&!h){if(f){b==="type"&&Ra.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Sa.test(a.nodeName)||Ta.test(a.nodeName)&&a.href?0:A;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return A;a=!c.support.hrefNormalized&&e&& +h?a.getAttribute(b,2):a.getAttribute(b);return a===null?A:a}}});var X=/\.(.*)$/,ha=/^(?:textarea|input|select)$/i,Ha=/\./g,Ia=/ /g,Ua=/[^\w\s.|`]/g,Va=function(a){return a.replace(Ua,"\\$&")},sa={focusin:0,focusout:0};c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var k=a.nodeType?"events":"__events__",l=h[k],n=h.handle;if(typeof l=== +"function"){n=l.handle;l=l.events}else if(!l){a.nodeType||(h[k]=h=function(){});h.events=l={}}if(!n)h.handle=n=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(n.elem,arguments):A};n.elem=a;b=b.split(" ");for(var s=0,v;k=b[s++];){h=f?c.extend({},f):{handler:d,data:e};if(k.indexOf(".")>-1){v=k.split(".");k=v.shift();h.namespace=v.slice(0).sort().join(".")}else{v=[];h.namespace=""}h.type=k;if(!h.guid)h.guid=d.guid;var B=l[k],D=c.event.special[k]||{};if(!B){B=l[k]=[]; +if(!D.setup||D.setup.call(a,e,v,n)===false)if(a.addEventListener)a.addEventListener(k,n,false);else a.attachEvent&&a.attachEvent("on"+k,n)}if(D.add){D.add.call(a,h);if(!h.handler.guid)h.handler.guid=d.guid}B.push(h);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,k=0,l,n,s,v,B,D,H=a.nodeType?"events":"__events__",w=c.data(a),G=w&&w[H];if(w&&G){if(typeof G==="function"){w=G;G=G.events}if(b&&b.type){d=b.handler;b=b.type}if(!b|| +typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in G)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[k++];){v=f;l=f.indexOf(".")<0;n=[];if(!l){n=f.split(".");f=n.shift();s=RegExp("(^|\\.)"+c.map(n.slice(0).sort(),Va).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(B=G[f])if(d){v=c.event.special[f]||{};for(h=e||0;h=0){a.type= +f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return A;a.result=A;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)=== +false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){e=a.target;var k,l=f.replace(X,""),n=c.nodeName(e,"a")&&l==="click",s=c.event.special[l]||{};if((!s._default||s._default.call(d,a)===false)&&!n&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[l]){if(k=e["on"+l])e["on"+l]=null;c.event.triggered=true;e[l]()}}catch(v){}if(k)e["on"+l]=k;c.event.triggered=false}}},handle:function(a){var b,d,e; +d=[];var f,h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var k=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ha.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=va(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===A||f===e))if(e!=null||f){a.type="change";a.liveFired= +A;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",va(a))}},setup:function(){if(this.type=== +"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ha.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ha.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}u.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){sa[b]++===0&&u.addEventListener(a,d,true)},teardown:function(){--sa[b]=== +0&&u.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=A}var k=b==="one"?c.proxy(f,function(n){c(this).unbind(n,k);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var l=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g,j,o,m,p,q){p=0;for(var t=m.length;p0){C=x;break}}x=x[g]}m[p]=C}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,k=true;[0,0].sort(function(){k=false;return 0});var l=function(g,j,o,m){o=o||[];var p=j=j||u;if(j.nodeType!==1&&j.nodeType!==9)return[];if(!g||typeof g!=="string")return o;var q=[],t,x,C,P,N=true,R=l.isXML(j),Q=g,L;do{d.exec("");if(t=d.exec(Q)){Q=t[3];q.push(t[1]);if(t[2]){P=t[3]; +break}}}while(t);if(q.length>1&&s.exec(g))if(q.length===2&&n.relative[q[0]])x=M(q[0]+q[1],j);else for(x=n.relative[q[0]]?[j]:l(q.shift(),j);q.length;){g=q.shift();if(n.relative[g])g+=q.shift();x=M(g,x)}else{if(!m&&q.length>1&&j.nodeType===9&&!R&&n.match.ID.test(q[0])&&!n.match.ID.test(q[q.length-1])){t=l.find(q.shift(),j,R);j=t.expr?l.filter(t.expr,t.set)[0]:t.set[0]}if(j){t=m?{expr:q.pop(),set:D(m)}:l.find(q.pop(),q.length===1&&(q[0]==="~"||q[0]==="+")&&j.parentNode?j.parentNode:j,R);x=t.expr?l.filter(t.expr, +t.set):t.set;if(q.length>0)C=D(x);else N=false;for(;q.length;){t=L=q.pop();if(n.relative[L])t=q.pop();else L="";if(t==null)t=j;n.relative[L](C,t,R)}}else C=[]}C||(C=x);C||l.error(L||g);if(f.call(C)==="[object Array]")if(N)if(j&&j.nodeType===1)for(g=0;C[g]!=null;g++){if(C[g]&&(C[g]===true||C[g].nodeType===1&&l.contains(j,C[g])))o.push(x[g])}else for(g=0;C[g]!=null;g++)C[g]&&C[g].nodeType===1&&o.push(x[g]);else o.push.apply(o,C);else D(C,o);if(P){l(P,p,o,m);l.uniqueSort(o)}return o};l.uniqueSort=function(g){if(w){h= +k;g.sort(w);if(h)for(var j=1;j0};l.find=function(g,j,o){var m;if(!g)return[];for(var p=0,q=n.order.length;p":function(g,j){var o=typeof j==="string",m,p=0,q=g.length;if(o&&!/\W/.test(j))for(j=j.toLowerCase();p=0))o||m.push(t);else if(o)j[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var j=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=j[1]+(j[2]||1)-0;g[3]=j[3]-0}g[0]=e++;return g},ATTR:function(g,j,o, +m,p,q){j=g[1].replace(/\\/g,"");if(!q&&n.attrMap[j])g[1]=n.attrMap[j];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,j,o,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=l(g[3],null,null,j);else{g=l.filter(g[3],j,o,true^p);o||m.push.apply(m,g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== +true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,j,o){return!!l(o[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== +g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,j){return j===0},last:function(g,j,o,m){return j===m.length-1},even:function(g,j){return j%2===0},odd:function(g,j){return j%2===1},lt:function(g,j,o){return jo[3]-0},nth:function(g,j,o){return o[3]- +0===j},eq:function(g,j,o){return o[3]-0===j}},filter:{PSEUDO:function(g,j,o,m){var p=j[1],q=n.filters[p];if(q)return q(g,o,j,m);else if(p==="contains")return(g.textContent||g.innerText||l.getText([g])||"").indexOf(j[3])>=0;else if(p==="not"){j=j[3];o=0;for(m=j.length;o=0}},ID:function(g,j){return g.nodeType===1&&g.getAttribute("id")===j},TAG:function(g,j){return j==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== +j},CLASS:function(g,j){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(j)>-1},ATTR:function(g,j){var o=j[1];o=n.attrHandle[o]?n.attrHandle[o](g):g[o]!=null?g[o]:g.getAttribute(o);var m=o+"",p=j[2],q=j[4];return o==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&o!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,j,o,m){var p=n.setFilters[j[2]]; +if(p)return p(g,o,j,m)}}},s=n.match.POS,v=function(g,j){return"\\"+(j-0+1)},B;for(B in n.match){n.match[B]=RegExp(n.match[B].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[B]=RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[B].source.replace(/\\(\d+)/g,v))}var D=function(g,j){g=Array.prototype.slice.call(g,0);if(j){j.push.apply(j,g);return j}return g};try{Array.prototype.slice.call(u.documentElement.childNodes,0)}catch(H){D=function(g,j){var o=j||[],m=0;if(f.call(g)==="[object Array]")Array.prototype.push.apply(o, +g);else if(typeof g.length==="number")for(var p=g.length;m";var o=u.documentElement;o.insertBefore(g,o.firstChild);if(u.getElementById(j)){n.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:A:[]};n.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}o.removeChild(g); +o=g=null})();(function(){var g=u.createElement("div");g.appendChild(u.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(j,o){var m=o.getElementsByTagName(j[1]);if(j[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(j){return j.getAttribute("href",2)};g=null})();u.querySelectorAll&& +function(){var g=l,j=u.createElement("div");j.innerHTML="

";if(!(j.querySelectorAll&&j.querySelectorAll(".TEST").length===0)){l=function(m,p,q,t){p=p||u;if(!t&&!l.isXML(p))if(p.nodeType===9)try{return D(p.querySelectorAll(m),q)}catch(x){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var C=p.id,P=p.id="__sizzle__";try{return D(p.querySelectorAll("#"+P+" "+m),q)}catch(N){}finally{if(C)p.id=C;else p.removeAttribute("id")}}return g(m,p,q,t)};for(var o in g)l[o]=g[o]; +j=null}}();(function(){var g=u.documentElement,j=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,o=false;try{j.call(u.documentElement,":sizzle")}catch(m){o=true}if(j)l.matchesSelector=function(p,q){try{if(o||!n.match.PSEUDO.test(q))return j.call(p,q)}catch(t){}return l(q,null,null,[p]).length>0}})();(function(){var g=u.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length=== +0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(j,o,m){if(typeof o.getElementsByClassName!=="undefined"&&!m)return o.getElementsByClassName(j[1])};g=null}}})();l.contains=u.documentElement.contains?function(g,j){return g!==j&&(g.contains?g.contains(j):true)}:function(g,j){return!!(g.compareDocumentPosition(j)&16)};l.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var M=function(g, +j){for(var o=[],m="",p,q=j.nodeType?[j]:j;p=n.match.PSEUDO.exec(g);){m+=p[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;p=0;for(var t=q.length;p0)for(var h=d;h0},closest:function(a, +b){var d=[],e,f,h=this[0];if(c.isArray(a)){var k={},l,n=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:n})}h=h.parentNode;n++}}return d}k=$a.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h|| +!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}}); +c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling", +d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Wa.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||Ya.test(e))&&Xa.test(a))f=f.reverse();return this.pushStack(f,a,Za.call(arguments).join(","))}}); +c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===A||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var xa=/ jQuery\d+="(?:\d+|null)"/g, +$=/^\s+/,ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,za=/<([\w:]+)/,ab=/\s]+\/)>/g,O={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"], +area:[1,"",""],_default:[0,"",""]};O.optgroup=O.option;O.tbody=O.tfoot=O.colgroup=O.caption=O.thead;O.th=O.td;if(!c.support.htmlSerialize)O._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==A)return this.empty().append((this[0]&&this[0].ownerDocument||u).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this, +d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})}, +unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a= +c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*")); +c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(xa,"").replace(cb,'="$1">').replace($, +"")],e)[0]}else return this.cloneNode(true)});if(a===true){la(this,b);la(this.find("*"),b.find("*"))}return b},html:function(a){if(a===A)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(xa,""):null;else if(typeof a==="string"&&!Aa.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!O[(za.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ya,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?l.cloneNode(true):l)}k.length&&c.each(k,Ka)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:u;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===u&&!Aa.test(a[0])&&(c.support.checkClone|| +!Ba.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h= +d.length;f0?this.clone(true):this).get();c(d[f])[b](k);e=e.concat(k)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||u;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||u;for(var f=[],h=0,k;(k=a[h])!=null;h++){if(typeof k==="number")k+="";if(k){if(typeof k==="string"&&!bb.test(k))k=b.createTextNode(k);else if(typeof k==="string"){k=k.replace(ya,"<$1>");var l=(za.exec(k)||["",""])[1].toLowerCase(),n=O[l]||O._default, +s=n[0],v=b.createElement("div");for(v.innerHTML=n[1]+k+n[2];s--;)v=v.lastChild;if(!c.support.tbody){s=ab.test(k);l=l==="table"&&!s?v.firstChild&&v.firstChild.childNodes:n[1]===""&&!s?v.childNodes:[];for(n=l.length-1;n>=0;--n)c.nodeName(l[n],"tbody")&&!l[n].childNodes.length&&l[n].parentNode.removeChild(l[n])}!c.support.leadingWhitespace&&$.test(k)&&v.insertBefore(b.createTextNode($.exec(k)[0]),v.firstChild);k=v.childNodes}if(k.nodeType)f.push(k);else f=c.merge(f,k)}}if(d)for(h=0;f[h];h++)if(e&& +c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,k=0,l;(l=a[k])!=null;k++)if(!(l.nodeName&&c.noData[l.nodeName.toLowerCase()]))if(d=l[c.expando]){if((b=e[d])&&b.events)for(var n in b.events)f[n]? +c.event.remove(l,n):c.removeEvent(l,n,b.handle);if(h)delete l[c.expando];else l.removeAttribute&&l.removeAttribute(c.expando);delete e[d]}}});var Ca=/alpha\([^)]*\)/i,db=/opacity=([^)]*)/,eb=/-([a-z])/ig,fb=/([A-Z])/g,Da=/^-?\d+(?:px)?$/i,gb=/^-?\d/,hb={position:"absolute",visibility:"hidden",display:"block"},La=["Left","Right"],Ma=["Top","Bottom"],W,ib=u.defaultView&&u.defaultView.getComputedStyle,jb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===A)return this; +return c.access(this,a,b,true,function(d,e,f){return f!==A?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),k=a.style,l=c.cssHooks[h];b=c.cssProps[h]|| +h;if(d!==A){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!l||!("set"in l)||(d=l.set(a,d))!==A)try{k[b]=d}catch(n){}}}else{if(l&&"get"in l&&(f=l.get(a,false,e))!==A)return f;return k[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==A)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]= +e[f]},camelCase:function(a){return a.replace(eb,jb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=ma(d,b,f);else c.swap(d,hb,function(){h=ma(d,b,f)});return h+"px"}},set:function(d,e){if(Da.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return db.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"": +b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=d.filter||"";d.filter=Ca.test(f)?f.replace(Ca,e):d.filter+" "+e}};if(ib)W=function(a,b,d){var e;d=d.replace(fb,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return A;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};else if(u.documentElement.currentStyle)W=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b], +h=a.style;if(!Da.test(f)&&gb.test(f)){d=h.left;e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f};if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var kb=c.now(),lb=/)<[^<]*)*<\/script>/gi, +mb=/^(?:select|textarea)/i,nb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ob=/^(?:GET|HEAD|DELETE)$/,Na=/\[\]$/,T=/\=\?(&|$)/,ia=/\?/,pb=/([?&])_=[^&]*/,qb=/^(\w+:)?\/\/([^\/?#]+)/,rb=/%20/g,sb=/#.*$/,Ea=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ea)return Ea.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d= +b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(k,l){if(l==="success"||l==="notmodified")h.html(f?c("
").append(k.responseText.replace(lb,"")).find(f):k.responseText);d&&h.each(d,[k.responseText,l,k])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& +!this.disabled&&(this.checked||mb.test(this.nodeName)||nb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, +getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", +script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),k=ob.test(h);b.url=b.url.replace(sb,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ia.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| +!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+kb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var l=E[d];E[d]=function(m){f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);if(c.isFunction(l))l(m);else{E[d]=A;try{delete E[d]}catch(p){}}v&&v.removeChild(B)}}if(b.dataType==="script"&&b.cache===null)b.cache= +false;if(b.cache===false&&h==="GET"){var n=c.now(),s=b.url.replace(pb,"$1_="+n);b.url=s+(s===b.url?(ia.test(b.url)?"&":"?")+"_="+n:"")}if(b.data&&h==="GET")b.url+=(ia.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");n=(n=qb.exec(b.url))&&(n[1]&&n[1]!==location.protocol||n[2]!==location.host);if(b.dataType==="script"&&h==="GET"&&n){var v=u.getElementsByTagName("head")[0]||u.documentElement,B=u.createElement("script");if(b.scriptCharset)B.charset=b.scriptCharset;B.src= +b.url;if(!d){var D=false;B.onload=B.onreadystatechange=function(){if(!D&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){D=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);B.onload=B.onreadystatechange=null;v&&B.parentNode&&v.removeChild(B)}}}v.insertBefore(B,v.firstChild);return A}var H=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!k||a&&a.contentType)w.setRequestHeader("Content-Type", +b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}n||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(G){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& +c.triggerGlobal(b,"ajaxSend",[w,b]);var M=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){H||c.handleComplete(b,w,e,f);H=true;if(w)w.onreadystatechange=c.noop}else if(!H&&w&&(w.readyState===4||m==="timeout")){H=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| +c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&g.call&&g.call(w);M("abort")}}catch(j){}b.async&&b.timeout>0&&setTimeout(function(){w&&!H&&M("timeout")},b.timeout);try{w.send(k||b.data==null?null:b.data)}catch(o){c.handleError(b,w,null,o);c.handleComplete(b,w,e,f)}b.async||M();return w}},param:function(a,b){var d=[],e=function(h,k){k=c.isFunction(k)?k():k;d[d.length]=encodeURIComponent(h)+ +"="+encodeURIComponent(k)};if(b===A)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)ca(f,a[f],b,e);return d.join("&").replace(rb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",[b,a])},handleComplete:function(a, +b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),e=a.getResponseHeader("Etag"); +if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});if(E.ActiveXObject)c.ajaxSettings.xhr= +function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var da={},tb=/^(?:toggle|show|hide)$/,ub=/^([+\-]=)?([\d+.\-]+)(.*)$/,aa,na=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",3),a,b,d);else{a= +0;for(b=this.length;a=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, +d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* +Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(h){return f.step(h)} +this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var f=this;a=c.fx;e.elem=this.elem;if(e()&&c.timers.push(e)&&!aa)aa=setInterval(a.tick,a.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; +this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(l,n){f.style["overflow"+n]=h.overflow[l]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| +this.options.show)for(var k in this.options.curAnim)c.style(this.elem,k,this.options.orig[k]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= +c.timers,b=0;b-1;e={};var s={};if(n)s=f.position();k=n?s.top:parseInt(k,10)||0;l=n?s.left:parseInt(l,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+k;if(b.left!=null)e.left=b.left-h.left+l;"using"in b?b.using.call(a, +e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Fa.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||u.body;a&&!Fa.test(a.nodeName)&& +c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==A)return this.each(function(){if(h=ea(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=ea(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); +c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(h){var k=c(this);k[d](e.call(this,h,k[d]()))});return c.isWindow(f)?f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b]:f.nodeType===9?Math.max(f.documentElement["client"+ +b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]):e===A?parseFloat(c.css(f,d)):this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/tests/lib/themeswitcher/README.md b/tests/lib/themeswitcher/README.md new file mode 100644 index 0000000..172cbaf --- /dev/null +++ b/tests/lib/themeswitcher/README.md @@ -0,0 +1,29 @@ +Super Theme Switcher is a jQuery plugin based on the original jQuery theme switcher that is no longer hosted or supported by the jQuery UI project. + +### Example: + $('#switcher').themeswitcher({ + imgpath: "images/", + loadTheme: "dot-luv" + }); + +But since all parameters are optional you can just use it like this: + $('#switcher').themeswitcher(); + +### Options + + * **imgPath**: String, path to image directory where theme icons are located + * **rounded**: Boolean, rounded corners on themeswitcher link and dropdown + * **themes**: An array of theme objects that will override the default themes. + [{title:"My theme",name:"my-theme",icon:"my-icon.png",url:"http://url-to-my-css-file.css"}] + * **additionalThemes**: An array of theme objects that will be INCLUDED along with the default themes. + [{title:"My theme",name:"my-theme",icon:"my-icon.png",url:"http://url-to-my-css-file.css"}] + * **jqueryUiVersion**: String, jQuery UI version of themes (Default themes are linked from Google CDN) + * **themePath**: String, Base path to where the jQuery UI CSS themes are located (Default is Google CDN) + +Demo located [here](http://dl.dropbox.com/u/188460/themeswitcher/sample.htm). + +This plugin includes the awesome jQuery cookie plugin by Klaus Hartl found [here](https://github.com/carhartl/jquery-cookie) + +Contact +---- +[@davehoff](http://www.twitter.com/davehoff) \ No newline at end of file diff --git a/tests/lib/themeswitcher/images/buttonbg.png b/tests/lib/themeswitcher/images/buttonbg.png new file mode 100644 index 0000000000000000000000000000000000000000..084d7f9d58efb9e2225835f95ff8ba4084eab99d GIT binary patch literal 4176 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 literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_black_matte.png b/tests/lib/themeswitcher/images/theme_90_black_matte.png new file mode 100644 index 0000000000000000000000000000000000000000..182cc0e3815e774029770950d62cf5dbbfb9f5c0 GIT binary patch literal 3309 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 literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_cupertino.png b/tests/lib/themeswitcher/images/theme_90_cupertino.png new file mode 100644 index 0000000000000000000000000000000000000000..0d9f11aa2cecaaabab29e7fc0305384a83c0dfef GIT binary patch literal 8530 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 M07*qoM6N<$g0+i_T>t<8 literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_dark_hive.png b/tests/lib/themeswitcher/images/theme_90_dark_hive.png new file mode 100644 index 0000000000000000000000000000000000000000..66ab870bb81a6f12957dac0a4953f2e5062792f1 GIT binary patch literal 10481 zcmVOBk0SW=W1VMRX!!kpRaJX>dKB=Ys;X+|&Yj>0=s*n$K8cTf27Pf1 zP77`P6+Gg{LIN~6i9!M{nA0Mq=s|4Gc?j4E3D`NOI%`&o z+}y0B(`nr5=;)}ctK(zjB_&Ec^Z(67*&&-K8i7CnyZ}eQ3I%r|8o^*t(=-SnrO4;= z;hA_m4%y=~pLlEzeD+tIll85{?=elohAG--bk@92qrf>(3O>yap$DuHmI58ZR#JDc zMl2spK+kza%49NN2iP-b&YW9sy|t~a4Ikfn>#g7X<~O+c$v9$IVulsjBw3n~SRt$4 zK){~Oz$#?5H2z_pvf`9%nWUP<6K=03ttP-7$f(=xNG8y>xjbH7Q?t6=p~#<%7g+pF zH{Eo}C6_pz&aSSmC!Tm>cz75_6Uzq^K%;PS_<&{O?$)hap*RBr19(= zV|}bEtEpv87j0O-%$I3==C{vPuDEK=!e%2e_U!N9Si5nfI~N&EBqt(Mt)UXdZlu$i zEt`7n#b?)Ed&j0LHw2rPb#@-?ShnHnNqNP>s`n4}ZrF6|O5LBC*rQZ0zhq6@PoI9v z?{$6LDPbX44*kdj4?OVTgAZb{SUVOjoUTOWghoL$@IW$|gzzk1zMNfvHPD*O$G)_9 zQd_Zhy*&|)XugYAcC;;CoEYvbXl$R9+;S!+MnNKh$O~Z1yE-Vns z#A2~ze1+xbjTBe{MWXqL#bPhK@B(DyJKy=v#TQ=;>3aF)m+|n&9XPG3innCVinb5l z{Nw9y?_IoVZ9viIwXN``r@Bt`hQ|h8dFkcx>6m8C16mu8#^U2gKp;F67<@-F3q}yCeljNurpt-~&!S~=_4At4>A}(Il*_4PbGpL> z<`}|4x3cMX;90U+6MdQ=A&*dISq2$|HV2R3aM}&X5x}VF89xo~fTaLaOslCVkN|pa z+yoY_sHjkAASNd#Yierf1>u$jj4MQSXE$cYKW7rST={u>6~}OYw_Q?vUXQgKry-Dd z1RoW}AwD{sPBvU__sm$b;;@}(R_C9LXn3q^)`M6+&5G$+AbS%N6Y#8FuUEhx(S-m% z3?j}?Fbj`=ny&tzjRk``H8lk$iF2r+?3tC__U~=#k7zu0&tpPO}K&zmHHUZe; zFFD9i7&IUt<1qjT&<~UjkKiMQfMmjM;V*O*lpr|ISfIrH^Na-od?cCx<$1=!BY(=e z^3u9=>C%%YPg=6=V*G;f&_G}G)woYnf(Cj7B?!=5Wzw93hGXGd&|m=|z*x8s0`!lsNPzy)6?%}Yiw|NfP7fW@Z~nXM z!hKLSH8n|8V?M@!z>+BQVa^iwIU5pyl&H*ZHck_;!D+dm`KM!Q14|M;FzP2IrwAiz z1r8D(AORO?^)J(}VOC5`STmGF52R#2*l7|-lFZ47u}m$nWD2?k?Xp=~HhWzb6XeRu z%IWE84wlhWhbIsUcvLl|rZajrt6T9O)sL>*oTDtMTGr|ENJbX>kW8g80ybK+2+YmN zX1#%+*X6<#Bt08Xq;lB|*sNP}?BPIY8aNh~kO6qh+R7>_B!hr6mD3Hy zp+Ji`R#8!rTwPsF7#@v8F1-BuhaULHt2bTMh7Ky=h)`G8&QH2)b0P5Rwp0W$yj{1NZ;UcW>GHx#G;^;hv#j zad}CRe`-2{ey|%_T9w>^zy9$fODmk){?qpt_>HaK{9e)I!QPZ}Ze?*Q3D}$g3ouJH z6|Zhs{r-P1 zdr`of&E+7Nm^S!`7%HVJ_x<3XzkBzs8?RW?-P7mu2mNk2qZ?^8jcH?6h-)RPB3KBi zu5Vd$(b5I+$#GX{$72uwaNC{V`iH-~H987j4?{)~+{qytHw7Bhdkf0q4et4*mW8{}?Lq z|F8f4{o$y6%iVwd%5#sml}YhbnzORzpH^HYO|A1w{7TcJWv{;e$^$>R&&cLw#ImDl zIQlEEys{$b>FF61uKe!Ubkf+XqHXeBS}+J69W_D14EO|3)jx|r(WK%?~?VarA*4_^E06k^m|9T zk59+5(TT~yu-3A4`NEEc0iWC9a8Xl0DH*AkUwEl@@#2xaFBi8g(z*|+u9lV>|70T9 zP+#YiozzXZl|(Gk+usZ2K6T=xL$N*o)DxP!YJP1ooC$`*tSmz)c>@7keC+WDe$+WB zJCcL<{ndXw$gFOcTi= zulwy6pZev)k6d~Cz4JoybH9Jx=5*Li6J)b|iaasU`>S94=)S*u;7fn@J@?25MT1Y2~xz_WPUmX|;7p9=BM$S`Hq$fsy{6Bs@V6O@f&YkK%K9$p@ z0+efl^#1;SIw!kL&)OYXHDQ`J*eWfpINgBI^fGXGZjVP(Q?Yomq_`*^kLC=?1e)1w zI;RJN0az#JjGyy(-0@g6XHx=RXA)Aar9Hj?06UF29Ufe27$zVPOeLar#RbY(Li2gS zGKtjk0**tOQPXvOvwgLLG(TF6lPZ-!1ls?;4a{-Eeo-+SzgIOPfvo3 zi4x$03Kz~ur4NUH`ZOM{<{-7~PQo zyM%2d0dc3-a*gOsbVU&9GB?3NQQ}y9kRS^CPh~`d;EIoMg~X18r_4&w_LG2cn*@ZR zOa-GMj*U16!YvFz@f2gRtGrKvDP<}Qe<8qx(gG=oh?oaIB%oRmQ*+z#ksHVcE~qQJ z;(bDU(UoioEqOsHC9=d{@XNFUnuZ3~0MEi8(+YVN22J<~0(|6b0iW!@AI*1c|P2 z(F}2-q%1BjZfR*DrwWgMESF^7q6{MFhW_~nmC=%!tW%#6+p}nFPM0&CO2A=#R6nK$Xl8KW zP-N1W+c0O&9PpUoCWRau$OJOPj1A&65O5hxx-uRm0mt*2t|3F$i2D#o&_Fb(3+S8# z=oSLP(6;b`mKaiK%bj<+Gvg=w#?rw2mKYXN!p-~Z+VB3--OJ`xb?)C6)v`8A+6!sY z$z>!}@WoLq*S<;(`4IVjh z++oKxD0J3;eJ^&7B?!Yfke~sR+#YA&(ZiXJdcV^)n8?zu z7tk0vUR@+?aQwAe>O;?yZ;v#9-F#sBnc6wi$Qm_LJ8eNLLYQCt2Rh9fCOavGLrEu=y0^W2j^d~fHH>(@68PsJTB;4)7h zhV}OL(%n)zh$)2BP}}LuSuR3XCrVHX2}Jz`)r3%rCS5d&tP4CkOFB%sW@f};X&M1I zh3oWDE1+u5G`Cc6YzCaynKVWY0^;_niKygoIUV^V7*k$_CK+Zuo6}tu!a}5yhhen# z3|I-GnA&4njo67LGIR&HW5I9-$H0uq6cBJ2+ATVN5I`K5PXqzY0aIT2bHLLV0KS<+ zcfiERd225y1wHJu$2t(83Uhje1n9>+kJ z?m5MeHjm25NQAyhSU8sE(A}^HJT4v)_o+2v2-q5khL9)fDEEBt1B{&AQDeSA`xOgN+k^z{f;;s1R2$Y!YIa~{E|nI&6FAG#_6`1 z{pQY*fIg8SC?PySEnS2lz#Vi&kdb$daJivSs4$wc5ENz)aaCL{Q){52Ae%*FX@?FU z2^n@;8c|kO2Ff$Y5T{#c8j6s%j)~TV9e%rsye{!YsJbs_xoy>ld$HzrtZw zX=Dm(iSiWbR8ICTxp4ItzV@|^YZpPb1q_>YC1cUrMXPVx^7&h~-8i?%kxFNn<}B9*u}_d`E>xVyXm-JN@&c(lZ4qf$UG-6ofnl@t{R z;1}$c`6Mq2N+qQ zmNPeLbYpzDyK`_-LipEnqPu%Yk?g9LrUl7|`CjW3kj&iDgu3yj+jB$vcOC9^ITR7v%m&V?R$Uc3abWMz zbgsB8WS=p3g}q6#?X~BB*B5oopHn{AGXlRUM&TdB<0>r+#?op-+v3t<&(vfLT%|)W zzcwWd!I!(NIEamvo&J)N5TZr~+@_ zn|lxT0y1QBrpqs+)N@(8A!SqJKmPFxhX%sRj2ki&AG+=dl_n>SWOMFaJ6@~2?wWx; zFC7|;N={eS$oB(H2$fcjcI`_VQdLbw_sPR))#ZijI3I<@J={Qew&030@O36-_LpC!#pn->i5t+pfb77F^ zOb#u#+oQ-(x(s?_Omuo$x&>rx5;oawIaH>#O+0C4Z4!p0c$}uOFg=vpBqFLL4HlkE zq$I_Om?)V_+GU5|=Y`oA8X7XoYz0aao<$Tspf65>Zd{}VXO&dAt^5*hFds)JKg%C8 zmJwB<9E%^%tR?Y?a&6|^L@h>P)rQCGv(H@SK{xCXzha8BP~xn$*-iesMJHabpIv!< zK7p;+n?fLr9TSKMya!w%1VS$&z@3_!BA`fH=>tkiVQOP)YLY;UUD3#Kd&zF5#qi+3 zz`%LNLT`-vSn5ioKWi*BK#w63@mOhDImhyxITrq6+auv=htox$c%HF{8}q5k^73*f zennY`2;s=D;o)I)0sJS5@CymVwnO9)p0R@W?5>!R1ulYae$-e(WS~u$aaC27NU{|Y z5RXU4hhq&ZY&U*Ojz!^z(3jJKSU_SfxCu-NI&tzt-%CHLtg93G_p`?WM@B|Q@}`t5 z7ZIANoEekTaBG>Y4()SU=`1jt$|9^)>*WJsGKR)85-SGI>VGHx0OjP zj0R7GtBhvYWw&exM$=7s_Ni8~Hh&Uo*<_d!1<+TP0Cx;aa{>6AMHPxWpeLd**wEOl zr6A_fSI#^*G>=q^O@?Ah`F`+KMzboM%}j+&!fZVv{K*G->6y#4Te7dMbwMtrE?jl# zwi~YvIP3tDbhI;6n5yawRy4OXBvoVWhHEx|_EOmf%$nx@pGniGrecw#*1EXEWkatj zGl`f=p3bVCsHmS;Ul~w!&!wNe`kIX!g78slnv|qb)0u|Gd2@p9@N~3k;e}UUeo4+O zq_DZ1ie{k?%hzTXR`}*BMtza@-isQ(u&|=cZek{CDEmogjK;>ckW0$iJ)gPehE*NS z=|n=cVt=Xds3{K(RWHzkV8~y^zCnc*{hqTMdYRgvQ-Vo4L5&beMhY=Fn8O= zO>TP*NReVZLy|Ha-ka~Zw_}c{xOv$ZZrkRObTdw+&(;kstE*bhF3I0s-*H8`XELdc zXQge+<`o$_uoqAB%sogY9o~{V?)^rUM`>Gi@!I7}E?>8~%mFFS=ei}@6#;eac76A* zH};mhGQ0O!OgL#;5Gls&kM?V}w<52HdPb~9RSI^F=w9{@A zNk#yI!Jf`nb{$A(vgrhTCBi9tDw}gyCuF8g5#EdJz;4&n&TVgQsH<=M^Z)t}OKUv{ zg5(@vm0eVVpyyOtub73$eY;B*{)Lc~_8XFr{JbssC=Rrw60!pj0$KSfRxpiS%bPU&&4TjQ8dckno zfY!h;HDjj8mNXPEs0o&r7H@AWe)RpmjOBerBxM%l_{tWxHnui5RRsLq#}7}$a{)+W zE?c(c&rjfIP5b}sVSR?-|Wno*kzFABR%v+R0`HVNUX9e zpUq!b`YP-(jZq$w24=bn1oBDgctnj(2Lj%#Ue5QXPLE~j8vMWBJA{6Ui^~|ogTOD! zYy|}2(b;41G@pGk?f6k+F@}mKQ>9haRt%qmyqFtqj%5-!6o({BvFRz7WM-r}?Q@RB z+&I9Y!gCWuFF=!LC;r5?Bh0I;tSl=l`>3QI!T+&i$0{l+&dxK6m=!=12z~zi`5!fw zpaghD=zxixGjGP>#>dCyiHX*_IfX~oh40>>p9!}D<9D8ZKobs!vA{e?FHCk@3ZF3z zs>=a4Vz&xhJu?TFqDH~Qe>~Q?%*A<0}9T`~`5Ol<_R4@U1!6 zErZ45%-^{o5&0>Ra)!i^O&Ze%J6&$`Gz(Iu1Ns;RG*Ct-f@4Iz0Mr zv(^ikg-6yIO?4MlZom7h%bLsk!usuByz7EF!LGxHBk*P!Enm8>szp`vzVx*(w^q1& z!?s(uZ(rC@a=hzsG-bXlMQsu^3#vmOeDHql!nIefXgqlM7=R7qK)%jZ*|7AhU)f&i z(T3CB+i$hS+b5C^+E1Nf8JGa<&s4sfa>ZORec%)$EobohXW8Rg`b)kl)_O|9!JR!3F zd=t^aVR|Y${;S6ybvLb;qr@J1m>fLv*pt6synI>1yoRQhc|-l( zlQGq0m5Jw5$KoW$Os*OF!F{_=3{545PVLxz;G%V_Joaqbs+KRzT&nSizoMl!6n=hR zS2mqIdUDWEoN%kmFc;F)6-S?a`<)Ly*gG9dX)~qrh3RFqBjLz`C2NvL-`TnU*hOnE zKHmAt!QrSwvdc4Ps~`_g$Cs{JedMiIjveXlJ#{3mCtPmX@^bk@GC}j3%ZWbWB~fX7#(Tzw!P%Z#?KHbb3jha`sr3A| zMU8VR7cM9pm>5Y+55Mr*t7%CV=V_KgsfH_f*Y;cd2rG@4<}TlI#fqcv?J=xSFrUkv zp}|;n%?p;cx6Yf}Ft?`2I#f`Z&f}FzCMp^hZM$wmLd|Ww?#Aoab=Vc}oXSu#sd6}U zm`o%Z7F~AT6{|9avi>tyZn|RaXy3qiI0d^UjIqT#h?`Th*It8yG(h8=DGR>pz^o5j6d~`Av z2>Ri`=-7l~H?v;w>RKx6@CMz==*W1mC>Wj&vpS1KNoI+g(`BOQZVr^SUdFxYA$ zj*hIi%IuuBsH?C@6vV-*nkgRZ=m^LzB(56~^lB85})H;#xPkB^IR79i0@d|Al_0cJnqBb2)@Z5(|(x+GBRCbzNiY@ z3tXC35u}Wa44J7KSrX+0c^Wft%vdyLN>IG#Buct0#Fa5jn`)*-h6e^fs3_p0LZ_L3 z2cK?6yr{$aCh~sUc21#9KqNyK+ga zt^ltgYpgCLP8D5oMMOHBFkRj(0zSwi;rz>A3{_d6LtznbuTV2-L@^=0jYI-U6A#K* z)FV%1u@mdbu1j#79=NyX`o?d|G>^yBgdn|rL1k~T(&!MqfB3BA`?y`y%SjIR# zJUd3yAY18t z-TK)9#McK78~{yudHKwNC^ng~3`Eg@t%-!g-QC@-t*x`N_SSo(kXtB7#%7mYP6t8< zpi%s;B;50!Ww<}Zu5{UOE3#Nr9gZ|2-OrKYt|af!p03x^{vU(hLK zK_h;xWmZ`pg>hC1AopLC0E*w@5EXu>U;Z*{2u=CVBvpOQrJJ{W?&^RM@zix}+q{18 zWaq#{9H^854^gQmxv%`(mTND&%$AC`uUvP-4V(SB>AeR|q|_8EZ3WGBmtU%<)HNG6 zty{fRjSL;{9fQ{h27?8tH0>*`+IGwBt5#f)(Vd&GyMAeF{fR>#PAAR$8ViZwO-ko9 z-*Vg5l^rbu;oL2EY+u!0*R^lYL_!-I9bvHv>opi6FgeOa@~0N4dXAZ6K-wMhLj2|e zptde`3flCFx@hN_OGt7UC^ptq-Ya12vpd1%hU{I;yRd*?f4EvtOv z2Y&kG^NW@*+rQ)A2E!@HJk7AFBo4WHFo^?U|6!}k7=P!)8qYNd&$Min{x2R2-fwvfztl_4${-SffPzok*ruTy@LMmo0ea5AUTW z$9C==xNOxrNlS1mMLI8)&ffTiKU-3fcxLCm^_y;TOdj2__ZUQv7_5+Haaru$;gM8) zaPP66P+4Wx%4ioR2cb8HGx+Vl_^V9MyZ`*)&&M)FOB?IPhbOGp(6a>B=0R6UwK_i7 zACdfu$L}r*xE-o>6hMU{bD5oDy_HBiQ$QFu^1f)WXK}ujKUm<20c#2}hEzQ#bnH}b zLyhaDcXrL2SNzN$e;?1uj+qx#@`aubcSXS7-9NFQeZI?x{Oi-tWf8Vo-ccN>lcskl zT;j|gJu%`)Prti+pJBJ<3OQ>=NojwuT#t`UX|DRJikudC?2!i#bWd6b$@=LWXK2ob z%UAa8f8&YAf9)!7GN$_8JJ{=XDJ*`cM6g1T@mF4FXC&hMC4eHQl|Qnssi~nBK$5}r ztYLRL6!W~=OuZVcR1^}`8vy`+3&QD^7zJ*I1@zM4h zE11Mg%oLl5@?m_%_Xv5oC(dZmAXYYmdqN!^SqqfKj9xy8rl!~z3tDNSMNu(^6j?Sx z9YQAZmtAp+JZGlclVNw-G=@eUV-i@k|*tirNU z(E|@L#1P`GG4Z}2lT|F9pi+owlYl)?N5s1Ll0I#vsOMt@Nc3nb3;y8)Lo%U+;xUSh zNCFes&?cEL8e29+5Qw^c)(>)@Sq3W-&MclK9N<`j^+G&JAbyg7oTW#k8Rl4w1`2J5 z+xoo^I#J50NH~Agy2OkBr+c=k%2?{CyM1qf^{C5dH!C13?%VXBM nSe(G0VEm8Y$H>SXO?&X}?XS4R!?>#; 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دtnteyxrr>oTmN7?O3k*$1&bB$F_KGBgimxYdP6@-s!AWzp+TNvjNbU&>q2edzDb<3%zTX-%g>4DByMwbU6j;Y! zp05x?ES{ycM(`IplmN~=!~_&Y(5ks=Ar(EB_}O88X4vO^if}pp^POsyih2fkwSwOJ z$R4z_M+PbUq1kE?5x?zXoy|%F^OK`OxzUH0vSk?jO9lVodgFqEmrbJ;rFd^YXFR($ zC6l2ezWbWNODG++_ZVnpD>YcQ#L|%X-X`O$jY~qPs)X6ULtpHq zBSTzhIHZUy<%(^-{-{)|Azd8nv-`(HkuLa+{=S;xci;%ESg1?QQ&04hcFPns0GcCb zoy{Ea&|-}T2&4ELi(z>rw?DFW&P*GvoTr%t&#S`Wpwrr@1_{fu0i0tpbk8jsLpTt| z^E=hK%~}C6c~%H1xTBKT3ib_G&x?o;cpO0000S6 literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_hot_sneaks.png b/tests/lib/themeswitcher/images/theme_90_hot_sneaks.png new file mode 100644 index 0000000000000000000000000000000000000000..cde01b30d78fedae934958f31419054a9890bc29 GIT binary patch literal 2961 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 Hu0mjf8kXZ~ literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_humanity.png b/tests/lib/themeswitcher/images/theme_90_humanity.png new file mode 100644 index 0000000000000000000000000000000000000000..891b39efb0edd69a0fe60ae9df1099a1afbc7474 GIT binary patch literal 3259 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 literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_le_frog.png b/tests/lib/themeswitcher/images/theme_90_le_frog.png new file mode 100644 index 0000000000000000000000000000000000000000..80d0d8b4fd8c9076eb70394ca96d814fefd0aa92 GIT binary patch literal 9124 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

(=nP*oE8K)_c9DuW;da*xAdhMN_|l2v7^ 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%0D&r^;iKqL7P>-h9s({R?EX!OsJL< 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 literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_pepper_grinder.png b/tests/lib/themeswitcher/images/theme_90_pepper_grinder.png new file mode 100644 index 0000000000000000000000000000000000000000..97b5d73c0b5872205e69a5852b7ed7837c4db61a GIT binary patch literal 11553 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 T)8WWr00000NkvXXu0mjfUIH%1 literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_smoothness.png b/tests/lib/themeswitcher/images/theme_90_smoothness.png new file mode 100644 index 0000000000000000000000000000000000000000..fa0f8fe934dc09aad51532de3b1b954616778321 GIT binary patch literal 3417 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 literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_south_street.png b/tests/lib/themeswitcher/images/theme_90_south_street.png new file mode 100644 index 0000000000000000000000000000000000000000..1545fd00401b7d414b2d8dddf0fc9e44a0a12710 GIT binary patch literal 8417 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 VX+#1GteXG;002ovPDHLkV1mX%`Aq-- literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_trontastic.png b/tests/lib/themeswitcher/images/theme_90_trontastic.png new file mode 100644 index 0000000000000000000000000000000000000000..f77b455fecfa7f6f7a07388f20ba00c5bd8f3804 GIT binary patch literal 4191 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 literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/images/theme_90_windoze.png b/tests/lib/themeswitcher/images/theme_90_windoze.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8c3bd3ab5ce8893a23661f3b18fcdca5e52174 GIT binary patch literal 3370 zcmV+_4b}3AP)2aykrpe=wqrJ=I z^!f45)!XFi?(pmK_-m!nb(y->*Vvi7*LkJI!_3#^@%!HD^jC+n)aCN3qh_ws?1Z$~ zhN#4riiGgPoV2sF%hTNE@AhhMcwL^)Z=J+;f{N&%Y}n@UeX!T{^XS~^^W5zFXq36} z^7PHXwfX%0+UWCuve&cD(}s0x;ojNP==Ghm$)=Zy?#r~{?)dES z_K&>Wg`K$a>Eo!PmBPl)+Uob*?DzZl^J0ap_xk+$=(*wO@9_Np-|F=E`uU2t*lCTg zAtNS%uhZn|@!i*gk+jqJ^Yd`0(bMbs z$i(;f_K3USeW1TG%DIw%On7^!@(+{Qdp^|Nj60 z05ZicP5=N4KuJVFRCwCdSPfU&NEarPq+tglZ4g|_{Sdb9>XhmDKW~r^K zYppJBVp~?JT|xTS_s%4I*w%Nq=hQvty+*mobMKSk<~}nM9iK8k+=hMl^^+sh)|}tp z68gp`#}C@r?Dx0B_wzvQoV~ofOeT|;-^nP`t3R?`>NR!kGwy|jg&Xgd1ZZJ_d?exH zI`m3aUqNDz+E=e@>NTdMPZZCAy?ZRoI@vw@ESX?^mrXJ0W5a9B(skxFv0fKpm^O8C zt*-g%+WBBrk{5wDUT0HvvT8zH6IoI8O|Yu78BVa_1+_UUW|!HPRu@0E4w9D9swPYE zQX*dJQ#*^L%XoZk!46s=gM6dDM+(Yf)yY*$!t#Dg%r-w7RrU?LSNTKpX^sT%eZMc_ z{k`Ez--gAaIvW?kq11s1Ga23i%kYv9U4w2L>=kKf4!f z%sS}rH5*=7py`zQC+Z%4FSBk&sh5Ac4Rf9Xb!R#8{jJ#^CDgZLl=|v6Y^Y1!>GQWc zSDm5m3AugGZ^KV7=o&JR-m#Or)I&?@whgymyE|^K(`i$DDHM`z|H}RD^xeD_)qWic z1wz;+Y(EXvIz9ibL4BLLv*hwDxt9v`u8&+xuK3#s4g7t|H4||!afEwlaw;?BcpDg^ z1dm_xgizPaY&g162^5g}r z*_6vQ^UO74MLo~7A7?TJ%H3ILjiGJnatr{%E6MorDTY?oh!>38Ckqw%r(yrreJ_`|aLi9DLw*TlOA!yZ401)&9xV z^`OC?BEZmp(AWP3^?*``+5>hC82Y;3x%wYMZ|g0gYc2DayM22%2*|yY7D5BSU^e=U zdPpi_o|=q>iMw~G-MxF~?wz?!3osBC6oIjVFcug_uoDcqh`QNG7KAUTqe!M!Qxu@K zM*Q1vK)po)RAaHiGdztk&_@N#PN*v_WM`v5oM&#JHr*#8ny_ne=lt=MfoYI6gCBIJ5L!xX!ID{E$Z ze$j5eLf5XYkc@1T^|>GWc4iI$+<>q5ee+rnp)O>jIopa-e+)%=V)N&&Z4LlAneUA{ zhjFf-F&M-XYTa&hiIZ}uWj8%kOR-CeXc>19xhk7o0C5NoJIItE+lqGb8g#xs@kx|g^86{McN09JHod!k?|MbDsI6|~ z-Knh|yEDy=*z_hAXv-SjRB(YO06!Y6P1mQFG3je=#W}R%L$t4r(D;i`s%Z7~{JQ^i z{n%iLWOPeIsH~bWcUiutk@w4%=#(QzJ|PeQr(EF?M@A z9wlnzz1vO}Bx{Y@R$#q_bIAS%A0u^81|2oeL^MPJ>=o-rr7fyP{)lCFST;&W%?HFf zE9U5^ah9zIN}J4Jtz}b|qupuIkU(hmW0WOHrb5F=LWYEF0Io{V2vm)xge1vUBa%!L zT8FXvx)rsIcBbv`6tR+v{u5B-akRIx-Q;y6XE#*U?RY-1p7RE!#F% z3(`OkElB+9vjE?pDy{>Aa|o|#e%s=SiO=T{y#*uUKwLV^d&EaNGIb7~9|oV3;E;9* zAWIbBEkK8og0D$uXJ_p;93B6v0ND~40KLa(MpQH(E>blj_ln3fWR5)eNLW)T5Rn`M*3djUm*=d@zyD zH!Yz{p5Z|3VAH1Fz8LjX3<4PQ4QD7eeNhGKmxTxSeth`w38j`5&v;4=UMQosWF`XB z-rbmLEkRt$SM^N)3~FQ;BV9@7Q)?7Z_D|lp8-CK)3?r4D8+p)`hR$9Ve!2Jh!NUh{ zR&zvGje0{2E-SVg70^@js4NO7M--pmtEY}HsATX;o*fx)QoxAB5|KTrMJ3}7?rk*2 zf!aJPTs?UB6b?U7D`+HEa^&r0S10Q*w55!R8o_7aB#Q-W;TBqo5|u3gt}B=q6apwh z3)kQlKz(-h{PnxJm+%;)m;!PRGkt1Ie{=S7kIBZ!+9XlG2at`yARzFXq1$$)QEE&8 z7zHWFRez@@=zX^($-)f)8t|8!TGyJ=Kmy(KwQNyWFW zrW@lIHZ|;nK!Ks)UpprFn2Sumh)l0yM#0z^4Qi1XPy--yBdTLtHGmF+($j3d1TF(X zr;Ttd1wlEI?b*{E=SEL5qw9MU>HGyy$fqE(CTH0s(M&x^}$#C(I!& zP-#q5B6+%W#{p;^=*8z0X|AdAVe5{wDH z!g*eKQrk^LW_%Qhh4(gQF#!yC%X%L4E8kEMP@{Xh5(qZ-6rv~OiIu!%dpr3tk`Fgh zPHSys*U#N>|8Jq@`6Gu~kEq!e*$~RCTJoxODmnmse8i{FogyDmi(Xayw#NvYb)CLf zm}J*z>SSBPSX*}xn#9QzfVT~@5Bio-$9tQ=td#BhyikmO75Mkm9jZp*qbkG;Q#;t07*qoM6N<$f~}L+ A4gdfE literal 0 HcmV?d00001 diff --git a/tests/lib/themeswitcher/jquery.themeswitcher.js b/tests/lib/themeswitcher/jquery.themeswitcher.js new file mode 100644 index 0000000..f28959c --- /dev/null +++ b/tests/lib/themeswitcher/jquery.themeswitcher.js @@ -0,0 +1,466 @@ +/** + * jQuery Theme Switcher plugin + * + * Copyright (c) 2011 Dave Hoff (davehoff.com) + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + */ + +(function( $ ){ + + $.fn.themeswitcher = function( options ) { + var switcherDiv = this, switcherOptions = {}; + var settings = { + loadtheme : "", + height: 200, + width: 175, + rounded: true, + imgpath: "", + themepath: "https://ajax.googleapis.com/ajax/libs/jqueryui/", + jqueryuiversion: "1.8.10", + initialtext: "Switch Theme", + buttonpretext: "Theme:", + closeonselect: true, + buttonheight: 14, + cookiename: "jquery-ui-theme", + themes: [], + additionalthemes: [], + onopen: null, + onclose: null, + onselect: null, + cookieexpires: 365, + cookiepath: '/' + }; + + if(options) { + //lowercase all options passed in + $.each(options, function(k,v){ + switcherOptions[k.toLowerCase()] = v; + }); + + $.extend( settings, switcherOptions ); + } + + if( ! settings.themes.length ){ + var themes = [ + { + title: "Black Tie", + name: "black-tie", + icon: "theme_90_black_tie.png" + }, + { + title: "Blitzer", + name: "blitzer", + icon: "theme_90_blitzer.png" + }, + { + title: "Cupertino", + name: "cupertino", + icon: "theme_90_cupertino.png" + }, + { + title: "Dark Hive", + name: "dark-hive", + icon: "theme_90_dark_hive.png" + }, + { + title: "Dot Luv", + name: "dot-luv", + icon: "theme_90_dot_luv.png" + }, + { + title: "Eggplant", + name: "eggplant", + icon: "theme_90_eggplant.png" + }, + { + title: "Excite Bike", + name: "excite-bike", + icon: "theme_90_excite_bike.png" + }, + { + title: "Flick", + name: "flick", + icon: "theme_90_flick.png" + }, + { + title: "Hot Sneaks", + name: "hot-sneaks", + icon: "theme_90_hot_sneaks.png" + }, + { + title: "Humanity", + name: "humanity", + icon: "theme_90_humanity.png" + }, + { + title: "Le Frog", + name: "le-frog", + icon: "theme_90_le_frog.png" + }, + { + title: "Mint Choc", + name: "mint-choc", + icon: "theme_90_mint_choco.png" + }, + { + title: "Overcast", + name: "overcast", + icon: "theme_90_overcast.png" + }, + { + title: "Pepper Grinder", + name: "pepper-grinder", + icon: "theme_90_pepper_grinder.png" + }, + { + title: "Redmond", + name: "redmond", + icon: "theme_90_windoze.png" + }, + { + title: "Smoothness", + name: "smoothness", + icon: "theme_90_smoothness.png" + }, + { + title: "South Street", + name: "south-street", + icon: "theme_90_south_street.png" + }, + { + title: "Start", + name: "start", + icon: "theme_90_start_menu.png" + }, + { + title: "Sunny", + name: "sunny", + icon: "theme_90_sunny.png" + }, + { + title: "Swanky Purse", + name: "swanky-purse", + icon: "theme_90_swanky_purse.png" + }, + { + title: "Trontastic", + name: "trontastic", + icon: "theme_90_trontastic.png" + }, + { + title: "UI Darkness", + name: "ui-darkness", + icon: "theme_90_ui_dark.png" + }, + { + title: "UI Lightness", + name: "ui-lightness", + icon: "theme_90_ui_light.png" + }, + { + title: "Vader", + name: "vader", + icon: "theme_90_black_matte.png" + } + ] + }else{ + var themes = settings.themes; + } + + if( settings.additionalthemes.length ){ + $.extend( themes, settings.additionalthemes ); + } + + // Switcher link + var switcherLinkStyle = { + "cursor": "pointer", + "font-family": "'Trebuchet MS', Verdana, sans-serif", + "font-size": "11px", + "color": "#666", + "background": "#eee url("+settings.imgpath+"buttonbg.png) repeat-x 50% 50%", + "border": "1px solid #CCC", + "text-decoration": "none", + "padding": "3px 3px 3px 8px", + "width": settings.width+"px", + "display": "block", + "height": settings.buttonheight+"px", + "outline": "0px" , + "line-height": settings.buttonheight+"px" + } + + if( settings.rounded ){ + switcherLinkStyle['border-radius'] = "6px"; + switcherLinkStyle['-moz-border-radius'] = "6px"; + switcherLinkStyle['-webkit-border-radius'] = "6px"; + } + + var switcherLink = $("") + .addClass("jquery-ui-switcher-link") + .css(switcherLinkStyle) + .bind({ + mouseenter: function(){ + $(this).css({ + "background": "#eee" + }) + }, + mouseleave: function(){ + if( ! switcherDiv.find(".jquery-ui-switcher-list-hldr").is(":visible") ){ + $(this).css({ + "background":"#eee url("+settings.imgpath+"buttonbg.png) repeat-x 50% 50%" + }) + } + }, + click: function(){ + (!switcherDiv.find(".jquery-ui-switcher-list-hldr").is(":visible")) ? openSwitcher() : closeSwitcher(); + } + }); + + // Title & Icon for switcher link + var switcherTitle = $("").addClass("jquery-ui-switcher-title").appendTo(switcherLink); + $("").addClass("jquery-ui-switcher-arrow") + .css({ + "float": "right", + "width": "16px", + "height": "16px", + "background": "url("+settings.imgpath+"icon_color_arrow.gif) no-repeat 50% 50%" + }) + .appendTo(switcherLink); + + // load the default theme or the theme stored in the cookie + if( $.cookie(settings.cookiename) ){ + updateTheme( findTheme($.cookie(settings.cookiename)) ); + + }else if( settings.loadtheme.length ){ + updateTheme( findTheme(settings.loadtheme) ); + + }else{ + switcherTitle.text(settings.initialtext); + } + + var switcherListHldr = $("

") + .addClass("jquery-ui-switcher-list-hldr") + .css({ + "width": eval(settings.width+8)+"px", + "background": "#000", + "color": "#FFF", + "font-family": "'Trebuchet MS', Verdana, sans-serif", + "font-size": "12px", + "border": "1px solid #CCC", + "border-top": "none", + "z-index": "999999", + "position": "absolute", + "top": eval(settings.buttonheight+3)+"px", + "left": "0px", + "padding": "3px 3px 3px 0", + "display": "none" + }) + .bind({ + mouseleave: function(){ + closeSwitcher(); + } + }); + + if( settings.rounded ){ + switcherListHldr.css("border-radius","0 0 6px 6px"); + switcherListHldr.css("-moz-border-radius","0 0 6px 6px"); + switcherListHldr.css("-webkit-border-radius","0 0 6px 6px"); + } + + var switcherList = $("