diff --git a/js/date.js b/js/date.js deleted file mode 100644 index fb69c6501..000000000 --- a/js/date.js +++ /dev/null @@ -1,467 +0,0 @@ -/* - * Date prototype extensions. Doesn't depend on any - * other code. Doens't overwrite existing methods. - * - * Adds dayNames, abbrDayNames, monthNames and abbrMonthNames static properties and isLeapYear, - * isWeekend, isWeekDay, getDaysInMonth, getDayName, getMonthName, getDayOfYear, getWeekOfYear, - * setDayOfYear, addYears, addMonths, addDays, addHours, addMinutes, addSeconds methods - * - * Copyright (c) 2006 Jörn Zaefferer and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net) - * - * Additional methods and properties added by Kelvin Luck: firstDayOfWeek, dateFormat, zeroTime, asString, fromString - - * I've added my name to these methods so you know who to blame if they are broken! - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - */ - -/** - * An Array of day names starting with Sunday. - * - * @example dayNames[0] - * @result 'Sunday' - * - * @name dayNames - * @type Array - * @cat Plugins/Methods/Date - */ -Date.dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; - -/** - * An Array of abbreviated day names starting with Sun. - * - * @example abbrDayNames[0] - * @result 'Sun' - * - * @name abbrDayNames - * @type Array - * @cat Plugins/Methods/Date - */ -Date.abbrDayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; - -/** - * An Array of month names starting with Janurary. - * - * @example monthNames[0] - * @result 'January' - * - * @name monthNames - * @type Array - * @cat Plugins/Methods/Date - */ -Date.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; - -/** - * An Array of abbreviated month names starting with Jan. - * - * @example abbrMonthNames[0] - * @result 'Jan' - * - * @name monthNames - * @type Array - * @cat Plugins/Methods/Date - */ -Date.abbrMonthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - -/** - * The first day of the week for this locale. - * - * @name firstDayOfWeek - * @type Number - * @cat Plugins/Methods/Date - * @author Kelvin Luck - */ -Date.firstDayOfWeek = 1; - -/** - * The format that string dates should be represented as (e.g. 'dd/mm/yyyy' for UK, 'mm/dd/yyyy' for US, 'yyyy-mm-dd' for Unicode etc). - * - * @name format - * @type String - * @cat Plugins/Methods/Date - * @author Kelvin Luck - */ -//Date.format = 'dd/mm/yyyy'; -//Date.format = 'mm/dd/yyyy'; -Date.format = 'yyyy-mm-dd'; -//Date.format = 'dd mmm yy'; - -/** - * The first two numbers in the century to be used when decoding a two digit year. Since a two digit year is ambiguous (and date.setYear - * only works with numbers < 99 and so doesn't allow you to set years after 2000) we need to use this to disambiguate the two digit year codes. - * - * @name format - * @type String - * @cat Plugins/Methods/Date - * @author Kelvin Luck - */ -Date.fullYearStart = '20'; - -(function() { - - /** - * Adds a given method under the given name - * to the Date prototype if it doesn't - * currently exist. - * - * @private - */ - function add(name, method) { - if( !Date.prototype[name] ) { - Date.prototype[name] = method; - } - }; - - /** - * Checks if the year is a leap year. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.isLeapYear(); - * @result true - * - * @name isLeapYear - * @type Boolean - * @cat Plugins/Methods/Date - */ - add("isLeapYear", function() { - var y = this.getFullYear(); - return (y%4==0 && y%100!=0) || y%400==0; - }); - - /** - * Checks if the day is a weekend day (Sat or Sun). - * - * @example var dtm = new Date("01/12/2008"); - * dtm.isWeekend(); - * @result false - * - * @name isWeekend - * @type Boolean - * @cat Plugins/Methods/Date - */ - add("isWeekend", function() { - return this.getDay()==0 || this.getDay()==6; - }); - - /** - * Check if the day is a day of the week (Mon-Fri) - * - * @example var dtm = new Date("01/12/2008"); - * dtm.isWeekDay(); - * @result false - * - * @name isWeekDay - * @type Boolean - * @cat Plugins/Methods/Date - */ - add("isWeekDay", function() { - return !this.isWeekend(); - }); - - /** - * Gets the number of days in the month. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.getDaysInMonth(); - * @result 31 - * - * @name getDaysInMonth - * @type Number - * @cat Plugins/Methods/Date - */ - add("getDaysInMonth", function() { - return [31,(this.isLeapYear() ? 29:28),31,30,31,30,31,31,30,31,30,31][this.getMonth()]; - }); - - /** - * Gets the name of the day. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.getDayName(); - * @result 'Saturday' - * - * @example var dtm = new Date("01/12/2008"); - * dtm.getDayName(true); - * @result 'Sat' - * - * @param abbreviated Boolean When set to true the name will be abbreviated. - * @name getDayName - * @type String - * @cat Plugins/Methods/Date - */ - add("getDayName", function(abbreviated) { - return abbreviated ? Date.abbrDayNames[this.getDay()] : Date.dayNames[this.getDay()]; - }); - - /** - * Gets the name of the month. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.getMonthName(); - * @result 'Janurary' - * - * @example var dtm = new Date("01/12/2008"); - * dtm.getMonthName(true); - * @result 'Jan' - * - * @param abbreviated Boolean When set to true the name will be abbreviated. - * @name getDayName - * @type String - * @cat Plugins/Methods/Date - */ - add("getMonthName", function(abbreviated) { - return abbreviated ? Date.abbrMonthNames[this.getMonth()] : Date.monthNames[this.getMonth()]; - }); - - /** - * Get the number of the day of the year. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.getDayOfYear(); - * @result 11 - * - * @name getDayOfYear - * @type Number - * @cat Plugins/Methods/Date - */ - add("getDayOfYear", function() { - var tmpdtm = new Date("1/1/" + this.getFullYear()); - return Math.floor((this.getTime() - tmpdtm.getTime()) / 86400000); - }); - - /** - * Get the number of the week of the year. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.getWeekOfYear(); - * @result 2 - * - * @name getWeekOfYear - * @type Number - * @cat Plugins/Methods/Date - */ - add("getWeekOfYear", function() { - return Math.ceil(this.getDayOfYear() / 7); - }); - - /** - * Set the day of the year. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.setDayOfYear(1); - * dtm.toString(); - * @result 'Tue Jan 01 2008 00:00:00' - * - * @name setDayOfYear - * @type Date - * @cat Plugins/Methods/Date - */ - add("setDayOfYear", function(day) { - this.setMonth(0); - this.setDate(day); - return this; - }); - - /** - * Add a number of years to the date object. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.addYears(1); - * dtm.toString(); - * @result 'Mon Jan 12 2009 00:00:00' - * - * @name addYears - * @type Date - * @cat Plugins/Methods/Date - */ - add("addYears", function(num) { - this.setFullYear(this.getFullYear() + num); - return this; - }); - - /** - * Add a number of months to the date object. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.addMonths(1); - * dtm.toString(); - * @result 'Tue Feb 12 2008 00:00:00' - * - * @name addMonths - * @type Date - * @cat Plugins/Methods/Date - */ - add("addMonths", function(num) { - var tmpdtm = this.getDate(); - - this.setMonth(this.getMonth() + num); - - if (tmpdtm > this.getDate()) - this.addDays(-this.getDate()); - - return this; - }); - - /** - * Add a number of days to the date object. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.addDays(1); - * dtm.toString(); - * @result 'Sun Jan 13 2008 00:00:00' - * - * @name addDays - * @type Date - * @cat Plugins/Methods/Date - */ - add("addDays", function(num) { - this.setDate(this.getDate() + num); - return this; - }); - - /** - * Add a number of hours to the date object. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.addHours(24); - * dtm.toString(); - * @result 'Sun Jan 13 2008 00:00:00' - * - * @name addHours - * @type Date - * @cat Plugins/Methods/Date - */ - add("addHours", function(num) { - this.setHours(this.getHours() + num); - return this; - }); - - /** - * Add a number of minutes to the date object. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.addMinutes(60); - * dtm.toString(); - * @result 'Sat Jan 12 2008 01:00:00' - * - * @name addMinutes - * @type Date - * @cat Plugins/Methods/Date - */ - add("addMinutes", function(num) { - this.setMinutes(this.getMinutes() + num); - return this; - }); - - /** - * Add a number of seconds to the date object. - * - * @example var dtm = new Date("01/12/2008"); - * dtm.addSeconds(60); - * dtm.toString(); - * @result 'Sat Jan 12 2008 00:01:00' - * - * @name addSeconds - * @type Date - * @cat Plugins/Methods/Date - */ - add("addSeconds", function(num) { - this.setSeconds(this.getSeconds() + num); - return this; - }); - - /** - * Sets the time component of this Date to zero for cleaner, easier comparison of dates where time is not relevant. - * - * @example var dtm = new Date(); - * dtm.zeroTime(); - * dtm.toString(); - * @result 'Sat Jan 12 2008 00:01:00' - * - * @name zeroTime - * @type Date - * @cat Plugins/Methods/Date - * @author Kelvin Luck - */ - add("zeroTime", function() { - this.setMilliseconds(0); - this.setSeconds(0); - this.setMinutes(0); - this.setHours(0); - return this; - }); - - /** - * Returns a string representation of the date object according to Date.format. - * (Date.toString may be used in other places so I purposefully didn't overwrite it) - * - * @example var dtm = new Date("01/12/2008"); - * dtm.asString(); - * @result '12/01/2008' // (where Date.format == 'dd/mm/yyyy' - * - * @name asString - * @type Date - * @cat Plugins/Methods/Date - * @author Kelvin Luck - */ - add("asString", function() { - var r = Date.format; - return r - .split('yyyy').join(this.getFullYear()) - .split('yy').join((this.getFullYear() + '').substring(2)) - .split('mmm').join(this.getMonthName(true)) - .split('mm').join(_zeroPad(this.getMonth()+1)) - .split('dd').join(_zeroPad(this.getDate())); - }); - - /** - * Returns a new date object created from the passed String according to Date.format or false if the attempt to do this results in an invalid date object - * (We can't simple use Date.parse as it's not aware of locale and I chose not to overwrite it incase it's functionality is being relied on elsewhere) - * - * @example var dtm = Date.fromString("12/01/2008"); - * dtm.toString(); - * @result 'Sat Jan 12 2008 00:00:00' // (where Date.format == 'dd/mm/yyyy' - * - * @name fromString - * @type Date - * @cat Plugins/Methods/Date - * @author Kelvin Luck - */ - Date.fromString = function(s) - { - var f = Date.format; - var d = new Date('01/01/1977'); - var iY = f.indexOf('yyyy'); - if (iY > -1) { - d.setFullYear(Number(s.substr(iY, 4))); - } else { - // TODO - this doesn't work very well - are there any rules for what is meant by a two digit year? - d.setFullYear(Number(Date.fullYearStart + s.substr(f.indexOf('yy'), 2))); - } - var iM = f.indexOf('mmm'); - if (iM > -1) { - var mStr = s.substr(iM, 3); - for (var i=0; i - * With ideas and and javascript code borrowed from many folks. - * (See URLS in the comments) - * - * Licensed under GPL. - * Requires jQuery.js. , - * which may be distributed under a different licence. - * - * $Date: 2006-09-15 12:49:19 -0700 (Fri, 15 Sep 2006) $ - * $Rev: $ - * $Id:$ - * - * This plugin helps you create tooltips. It supports: - * - * hovertips - these appear under the mouse when mouse is over the target - * element. - * - * clicktips - these appear in the document when the target element is - * clicked. - * - * You may define behaviors for additional types of tooltips. - * - * There are a variety of ways to add tooltips. Each of the following is - * supported: - * - *

