Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Rewriting code base

-Buzzmap object
-Multiple root nodes
  • Loading branch information...
commit 14a60675465e85d8550ea545838ac355dfa4f3a8 1 parent ad2d8ed
@marcelklehr authored
View
8 LICENSE
@@ -1,10 +1,12 @@
-buzzmap
-javascript mindmapping tool
+buzzmap - javascript mindmapping tool
Copyright (c) 2001 Marcel Klehr
-baseed on js-mindmap
+based on "js-mindmap"
Copyright (c) 2008/09/10 Kenneth Kufluk
+This program makes use of "MicroEvent"
+Copyright (c) 2011 Jerome Etienne, http://jetienne.com
+
MIT LICENSE
View
42 README.md
@@ -1,17 +1,37 @@
-# buzzmap #
+# buzzmap
+fluid mindmaps in javascript (jquery plugin)
+Copyright (c) 2011 Marcel Klehr
-javascript mindmapping tool (jquery plugin)
+based on "js-mindmap"
+Copyright (c) 2008/09/10 Kenneth Kufluk http://kenneth.kufluk.com/
-Copyright (c) 2001 Marcel Klehr
+This program makes use of "MicroEvent"
+Copyright (c) 2011 Jerome Etienne, http://jetienne.com
-based on js-mindmap
-
-Copyright (c) 2008/09/10 Kenneth Kufluk
-
-## Features ##
- - Nodes are dragable and moving as though they we're floating in water.
+## Features
+ - Draggable nodes
+ - Realistic animation (nodes look like floating in water)
- Loads mindmap from HTML or JSON data
+ - Callbacks for many operations
+ - Fully and intuitively editable in edit mode
-## Requirements ##
+## Requirements
- jQuery
- - Raphael
+ - jQueryUI
+ - Raphael
+
+## Documentation
+See the [wiki](http://github.com/marcelklehr/buzzmap/wiki) for more information about how to install and use **buzzmap**.
+
+## Issues
+Submit any bugs and feature requests to the [bug tracker](http://github.com/marcelklehr/buzzmap/issues)
+
+## Changelog
+1.8:
+
+- Now more than one root nodes are possible
+- Fixed a strange behaviour (some nodes weren't moving until being dragged)
+- There's now a CSS class for root nodes ('root')
+- Root nodes' children can no longer be hidden
+- New event system (MicroEvent)
+- New class 'Buzzmap'
View
879 buzzmap.js
@@ -2,8 +2,12 @@
* buzzmap
* Copyright (c) 2011 Marcel Klehr
*
- * based on js-mindmap
+ * based on "js-mindmap"
* Copyright (c) 2008/09/10 Kenneth Kufluk http://kenneth.kufluk.com/
+ *
+ * This program makes use of "MicroEvent - to make any js object an event emitter (server or browser)"
+ * Copyright (c) 2011 Jerome Etienne, http://jetienne.com
+ *
*
* MIT (X11) license
*
@@ -16,7 +20,7 @@
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
-
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -26,78 +30,136 @@
* THE SOFTWARE.
*/
(function ($) {
+ var MicroEvent = function(){}
+ MicroEvent.prototype = {
+ bind : function(event, fct){
+ this._events = this._events || {};
+ this._events[event] = this._events[event] || [];
+ this._events[event].push(fct);
+ },
+ unbind : function(event, fct){
+ this._events = this._events || {};
+ if( event in this._events === false ) return;
+ this._events[event].splice(this._events[event].indexOf(fct), 1);
+ },
+ trigger : function(event /* , args... */){
+ this._events = this._events || {};
+ if( event in this._events === false ) return;
+ for(var i = 0; i < this._events[event].length; i++){
+ this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1))
+ }
+ }
+ };
+
+ MicroEvent.mixin = function(destObject){
+ var props = ['bind', 'unbind', 'trigger'];
+ for(var i = 0; i < props.length; i ++){
+ destObject.prototype[props[i]] = MicroEvent.prototype[props[i]];
+ }
+ };
+
+ function Line(obj, startNode, endNode)
+ {
+ this.obj = obj;
+ this.start = startNode;
+ this.end = endNode;
+ };
-/* Define Node */
- var Node = function (obj, info, parent)
+ Line.prototype.updatePosition = function ()
{
+ if (!this.start.visible || !this.end.visible)
+ return;
+ this.strokeStyle = this.obj.options.lineColor;
+ this.strokeWidth = this.obj.options.lineWidth;
+ this.strokeOpacity = this.obj.options.lineOpacity;
- /* Define Properties */
- this.obj = obj;
- this.info = info;
+ var c = this.obj.canvas.path("M"+this.start.x+' '+this.start.y+"L"+this.end.x+' '+this.end.y)
+ .attr({stroke: this.strokeStyle, opacity: this.strokeOpacity, 'stroke-width': this.strokeWidth});
+ };
+
+ var Node = function (obj, parent, label)
+ {
+ var thisnode = this;
+
+ // Define Properties
+ this.obj = obj;// root ul
this.parent = parent;
this.children = [];
-
- // animation handling
- this.moving = false;
- this.editing = false;
- this.moveTimer = 0;
- this.obj.movementStopped = false;
- this.visible = true;
- this.hasLayout = true;
- this.x = 1;
+ this.visible = false;
+ this.moveTimer = 0;
+
+ // Vectors
+ this.x = 1;
this.y = 1;
this.dx = 0;
this.dy = 0;
- this.hasPosition = false;
-
- /* create the html element*/
- this.el = $('<div>'+this.info+'</div>');
+
+ // Define States
+ this.editing = false;
+ this.dragging = false;
+ this.hasPosition = false;// node position calculated?
+
+ // create the node element
+ this.el = $('<div></div>');
this.el.css('position','absolute');
this.el.addClass('node');
- $('.buzzmap-active').prepend(this.el);
-
- /* root node */
- if(!this.parent)
- {
- // make active
- this.el.addClass('active');
- }
- /* child node */
- else
- {
- // draw a line to parent
- this.obj.lines[this.obj.lines.length] = new Line(obj, this, parent);
- // say hello to parent
- this.parent.children.push(this);
- }
-
- /* make node interactive */
- var thisnode = this;
- var opennode = function (event)
- {
- // toggle active
- if(thisnode.children.length > 0)
+ this.obj.el.prepend(this.el);
+ this.el.hide();
+
+ // label
+ this.label(label);
+
+ // root node?
+ if(!this.parent)// mighty root node
+ {
+ this.el.addClass('active');
+ }else
+ {
+ this.parent.children.push(this);
+
+ if(!this.parent.parent)// visible root
+ {
+ this.el.addClass('active');
+ this.el.addClass('root');
+ }
+ else// child nodes
+ {
+ this.obj.lines[this.obj.lines.length] = new Line(obj, this, parent);
+ }
+ }
+
+ // click
+ this.el.mouseup(function () {
+ if(thisnode.editing == true || thisnode.dragging == true)
+ return true;
+
+ if(thisnode.obj.options.editable !== true)
{
- thisnode.el.toggleClass('active');
- thisnode.obj.root.animateToStatic();
- return false;
- }
-
- return true;
- };
-
- // drag
+ thisnode.toggleChildren();
+ return true;
+ }
+
+ // edit mode: little puffer time for enabling dblclick
+ window.setTimeout(function() {
+ thisnode.toggleChildren();
+ },200);
+
+ return true;
+ });
+
+ // drag
this.el.draggable({
- drag:function ()
- {
- // execute ondrag callback
- if (typeof(thisnode.obj.options.ondrag) === 'function')
- {
- thisnode.obj.options.ondrag(thisnode.obj.root);
- }
- // animate map
- thisnode.obj.root.animateToStatic();
- }
+ cancel: ':input,option,button,a',
+ start: function() {
+ thisnode.dragging = true;
+ },
+ drag: function () {
+ thisnode.obj.trigger('ondrag', thisnode);
+ thisnode.obj.animate();
+ },
+ stop: function() {
+ thisnode.dragging = false;
+ }
});
// edit
@@ -105,108 +167,90 @@
{
this.el.dblclick(function (event)
{
+ thisnode.el.addClass('active');
thisnode.editing = true;
+ thisnode.obj.editing = true;
thisnode.edit();
+ thisnode.obj.animate();
});
}
-
- // click
- this.el.click(function (event)
- {
- if(thisnode.obj.options.editable === true)
- {
- //little puffer time for enabling dblclick
- setTimeout(function() {
- if(thisnode.editing === true)
- return false;
- opennode();
- },500);
- }else
+ };
+
+ Node.prototype.toggleChildren = function () {
+ // toggle active
+ if(this.children.length > 0 && this.parent.parent)
{
- opennode();
+ this.el.toggleClass('active');
+ this.obj.animate();
+ return false;
}
return true;
- });
- };
-
- // serialize (recursive)
+ };
+
+ Node.prototype.label = function(label) {
+ if(typeof(label) !== 'undefined') {
+ this.el.html($(label));
+ }
+ return $(':eq(0)', this.el).html();
+ };
+
+ // serialize (recursive)
Node.prototype.serialize = function ()
{
- var string = '{"node":"' + $(this.el).html().replace(/"/g, '\\"') + '","children":[';
+ var string = '{"label":"' + $(this.el).html().replace(/"/g, '\\"') + '","children":[';
var count = 0;
$.each(this.children, function () {
- if(!this.el.hasClass('addNode'))
- {
- count++;
- if(count > 1)
- string += ',';
- string = string+this.serialize();
- }
+ count++;
+ if(count > 1) string += ',';
+ string = string+this.serialize();
});
return string+']}';
};
-
- // edit node
+
+ // edit node
Node.prototype.edit = function ()
{
var thisnode = this;
- //don't edit a '+'-node
- if(this.el.hasClass('addNode'))
- return true;
-
//store current value
- var old_value = $(':eq(0)', this.el).html();
+ var old_value = this.label();
//clear label
- this.el.html('');
+ this.label('');
- var submit = function (label)
+ var submit = function (text)
{
- thisnode.el.html($('<span>'+label+'</span>'));
+ thisnode.label('<span>'+text+'</span>');
// execute onchange callback
- if (typeof(thisnode.obj.options.onchange) === 'function')
- {
- thisnode.obj.options.onchange(thisnode, thisnode.obj.root.serialize());
- }
+ thisnode.obj.trigger('onchange', thisnode, thisnode.obj.serialize());
+ thisnode.obj.editing = false;
thisnode.editing = false;
- thisnode.obj.root.animateToStatic();
+ thisnode.obj.animate();
};
var cancel = function ()
{
- thisnode.el.html($('<span>'+old_value+'</span>'));
+ thisnode.label('<span>'+old_value+'</span>');
thisnode.editing = false;
- thisnode.obj.root.animateToStatic();
+ thisnode.obj.editing = false;
+ thisnode.obj.animate();
};
// create input
- var $input = $('<input type="text"/>').val(old_value);
-
- // cancel on blur
- $input.blur(function (event)
- {
- if($.trim(old_value) === '')
- return true;
-
- cancel();
- });
-
- // prevent opennode while editing
- $input.click(function () {return false;});
+ var $input = $('<input class="edit-field" type="text" />').val(old_value);
// listen to keys
$input.keyup(function (event) {
var keycode = event.which;
- // escape: cancel
+ // [escape] -> cancel
if(keycode === 27)
{
cancel();
}
- // enter: submit
+ // [enter] -> submit
else if(keycode === 13)
{
submit($input.val());
@@ -217,165 +261,154 @@
$input.appendTo(thisnode.el).focus().select();
// build '+' button
- $('<a style="margin-left:0.5em;" href="#">[+]</a>').click(function ()
- {
- thisnode.obj.original.addNode(thisnode,'...').edit();
- thisnode.obj.root.animateToStatic();
+ $('<button class="edit-button">+</button>').click(function () {
+ thisnode.obj.addNode(thisnode, 'Type something...').edit();
+ console.log('should have added node');
cancel();
return false;
}).appendTo(thisnode.el);
- // build delete button
+ // build 'x' button
if(thisnode !== this.obj.root)
{
- $('<a style="margin-left:0.5em;" href="#">[x]</a>').click(function ()
+ $('<button class="edit-button">x</button>').click(function ()
{
- cancel();
+ cancel();
thisnode.removeNode();
- thisnode.obj.root.animateToStatic();
+ thisnode.obj.animate();
return false;
}).appendTo(thisnode.el);
}
return false;
};
-
- // ROOT NODE ONLY: control animation loop
- Node.prototype.animateToStatic = function ()
- {
- var thisnode = this;
-
- // stop the movement after a certain time
- clearTimeout(this.moveTimer);
- this.moveTimer = setTimeout(function () {
- // stop the movement
- thisnode.obj.movementStopped = true;
- }, this.obj.options.timeout*1000);
-
- // don't do anything if already moving
- if (this.moving)
- return;
-
- // tell everybody that I'm moving the map
- this.moving = true;
- this.obj.movementStopped = false;
-
- // animate
- this.animateLoop();
- };
-
- // ROOT NODE ONLY: animate all nodes (recursive)
- Node.prototype.animateLoop = function ()
+
+ Node.prototype.removeNode = function ()
{
- var thisnode = this;
+ // execute onremove callback
+ this.obj.trigger('onremove', this);
- // redraw lines
- this.obj.canvas.clear();
- for (var i = 0; i < this.obj.lines.length; i++)
+ // remove all children
+ for (var i=0;i<this.children.length;i++)
{
- this.obj.lines[i].updatePosition();
+ this.children[i].removeNode();
}
- if (this.findEquilibrium() || this.obj.movementStopped)
+ // delete me from the node stack
+ this.obj.nodes.splice(this.obj.nodes.indexOf(this), 1);
+
+ // delete all associated lines
+ var oldlines = this.obj.lines;
+ this.obj.lines = [];
+ for (var i = 0; i < oldlines.length; i++)
{
- this.moving=false;
- return;
+ if(oldlines[i].start === this || oldlines[i].end === this) continue;
+ this.obj.lines.push(oldlines[i]);
}
- setTimeout(function () {
- thisnode.animateLoop();
- }, 1000 / this.obj.options.frameRate);
+ // remove html
+ $(this.el).remove();
+
+ // execute onchange callback
+ this.obj.trigger('onchange', this, this.obj.serialize());
+
+ this.obj.animate();
};
+
+
+ /* ANIMATION */
- // find the right position for this node
+ // find the right position for this node (recursive)
Node.prototype.findEquilibrium = function ()
{
- var Static = true;
- Static = this.display() && Static;
- for (var i=0;i<this.children.length;i++)
+ var isStatic = (!this.parent) ? true : this.display();
+
+ for (var i=0; i < this.children.length; i++)
{
- if(this.children[i].visible || this.el.hasClass('active'))
- {
- Static = this.children[i].findEquilibrium() && Static;
- }
+ if(this.children[i].visible || this.el.hasClass('active'))
+ isStatic = this.children[i].findEquilibrium() && isStatic;
}
- return Static;
+ return isStatic;
};
-
- //Display this node, and its children
+
+ Node.prototype.hide = function() {
+ this.obj.trigger('onhide', this);
+ this.el.removeClass('active');
+ this.el.hide();
+ this.visible = false;
+ this.hasPosition = false;// reset position
+ };
+
+ Node.prototype.show = function() {
+ this.el.show();
+ this.visible = true;
+ this.obj.trigger('onshow', this);
+ };
+
+ Node.prototype.setPosition = function(x,y) {
+ this.x = x;
+ this.y = y;
+ this.el.css('left', x + "px");
+ this.el.css('top', y + "px");
+ this.hasPosition=true;
+ };
+
+ // Display this node, and its children
Node.prototype.display = function ()
{
-
- /* Draw node */
- if (this.visible)
- {
- // if my parent is not active: hide me
- if(this.parent !== null && !this.parent.el.hasClass('active'))
- {
- // execute onhide callback
- if (typeof(this.obj.options.onhide) === 'function')
- {
- this.obj.options.onhide(this);
- }
- this.el.hide();
- this.visible = false;
- }
-
- // if I'm not active my children can't be, too
- if(!this.el.hasClass('active'))
- {
- $.each(this.children, function (index,node)
- {
- node.el.removeClass('active');
- });
- }
- }else
- {
- // if my parent or I are active: show me
- if (this.el.hasClass('active') || this.parent.el.hasClass('active')) {
- this.el.show();
- this.visible = true;
-
- // execute onshow callback
- if (typeof(this.obj.options.onshow) === 'function')
- {
- this.obj.options.onshow(this);
- }
- }
- }
- this.drawn = true;
-
- /* position node */
- if (!this.hasPosition)
+ /* Draw node */
+ if (this.visible)
+ {
+ // if my parent is not active: hide me
+ if(!this.parent.el.hasClass('active')) {
+ this.hide();
+ }
+ }else
+ {
+ // if I'm root or my parent's active: show me
+ if(this.parent.parent === null || this.parent.el.hasClass('active')) {
+ this.show();
+ }
+ }
+
+ /* position node */
+
+ if(!this.visible)
+ return true;
+
+ if(!this.hasPosition)
{
- this.x = this.obj.options.mapArea.x/2;
- this.y = this.obj.options.mapArea.y/2;
- this.el.css('left', this.x + "px");
- this.el.css('top', this.y + "px");
- this.hasPosition=true;
+ if(this.parent.parent !== null)
+ {// not root
+ console.log('placing child, where parent is...');
+ var x = parseInt(this.parent.el.css('left'));
+ var y = parseInt(this.parent.el.css('top'));
+ }else
+ {// root
+ var x = this.obj.options.mapArea.x/2;
+ var y = this.obj.options.mapArea.y/2;
+ }
+ this.setPosition(x,y);
}
- /* position children */
+ /* position children */
var stepAngle = Math.PI*2/this.children.length;
var parent = this;
- $.each(this.children, function (index) {
- if (!this.hasPosition && this.el.css('display') !== 'none')
- {
- var angle = index * stepAngle;
- this.x = (50 * Math.cos(angle)) + parent.x;
- this.y = (50 * Math.sin(angle)) + parent.y;
- this.hasPosition=true;
- this.el.css('left', this.x + "px");
- this.el.css('top', this.y + "px");
- }
+ $.each(this.children, function (i) {
+ if (this.visible)
+ return;
+ var angle = i * stepAngle;
+ var x = (50 * Math.cos(angle)) + parent.x;
+ var y = (50 * Math.sin(angle)) + parent.y;
+ this.setPosition(x,y);
});
// update my position
return this.updatePosition();
};
-
- // updatePosition returns a boolean stating whether it's been static
+
+ // updatePosition returns a boolean stating whether it's been static
Node.prototype.updatePosition = function ()
{
- if ($(this.el).hasClass("ui-draggable-dragging"))
+ if($(this.el).hasClass("ui-draggable-dragging"))
{
this.x = parseInt(this.el.css('left')) + ($(this.el).width() / 2);
this.y = parseInt(this.el.css('top')) + ($(this.el).height() / 2);
@@ -411,8 +444,8 @@
this.el.css('top', showy + "px");
return false;
};
-
- Node.prototype.getForceVector = function ()
+
+ Node.prototype.getForceVector = function ()
{
var fx = 0;
var fy = 0;
@@ -425,7 +458,7 @@
{
if (nodes[i] === this)
continue;
- if (this.obj.options.showSublines && !nodes[i].hasLayout)
+ if (this.obj.options.showSublines && !nodes[i].hasPosition)
continue;
if (!nodes[i].visible)
continue;
@@ -457,7 +490,7 @@
// add repulsive force of the "walls"
//left wall
- var xdist = this.x + $(this.el).width();
+ var xdist = this.x + this.el.width();
var f = (this.obj.options.wallrepulse * 500) / (xdist * xdist);
fx += Math.min(2, f);
//right wall
@@ -540,204 +573,188 @@
y: fy
};
};
-
- Node.prototype.removeNode = function ()
+
+
+/* MAP */
+
+ $.fn.buzzmap = function (options) {
+ var $mindmap = $('ul:eq(0)', this);
+ if(!$mindmap.hasClass('buzzmap-active')) {
+ $mindmap.each(function () {
+ var obj = new Buzzmap($(this), options);
+
+ // Add a class to the object, so that styles can be applied
+ obj.el.addClass('buzzmap-active');
+ obj.el[0].obj = obj;
+
+ // add the data to the mindmap
+ if(obj.options.loadData)
+ {
+ var map = $.parseJSON(options.loadData);
+ var nodeCreate = function (parent, children)
+ {
+ $.each(children, function (index, n)
+ {
+ node = obj.addNode(parent, decodeURI(n.label))
+ nodeCreate(node, n.children);
+ });
+ };
+
+ //var root = obj.addNode(obj.root, decodeURI(map.node));
+ $.each(map.children, function(index, n) {
+ node = obj.addNode(obj.root, decodeURI(n.label))
+ nodeCreate(node, n.children);
+ });
+ }else{
+ var addLI = function ()
+ {
+ var parentnode = $(this).parents('li').get(0);
+ parentnode = (typeof(parentnode) === 'undefined') ? obj.root : parentnode.mynode;
+ this.mynode = obj.addNode(parentnode, $('div:eq(0)',this).html());
+ $(this).hide();
+ $('>ul>li', this).each(addLI);
+ };
+ $('>li', obj.el).each(addLI);
+ }
+ obj.animate();
+ });
+ }
+ return $mindmap[0].obj;
+ };
+
+ var Buzzmap = function(el, options) {
+ var obj = this;
+
+ this.el = el;
+ this.nodes = [];
+ this.lines = [];
+ this.parseOptions(options);
+ this.moving = false;
+ this.editing = false;
+ this.movementStopped = false;
+ this.fps = 0;
+
+ window.setInterval(function() {
+ var fps = obj.fps;
+ obj.fps = 0;
+ obj.trigger('fps', fps);
+ }, 1000);
+
+ // root node
+ this.root = this.nodes[0] = new Node(this, null, '<span>__ROOT__</span>');
+
+ $(window).resize(function () {
+ obj.animate();
+ });
+
+ //create drawing area (canvas)
+ if (this.options.mapArea.x==-1) this.options.mapArea.x = $(window).width();
+ if (this.options.mapArea.y==-1) this.options.mapArea.y = $(window).height();
+ this.canvas = Raphael(0, 0, this.options.mapArea.x, this.options.mapArea.y);
+ };
+
+ MicroEvent.mixin(Buzzmap);
+
+ Buzzmap.prototype.addNode = function (parent, label)
{
- // execute onremove callback
- if (typeof(this.obj.options.onremove) === 'function')
- {
- this.obj.options.onremove(this);
- }
-
- // remove all children
- for (var i=0;i<this.children.length;i++)
- {
- this.children[i].removeNode();
- }
-
- // delete me from the node stack
- var oldnodes = this.obj.nodes;
- this.obj.nodes = new Array();
- for(var i = 0; i < oldnodes.length; i++)
- {
- if(oldnodes[i]===this)
- continue;
- this.obj.nodes.push(oldnodes[i]);
- }
+ var node = this.nodes[this.nodes.length] = new Node(this, parent, label);
+ this.animate();
- // delete all associated lines
- var oldlines = this.obj.lines;
- this.obj.lines = new Array();
- for (var i = 0; i < oldlines.length; i++)
- {
- if(oldlines[i].start === this || oldlines[i].end === this)
- {
- continue;
- }else
- {
- this.obj.lines.push(oldlines[i]);
- }
- }
-
- // remove html
- $(this.el).remove();
-
- // execute onchange callback
- if (typeof(this.obj.options.onchange) === 'function')
- {
- this.obj.options.onchange(this, this.obj.root.serialize());
- }
+ return node;
};
-
-/* Line */
- function Line(obj, startNode, endNode)
+
+ Buzzmap.prototype.serialize = function() {
+ return this.root.serialize();
+ };
+
+ // control animation loop
+ Buzzmap.prototype.animate = function ()
{
- this.obj = obj;
- this.start = startNode;
- this.end = endNode;
- };
+ var obj = this;
+ // Set animation timeout
+ if(obj.options.timeout != 0) {
+ var timeout = (obj.editing == true) ? 1.5 : obj.options.timeout;
+ clearTimeout(obj.moveTimer);
+ obj.moveTimer = setTimeout(function () {
+ obj.movementStopped = true;
+ }, timeout*1000);
+ }
- Line.prototype.updatePosition = function ()
- {
- if (!this.obj.options.showSublines && (!this.start.visible || !this.end.visible))
- return;
- if (this.obj.options.showSublines && (!this.start.hasLayout || !this.end.hasLayout))
+ // don't do anything if already moving
+ if (obj.moving)
return;
- this.strokeStyle = this.obj.options.lineColor;
- this.strokeWidth = this.obj.options.lineWidth;
- this.strokeOpacity = this.obj.options.lineOpacity;
- var c = this.obj.canvas.path("M"+this.start.x+' '+this.start.y+"L"+this.end.x+' '+this.end.y)
- .attr({stroke: this.strokeStyle, opacity:this.strokeOpacity, 'stroke-width':this.strokeWidth});
- };
-
- $.fn.addNode = function (parent, name)
- {
- var obj = this[0];
- var node = obj.nodes[obj.nodes.length] = new Node(obj, name, parent);
+ // tell everybody that I'm moving the map
+ obj.moving = true;
+ obj.movementStopped = false;
- obj.root.animateToStatic();
- return node;
+ // start animation loop
+ obj.animateLoop();
};
-
- $.fn.addRootNode = function (content)
+
+ // animate all nodes
+ Buzzmap.prototype.animateLoop = function ()
{
- var node = this[0].nodes[0] = new Node(this[0], content, null);
- this[0].root = node;
- this[0].original = this;
-
- return node;
+ var obj = this;
+
+ // redraw lines
+ this.canvas.clear();
+ for (var i = 0; i < this.lines.length; i++)
+ {
+ this.lines[i].updatePosition();
+ }
+
+ if(this.root.findEquilibrium() || this.movementStopped)
+ {
+ this.moving=false;
+ return;
+ }
+
+ // Wait for next frame
+ window.setTimeout(function() {
+ obj.fps++;
+ obj.animateLoop();
+ }, 1000 / obj.options.maxFps);
};
-
- $.fn.buzzmap = function (options) {
- var $mindmap = $('ul:eq(0)',this);
- if(!$mindmap.hasClass('buzzmap-active'))
- {
-
- // Define default settings.
- var options = $.extend({
- mapArea: {
- x:-1,
- y:-1
- },
- loadData: null,
- editable: false,
-
- onchange: function (node, data) {},
- ondrag: function (root) {},
- onshow: function (node) {},
- onhide: function (node) {},
- onremove: function (node) {},
-
- attract: 12,
- repulse: 10,
- maxForce: 0.15,
- damping: 0.9,
- acceleration: 3.5,
-
- lineWidth: '5px',
- lineColor: '#FFF',
- lineOpacity: 0.3,
-
- wallrepulse: 0.5,
- centerOffset:100,
- centerAttraction:0,
- minSpeed: 0.05,
- frameRate:50,
- timeout: 5
- },options);
-
- return $mindmap.each(function () {
- var mindmap = this;
- this.mindmapInit = true;
- this.nodes = new Array();
- this.lines = new Array();
- this.activeNode = null;
- this.options = options;
- this.animateToStatic = function () {
- this.root.animateToStatic();
- }
- $(window).resize(function () {
- mindmap.animateToStatic();
- });
-
- //canvas
- if (options.mapArea.x==-1) {
- options.mapArea.x = $(window).width();
- }
- if (options.mapArea.y==-1) {
- options.mapArea.y = $(window).height();
- }
- //create drawing area
- this.canvas = Raphael(0, 0, options.mapArea.x, options.mapArea.y);
-
- // Add a class to the object, so that styles can be applied
- $(this).addClass('buzzmap-active');
-
- // add the data to the mindmap
- if(options.loadData)
- {
- var map = $.parseJSON(options.loadData);
- var nodeCreate = function (parent, children)
- {
- $.each(children, function (index,object)
- {
- node = $mindmap.addNode(parent, decodeURI(object.node))
- nodeCreate(node, object.children);
- });
- };
-
-
- var root = $mindmap.addRootNode(decodeURI(map.node), {});
- $.each(map.children, function (index,object)
- {
- node = $mindmap.addNode(root, decodeURI(object.node))
- nodeCreate(node, object.children);
- });
- }else{
- $el = $('>li',this);
- var root = $el.get(0).mynode = $mindmap.addRootNode($('>li>div',this).html());
-
- $el.hide();
- var addLI = function ()
- {
- var parentnode = $(this).parents('li').get(0);
- if (typeof(parentnode) === 'undefined')
- {
- parentnode=root;
- }
- else {
- parentnode=parentnode.mynode;
- }
- this.mynode = $mindmap.addNode(parentnode, $('div:eq(0)',this).html(), {});
- $(this).hide();
- $('>ul>li', this).each(addLI);
- };
- $('>li>ul', $mindmap).each(function () {
- $('>li', this).each(addLI);
- });
- }
- });
- }
- };
+
+ Buzzmap.prototype.parseOptions = function(opts) {
+ // Define default settings.
+ this.options = $.extend({
+ mapArea: {
+ x:-1,
+ y:-1
+ },
+ loadData: null,
+ editable: false,
+
+ onchange: function (node, data) {},
+ ondrag: function (root) {},
+ onshow: function (node) {},
+ onhide: function (node) {},
+ onremove: function (node) {},
+
+ attract: 3,
+ repulse: 2.5,
+ maxForce: 0.15,
+ damping: 0.9,
+ acceleration: 4,
+
+ lineWidth: '5px',
+ lineColor: '#FFF',
+ lineOpacity: 0.3,
+
+ wallrepulse: 0.5,
+ centerOffset:100,
+ centerAttraction:0,
+ minSpeed: 0.05,
+ frameRate:50,
+ timeout: 5
+ }, opts);
+ this.bind('onchange', this.options.onchange);
+ this.bind('ondrag', this.options.ondrag);
+ this.bind('onshow', this.options.onshow);
+ this.bind('onhide', this.options.onhide);
+ this.bind('onremove', this.options.onremove);
+ };
+
})(jQuery);
View
36 buzzmap.min.js
@@ -1,18 +1,20 @@
-(function(c){function l(a,b,c){this.obj=a;this.start=b;this.end=c}var i=function(a,b,h){this.obj=a;this.info=b;this.parent=h;this.children=[];this.editing=this.moving=!1;this.moveTimer=0;this.obj.movementStopped=!1;this.hasLayout=this.visible=!0;this.y=this.x=1;this.dy=this.dx=0;this.hasPosition=!1;this.el=c("<div>"+this.info+"</div>");this.el.css("position","absolute");this.el.addClass("node");c(".buzzmap-active").prepend(this.el);this.parent?(this.obj.lines[this.obj.lines.length]=new l(a,this,h),
-this.parent.children.push(this)):this.el.addClass("active");var f=this,e=function(){return f.children.length>0?(f.el.toggleClass("active"),f.obj.root.animateToStatic(),!1):!0};this.el.draggable({drag:function(){if(typeof f.obj.options.ondrag==="function")f.obj.options.ondrag(f.obj.root);f.obj.root.animateToStatic()}});this.obj.options.editable===!0&&this.el.dblclick(function(){f.editing=!0;f.edit()});this.el.click(function(){f.obj.options.editable===!0?setTimeout(function(){if(f.editing===!0)return!1;
-e()},500):e();return!0})};i.prototype.serialize=function(){var a='{"node":"'+c(this.el).html().replace(/"/g,'\\"')+'","children":[',b=0;c.each(this.children,function(){this.el.hasClass("addNode")||(b++,b>1&&(a+=","),a+=this.serialize())});return a+"]}"};i.prototype.edit=function(){var a=this;if(this.el.hasClass("addNode"))return!0;var b=c(":eq(0)",this.el).html();this.el.html("");var h=function(){a.el.html(c("<span>"+b+"</span>"));a.editing=!1;a.obj.root.animateToStatic()},f=c('<input type="text"/>').val(b);
-f.blur(function(){if(c.trim(b)==="")return!0;h()});f.click(function(){return!1});f.keyup(function(b){b=b.which;if(b===27)h();else if(b===13){b=f.val();a.el.html(c("<span>"+b+"</span>"));if(typeof a.obj.options.onchange==="function")a.obj.options.onchange(a,a.obj.root.serialize());a.editing=!1;a.obj.root.animateToStatic()}return!0});f.appendTo(a.el).focus().select();c('<a style="margin-left:0.5em;" href="#">[+]</a>').click(function(){a.obj.original.addNode(a,"...").edit();a.obj.root.animateToStatic();
-h();return!1}).appendTo(a.el);a!==this.obj.root&&c('<a style="margin-left:0.5em;" href="#">[x]</a>').click(function(){h();a.removeNode();a.obj.root.animateToStatic();return!1}).appendTo(a.el);return!1};i.prototype.animateToStatic=function(){var a=this;clearTimeout(this.moveTimer);this.moveTimer=setTimeout(function(){a.obj.movementStopped=!0},this.obj.options.timeout*1E3);if(!this.moving)this.moving=!0,this.obj.movementStopped=!1,this.animateLoop()};i.prototype.animateLoop=function(){var a=this;this.obj.canvas.clear();
-for(var b=0;b<this.obj.lines.length;b++)this.obj.lines[b].updatePosition();this.findEquilibrium()||this.obj.movementStopped?this.moving=!1:setTimeout(function(){a.animateLoop()},1E3/this.obj.options.frameRate)};i.prototype.findEquilibrium=function(){var a;a=this.display()&&!0;for(var b=0;b<this.children.length;b++)if(this.children[b].visible||this.el.hasClass("active"))a=this.children[b].findEquilibrium()&&a;return a};i.prototype.display=function(){if(this.visible){if(this.parent!==null&&!this.parent.el.hasClass("active")){if(typeof this.obj.options.onhide===
-"function")this.obj.options.onhide(this);this.el.hide();this.visible=!1}this.el.hasClass("active")||c.each(this.children,function(a,b){b.el.removeClass("active")})}else if(this.el.hasClass("active")||this.parent.el.hasClass("active"))if(this.el.show(),this.visible=!0,typeof this.obj.options.onshow==="function")this.obj.options.onshow(this);this.drawn=!0;if(!this.hasPosition)this.x=this.obj.options.mapArea.x/2,this.y=this.obj.options.mapArea.y/2,this.el.css("left",this.x+"px"),this.el.css("top",this.y+
-"px"),this.hasPosition=!0;var a=Math.PI*2/this.children.length,b=this;c.each(this.children,function(c){if(!this.hasPosition&&this.el.css("display")!=="none")c*=a,this.x=50*Math.cos(c)+b.x,this.y=50*Math.sin(c)+b.y,this.hasPosition=!0,this.el.css("left",this.x+"px"),this.el.css("top",this.y+"px")});return this.updatePosition()};i.prototype.updatePosition=function(){if(c(this.el).hasClass("ui-draggable-dragging"))return this.x=parseInt(this.el.css("left"))+c(this.el).width()/2,this.y=parseInt(this.el.css("top"))+
+(function(c){function l(a,b,e){this.obj=a;this.start=b;this.end=e}var k=function(){};k.prototype={bind:function(a,b){this._events=this._events||{};this._events[a]=this._events[a]||[];this._events[a].push(b)},unbind:function(a,b){this._events=this._events||{};a in this._events!==!1&&this._events[a].splice(this._events[a].indexOf(b),1)},trigger:function(a){this._events=this._events||{};if(a in this._events!==!1)for(var b=0;b<this._events[a].length;b++)this._events[a][b].apply(this,Array.prototype.slice.call(arguments,
+1))}};k.mixin=function(a){for(var b=["bind","unbind","trigger"],e=0;e<b.length;e++)a.prototype[b[e]]=k.prototype[b[e]]};l.prototype.updatePosition=function(){if(this.start.visible&&this.end.visible)this.strokeStyle=this.obj.options.lineColor,this.strokeWidth=this.obj.options.lineWidth,this.strokeOpacity=this.obj.options.lineOpacity,this.obj.canvas.path("M"+this.start.x+" "+this.start.y+"L"+this.end.x+" "+this.end.y).attr({stroke:this.strokeStyle,opacity:this.strokeOpacity,"stroke-width":this.strokeWidth})};
+var g=function(a,b,e){var f=this;this.obj=a;this.parent=b;this.children=[];this.visible=!1;this.moveTimer=0;this.y=this.x=1;this.dy=this.dx=0;this.hasPosition=this.dragging=this.editing=!1;this.el=c("<div></div>");this.el.css("position","absolute");this.el.addClass("node");this.obj.el.prepend(this.el);this.el.hide();this.label(e);this.parent?(this.parent.children.push(this),this.parent.parent?this.obj.lines[this.obj.lines.length]=new l(a,this,b):(this.el.addClass("active"),this.el.addClass("root"))):
+this.el.addClass("active");this.el.mouseup(function(){if(f.editing==!0||f.dragging==!0)return!0;if(f.obj.options.editable!==!0)return f.toggleChildren(),!0;window.setTimeout(function(){f.toggleChildren()},200);return!0});this.el.draggable({cancel:":input,option,button,a",start:function(){f.dragging=!0},drag:function(){f.obj.trigger("ondrag",f);f.obj.animate()},stop:function(){f.dragging=!1}});this.obj.options.editable===!0&&this.el.dblclick(function(){f.el.addClass("active");f.editing=!0;f.obj.editing=
+!0;f.edit();f.obj.animate()})};g.prototype.toggleChildren=function(){return this.children.length>0&&this.parent.parent?(this.el.toggleClass("active"),this.obj.animate(),!1):!0};g.prototype.label=function(a){typeof a!=="undefined"&&this.el.html(c(a));return c(":eq(0)",this.el).html()};g.prototype.serialize=function(){var a='{"node":"'+c(this.el).html().replace(/"/g,'\\"')+'","children":[',b=0;c.each(this.children,function(){b++;b>1&&(a+=",");a+=this.serialize()});return a+"]}"};g.prototype.edit=function(){var a=
+this,b=this.label();this.label("");var e=function(){a.label("<span>"+b+"</span>");a.editing=!1;a.obj.editing=!1;a.obj.animate()},f=c('<input class="edit-field" type="text" />').val(b);f.keyup(function(b){b=b.which;if(b===27)e();else if(b===13)b=f.val(),a.label("<span>"+b+"</span>"),a.obj.trigger("onchange",a,a.obj.serialize()),a.obj.editing=!1,a.editing=!1,a.obj.animate();return!0});f.appendTo(a.el).focus().select();c('<button class="edit-button">+</button>').click(function(){a.obj.addNode(a,"Type something...").edit();
+console.log("should have added node");e();return!1}).appendTo(a.el);a!==this.obj.root&&c('<button class="edit-button">x</button>').click(function(){e();a.removeNode();a.obj.animate();return!1}).appendTo(a.el);return!1};g.prototype.removeNode=function(){this.obj.trigger("onremove",this);for(var a=0;a<this.children.length;a++)this.children[a].removeNode();this.obj.nodes.splice(this.obj.nodes.indexOf(this),1);var b=this.obj.lines;this.obj.lines=[];for(a=0;a<b.length;a++)b[a].start===this||b[a].end===
+this||this.obj.lines.push(b[a]);c(this.el).remove();this.obj.trigger("onchange",this,this.obj.serialize());this.obj.animate()};g.prototype.findEquilibrium=function(){for(var a=!this.parent?!0:this.display(),b=0;b<this.children.length;b++)if(this.children[b].visible||this.el.hasClass("active"))a=this.children[b].findEquilibrium()&&a;return a};g.prototype.hide=function(){this.obj.trigger("onhide",this);this.el.removeClass("active");this.el.hide();this.hasPosition=this.visible=!1};g.prototype.show=function(){this.el.show();
+this.visible=!0;this.obj.trigger("onshow",this)};g.prototype.setPosition=function(a,b){this.x=a;this.y=b;this.el.css("left",a+"px");this.el.css("top",b+"px");this.hasPosition=!0};g.prototype.display=function(){this.visible?this.parent.el.hasClass("active")||this.hide():(this.parent.parent===null||this.parent.el.hasClass("active"))&&this.show();if(!this.visible)return!0;if(!this.hasPosition){if(this.parent.parent!==null){console.log("placing child, where parent is...");var a=parseInt(this.parent.el.css("left")),
+b=parseInt(this.parent.el.css("top"))}else a=this.obj.options.mapArea.x/2,b=this.obj.options.mapArea.y/2;this.setPosition(a,b)}var e=Math.PI*2/this.children.length,f=this;c.each(this.children,function(a){if(!this.visible){var b=a*e,a=50*Math.cos(b)+f.x,b=50*Math.sin(b)+f.y;this.setPosition(a,b)}});return this.updatePosition()};g.prototype.updatePosition=function(){if(c(this.el).hasClass("ui-draggable-dragging"))return this.x=parseInt(this.el.css("left"))+c(this.el).width()/2,this.y=parseInt(this.el.css("top"))+
c(this.el).height()/2,this.dy=this.dx=0,!1;var a=this.getForceVector();this.dx+=a.x*this.obj.options.acceleration;this.dy+=a.y*this.obj.options.acceleration;this.dx*=this.obj.options.damping;this.dy*=this.obj.options.damping;if(Math.abs(this.dx)<this.obj.options.minSpeed)this.dx=0;if(Math.abs(this.dy)<this.obj.options.minSpeed)this.dy=0;if(Math.abs(this.dx)+Math.abs(this.dy)==0)return!0;this.x+=this.dx*this.obj.options.acceleration;this.y+=this.dy*this.obj.options.acceleration;this.x=Math.min(this.obj.options.mapArea.x,
-Math.max(1,this.x));this.y=Math.min(this.obj.options.mapArea.y,Math.max(1,this.y));var a=this.x-c(this.el).width()/2,b=this.y-c(this.el).height()/2-10;this.el.css("left",a+"px");this.el.css("top",b+"px");return!1};i.prototype.getForceVector=function(){for(var a=0,b=0,h=this.obj.nodes,f=this.obj.lines,e=0;e<h.length;e++)if(h[e]!==this&&(!this.obj.options.showSublines||h[e].hasLayout)&&h[e].visible){var d=h[e].x-this.x,g=h[e].y-this.y,j=d/Math.abs(d);Math.abs(g);var k=Math.sqrt(d*d+g*g),g=Math.atan(g/
-d);d===0&&(g=Math.PI/2,j=0);d=this.obj.options.repulse*500/(k*k);Math.abs(k)<500&&(a+=-d*Math.cos(g)*j,b+=-d*Math.sin(g)*j)}e=this.x+c(this.el).width();d=this.obj.options.wallrepulse*500/(e*e);a+=Math.min(2,d);e=this.obj.options.mapArea.x-e;d=-(this.obj.options.wallrepulse*500)/(e*e);a+=Math.max(-2,d);d=this.obj.options.wallrepulse*500/(this.y*this.y);b+=Math.min(2,d);e=this.obj.options.mapArea.y-this.y;d=-(this.obj.options.wallrepulse*500)/(e*e);b+=Math.max(-2,d);for(e=0;e<f.length;e++){h=null;if(f[e].start===
-this)h=f[e].end;else if(f[e].end===this)h=f[e].start;else continue;h.visible&&(d=h.x-this.x,g=h.y-this.y,k=Math.sqrt(d*d+g*g),j=d/Math.abs(d),g=Math.atan(g/d),d==0&&(g=Math.PI/2,j=0),d=this.obj.options.attract*k/1E4,Math.abs(k)>0&&(a+=d*Math.cos(g)*j,b+=d*Math.sin(g)*j))}if(!this.parent)h=this.obj.options.mapArea,d=h.x/2-this.obj.options.centerOffset-this.x,g=h.y/2-this.y,k=Math.sqrt(d*d+g*g),j=d/Math.abs(d),g=Math.atan(g/d),d===0&&(g=Math.PI/2,j=0),d=0.1*this.obj.options.attract*k*this.obj.options.centerAttraction/
-1E3,Math.abs(k)>0&&(a+=d*Math.cos(g)*j,b+=d*Math.sin(g)*j);Math.abs(a)>this.obj.options.maxForce&&(a=this.obj.options.maxForce*(a/Math.abs(a)));Math.abs(b)>this.obj.options.maxForce&&(b=this.obj.options.maxForce*(b/Math.abs(b)));return{x:a,y:b}};i.prototype.removeNode=function(){if(typeof this.obj.options.onremove==="function")this.obj.options.onremove(this);for(var a=0;a<this.children.length;a++)this.children[a].removeNode();var b=this.obj.nodes;this.obj.nodes=[];for(a=0;a<b.length;a++)b[a]!==this&&
-this.obj.nodes.push(b[a]);b=this.obj.lines;this.obj.lines=[];for(a=0;a<b.length;a++)b[a].start===this||b[a].end===this||this.obj.lines.push(b[a]);c(this.el).remove();if(typeof this.obj.options.onchange==="function")this.obj.options.onchange(this,this.obj.root.serialize())};l.prototype.updatePosition=function(){if(this.obj.options.showSublines||this.start.visible&&this.end.visible)if(!this.obj.options.showSublines||this.start.hasLayout&&this.end.hasLayout)this.strokeStyle=this.obj.options.lineColor,
-this.strokeWidth=this.obj.options.lineWidth,this.strokeOpacity=this.obj.options.lineOpacity,this.obj.canvas.path("M"+this.start.x+" "+this.start.y+"L"+this.end.x+" "+this.end.y).attr({stroke:this.strokeStyle,opacity:this.strokeOpacity,"stroke-width":this.strokeWidth})};c.fn.addNode=function(a,b){var c=this[0],f=c.nodes[c.nodes.length]=new i(c,b,a);c.root.animateToStatic();return f};c.fn.addRootNode=function(a){a=this[0].nodes[0]=new i(this[0],a,null);this[0].root=a;this[0].original=this;return a};
-c.fn.buzzmap=function(a){var b=c("ul:eq(0)",this);if(!b.hasClass("buzzmap-active"))return a=c.extend({mapArea:{x:-1,y:-1},loadData:null,editable:!1,onchange:function(){},ondrag:function(){},onshow:function(){},onhide:function(){},onremove:function(){},attract:12,repulse:10,maxForce:0.15,damping:0.9,acceleration:3.5,lineWidth:"5px",lineColor:"#FFF",lineOpacity:0.3,wallrepulse:0.5,centerOffset:100,centerAttraction:0,minSpeed:0.05,frameRate:50,timeout:5},a),b.each(function(){var h=this;this.mindmapInit=
-!0;this.nodes=[];this.lines=[];this.activeNode=null;this.options=a;this.animateToStatic=function(){this.root.animateToStatic()};c(window).resize(function(){h.animateToStatic()});if(a.mapArea.x==-1)a.mapArea.x=c(window).width();if(a.mapArea.y==-1)a.mapArea.y=c(window).height();this.canvas=Raphael(0,0,a.mapArea.x,a.mapArea.y);c(this).addClass("buzzmap-active");if(a.loadData){var f=c.parseJSON(a.loadData),e=function(a,d){c.each(d,function(c,d){node=b.addNode(a,decodeURI(d.node));e(node,d.children)})},
-d=b.addRootNode(decodeURI(f.node),{});c.each(f.children,function(a,c){node=b.addNode(d,decodeURI(c.node));e(node,c.children)})}else{$el=c(">li",this);d=$el.get(0).mynode=b.addRootNode(c(">li>div",this).html());$el.hide();var g=function(){var a=c(this).parents("li").get(0),a=typeof a==="undefined"?d:a.mynode;this.mynode=b.addNode(a,c("div:eq(0)",this).html(),{});c(this).hide();c(">ul>li",this).each(g)};c(">li>ul",b).each(function(){c(">li",this).each(g)})}})}})(jQuery);
+Math.max(1,this.x));this.y=Math.min(this.obj.options.mapArea.y,Math.max(1,this.y));var a=this.x-c(this.el).width()/2,b=this.y-c(this.el).height()/2-10;this.el.css("left",a+"px");this.el.css("top",b+"px");return!1};g.prototype.getForceVector=function(){for(var a=0,b=0,e=this.obj.nodes,f=this.obj.lines,c=0;c<e.length;c++)if(e[c]!==this&&(!this.obj.options.showSublines||e[c].hasPosition)&&e[c].visible){var d=e[c].x-this.x,h=e[c].y-this.y,i=d/Math.abs(d);Math.abs(h);var g=Math.sqrt(d*d+h*h),h=Math.atan(h/
+d);d===0&&(h=Math.PI/2,i=0);d=this.obj.options.repulse*500/(g*g);Math.abs(g)<500&&(a+=-d*Math.cos(h)*i,b+=-d*Math.sin(h)*i)}c=this.x+this.el.width();d=this.obj.options.wallrepulse*500/(c*c);a+=Math.min(2,d);c=this.obj.options.mapArea.x-c;d=-(this.obj.options.wallrepulse*500)/(c*c);a+=Math.max(-2,d);d=this.obj.options.wallrepulse*500/(this.y*this.y);b+=Math.min(2,d);c=this.obj.options.mapArea.y-this.y;d=-(this.obj.options.wallrepulse*500)/(c*c);b+=Math.max(-2,d);for(c=0;c<f.length;c++){e=null;if(f[c].start===
+this)e=f[c].end;else if(f[c].end===this)e=f[c].start;else continue;e.visible&&(d=e.x-this.x,h=e.y-this.y,g=Math.sqrt(d*d+h*h),i=d/Math.abs(d),h=Math.atan(h/d),d==0&&(h=Math.PI/2,i=0),d=this.obj.options.attract*g/1E4,Math.abs(g)>0&&(a+=d*Math.cos(h)*i,b+=d*Math.sin(h)*i))}if(!this.parent)e=this.obj.options.mapArea,d=e.x/2-this.obj.options.centerOffset-this.x,h=e.y/2-this.y,g=Math.sqrt(d*d+h*h),i=d/Math.abs(d),h=Math.atan(h/d),d===0&&(h=Math.PI/2,i=0),d=0.1*this.obj.options.attract*g*this.obj.options.centerAttraction/
+1E3,Math.abs(g)>0&&(a+=d*Math.cos(h)*i,b+=d*Math.sin(h)*i);Math.abs(a)>this.obj.options.maxForce&&(a=this.obj.options.maxForce*(a/Math.abs(a)));Math.abs(b)>this.obj.options.maxForce&&(b=this.obj.options.maxForce*(b/Math.abs(b)));return{x:a,y:b}};c.fn.buzzmap=function(a){var b=c("ul:eq(0)",this);b.hasClass("buzzmap-active")||b.each(function(){var b=new j(c(this),a);b.el.addClass("buzzmap-active");b.el[0].obj=b;if(b.options.loadData){var f=c.parseJSON(a.loadData),g=function(a,d){c.each(d,function(c,
+d){node=b.addNode(a,decodeURI(d.node));g(node,d.children)})},d=b.addNode(b.root,decodeURI(f.node));c.each(f.children,function(a,c){node=b.addNode(d,decodeURI(c.node));g(node,c.children)})}else{var h=function(){var a=c(this).parents("li").get(0),a=typeof a==="undefined"?b.root:a.mynode;this.mynode=b.addNode(a,c("div:eq(0)",this).html());c(this).hide();c(">ul>li",this).each(h)};c(">li",b.el).each(h)}b.animate()});return b[0].obj};var j=function(a,b){var e=this;this.el=a;this.nodes=[];this.lines=[];
+this.parseOptions(b);this.movementStopped=this.editing=this.moving=!1;this.fps=0;window.setInterval(function(){var a=e.fps;e.fps=0;e.trigger("fps",a)},1E3);this.root=this.nodes[0]=new g(this,null,"<span>__ROOT__</span>");c(window).resize(function(){e.animate()});if(this.options.mapArea.x==-1)this.options.mapArea.x=c(window).width();if(this.options.mapArea.y==-1)this.options.mapArea.y=c(window).height();this.canvas=Raphael(0,0,this.options.mapArea.x,this.options.mapArea.y)};k.mixin(j);j.prototype.addNode=
+function(a,b){var c=this.nodes[this.nodes.length]=new g(this,a,b);this.animate();return c};j.prototype.serialize=function(){return this.root.serialize()};j.prototype.animate=function(){var a=this;if(a.options.timeout!=0){var b=a.editing==!0?1.5:a.options.timeout;clearTimeout(a.moveTimer);a.moveTimer=setTimeout(function(){a.movementStopped=!0},b*1E3)}if(!a.moving)a.moving=!0,a.movementStopped=!1,a.animateLoop()};j.prototype.animateLoop=function(){var a=this;this.canvas.clear();for(var b=0;b<this.lines.length;b++)this.lines[b].updatePosition();
+this.root.findEquilibrium()||this.movementStopped?this.moving=!1:window.setTimeout(function(){a.fps++;a.animateLoop()},1E3/a.options.maxFps)};j.prototype.parseOptions=function(a){this.options=c.extend({mapArea:{x:-1,y:-1},loadData:null,editable:!1,onchange:function(){},ondrag:function(){},onshow:function(){},onhide:function(){},onremove:function(){},attract:12,repulse:10,maxForce:0.15,damping:0.9,acceleration:3.5,lineWidth:"5px",lineColor:"#FFF",lineOpacity:0.3,wallrepulse:0.5,centerOffset:100,centerAttraction:0,
+minSpeed:0.05,frameRate:50,timeout:5},a);this.bind("onchange",this.options.onchange);this.bind("ondrag",this.options.ondrag);this.bind("onshow",this.options.onshow);this.bind("onhide",this.options.onhide);this.bind("onremove",this.options.onremove)}})(jQuery);
View
783 jquery-ui.min.js
0 additions, 783 deletions not shown
View
166 jquery.min.js
@@ -1,166 +0,0 @@
-/*!
- * 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;n<H.length;n++){k=H[n];k.origType.replace(X,
-"")===a.type?f.push(k.selector):H.splice(n--,1)}f=c(a.target).closest(f,a.currentTarget);s=0;for(v=f.length;s<v;s++){B=f[s];for(n=0;n<H.length;n++){k=H[n];if(B.selector===k.selector&&(!D||D.test(k.namespace))){l=B.elem;h=null;if(k.preType==="mouseenter"||k.preType==="mouseleave"){a.type=k.preType;h=c(a.relatedTarget).closest(k.selector)[0]}if(!h||h!==l)e.push({elem:l,handleObj:k,level:B.level})}}}s=0;for(v=e.length;s<v;s++){f=e[s];if(d&&f.level>d)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(;r<y;r++)if((F=arguments[r])!=null)for(I in F){K=i[I];J=F[I];if(i!==J)if(z&&J&&(b.isPlainObject(J)||(fa=b.isArray(J)))){if(fa){fa=false;clone=K&&b.isArray(K)?K:[]}else clone=
-K&&b.isPlainObject(K)?K:{};i[I]=b.extend(z,clone,J)}else if(J!==A)i[I]=J}return i};b.extend({noConflict:function(i){E.$=e;if(i)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(i){i===true&&b.readyWait--;if(!b.readyWait||i!==true&&!b.isReady){if(!u.body)return setTimeout(b.ready,1);b.isReady=true;if(!(i!==true&&--b.readyWait>0)){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<I;){if(r.apply(i[F++],y)===false)break}else if(K)for(z in i){if(r.call(i[z],z,i[z])===false)break}else for(y=i[0];F<I&&r.call(y,F,y)!==false;y=i[++F]);return i},trim:R?function(i){return i==null?"":R.call(i)}:function(i){return i==null?"":i.toString().replace(l,"").replace(n,"")},makeArray:function(i,r){var y=r||[];if(i!=null){var z=b.type(i);i.length==
-null||z==="string"||z==="function"||z==="regexp"||b.isWindow(i)?P.call(y,i):b.merge(y,i)}return y},inArray:function(i,r){if(r.indexOf)return r.indexOf(i);for(var y=0,z=r.length;y<z;y++)if(r[y]===i)return y;return-1},merge:function(i,r){var y=i.length,z=0;if(typeof r.length==="number")for(var F=r.length;z<F;z++)i[y++]=r[z];else for(;r[z]!==A;)i[y++]=r[z++];i.length=y;return i},grep:function(i,r,y){var z=[],F;y=!!y;for(var I=0,K=i.length;I<K;I++){F=!!r(i[I],I);y!==F&&z.push(i[I])}return z},map:function(i,
-r,y){for(var z=[],F,I=0,K=i.length;I<K;I++){F=r(i[I],I,y);if(F!=null)z[z.length]=F}return z.concat.apply([],z)},guid:1,proxy:function(i,r,y){if(arguments.length===2)if(typeof r==="string"){y=i;i=y[r];r=A}else if(r&&!b.isFunction(r)){y=r;r=A}if(!r&&i)r=function(){return i.apply(y||this,arguments)};if(i)r.guid=i.guid=i.guid||r.guid||b.guid++;return r},access:function(i,r,y,z,F,I){var K=i.length;if(typeof r==="object"){for(var J in r)b.access(i,J,r[J],z,F,y);return i}if(y!==A){z=!I&&z&&b.isFunction(y);
-for(J=0;J<K;J++)F(i[J],r,z?y.call(i[J],J,F(i[J],r)):y,I);return i}return K?F(i[0],r):A},now:function(){return(new Date).getTime()},uaMatch:function(i){i=i.toLowerCase();i=M.exec(i)||g.exec(i)||j.exec(i)||i.indexOf("compatible")<0&&o.exec(i)||[];return{browser:i[1]||"",version:i[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(i,r){L["[object "+r+"]"]=r.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=
-m.version}if(b.browser.webkit)b.browser.safari=true;if(Q)b.inArray=function(i,r){return Q.call(r,i)};if(!/\s/.test("\u00a0")){l=/^[\s\xA0]+/;n=/[\s\xA0]+$/}f=b(u);if(u.addEventListener)t=function(){u.removeEventListener("DOMContentLoaded",t,false);b.ready()};else if(u.attachEvent)t=function(){if(u.readyState==="complete"){u.detachEvent("onreadystatechange",t);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=u.documentElement,b=u.createElement("script"),d=u.createElement("div"),
-e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],k=u.createElement("select"),l=k.appendChild(u.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),
-hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:l.selected,optDisabled:false,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};k.disabled=true;c.support.optDisabled=!l.disabled;b.type="text/javascript";try{b.appendChild(u.createTextNode("window."+e+"=1;"))}catch(n){}a.insertBefore(b,
-a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function s(){c.support.noCloneEvent=false;d.detachEvent("onclick",s)});d.cloneNode(true).fireEvent("onclick")}d=u.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";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="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=s.offsetWidth!==2}s.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";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<e;d++){var f=this[d];if(f.nodeType===1)if(f.className){for(var h=" "+f.className+" ",k=f.className,l=0,n=b.length;l<n;l++)if(h.indexOf(" "+b[l]+" ")<0)k+=" "+b[l];f.className=c.trim(k)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(n){var s=
-c(this);s.removeClass(a.call(this,n,s.attr("class")))});if(a&&typeof a==="string"||a===A)for(var b=(a||"").split(ga),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(qa," "),k=0,l=b.length;k<l;k++)h=h.replace(" "+b[k]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,
-f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,k=c(this),l=b,n=a.split(ga);f=n[h++];){l=e?l:!k.hasClass(f);k[l?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(qa," ").indexOf(a)>-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<e;h++){var k=f[h];if(k.selected&&(c.support.optDisabled?!k.disabled:k.getAttribute("disabled")===null)&&(!k.parentNode.disabled||!c.nodeName(k.parentNode,"optgroup"))){a=c(k).val();if(b)return a;d.push(a)}}return d}if(ra.test(b.type)&&
-!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Pa,"")}return A}var l=c.isFunction(a);return this.each(function(n){var s=c(this),v=a;if(this.nodeType===1){if(l)v=a.call(this,n,s.val());if(v==null)v="";else if(typeof v==="number")v+="";else if(c.isArray(v))v=c.map(v,function(D){return D==null?"":D+""});if(c.isArray(v)&&ra.test(this.type))this.checked=c.inArray(s.val(),v)>=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<B.length;h++){D=B[h];if(d.guid===D.guid){if(l||s.test(D.namespace)){e==null&&B.splice(h--,1);v.remove&&v.remove.call(a,D)}if(e!=null)break}}if(B.length===0||e!=null&&B.length===1){if(!v.teardown||
-v.teardown.call(a,n)===false)c.removeEvent(a,f,w.handle);delete G[f]}}else for(h=0;h<B.length;h++){D=B[h];if(l||s.test(D.namespace)){c.event.remove(a,v,D.handler,h);B.splice(h--,1)}}}if(c.isEmptyObject(G)){if(b=w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,H);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=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<k;f++){var l=d[f];if(b||e.test(l.namespace)){a.handler=l.handler;a.data=
-l.data;a.handleObj=l;l=l.handler.apply(this,h);if(l!==A){a.result=l;if(l===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
-fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||u;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=u.documentElement;d=u.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
-d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==A)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ga,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
-Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=u.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
-c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ba;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ba;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ba;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
-var ta=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},ua=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?ua:ta,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?ua:ta)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
-"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=A;return ja("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=A;return ja("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
-va=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-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;h<l;h++)c.event.add(this[h],d,k,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
-a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
-1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var wa={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var k,l=0,n,s,v=h||this.selector;h=h?this:c(this.context);if(typeof d===
-"object"&&!d.preventDefault){for(k in d)h[b](k,e,d[k],v);return this}if(c.isFunction(e)){f=e;e=A}for(d=(d||"").split(" ");(k=d[l++])!=null;){n=X.exec(k);s="";if(n){s=n[0];k=k.replace(X,"")}if(k==="hover")d.push("mouseenter"+s,"mouseleave"+s);else{n=k;if(k==="focus"||k==="blur"){d.push(wa[k]+s);k+=s}else k=(wa[k]||k)+s;if(b==="live"){s=0;for(var B=h.length;s<B;s++)c.event.add(h[s],"live."+Y(k,v),{data:e,selector:v,handler:f,origType:k,origHandler:f,preType:n})}else h.unbind("live."+Y(k,v),f)}}return this}});
-c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?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;p<t;p++){var x=m[p];if(x){x=x[g];for(var C=false;x;){if(x.sizcache===o){C=m[x.sizset];break}if(x.nodeType===1&&!q){x.sizcache=o;x.sizset=p}if(x.nodeName.toLowerCase()===j){C=x;break}x=x[g]}m[p]=C}}}function b(g,j,o,m,p,q){p=0;for(var t=m.length;p<t;p++){var x=m[p];if(x){x=x[g];for(var C=false;x;){if(x.sizcache===o){C=m[x.sizset];break}if(x.nodeType===1){if(!q){x.sizcache=o;x.sizset=p}if(typeof j!=="string"){if(x===j){C=true;break}}else if(l.filter(j,
-[x]).length>0){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;j<g.length;j++)g[j]===g[j-1]&&g.splice(j--,1)}return g};l.matches=function(g,j){return l(g,null,null,j)};l.matchesSelector=function(g,j){return l(j,null,null,[g]).length>0};l.find=function(g,j,o){var m;if(!g)return[];for(var p=0,q=n.order.length;p<q;p++){var t=n.order[p],x;if(x=n.leftMatch[t].exec(g)){var C=x[1];x.splice(1,1);if(C.substr(C.length-1)!=="\\"){x[1]=(x[1]||"").replace(/\\/g,"");m=n.find[t](x,j,o);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=j.getElementsByTagName("*"));
-return{set:m,expr:g}};l.filter=function(g,j,o,m){for(var p=g,q=[],t=j,x,C,P=j&&j[0]&&l.isXML(j[0]);g&&j.length;){for(var N in n.filter)if((x=n.leftMatch[N].exec(g))!=null&&x[2]){var R=n.filter[N],Q,L;L=x[1];C=false;x.splice(1,1);if(L.substr(L.length-1)!=="\\"){if(t===q)q=[];if(n.preFilter[N])if(x=n.preFilter[N](x,t,o,q,m,P)){if(x===true)continue}else C=Q=true;if(x)for(var i=0;(L=t[i])!=null;i++)if(L){Q=R(L,x,i,t);var r=m^!!Q;if(o&&Q!=null)if(r)C=true;else t[i]=false;else if(r){q.push(L);C=true}}if(Q!==
-A){o||(t=q);g=g.replace(n.match[N],"");if(!C)return[];break}}}if(g===p)if(C==null)l.error(g);else break;p=g}return t};l.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=l.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
-POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,j){var o=typeof j==="string",m=o&&!/\W/.test(j);o=o&&!m;if(m)j=j.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=o||q&&q.nodeName.toLowerCase()===
-j?q||false:q===j}o&&l.filter(j,g,true)},">":function(g,j){var o=typeof j==="string",m,p=0,q=g.length;if(o&&!/\W/.test(j))for(j=j.toLowerCase();p<q;p++){if(m=g[p]){o=m.parentNode;g[p]=o.nodeName.toLowerCase()===j?o:false}}else{for(;p<q;p++)if(m=g[p])g[p]=o?m.parentNode:m.parentNode===j;o&&l.filter(j,g,true)}},"":function(g,j,o){var m=e++,p=b,q;if(typeof j==="string"&&!/\W/.test(j)){q=j=j.toLowerCase();p=a}p("parentNode",j,m,g,q,o)},"~":function(g,j,o){var m=e++,p=b,q;if(typeof j==="string"&&!/\W/.test(j)){q=
-j=j.toLowerCase();p=a}p("previousSibling",j,m,g,q,o)}},find:{ID:function(g,j,o){if(typeof j.getElementById!=="undefined"&&!o)return(g=j.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,j){if(typeof j.getElementsByName!=="undefined"){for(var o=[],m=j.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&o.push(m[p]);return o.length===0?null:o}},TAG:function(g,j){return j.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,j,o,m,p,q){g=" "+g[1].replace(/\\/g,
-"")+" ";if(q)return g;q=0;for(var t;(t=j[q])!=null;q++)if(t)if(p^(t.className&&(" "+t.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=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 j<o[3]-0},gt:function(g,j,o){return j>o[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<m;o++)if(j[o]===g)return false;return true}else l.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,j){var o=j[1],m=g;switch(o){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(o===
-"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":o=j[2];var p=j[3];if(o===1&&p===0)return true;var q=j[0],t=g.parentNode;if(t&&(t.sizcache!==q||!g.nodeIndex)){var x=0;for(m=t.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++x;t.sizcache=q}m=g.nodeIndex-p;return o===0?m===0:m%o===0&&m/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<p;m++)o.push(g[m]);else for(;g[m];m++)o.push(g[m]);return o}}var w,G;if(u.documentElement.compareDocumentPosition)w=function(g,j){if(g===j){h=true;return 0}if(!g.compareDocumentPosition||!j.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(j)&4?-1:1};else{w=function(g,j){var o=[],m=[],p=g.parentNode,q=j.parentNode,t=p;if(g===j){h=true;return 0}else if(p===q)return G(g,j);else if(p){if(!q)return 1}else return-1;
-for(;t;){o.unshift(t);t=t.parentNode}for(t=q;t;){m.unshift(t);t=t.parentNode}p=o.length;q=m.length;for(t=0;t<p&&t<q;t++)if(o[t]!==m[t])return G(o[t],m[t]);return t===p?G(g,m[t],-1):G(o[t],j,1)};G=function(g,j,o){if(g===j)return o;for(g=g.nextSibling;g;){if(g===j)return-1;g=g.nextSibling}return 1}}l.getText=function(g){for(var j="",o,m=0;g[m];m++){o=g[m];if(o.nodeType===3||o.nodeType===4)j+=o.nodeValue;else if(o.nodeType!==8)j+=l.getText(o.childNodes)}return j};(function(){var g=u.createElement("div"),
-j="script"+(new Date).getTime();g.innerHTML="<a name='"+j+"'/>";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="<a href='#'></a>";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="<p class='TEST'></p>";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="<div class='test e'></div><div class='test'></div>";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;p<t;p++)l(g,q[p],o);return l.filter(m,o)};c.find=l;c.expr=l.selectors;c.expr[":"]=c.expr.filters;c.unique=l.uniqueSort;c.text=l.getText;c.isXMLDoc=l.isXML;c.contains=l.contains})();var Wa=/Until$/,Xa=/^(?:parents|prevUntil|prevAll)/,Ya=/,/,Ja=/^.[^:#\[\.,]*$/,Za=Array.prototype.slice,$a=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("",
-"find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var k=0;k<d;k++)if(b[k]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(ka(this,a,false),"not",a)},filter:function(a){return this.pushStack(ka(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},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<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-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<f;e++)for(h=this[e];h;)if(k?k.index(h)>-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=/<tbody/i,bb=/<|&#?\w+;/,Aa=/<(?:script|object|embed|option|style)/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,cb=/\=([^="'>\s]+\/)>/g,O={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],
-area:[1,"<map>","</map>"],_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<div>","</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></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?
-this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,
-true)},domManip:function(a,b,d){var e,f,h=a[0],k=[],l;if(!c.support.checkClone&&arguments.length===3&&typeof h==="string"&&Ba.test(h))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(h))return this.each(function(s){var v=c(this);a[0]=h.call(this,s,b?v.html():A);v.domManip(a,b,d)});if(this[0]){e=h&&h.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);l=e.fragment;if(f=l.childNodes.length===1?l=l.firstChild:
-l.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var n=this.length;f<n;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):this[f]:this[f],f>0||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;f<h;f++){var k=(f>0?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></$2>");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]==="<table>"&&!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\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/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("<div>").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",