blah blah blah - * important term - * text that appears. - * blah blah blah

- * - * or, - * - *

blah blah blah - * important term - * blah blah blah

- *

term definition

the term means...

- * - * or, - * - *

blah blah blah - * important term - * blah blah blah

- *

term definition

the term means...

- * - * - * Hooks are available to customize both the behavior of activated tooltips, - * and the syntax used to mark them up. - * - */ - - -//// mouse events //// -/** - * To make hovertips appear correctly we need the exact mouse position. - * These functions make that possible. - */ - -// use globals to track mouse position -var hovertipMouseX; -var hovertipMouseY; -function hovertipMouseUpdate(e) { - var mouse = hovertipMouseXY(e); - hovertipMouseX = mouse[0]; - hovertipMouseY = mouse[1]; -} - -// http://www.howtocreate.co.uk/tutorials/javascript/eventinfo -function hovertipMouseXY(e) { - if( !e ) { - if( window.event ) { - //Internet Explorer - e = window.event; - } else { - //total failure, we have no way of referencing the event - return; - } - } - if( typeof( e.pageX ) == 'number' ) { - //most browsers - var xcoord = e.pageX; - var ycoord = e.pageY; - } else if( typeof( e.clientX ) == 'number' ) { - //Internet Explorer and older browsers - //other browsers provide this, but follow the pageX/Y branch - var xcoord = e.clientX; - var ycoord = e.clientY; - var badOldBrowser = ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) || - ( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) || - ( navigator.vendor == 'KDE' ); - if( !badOldBrowser ) { - if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { - //IE 4, 5 & 6 (in non-standards compliant mode) - xcoord += document.body.scrollLeft; - ycoord += document.body.scrollTop; - } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) { - //IE 6 (in standards compliant mode) - xcoord += document.documentElement.scrollLeft; - ycoord += document.documentElement.scrollTop; - } - } - } else { - //total failure, we have no way of obtaining the mouse coordinates - return; - } - return [xcoord, ycoord]; -} - - - -//// target selectors //// - -/** - * These selectors find the targets for a given tooltip element. - * Several methods are supported. - * - * You may write your own selector functions to customize. - */ - -/** - * For this model: - * target term... - *
tooltip text
- */ -targetSelectById = function(el, config) { - var id; - var selector; - if (id = el.getAttribute('id')) { - selector = '*[@'+config.attribute+'=\''+id+'\']'; - return $(selector); - } -}; - -/** - * For this model: - * target term... - *
tooltip text
- */ -targetSelectByTargetAttribute = function(el, config) { - target_list = el.getAttribute('target'); - if (target_list) { - // use for attribute to specify targets - target_ids = target_list.split(' '); - var selector = '#' + target_ids.join(',#'); - return $(selector); - } -}; - -/** - * For this model: - * target termtooltip text - */ -targetSelectByPrevious = function(el, config) { - return $(el.previousSibling); -} - -/** - * Make all siblings targets. Experimental. - */ -targetSelectBySiblings = function(el, config) { - return $(el).siblings(); -} - -//// prepare tip elements //// - -/** - * The tooltip element needs special preparation. You may define your own - * prepare functions to cusomize the behavior. - */ - -// adds a close link to clicktips -clicktipPrepareWithCloseLink = function(o, config) { - return o.append("close") - .find('a.clicktip_close').click(function(e) { - o.hide(); - return false; - }).end(); -}; - -// ensure that hovertips do not disappear when the mouse is over them. -// also position the hovertip as an absolutely positioned child of body. -hovertipPrepare = function(o, config) { - return o.hover(function() { - hovertipHideCancel(this); - }, function() { - hovertipHideLater(this); - }).css('position', 'absolute').each(hovertipPosition); -}; - -// do not modify tooltips when preparing -hovertipPrepareNoOp = function(o, config) { - return o; -} - -//// manipulate tip elements ///// -/** - * A variety of functions to modify tooltip elements - */ - -// move tooltips to body, so they are not descended from other absolutely -// positioned elements. -hovertipPosition = function(i) { - document.body.appendChild(this); -} - -hovertipIsVisible = function(el) { - return (jQuery.css(el, 'display') != 'none'); -} - -// show the tooltip under the mouse. -// Introduce a delay, so tip appears only if cursor rests on target for more than an instant. -hovertipShowUnderMouse = function(el) { - hovertipHideCancel(el); - if (!hovertipIsVisible(el)) { - el.ht.showing = // keep reference to timer - window.setTimeout(function() { - el.ht.tip.css({ - 'position':'absolute', - 'top': hovertipMouseY + 'px', - 'left': hovertipMouseX + 'px'}) - .show(); - }, el.ht.config.showDelay); - } -}; - -// do not hide -hovertipHideCancel = function(el) { - if (el.ht.hiding) { - window.clearTimeout(el.ht.hiding); - el.ht.hiding = null; - } -}; - -// Hide a tooltip, but only after a delay. -// The delay allow the tip to remain when user moves mouse from target to tooltip -hovertipHideLater = function(el) { - if (el.ht.showing) { - window.clearTimeout(el.ht.showing); - el.ht.showing = null; - } - if (el.ht.hiding) { - window.clearTimeout(el.ht.hiding); - el.ht.hiding = null; - } - el.ht.hiding = - window.setTimeout(function() { - if (el.ht.hiding) { - // fadeOut, slideUp do not work on Konqueror - el.ht.tip.hide(); - } - }, el.ht.config.hideDelay); -}; - - -//// prepare target elements //// -/** - * As we prepared the tooltip elements, the targets also need preparation. - * - * You may define your own custom behavior. - */ - -// when clicked on target, toggle visibilty of tooltip -clicktipTargetPrepare = function(o, el, config) { - return o.addClass(config.attribute + '_target') - .click(function() { - el.ht.tip.toggle(); - return false; - }); -}; - -// when hover over target, make tooltip appear -hovertipTargetPrepare = function(o, el, config) { - return o.addClass(config.attribute + '_target') - .hover(function() { - // show tip when mouse over target - hovertipShowUnderMouse(el); - }, - function() { - // hide the tip - // add a delay so user can move mouse from the target to the tip - hovertipHideLater(el); - }); -}; - - -/** - * hovertipActivate() is our jQuery plugin function. It turns on hovertip or - * clicktip behavior for a set of elements. - * - * @param config - * controls aspects of tooltip behavior. Be sure to define - * 'attribute', 'showDelay' and 'hideDelay'. - * - * @param targetSelect - * function finds the targets of a given tooltip element. - * - * @param tipPrepare - * function alters the tooltip to display and behave properly - * - * @param targetPrepare - * function alters the target to display and behave properly. - */ -jQuery.fn.hovertipActivate = function(config, targetSelect, tipPrepare, targetPrepare) { - //alert('activating ' + this.size()); - // unhide so jquery show/hide will work. - return this.css('display', 'block') - .hide() // don't show it until click - .each(function() { - if (!this.ht) - this.ht = new Object(); - this.ht.config = config; - - // find our targets - var targets = targetSelect(this, config); - if (targets && targets.size()) { - if (!this.ht.targets) - this.ht.targets = targetPrepare(targets, this, config); - else - this.ht.targets.add(targetPrepare(targets, this, config)); - - // listen to mouse move events so we know exatly where to place hovetips - targets.mousemove(hovertipMouseUpdate); - - // prepare the tooltip element - // is it bad form to call $(this) here? - if (!this.ht.tip) - this.ht.tip = tipPrepare($(this), config); - } - - }) - ; -}; - -/** - * Here's an example ready function which shows how to enable tooltips. - * - * You can make this considerably shorter by choosing only the markup style(s) - * you will use. - * - * You may also remove the code that wraps hovertips to produce drop-shadow FX - * - * Invoke this function or one like it from your $(document).ready(). - * - * Here, we break the action up into several timout callbacks, to avoid - * locking up browsers. - */ -function hovertipInit() { - // specify the attribute name we use for our clicktips - var clicktipConfig = {'attribute':'clicktip'}; - - /** - * To enable this style of markup (id on tooltip): - * target... - *
blah blah
- */ - window.setTimeout(function() { - $('.clicktip').hovertipActivate(clicktipConfig, - targetSelectById, - clicktipPrepareWithCloseLink, - clicktipTargetPrepare); - }, 0); - - /** - * To enable this style of markup (id on target): - * target... - *
blah blah
- */ - window.setTimeout(function() { - $('.clicktip').hovertipActivate(clicktipConfig, - targetSelectByTargetAttribute, - clicktipPrepareWithCloseLink, - clicktipTargetPrepare); - }, 0); - - // specify our configuration for hovertips, including delay times (millisec) - var hovertipConfig = {'attribute':'hovertip', - 'showDelay': 300, - 'hideDelay': 700}; - - // use
blah blah
- var hovertipSelect = 'div.hovertip'; - - // OPTIONAL: here we wrap each hovertip to apply special effect. (i.e. drop shadow): - $(hovertipSelect).css('display', 'block').addClass('hovertip_wrap3'). - wrap("
" + - "
").each(function() { - // fix class and attributes for newly wrapped elements - var tooltip = this.parentNode.parentNode.parentNode; - if (this.getAttribute('target')) - tooltip.setAttribute('target', this.getAttribute('target')); - if (this.getAttribute('id')) { - var id = this.getAttribute('id'); - this.removeAttribute('id'); - tooltip.setAttribute('id', id); - } - }); - hovertipSelect = 'div.hovertip_wrap0'; - - // end optional FX section - - /** - * To enable this style of markup (id on tooltip): - * target... - *
blah blah
- */ - window.setTimeout(function() { - $(hovertipSelect).hovertipActivate(hovertipConfig, - targetSelectById, - hovertipPrepare, - hovertipTargetPrepare); - }, 0); - - /** - * To enable this style of markup (id on target): - * target... - *
blah blah
- */ - window.setTimeout(function() { - $(hovertipSelect).hovertipActivate(hovertipConfig, - targetSelectByTargetAttribute, - hovertipPrepare, - hovertipTargetPrepare); - }, 0); - - /** - * This next section enables this style of markup: - * targetblah blah - * - * With drop shadow effect. - * - */ - var hovertipSpanSelect = 'span.hovertip'; - // activate hovertips with wrappers for FX (drop shadow): - $(hovertipSpanSelect).css('display', 'block').addClass('hovertip_wrap3'). - wrap("" + - "").each(function() { - // fix class and attributes for newly wrapped elements - var tooltip = this.parentNode.parentNode.parentNode; - if (this.getAttribute('target')) - tooltip.setAttribute('target', this.getAttribute('target')); - if (this.getAttribute('id')) { - var id = this.getAttribute('id'); - this.removeAttribute('id'); - tooltip.setAttribute('id', id); - } - }); - hovertipSpanSelect = 'span.hovertip_wrap0'; - - window.setTimeout(function() { - $(hovertipSpanSelect) - .hovertipActivate(hovertipConfig, - targetSelectByPrevious, - hovertipPrepare, - hovertipTargetPrepare); - }, 0); -} diff --git a/js/jquery.layout.min.js b/js/jquery.layout.min.js deleted file mode 100755 index b5bc6b3f9..000000000 --- a/js/jquery.layout.min.js +++ /dev/null @@ -1,142 +0,0 @@ -/* - jquery.layout 1.3.0 - Release Candidate 30.79 - $Date: 2013-01-01 08:00:00 (Tue, 1 Jan 2013) $ - $Rev: 303007 $ - - Copyright (c) 2013 Kevin Dalman (http://allpro.net) - Based on work by Fabrizio Balliano (http://www.fabrizioballiano.net) - - Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) - and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. - - SEE: http://layout.jquery-dev.net/LICENSE.txt - - Changelog: http://layout.jquery-dev.net/changelog.cfm#1.3.0.rc30.79 - - Docs: http://layout.jquery-dev.net/documentation.html - Tips: http://layout.jquery-dev.net/tips.html - Help: http://groups.google.com/group/jquery-ui-layout -*/ -(function(b){var a=Math.min,d=Math.max,c=Math.floor,f=function(a){return"string"===b.type(a)},j=function(a,d){if(b.isArray(d))for(var c=0,j=d.length;c').appendTo("body"),c={width:d.css("width")-d[0].clientWidth,height:d.height()-d[0].clientHeight}; -d.remove();window.scrollbarWidth=c.width;window.scrollbarHeight=c.height;return a.match(/^(width|height)$/)?c[a]:c},showInvisibly:function(b,a){if(b&&b.length&&(a||"none"===b.css("display"))){var d=b[0].style,d={display:d.display||"",visibility:d.visibility||""};b.css({display:"block",visibility:"hidden"});return d}return{}},getElementDimensions:function(a,c){var f={css:{},inset:{}},j=f.css,h={bottom:0},k=b.layout.cssNum,p=a.offset(),O,R,D;f.offsetLeft=p.left;f.offsetTop=p.top;c||(c={});b.each(["Left", -"Right","Top","Bottom"],function(d,k){O=j["border"+k]=b.layout.borderWidth(a,k);R=j["padding"+k]=b.layout.cssNum(a,"padding"+k);D=k.toLowerCase();f.inset[D]=0<=c[D]?c[D]:R;h[D]=f.inset[D]+O});j.width=a.width();j.height=a.height();j.top=k(a,"top",!0);j.bottom=k(a,"bottom",!0);j.left=k(a,"left",!0);j.right=k(a,"right",!0);f.outerWidth=a.outerWidth();f.outerHeight=a.outerHeight();f.innerWidth=d(0,f.outerWidth-h.left-h.right);f.innerHeight=d(0,f.outerHeight-h.top-h.bottom);f.layoutWidth=a.innerWidth(); -f.layoutHeight=a.innerHeight();return f},getElementStyles:function(b,a){var d={},c=b[0].style,f=a.split(","),k=["Top","Bottom","Left","Right"],j=["Color","Style","Width"],h,p,D,x,A,r;for(x=0;xA;A++)if(p=k[A],"border"===h)for(r=0;3>r;r++)D=j[r],d[h+p+D]=c[h+p+D];else d[h+p]=c[h+p];else d[h]=c[h];return d},cssWidth:function(a,c){if(0>=c)return 0;var f=!b.layout.browser.boxModel?"border-box":b.support.boxSizing?a.css("boxSizing"): -"content-box",j=b.layout.borderWidth,h=b.layout.cssNum,k=c;"border-box"!==f&&(k-=j(a,"Left")+j(a,"Right"));"content-box"===f&&(k-=h(a,"paddingLeft")+h(a,"paddingRight"));return d(0,k)},cssHeight:function(a,c){if(0>=c)return 0;var f=!b.layout.browser.boxModel?"border-box":b.support.boxSizing?a.css("boxSizing"):"content-box",j=b.layout.borderWidth,h=b.layout.cssNum,k=c;"border-box"!==f&&(k-=j(a,"Top")+j(a,"Bottom"));"content-box"===f&&(k-=h(a,"paddingTop")+h(a,"paddingBottom"));return d(0,k)},cssNum:function(a, -d,c){a.jquery||(a=b(a));var f=b.layout.showInvisibly(a);d=b.css(a[0],d,!0);c=c&&"auto"==d?d:Math.round(parseFloat(d)||0);a.css(f);return c},borderWidth:function(a,d){a.jquery&&(a=a[0]);var c="border"+d.substr(0,1).toUpperCase()+d.substr(1);return"none"===b.css(a,c+"Style",!0)?0:Math.round(parseFloat(b.css(a,c+"Width",!0))||0)},isMouseOverElem:function(a,d){var c=b(d||this),f=c.offset(),j=f.top,f=f.left,k=f+c.outerWidth(),c=j+c.outerHeight(),h=a.pageX,p=a.pageY;return b.layout.browser.msie&&0>h&&0> -p||h>=f&&h<=k&&p>=j&&p<=c},msg:function(a,d,c,f){b.isPlainObject(a)&&window.debugData?("string"===typeof d?(f=c,c=d):"object"===typeof c&&(f=c,c=null),c=c||"log( )",f=b.extend({sort:!1,returnHTML:!1,display:!1},f),!0===d||f.display?debugData(a,c,f):window.console&&console.log(debugData(a,c,f))):d?alert(a):window.console?console.log(a):(d=b("#layoutLogger"),d.length||(d=b('
XLayout console.log
    ').appendTo("body"), -d.css("left",b(window).width()-d.outerWidth()-5),b.ui.draggable&&d.draggable({handle:":first-child"})),d.children("ul").append('
  • '+a.replace(/\/g,">")+"
  • "))}};var h=navigator.userAgent.toLowerCase(),p=/(chrome)[ \/]([\w.]+)/.exec(h)||/(webkit)[ \/]([\w.]+)/.exec(h)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(h)||/(msie) ([\w.]+)/.exec(h)||0>h.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(h)|| -[],h=p[1]||"",p=p[2]||0,x="msie"===h;b.layout.browser={version:p,safari:"webkit"===h,webkit:"chrome"===h,msie:x,isIE6:x&&6==p,boxModel:!x||!1!==b.support.boxModel};h&&(b.layout.browser[h]=!0);x&&b(function(){b.layout.browser.boxModel=b.support.boxModel});b.layout.defaults={name:"",containerClass:"ui-layout-container",inset:null,scrollToBookmarkOnLoad:!0,resizeWithWindow:!0,resizeWithWindowDelay:200,resizeWithWindowMaxDelay:0,maskPanesEarly:!1,onresizeall_start:null,onresizeall_end:null,onload_start:null, -onload_end:null,onunload_start:null,onunload_end:null,initPanes:!0,showErrorMessages:!0,showDebugMessages:!1,zIndex:null,zIndexes:{pane_normal:0,content_mask:1,resizer_normal:2,pane_sliding:100,pane_animate:1E3,resizer_drag:1E4},errors:{pane:"pane",selector:"selector",addButtonError:"Error Adding Button\nInvalid ",containerMissing:"UI Layout Initialization Error\nThe specified layout-container does not exist.",centerPaneMissing:"UI Layout Initialization Error\nThe center-pane element does not exist.\nThe center-pane is a required element.", -noContainerHeight:"UI Layout Initialization Warning\nThe layout-container \"CONTAINER\" has no height.\nTherefore the layout is 0-height and hence 'invisible'!",callbackError:"UI Layout Callback Error\nThe EVENT callback is not a valid function."},panes:{applyDemoStyles:!1,closable:!0,resizable:!0,slidable:!0,initClosed:!1,initHidden:!1,contentSelector:".ui-layout-content",contentIgnoreSelector:".ui-layout-ignore",findNestedContent:!1,paneClass:"ui-layout-pane",resizerClass:"ui-layout-resizer",togglerClass:"ui-layout-toggler", -buttonClass:"ui-layout-button",minSize:0,maxSize:0,spacing_open:6,spacing_closed:6,togglerLength_open:50,togglerLength_closed:50,togglerAlign_open:"center",togglerAlign_closed:"center",togglerContent_open:"",togglerContent_closed:"",resizerDblClickToggle:!0,autoResize:!0,autoReopen:!0,resizerDragOpacity:1,maskContents:!1,maskObjects:!1,maskZindex:null,resizingGrid:!1,livePaneResizing:!1,liveContentResizing:!1,liveResizingTolerance:1,sliderCursor:"pointer",slideTrigger_open:"click",slideTrigger_close:"mouseleave", -slideDelay_open:300,slideDelay_close:300,hideTogglerOnSlide:!1,preventQuickSlideClose:b.layout.browser.webkit,preventPrematureSlideClose:!1,tips:{Open:"Open",Close:"Close",Resize:"Resize",Slide:"Slide Open",Pin:"Pin",Unpin:"Un-Pin",noRoomToOpen:"Not enough room to show this panel.",minSizeWarning:"Panel has reached its minimum size",maxSizeWarning:"Panel has reached its maximum size"},showOverflowOnHover:!1,enableCursorHotkey:!0,customHotkeyModifier:"SHIFT",fxName:"slide",fxSpeed:null,fxSettings:{}, -fxOpacityFix:!0,animatePaneSizing:!1,children:null,containerSelector:"",initChildren:!0,destroyChildren:!0,resizeChildren:!0,triggerEventsOnLoad:!1,triggerEventsDuringLiveResize:!0,onshow_start:null,onshow_end:null,onhide_start:null,onhide_end:null,onopen_start:null,onopen_end:null,onclose_start:null,onclose_end:null,onresize_start:null,onresize_end:null,onsizecontent_start:null,onsizecontent_end:null,onswap_start:null,onswap_end:null,ondrag_start:null,ondrag_end:null},north:{paneSelector:".ui-layout-north", -size:"auto",resizerCursor:"n-resize",customHotkey:""},south:{paneSelector:".ui-layout-south",size:"auto",resizerCursor:"s-resize",customHotkey:""},east:{paneSelector:".ui-layout-east",size:200,resizerCursor:"e-resize",customHotkey:""},west:{paneSelector:".ui-layout-west",size:200,resizerCursor:"w-resize",customHotkey:""},center:{paneSelector:".ui-layout-center",minWidth:0,minHeight:0}};b.layout.optionsMap={layout:"name instanceKey stateManagement effects inset zIndexes errors zIndex scrollToBookmarkOnLoad showErrorMessages maskPanesEarly outset resizeWithWindow resizeWithWindowDelay resizeWithWindowMaxDelay onresizeall onresizeall_start onresizeall_end onload onload_start onload_end onunload onunload_start onunload_end".split(" "), -center:"paneClass contentSelector contentIgnoreSelector findNestedContent applyDemoStyles triggerEventsOnLoad showOverflowOnHover maskContents maskObjects liveContentResizing containerSelector children initChildren resizeChildren destroyChildren onresize onresize_start onresize_end onsizecontent onsizecontent_start onsizecontent_end".split(" "),noDefault:["paneSelector","resizerCursor","customHotkey"]};b.layout.transformData=function(a,d){var c=d?{panes:{},center:{}}:{},f,j,k,h,p,x,D;if("object"!== -typeof a)return c;for(j in a){f=c;p=a[j];k=j.split("__");D=k.length-1;for(x=0;x<=D;x++)h=k[x],x===D?f[h]=b.isPlainObject(p)?b.layout.transformData(p):p:(f[h]||(f[h]={}),f=f[h])}return c};b.layout.backwardCompatibility={map:{applyDefaultStyles:"applyDemoStyles",childOptions:"children",initChildLayout:"initChildren",destroyChildLayout:"destroyChildren",resizeChildLayout:"resizeChildren",resizeNestedLayout:"resizeChildren",resizeWhileDragging:"livePaneResizing",resizeContentWhileDragging:"liveContentResizing", -triggerEventsWhileDragging:"triggerEventsDuringLiveResize",maskIframesOnResize:"maskContents",useStateCookie:"stateManagement.enabled","cookie.autoLoad":"stateManagement.autoLoad","cookie.autoSave":"stateManagement.autoSave","cookie.keys":"stateManagement.stateKeys","cookie.name":"stateManagement.cookie.name","cookie.domain":"stateManagement.cookie.domain","cookie.path":"stateManagement.cookie.path","cookie.expires":"stateManagement.cookie.expires","cookie.secure":"stateManagement.cookie.secure", -noRoomToOpenTip:"tips.noRoomToOpen",togglerTip_open:"tips.Close",togglerTip_closed:"tips.Open",resizerTip:"tips.Resize",sliderTip:"tips.Slide"},renameOptions:function(a){function d(b,c){for(var f=b.split("."),k=f.length-1,j={branch:a,key:f[k]},r=0,q;rw)return!0;var m={38:"north",40:"south",37:"west",39:"east"},a=e.shiftKey,g=e.ctrlKey,t,n,d,c;g&&(37<=w&&40>=w)&&r[m[w]].enableCursorHotkey?c=m[w]:(g||a)&&b.each(k.borderPanes,function(e, -b){t=r[b];n=t.customHotkey;d=t.customHotkeyModifier;if(a&&"SHIFT"==d||g&&"CTRL"==d||g&&a)if(n&&w===(isNaN(n)||9>=n?n.toUpperCase().charCodeAt(0):n))return c=b,!1});if(!c||!y[c]||!r[c].closable||q[c].isHidden)return!0;na(c);e.stopPropagation();return e.returnValue=!1}function x(e){if(H()){this&&this.tagName&&(e=this);var w;f(e)?w=y[e]:b(e).data("layoutRole")?w=b(e):b(e).parents().each(function(){if(b(this).data("layoutRole"))return w=b(this),!1});if(w&&w.length){var m=w.data("layoutEdge");e=q[m];e.cssSaved&& -X(m);if(e.isSliding||e.isResizing||e.isClosed)e.cssSaved=!1;else{var a={zIndex:r.zIndexes.resizer_normal+1},g={},t=w.css("overflow"),n=w.css("overflowX"),d=w.css("overflowY");"visible"!=t&&(g.overflow=t,a.overflow="visible");n&&!n.match(/(visible|auto)/)&&(g.overflowX=n,a.overflowX="visible");d&&!d.match(/(visible|auto)/)&&(g.overflowY=n,a.overflowY="visible");e.cssSaved=g;w.css(a);b.each(k.allPanes,function(e,b){b!=m&&X(b)})}}}}function X(e){if(H()){this&&this.tagName&&(e=this);var w;f(e)?w=y[e]: -b(e).data("layoutRole")?w=b(e):b(e).parents().each(function(){if(b(this).data("layoutRole"))return w=b(this),!1});if(w&&w.length){e=w.data("layoutEdge");e=q[e];var m=e.cssSaved||{};!e.isSliding&&!e.isResizing&&w.css("zIndex",r.zIndexes.pane_normal);w.css(m);e.cssSaved=!1}}}var G=b.layout.browser,k=b.layout.config,Q=b.layout.cssWidth,O=b.layout.cssHeight,R=b.layout.getElementDimensions,D=b.layout.getElementStyles,Ma=b.layout.getEventObject,A=b.layout.parsePaneName,r=b.extend(!0,{},b.layout.defaults); -r.effects=b.extend(!0,{},b.layout.effects);var q={id:"layout"+b.now(),initialized:!1,paneResizing:!1,panesSliding:{},container:{innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0,layoutWidth:0,layoutHeight:0},north:{childIdx:0},south:{childIdx:0},east:{childIdx:0},west:{childIdx:0},center:{childIdx:0}},ba={north:null,south:null,east:null,west:null,center:null},M={data:{},set:function(e,b,m){M.clear(e);M.data[e]=setTimeout(b,m)},clear:function(e){var b=M.data;b[e]&&(clearTimeout(b[e]),delete b[e])}}, -ca=function(e,w,m){var a=r;(a.showErrorMessages&&!m||m&&a.showDebugMessages)&&b.layout.msg(a.name+" / "+e,!1!==w);return!1},C=function(e,w,m){var a=w&&f(w),g=a?q[w]:q,t=a?r[w]:r,n=r.name,d=e+(e.match(/_/)?"":"_end"),c=d.match(/_end$/)?d.substr(0,d.length-4):"",l=t[d]||t[c],h="NC",k=[];!a&&"boolean"===b.type(w)&&(m=w,w="");if(l)try{f(l)&&(l.match(/,/)?(k=l.split(","),l=eval(k[0])):l=eval(l)),b.isFunction(l)&&(h=k.length?l(k[1]):a?l(w,y[w],g,t,n):l(z,g,t,n))}catch(j){ca(r.errors.callbackError.replace(/EVENT/, -b.trim((w||"")+" "+d)),!1),"string"===b.type(j)&&string.length&&ca("Exception: "+j,!1)}!m&&!1!==h&&(a?(m=y[w],t=r[w],g=q[w],m.triggerHandler("layoutpane"+d,[w,m,g,t,n]),c&&m.triggerHandler("layoutpane"+c,[w,m,g,t,n])):(u.triggerHandler("layout"+d,[z,g,t,n]),c&&u.triggerHandler("layout"+c,[z,g,t,n])));a&&"onresize_end"===e&&db(w+"",!0);return h},eb=function(e){if(!G.mozilla){var b=y[e];"IFRAME"===q[e].tagName?b.css(k.hidden).css(k.visible):b.find("IFRAME").css(k.hidden).css(k.visible)}},ya=function(e){var b= -y[e];e=k[e].dir;b={minWidth:1001-Q(b,1E3),minHeight:1001-O(b,1E3)};"horz"===e&&(b.minSize=b.minHeight);"vert"===e&&(b.minSize=b.minWidth);return b},fa=function(e,w,m){m||(m=k[e].dir);f(w)&&w.match(/%/)&&(w="100%"===w?-1:parseInt(w,10)/100);if(0===w)return 0;if(1<=w)return parseInt(w,10);var a=r,g=0;"horz"==m?g=v.innerHeight-(y.north?a.north.spacing_open:0)-(y.south?a.south.spacing_open:0):"vert"==m&&(g=v.innerWidth-(y.west?a.west.spacing_open:0)-(y.east?a.east.spacing_open:0));if(-1===w)return g; -if(0b&&(b=100);M.clear("winResize");M.set("winResize",function(){M.clear("winResize");M.clear("winResizeRepeater");var b=R(u,e.inset);(b.innerWidth!==v.innerWidth||b.innerHeight!==v.innerHeight)&&oa()},b);M.data.winResizeRepeater||lb()},lb=function(){var e= -Number(r.resizeWithWindowMaxDelay);0"),l=l.toggler=g.closable?P[a]=b("
    "):!1;!d.isVisible&&g.slidable&&j.attr("title",g.tips.Slide).css("cursor",g.sliderCursor);j.attr("id",c?c+"-resizer":"").data({parentLayout:z,layoutPane:z[a],layoutEdge:a,layoutRole:"resizer"}).css(k.resizers.cssReq).css("zIndex",r.zIndexes.resizer_normal).css(g.applyDemoStyles?k.resizers.cssDemo:{}).addClass(n+" "+n+h).hover(Oa,da).hover(fb,gb).appendTo(u); -g.resizerDblClickToggle&&j.bind("dblclick."+K,na);l&&(l.attr("id",c?c+"-toggler":"").data({parentLayout:z,layoutPane:z[a],layoutEdge:a,layoutRole:"toggler"}).css(k.togglers.cssReq).css(g.applyDemoStyles?k.togglers.cssDemo:{}).addClass(f+" "+f+h).hover(Oa,da).bind("mouseenter",fb).appendTo(j),g.togglerContent_open&&b(""+g.togglerContent_open+"").data({layoutEdge:a,layoutRole:"togglerContent"}).data("layoutRole","togglerContent").data("layoutEdge",a).addClass("content content-open").css("display", -"none").appendTo(l),g.togglerContent_closed&&b(""+g.togglerContent_closed+"").data({layoutEdge:a,layoutRole:"togglerContent"}).addClass("content content-closed").css("display","none").appendTo(l),pb(a));var g=a,B=b.layout.plugins.draggable,g=g?g.split(","):k.borderPanes;b.each(g,function(e,a){var g=r[a];if(!B||!y[a]||!g.resizable)return g.resizable=!1,!0;var m=q[a],w=r.zIndexes,d=k[a],c="horz"==d.dir?"top":"left",t=F[a],n=g.resizerClass,f=0,l,h,E=n+"-drag",j=n+"-"+a+"-drag",J=n+"-dragging", -zb=n+"-"+a+"-dragging",cb=n+"-dragging-limit",v=n+"-"+a+"-dragging-limit",x=!1;m.isClosed||t.attr("title",g.tips.Resize).css("cursor",g.resizerCursor);t.draggable({containment:u[0],axis:"horz"==d.dir?"y":"x",delay:0,distance:1,grid:g.resizingGrid,helper:"clone",opacity:g.resizerDragOpacity,addClasses:!1,zIndex:w.resizer_drag,start:function(e,w){g=r[a];m=q[a];h=g.livePaneResizing;if(!1===C("ondrag_start",a))return!1;m.isResizing=!0;q.paneResizing=a;M.clear(a+"_closeSlider");Y(a);l=m.resizerPosition; -f=w.position[c];t.addClass(E+" "+j);x=!1;b("body").disableSelection();va(a,{resizing:!0})},drag:function(e,b){x||(b.helper.addClass(J+" "+zb).css({right:"auto",bottom:"auto"}).children().css("visibility","hidden"),x=!0,m.isSliding&&y[a].css("zIndex",w.pane_sliding));var d=0;b.position[c]l.max&&(b.position[c]=l.max,d=1);d?(b.helper.addClass(cb+" "+v),window.defaultStatus=0d&&a.match(/(south|east)/)?g.tips.maxSizeWarning: -g.tips.minSizeWarning):(b.helper.removeClass(cb+" "+v),window.defaultStatus="");h&&Math.abs(b.position[c]-f)>=g.liveResizingTolerance&&(f=b.position[c],p(e,b,a))},stop:function(e,g){b("body").enableSelection();window.defaultStatus="";t.removeClass(E+" "+j);m.isResizing=!1;q.paneResizing=!1;p(e,g,a,!0)}})});var p=function(b,e,a,g){var m=e.position,w=k[a];b=r[a];e=q[a];var d;switch(a){case "north":d=m.top;break;case "west":d=m.left;break;case "south":d=v.layoutHeight-m.top-b.spacing_open;break;case "east":d= -v.layoutWidth-m.left-b.spacing_open}d-=v.inset[w.side];g?(!1!==C("ondrag_end",a)&&Ca(a,d,!1,!0),za(!0),e.isSliding&&va(a,{resizing:!0})):Math.abs(d-e.size)j.maxSize)return Va(f,!1),!c&&h.tips.noRoomToOpen&&alert(h.tips.noRoomToOpen),a();b?wa(f,!0):j.isSliding?wa(f,!1):h.slidable&&ma(f,!1); -j.noRoom=!1;ha(f);p=j.isShowing;delete j.isShowing;l=!d&&j.isClosed&&"none"!=h.fxName_open;j.isMoving=!0;j.isVisible=!0;j.isClosed=!1;p&&(j.isHidden=!1);l?(Ga(f,!0),n.show(h.fxName_open,h.fxSettings_open,h.fxSpeed_open,function(){Ga(f,!1);j.isVisible&&g();a()})):(rb(f),g(),a())}})}},Ua=function(a,d){var c=y[a],f=F[a],g=P[a],h=r[a],n=q[a],j=k[a].side,p=h.resizerClass,l=h.togglerClass,u="-"+a;f.css(j,v.inset[j]+ga(a)).removeClass(p+"-closed "+p+u+"-closed").addClass(p+"-open "+p+u+"-open");n.isSliding? -f.addClass(p+"-sliding "+p+u+"-sliding"):f.removeClass(p+"-sliding "+p+u+"-sliding");da(0,f);h.resizable&&b.layout.plugins.draggable?f.draggable("enable").css("cursor",h.resizerCursor).attr("title",h.tips.Resize):n.isSliding||f.css("cursor","default");g&&(g.removeClass(l+"-closed "+l+u+"-closed").addClass(l+"-open "+l+u+"-open").attr("title",h.tips.Close),da(0,g),g.children(".content-closed").hide(),g.children(".content-open").css("display","block"));Va(a,!n.isSliding);b.extend(n,R(c));q.initialized&& -(qa(),pa(a,!0));if(!d&&(q.initialized||h.triggerEventsOnLoad)&&c.is(":visible"))C("onopen_end",a),n.isShowing&&C("onshow_end",a),q.initialized&&C("onresize_end",a)},sb=function(a){function b(){g.isClosed?g.isMoving||ra(c,!0):wa(c,!0)}if(H()){var d=Ma(a),c=A.call(this,a),g=q[c];a=r[c].slideDelay_open;d&&d.stopImmediatePropagation();g.isClosed&&d&&"mouseenter"===d.type&&0g.maxSize?ka(a,g.maxSize,c,!0,f):g.sizec?d(0,e.attempt-(e.actual-c)):d(0,e.attempt+(c-e.actual));h.cssSize=("horz"==k[n].dir?O:Q)(y[n],h.attempt);l.css(ua,h.cssSize);h.actual="width"==ua?l.outerWidth():l.outerHeight();h.correct=c===h.actual;1===a.length&&(ca(t,!1,!0),ca(e,!1,!0));ca(h,!1,!0);if(3B.width){var h=h.minWidth-j.outerWidth,B=r.east.minSize||0,x=r.west.minSize||0,Z=q.east.size,z=q.west.size,A=Z,D=z;0B)&&(A=d(Z-B,Z-h),h-=Z-A);0x)&&(D=d(z-x,z-h),h-=z-D);if(0===h){Z&&Z!=B&&ka("east",A,!0,!0,f);z&&z!=x&&ka("west",D,!0,!0,f);ia("center", -c,f);k.css(u);return}}}else{j.isVisible&&!j.noVerticalRoom&&b.extend(j,R(k),ya(e));if(!f&&!j.noVerticalRoom&&B.height===j.outerHeight)return k.css(u),!0;l.top=B.top;l.bottom=B.bottom;j.newSize=B.height;l.height=O(k,B.height);j.maxHeight=l.height;p=0<=j.maxHeight;p||(j.noVerticalRoom=!0)}p?(!c&&q.initialized&&C("onresize_start",e),k.css(l),"center"!==e&&qa(e),j.noRoom&&(!j.isClosed&&!j.isHidden)&&ha(e),j.isVisible&&(b.extend(j,R(k)),q.initialized&&pa(e))):!j.noRoom&&j.isVisible&&ha(e);k.css(u);delete j.newSize; -delete j.newWidth;delete j.newHeight;if(!j.isVisible)return!0;"center"===e&&(j=G.isIE6||!G.boxModel,y.north&&(j||"IFRAME"==q.north.tagName)&&y.north.css("width",Q(y.north,v.innerWidth)),y.south&&(j||"IFRAME"==q.south.tagName)&&y.south.css("width",Q(y.south,v.innerWidth)));!c&&q.initialized&&C("onresize_end",e)}})},oa=function(a){A(a);if(u.is(":visible"))if(q.initialized){if(!0===a&&b.isPlainObject(r.outset)&&u.css(r.outset),b.extend(v,R(u,r.inset)),v.outerHeight){!0===a&&ob();if(!1===C("onresizeall_start"))return!1; -var d,c,f;b.each(["south","north","east","west"],function(a,b){y[b]&&(c=r[b],f=q[b],f.autoResize&&f.size!=c.size?ka(b,c.size,!0,!0,!0):(Y(b),ha(b,!1,!0,!0)))});ia("",!0,!0);qa();b.each(k.allPanes,function(a,b){(d=y[b])&&q[b].isVisible&&C("onresize_end",b)});C("onresizeall_end")}}else Aa()},db=function(a,d){var c=A.call(this,a);r[c].resizeChildren&&(d||Ba(c),c=ba[c],b.isPlainObject(c)&&b.each(c,function(a,b){b.destroyed||b.resizeAll()}))},pa=function(a,c){if(H()){var h=A.call(this,a),h=h?h.split(","): -k.allPanes;b.each(h,function(a,e){function h(a){return d(u.css.paddingBottom,parseInt(a.css("marginBottom"),10)||0)}function j(){var a=r[e].contentIgnoreSelector,a=p.nextAll().not(".ui-layout-mask").not(a||":lt(0)"),b=a.filter(":visible"),d=b.filter(":last");v={top:p[0].offsetTop,height:p.outerHeight(),numFooters:a.length,hiddenFooters:a.length-b.length,spaceBelow:0};v.spaceAbove=v.top;v.bottom=v.top+v.height;v.spaceBelow=d.length?d[0].offsetTop+d.outerHeight()-v.bottom+h(d):h(p)}var m=y[e],p=U[e], -l=r[e],u=q[e],v=u.content;if(!m||!p||!m.is(":visible"))return!0;if(!p.length&&(Sa(e,!1),!p))return;if(!1!==C("onsizecontent_start",e)){if(!u.isMoving&&!u.isResizing||l.liveContentResizing||c||void 0==v.top)j(),0A)x=A,z=0;else if(f(z))switch(z){case "top":case "left":z=0;break;case "bottom":case "right":z=A-x;break; -default:z=c((A-x)/2)}else h=parseInt(z,10),z=0<=z?h:A-x+h;if("horz"===l){var D=Q(p,x);p.css({width:D,height:O(p,B),left:z,top:0});p.children(".content").each(function(){u=b(this);u.css("marginLeft",c((D-u.outerWidth())/2))})}else{var C=O(p,x);p.css({height:C,width:Q(p,B),top:z,left:0});p.children(".content").each(function(){u=b(this);u.css("marginTop",c((C-u.outerHeight())/2))})}da(0,p)}if(!q.initialized&&(e.initHidden||g.isHidden))j.hide(),p&&p.hide()}}})},pb=function(a){if(H()){var b=A.call(this, -a);a=P[b];var d=r[b];a&&(d.closable=!0,a.bind("click."+K,function(a){a.stopPropagation();na(b)}).css("visibility","visible").css("cursor","pointer").attr("title",q[b].isClosed?d.tips.Open:d.tips.Close).show())}},Va=function(a,d){b.layout.plugins.buttons&&b.each(q[a].pins,function(c,f){b.layout.buttons.setPinState(z,b(f),a,d)})},u=b(this).eq(0);if(!u.length)return ca(r.errors.containerMissing);if(u.data("layoutContainer")&&u.data("layout"))return u.data("layout");var y={},U={},F={},P={},ea=b([]),v= -q.container,K=q.id,z={options:r,state:q,container:u,panes:y,contents:U,resizers:F,togglers:P,hide:Ta,show:Fa,toggle:na,open:ra,close:ja,slideOpen:sb,slideClose:Wa,slideToggle:function(a){a=A.call(this,a);na(a,!0)},setSizeLimits:Y,_sizePane:ka,sizePane:Ca,sizeContent:pa,swapPanes:function(a,c){function f(a){var d=y[a],c=U[a];return!d?!1:{pane:a,P:d?d[0]:!1,C:c?c[0]:!1,state:b.extend(!0,{},q[a]),options:b.extend(!0,{},r[a])}}function h(a,c){if(a){var e=a.P,f=a.C,g=a.pane,j=k[c],m=b.extend(!0,{},q[c]), -n=r[c],w={resizerCursor:n.resizerCursor};b.each(["fxName","fxSpeed","fxSettings"],function(a,b){w[b+"_open"]=n[b+"_open"];w[b+"_close"]=n[b+"_close"];w[b+"_size"]=n[b+"_size"]});y[c]=b(e).data({layoutPane:z[c],layoutEdge:c}).css(k.hidden).css(j.cssReq);U[c]=f?b(f):!1;r[c]=b.extend(!0,{},a.options,w);q[c]=b.extend(!0,{},a.state);e.className=e.className.replace(RegExp(n.paneClass+"-"+g,"g"),n.paneClass+"-"+c);Pa(c);j.dir!=k[g].dir?(e=p[c]||0,Y(c),e=d(e,q[c].minSize),Ca(c,e,!0,!0)):F[c].css(j.side,v.inset[j.side]+ -(q[c].isVisible?ga(c):0));a.state.isVisible&&!m.isVisible?Ua(c,!0):(Da(c),ma(c,!0));a=null}}if(H()){var g=A.call(this,a);q[g].edge=c;q[c].edge=g;if(!1===C("onswap_start",g)||!1===C("onswap_start",c))q[g].edge=g,q[c].edge=c;else{var j=f(g),n=f(c),p={};p[g]=j?j.state.size:0;p[c]=n?n.state.size:0;y[g]=!1;y[c]=!1;q[g]={};q[c]={};P[g]&&P[g].remove();P[c]&&P[c].remove();F[g]&&F[g].remove();F[c]&&F[c].remove();F[g]=F[c]=P[g]=P[c]=!1;h(j,c);h(n,g);j=n=p=null;y[g]&&y[g].css(k.visible);y[c]&&y[c].css(k.visible); -oa();C("onswap_end",g);C("onswap_end",c)}}},showMasks:va,hideMasks:za,initContent:Sa,addPane:ib,removePane:Ra,createChildren:Qa,refreshChildren:Ba,enableClosable:pb,disableClosable:function(a,b){if(H()){var c=A.call(this,a),d=P[c];d&&(r[c].closable=!1,q[c].isClosed&&ra(c,!1,!0),d.unbind("."+K).css("visibility",b?"hidden":"visible").css("cursor","default").attr("title",""))}},enableSlidable:function(a){if(H()){a=A.call(this,a);var b=F[a];b&&b.data("draggable")&&(r[a].slidable=!0,q[a].isClosed&&ma(a, -!0))}},disableSlidable:function(a){if(H()){a=A.call(this,a);var b=F[a];b&&(r[a].slidable=!1,q[a].isSliding?ja(a,!1,!0):(ma(a,!1),b.css("cursor","default").attr("title",""),da(null,b[0])))}},enableResizable:function(a){if(H()){a=A.call(this,a);var b=F[a],c=r[a];b&&b.data("draggable")&&(c.resizable=!0,b.draggable("enable"),q[a].isClosed||b.css("cursor",c.resizerCursor).attr("title",c.tips.Resize))}},disableResizable:function(a){if(H()){a=A.call(this,a);var b=F[a];b&&b.data("draggable")&&(r[a].resizable= -!1,b.draggable("disable").css("cursor","default").attr("title",""),da(null,b[0]))}},allowOverflow:x,resetOverflow:X,destroy:function(a,c){b(window).unbind("."+K);b(document).unbind("."+K);"object"===typeof a?A(a):c=a;u.clearQueue().removeData("layout").removeData("layoutContainer").removeClass(r.containerClass).unbind("."+K);ea.remove();b.each(k.allPanes,function(a,b){Ra(b,!1,!0,c)});u.data("layoutCSS")&&!u.data("layoutRole")&&u.css(u.data("layoutCSS")).removeData("layoutCSS");"BODY"===v.tagName&& -(u=b("html")).data("layoutCSS")&&u.css(u.data("layoutCSS")).removeData("layoutCSS");j(z,b.layout.onDestroy);mb();for(var d in z)d.match(/^(container|options)$/)||delete z[d];z.destroyed=!0;return z},initPanes:H,resizeAll:oa,runCallbacks:C,hasParentLayout:!1,children:ba,north:!1,south:!1,west:!1,east:!1,center:!1},Xa;var V,Ya,N,Ha,la,sa,W;h=b.layout.transformData(h,!0);h=b.layout.backwardCompatibility.renameAllOptions(h);if(!b.isEmptyObject(h.panes)){V=b.layout.optionsMap.noDefault;la=0;for(sa=V.length;la< -sa;la++)N=V[la],delete h.panes[N];V=b.layout.optionsMap.layout;la=0;for(sa=V.length;lab.inArray(N,Bb)&&0>b.inArray(N,V)&&(h.panes[N]||(h.panes[N]=b.isPlainObject(Ha)?b.extend(!0,{},Ha):Ha),delete h[N]);b.extend(!0,r,h);b.each(k.allPanes,function(a,c){k[c]=b.extend(!0,{},k.panes,k[c]);Ya=r.panes;W=r[c];if("center"===c){V=b.layout.optionsMap.center;a=0;for(sa=V.length;av.innerHeight&&ca(L.errors.noContainerHeight.replace(/CONTAINER/,v.ref)))}ta(u,"minWidth")&&u.parent().css("overflowX","auto");ta(u,"minHeight")&&u.parent().css("overflowY","auto")}catch(Db){}nb();b(window).bind("unload."+K,mb);j(z,b.layout.onLoad);Cb.initPanes&&Aa();delete tb.creatingLayout;Xa=q.initialized}return"cancel"===Xa?null:z}})(jQuery); -(function(b){b.ui||(b.ui={});b.ui.cookie={acceptsCookies:!!navigator.cookieEnabled,read:function(a){for(var d=document.cookie,d=d?d.split(";"):[],c,f=0,j=d.length;fb.inArray(T,p)||(S=h[T][I],void 0!=S&&("isClosed"==I&&h[T].isSliding&&(S=!0),(x[T]||(x[T]={}))[j[I]?j[I]:I]=S));f&&b.each(p,function(c,d){G=a.children[d];X=h.stateData[d];b.isPlainObject(G)&&!b.isEmptyObject(G)&&(k=x[d]||(x[d]={}),k.children||(k.children={}),b.each(G,function(a,c){c.state.initialized?k.children[a]=b.layout.state.readState(c): -X&&(X.children&&X.children[a])&&(k.children[a]=b.extend(!0,{},X.children[a]))}))});return x},encodeJSON:function(a){function d(a){var f=[],j=0,h,p,x,I=b.isArray(a);for(h in a)p=a[h],x=typeof p,"string"==x?p='"'+p+'"':"object"==x&&(p=d(p)),f[j++]=(!I?'"'+h+'":':"")+p;return(I?"[":"{")+f.join(",")+(I?"]":"}")}return d(a)},decodeJSON:function(a){try{return b.parseJSON?b.parseJSON(a):window.eval("("+a+")")||{}}catch(d){return{}}},_create:function(a){var d=b.layout.state,c=a.options.stateManagement;b.extend(a, -{readCookie:function(){return d.readCookie(a)},deleteCookie:function(){d.deleteCookie(a)},saveCookie:function(b,c){return d.saveCookie(a,b,c)},loadCookie:function(){return d.loadCookie(a)},loadState:function(b,c){d.loadState(a,b,c)},readState:function(b){return d.readState(a,b)},encodeJSON:d.encodeJSON,decodeJSON:d.decodeJSON});a.state.stateData={};if(c.autoLoad)if(b.isPlainObject(c.autoLoad))b.isEmptyObject(c.autoLoad)||a.loadState(c.autoLoad);else if(c.enabled)if(b.isFunction(c.autoLoad)){var f= -{};try{f=c.autoLoad(a,a.state,a.options,a.options.name||"")}catch(j){}f&&(b.isPlainObject(f)&&!b.isEmptyObject(f))&&a.loadState(f)}else a.loadCookie()},_unload:function(a){var d=a.options.stateManagement;if(d.enabled&&d.autoSave)if(b.isFunction(d.autoSave))try{d.autoSave(a,a.state,a.options,a.options.name||"")}catch(c){}else a.saveCookie()}};b.layout.onCreate.push(b.layout.state._create);b.layout.onUnload.push(b.layout.state._unload);b.layout.plugins.buttons=!0;b.layout.defaults.autoBindCustomButtons= -!1;b.layout.optionsMap.layout.push("autoBindCustomButtons");b.layout.buttons={init:function(a){var d=a.options.name||"",c;b.each("toggle open close pin toggle-slide open-slide".split(" "),function(f,j){b.each(b.layout.config.borderPanes,function(f,p){b(".ui-layout-button-"+j+"-"+p).each(function(){c=b(this).data("layoutName")||b(this).attr("layoutName");(void 0==c||c===d)&&a.bindButton(this,j,p)})})})},get:function(a,d,c,f){var j=b(d);a=a.options;var h=a.errors.addButtonError;j.length?0>b.inArray(c, -b.layout.config.borderPanes)?(b.layout.msg(h+" "+a.errors.pane+": "+c,!0),j=b("")):(d=a[c].buttonClass+"-"+f,j.addClass(d+" "+d+"-"+c).data("layoutName",a.name)):b.layout.msg(h+" "+a.errors.selector+": "+d,!0);return j},bind:function(a,d,c,f){var j=b.layout.buttons;switch(c.toLowerCase()){case "toggle":j.addToggle(a,d,f);break;case "open":j.addOpen(a,d,f);break;case "close":j.addClose(a,d,f);break;case "pin":j.addPin(a,d,f);break;case "toggle-slide":j.addToggle(a,d,f,!0);break;case "open-slide":j.addOpen(a, -d,f,!0)}return a},addToggle:function(a,d,c,f){b.layout.buttons.get(a,d,c,"toggle").click(function(b){a.toggle(c,!!f);b.stopPropagation()});return a},addOpen:function(a,d,c,f){b.layout.buttons.get(a,d,c,"open").attr("title",a.options[c].tips.Open).click(function(b){a.open(c,!!f);b.stopPropagation()});return a},addClose:function(a,d,c){b.layout.buttons.get(a,d,c,"close").attr("title",a.options[c].tips.Close).click(function(b){a.close(c);b.stopPropagation()});return a},addPin:function(a,d,c){var f=b.layout.buttons, -j=f.get(a,d,c,"pin");if(j.length){var h=a.state[c];j.click(function(d){f.setPinState(a,b(this),c,h.isSliding||h.isClosed);h.isSliding||h.isClosed?a.open(c):a.close(c);d.stopPropagation()});f.setPinState(a,j,c,!h.isClosed&&!h.isSliding);h.pins.push(d)}return a},setPinState:function(a,b,c,f){var j=b.attr("pin");if(!(j&&f===("down"==j))){a=a.options[c];var j=a.buttonClass+"-pin",h=j+"-"+c;c=j+"-up "+h+"-up";j=j+"-down "+h+"-down";b.attr("pin",f?"down":"up").attr("title",f?a.tips.Unpin:a.tips.Pin).removeClass(f? -c:j).addClass(f?j:c)}},syncPinBtns:function(a,d,c){b.each(a.state[d].pins,function(f,j){b.layout.buttons.setPinState(a,b(j),d,c)})},_load:function(a){var d=b.layout.buttons;b.extend(a,{bindButton:function(b,c,h){return d.bind(a,b,c,h)},addToggleBtn:function(b,c,h){return d.addToggle(a,b,c,h)},addOpenBtn:function(b,c,h){return d.addOpen(a,b,c,h)},addCloseBtn:function(b,c){return d.addClose(a,b,c)},addPinBtn:function(b,c){return d.addPin(a,b,c)}});for(var c=0;4>c;c++)a.state[b.layout.config.borderPanes[c]].pins= -[];a.options.autoBindCustomButtons&&d.init(a)},_unload:function(){}};b.layout.onLoad.push(b.layout.buttons._load);b.layout.plugins.browserZoom=!0;b.layout.defaults.browserZoomCheckInterval=1E3;b.layout.optionsMap.layout.push("browserZoomCheckInterval");b.layout.browserZoom={_init:function(a){!1!==b.layout.browserZoom.ratio()&&b.layout.browserZoom._setTimer(a)},_setTimer:function(a){if(!a.destroyed){var d=a.options,c=a.state,f=a.hasParentLayout?5E3:Math.max(d.browserZoomCheckInterval,100);setTimeout(function(){if(!a.destroyed&& -d.resizeWithWindow){var f=b.layout.browserZoom.ratio();f!==c.browserZoom&&(c.browserZoom=f,a.resizeAll());b.layout.browserZoom._setTimer(a)}},f)}},ratio:function(){function a(a,b){return(100*(parseInt(a,10)/parseInt(b,10))).toFixed()}var d=window,c=screen,f=document,j=f.documentElement||f.body,h=b.layout.browser,p=h.version,x,I,T;return h.msie&&8