diff --git a/lib/conf.d/minifyGroupsConfig.php b/lib/conf.d/minifyGroupsConfig.php index 3ea480df64..e9e8c8f5af 100644 --- a/lib/conf.d/minifyGroupsConfig.php +++ b/lib/conf.d/minifyGroupsConfig.php @@ -36,8 +36,6 @@ $groups = array( , '//include/jslibs/jquery.contextmenu_scroll.js'), 'admin' => array( '//assets/modernizr/modernizr.js' - ,'//include/jslibs/jquery.validate.js' - , '//include/jslibs/jquery.validate.password.js' , '//include/jslibs/jquery-ui-1.8.24.js' , '//include/jslibs/jquery.cookie.js' , '//include/jslibs/jquery-treeview/jquery.treeview.js' diff --git a/www/include/jslibs/jquery-validate.password/demo/bg.gif b/www/include/jslibs/jquery-validate.password/demo/bg.gif deleted file mode 100644 index 2c7c358780..0000000000 Binary files a/www/include/jslibs/jquery-validate.password/demo/bg.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validate.password/demo/checked.gif b/www/include/jslibs/jquery-validate.password/demo/checked.gif deleted file mode 100644 index 5e33a78dc0..0000000000 Binary files a/www/include/jslibs/jquery-validate.password/demo/checked.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validate.password/demo/index.html b/www/include/jslibs/jquery-validate.password/demo/index.html deleted file mode 100644 index 9101271d7c..0000000000 --- a/www/include/jslibs/jquery-validate.password/demo/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - -jQuery Validation Plugin Password Extension demo - - - - - - - - - Plain - - Localized - - Integrated - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validate.password/demo/left_white.png b/www/include/jslibs/jquery-validate.password/demo/left_white.png deleted file mode 100644 index b889960cb0..0000000000 Binary files a/www/include/jslibs/jquery-validate.password/demo/left_white.png and /dev/null differ diff --git a/www/include/jslibs/jquery-validate.password/demo/localized.html b/www/include/jslibs/jquery-validate.password/demo/localized.html deleted file mode 100644 index ba96d1293e..0000000000 --- a/www/include/jslibs/jquery-validate.password/demo/localized.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - -jQuery Validation Plugin Password Extension demo - - - - - - - - - - - -
-
- - -
- -
-
-   -
-
-
- - - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validate.password/demo/milk.css b/www/include/jslibs/jquery-validate.password/demo/milk.css deleted file mode 100644 index 49adb66911..0000000000 --- a/www/include/jslibs/jquery-validate.password/demo/milk.css +++ /dev/null @@ -1,236 +0,0 @@ -/* GENERAL ELEMENTS */ - -* { margin: 0; padding: 0; } - -body, input, select, textarea { font-family: verdana, arial, helvetica, sans-serif; font-size: 11px; } -body { color: #333; background-color: #fff; text-align: center; } - -a:link { color:#0060BF; text-decoration: underline; } -a:visited { color:#0060BF; text-decoration: underline; } -a:active { color:#0060BF; text-decoration: underline; } -a:hover { color:#000000; text-decoration: underline; } - -h1, h2, h3, h4, h5, h6 { font-family: "Lucida Grande", "Lucida Sans Unicode", geneva, verdana, arial, helvetica, sans-serif; font-weight: bold; color: #666; } -h1 { font-size: 1.8em; margin: 0em 0em 0.6em 0em; color: #EC5800; } -h2 { font-size: 1.5em; margin: 1.2em 0em 0.4em 0em; } -h3 { font-size: 1.4em; margin: 1.2em 0em 0.4em 0em; color: #EC5800; } -h4 { font-size: 1.2em; margin: 1.2em 0em 0.4em 0em; } -h5 { font-size: 1.0em; margin: 1.2em 0em 0.4em 0em; } -h6 { font-size: 0.8em; margin: 1.2em 0em 0.4em 0em; } - -img { border: 0px; } - -p { font-size: 1.0em; line-height: 1.3em; margin: 1.2em 0em 1.2em 0em; } -li > p { margin-top: 0.2em; } -pre { font-family: monospace; font-size: 1.0em; } -strong, b { font-weight: bold; } - -/* PAGE ELEMENTS */ - -/* Content */ - -#content { margin: 0em auto; width: 765px; padding: 10px 0 10px 0; text-align: left; /* Win IE5 */ } -.content { margin-left: 4.5em; margin-right: 4.5em; } -.content ol, .content ul, .content li { font-size: 1.0em; line-height: 1.3em; margin: 0.2em 0 0.1em 1.5em; } -.content ol.terms li { margin-bottom: 1em; } - -/* Header */ - -#header { padding-bottom: 10em; } -#headerlogo { float: left; } -#headerlogo img { width: 188px; height: 83px; } -#headernav { float: right; } - -label { font-weight: bold; } -#reminders label { font-weight: normal; } - -table.tabbedtable { padding-left: 3em; } -table.tabbedtable td { padding-bottom: 5px; } -table.tabbedtable label { text-align: right; padding-right: 9px; } -.hiddenlabel { visibility: hidden; } -.largelink { border: 1px solid #cacaca; padding: 10px; background-color: #E8EEF7; font-size: 1.2em; font-weight: bold; } -.largelinkwrap { padding-top: 10px; padding-bottom: 10px; } - - - -#signuptab { - float:left; - width:100%; - background:#fff url("bg.gif") repeat-x bottom; - font-size: 1.0em; - line-height: normal; -} -#signuptab ul { - margin:0; - padding: 0px 10px 0px 10px; - list-style:none; -} -#signuptab li { - float:left; - background:url("left_white.png") no-repeat left top; - margin:0; - padding:0 3px 0 9px; - border-bottom:1px solid #CACACA; -} -#signuptab a { - float:left; - display:block; - width:.1em; - background:url("right_white.png") no-repeat right top; - padding:2px 15px 0px 6px; - text-decoration:none; - font-weight:bold; - color:#fff; - white-space: nowrap; -} -#signuptab > ul a {width:auto;} -/* Commented Backslash Hack hides rule from IE5-Mac \*/ -#signuptab a {float:none;} -/* End IE5-Mac hack */ -#signuptab a:hover { - color:#333; -} -#signuptab #signupcurrent { - background-position:0 -150px; - border-width:0; -} -#signuptab #signupcurrent a { - background-position:100% -150px; - padding-bottom:1px; - color:#000; -} -#signuptab li:hover, #signuptab li:hover a { - background-position:0% -150px; - color:#000; -} -#signuptab li:hover a { - background-position:100% -150px; -} - -/* Signup box */ - -#signupbox { - width: 100%; - text-align: center; - margin: 0em auto; -} - -#signupwrap { - border: 1px solid #CACACA; - border-top: 0; - text-align: left; - padding: 35px 10px 20px 30px; - clear: both; -} - -/* Unsupported browsers */ - -.orange_rbcontent { padding: 0.4em; } -.orange_rbroundbox { width: 100%; } - -#unsupported { - font-weight: bold; - text-align: left; -} - -/*#content { - padding-top: 15px; -}*/ - -/* Signup form */ - -#signupform table { - border-spacing: 0px; - border-collapse: collapse; - empty-cells: show; -} - -#signupform .label { - padding-top: 2px; - padding-right: 8px; - vertical-align: top; - text-align: right; - width: 125px; - white-space: nowrap; -} - -#signupform .field { - padding-bottom: 10px; - white-space: nowrap; -} - -#signupform .status { - padding-top: 2px; - padding-left: 8px; - vertical-align: top; - width: 246px; - white-space: nowrap; -} - -#signupform .textfield { - width: 150px; -} - -#signupform label.error { - background:url("unchecked.gif") no-repeat 0px 0px; - padding-left: 16px; - padding-bottom: 2px; - font-weight: bold; - color: #EA5200; -} - -#signupform label.checked { - background:url("checked.gif") no-repeat 0px 0px; -} - -#signupform .success_msg { - font-weight: bold; - color: #0060BF; - margin-left: 19px; -} - -#signupform #dateformatStatus, #signupform #termsStatus { - margin-left: 6px; -} - -#signupform #dateformat_eu { - vertical-align: middle; -} - -#signupform #ldateformat_eu { - font-weight: normal; - vertical-align: middle; -} - -#signupform #dateformat_am { - vertical-align: middle; -} - -#signupform #ldateformat_am { - font-weight: normal; - vertical-align: middle; -} - -#signupform #termswrap { - float: left; -} - -#signupform #terms { - vertical-align: middle; - float: left; - display: block; - margin-right: 5px; -} - -#signupform #lterms { - font-weight: normal; - vertical-align: middle; - float: left; - display: block; - width: 350px; - white-space: normal; -} - -#signupform #lsignupsubmit { - visibility: hidden; -} \ No newline at end of file diff --git a/www/include/jslibs/jquery-validate.password/demo/milk.html b/www/include/jslibs/jquery-validate.password/demo/milk.html deleted file mode 100644 index 043a6efb35..0000000000 --- a/www/include/jslibs/jquery-validate.password/demo/milk.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - -jQuery Validation Plugin Password Extension demo - - - - - - - - - - - - - -
- -
- - -
- - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - -
-
-
 
-
-
-
-
-
- -
-
-
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validate.password/demo/milk.png b/www/include/jslibs/jquery-validate.password/demo/milk.png deleted file mode 100644 index b5e7151578..0000000000 Binary files a/www/include/jslibs/jquery-validate.password/demo/milk.png and /dev/null differ diff --git a/www/include/jslibs/jquery-validate.password/demo/plain.html b/www/include/jslibs/jquery-validate.password/demo/plain.html deleted file mode 100644 index f06c98cd0e..0000000000 --- a/www/include/jslibs/jquery-validate.password/demo/plain.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - -jQuery Validation Plugin Password Extension demo - - - - - - - - - - - - - -
- - -
-
 
-
-
-
-
-
- - - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validate.password/demo/right_white.png b/www/include/jslibs/jquery-validate.password/demo/right_white.png deleted file mode 100644 index 393bbe2bab..0000000000 Binary files a/www/include/jslibs/jquery-validate.password/demo/right_white.png and /dev/null differ diff --git a/www/include/jslibs/jquery-validate.password/demo/unchecked.gif b/www/include/jslibs/jquery-validate.password/demo/unchecked.gif deleted file mode 100644 index 06ecaba118..0000000000 Binary files a/www/include/jslibs/jquery-validate.password/demo/unchecked.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validate.password/jquery.validate.password.css b/www/include/jslibs/jquery-validate.password/jquery.validate.password.css deleted file mode 100644 index 0ad8d992dc..0000000000 --- a/www/include/jslibs/jquery-validate.password/jquery.validate.password.css +++ /dev/null @@ -1,46 +0,0 @@ -.password-meter { - position:relative; - width: 180px; -} -.password-meter-message { - text-align: right; - font-weight: bold; - color: #676767; -} -.password-meter-bg, .password-meter-bar { - height: 4px; -} -.password-meter-bg { - top: 8px; - background: #e0e0e0; -} - -.password-meter-message-very-weak { - color: #aa0033; -} -.password-meter-message-weak { - color: #f5ac00; -} -.password-meter-message-good { - color: #6699cc; -} -.password-meter-message-strong { - color: #008000; -} - -.password-meter-bg .password-meter-very-weak { - background: #aa0033; - width: 30px; -} -.password-meter-bg .password-meter-weak { - background: #f5ac00; - width: 60px; -} -.password-meter-bg .password-meter-good { - background: #6699cc; - width: 135px; -} -.password-meter-bg .password-meter-strong { - background: #008000; - width: 180px; -} \ No newline at end of file diff --git a/www/include/jslibs/jquery-validate.password/jquery.validate.password.js b/www/include/jslibs/jquery-validate.password/jquery.validate.password.js deleted file mode 100644 index 46f2c8efd6..0000000000 --- a/www/include/jslibs/jquery-validate.password/jquery.validate.password.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * jQuery validate.password plug-in 1.0 - * - * http://bassistance.de/jquery-plugins/jquery-plugin-validate.password/ - * - * Copyright (c) 2009 Jörn Zaefferer - * - * $Id$ - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - */ -(function($) { - - var LOWER = /[a-z]/, - UPPER = /[A-Z]/, - DIGIT = /[0-9]/, - DIGITS = /[0-9].*[0-9]/, - SPECIAL = /[^a-zA-Z0-9]/, - SAME = /^(.)\1+$/; - - function rating(rate, message) { - return { - rate: rate, - messageKey: message - }; - } - - function uncapitalize(str) { - return str.substring(0, 1).toLowerCase() + str.substring(1); - } - - $.validator.passwordRating = function(password, username) { - if (!password || password.length < 8) - return rating(0, "too-short"); - if (username && password.toLowerCase().match(username.toLowerCase())) - return rating(0, "similar-to-username"); - if (SAME.test(password)) - return rating(1, "very-weak"); - - var lower = LOWER.test(password), - upper = UPPER.test(uncapitalize(password)), - digit = DIGIT.test(password), - digits = DIGITS.test(password), - special = SPECIAL.test(password); - - if (lower && upper && digit || lower && digits || upper && digits || special) - return rating(4, "strong"); - if (lower && upper || lower && digit || upper && digit) - return rating(3, "good"); - return rating(2, "weak"); - } - - $.validator.passwordRating.messages = { - "similar-to-username": "Too similar to username", - "too-short": "Too short", - "very-weak": "Very weak", - "weak": "Weak", - "good": "Good", - "strong": "Strong" - } - - $.validator.addMethod("password", function(value, element, usernameField) { - // use untrimmed value - var password = element.value, - // get username for comparison, if specified - username = $(typeof usernameField != "boolean" ? usernameField : []); - - var rating = $.validator.passwordRating(password, username.val()); - // update message for this field - - var meter = $(".password-meter", element.form); - - meter.find(".password-meter-bar").removeClass().addClass("password-meter-bar").addClass("password-meter-" + rating.messageKey); - meter.find(".password-meter-message") - .removeClass() - .addClass("password-meter-message") - .addClass("password-meter-message-" + rating.messageKey) - .text($.validator.passwordRating.messages[rating.messageKey]); - // display process bar instead of error message - - return rating.rate > 2; - }, " "); - // manually add class rule, to make username param optional - $.validator.classRuleSettings.password = { password: true }; - -})(jQuery); diff --git a/www/include/jslibs/jquery-validate.password/lib/jquery.js b/www/include/jslibs/jquery-validate.password/lib/jquery.js deleted file mode 100644 index 423fd775d8..0000000000 --- a/www/include/jslibs/jquery-validate.password/lib/jquery.js +++ /dev/null @@ -1,4376 +0,0 @@ -/*! - * jQuery JavaScript Library v1.3.2 - * http://jquery.com/ - * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License - * - * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) - * Revision: 6246 - */ -(function(){ - -var - // Will speed up references to window, and allows munging its name. - window = this, - // Will speed up references to undefined, and allows munging its name. - undefined, - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - // Map over the $ in case of overwrite - _$ = window.$, - - jQuery = window.jQuery = window.$ = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context ); - }, - - // A simple way to check for HTML strings or ID strings - // (both of which we optimize for) - quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, - // Is it a simple selector - isSimple = /^.[^:#\[\.,]*$/; - -jQuery.fn = jQuery.prototype = { - init: function( selector, context ) { - // Make sure that a selection was provided - selector = selector || document; - - // Handle $(DOMElement) - if ( selector.nodeType ) { - this[0] = selector; - this.length = 1; - this.context = selector; - return this; - } - // Handle HTML strings - if ( typeof selector === "string" ) { - // Are we dealing with HTML string or an ID? - var match = quickExpr.exec( selector ); - - // Verify a match, and that no context was specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) - selector = jQuery.clean( [ match[1] ], context ); - - // HANDLE: $("#id") - else { - var elem = document.getElementById( match[3] ); - - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem && elem.id != match[3] ) - return jQuery().find( selector ); - - // Otherwise, we inject the element directly into the jQuery object - var ret = jQuery( elem || [] ); - ret.context = document; - ret.selector = selector; - return ret; - } - - // HANDLE: $(expr, [context]) - // (which is just equivalent to: $(content).find(expr) - } else - return jQuery( context ).find( selector ); - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) - return jQuery( document ).ready( selector ); - - // Make sure that old selector state is passed along - if ( selector.selector && selector.context ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return this.setArray(jQuery.isArray( selector ) ? - selector : - jQuery.makeArray(selector)); - }, - - // Start with an empty selector - selector: "", - - // The current version of jQuery being used - jquery: "1.3.2", - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num === undefined ? - - // Return a 'clean' array - Array.prototype.slice.call( this ) : - - // Return just the object - this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems, name, selector ) { - // Build a new jQuery matched element set - var ret = jQuery( elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - ret.context = this.context; - - if ( name === "find" ) - ret.selector = this.selector + (this.selector ? " " : "") + selector; - else if ( name ) - ret.selector = this.selector + "." + name + "(" + selector + ")"; - - // Return the newly-formed element set - return ret; - }, - - // Force the current matched set of elements to become - // the specified array of elements (destroying the stack in the process) - // You should use pushStack() in order to do this, but maintain the stack - setArray: function( elems ) { - // Resetting the length to 0, then using the native Array push - // is a super-fast way to populate an object with array-like properties - this.length = 0; - Array.prototype.push.apply( this, elems ); - - return this; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem && elem.jquery ? elem[0] : elem - , this ); - }, - - attr: function( name, value, type ) { - var options = name; - - // Look for the case where we're accessing a style value - if ( typeof name === "string" ) - if ( value === undefined ) - return this[0] && jQuery[ type || "attr" ]( this[0], name ); - - else { - options = {}; - options[ name ] = value; - } - - // Check to see if we're setting style values - return this.each(function(i){ - // Set all the styles - for ( name in options ) - jQuery.attr( - type ? - this.style : - this, - name, jQuery.prop( this, options[ name ], type, i, name ) - ); - }); - }, - - css: function( key, value ) { - // ignore negative width and height values - if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) - value = undefined; - return this.attr( key, value, "curCSS" ); - }, - - text: function( text ) { - if ( typeof text !== "object" && text != null ) - return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); - - var ret = ""; - - jQuery.each( text || this, function(){ - jQuery.each( this.childNodes, function(){ - if ( this.nodeType != 8 ) - ret += this.nodeType != 1 ? - this.nodeValue : - jQuery.fn.text( [ this ] ); - }); - }); - - return ret; - }, - - wrapAll: function( html ) { - if ( this[0] ) { - // The elements to wrap the target around - var wrap = jQuery( html, this[0].ownerDocument ).clone(); - - if ( this[0].parentNode ) - wrap.insertBefore( this[0] ); - - wrap.map(function(){ - var elem = this; - - while ( elem.firstChild ) - elem = elem.firstChild; - - return elem; - }).append(this); - } - - return this; - }, - - wrapInner: function( html ) { - return this.each(function(){ - jQuery( this ).contents().wrapAll( html ); - }); - }, - - wrap: function( html ) { - return this.each(function(){ - jQuery( this ).wrapAll( html ); - }); - }, - - append: function() { - return this.domManip(arguments, true, function(elem){ - if (this.nodeType == 1) - this.appendChild( elem ); - }); - }, - - prepend: function() { - return this.domManip(arguments, true, function(elem){ - if (this.nodeType == 1) - this.insertBefore( elem, this.firstChild ); - }); - }, - - before: function() { - return this.domManip(arguments, false, function(elem){ - this.parentNode.insertBefore( elem, this ); - }); - }, - - after: function() { - return this.domManip(arguments, false, function(elem){ - this.parentNode.insertBefore( elem, this.nextSibling ); - }); - }, - - end: function() { - return this.prevObject || jQuery( [] ); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: [].push, - sort: [].sort, - splice: [].splice, - - find: function( selector ) { - if ( this.length === 1 ) { - var ret = this.pushStack( [], "find", selector ); - ret.length = 0; - jQuery.find( selector, this[0], ret ); - return ret; - } else { - return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){ - return jQuery.find( selector, elem ); - })), "find", selector ); - } - }, - - clone: function( events ) { - // Do the clone - var ret = this.map(function(){ - if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { - // IE copies events bound via attachEvent when - // using cloneNode. Calling detachEvent on the - // clone will also remove the events from the orignal - // In order to get around this, we use innerHTML. - // Unfortunately, this means some modifications to - // attributes in IE that are actually only stored - // as properties will not be copied (such as the - // the name attribute on an input). - var html = this.outerHTML; - if ( !html ) { - var div = this.ownerDocument.createElement("div"); - div.appendChild( this.cloneNode(true) ); - html = div.innerHTML; - } - - return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; - } else - return this.cloneNode(true); - }); - - // Copy the events from the original to the clone - if ( events === true ) { - var orig = this.find("*").andSelf(), i = 0; - - ret.find("*").andSelf().each(function(){ - if ( this.nodeName !== orig[i].nodeName ) - return; - - var events = jQuery.data( orig[i], "events" ); - - for ( var type in events ) { - for ( var handler in events[ type ] ) { - jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); - } - } - - i++; - }); - } - - // Return the cloned set - return ret; - }, - - filter: function( selector ) { - return this.pushStack( - jQuery.isFunction( selector ) && - jQuery.grep(this, function(elem, i){ - return selector.call( elem, i ); - }) || - - jQuery.multiFilter( selector, jQuery.grep(this, function(elem){ - return elem.nodeType === 1; - }) ), "filter", selector ); - }, - - closest: function( selector ) { - var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null, - closer = 0; - - return this.map(function(){ - var cur = this; - while ( cur && cur.ownerDocument ) { - if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) { - jQuery.data(cur, "closest", closer); - return cur; - } - cur = cur.parentNode; - closer++; - } - }); - }, - - not: function( selector ) { - if ( typeof selector === "string" ) - // test special case where just one selector is passed in - if ( isSimple.test( selector ) ) - return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector ); - else - selector = jQuery.multiFilter( selector, this ); - - var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; - return this.filter(function() { - return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; - }); - }, - - add: function( selector ) { - return this.pushStack( jQuery.unique( jQuery.merge( - this.get(), - typeof selector === "string" ? - jQuery( selector ) : - jQuery.makeArray( selector ) - ))); - }, - - is: function( selector ) { - return !!selector && jQuery.multiFilter( selector, this ).length > 0; - }, - - hasClass: function( selector ) { - return !!selector && this.is( "." + selector ); - }, - - val: function( value ) { - if ( value === undefined ) { - var elem = this[0]; - - if ( elem ) { - if( jQuery.nodeName( elem, 'option' ) ) - return (elem.attributes.value || {}).specified ? elem.value : elem.text; - - // We need to handle select boxes special - if ( jQuery.nodeName( elem, "select" ) ) { - var index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type == "select-one"; - - // Nothing was selected - if ( index < 0 ) - return null; - - // Loop through all the selected options - for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { - var option = options[ i ]; - - if ( option.selected ) { - // Get the specifc value for the option - value = jQuery(option).val(); - - // We don't need an array for one selects - if ( one ) - return value; - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - } - - // Everything else, we just grab the value - return (elem.value || "").replace(/\r/g, ""); - - } - - return undefined; - } - - if ( typeof value === "number" ) - value += ''; - - return this.each(function(){ - if ( this.nodeType != 1 ) - return; - - if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) - this.checked = (jQuery.inArray(this.value, value) >= 0 || - jQuery.inArray(this.name, value) >= 0); - - else if ( jQuery.nodeName( this, "select" ) ) { - var values = jQuery.makeArray(value); - - jQuery( "option", this ).each(function(){ - this.selected = (jQuery.inArray( this.value, values ) >= 0 || - jQuery.inArray( this.text, values ) >= 0); - }); - - if ( !values.length ) - this.selectedIndex = -1; - - } else - this.value = value; - }); - }, - - html: function( value ) { - return value === undefined ? - (this[0] ? - this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : - null) : - this.empty().append( value ); - }, - - replaceWith: function( value ) { - return this.after( value ).remove(); - }, - - eq: function( i ) { - return this.slice( i, +i + 1 ); - }, - - slice: function() { - return this.pushStack( Array.prototype.slice.apply( this, arguments ), - "slice", Array.prototype.slice.call(arguments).join(",") ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function(elem, i){ - return callback.call( elem, i, elem ); - })); - }, - - andSelf: function() { - return this.add( this.prevObject ); - }, - - domManip: function( args, table, callback ) { - if ( this[0] ) { - var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), - scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), - first = fragment.firstChild; - - if ( first ) - for ( var i = 0, l = this.length; i < l; i++ ) - callback.call( root(this[i], first), this.length > 1 || i > 0 ? - fragment.cloneNode(true) : fragment ); - - if ( scripts ) - jQuery.each( scripts, evalScript ); - } - - return this; - - function root( elem, cur ) { - return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? - (elem.getElementsByTagName("tbody")[0] || - elem.appendChild(elem.ownerDocument.createElement("tbody"))) : - elem; - } - } -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -function evalScript( i, elem ) { - if ( elem.src ) - jQuery.ajax({ - url: elem.src, - async: false, - dataType: "script" - }); - - else - jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); - - if ( elem.parentNode ) - elem.parentNode.removeChild( elem ); -} - -function now(){ - return +new Date; -} - -jQuery.extend = jQuery.fn.extend = function() { - // copy reference to target object - var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) - target = {}; - - // extend jQuery itself if only one argument is passed - if ( length == i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) - // Extend the base object - for ( var name in options ) { - var src = target[ name ], copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) - continue; - - // Recurse if we're merging object values - if ( deep && copy && typeof copy === "object" && !copy.nodeType ) - target[ name ] = jQuery.extend( deep, - // Never move original objects, clone them - src || ( copy.length != null ? [ ] : { } ) - , copy ); - - // Don't bring in undefined values - else if ( copy !== undefined ) - target[ name ] = copy; - - } - - // Return the modified object - return target; -}; - -// exclude the following css properties to add px -var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, - // cache defaultView - defaultView = document.defaultView || {}, - toString = Object.prototype.toString; - -jQuery.extend({ - noConflict: function( deep ) { - window.$ = _$; - - if ( deep ) - window.jQuery = _jQuery; - - return jQuery; - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return toString.call(obj) === "[object Function]"; - }, - - isArray: function( obj ) { - return toString.call(obj) === "[object Array]"; - }, - - // check if an element is in a (or is an) XML document - isXMLDoc: function( elem ) { - return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || - !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument ); - }, - - // Evalulates a script in a global context - globalEval: function( data ) { - if ( data && /\S/.test(data) ) { - // Inspired by code by Andrea Giammarchi - // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html - var head = document.getElementsByTagName("head")[0] || document.documentElement, - script = document.createElement("script"); - - script.type = "text/javascript"; - if ( jQuery.support.scriptEval ) - script.appendChild( document.createTextNode( data ) ); - else - script.text = data; - - // Use insertBefore instead of appendChild to circumvent an IE6 bug. - // This arises when a base node is used (#2709). - head.insertBefore( script, head.firstChild ); - head.removeChild( script ); - } - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); - }, - - // args is for internal usage only - each: function( object, callback, args ) { - var name, i = 0, length = object.length; - - if ( args ) { - if ( length === undefined ) { - for ( name in object ) - if ( callback.apply( object[ name ], args ) === false ) - break; - } else - for ( ; i < length; ) - if ( callback.apply( object[ i++ ], args ) === false ) - break; - - // A special, fast, case for the most common use of each - } else { - if ( length === undefined ) { - for ( name in object ) - if ( callback.call( object[ name ], name, object[ name ] ) === false ) - break; - } else - for ( var value = object[0]; - i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} - } - - return object; - }, - - prop: function( elem, value, type, i, name ) { - // Handle executable functions - if ( jQuery.isFunction( value ) ) - value = value.call( elem, i ); - - // Handle passing in a number to a CSS property - return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ? - value + "px" : - value; - }, - - className: { - // internal only, use addClass("class") - add: function( elem, classNames ) { - jQuery.each((classNames || "").split(/\s+/), function(i, className){ - if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) - elem.className += (elem.className ? " " : "") + className; - }); - }, - - // internal only, use removeClass("class") - remove: function( elem, classNames ) { - if (elem.nodeType == 1) - elem.className = classNames !== undefined ? - jQuery.grep(elem.className.split(/\s+/), function(className){ - return !jQuery.className.has( classNames, className ); - }).join(" ") : - ""; - }, - - // internal only, use hasClass("class") - has: function( elem, className ) { - return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; - } - }, - - // A method for quickly swapping in/out CSS properties to get correct calculations - swap: function( elem, options, callback ) { - var old = {}; - // Remember the old values, and insert the new ones - for ( var name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - callback.call( elem ); - - // Revert the old values - for ( var name in options ) - elem.style[ name ] = old[ name ]; - }, - - css: function( elem, name, force, extra ) { - if ( name == "width" || name == "height" ) { - var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; - - function getWH() { - val = name == "width" ? elem.offsetWidth : elem.offsetHeight; - - if ( extra === "border" ) - return; - - jQuery.each( which, function() { - if ( !extra ) - val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; - if ( extra === "margin" ) - val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; - else - val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; - }); - } - - if ( elem.offsetWidth !== 0 ) - getWH(); - else - jQuery.swap( elem, props, getWH ); - - return Math.max(0, Math.round(val)); - } - - return jQuery.curCSS( elem, name, force ); - }, - - curCSS: function( elem, name, force ) { - var ret, style = elem.style; - - // We need to handle opacity special in IE - if ( name == "opacity" && !jQuery.support.opacity ) { - ret = jQuery.attr( style, "opacity" ); - - return ret == "" ? - "1" : - ret; - } - - // Make sure we're using the right name for getting the float value - if ( name.match( /float/i ) ) - name = styleFloat; - - if ( !force && style && style[ name ] ) - ret = style[ name ]; - - else if ( defaultView.getComputedStyle ) { - - // Only "float" is needed here - if ( name.match( /float/i ) ) - name = "float"; - - name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); - - var computedStyle = defaultView.getComputedStyle( elem, null ); - - if ( computedStyle ) - ret = computedStyle.getPropertyValue( name ); - - // We should always get a number back from opacity - if ( name == "opacity" && ret == "" ) - ret = "1"; - - } else if ( elem.currentStyle ) { - var camelCase = name.replace(/\-(\w)/g, function(all, letter){ - return letter.toUpperCase(); - }); - - ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; - - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { - // Remember the original values - var left = style.left, rsLeft = elem.runtimeStyle.left; - - // Put in the new values to get a computed value out - elem.runtimeStyle.left = elem.currentStyle.left; - style.left = ret || 0; - ret = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - elem.runtimeStyle.left = rsLeft; - } - } - - return ret; - }, - - clean: function( elems, context, fragment ) { - context = context || document; - - // !context.createElement fails in IE with an error but returns typeof 'object' - if ( typeof context.createElement === "undefined" ) - context = context.ownerDocument || context[0] && context[0].ownerDocument || document; - - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { - var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); - if ( match ) - return [ context.createElement( match[1] ) ]; - } - - var ret = [], scripts = [], div = context.createElement("div"); - - jQuery.each(elems, function(i, elem){ - if ( typeof elem === "number" ) - elem += ''; - - if ( !elem ) - return; - - // Convert html string into DOM nodes - if ( typeof elem === "string" ) { - // Fix "XHTML"-style tags in all browsers - elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ - return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? - all : - front + ">"; - }); - - // Trim whitespace, otherwise indexOf won't work as expected - var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); - - var wrap = - // option or optgroup - !tags.indexOf("", "" ] || - - !tags.indexOf("", "" ] || - - tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && - [ 1, "", "
" ] || - - !tags.indexOf("", "" ] || - - // matched above - (!tags.indexOf("", "" ] || - - !tags.indexOf("", "" ] || - - // IE can't serialize and - - - - - - - - -

jQuery Validation Plugin Demo

-
- -
-
- Login Form (Enter "foobar" as password) -

- - -

-

- - -

-

- -

-
-
- -
Please login!
- -
- - - -

Backend file: form.phps

- -Back to main page - -
- - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/captcha/captcha.js b/www/include/jslibs/jquery-validation/demo/captcha/captcha.js deleted file mode 100644 index 245bc45ab4..0000000000 --- a/www/include/jslibs/jquery-validation/demo/captcha/captcha.js +++ /dev/null @@ -1,27 +0,0 @@ -$(function(){ - $("#refreshimg").click(function(){ - $.post('newsession.php'); - $("#captchaimage").load('image_req.php'); - return false; - }); - - $("#captchaform").validate({ - rules: { - captcha: { - required: true, - remote: "process.php" - } - }, - messages: { - captcha: "Correct captcha is required. Click the captcha to generate a new one" - }, - submitHandler: function() { - alert("Correct captcha!"); - }, - success: function(label) { - label.addClass("valid").text("Valid captcha!") - }, - onkeyup: false - }); - -}); diff --git a/www/include/jslibs/jquery-validation/demo/captcha/fonts/Anorexia.ttf b/www/include/jslibs/jquery-validation/demo/captcha/fonts/Anorexia.ttf deleted file mode 100644 index 453eeb00e8..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/captcha/fonts/Anorexia.ttf and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/captcha/image_req.php b/www/include/jslibs/jquery-validation/demo/captcha/image_req.php deleted file mode 100644 index d79a47bd27..0000000000 --- a/www/include/jslibs/jquery-validation/demo/captcha/image_req.php +++ /dev/null @@ -1,6 +0,0 @@ -Captcha image'; - -?> diff --git a/www/include/jslibs/jquery-validation/demo/captcha/images/.htaccess b/www/include/jslibs/jquery-validation/demo/captcha/images/.htaccess deleted file mode 100644 index f480ff4e48..0000000000 --- a/www/include/jslibs/jquery-validation/demo/captcha/images/.htaccess +++ /dev/null @@ -1 +0,0 @@ -AddType application/x-httpd-php .jpg \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/captcha/images/button.png b/www/include/jslibs/jquery-validation/demo/captcha/images/button.png deleted file mode 100644 index 7ef79de5a1..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/captcha/images/button.png and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/captcha/images/button.psd b/www/include/jslibs/jquery-validation/demo/captcha/images/button.psd deleted file mode 100644 index a3bee84844..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/captcha/images/button.psd and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/captcha/images/image.php b/www/include/jslibs/jquery-validation/demo/captcha/images/image.php deleted file mode 100644 index 049256ca3b..0000000000 --- a/www/include/jslibs/jquery-validation/demo/captcha/images/image.php +++ /dev/null @@ -1,35 +0,0 @@ - diff --git a/www/include/jslibs/jquery-validation/demo/captcha/index.php b/www/include/jslibs/jquery-validation/demo/captcha/index.php deleted file mode 100644 index 13f8880dae..0000000000 --- a/www/include/jslibs/jquery-validation/demo/captcha/index.php +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - AJAX CAPTCHA - - - - - - - - - - - - - - -

AJAX CAPTCHA, based on http://psyrens.com/captcha/

- -
-
-
Captcha image
- - - -
-
- -

If you can't decipher the text on the image, click it to dynamically generate a new one.

- - - - diff --git a/www/include/jslibs/jquery-validation/demo/captcha/newsession.php b/www/include/jslibs/jquery-validation/demo/captcha/newsession.php deleted file mode 100644 index 145ca9bfb6..0000000000 --- a/www/include/jslibs/jquery-validation/demo/captcha/newsession.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/www/include/jslibs/jquery-validation/demo/captcha/process.php b/www/include/jslibs/jquery-validation/demo/captcha/process.php deleted file mode 100644 index 3fbc617782..0000000000 --- a/www/include/jslibs/jquery-validation/demo/captcha/process.php +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/www/include/jslibs/jquery-validation/demo/captcha/rand.php b/www/include/jslibs/jquery-validation/demo/captcha/rand.php deleted file mode 100644 index e3e9389ed5..0000000000 --- a/www/include/jslibs/jquery-validation/demo/captcha/rand.php +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/www/include/jslibs/jquery-validation/demo/captcha/style.css b/www/include/jslibs/jquery-validation/demo/captcha/style.css deleted file mode 100644 index c0bbe5f907..0000000000 --- a/www/include/jslibs/jquery-validation/demo/captcha/style.css +++ /dev/null @@ -1,140 +0,0 @@ -body { - margin: 3% 5%; - padding: 0; - background-color: #fff; - color: #333; - font: 0.9em/1.3 Helvetica, Arial, Verdana, Sans-serif; -} - -a:link, a:visited { - background-color: #fff; - color: #333; - text-decoration: underline; -} - -a:hover, a:focus, a:active { - background-color: #ffb; - color: #454545; - text-decoration: underline; -} - -h1 { - margin: 2% 0%; - padding: 1%; - border-bottom: 1px solid #ddd; - background-color: #f8f8f8; - color: #666; - font: normal 1.5em Helvetica, Arial, Verdana, Sans-serif; -} - -h2 { - margin: 2% 0%; - padding: 1%; - border-bottom: 1px solid #ddd; - background-color: #f8f8f8; - color: #666; - font: normal 1.3em Helvetica, Arial, Verdana, Sans-serif; -} - -h3 { - margin: 2% 0%; - padding: 1%; - border-bottom: 1px solid #ddd; - background-color: #f8f8f8; - color: #666; - font: normal 1.2em Helvetica, Arial, Verdana, Sans-serif; -} - -table { - margin: 0; - padding: 0; - width: 100%; -} - -table th { - border: 1px solid #ddd; - font-weight: bold; - text-align: left; - padding: 1%; -} - -table td { - border: 1px solid #ddd; - padding: 1%; -} - -dl, dt, dd { - margin: 0; - padding: 0; -} - -form { - margin: 0; - padding: 0; -} - -fieldset { - border: 1px solid #ddd; - margin: 0% 0% 2% 0%; - padding: 2%; -} - -fieldset legend { - margin: 0; - padding: 0 4px; - background-color: inherit; - color: #333; -} - -code { - font: 1em "Courier New", Courier, Monospace; -} - -pre code { - font: 1.1em "Courier New", Courier, Monospace; - border-bottom: 1px solid #eee; -} - -img { - border: 1px solid #eee; -} - -p#statusgreen { - font-size: 1.2em; - background-color: #fff; - color: #0a0; -} - -p#statusred { - font-size: 1.2em; - background-color: #fff; - color: #a00; -} - -fieldset label { - display: block; -} - -fieldset label.error { - color: red; -} - -fieldset label.valid { - color: green; -} - -fieldset div#captchaimage { - float: left; - margin-right: 15px; -} - -fieldset input#captcha { - width: 25%; - border: 1px solid #ddd; - padding: 2px; -} - -fieldset input#submit { - display: block; - margin: 2% 0% 0% 0%; -} \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/css/chili.css b/www/include/jslibs/jquery-validation/demo/css/chili.css deleted file mode 100644 index 6990449fce..0000000000 --- a/www/include/jslibs/jquery-validation/demo/css/chili.css +++ /dev/null @@ -1,15 +0,0 @@ -.jscom, .mix htcom { color: #4040c2; } -.com { color: green; } -.regexp { color: maroon; } -.string { color: teal; } -.keywords { color: blue; } -.global { color: #008; } -.numbers { color: #880; } -.comm { color: green; } -.tag { color: blue; } -.entity { color: blue; } -.string { color: teal; } -.aname { color: maroon; } -.avalue { color: maroon; } -.jquery { color: #00a; } -.plugin { color: red; } \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/css/cmxform.css b/www/include/jslibs/jquery-validation/demo/css/cmxform.css deleted file mode 100644 index 120f5a473c..0000000000 --- a/www/include/jslibs/jquery-validation/demo/css/cmxform.css +++ /dev/null @@ -1,46 +0,0 @@ -/********************************** - -Name: cmxform Styles - -***********************************/ -form.cmxform { - width: 370px; - font-size: 1.0em; - color: #333; -} - -form.cmxform legend { - padding-left: 0; -} - -form.cmxform legend, form.cmxform label { - color: #333; -} - -form.cmxform fieldset { - border: none; - border-top: 1px solid #C9DCA6; - background: url(../images/cmxform-fieldset.gif) left bottom repeat-x; - background-color: #F8FDEF; -} - -form.cmxform fieldset fieldset { - background: none; -} - -form.cmxform fieldset p, form.cmxform fieldset fieldset { - padding: 5px 10px 7px; - background: url(../images/cmxform-divider.gif) left bottom repeat-x; -} - -form.cmxform label.error, label.error { - /* remove the next line when you have trouble in IE6 with labels in list */ - color: red; - font-style: italic -} -div.error { display: none; } -input { border: 1px solid black; } -input.checkbox { border: none } -input:focus { border: 1px dotted black; } -input.error { border: 1px dotted red; } -form.cmxform .gray * { color: gray; } \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/css/cmxformTemplate.css b/www/include/jslibs/jquery-validation/demo/css/cmxformTemplate.css deleted file mode 100644 index ac52f71b43..0000000000 --- a/www/include/jslibs/jquery-validation/demo/css/cmxformTemplate.css +++ /dev/null @@ -1,55 +0,0 @@ -/********************************** - -Use: cmxform template - -***********************************/ -form.cmxform fieldset { - margin-bottom: 10px; -} - -form.cmxform legend { - padding: 0 2px; - font-weight: bold; - _margin: 0 -7px; /* IE Win */ -} - -form.cmxform label { - display: inline-block; - line-height: 1.8; - vertical-align: top; - cursor: hand; -} - -form.cmxform fieldset p { - list-style: none; - padding: 5px; - margin: 0; -} - -form.cmxform fieldset fieldset { - border: none; - margin: 3px 0 0; -} - -form.cmxform fieldset fieldset legend { - padding: 0 0 5px; - font-weight: normal; -} - -form.cmxform fieldset fieldset label { - display: block; - width: auto; -} - -form.cmxform label { width: 100px; } /* Width of labels */ -form.cmxform fieldset fieldset label { margin-left: 103px; } /* Width plus 3 (html space) */ -form.cmxform label.error { - margin-left: 103px; - width: 220px; -} - -form.cmxform input.submit { - margin-left: 103px; -} - -/*\*//*/ form.cmxform legend { display: inline-block; } /* IE Mac legend fix */ \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/css/core.css b/www/include/jslibs/jquery-validation/demo/css/core.css deleted file mode 100644 index 84494e8732..0000000000 --- a/www/include/jslibs/jquery-validation/demo/css/core.css +++ /dev/null @@ -1,21 +0,0 @@ -body, div { font-family: 'lucida grande', helvetica, verdana, arial, sans-serif } -body { margin: 0; padding: 0; font-size: small; color: #333 } -h1, h2 { font-family: 'trebuchet ms', verdana, arial; padding: 10px; margin: 0 } -h1 { font-size: large } -#main { padding: 1em; } -#banner { padding: 15px; background-color: #06b; color: white; font-size: large; border-bottom: 1px solid #ccc; - background: url(../images/bg.gif) repeat-x; text-align: center } -#banner a { color: white; } - -p { margin: 10px 0; } - -li { margin-left: 10px; } - -h3 { margin: 1em 0 0; } - -h1 { font-size: 2em; } -h2 { font-size: 1.8em; } -h3 { font-size: 1.6em; } -h4 { font-size: 1.4em; } -h5 { font-size: 1.2em; } - diff --git a/www/include/jslibs/jquery-validation/demo/css/reset.css b/www/include/jslibs/jquery-validation/demo/css/reset.css deleted file mode 100644 index 5c376b3744..0000000000 --- a/www/include/jslibs/jquery-validation/demo/css/reset.css +++ /dev/null @@ -1,61 +0,0 @@ -/********************************** - -Use: Reset Styles for all browsers - -***********************************/ - -body, p, blockquote { - margin: 0; - padding: 0; -} - -a img, iframe { border: none; } - -/* Headers -------------------------------*/ - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; - font-size: 100%; -} - -/* Lists -------------------------------*/ - -ul, ol, dl, li, dt, dd { - margin: 0; - padding: 0; -} - -/* Links -------------------------------*/ - -a, a:link {} -a:visited {} -a:hover {} -a:active {} - -/* Forms -------------------------------*/ - -form, fieldset { - margin: 0; - padding: 0; -} - -fieldset { border: 1px solid #000; } - -legend { - padding: 0; - color: #000; -} - -input, textarea, select { - margin: 0; - padding: 1px; - font-size: 100%; - font-family: inherit; -} - -select { padding: 0; } \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/css/screen.css b/www/include/jslibs/jquery-validation/demo/css/screen.css deleted file mode 100644 index 840f572bb6..0000000000 --- a/www/include/jslibs/jquery-validation/demo/css/screen.css +++ /dev/null @@ -1,11 +0,0 @@ -/********************************** - -Use: Main Screen Import - -***********************************/ - -@import "reset.css"; -@import "core.css"; - -@import "cmxformTemplate.css"; -@import "cmxform.css"; \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/custom-messages-metadata-demo.html b/www/include/jslibs/jquery-validation/demo/custom-messages-metadata-demo.html deleted file mode 100644 index 46e3d6ec0f..0000000000 --- a/www/include/jslibs/jquery-validation/demo/custom-messages-metadata-demo.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - -jQuery validation plug-in - comment form example - - - - - - - - - - - - - - -

jQuery Validation Plugin Demo

-
- -

Take a look at the source to see how messages can be customized with metadata.

- - -
-
- Please enter your email address -

- - - -

-

- -

-
-
- -
-
- Please enter your email address -

- - - -

-

- -

-
-
- -
-
- Please enter your email address -

- - - -

-

- -

-
-
- -Back to main page - - - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/custom-methods-demo.html b/www/include/jslibs/jquery-validation/demo/custom-methods-demo.html deleted file mode 100644 index 89b8fa6a1d..0000000000 --- a/www/include/jslibs/jquery-validation/demo/custom-methods-demo.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - -Test for jQuery validate() plugin - - - - - - - - - - - - - -

jQuery Validation Plugin Demo

-
- -
-

- -
- Example with custom methods and heavily customized error display - - - - - - - - - - - - - - - - -
-
- -
-
- -

Your form contains tons of errors! Please try again.

- -

Back to main page

- -
- - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/dynamic-totals.html b/www/include/jslibs/jquery-validation/demo/dynamic-totals.html deleted file mode 100644 index 5ea4582678..0000000000 --- a/www/include/jslibs/jquery-validation/demo/dynamic-totals.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - -jQuery validation plug-in - dynamic forms demo - - - - - - - - - - - - - -

jQuery Validation Plugin Demo

-
- - - -
-

- -
- Example with custom methods and heavily customized error display - - - - - - - - - - - - - - - -
 
-
-
- - - -

Your form contains tons of errors! Please try again.

- -

Back to main page

- -
- - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/errorcontainer-demo.html b/www/include/jslibs/jquery-validation/demo/errorcontainer-demo.html deleted file mode 100644 index 2c062ea5c0..0000000000 --- a/www/include/jslibs/jquery-validation/demo/errorcontainer-demo.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - -Test for jQuery validate() plugin - - - - - - - - - - - - - - -

jQuery Validation Plugin Demo

-
- -
-
- Login Form -

- - -

-

- - -

-
-
-

- -

-
-
- - -
-

There are serious errors in your form submission, please see below for details.

-
    -
  1. -
  2. -
  3. -
  4. -
  5. -
-
- -
-
- Validating a complete form -

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-
-
- -
-

There are serious errors in your form submission, please see details above the form!

-
- -Back to main page - -
- - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/example.html b/www/include/jslibs/jquery-validation/demo/example.html deleted file mode 100644 index 5b83f6d005..0000000000 --- a/www/include/jslibs/jquery-validation/demo/example.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -jQuery validation plug-in - comment form example - - - - - - - - - - - - - -
-
- Please provide your name, email address (won't be published) and a comment -

- - -

-

- - -

-

- - -

-

- - -

-

- -

-
-
- - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/form.php b/www/include/jslibs/jquery-validation/demo/form.php deleted file mode 100644 index 6d2768b8eb..0000000000 --- a/www/include/jslibs/jquery-validation/demo/form.php +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/www/include/jslibs/jquery-validation/demo/form.phps b/www/include/jslibs/jquery-validation/demo/form.phps deleted file mode 100644 index b25c6ef481..0000000000 --- a/www/include/jslibs/jquery-validation/demo/form.phps +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/images/bg.gif b/www/include/jslibs/jquery-validation/demo/images/bg.gif deleted file mode 100644 index 846add0714..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/images/bg.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/images/checked.gif b/www/include/jslibs/jquery-validation/demo/images/checked.gif deleted file mode 100644 index 5e33a78dc0..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/images/checked.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/images/cmxform-divider.gif b/www/include/jslibs/jquery-validation/demo/images/cmxform-divider.gif deleted file mode 100644 index 718a977cf1..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/images/cmxform-divider.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/images/cmxform-fieldset.gif b/www/include/jslibs/jquery-validation/demo/images/cmxform-fieldset.gif deleted file mode 100644 index 9c48ea4bac..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/images/cmxform-fieldset.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/images/loading.gif b/www/include/jslibs/jquery-validation/demo/images/loading.gif deleted file mode 100644 index 93c46a6cbb..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/images/loading.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/images/unchecked.gif b/www/include/jslibs/jquery-validation/demo/images/unchecked.gif deleted file mode 100644 index 06ecaba118..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/images/unchecked.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/index.html b/www/include/jslibs/jquery-validation/demo/index.html deleted file mode 100644 index 20087f77f8..0000000000 --- a/www/include/jslibs/jquery-validation/demo/index.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - -jQuery validation plug-in - main demo - - - - - - - - - - - - - -

jQuery Validation Plugin Demo

-
- -

Default submitHandler is set to display an alert into of submitting the form

- -
-
- Please provide your name, email address (won't be published) and a comment -

- - -

- - -

-

- - -

-

- - -

-

- -

-
-
- -
-
- Validating a complete form -

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-
- Topics (select at least two) - note: would be hidden when newsletter isn't selected, but is visible here for the demo - - - - -
-

- -

-
-
- -

Syntetic examples

- -

Real-world examples

- - -

Testsuite

- - -
- - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/js/chili-1.7.pack.js b/www/include/jslibs/jquery-validation/demo/js/chili-1.7.pack.js deleted file mode 100644 index 90e7735cbf..0000000000 --- a/www/include/jslibs/jquery-validation/demo/js/chili-1.7.pack.js +++ /dev/null @@ -1 +0,0 @@ -eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8={3b:"1.6",2o:"1B.1Y,1B.23,1B.2e",2i:"",2H:1a,12:"",2C:1a,Z:"",2a:\'$$\',R:"&#F;",1j:"&#F;&#F;&#F;&#F;",1f:"&#F;<1W/>",3c:5(){9 $(y).39("1k")[0]},I:{},N:{}};(5($){$(5(){5 1J(l,a){5 2I(A,h){4 3=(1v h.3=="1h")?h.3:h.3.1w;k.1m({A:A,3:"("+3+")",u:1+(3.c(/\\\\./g,"%").c(/\\[.*?\\]/g,"%").3a(/\\((?!\\?)/g)||[]).u,z:(h.z)?h.z:8.2a})}5 2z(){4 1E=0;4 1x=x 2A;Q(4 i=0;i\';8.N[X]=1H;7($.31.34){4 W=J.1L(Y);4 $W=$(W);$("2d").1O($W)}v{$("2d").1O(Y)}}}5 1q(e,a){4 l=e&&e.1g&&e.1g[0]&&e.1g[0].37;7(!l)l="";l=l.c(/\\r\\n?/g,"\\n");4 C=1J(l,a);7(8.1j){C=C.c(/\\t/g,8.1j)}7(8.1f){C=C.c(/\\n/g,8.1f)}$(e).38(C)}5 1o(q,13){4 1l={12:8.12,2x:q+".1d",Z:8.Z,2w:q+".2u"};4 B;7(13&&1v 13=="2l")B=$.35(1l,13);v B=1l;9{a:B.12+B.2x,1p:B.Z+B.2w}}7($.2q)$.2q({36:"2l.15"});4 2n=x 1u("\\\\b"+8.2i+"\\\\b","2j");4 1e=[];$(8.2o).2D(5(){4 e=y;4 1n=$(e).3i("V");7(!1n){9}4 q=$.3u(1n.c(2n,""));7(\'\'!=q){1e.1m(e);4 f=1o(q,e.15);7(8.2H||e.15){7(!8.N[f.a]){1D{8.N[f.a]=1H;$.3v(f.a,5(M){M.f=f.a;8.I[f.a]=M;7(8.2C){2B(f.1p)}$("."+q).2D(5(){4 f=1o(q,y.15);7(M.f==f.a){1q(y,M)}})})}1I(3s){3t("a 3w Q: "+q+\'@\'+3z)}}}v{4 a=8.I[f.a];7(a){1q(e,a)}}}});7(J.1i&&J.1i.29){5 22(p){7(\'\'==p){9""}1z{4 16=(x 3A()).2k()}19(p.3x(16)>-1);p=p.c(/\\<1W[^>]*?\\>/3y,16);4 e=J.1L(\'<1k>\');e.3l=p;p=e.3m.c(x 1u(16,"g"),\'\\r\\n\');9 p}4 T="";4 18=1G;$(1e).3j().G("1k").U("2c",5(){18=y}).U("1M",5(){7(18==y)T=J.1i.29().3k});$("3n").U("3q",5(){7(\'\'!=T){2p.3r.3o(\'3p\',22(T));2V.2R=1a}}).U("2c",5(){T=""}).U("1M",5(){18=1G})}})})(1Z);8.I["1Y.1d"]={k:{2M:{3:/\\/\\*[^*]*\\*+(?:[^\\/][^*]*\\*+)*\\//},25:{3:/\\ - -
- - - - -
- - -
- - - -
- - - - -
- - - - -

Step 1 of 2

-

-

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- -
- -
- -
- -
- -
- -
- -
- -
-

Login Information

-
- -
- -
- -
-
-
- - -
- -


-
-
- - -
- - - -
-
-
- - - - -
- - - - - - -
- - - - diff --git a/www/include/jslibs/jquery-validation/demo/marketo/jquery.maskedinput.js b/www/include/jslibs/jquery-validation/demo/marketo/jquery.maskedinput.js deleted file mode 100644 index 0cd5cfcd52..0000000000 --- a/www/include/jslibs/jquery-validation/demo/marketo/jquery.maskedinput.js +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Copyright (c) 2007 Josh Bush (digitalbush.com) - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - - * 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 AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Version: 1.1 - * Release: 2007-09-08 - */ -(function($) { - //Helper Functions for Caret positioning - function getCaretPosition(ctl){ - var res = {begin: 0, end: 0 }; - if (ctl.setSelectionRange){ - res.begin = ctl.selectionStart; - res.end = ctl.selectionEnd; - }else if (document.selection && document.selection.createRange){ - var range = document.selection.createRange(); - res.begin = 0 - range.duplicate().moveStart('character', -100000); - res.end = res.begin + range.text.length; - } - return res; - }; - - function setCaretPosition(ctl, pos){ - if(ctl.setSelectionRange){ - ctl.focus(); - ctl.setSelectionRange(pos,pos); - }else if (ctl.createTextRange){ - var range = ctl.createTextRange(); - range.collapse(true); - range.moveEnd('character', pos); - range.moveStart('character', pos); - range.select(); - } - }; - - //Predefined character definitions - var charMap={ - '9':"[0-9]", - 'a':"[A-Za-z]", - '*':"[A-Za-z0-9]" - }; - - //Helper method to inject character definitions - $.mask={ - addPlaceholder : function(c,r){ - charMap[c]=r; - } - }; - - $.fn.unmask=function(){ - return this.trigger("unmask"); - }; - - //Main Method - $.fn.mask = function(mask,settings) { - settings = $.extend({ - placeholder: "_", - completed: null - }, settings); - - //Build Regex for format validation - var reString="^"; - for(var i=0;i 16 && k < 32 ) || (k > 32 && k < 41)); - - //delete selection before proceeding - if((pos.begin-pos.end)!=0 && (!ignore || k==8 || k==46)){ - clearBuffer(pos.begin,pos.end); - } - //backspace and delete get special treatment - if(k==8){//backspace - while(pos.begin-->=0){ - if(!locked[pos.begin]){ - buffer[pos.begin]=settings.placeholder; - if($.browser.opera){ - //Opera won't let you cancel the backspace, so we'll let it backspace over a dummy character. - writeBuffer(pos.begin); - setCaretPosition(this,pos.begin+1); - }else{ - writeBuffer(); - setCaretPosition(this,pos.begin); - } - return false; - } - } - }else if(k==46){//delete - clearBuffer(pos.begin,pos.begin+1); - writeBuffer(); - setCaretPosition(this,pos.begin); - return false; - }else if (k==27){ - clearBuffer(0,mask.length); - writeBuffer(); - setCaretPosition(this,0); - return false; - } - - }; - input.bind("keydown",keydownEvent); - - function keypressEvent(e){ - if(ignore){ - ignore=false; - return; - } - e=e||window.event; - var k=e.charCode||e.keyCode||e.which; - - var pos=getCaretPosition(this); - var caretPos=pos.begin; - - if(e.ctrlKey || e.altKey){//Ignore - return true; - }else if ((k>=41 && k<=122) ||k==32 || k>186){//typeable characters - while(pos.begin=buffer.length) - settings.completed.call(input); - else - setCaretPosition(this,caretPos); - - return false; - }; - input.bind("keypress",keypressEvent); - - /*Helper Methods*/ - function clearBuffer(start,end){ - for(var i=start;i= 6 && /\d/.test(value) && /[a-z]/i.test(value); - if (!result) { - element.value = ""; - var validator = this; - setTimeout(function() { - validator.blockFocusCleanup = true; - element.focus(); - validator.blockFocusCleanup = false; - }, 1); - } - return result; - }, "Your password must be at least 6 characters long and contain at least one number and one character."); - - // a custom method making the default value for companyurl ("http://") invalid, without displaying the "invalid url" message - jQuery.validator.addMethod("defaultInvalid", function(value, element) { - return value != element.defaultValue; - }, ""); - - jQuery.validator.addMethod("billingRequired", function(value, element) { - if ($("#bill_to_co").is(":checked")) - return $(element).parents(".subTable").length; - return !this.optional(element); - }, ""); - - jQuery.validator.messages.required = ""; - $("form").validate({ - invalidHandler: function(e, validator) { - var errors = validator.numberOfInvalids(); - if (errors) { - var message = errors == 1 - ? 'You missed 1 field. It has been highlighted below' - : 'You missed ' + errors + ' fields. They have been highlighted below'; - $("div.error span").html(message); - $("div.error").show(); - } else { - $("div.error").hide(); - } - }, - onkeyup: false, - submitHandler: function() { - $("div.error").hide(); - alert("submit! use link below to go to the other step"); - }, - messages: { - password2: { - required: " ", - equalTo: "Please enter the same password as above" - }, - email: { - required: " ", - email: "Please enter a valid email address, example: you@yourdomain.com", - remote: jQuery.validator.format("{0} is already taken, please enter a different address.") - } - }, - debug:true - }); - - $(".resize").vjustify(); - $("div.buttonSubmit").hoverClass("buttonSubmitHover"); - - if ($.browser.safari) { - $("body").addClass("safari"); - } - - $("input.phone").mask("(999) 999-9999"); - $("input.zipcode").mask("99999"); - var creditcard = $("#creditcard").mask("9999 9999 9999 9999"); - - $("#cc_type").change( - function() { - switch ($(this).val()){ - case 'amex': - creditcard.unmask().mask("9999 999999 99999"); - break; - default: - creditcard.unmask().mask("9999 9999 9999 9999"); - break; - } - } - ); - - // toggle optional billing address - var subTableDiv = $("div.subTableDiv"); - var toggleCheck = $("input.toggleCheck"); - toggleCheck.is(":checked") - ? subTableDiv.hide() - : subTableDiv.show(); - $("input.toggleCheck").click(function() { - if (this.checked == true) { - subTableDiv.slideUp("medium"); - $("form").valid(); - } else { - subTableDiv.slideDown("medium"); - } - }); - - -}); - -$.fn.vjustify = function() { - var maxHeight=0; - $(".resize").css("height","auto"); - this.each(function(){ - if (this.offsetHeight > maxHeight) { - maxHeight = this.offsetHeight; - } - }); - this.each(function(){ - $(this).height(maxHeight); - if (this.offsetHeight > maxHeight) { - $(this).height((maxHeight-(this.offsetHeight-maxHeight))); - } - }); -}; - -$.fn.hoverClass = function(classname) { - return this.hover(function() { - $(this).addClass(classname); - }, function() { - $(this).removeClass(classname); - }); -}; \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/marketo/step2.htm b/www/include/jslibs/jquery-validation/demo/marketo/step2.htm deleted file mode 100644 index 933d682658..0000000000 --- a/www/include/jslibs/jquery-validation/demo/marketo/step2.htm +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - - - - -Subscription Signup | Marketo - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - -
- - - -
- - - - -
- - - - -

Step 2 of 2

-

Billing Information

-

-

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Billing Address: -
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- -
-
- -
- -
- -
- -
- -
- -
-
-
Credit Card Type: - -
Expiration: - - -
- -
- -
-
- - -

- -
-
-
- -
- - - -
-
-
- - - - -
- - - - - - -
- - - - - - - diff --git a/www/include/jslibs/jquery-validation/demo/marketo/stylesheet.css b/www/include/jslibs/jquery-validation/demo/marketo/stylesheet.css deleted file mode 100644 index 7040c4fb05..0000000000 --- a/www/include/jslibs/jquery-validation/demo/marketo/stylesheet.css +++ /dev/null @@ -1,1179 +0,0 @@ -:-moz-any-link :focus { - outline: none; -} - -:focus { - -moz-outline-style: none; - outline: none; -} - -body { - font-size: 80%; - margin: 0; - padding: 0; - font-family: tahoma, geneva, sans-serif; - background-color: #000000; -} - -a { - color: #0653AB; - outline: 0px; - text-decoration: none; -} - -a:hover { - outline: 0px; - text-decoration: underline; -} - -img { - border: 0px; -} - -/* s1.0 - Page Containers */ -#letterbox { - margin: 10px auto; - width: 883px; - background-color: #364158; - border: 8px solid #D4D4D4; - padding: 1px 1px 10px 1px; -} - -#header-background { - background: url(images/back_nav_blue.gif) repeat-x; - margin: 0px auto; - padding: 0px; - height: 73px; - width: 883px; - border-top: 4px solid #CCEAFE; - border-bottom: 4px solid #D4D4D4; -} - -#page-container { - width: 866px; - margin: 0px auto; - margin-top: 33px; /* pad from top menu to actions buts*/ - margin-bottom: -11px; - padding-top: 8px; - padding-bottom: 8px; - background-color: #D4D4D4; /* light grey*/ - border-right: 1px solid #464646; -} - -#page-content-inner { - width: 849px; - margin: 0px auto; - border-top: 1px solid #9F9FA0; - border-left: 1px solid #A2A09A; - background-color: #F4F1E9; - position: relative; -} - -#page-content-inner #col-left { - width: 210px; - float: left; - background-color: #F4F1E9; -} - -#page-content-inner #col-main { - width: 639px; - background-color: #ffffff; - position: absolute; - right: 0px; - top: 0px; -} - -#footer-container { - width: 866px; - position: relative; - left: 8px; - padding: 2px 0px 10px 0px; - background-color: #D4D4D4; /* light grey*/ -} - -/* s2.0 - Global navigation bar */ -.nav-global-container { - width: 880px; - margin: 0px auto; - position: relative; -} - -* html .nav-global-container { /* ie6 fix*/ - margin-bottom: -6px; -} - -.login { - position: absolute; - right: 20px; - text-align: center; -} - -.login a,.login a span { - display: block; - height: 18px; - font-size: 11px; - background: url(images/login-sprite.gif) right -5px no-repeat; - text-decoration: none; - font-weight: bold; - padding: 5px 10px 5px 10px; - position: relative; -} - -.login a:hover { - color: #000000; - text-decoration: underline; -} - -div.login a span { - background-position: left -105px; - width: 4px; - position: absolute; - top: 0px; - left: 0px; - padding: 5px 0px 5px 0px;; -} - -div.login a:hover span { - -} - -.logo { - float: left; - margin: 0px 0px -5px 0px; /* neg marging for ie6 */ -} - -.logo img { - border: 0px; - margin-left: -1px; -} - -.nav-global { - float: left; - width: 645px; - margin: 40px 0px 0px 40px; - background-color: transparent; -} - -.nav-global ul { - margin: 0px; - padding: 0px; - list-style: none; -} - -.nav-global li { - float: left; - white-space: nowrap; -} - -div.nav-global li a,div.nav-global li a span { - background-image: url(images/tab-sprite.gif); - background-position: right 100px; - background-repeat: no-repeat; - height: 32px; - color: #666666; - text-decoration: none; - font: bold 16px 'trebuchet ms'; - margin-right: 15px; - display: block; - position: relative; - padding: 7px 15px 0px 15px; -} - -div.nav-global li a:hover { - background-position: right 0px; - color: #333333; -} - -div.nav-global li a:hover span { - background-position: left -100px; - display: block !important; -} - -div.nav-global li a span { - background-position: left 150px; - width: 4px; - position: absolute; - left: 0px; - top: 0px; - padding: 7px 0px 0px 0px; -} - -body.safari div.nav-global li a span { - display: none; -} - -div.nav-global li a.on,div.nav-global li a.on:hover { - background-position: right -55px; - color: #FFFFFF; -} - -div.nav-global li a.on span,div.nav-global li a.on:hover span { - background-position: left -155px; - display: block !important; -} - -div.action-container { - position: relative; - top: -45px; - cursor: pointer; -} - -div.action-icon-container { - position: absolute; - top: -17px; - left: -17px; - z-index: 10; - width: 100px; - height: 100px; - overflow: hidden; -} - -div.action-icon { - border: 0px; - position: absolute; - top: -0px; - left: 0px; -} - -div.action-button-container { - height: 106px; - width: 180px; - overflow: hidden; - position: absolute; - top: 0px; - left: 0px; - z-index: 5; -} - -img.action-icon { - border: 0px; - position: absolute; - top: 0px; - left: 0px; - z-index: 0 -} - -div.action-text { - z-index: 20; - color: #FFFFFF; - position: absolute; - left: 40px; - top: 12px; - font: 14px tahoma, geneva; - padding-top: 30px; -} - -div.bigbuttons { - top: -20px; -} - -div.action-header { - z-index: 21; - position: absolute; - left: 40px; - top: 10px; -} - -div.action-header b { - font: bold 17px tahoma, geneva; - display: block; - margin-bottom: 10px; - color: #0b2c89; - position: absolute; - top: 0px; - left: 0px; - width: 130px; -} - -div.action-header b.shadow { - top: 1px; - left: 1px; - color: #d5d5d5; -} - -img.action-button { - position: relative; -} - -div.hover img.action-button { - top: -131px; -} - -div.on img.action-button { - top: -261px; -} - -/* s3.0 - top of content Action Buttons */ -.action-buttons { - width: 100%; /* ie6 requires */ -} - -.action-buttons ul { - position: relative; - padding: 0px; -} - -.action-buttons li { - position: relative; /* ie6 fix */ - float: left; - list-style: none; - text-align: center; - line-height: 16px; - margin: -61px 0px 0px 0px; -} - -.action-home li { - margin: -49px 0px 0px 0px; -} - -.action-buttons a { - display: block; - height: 110px; - width: 175px; - padding: 14px 0px 0px 25px; - text-decoration: none; - font-size: 12px; - font-weight: bold; - color: #ffffff; -} - -.action-buttons li span { - color: #053880; - line-height: 47px; - font-size: 17px; -} - -div.action-bottom { - margin: 15px 0px 10px 0px; - float: left; -} - -div.action-bottom a { - height: 61px; - width: 178px; - border: 0px; - background: url(images/action-bottom.gif) no-repeat 0px 0px; - color: #0b2c89; - float: left; - position: relative; - font: bold 17px tahoma, geneva; - text-decoration: none; - margin-right: 10px; -} - -div.action-bottom a span { - position: absolute; - top: 15px; - left: 40px; -} - -div.action-bottom a span.shadow { - top: 16px; - left: 41px; - color: #d4d4d4; -} - -.line-grey { - background: url(images/line-grey.gif) 0 0 repeat-x; - height: 2px; - margin: 8px 25px 20px 0; -} - -/* s4.0 - Home Hero Area */ -.hero-background { - position: relative; - width: 880px; - background: url(images/back_home-hero.jpg) 10px 0px no-repeat; - height: 211px; - margin: -20px 0px 45px 0px; -} - -.hero-text { - float: right; - width: 626px; - margin-top: 26px; -} - -.hero-text a { /* Sign Up Now Button */ - padding: 5px 32px 0px 0px; - float: right; -} - -.hero-text h1 { - font-size: 2.3em; - line-height: 1.2em; - color: #333333; - font-family: Trebuchet MS; - margin: 12px 0px 10px 10px; -} - -.hero-text h2 { - margin: 0px; - font-weight: normal; - font-size: 1.35em; - margin: 5px 0px 13px 10px -} - -/* s4.1 - Home Left Header tab */ -.col-left-header-tab { - position: relative; /* ie6 fix */ - background: url(images/tab_green.gif) 0 0 no-repeat; - height: 30px; - width: 166px; - text-align: center; - color: #ffffff; - font: 20px 'trebuchet ms'; - padding-top: 2px; - margin-top: -41px; - margin-left: 20px; - line-height: 29px; - margin-bottom: 8px; - display: block; -} - -.col-left-header-tab a { - color: #FFFFFF; -} - -.callout-green { - background: url(images/back_green-fade.gif) 0 0 repeat-x; - font-size: 1.2em; - padding: 10px 15px 20px 13px; - color: #303B52; - line-height: 1.4em; -} - -/* s4.2 - Home Left Quote */ -.callout-tan { - color: #666666; -} - -.callout-tan h1 { - background: #F4F1E9 url(images/back_tan-fade.gif) 0 0 repeat-y; - font-size: 1.1em; - text-align: center; - margin: 0px; - padding: 11px 5px 11px 2px; - color: #333333; -} - -.callout-tan p { - margin: 0px; - margin-top: 5px; - line-height: 1.4em; - padding: 5px 10px 7px 13px; -} - -.callout-tan p img { - float: left; - margin: 5px 10px 5px 0px; -} - -.callout-tan div { - text-align: left; - padding: 5px 10px 7px 0px; - font-weight: bold; -} - -/* s4.3 - purple home boxes */ -.box-purple { - background: #C6C8E3 url(images/back_home-icons.png) 0px 0px repeat-x; - border-left: 1px solid #ffffff; - color: #333333; - width: 581px; - padding: 10px 15px 20px 15px; -} - -div.box-purple a { - -} - -.box-purple h1 { - font-size: 1.5em; - margin: 10px 0px -15px 0px; -} - -.box-purple li { - margin: 0px 0px 0px -23px; - line-height: 1.6em; - font-size: 1em; -} - -.box-purple div { - padding: 0px 0px 0px 110px; -} - -.icon-text01 { - background-image: url(images/icon_search-engine-market.png); - background-repeat: no-repeat; -} - -* html .icon-text01 { - width: 460px; /* must have a width or heigh tag for ie6*/ - background-image: none; - filter: progid : DXImageTransform . Microsoft . - AlphaImageLoader(src = "images/icon_search-engine-market.png", - sizingMethod = "crop"); -} - -.icon-text02 { - background: url(images/icon_landing-pages.png) 0 0 no-repeat; -} - -* html .icon-text02 { - width: 460px; /* must have a width or heigh tag for ie6*/ - background-image: none; - filter: progid : DXImageTransform . Microsoft . - AlphaImageLoader(src = "images/icon_landing-pages.png", sizingMethod = - "crop"); -} - -.icon-text03 { - background: url(images/icon_salesforce.png) 0 0 no-repeat; -} - -* html .icon-text03 { - width: 460px; /* must have a width or heigh tag for ie6*/ - background-image: none; - filter: progid : DXImageTransform . Microsoft . - AlphaImageLoader(src = "images/icon_salesforce.png", sizingMethod = - "crop"); -} - -/* s4.4 - news home boxes */ -.callout-news { - color: #555555; - float: left; - width: 49%; - margin: 10px 1px 0px 0px; - padding-bottom: 20px; - text-align: left; -} - -.line-news-r { - border-right: 1px solid #D4D4D4; -} - -.callout-news h1 { - background-color: #EEEEEE; - font-size: 1.2em; - margin: 0px; - padding: 11px 5px 11px 15px; - color: #333333; -} - -.callout-news p { - margin: 10px 0px 0px 10px; - padding: 0px 10px 7px 20px; - background: url(images/news.gif) no-repeat left 1px; -} - -.callout-news p a { - -} - -.callout-news ul { - list-style-type: none; - padding: 0; - margin: 10px 0 0 10px; -} - -.callout-news li { - background: url(images/icon_news.gif) no-repeat left 2px; - padding: 0px 5px 5px 20px; -} - -.callout-news li a { - display: block; - margin-bottom: 5px; -} - -.callout-news div { - text-align: right; -} - -#scrollup { - position: relative; - overflow: hidden; - height: 440px; - width: 200px -} - -.headline { - position: absolute; - top: 600px; - left: 5px; - height: 585px; - width: 190px; - font: normal 12px tahoma, geneva !important; -} - -div.more { - margin: 5px 0px 0px 0px; - padding: 0px 10px 0px 0px; - letter-spacing: inherit; -} - -div.more a { - background: transparent url(images/arrow_r-blue.gif) no-repeat right 2px - ; - font-weight: bold; - padding: 0px 20px 0px 0px; - font-weight: bold; - text-decoration: none; -} - -div.more a:hover { - text-decoration: underline; -} - -/* sX.0 - Left Nav */ -.nav-left-back { - background: url(images/back_nav_side.gif) 0 0 repeat-x; -} - -div.empty { - background: #F1F0E5 url(images/back_green-fade.gif) 0 0 repeat-x; -} - -div.empty div.callout-green { - -} - -.nav-left { - padding-top: 12px; - /*background: url(images/logo_marketo_square.gif) 0 0 no-repeat;*/ - width: 210px; -} - -.nav-left ul { - margin: 0px; - padding: 0px; - list-style: none; -} - -.nav-left li a { - display: block; - height: 24px; - text-decoration: none; - font-size: 12px; - font-weight: bold; - color: #ffffff; - border-top: 1px solid #B3D38D; - border-bottom: 1px solid #7CA84E; - border-left: 1px solid #97B973; - padding: 6px 0px 0px 20px; -} - -.nav-left a:hover,.nav-left a.active:hover,#nav-left-sub a:hover { - color: #4C6F28; - background-color: #F4F1E9; -} - -.nav-left a.open { - background-image: url(images/arrow_d-green.gif); - background-repeat: no-repeat; - background-position: 6px 11px; -} - -.nav-left-header-tab { - position: relative; /* ie6 fix */ - background: url(images/tab_green.gif) 0 0 no-repeat; - height: 32px; - width: 166px; - text-align: center; - color: #ffffff; - margin: -41px 0px 0px 22px; - line-height: 22px; - margin-bottom: 8px; - display: block; -} - -div.empty div.nav-left-header-tab { - background: url(images/tab_green2.gif) 0 0 no-repeat; -} - -.nav-left a.active { - /* background: url(images/arrow_d-green.gif) 5px 10px no-repeat; */ - display: block; - height: 24px; - text-decoration: none; - font-size: 12px; - font-weight: bold; - background-color: #F4F1E9; - color: #4C6F28; - border-top: 1px solid #D1E5BB; - border-bottom: 1px solid #B0CB95; - border-left: 1px solid #DADADA; - padding: 6px 0px 0px 20px; -} - -#nav-left-sub a { - display: block; - height: 24px; - text-decoration: none; - font-size: 12px; - font-weight: bold; - background-color: #D6E8C4; - color: #4C6F28; - border-top: 1px solid #D6E8C4; - border-bottom: 1px solid #B0CB95; - border-left: 1px solid #97B973; - border-right: 1px solid #8DBE5A; - padding: 6px 0px 0px 30px; -} - -* html #nav-left-sub { /* ie6 fix */ - margin-top: -1px; -} - -*+html #nav-left-sub { /* ie7 fix */ - margin-top: -1px; -} - -#nav-left-sub a.active-page { - display: block; - height: 24px; - text-decoration: none; - font-size: 12px; - font-weight: bold; - background-color: #ffffff; - color: #666666; - border-top: 0px solid #7CA84E; - border-bottom: 1px solid #B0CB95; - border-left: 1px solid #97B973; - border-right: 0px solid #8DBE5A; - padding: 6px 0px 0px 30px; - cursor: default; /* turns off hand icon for link */ -} - -/* sX.0 - Main Content */ -.main-content { - color: #666666; - position: absolute; - right: 20px; - padding-top: 20px; - width: 585px; - padding-bottom: 20px; -} - -div.main-content div.main-content { - -} - -.main-content h1 { - color: #5890D1; - font-size: 1.9em; - font-family: Trebuchet MS; - border-bottom: 1px solid #cccccc; - margin: 0px 10px 0px 0px; -} - -.main-content h2 { - color: #666666; - font-size: 1.3em; - font-weight: normal; - margin: 10px 10px 5px 0px; -} - -.main-content p { - margin: 10px 10px 10px 0px; - line-height: 1.55em; -} - -/* sX.1 - Main Content Sub Styles */ -.sub-grey { - border-top: 1px solid #D4D4D4; - border-bottom: 1px solid #D4D4D4; - background-color: #F4F4F4; - margin: 10px 10px 0px 0px; - padding: 0px 10px 20px 15px; -} - -.sub-white { - margin: 10px 10px 0px 0px; - padding: 0px 10px 20px 15px; -} - -img.screen-grab-r { - margin-right: -8px; - text-align: right; - padding: 0px 0px 0px 10px; -} - -div.main-content a.screenshot { - float: right; - padding: 10px 10px 0px 0px -} - -.content-foot { - border-top: 1px solid #D4D4D4; - font-size: .9em; - line-height: 1.45em; - margin: 10px 20px 0px 0px; - padding: 10px 10px 30px 0px; -} - -div.main-content ul { - position: relative; - left: -25px; -} - -div.main-content li { - margin-bottom: 5px; - list-style-type: disc -} - -div.main-content li a { - color: #6A6CB0; -} - -/* sX.0 - Footer */ -div.footer { - color: #666666; - font-size: .85em; - font-weight: normal; - height: 18px; - margin: 0px auto; - font-family: Tahoma, Geneva, sans-serif; - margin-top: 10px; -} - -.footer ul { - list-style-type: none; -} - -.footer li { - float: left; - border-right: 1px solid #666666; - padding: 0px 7px 0px 7px; - margin-top: 3px; -} - -.footer a { - color: #666666; - text-decoration: none; -} - -.footer a:hover { - color: #0653AB; - text-decoration: none; -} - -.footer li.line-off { - border-right: 0px solid #ffffff; -} - -div.footer strong { - font-weight: normal; -} - -/* sX.0 - General Colors */ -.line-grey,.line-grey-tier { - border-top: 1px solid #A3A3A2; -} - -.line-grey-tier { - padding-bottom: 25px; -} - -.bottom { - height: 10px; -} - -div.p10bottom { - padding-bottom: 10px; -} - -.clear { - clear: both; -} - -table.grid { - background: #EEEEEE; -} - -table.grid th { - background-color: #F4F4F4; -} - -table.grid td { - background-color: #FFFFFF; -} - -div.buttonSubmit { - position: relative; -} - -div.buttonSubmit input,div.buttonSubmit span { - height: 36px; - position: relative; - background-image: url(images/button-submit.gif); - background-repeat: no-repeat; - background-position: right 0px; - float: left; - color: #FFFFFF; - font-weight: bold; - padding: 0px 15px 2px 15px; - margin: 20px 0px 20px 0px; - border: 0px; - cursor: pointer; - z-index: 5; -} - -div.buttonSubmit input { - width: auto; -} - -div.buttonSubmit span { - width: 4px; - position: absolute; - left: 0px; - top: 0px; - background-position: left -36px; - padding: 0px 0px 0px 0px; - z-index: 10; -} - -body.safari div.buttonSubmit span { - display: none -} - -div.buttonSubmitHover input { - background-position: right -72px; -} - -div.buttonSubmitHover span { - background-position: left -108px; -} - -a.demoLink { - padding: 1px 10px 0px 17px; - height: 24px; - background: url(images/bullet_triangle_blue.gif) no-repeat 0px 4px; - display: block; - float: left; -} - -div.callout-tan a { - background: none; - color: #0653AB; - margin: auto; - display: block; -} - -div.callout-tan a:hover { - background: none; - color: #0653AB; -} - -label.error { - display: block; - color: red; - font-style: italic; - font-weight: normal; -} - -input.error { - border: 2px solid red; -} - -p.demoBlock { - border-bottom: 1px solid #DDDDDD; - padding-bottom: 10px; -} - -div.left-nav-callout { - height: 200px; - width: 190px; - top: 55px; - left: 5px; - position: relative; - padding-left: 9px; - padding-top: 13px; -} - -div.left-nav-callout img.png { - position: absolute; - z-index: 0; - top: 0px; - left: 0px; -} - -div.left-nav-callout h6 { - font: bold 14px tahoma, geneva; - color: #333333; - height: 36px; - padding-left: 5px; - margin: 0px; - position: relative; - z-index: 10; -} - -div.left-nav-callout a { - background: url(images/monitor24.gif) no-repeat 0px center; - padding: 5px 0px 5px 30px; - display: block; - font: bold 12px tahoma, geneva; - color: #336699; - margin-bottom: 5px; - position: relative; - z-index: 10; - width: 140px; -} - -form table td { - padding: 5px; -} - -form table input { - width: 200px; - padding: 3px; - margin: 0px; -} - -textarea { - width: 400px -} - -td.label { - width: 150px; -} - -tr.required td.label { - font-weight: bold; - background: url(/images/forms/backRequiredGray.gif) no-repeat right - center; -} - -div.subTableDiv { - width: 500px; -} - -div.subTableDiv td.label { - width: 135px; -} - -ul#homeBlog li div.description { - display: none; -} - -td.field input.error, td.field select.error, tr.errorRow td.field input,tr.errorRow td.field select { - border: 2px solid red; - background-color: #FFFFD5; - margin: 0px; - color: red; -} - -tr td.field div.formError { - display: none; - color: #FF0000; -} - -tr.errorRow td.field div.formError { - display: block; - font-weight: normal; -} - -div.error { - color: red; -} - -div.error a { - color: #336699; - font-size: 12px; - text-decoration: underline -} - -div.tooltip { - position: absolute; - left: 30px; - bottom: 0px; - display: none; /* in case javascript is disabled */ - width: 170px; - background-color: #F4F1E9; - z-index: 100; - padding: 10px; - border: 1px solid #CCCCCC; -} - -div.offerbox { - width: 125px; - float: left; - position: relative; -} - -div.offerbox h3 { - font: bold 17px tahoma, geneva; - color: #333333; - height: 55px; - margin: 0px auto; - text-align: center; -} - -div.offerbox h4 { - height: 100px; - font: normal 13px tahoma, geneva; - margin: 0px; -} - -div.offerbox h5 { - font: bold 14px tahoma, geneva; - margin: 0px; - height: 55px; -} - -div.offerbox h5 small { - float: left; - font-weight: normal; - font-size: 10px; -} - -div.offerbox div.learnmore { - padding-left: 25px; -} - -div#marketoEditions { - background: url(images/buynowBack.gif) no-repeat; - width: 584px; - height: 376px; - float: left; - position: relative; - margin-bottom: 10px; -} - -div.offerHeader { - background: #0D8BBD; - position: absolute; - top: 20px; - width: 266px; - height: 34px; - border: 1px solid #e1e4e2; -} - -div.offerHeader span { - font: 20px 'trebuchet ms'; - color: #FFFFFF; - position: absolute; - left: 0px; - top: 0px; -} - -div.offerHeader span.shadow { - font: 20px 'trebuchet ms'; - color: #333333; - position: absolute; -} - -div.offerbox div.buttonSubmit { - margin: 5px 0px 0px 10px; -} - -div.footerAddress { - position: absolute; - bottom: 30px; - left: 20px; - color: #666666; - font-size: 11px; - display: none; -} \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/milk/bg.gif b/www/include/jslibs/jquery-validation/demo/milk/bg.gif deleted file mode 100644 index 2c7c358780..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/milk/bg.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/milk/emails.php b/www/include/jslibs/jquery-validation/demo/milk/emails.php deleted file mode 100644 index 18b6754d63..0000000000 --- a/www/include/jslibs/jquery-validation/demo/milk/emails.php +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/www/include/jslibs/jquery-validation/demo/milk/emails.phps b/www/include/jslibs/jquery-validation/demo/milk/emails.phps deleted file mode 100644 index d2219cc92f..0000000000 --- a/www/include/jslibs/jquery-validation/demo/milk/emails.phps +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/milk/index.html b/www/include/jslibs/jquery-validation/demo/milk/index.html deleted file mode 100644 index 3516800a42..0000000000 --- a/www/include/jslibs/jquery-validation/demo/milk/index.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - -Remember The Milk signup form - jQuery Validate plugin demo - with friendly permission from the RTM team - - - - - - - - - - - - - - -

jQuery Validation Plugin Demo

-
- -
- - -
- - -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
- - - - - - -
-
  -
- - -
-
- -
-
-
-
-
- -
- -
- - - - - - - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/milk/left_white.png b/www/include/jslibs/jquery-validation/demo/milk/left_white.png deleted file mode 100644 index b889960cb0..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/milk/left_white.png and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/milk/milk.css b/www/include/jslibs/jquery-validation/demo/milk/milk.css deleted file mode 100644 index d5f128bf2a..0000000000 --- a/www/include/jslibs/jquery-validation/demo/milk/milk.css +++ /dev/null @@ -1,236 +0,0 @@ -/* GENERAL ELEMENTS */ - -* { margin: 0; padding: 0; } - -body, input, select, textarea { font-family: verdana, arial, helvetica, sans-serif; font-size: 11px; } -body { color: #333; background-color: #fff; text-align: center; } - -a:link { color:#0060BF; text-decoration: underline; } -a:visited { color:#0060BF; text-decoration: underline; } -a:active { color:#0060BF; text-decoration: underline; } -a:hover { color:#000000; text-decoration: underline; } - -h1, h2, h3, h4, h5, h6 { font-family: "Lucida Grande", "Lucida Sans Unicode", geneva, verdana, arial, helvetica, sans-serif; font-weight: bold; color: #666; } -h1 { font-size: 1.8em; margin: 0em 0em 0.6em 0em; color: #EC5800; } -h2 { font-size: 1.5em; margin: 1.2em 0em 0.4em 0em; } -h3 { font-size: 1.4em; margin: 1.2em 0em 0.4em 0em; color: #EC5800; } -h4 { font-size: 1.2em; margin: 1.2em 0em 0.4em 0em; } -h5 { font-size: 1.0em; margin: 1.2em 0em 0.4em 0em; } -h6 { font-size: 0.8em; margin: 1.2em 0em 0.4em 0em; } - -img { border: 0px; } - -p { font-size: 1.0em; line-height: 1.3em; margin: 1.2em 0em 1.2em 0em; } -li > p { margin-top: 0.2em; } -pre { font-family: monospace; font-size: 1.0em; } -strong, b { font-weight: bold; } - -/* PAGE ELEMENTS */ - -/* Content */ - -#content { margin: 0em auto; width: 765px; padding: 10px 0 10px 0; text-align: left; /* Win IE5 */ } -.content { margin-left: 4.5em; margin-right: 4.5em; } -.content ol, .content ul, .content li { font-size: 1.0em; line-height: 1.3em; margin: 0.2em 0 0.1em 1.5em; } -.content ol.terms li { margin-bottom: 1em; } - -/* Header */ - -#header { padding-bottom: 10em; } -#headerlogo { float: left; } -#headerlogo img { width: 188px; height: 83px; } -#headernav { float: right; } - -label { font-weight: bold; } -#reminders label { font-weight: normal; } - -table.tabbedtable { padding-left: 3em; } -table.tabbedtable td { padding-bottom: 5px; } -table.tabbedtable label { text-align: right; padding-right: 9px; } -.hiddenlabel { visibility: hidden; } -.largelink { border: 1px solid #cacaca; padding: 10px; background-color: #E8EEF7; font-size: 1.2em; font-weight: bold; } -.largelinkwrap { padding-top: 10px; padding-bottom: 10px; } - - - -#signuptab { - float:left; - width:100%; - background:#fff url("bg.gif") repeat-x bottom; - font-size: 1.0em; - line-height: normal; -} -#signuptab ul { - margin:0; - padding: 0px 10px 0px 10px; - list-style:none; -} -#signuptab li { - float:left; - background:url("left_white.png") no-repeat left top; - margin:0; - padding:0 3px 0 9px; - border-bottom:1px solid #CACACA; -} -#signuptab a { - float:left; - display:block; - width:.1em; - background:url("right_white.png") no-repeat right top; - padding:2px 15px 0px 6px; - text-decoration:none; - font-weight:bold; - color:#fff; - white-space: nowrap; -} -#signuptab > ul a {width:auto;} -/* Commented Backslash Hack hides rule from IE5-Mac \*/ -#signuptab a {float:none;} -/* End IE5-Mac hack */ -#signuptab a:hover { - color:#333; -} -#signuptab #signupcurrent { - background-position:0 -150px; - border-width:0; -} -#signuptab #signupcurrent a { - background-position:100% -150px; - padding-bottom:1px; - color:#000; -} -#signuptab li:hover, #signuptab li:hover a { - background-position:0% -150px; - color:#000; -} -#signuptab li:hover a { - background-position:100% -150px; -} - -/* Signup box */ - -#signupbox { - width: 100%; - text-align: center; - margin: 0em auto; -} - -#signupwrap { - border: 1px solid #CACACA; - border-top: 0; - text-align: left; - padding: 35px 10px 20px 30px; - clear: both; -} - -/* Unsupported browsers */ - -.orange_rbcontent { padding: 0.4em; } -.orange_rbroundbox { width: 100%; } - -#unsupported { - font-weight: bold; - text-align: left; -} - -/*#content { - padding-top: 15px; -}*/ - -/* Signup form */ - -#signupform table { - border-spacing: 0px; - border-collapse: collapse; - empty-cells: show; -} - -#signupform .label { - padding-top: 2px; - padding-right: 8px; - vertical-align: top; - text-align: right; - width: 125px; - white-space: nowrap; -} - -#signupform .field { - padding-bottom: 10px; - white-space: nowrap; -} - -#signupform .status { - padding-top: 2px; - padding-left: 8px; - vertical-align: top; - width: 246px; - white-space: nowrap; -} - -#signupform .textfield { - width: 150px; -} - -#signupform label.error { - background:url("../images/unchecked.gif") no-repeat 0px 0px; - padding-left: 16px; - padding-bottom: 2px; - font-weight: bold; - color: #EA5200; -} - -#signupform label.checked { - background:url("../images/checked.gif") no-repeat 0px 0px; -} - -#signupform .success_msg { - font-weight: bold; - color: #0060BF; - margin-left: 19px; -} - -#signupform #dateformatStatus, #signupform #termsStatus { - margin-left: 6px; -} - -#signupform #dateformat_eu { - vertical-align: middle; -} - -#signupform #ldateformat_eu { - font-weight: normal; - vertical-align: middle; -} - -#signupform #dateformat_am { - vertical-align: middle; -} - -#signupform #ldateformat_am { - font-weight: normal; - vertical-align: middle; -} - -#signupform #termswrap { - float: left; -} - -#signupform #terms { - vertical-align: middle; - float: left; - display: block; - margin-right: 5px; -} - -#signupform #lterms { - font-weight: normal; - vertical-align: middle; - float: left; - display: block; - width: 350px; - white-space: normal; -} - -#signupform #lsignupsubmit { - visibility: hidden; -} \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/milk/milk.png b/www/include/jslibs/jquery-validation/demo/milk/milk.png deleted file mode 100644 index b5e7151578..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/milk/milk.png and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/milk/right_white.png b/www/include/jslibs/jquery-validation/demo/milk/right_white.png deleted file mode 100644 index 393bbe2bab..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/milk/right_white.png and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/milk/users.php b/www/include/jslibs/jquery-validation/demo/milk/users.php deleted file mode 100644 index 3008a03f83..0000000000 --- a/www/include/jslibs/jquery-validation/demo/milk/users.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/www/include/jslibs/jquery-validation/demo/milk/users.phps b/www/include/jslibs/jquery-validation/demo/milk/users.phps deleted file mode 100644 index dfe4c8e9cb..0000000000 --- a/www/include/jslibs/jquery-validation/demo/milk/users.phps +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/multipart/index.html b/www/include/jslibs/jquery-validation/demo/multipart/index.html deleted file mode 100644 index 2fc5973d67..0000000000 --- a/www/include/jslibs/jquery-validation/demo/multipart/index.html +++ /dev/null @@ -1,412 +0,0 @@ - - - - -jQuery accordion form with validation - - - - - - - - - - - - - - - -
-
- -

Help me Buy and Sell a House

-

This form is quick & easy to complete - in only 3 steps!

-
- - -
    -
  • -
    -
    Step 1 of 3 -
    *Required Field
    -

    Tell us about the property you're buying

    -   No:      Yes: -
    -
    -
    -
    - -
    -
    -
    -
    -
  • -
  • - - -
    -
    Step 2 of 3 -
    *Required Field
    -

    Tell us about the property you're selling

    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
  • -
  • - - -
    -
    Step 3 of 3 -
    *Required Field
    -

    Tell us about yourself

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    This is a sample form, no information is sent anywhere.

    -
    -
    -
    -
  • -
-
- -
-
- - - diff --git a/www/include/jslibs/jquery-validation/demo/multipart/js/jquery.maskedinput-1.0.js b/www/include/jslibs/jquery-validation/demo/multipart/js/jquery.maskedinput-1.0.js deleted file mode 100644 index 9ba3ecfa15..0000000000 --- a/www/include/jslibs/jquery-validation/demo/multipart/js/jquery.maskedinput-1.0.js +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (c) 2007 Josh Bush (digitalbush.com) - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - - * 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 AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Version: 1.0 - * Release: 2007-07-25 - */ -(function($) { - //Helper Functions for Caret positioning - function getCaretPosition(ctl){ - var res = {begin: 0, end: 0 }; - if (ctl.setSelectionRange){ - res.begin = ctl.selectionStart; - res.end = ctl.selectionEnd; - }else if (document.selection && document.selection.createRange){ - var range = document.selection.createRange(); - res.begin = 0 - range.duplicate().moveStart('character', -100000); - res.end = res.begin + range.text.length; - } - return res; - }; - - function setCaretPosition(ctl, pos){ - if(ctl.setSelectionRange){ - ctl.focus(); - ctl.setSelectionRange(pos,pos); - }else if (ctl.createTextRange){ - var range = ctl.createTextRange(); - range.collapse(true); - range.moveEnd('character', pos); - range.moveStart('character', pos); - range.select(); - } - }; - - //Predefined character definitions - var charMap={ - '9':"[0-9]", - 'a':"[A-Za-z]", - '*':"[A-Za-z0-9]" - }; - - //Helper method to inject character definitions - $.mask={ - addPlaceholder : function(c,r){ - charMap[c]=r; - } - }; - - //Main Method - $.fn.mask = function(mask,settings) { - settings = $.extend({ - placeholder: "_", - completed: null - }, settings); - - //Build Regex for format validation - var reString="^"; - for(var i=0;i 16 && k < 32 ) || (k > 32 && k < 41)); - - //delete selection before proceeding - if((pos.begin-pos.end)!=0 && (!ignore || k==8 || k==46)){ - clearBuffer(pos.begin,pos.end); - } - //backspace and delete get special treatment - if(k==8){//backspace - while(pos.begin-->=0){ - if(!locked[pos.begin]){ - buffer[pos.begin]=settings.placeholder; - if($.browser.opera){ - //Opera won't let you cancel the backspace, so we'll let it backspace over a dummy character. - writeBuffer(pos.begin); - setCaretPosition(this,pos.begin+1); - }else{ - writeBuffer(); - setCaretPosition(this,pos.begin); - } - return false; - } - } - }else if(k==46){//delete - clearBuffer(pos.begin,pos.begin+1); - writeBuffer(); - setCaretPosition(this,pos.begin); - return false; - }else if (k==27){ - clearBuffer(0,mask.length); - writeBuffer(); - setCaretPosition(this,0); - return false; - } - - }); - - input.keypress(function(e){ - if(ignore){ - ignore=false; - return; - } - e=e||window.event; - var k=e.charCode||e.keyCode||e.which; - - var pos=getCaretPosition(this); - var caretPos=pos.begin; - - if(e.ctrlKey || e.altKey){//Ignore - return true; - }else if ((k>=41 && k<=122) ||k==32 || k>186){//typeable characters - while(pos.begin=buffer.length) - settings.completed.call(input); - else - setCaretPosition(this,caretPos); - - return false; - }); - - /*Helper Methods*/ - function clearBuffer(start,end){ - for(var i=start;i").addClass("ui-icon " + o.icons.header).prependTo(this.headers); - this.active.find(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected); - - // IE7-/Win - Extra vertical space in lists fixed - if ($.browser.msie) { - this.element.find('a').css('zoom', '1'); - } - - this.resize(); - - //ARIA - this.element.attr('role','tablist'); - - this.headers - .attr('role','tab') - .bind('keydown', function(event) { return self._keydown(event); }) - .next() - .attr('role','tabpanel'); - - this.headers - .not(this.active || "") - .attr('aria-expanded','false') - .attr("tabIndex", "-1") - .next() - .hide(); - - // make sure at least one header is in the tab order - if (!this.active.length) { - this.headers.eq(0).attr('tabIndex','0'); - } else { - this.active - .attr('aria-expanded','true') - .attr('tabIndex', '0'); - } - - // only need links in taborder for Safari - if (!$.browser.safari) - this.headers.find('a').attr('tabIndex','-1'); - - if (o.event) { - this.headers.bind((o.event) + ".accordion", function(event) { return self._clickHandler.call(self, event, this); }); - } - - }, - - destroy: function() { - var o = this.options; - - this.element - .removeClass("ui-accordion ui-widget ui-helper-reset") - .removeAttr("role") - .unbind('.accordion') - .removeData('accordion'); - - this.headers - .unbind(".accordion") - .removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top") - .removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex"); - - this.headers.find("a").removeAttr("tabindex"); - this.headers.children(".ui-icon").remove(); - var contents = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active"); - if (o.autoHeight || o.fillHeight) { - contents.css("height", ""); - } - }, - - _setData: function(key, value) { - if(key == 'alwaysOpen') { key = 'collapsible'; value = !value; } - $.widget.prototype._setData.apply(this, arguments); - }, - - _keydown: function(event) { - - var o = this.options, keyCode = $.ui.keyCode; - - if (o.disabled || event.altKey || event.ctrlKey) - return; - - var length = this.headers.length; - var currentIndex = this.headers.index(event.target); - var toFocus = false; - - switch(event.keyCode) { - case keyCode.RIGHT: - case keyCode.DOWN: - toFocus = this.headers[(currentIndex + 1) % length]; - break; - case keyCode.LEFT: - case keyCode.UP: - toFocus = this.headers[(currentIndex - 1 + length) % length]; - break; - case keyCode.SPACE: - case keyCode.ENTER: - return this._clickHandler({ target: event.target }, event.target); - } - - if (toFocus) { - $(event.target).attr('tabIndex','-1'); - $(toFocus).attr('tabIndex','0'); - toFocus.focus(); - return false; - } - - return true; - - }, - - resize: function() { - - var o = this.options, maxHeight; - - if (o.fillSpace) { - - if($.browser.msie) { var defOverflow = this.element.parent().css('overflow'); this.element.parent().css('overflow', 'hidden'); } - maxHeight = this.element.parent().height(); - if($.browser.msie) { this.element.parent().css('overflow', defOverflow); } - - this.headers.each(function() { - maxHeight -= $(this).outerHeight(); - }); - - var maxPadding = 0; - this.headers.next().each(function() { - maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height()); - }).height(Math.max(0, maxHeight - maxPadding)) - .css('overflow', 'auto'); - - } else if ( o.autoHeight ) { - maxHeight = 0; - this.headers.next().each(function() { - maxHeight = Math.max(maxHeight, $(this).outerHeight()); - }).height(maxHeight); - } - - }, - - activate: function(index) { - // call clickHandler with custom event - var active = this._findActive(index)[0]; - this._clickHandler({ target: active }, active); - }, - - _findActive: function(selector) { - return selector - ? typeof selector == "number" - ? this.headers.filter(":eq(" + selector + ")") - : this.headers.not(this.headers.not(selector)) - : selector === false - ? $([]) - : this.headers.filter(":eq(0)"); - }, - - _clickHandler: function(event, target) { - - var o = this.options; - if (o.disabled) return false; - - // called only when using activate(false) to close all parts programmatically - if (!event.target && o.collapsible) { - this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all") - .find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header); - this.active.next().addClass('ui-accordion-content-active'); - var toHide = this.active.next(), - data = { - options: o, - newHeader: $([]), - oldHeader: o.active, - newContent: $([]), - oldContent: toHide - }, - toShow = (this.active = $([])); - this._toggle(toShow, toHide, data); - return false; - } - - // get the click target - var clicked = $(event.currentTarget || target); - var clickedIsActive = clicked[0] == this.active[0]; - - // if animations are still active, or the active header is the target, ignore click - if (this.running || (!o.collapsible && clickedIsActive)) { - return false; - } - - // switch classes - this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all") - .find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header); - this.active.next().addClass('ui-accordion-content-active'); - if (!clickedIsActive) { - clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top") - .find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected); - clicked.next().addClass('ui-accordion-content-active'); - } - - // find elements to show and hide - var toShow = clicked.next(), - toHide = this.active.next(), - data = { - options: o, - newHeader: clickedIsActive && o.collapsible ? $([]) : clicked, - oldHeader: this.active, - newContent: clickedIsActive && o.collapsible ? $([]) : toShow.find('> *'), - oldContent: toHide.find('> *') - }, - down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] ); - - this.active = clickedIsActive ? $([]) : clicked; - this._toggle(toShow, toHide, data, clickedIsActive, down); - - return false; - - }, - - _toggle: function(toShow, toHide, data, clickedIsActive, down) { - - var o = this.options, self = this; - - this.toShow = toShow; - this.toHide = toHide; - this.data = data; - - var complete = function() { if(!self) return; return self._completed.apply(self, arguments); }; - - // trigger changestart event - this._trigger("changestart", null, this.data); - - // count elements to animate - this.running = toHide.size() === 0 ? toShow.size() : toHide.size(); - - if (o.animated) { - - var animOptions = {}; - - if ( o.collapsible && clickedIsActive ) { - animOptions = { - toShow: $([]), - toHide: toHide, - complete: complete, - down: down, - autoHeight: o.autoHeight || o.fillSpace - }; - } else { - animOptions = { - toShow: toShow, - toHide: toHide, - complete: complete, - down: down, - autoHeight: o.autoHeight || o.fillSpace - }; - } - - if (!o.proxied) { - o.proxied = o.animated; - } - - if (!o.proxiedDuration) { - o.proxiedDuration = o.duration; - } - - o.animated = $.isFunction(o.proxied) ? - o.proxied(animOptions) : o.proxied; - - o.duration = $.isFunction(o.proxiedDuration) ? - o.proxiedDuration(animOptions) : o.proxiedDuration; - - var animations = $.ui.accordion.animations, - duration = o.duration, - easing = o.animated; - - if (!animations[easing]) { - animations[easing] = function(options) { - this.slide(options, { - easing: easing, - duration: duration || 700 - }); - }; - } - - animations[easing](animOptions); - - } else { - - if (o.collapsible && clickedIsActive) { - toShow.toggle(); - } else { - toHide.hide(); - toShow.show(); - } - - complete(true); - - } - - toHide.prev().attr('aria-expanded','false').attr("tabIndex", "-1").blur(); - toShow.prev().attr('aria-expanded','true').attr("tabIndex", "0").focus(); - - }, - - _completed: function(cancel) { - - var o = this.options; - - this.running = cancel ? 0 : --this.running; - if (this.running) return; - - if (o.clearStyle) { - this.toShow.add(this.toHide).css({ - height: "", - overflow: "" - }); - } - - this._trigger('change', null, this.data); - } - -}); - - -$.extend($.ui.accordion, { - version: "1.7.1", - defaults: { - active: null, - alwaysOpen: true, //deprecated, use collapsible - animated: 'slide', - autoHeight: true, - clearStyle: false, - collapsible: false, - event: "click", - fillSpace: false, - header: "> li > :first-child,> :not(li):even", - icons: { - header: "ui-icon-triangle-1-e", - headerSelected: "ui-icon-triangle-1-s" - }, - navigation: false, - navigationFilter: function() { - return this.href.toLowerCase() == location.href.toLowerCase(); - } - }, - animations: { - slide: function(options, additions) { - options = $.extend({ - easing: "swing", - duration: 300 - }, options, additions); - if ( !options.toHide.size() ) { - options.toShow.animate({height: "show"}, options); - return; - } - if ( !options.toShow.size() ) { - options.toHide.animate({height: "hide"}, options); - return; - } - var overflow = options.toShow.css('overflow'), - percentDone, - showProps = {}, - hideProps = {}, - fxAttrs = [ "height", "paddingTop", "paddingBottom" ], - originalWidth; - // fix width before calculating height of hidden element - var s = options.toShow; - originalWidth = s[0].style.width; - s.width( parseInt(s.parent().width(),10) - parseInt(s.css("paddingLeft"),10) - parseInt(s.css("paddingRight"),10) - (parseInt(s.css("borderLeftWidth"),10) || 0) - (parseInt(s.css("borderRightWidth"),10) || 0) ); - - $.each(fxAttrs, function(i, prop) { - hideProps[prop] = 'hide'; - - var parts = ('' + $.css(options.toShow[0], prop)).match(/^([\d+-.]+)(.*)$/); - showProps[prop] = { - value: parts[1], - unit: parts[2] || 'px' - }; - }); - options.toShow.css({ height: 0, overflow: 'hidden' }).show(); - options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate(hideProps,{ - step: function(now, settings) { - // only calculate the percent when animating height - // IE gets very inconsistent results when animating elements - // with small values, which is common for padding - if (settings.prop == 'height') { - percentDone = (settings.now - settings.start) / (settings.end - settings.start); - } - - options.toShow[0].style[settings.prop] = - (percentDone * showProps[settings.prop].value) + showProps[settings.prop].unit; - }, - duration: options.duration, - easing: options.easing, - complete: function() { - if ( !options.autoHeight ) { - options.toShow.css("height", ""); - } - options.toShow.css("width", originalWidth); - options.toShow.css({overflow: overflow}); - options.complete(); - } - }); - }, - bounceslide: function(options) { - this.slide(options, { - easing: options.down ? "easeOutBounce" : "swing", - duration: options.down ? 1000 : 200 - }); - }, - easeslide: function(options) { - this.slide(options, { - easing: "easeinout", - duration: 700 - }); - } - } -}); - -})(jQuery); diff --git a/www/include/jslibs/jquery-validation/demo/multipart/js/ui.core.js b/www/include/jslibs/jquery-validation/demo/multipart/js/ui.core.js deleted file mode 100644 index 6be9993b98..0000000000 --- a/www/include/jslibs/jquery-validation/demo/multipart/js/ui.core.js +++ /dev/null @@ -1,519 +0,0 @@ -/* - * jQuery UI 1.7.1 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI - */ -;jQuery.ui || (function($) { - -var _remove = $.fn.remove, - isFF2 = $.browser.mozilla && (parseFloat($.browser.version) < 1.9); - -//Helper functions and ui object -$.ui = { - version: "1.7.1", - - // $.ui.plugin is deprecated. Use the proxy pattern instead. - plugin: { - add: function(module, option, set) { - var proto = $.ui[module].prototype; - for(var i in set) { - proto.plugins[i] = proto.plugins[i] || []; - proto.plugins[i].push([option, set[i]]); - } - }, - call: function(instance, name, args) { - var set = instance.plugins[name]; - if(!set || !instance.element[0].parentNode) { return; } - - for (var i = 0; i < set.length; i++) { - if (instance.options[set[i][0]]) { - set[i][1].apply(instance.element, args); - } - } - } - }, - - contains: function(a, b) { - return document.compareDocumentPosition - ? a.compareDocumentPosition(b) & 16 - : a !== b && a.contains(b); - }, - - hasScroll: function(el, a) { - - //If overflow is hidden, the element might have extra content, but the user wants to hide it - if ($(el).css('overflow') == 'hidden') { return false; } - - var scroll = (a && a == 'left') ? 'scrollLeft' : 'scrollTop', - has = false; - - if (el[scroll] > 0) { return true; } - - // TODO: determine which cases actually cause this to happen - // if the element doesn't have the scroll set, see if it's possible to - // set the scroll - el[scroll] = 1; - has = (el[scroll] > 0); - el[scroll] = 0; - return has; - }, - - isOverAxis: function(x, reference, size) { - //Determines when x coordinate is over "b" element axis - return (x > reference) && (x < (reference + size)); - }, - - isOver: function(y, x, top, left, height, width) { - //Determines when x, y coordinates is over "b" element - return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width); - }, - - keyCode: { - BACKSPACE: 8, - CAPS_LOCK: 20, - COMMA: 188, - CONTROL: 17, - DELETE: 46, - DOWN: 40, - END: 35, - ENTER: 13, - ESCAPE: 27, - HOME: 36, - INSERT: 45, - LEFT: 37, - NUMPAD_ADD: 107, - NUMPAD_DECIMAL: 110, - NUMPAD_DIVIDE: 111, - NUMPAD_ENTER: 108, - NUMPAD_MULTIPLY: 106, - NUMPAD_SUBTRACT: 109, - PAGE_DOWN: 34, - PAGE_UP: 33, - PERIOD: 190, - RIGHT: 39, - SHIFT: 16, - SPACE: 32, - TAB: 9, - UP: 38 - } -}; - -// WAI-ARIA normalization -if (isFF2) { - var attr = $.attr, - removeAttr = $.fn.removeAttr, - ariaNS = "http://www.w3.org/2005/07/aaa", - ariaState = /^aria-/, - ariaRole = /^wairole:/; - - $.attr = function(elem, name, value) { - var set = value !== undefined; - - return (name == 'role' - ? (set - ? attr.call(this, elem, name, "wairole:" + value) - : (attr.apply(this, arguments) || "").replace(ariaRole, "")) - : (ariaState.test(name) - ? (set - ? elem.setAttributeNS(ariaNS, - name.replace(ariaState, "aaa:"), value) - : attr.call(this, elem, name.replace(ariaState, "aaa:"))) - : attr.apply(this, arguments))); - }; - - $.fn.removeAttr = function(name) { - return (ariaState.test(name) - ? this.each(function() { - this.removeAttributeNS(ariaNS, name.replace(ariaState, "")); - }) : removeAttr.call(this, name)); - }; -} - -//jQuery plugins -$.fn.extend({ - remove: function() { - // Safari has a native remove event which actually removes DOM elements, - // so we have to use triggerHandler instead of trigger (#3037). - $("*", this).add(this).each(function() { - $(this).triggerHandler("remove"); - }); - return _remove.apply(this, arguments ); - }, - - enableSelection: function() { - return this - .attr('unselectable', 'off') - .css('MozUserSelect', '') - .unbind('selectstart.ui'); - }, - - disableSelection: function() { - return this - .attr('unselectable', 'on') - .css('MozUserSelect', 'none') - .bind('selectstart.ui', function() { return false; }); - }, - - scrollParent: function() { - var scrollParent; - if(($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) { - scrollParent = this.parents().filter(function() { - return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); - }).eq(0); - } else { - scrollParent = this.parents().filter(function() { - return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); - }).eq(0); - } - - return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent; - } -}); - - -//Additional selectors -$.extend($.expr[':'], { - data: function(elem, i, match) { - return !!$.data(elem, match[3]); - }, - - focusable: function(element) { - var nodeName = element.nodeName.toLowerCase(), - tabIndex = $.attr(element, 'tabindex'); - return (/input|select|textarea|button|object/.test(nodeName) - ? !element.disabled - : 'a' == nodeName || 'area' == nodeName - ? element.href || !isNaN(tabIndex) - : !isNaN(tabIndex)) - // the element and all of its ancestors must be visible - // the browser may report that the area is hidden - && !$(element)['area' == nodeName ? 'parents' : 'closest'](':hidden').length; - }, - - tabbable: function(element) { - var tabIndex = $.attr(element, 'tabindex'); - return (isNaN(tabIndex) || tabIndex >= 0) && $(element).is(':focusable'); - } -}); - - -// $.widget is a factory to create jQuery plugins -// taking some boilerplate code out of the plugin code -function getter(namespace, plugin, method, args) { - function getMethods(type) { - var methods = $[namespace][plugin][type] || []; - return (typeof methods == 'string' ? methods.split(/,?\s+/) : methods); - } - - var methods = getMethods('getter'); - if (args.length == 1 && typeof args[0] == 'string') { - methods = methods.concat(getMethods('getterSetter')); - } - return ($.inArray(method, methods) != -1); -} - -$.widget = function(name, prototype) { - var namespace = name.split(".")[0]; - name = name.split(".")[1]; - - // create plugin method - $.fn[name] = function(options) { - var isMethodCall = (typeof options == 'string'), - args = Array.prototype.slice.call(arguments, 1); - - // prevent calls to internal methods - if (isMethodCall && options.substring(0, 1) == '_') { - return this; - } - - // handle getter methods - if (isMethodCall && getter(namespace, name, options, args)) { - var instance = $.data(this[0], name); - return (instance ? instance[options].apply(instance, args) - : undefined); - } - - // handle initialization and non-getter methods - return this.each(function() { - var instance = $.data(this, name); - - // constructor - (!instance && !isMethodCall && - $.data(this, name, new $[namespace][name](this, options))._init()); - - // method call - (instance && isMethodCall && $.isFunction(instance[options]) && - instance[options].apply(instance, args)); - }); - }; - - // create widget constructor - $[namespace] = $[namespace] || {}; - $[namespace][name] = function(element, options) { - var self = this; - - this.namespace = namespace; - this.widgetName = name; - this.widgetEventPrefix = $[namespace][name].eventPrefix || name; - this.widgetBaseClass = namespace + '-' + name; - - this.options = $.extend({}, - $.widget.defaults, - $[namespace][name].defaults, - $.metadata && $.metadata.get(element)[name], - options); - - this.element = $(element) - .bind('setData.' + name, function(event, key, value) { - if (event.target == element) { - return self._setData(key, value); - } - }) - .bind('getData.' + name, function(event, key) { - if (event.target == element) { - return self._getData(key); - } - }) - .bind('remove', function() { - return self.destroy(); - }); - }; - - // add widget prototype - $[namespace][name].prototype = $.extend({}, $.widget.prototype, prototype); - - // TODO: merge getter and getterSetter properties from widget prototype - // and plugin prototype - $[namespace][name].getterSetter = 'option'; -}; - -$.widget.prototype = { - _init: function() {}, - destroy: function() { - this.element.removeData(this.widgetName) - .removeClass(this.widgetBaseClass + '-disabled' + ' ' + this.namespace + '-state-disabled') - .removeAttr('aria-disabled'); - }, - - option: function(key, value) { - var options = key, - self = this; - - if (typeof key == "string") { - if (value === undefined) { - return this._getData(key); - } - options = {}; - options[key] = value; - } - - $.each(options, function(key, value) { - self._setData(key, value); - }); - }, - _getData: function(key) { - return this.options[key]; - }, - _setData: function(key, value) { - this.options[key] = value; - - if (key == 'disabled') { - this.element - [value ? 'addClass' : 'removeClass']( - this.widgetBaseClass + '-disabled' + ' ' + - this.namespace + '-state-disabled') - .attr("aria-disabled", value); - } - }, - - enable: function() { - this._setData('disabled', false); - }, - disable: function() { - this._setData('disabled', true); - }, - - _trigger: function(type, event, data) { - var callback = this.options[type], - eventName = (type == this.widgetEventPrefix - ? type : this.widgetEventPrefix + type); - - event = $.Event(event); - event.type = eventName; - - // copy original event properties over to the new event - // this would happen if we could call $.event.fix instead of $.Event - // but we don't have a way to force an event to be fixed multiple times - if (event.originalEvent) { - for (var i = $.event.props.length, prop; i;) { - prop = $.event.props[--i]; - event[prop] = event.originalEvent[prop]; - } - } - - this.element.trigger(event, data); - - return !($.isFunction(callback) && callback.call(this.element[0], event, data) === false - || event.isDefaultPrevented()); - } -}; - -$.widget.defaults = { - disabled: false -}; - - -/** Mouse Interaction Plugin **/ - -$.ui.mouse = { - _mouseInit: function() { - var self = this; - - this.element - .bind('mousedown.'+this.widgetName, function(event) { - return self._mouseDown(event); - }) - .bind('click.'+this.widgetName, function(event) { - if(self._preventClickEvent) { - self._preventClickEvent = false; - event.stopImmediatePropagation(); - return false; - } - }); - - // Prevent text selection in IE - if ($.browser.msie) { - this._mouseUnselectable = this.element.attr('unselectable'); - this.element.attr('unselectable', 'on'); - } - - this.started = false; - }, - - // TODO: make sure destroying one instance of mouse doesn't mess with - // other instances of mouse - _mouseDestroy: function() { - this.element.unbind('.'+this.widgetName); - - // Restore text selection in IE - ($.browser.msie - && this.element.attr('unselectable', this._mouseUnselectable)); - }, - - _mouseDown: function(event) { - // don't let more than one widget handle mouseStart - // TODO: figure out why we have to use originalEvent - event.originalEvent = event.originalEvent || {}; - if (event.originalEvent.mouseHandled) { return; } - - // we may have missed mouseup (out of window) - (this._mouseStarted && this._mouseUp(event)); - - this._mouseDownEvent = event; - - var self = this, - btnIsLeft = (event.which == 1), - elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false); - if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { - return true; - } - - this.mouseDelayMet = !this.options.delay; - if (!this.mouseDelayMet) { - this._mouseDelayTimer = setTimeout(function() { - self.mouseDelayMet = true; - }, this.options.delay); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = (this._mouseStart(event) !== false); - if (!this._mouseStarted) { - event.preventDefault(); - return true; - } - } - - // these delegates are required to keep context - this._mouseMoveDelegate = function(event) { - return self._mouseMove(event); - }; - this._mouseUpDelegate = function(event) { - return self._mouseUp(event); - }; - $(document) - .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate) - .bind('mouseup.'+this.widgetName, this._mouseUpDelegate); - - // preventDefault() is used to prevent the selection of text here - - // however, in Safari, this causes select boxes not to be selectable - // anymore, so this fix is needed - ($.browser.safari || event.preventDefault()); - - event.originalEvent.mouseHandled = true; - return true; - }, - - _mouseMove: function(event) { - // IE mouseup check - mouseup happened when mouse was out of window - if ($.browser.msie && !event.button) { - return this._mouseUp(event); - } - - if (this._mouseStarted) { - this._mouseDrag(event); - return event.preventDefault(); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = - (this._mouseStart(this._mouseDownEvent, event) !== false); - (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); - } - - return !this._mouseStarted; - }, - - _mouseUp: function(event) { - $(document) - .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate) - .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate); - - if (this._mouseStarted) { - this._mouseStarted = false; - this._preventClickEvent = (event.target == this._mouseDownEvent.target); - this._mouseStop(event); - } - - return false; - }, - - _mouseDistanceMet: function(event) { - return (Math.max( - Math.abs(this._mouseDownEvent.pageX - event.pageX), - Math.abs(this._mouseDownEvent.pageY - event.pageY) - ) >= this.options.distance - ); - }, - - _mouseDelayMet: function(event) { - return this.mouseDelayMet; - }, - - // These are placeholder methods, to be overriden by extending plugin - _mouseStart: function(event) {}, - _mouseDrag: function(event) {}, - _mouseStop: function(event) {}, - _mouseCapture: function(event) { return true; } -}; - -$.ui.mouse.defaults = { - cancel: null, - distance: 1, - delay: 0 -}; - -})(jQuery); diff --git a/www/include/jslibs/jquery-validation/demo/multipart/style.css b/www/include/jslibs/jquery-validation/demo/multipart/style.css deleted file mode 100644 index fbf08c24f8..0000000000 --- a/www/include/jslibs/jquery-validation/demo/multipart/style.css +++ /dev/null @@ -1,705 +0,0 @@ -/******************************************** - AUTHOR: Erwin Aligam - WEBSITE: http://www.styleshout.com/ - TEMPLATE NAME: Techmania 1.0 - TEMPLATE CODE: S-0003 - VERSION: 1.1 - *******************************************/ - /******************************************** - HTML ELEMENTS -********************************************/ /* Top elements */ - /** { margin:0; padding: 0; }*/ -body { - background-color: #000; - color: #555; - font: 78%/ 1.6 Verdana, 'Trebuchet MS', arial, sans-serif; - text-align: center; - margin: 15px 0; -} - -/* links */ -a { - color: #213540; - background: inherit; - text-decoration: none; -} - -a:hover { - color: #3e4255; - text-decoration: underline; - background: inherit; -} - -/* headers */ -h1,h2,h3 { - font-family: 'Trebuchet MS', Arial, sans-serif; - font-weight: bold; -} - -h1 { - font-size: 1.5em; - margin: 10px 15px; -} - -h2 { - font-size: 1.3em; - text-transform: uppercase; - color: #339900; - margin: 10px 15px; -} - -h3 { - font-size: 1.1em; - color: #333; - margin: 16px 0 0 18px; -} - -h1,h2,h3 { - padding: 0; -} - -p { - line-height: 1.4em; - padding: 0 15px; -} - -p.error { - color: #CC0033; -} - -ul,ol { - margin: 10px 6px; - padding: 0 15px; - color: #006699; -} - -ul span,ol span { - color: #666666; -} - -/* images */ -img { - border: 2px solid #CCC; -} - -img.float-right { - margin: 5px 0px 10px 10px; -} - -img.float-left { - margin: 5px 10px 10px 0px; -} - -code { - margin: 5px 0; - padding: 10px; - text-align: left; - display: block; - overflow: auto; - font: 500 1em/ 1.5em 'Lucida Console', 'courier new', monospace; - /* white-space: pre; */ - background: #FAFAFA; - border: 1px solid #EAEAEA; - border-left: 5px solid #72A545; -} - -acronym { - cursor: help; - border-bottom: 1px solid #777; -} - -blockquote { - margin: 15px; - padding: 0 0 0 32px; - background: #FAFAFA url(quote.gif) no-repeat 5px 10px !important; - background-position: 8px 10px; - border: 1px solid #EAEAEA; - border-left: 5px solid #72A545; - font-weight: bold; -} - -/* form elements */ -fieldset { - margin: 12px 12px 18px; - padding-left: 6px; - border: 1px solid #004080; - color: #006699; -} - -fieldset fieldset { - border: 1px solid #9ea190; - margin: 17px 14px; -} - -form { - margin: 10px 15px; - padding: 0; -} - -label { - font-weight: bold; - margin: 5px 3px 0 0; - width: 160px; - text-align: right; - float: left; -} - -legend { - font-size: 1.2em; - padding: 0 12px; - font-weight: 900; - background-color: #F9F9F9; -} - -fieldset fieldset legend { - font-size: 1em; - color: #1a2129; - padding: 0 18px; - margin-left: 75px; -} - -input { - padding: 3px; - margin: 4px 0; - border: 1px solid #CFCED3; - font: normal 1em Verdana, sans-serif; - color: #777; -} - -textarea { - width: 400px; - padding: 4px; - font: normal 1em Verdana, sans-serif; - border: 1px solid #eee; - height: 100px; - display: block; - color: #777; -} - -input.button { - margin: 0; - font: bold 12px Arial, Sans-serif; - border: 1px solid #EAEAEA; - padding: 3px 4px; - background: #CCC url(buttonbg.gif) repeat-x left bottom; - color: #333; /* color: #339900; */ - cursor: pointer; -} - -input.submitbutton { - background-color: #006699; - color: #FFF; - background-image: none; - font-weight: 900; - border: 1px solid #EAEAEA; - margin: 0 0 0 200px; -} - -/* search */ -#sidebar #search { - background: #f2f2f2; - margin: 0 15px; - padding: 5px 0; -} - -#sidebar #search img { - vertical-align: bottom; -} - -#sidebar #search .textbox { - background: #FFF url(input.png) no-repeat top left; - border: 1px solid #EAEAEA; - font-size: 11px; - padding: 3px; - width: 110px; -} - -#sidebar #search input.searchbutton { - margin: 0; - font: bold 100% Arial, Sans-serif; - border: 1px solid #CCC; - background: #CCC url(buttonbg.gif) repeat-x left bottom; - padding: 1px; - height: 25px; - color: #333; - width: 55px; -} - -/***************************** - LAYOUT -******************************/ -#wrap { - margin: 0 auto; - padding: 0; - text-align: left; - background-color: #FFF; - width: 790px; -} - -#content-wrap { - clear: both; - margin: 0; - padding: 0; - width: 790px; -} - -/* header */ -#header { - position: relative; - clear: left; - width: 790px; - height: 137px; - margin: 0; - padding: 0; - background: #000 url(headerbg.jpg) no-repeat left bottom; -} - -#header h1#logo-text { - float: right; - margin: 39px 58px 0 0; - padding: 0; - font: bolder 3.2em 'Trebuchet MS', Arial, Sans-serif; - letter-spacing: -2px; - color: #FFF; - text-transform: none; - /* change the values of top and right to adjust the position of the logo*/ - top: 35px; - right: 30px; -} - -#header h2#slogan { - float: right; - margin: 0 38px 0 0; - padding: 0; - font: bold 1.5em 'Trebuchet MS', Arial, Sans-serif; - text-transform: none; - letter-spacing: 1px; - color: #FFF; - clear: both; - text-align: right; -} - -#header h1#logo-text span { - color: #CFCED3; -} - -/* menu tabs */ -#header #header-tabs { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 25px; - background: #000; - font: bold 1.1em Verdana, Tahoma, 'Trebuchet MS', Sans-serif; -} - -#header-tabs ul { - margin: 0; - padding: 2px 0px 0px 0px; - list-style: none; -} - -#header-tabs li { - display: inline; - margin: 0; - padding: 0; -} - -#header-tabs a { - float: left; - background: url(tableft.gif) no-repeat left top; - margin: 0; - padding: 0 0 0 4px; - text-decoration: none; -} - -#header-tabs a span { - float: left; - display: block; - background: url(tabright.gif) no-repeat right top; - padding: 7px 15px 4px 8px; - color: #CCC; -} - -/* Commented Backslash Hack hides rule from IE5-Mac \*/ -#header-tabs a span { - float: none; -} - -/* End IE5-Mac hack */ -#header-tabs a:hover span { - color: #FFF; -} - -#header-tabs a:hover { - background-position: 0% -42px; -} - -#header-tabs a:hover span { - background-position: 100% -42px; -} - -#header-tabs #current a { - background-position: 0% -42px; -} - -#header-tabs #current a span { - background-position: 100% -42px; - color: #FFF; -} - -/* main content */ -#main { - width: 748px; - margin: 0; - padding: 8px 16px; - background-color: #F9F9F9; - border-left: 5px solid #000; - border-right: 5px solid #000; -} - -#main h1 { - padding: 8px 0 3px 25px; - text-transform: none; - border-bottom: 2px solid #f2f2f2; - color: #339900; -} - -/* sidebar */ -#sidebar { /* float: right; - width: 245px; - margin: 0 0 10px 0; padding: 0; - background-color: inherit; */ - display: none; -} - -#sidebar h1 { - padding: 8px 0px 3px 25px; - background: url(square_arrow.gif) no-repeat 0% .7em; - text-transform: none; - color: #339900; -} - -#sidebar ul.sidemenu { - list-style: none; - margin: 10px 15px; - padding: 0; -} - -#sidebar ul.sidemenu li { - margin-bottom: 1px; - border: 1px solid #f2f2f2; -} - -#sidebar ul.sidemenu a { - display: block; - font-weight: bold; - color: #333; - text-decoration: none; - padding: 2px 5px 2px 10px; - background: #f2f2f2; - border-left: 5px solid #CCC; - min-height: 18px; -} - -* html body #sidebar ul.sidemenu a { - height: 18px; -} - -#sidebar ul.sidemenu a:hover { - padding: 2px 5px 2px 10px; - background: #f2f2f2; - color: #339900; - border-left: 5px solid #72A545; -} - -/* footer */ -#footer { - clear: both; - height: 40px; - color: #CCC; - background: #000; - margin: 0; - font-size: 92%; -} - -#footer a { - text-decoration: none; - font-weight: bold; - color: #FFF; -} - -#footer #footer-left { - width: 68%; - float: left; - text-align: left; - margin: 0; - padding: 10px; -} - -#footer #footer-right { - width: 25%; - float: right; - text-align: right; - margin: 0; - padding: 10px; -} - -/* alignment classes */ -.float-left { - float: left; -} - -.float-right { - float: right; -} - -.align-left { - text-align: left; -} - -.align-right { - text-align: right; -} - -/* additional classes */ -.clear { - clear: both; -} - -.hide { - display: none; -} - -.gray { - color: #CCC; -} - -.comments { - color: #333; - background: #FFF; - text-align: right; - border-top: 1px dashed #EFF0F1; - border-bottom: 1px dashed #EFF0F1; - padding: 5px 0; - margin-top: 20px; -} - -html { - min-height: 100.1%; -} - -/* ------ one ------------*/ -body .mainText { - font-family: Arial, Helvetica, sans-serif; - font-size: 12px; -} - -#demoText h1,.mainText h1 { - font-size: 130%; - color: #0099FF; - text-decoration: none; - font-family: Arial, Helvetica, sans-serif; - margin: 5px 4px 5px 24px; - background: none; - padding: 0; - border: none; - text-transform: capitalize; -} - -.mainText h2 { - font-size: 110%; - color: #000033; - font-family: Arial, Helvetica, sans-serif; - text-decoration: none; - background: none; - margin: 4px 32px 6px 22px; - text-transform: capitalize; -} - -.mainText h3 { - font-size: 120%; - font-weight: 900; - margin: 14px 0 0 0; - text-align: center; - color: #000033; -} - -.mainText table { - width: 95%; - border: 1px solid #0099FF; - border-collapse: collapse; - margin: 18px 7px; -} - -.mainText table td { - background-color: #99CCFF; - color: #000033; - padding: 4px; -} - -.mainText table th { - background-color: #000033; - color: #99CCFF; - padding: 4px; -} - -.mainText .linkPar a { - color: #000033; - text-decoration: underline; -} - -.mainText .linkPar a:hover { - color: #660033; - text-decoration: none; - font-weight: 900; -} - -.pusher { - cursor: pointer; - padding: 3px 10px 3px 22px; - font-weight: 900; - font-size: 14px; -} - -/* ------------- form specific styles are here -------------- */ -fieldset { - margin: 0; - border: 1px solid #C3DE00; - padding: 10px; - /*border:none; -padding:0;*/ - color: #7563A5; -} - -legend { - background-color: #FFFFFF; - text-align: center; - color: #097981; - padding: 0 12px; -} - -label { - text-align: right; - width: 298px; - border-right: 1px dotted #099; - padding-right: 5px; - margin: 0 0 8px 0; - float: left; - clear: left; - display: block; - color: #7563A5; -} - -label.checkbox,label.textarea { - border: none; -} - -label.lgfield { - border: none; - text-align: center; - clear: both; - float: none; - width: 100%; -} - -fieldset input,fieldset select,fieldset textarea { - margin-left: 10px; - margin-bottom: 8px; -} - -select.longfield { - margin: 0 0 0 115px; -} - -input [type="radio"],input [type="checkbox"] { - margin: 2px 0 0 4px; -} - -textarea { - width: 250px; - float: left; -} - -/*Get Help Form Styles*/ -p.formDisclaimer { - text-align: center; - margin: 32px 24px 12px 0; - font-style: italic; -} - -div.buttonWrapper { - margin: 28px 0 14px 0; - clear: both; - text-align: center; -} - -.formspacer { - height: 1em; - clear: both; -} - -.hideField { - display: none; -} - -.pushOpen { - height: 18em; -} - -/* ----- error message for field validation ----- */ -#stepForm label.warning { - text-align: left; - width: auto; - padding: 0; - margin: 0 0 0 10px; - float: none; - clear: none; - display: inline; - color: #CC3366; - font-size: 10px; - border: none; - border-top: 1px dotted #CC3366; -} - -div.requiredNotice { - width: 140px; - float: right; - margin: 0 24px 0 0; - padding: 0; -} - -h3.stepHeader { - text-align: left; - font-size: 16px; - font-weight: bold; - margin: 0 0 24px 24px; - color: #676cac; -} - -ul#stepForm,ul#stepForm li { - margin: 0; - padding: 0; -} - -ul#stepForm li { - list-style: none; -} - -/* Form Buttons */ -input.submitbutton,.nextbutton,.prevbutton { - width: 100px; - height: 40px; - background-color: #663399; - padding: 4px; - border: 1px solid #339933; - cursor: pointer; - text-align: center; - color: #FFFFFF; - margin: 7px; -} - -input.submitbutton { - background-color: #006699; -} \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/radio-checkbox-select-demo.html b/www/include/jslibs/jquery-validation/demo/radio-checkbox-select-demo.html deleted file mode 100644 index 12c417ca09..0000000000 --- a/www/include/jslibs/jquery-validation/demo/radio-checkbox-select-demo.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Test for jQuery validate() plugin - - - - - - - - - - - - - - -

jQuery Validation Plugin Demo

-
- -
-
- Validating a form with a radio and checkbox buttons -
- Gender - - - -
-
- Family - - - - -
-

- - -
- -

-
- Spam - - - - -
-

- -

-
-
- -
-

Some tests with selects

-

-
- -

- -

-
- -

- -

-
- -

- -

-
- -

- -

-
- -Back to main page - -
- - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/tabs/index.html b/www/include/jslibs/jquery-validation/demo/tabs/index.html deleted file mode 100644 index 8a9f69c3b9..0000000000 --- a/www/include/jslibs/jquery-validation/demo/tabs/index.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - -jQuery UI tabs integration demo - - - - - - - - - - - - - - -
- -
- -
-

- - -

-

- - -

-

- - -

-

- - -

-
-
-

- - -

-

- - -

-

- - - - -

-
-
-

- - -

-

- - -

-

- - -

-
-
- - -
- - - - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/themerollered.html b/www/include/jslibs/jquery-validation/demo/themerollered.html deleted file mode 100644 index 445a22bde2..0000000000 --- a/www/include/jslibs/jquery-validation/demo/themerollered.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - -jQuery validation plug-in - main demo - - - - - - - - - - - - - - - - - - - - -
-
- Please provide your name, email address (won't be published) and a comment -

- - -

- - -

-

- - -

-

- - -

-

- -

-
-
- -
-
- Validating a complete form -

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-
- Topics (select at least two) - note: would be hidden when newsletter isn't selected, but is visible here for the demo - - - - -
-

- -

-
-
- - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/tinymce/index.html b/www/include/jslibs/jquery-validation/demo/tinymce/index.html deleted file mode 100644 index 8bfd18220d..0000000000 --- a/www/include/jslibs/jquery-validation/demo/tinymce/index.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -jQuery Validation plugin: integration with TinyMCE - - - - - - - - - - -
-

TinyMCE and Validation Plugin integration example

- - - - -
- - - - -
- -
- - - diff --git a/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/editor_template.js b/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/editor_template.js deleted file mode 100644 index d19fb53f72..0000000000 --- a/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/editor_template.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var DOM=tinymce.DOM;tinymce.ThemeManager.requireLangPack('simple');tinymce.create('tinymce.themes.SimpleTheme',{init:function(ed,url){var t=this,states=['Bold','Italic','Underline','Strikethrough','InsertUnorderedList','InsertOrderedList'],s=ed.settings;t.editor=ed;ed.onInit.add(function(){ed.onNodeChange.add(function(ed,cm){tinymce.each(states,function(c){cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));});});ed.dom.loadCSS(url+"/skins/"+s.skin+"/content.css");});DOM.loadCSS((s.editor_css?ed.documentBaseURI.toAbsolute(s.editor_css):'')||url+"/skins/"+s.skin+"/ui.css");},renderUI:function(o){var t=this,n=o.targetNode,ic,tb,ed=t.editor,cf=ed.controlManager,sc;n=DOM.insertAfter(DOM.create('span',{id:ed.id+'_container','class':'mceEditor '+ed.settings.skin+'SimpleSkin'}),n);n=sc=DOM.add(n,'table',{cellPadding:0,cellSpacing:0,'class':'mceLayout'});n=tb=DOM.add(n,'tbody');n=DOM.add(tb,'tr');n=ic=DOM.add(DOM.add(n,'td'),'div',{'class':'mceIframeContainer'});n=DOM.add(DOM.add(tb,'tr',{'class':'last'}),'td',{'class':'mceToolbar mceLast',align:'center'});tb=t.toolbar=cf.createToolbar("tools1");tb.add(cf.createButton('bold',{title:'simple.bold_desc',cmd:'Bold'}));tb.add(cf.createButton('italic',{title:'simple.italic_desc',cmd:'Italic'}));tb.add(cf.createButton('underline',{title:'simple.underline_desc',cmd:'Underline'}));tb.add(cf.createButton('strikethrough',{title:'simple.striketrough_desc',cmd:'Strikethrough'}));tb.add(cf.createSeparator());tb.add(cf.createButton('undo',{title:'simple.undo_desc',cmd:'Undo'}));tb.add(cf.createButton('redo',{title:'simple.redo_desc',cmd:'Redo'}));tb.add(cf.createSeparator());tb.add(cf.createButton('cleanup',{title:'simple.cleanup_desc',cmd:'mceCleanup'}));tb.add(cf.createSeparator());tb.add(cf.createButton('insertunorderedlist',{title:'simple.bullist_desc',cmd:'InsertUnorderedList'}));tb.add(cf.createButton('insertorderedlist',{title:'simple.numlist_desc',cmd:'InsertOrderedList'}));tb.renderTo(n);return{iframeContainer:ic,editorContainer:ed.id+'_container',sizeContainer:sc,deltaHeight:-20};},getInfo:function(){return{longname:'Simple theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.ThemeManager.add('simple',tinymce.themes.SimpleTheme);})(); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/img/icons.gif b/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/img/icons.gif deleted file mode 100644 index 16af141ff0..0000000000 Binary files a/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/img/icons.gif and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/langs/en.js b/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/langs/en.js deleted file mode 100644 index 6f095311d2..0000000000 --- a/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/langs/en.js +++ /dev/null @@ -1,11 +0,0 @@ -tinyMCE.addI18n('en.simple',{ -bold_desc:"Bold (Ctrl+B)", -italic_desc:"Italic (Ctrl+I)", -underline_desc:"Underline (Ctrl+U)", -striketrough_desc:"Strikethrough", -bullist_desc:"Unordered list", -numlist_desc:"Ordered list", -undo_desc:"Undo (Ctrl+Z)", -redo_desc:"Redo (Ctrl+Y)", -cleanup_desc:"Cleanup messy code" -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/skins/default/ui.css b/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/skins/default/ui.css deleted file mode 100644 index 32feae628d..0000000000 --- a/www/include/jslibs/jquery-validation/demo/tinymce/themes/simple/skins/default/ui.css +++ /dev/null @@ -1,32 +0,0 @@ -/* Reset */ -.defaultSimpleSkin table, .defaultSimpleSkin tbody, .defaultSimpleSkin a, .defaultSimpleSkin img, .defaultSimpleSkin tr, .defaultSimpleSkin div, .defaultSimpleSkin td, .defaultSimpleSkin iframe, .defaultSimpleSkin span, .defaultSimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000} - -/* Containers */ -.defaultSimpleSkin {position:relative} -.defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;} -.defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;} -.defaultSimpleSkin .mceToolbar {height:24px;} - -/* Layout */ -.defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px} -.defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} - -/* Button */ -.defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px} -.defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0} -.defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0} -.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} - -/* Separator */ -.defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px} - -/* Theme */ -.defaultSimpleSkin span.mce_bold {background-position:0 0} -.defaultSimpleSkin span.mce_italic {background-position:-60px 0} -.defaultSimpleSkin span.mce_underline {background-position:-140px 0} -.defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0} -.defaultSimpleSkin span.mce_undo {background-position:-160px 0} -.defaultSimpleSkin span.mce_redo {background-position:-100px 0} -.defaultSimpleSkin span.mce_cleanup {background-position:-40px 0} -.defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0} -.defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0} diff --git a/www/include/jslibs/jquery-validation/demo/tinymce/tiny_mce.js b/www/include/jslibs/jquery-validation/demo/tinymce/tiny_mce.js deleted file mode 100644 index 55aba6e3b2..0000000000 --- a/www/include/jslibs/jquery-validation/demo/tinymce/tiny_mce.js +++ /dev/null @@ -1 +0,0 @@ -var tinymce={majorVersion:'3',minorVersion:'2.1.1',releaseDate:'2008-11-27',_init:function(){var t=this,d=document,w=window,na=navigator,ua=na.userAgent,i,nl,n,base,p,v;t.isOpera=w.opera&&opera.buildNumber;t.isWebKit=/WebKit/.test(ua);t.isOldWebKit=t.isWebKit&&!w.getSelection().getRangeAt;t.isIE=!t.isWebKit&&!t.isOpera&&(/MSIE/gi).test(ua)&&(/Explorer/gi).test(na.appName);t.isIE6=t.isIE&&/MSIE [56]/.test(ua);t.isGecko=!t.isWebKit&&/Gecko/.test(ua);t.isMac=ua.indexOf('Mac')!=-1;t.isAir=/adobeair/i.test(ua);if(w.tinyMCEPreInit){t.suffix=tinyMCEPreInit.suffix;t.baseURL=tinyMCEPreInit.base;t.query=tinyMCEPreInit.query;return;}t.suffix='';nl=d.getElementsByTagName('base');for(i=0;i=items.length){for(i=0,l=base.length;i=items.length||base[i]!=items[i]){bp=i+1;break;}}}if(base.length=base.length||base[i]!=items[i]){bp=i+1;break;}}}if(bp==1)return path;for(i=0,l=base.length-(bp-1);i=0;i--){if(path[i].length==0||path[i]==".")continue;if(path[i]=='..'){nb++;continue;}if(nb>0){nb--;continue;}o.push(path[i]);}i=base.length-nb;if(i<=0)return'/'+o.reverse().join('/');return'/'+base.slice(0,i).join('/')+'/'+o.reverse().join('/');},getURI:function(nh){var s,t=this;if(!t.source||nh){s='';if(!nh){if(t.protocol)s+=t.protocol+'://';if(t.userInfo)s+=t.userInfo+'@';if(t.host)s+=t.host;if(t.port)s+=':'+t.port;}if(t.path)s+=t.path;if(t.query)s+='?'+t.query;if(t.anchor)s+='#'+t.anchor;t.source=s;}return t.source;}});})();(function(){var each=tinymce.each;tinymce.create('static tinymce.util.Cookie',{getHash:function(n){var v=this.get(n),h;if(v){each(v.split('&'),function(v){v=v.split('=');h=h||{};h[unescape(v[0])]=unescape(v[1]);});}return h;},setHash:function(n,v,e,p,d,s){var o='';each(v,function(v,k){o+=(!o?'':'&')+escape(k)+'='+escape(v);});this.set(n,o,e,p,d,s);},get:function(n){var c=document.cookie,e,p=n+"=",b;if(!c)return;b=c.indexOf("; "+p);if(b==-1){b=c.indexOf(p);if(b!=0)return null;}else b+=2;e=c.indexOf(";",b);if(e==-1)e=c.length;return unescape(c.substring(b+p.length,e));},set:function(n,v,e,p,d,s){document.cookie=n+"="+escape(v)+((e)?"; expires="+e.toGMTString():"")+((p)?"; path="+escape(p):"")+((d)?"; domain="+d:"")+((s)?"; secure":"");},remove:function(n,p){var d=new Date();d.setTime(d.getTime()-1000);this.set(n,'',d,p,d);}});})();tinymce.create('static tinymce.util.JSON',{serialize:function(o){var i,v,s=tinymce.util.JSON.serialize,t;if(o==null)return'null';t=typeof o;if(t=='string'){v='\bb\tt\nn\ff\rr\""\'\'\\\\';return'"'+o.replace(/([\u0080-\uFFFF\x00-\x1f\"])/g,function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a;})+'"';}if(t=='object'){if(o instanceof Array){for(i=0,v='[';i0?',':'')+s(o[i]);return v+']';}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}';}return''+o;},parse:function(s){try{return eval('('+s+')');}catch(ex){}}});tinymce.create('static tinymce.util.XHR',{send:function(o){var x,t,w=window,c=0;o.scope=o.scope||this;o.success_scope=o.success_scope||o.scope;o.error_scope=o.error_scope||o.scope;o.async=o.async===false?false:true;o.data=o.data||'';function get(s){x=0;try{x=new ActiveXObject(s);}catch(ex){}return x;};x=w.XMLHttpRequest?new XMLHttpRequest():get('Microsoft.XMLHTTP')||get('Msxml2.XMLHTTP');if(x){if(x.overrideMimeType)x.overrideMimeType(o.content_type);x.open(o.type||(o.data?'POST':'GET'),o.url,o.async);if(o.content_type)x.setRequestHeader('Content-Type',o.content_type);x.send(o.data);function ready(){if(!o.async||x.readyState==4||c++>10000){if(o.success&&c<10000&&x.status==200)o.success.call(o.success_scope,''+x.responseText,x,o);else if(o.error)o.error.call(o.error_scope,c>10000?'TIMED_OUT':'GENERAL',x,o);x=null;}else w.setTimeout(ready,10);};if(!o.async)return ready();t=w.setTimeout(ready,10);}}});(function(){var extend=tinymce.extend,JSON=tinymce.util.JSON,XHR=tinymce.util.XHR;tinymce.create('tinymce.util.JSONRequest',{JSONRequest:function(s){this.settings=extend({},s);this.count=0;},send:function(o){var ecb=o.error,scb=o.success;o=extend(this.settings,o);o.success=function(c,x){c=JSON.parse(c);if(typeof(c)=='undefined'){c={error:'JSON Parse error.'};}if(c.error)ecb.call(o.error_scope||o.scope,c.error,x);else scb.call(o.success_scope||o.scope,c.result);};o.error=function(ty,x){ecb.call(o.error_scope||o.scope,ty,x);};o.data=JSON.serialize({id:o.id||'c'+(this.count++),method:o.method,params:o.params});o.content_type='application/json';XHR.send(o);},'static':{sendRPC:function(o){return new tinymce.util.JSONRequest().send(o);}}});}());(function(){var each=tinymce.each,is=tinymce.is;var isWebKit=tinymce.isWebKit,isIE=tinymce.isIE;tinymce.create('tinymce.dom.DOMUtils',{doc:null,root:null,files:null,listeners:{},pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,cache:{},idPattern:/^#[\w]+$/,elmPattern:/^[\w_*]+$/,elmClassPattern:/^([\w_]*)\.([\w_]+)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},DOMUtils:function(d,s){var t=this;t.doc=d;t.win=window;t.files={};t.cssFlicker=false;t.counter=0;t.boxModel=!tinymce.isIE||d.compatMode=="CSS1Compat";t.stdMode=d.documentMode===8;this.settings=s=tinymce.extend({keep_values:false,hex_colors:1,process_html:1},s);if(tinymce.isIE6){try{d.execCommand('BackgroundImageCache',false,true);}catch(e){t.cssFlicker=true;}}tinymce.addUnload(t.destroy,t);},getRoot:function(){var t=this,s=t.settings;return(s&&t.get(s.root_element))||t.doc.body;},getViewPort:function(w){var d,b;w=!w?this.win:w;d=w.document;b=this.boxModel?d.documentElement:d.body;return{x:w.pageXOffset||b.scrollLeft,y:w.pageYOffset||b.scrollTop,w:w.innerWidth||b.clientWidth,h:w.innerHeight||b.clientHeight};},getRect:function(e){var p,t=this,sr;e=t.get(e);p=t.getPos(e);sr=t.getSize(e);return{x:p.x,y:p.y,w:sr.w,h:sr.h};},getSize:function(e){var t=this,w,h;e=t.get(e);w=t.getStyle(e,'width');h=t.getStyle(e,'height');if(w.indexOf('px')===-1)w=0;if(h.indexOf('px')===-1)h=0;return{w:parseInt(w)||e.offsetWidth||e.clientWidth,h:parseInt(h)||e.offsetHeight||e.clientHeight};},getParent:function(n,f,r){var na,se=this.settings;n=this.get(n);if(se.strict_root)r=r||this.getRoot();if(is(f,'string')){na=f.toUpperCase();f=function(n){var s=false;if(n.nodeType==1&&na==='*'){s=true;return false;}each(na.split(','),function(v){if(n.nodeType==1&&((se.strict&&n.nodeName.toUpperCase()==v)||n.nodeName.toUpperCase()==v)){s=true;return false;}});return s;};}while(n){if(n==r)return null;if(f(n))return n;n=n.parentNode;}return null;},get:function(e){var n;if(e&&this.doc&&typeof(e)=='string'){n=e;e=this.doc.getElementById(e);if(e&&e.id!==n)return this.doc.getElementsByName(n)[1];}return e;},select:function(pa,s){var t=this,cs,c,pl,o=[],x,i,l,n,xp;s=t.get(s)||t.doc;if(s.querySelectorAll){if(s!=t.doc){i=s.id;s.id='_mc_tmp';pa='#_mc_tmp '+pa;}l=tinymce.grep(s.querySelectorAll(pa));s.id=i;return l;}if(!t.selectorRe)t.selectorRe=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i;;if(tinymce.isAir){each(tinymce.explode(pa),function(v){if(!(xp=t.cache[v])){xp='';each(v.split(' '),function(v){v=t.selectorRe.exec(v);xp+=v[1]?'//'+v[1]:'//*';if(v[2])xp+="[@id='"+v[2]+"']";if(v[3]){each(v[3].split('.'),function(n){xp+="[@class = '"+n+"' or contains(concat(' ', @class, ' '), ' "+n+" ')]";});}});t.cache[v]=xp;}xp=t.doc.evaluate(xp,s,null,4,null);while(n=xp.iterateNext())o.push(n);});return o;}if(t.settings.strict){function get(s,n){return s.getElementsByTagName(n.toLowerCase());};}else{function get(s,n){return s.getElementsByTagName(n);};}if(t.elmPattern.test(pa)){x=get(s,pa);for(i=0,l=x.length;i=0;i--)cs+='}, '+(i?'n':'s')+');';cs+='})';t.cache[pa]=cs=eval(cs);}cs(isIE?collectIE:collect,s);});each(o,function(n){if(isIE)n.removeAttribute('mce_save');else delete n.mce_save;});return o;},add:function(p,n,a,h,c){var t=this;return this.run(p,function(p){var e,k;e=is(n,'string')?t.doc.createElement(n):n;t.setAttribs(e,a);if(h){if(h.nodeType)e.appendChild(h);else t.setHTML(e,h);}return!c?p.appendChild(e):e;});},create:function(n,a,h){return this.add(this.doc.createElement(n),n,a,h,1);},createHTML:function(n,a,h){var o='',t=this,k;o+='<'+n;for(k in a){if(a.hasOwnProperty(k))o+=' '+k+'="'+t.encode(a[k])+'"';}if(tinymce.is(h))return o+'>'+h+'';return o+' />';},remove:function(n,k){return this.run(n,function(n){var p,g;p=n.parentNode;if(!p)return null;if(k){each(n.childNodes,function(c){p.insertBefore(c.cloneNode(true),n);});}return p.removeChild(n);});},setStyle:function(n,na,v){var t=this;return t.run(n,function(e){var s,i;s=e.style;na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(t.pixelStyles.test(na)&&(tinymce.is(v,'number')||/^[\-0-9\.]+$/.test(v)))v+='px';switch(na){case'opacity':if(isIE){s.filter=v===''?'':"alpha(opacity="+(v*100)+")";if(!n.currentStyle||!n.currentStyle.hasLayout)s.display='inline-block';}s[na]=s['-moz-opacity']=s['-khtml-opacity']=v||'';break;case'float':isIE?s.styleFloat=v:s.cssFloat=v;break;default:s[na]=v||'';}if(t.settings.update_styles)t.setAttrib(e,'mce_style');});},getStyle:function(n,na,c){n=this.get(n);if(!n)return false;if(this.doc.defaultView&&c){na=na.replace(/[A-Z]/g,function(a){return'-'+a;});try{return this.doc.defaultView.getComputedStyle(n,null).getPropertyValue(na);}catch(ex){return null;}}na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(na=='float')na=isIE?'styleFloat':'cssFloat';if(n.currentStyle&&c)return n.currentStyle[na];return n.style[na];},setStyles:function(e,o){var t=this,s=t.settings,ol;ol=s.update_styles;s.update_styles=0;each(o,function(v,n){t.setStyle(e,n,v);});s.update_styles=ol;if(s.update_styles)t.setAttrib(e,s.cssText);},setAttrib:function(e,n,v){var t=this;if(!e||!n)return;if(t.settings.strict)n=n.toLowerCase();return this.run(e,function(e){var s=t.settings;switch(n){case"style":if(!is(v,'string')){each(v,function(v,n){t.setStyle(e,n,v);});return;}if(s.keep_values){if(v&&!t._isRes(v))e.setAttribute('mce_style',v,2);else e.removeAttribute('mce_style',2);}e.style.cssText=v;break;case"class":e.className=v||'';break;case"src":case"href":if(s.keep_values){if(s.url_converter)v=s.url_converter.call(s.url_converter_scope||t,v,n,e);t.setAttrib(e,'mce_'+n,v,2);}break;case"shape":e.setAttribute('mce_style',v);break;}if(is(v)&&v!==null&&v.length!==0)e.setAttribute(n,''+v,2);else e.removeAttribute(n,2);});},setAttribs:function(e,o){var t=this;return this.run(e,function(e){each(o,function(v,n){t.setAttrib(e,n,v);});});},getAttrib:function(e,n,dv){var v,t=this;e=t.get(e);if(!e||e.nodeType!==1)return false;if(!is(dv))dv='';if(/^(src|href|style|coords|shape)$/.test(n)){v=e.getAttribute("mce_"+n);if(v)return v;}if(isIE&&t.props[n]){v=e[t.props[n]];v=v&&v.nodeValue?v.nodeValue:v;}if(!v)v=e.getAttribute(n,2);if(n==='style'){v=v||e.style.cssText;if(v){v=t.serializeStyle(t.parseStyle(v));if(t.settings.keep_values&&!t._isRes(v))e.setAttribute('mce_style',v);}}if(isWebKit&&n==="class"&&v)v=v.replace(/(apple|webkit)\-[a-z\-]+/gi,'');if(isIE){switch(n){case'rowspan':case'colspan':if(v===1)v='';break;case'size':if(v==='+0'||v===20)v='';break;case'width':case'height':case'vspace':case'checked':case'disabled':case'readonly':if(v===0)v='';break;case'hspace':if(v===-1)v='';break;case'maxlength':case'tabindex':if(v===32768||v===2147483647||v==='32768')v='';break;case'compact':case'noshade':case'nowrap':if(v===65535)return n;return dv;case'shape':v=v.toLowerCase();break;default:if(n.indexOf('on')===0&&v)v=(''+v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1');}}return(v!==undefined&&v!==null&&v!=='')?''+v:dv;},getPos:function(n){var t=this,x=0,y=0,e,d=t.doc,r;n=t.get(n);if(n&&isIE){n=n.getBoundingClientRect();e=t.boxModel?d.documentElement:d.body;x=t.getStyle(t.select('html')[0],'borderWidth');x=(x=='medium'||t.boxModel&&!t.isIE6)&&2||x;n.top+=t.win.self!=t.win.top?2:0;return{x:n.left+e.scrollLeft-x,y:n.top+e.scrollTop-x};}r=n;while(r){x+=r.offsetLeft||0;y+=r.offsetTop||0;r=r.offsetParent;}r=n;while(r){if(!/^table-row|inline.*/i.test(t.getStyle(r,"display",1))){x-=r.scrollLeft||0;y-=r.scrollTop||0;}r=r.parentNode;if(r==d.body)break;}return{x:x,y:y};},parseStyle:function(st){var t=this,s=t.settings,o={};if(!st)return o;function compress(p,s,ot){var t,r,b,l;t=o[p+'-top'+s];if(!t)return;r=o[p+'-right'+s];if(t!=r)return;b=o[p+'-bottom'+s];if(r!=b)return;l=o[p+'-left'+s];if(b!=l)return;o[ot]=l;delete o[p+'-top'+s];delete o[p+'-right'+s];delete o[p+'-bottom'+s];delete o[p+'-left'+s];};function compress2(ta,a,b,c){var t;t=o[a];if(!t)return;t=o[b];if(!t)return;t=o[c];if(!t)return;o[ta]=o[a]+' '+o[b]+' '+o[c];delete o[a];delete o[b];delete o[c];};st=st.replace(/&(#?[a-z0-9]+);/g,'&$1_MCE_SEMI_');each(st.split(';'),function(v){var sv,ur=[];if(v){v=v.replace(/_MCE_SEMI_/g,';');v=v.replace(/url\([^\)]+\)/g,function(v){ur.push(v);return'url('+ur.length+')';});v=v.split(':');sv=tinymce.trim(v[1]);sv=sv.replace(/url\(([^\)]+)\)/g,function(a,b){return ur[parseInt(b)-1];});sv=sv.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});if(s.url_converter){sv=sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(x,c){return'url('+s.url_converter.call(s.url_converter_scope||t,t.decode(c),'style',null)+')';});}o[tinymce.trim(v[0]).toLowerCase()]=sv;}});compress("border","","border");compress("border","-width","border-width");compress("border","-color","border-color");compress("border","-style","border-style");compress("padding","","padding");compress("margin","","margin");compress2('border','border-width','border-style','border-color');if(isIE){if(o.border=='medium none')o.border='';}return o;},serializeStyle:function(o){var s='';each(o,function(v,k){if(k&&v){if(tinymce.isGecko&&k.indexOf('-moz-')===0)return;switch(k){case'color':case'background-color':v=v.toLowerCase();break;}s+=(s?' ':'')+k+': '+v+';';}});return s;},loadCSS:function(u){var t=this,d=t.doc;if(!u)u='';each(u.split(','),function(u){if(t.files[u])return;t.files[u]=true;t.add(t.select('head')[0],'link',{rel:'stylesheet',href:tinymce._addVer(u)});});},addClass:function(e,c){return this.run(e,function(e){var o;if(!c)return 0;if(this.hasClass(e,c))return e.className;o=this.removeClass(e,c);return e.className=(o!=''?(o+' '):'')+c;});},removeClass:function(e,c){var t=this,re;return t.run(e,function(e){var v;if(t.hasClass(e,c)){if(!re)re=new RegExp("(^|\\s+)"+c+"(\\s+|$)","g");v=e.className.replace(re,' ');return e.className=tinymce.trim(v!=' '?v:'');}return e.className;});},hasClass:function(n,c){n=this.get(n);if(!n||!c)return false;return(' '+n.className+' ').indexOf(' '+c+' ')!==-1;},show:function(e){return this.setStyle(e,'display','block');},hide:function(e){return this.setStyle(e,'display','none');},isHidden:function(e){e=this.get(e);return!e||e.style.display=='none'||this.getStyle(e,'display')=='none';},uniqueId:function(p){return(!p?'mce_':p)+(this.counter++);},setHTML:function(e,h){var t=this;return this.run(e,function(e){var x,i,nl,n,p,x;h=t.processHTML(h);if(isIE){function set(){try{e.innerHTML='
'+h;e.removeChild(e.firstChild);}catch(ex){while(e.firstChild)e.firstChild.removeNode();x=t.create('div');x.innerHTML='
'+h;each(x.childNodes,function(n,i){if(i)e.appendChild(n);});}};if(t.settings.fix_ie_paragraphs)h=h.replace(/

<\/p>|]+)><\/p>|/gi,' 

');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("p");for(i=nl.length-1,x=0;i>=0;i--){n=nl[i];if(!n.hasChildNodes()){if(!n.mce_keep){x=1;break;}n.removeAttribute('mce_keep');}}}if(x){h=h.replace(/

]+)>|

/g,'

');h=h.replace(/<\/p>/g,'
');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("DIV");for(i=nl.length-1;i>=0;i--){n=nl[i];if(n.mce_tmp){p=t.doc.createElement('p');n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(a,b){var v;if(b!=='mce_tmp'){v=n.getAttribute(b);if(!v&&b==='class')v=n.className;p.setAttribute(b,v);}});for(x=0;x|]+)>/gi,'<$1b$2>');h=h.replace(/<(\/?)em>|]+)>/gi,'<$1i$2>');}else if(isIE){h=h.replace(/'/g,''');h=h.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\"\']?(false|0)[\"\']?/gi,'');}h=h.replace(/]+)\/>|/gi,'');if(s.keep_values){if(/)/g,'\n');s=s.replace(/^[\r\n]*|[\r\n]*$/g,'');s=s.replace(/^\s*(\/\/\s*|\]\]>|-->|\]\]-->)\s*$/g,'');return s;};h=h.replace(/]+|)>([\s\S]*?)<\/script>/g,function(v,a,b){b=trim(b);if(!a)a=' type="text/javascript"';if(b)b='';return''+b+'';});h=h.replace(/]+|)>([\s\S]*?)<\/style>/g,function(v,a,b){b=trim(b);return''+b+'';});}h=h.replace(//g,'');h=h.replace(/<([\w:]+) [^>]*(src|href|style|shape|coords)[^>]*>/gi,function(a,n){function handle(m,b,c){var u=c;if(a.indexOf('mce_'+b)!=-1)return m;if(b=='style'){if(t._isRes(c))return m;if(s.hex_colors){u=u.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});}if(s.url_converter){u=u.replace(/url\([\'\"]?([^\)\'\"]+)\)/g,function(x,c){return'url('+t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n))+')';});}}else if(b!='coords'&&b!='shape'){if(s.url_converter)u=t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n));}return' '+b+'="'+c+'" mce_'+b+'="'+u+'"';};a=a.replace(/ (src|href|style|coords|shape)=[\"]([^\"]+)[\"]/gi,handle);a=a.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi,handle);return a.replace(/ (src|href|style|coords|shape)=([^\s\"\'>]+)/gi,handle);});}return h;},getOuterHTML:function(e){var d;e=this.get(e);if(!e)return null;if(isIE)return e.outerHTML;d=(e.ownerDocument||this.doc).createElement("body");d.appendChild(e.cloneNode(true));return d.innerHTML;},setOuterHTML:function(e,h,d){var t=this;return this.run(e,function(e){var n,tp;e=t.get(e);d=d||e.ownerDocument||t.doc;if(isIE&&e.nodeType==1)e.outerHTML=h;else{tp=d.createElement("body");tp.innerHTML=h;n=tp.lastChild;while(n){t.insertAfter(n.cloneNode(true),e);n=n.previousSibling;}t.remove(e);}});},decode:function(s){var e,n,v;if(/&[^;]+;/.test(s)){e=this.doc.createElement("div");e.innerHTML=s;n=e.firstChild;v='';if(n){do{v+=n.nodeValue;}while(n.nextSibling);}return v||s;}return s;},encode:function(s){return s?(''+s).replace(/[<>&\"]/g,function(c,b){switch(c){case'&':return'&';case'"':return'"';case'<':return'<';case'>':return'>';}return c;}):s;},insertAfter:function(n,r){var t=this;r=t.get(r);return this.run(n,function(n){var p,ns;p=r.parentNode;ns=r.nextSibling;if(ns)p.insertBefore(n,ns);else p.appendChild(n);return n;});},isBlock:function(n){if(n.nodeType&&n.nodeType!==1)return false;n=n.nodeName||n;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);},replace:function(n,o,k){if(is(o,'array'))n=n.cloneNode(true);return this.run(o,function(o){if(k){each(o.childNodes,function(c){n.appendChild(c.cloneNode(true));});}return o.parentNode.replaceChild(n,o);});},toHex:function(s){var c=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);function hex(s){s=parseInt(s).toString(16);return s.length>1?s:'0'+s;};if(c){s='#'+hex(c[1])+hex(c[2])+hex(c[3]);return s;}return s;},getClasses:function(){var t=this,cl=[],i,lo={},f=t.settings.class_filter,ov;if(t.classes)return t.classes;function addClasses(s){each(s.imports,function(r){addClasses(r);});each(s.cssRules||s.rules,function(r){switch(r.type||1){case 1:if(r.selectorText){each(r.selectorText.split(','),function(v){v=v.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(v)||!/\.[\w\-]+$/.test(v))return;ov=v;v=v.replace(/.*\.([a-z0-9_\-]+).*/i,'$1');if(f&&!(v=f(v,ov)))return;if(!lo[v]){cl.push({'class':v});lo[v]=1;}});}break;case 3:addClasses(r.styleSheet);break;}});};try{each(t.doc.styleSheets,addClasses);}catch(ex){}if(cl.length>0)t.classes=cl;return cl;},run:function(e,f,s){var t=this,o;if(t.doc&&typeof(e)==='string')e=t.get(e);if(!e)return false;s=s||this;if(!e.nodeType&&(e.length||e.length===0)){o=[];each(e,function(e,i){if(e){if(typeof(e)=='string')e=t.doc.getElementById(e);o.push(f.call(s,e,i));}});return o;}return f.call(s,e);},getAttribs:function(n){var o;n=this.get(n);if(!n)return[];if(isIE){o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;}return n.attributes;},destroy:function(s){var t=this;t.win=t.doc=t.root=null;if(!s)tinymce.removeUnload(t.destroy);},_isRes:function(c){return/^(top|left|bottom|right|width|height)/i.test(c)||/;\s*(top|left|bottom|right|width|height)/i.test(c);}});tinymce.DOM=new tinymce.dom.DOMUtils(document,{process_html:0});})();(function(){var each=tinymce.each,DOM=tinymce.DOM,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit,Event;tinymce.create('static tinymce.dom.Event',{inits:[],events:[],add:function(o,n,f,s){var cb,t=this,el=t.events,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.add(o,n,f,s));});return r;}o=DOM.get(o);if(!o)return;cb=function(e){e=e||window.event;if(e&&!e.target&&isIE)e.target=e.srcElement;if(!s)return f(e);return f.call(s,e);};if(n=='unload'){tinymce.unloads.unshift({func:cb});return cb;}if(n=='init'){if(t.domLoaded)cb();else t.inits.push(cb);return cb;}el.push({obj:o,name:n,func:f,cfunc:cb,scope:s});t._add(o,n,cb);return f;},remove:function(o,n,f){var t=this,a=t.events,s=false,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.remove(o,n,f));});return r;}o=DOM.get(o);each(a,function(e,i){if(e.obj==o&&e.name==n&&(!f||(e.func==f||e.cfunc==f))){a.splice(i,1);t._remove(o,n,e.cfunc);s=true;return false;}});return s;},clear:function(o){var t=this,a=t.events,i,e;if(o){o=DOM.get(o);for(i=a.length-1;i>=0;i--){e=a[i];if(e.obj===o){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;a.splice(i,1);}}}},cancel:function(e){if(!e)return false;this.stop(e);return this.prevent(e);},stop:function(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false;},prevent:function(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false;},_unload:function(){var t=Event;each(t.events,function(e,i){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;});t.events=[];t=null;},_add:function(o,n,f){if(o.attachEvent)o.attachEvent('on'+n,f);else if(o.addEventListener)o.addEventListener(n,f,false);else o['on'+n]=f;},_remove:function(o,n,f){if(o){try{if(o.detachEvent)o.detachEvent('on'+n,f);else if(o.removeEventListener)o.removeEventListener(n,f,false);else o['on'+n]=null;}catch(ex){}}},_pageInit:function(){var e=Event;if(e.domLoaded)return;e._remove(window,'DOMContentLoaded',e._pageInit);e.domLoaded=true;each(e.inits,function(c){c();});e.inits=[];},_wait:function(){var t;if(window.tinyMCE_GZ&&tinyMCE_GZ.loaded){Event.domLoaded=1;return;}if(isIE&&document.location.protocol!='https:'){document.write('';bi=s.body_id||'tinymce';if(bi.indexOf('=')!=-1){bi=t.getParam('body_id','','hash');bi=bi[t.id]||bi;}bc=s.body_class||'';if(bc.indexOf('=')!=-1){bc=t.getParam('body_class','','hash');bc=bc[t.id]||'';}t.iframeHTML+='';if(tinymce.relaxedDomain){if(isIE||(tinymce.isOpera&&parseFloat(opera.version())>=9.5))u='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';else if(tinymce.isOpera)u='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()';}n=DOM.add(o.iframeContainer,'iframe',{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:'0',style:{width:'100%',height:h}});t.contentAreaContainer=o.iframeContainer;DOM.get(o.editorContainer).style.display=t.orgDisplay;DOM.get(t.id).style.display='none';if(tinymce.isOldWebKit){Event.add(n,'load',t.setupIframe,t);n.src=tinymce.baseURL+'/plugins/safari/blank.htm';}else{if(!isIE||!tinymce.relaxedDomain)t.setupIframe();e=n=o=null;}},setupIframe:function(){var t=this,s=t.settings,e=DOM.get(t.id),d=t.getDoc(),h,b;if(!isIE||!tinymce.relaxedDomain){d.open();d.write(t.iframeHTML);d.close();}if(!isIE){try{if(!s.readonly)d.designMode='On';}catch(ex){}}if(isIE){b=t.getBody();DOM.hide(b);if(!s.readonly)b.contentEditable=true;DOM.show(b);}t.dom=new tinymce.DOM.DOMUtils(t.getDoc(),{keep_values:true,url_converter:t.convertURL,url_converter_scope:t,hex_colors:s.force_hex_style_colors,class_filter:s.class_filter,update_styles:1,fix_ie_paragraphs:1});t.serializer=new tinymce.dom.Serializer({entity_encoding:s.entity_encoding,entities:s.entities,valid_elements:s.verify_html===false?'*[*]':s.valid_elements,extended_valid_elements:s.extended_valid_elements,valid_child_elements:s.valid_child_elements,invalid_elements:s.invalid_elements,fix_table_elements:s.fix_table_elements,fix_list_elements:s.fix_list_elements,fix_content_duplication:s.fix_content_duplication,convert_fonts_to_spans:s.convert_fonts_to_spans,font_size_classes:s.font_size_classes,font_size_style_values:s.font_size_style_values,apply_source_formatting:s.apply_source_formatting,remove_linebreaks:s.remove_linebreaks,element_format:s.element_format,dom:t.dom});t.selection=new tinymce.dom.Selection(t.dom,t.getWin(),t.serializer);t.forceBlocks=new tinymce.ForceBlocks(t,{forced_root_block:s.forced_root_block});t.editorCommands=new tinymce.EditorCommands(t);t.serializer.onPreProcess.add(function(se,o){return t.onPreProcess.dispatch(t,o,se);});t.serializer.onPostProcess.add(function(se,o){return t.onPostProcess.dispatch(t,o,se);});t.onPreInit.dispatch(t);if(!s.gecko_spellcheck)t.getBody().spellcheck=0;if(!s.readonly)t._addEvents();t.controlManager.onPostRender.dispatch(t,t.controlManager);t.onPostRender.dispatch(t);if(s.directionality)t.getBody().dir=s.directionality;if(s.nowrap)t.getBody().style.whiteSpace="nowrap";if(s.auto_resize)t.onNodeChange.add(t.resizeToContent,t);if(s.custom_elements){function handleCustom(ed,o){each(explode(s.custom_elements),function(v){var n;if(v.indexOf('~')===0){v=v.substring(1);n='span';}else n='div';o.content=o.content.replace(new RegExp('<('+v+')([^>]*)>','g'),'<'+n+' mce_name="$1"$2>');o.content=o.content.replace(new RegExp('','g'),'');});};t.onBeforeSetContent.add(handleCustom);t.onPostProcess.add(function(ed,o){if(o.set)handleCustom(ed,o)});}if(s.handle_node_change_callback){t.onNodeChange.add(function(ed,cm,n){t.execCallback('handle_node_change_callback',t.id,n,-1,-1,true,t.selection.isCollapsed());});}if(s.save_callback){t.onSaveContent.add(function(ed,o){var h=t.execCallback('save_callback',t.id,o.content,t.getBody());if(h)o.content=h;});}if(s.onchange_callback){t.onChange.add(function(ed,l){t.execCallback('onchange_callback',t,l);});}if(s.convert_newlines_to_brs){t.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/\r?\n/g,'
');});}if(s.fix_nesting&&isIE){t.onBeforeSetContent.add(function(ed,o){o.content=t._fixNesting(o.content);});}if(s.preformatted){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^\s*/,'');o.content=o.content.replace(/<\/pre>\s*$/,'');if(o.set)o.content='
'+o.content+'
';});}if(s.verify_css_classes){t.serializer.attribValueFilter=function(n,v){var s,cl;if(n=='class'){if(!t.classesRE){cl=t.dom.getClasses();if(cl.length>0){s='';each(cl,function(o){s+=(s?'|':'')+o['class'];});t.classesRE=new RegExp('('+s+')','gi');}}return!t.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v)||t.classesRE.test(v)?v:'';}return v;};}if(s.convert_fonts_to_spans)t._convertFonts();if(s.inline_styles)t._convertInlineElements();if(s.cleanup_callback){t.onBeforeSetContent.add(function(ed,o){o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);});t.onPreProcess.add(function(ed,o){if(o.set)t.execCallback('cleanup_callback','insert_to_editor_dom',o.node,o);if(o.get)t.execCallback('cleanup_callback','get_from_editor_dom',o.node,o);});t.onPostProcess.add(function(ed,o){if(o.set)o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);if(o.get)o.content=t.execCallback('cleanup_callback','get_from_editor',o.content,o);});}if(s.save_callback){t.onGetContent.add(function(ed,o){if(o.save)o.content=t.execCallback('save_callback',t.id,o.content,t.getBody());});}if(s.handle_event_callback){t.onEvent.add(function(ed,e,o){if(t.execCallback('handle_event_callback',e,ed,o)===false)Event.cancel(e);});}t.onSetContent.add(function(){t.addVisual(t.getBody());});if(s.padd_empty_editor){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^(]*>( | |\s|\u00a0|)<\/p>[\r\n]*|
[\r\n]*)$/,'');});}if(isGecko&&!s.readonly){try{d.designMode='Off';d.designMode='On';}catch(ex){}}setTimeout(function(){if(t.removed)return;t.load({initial:true,format:(s.cleanup_on_startup?'html':'raw')});t.startContent=t.getContent({format:'raw'});t.undoManager.add({initial:true});t.initialized=true;t.onInit.dispatch(t);t.execCallback('setupcontent_callback',t.id,t.getBody(),t.getDoc());t.execCallback('init_instance_callback',t);t.focus(true);t.nodeChanged({initial:1});if(s.content_css){tinymce.each(explode(s.content_css),function(u){t.dom.loadCSS(t.documentBaseURI.toAbsolute(u));});}if(s.auto_focus){setTimeout(function(){var ed=EditorManager.get(s.auto_focus);ed.selection.select(ed.getBody(),1);ed.selection.collapse(1);ed.getWin().focus();},100);}},1);e=null;},focus:function(sf){var oed,t=this,ce=t.settings.content_editable;if(!sf){if(!ce&&(!isIE||t.selection.getNode().ownerDocument!=t.getDoc()))t.getWin().focus();}if(EditorManager.activeEditor!=t){if((oed=EditorManager.activeEditor)!=null)oed.onDeactivate.dispatch(oed,t);t.onActivate.dispatch(t,oed);}EditorManager._setActive(t);},execCallback:function(n){var t=this,f=t.settings[n],s;if(!f)return;if(t.callbackLookup&&(s=t.callbackLookup[n])){f=s.func;s=s.scope;}if(is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);t.callbackLookup=t.callbackLookup||{};t.callbackLookup[n]={func:f,scope:s};}return f.apply(s||t,Array.prototype.slice.call(arguments,1));},translate:function(s){var c=this.settings.language||'en',i18n=EditorManager.i18n;if(!s)return'';return i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return i18n[c+'.'+b]||'{#'+b+'}';});},getLang:function(n,dv){return EditorManager.i18n[(this.settings.language||'en')+'.'+n]||(is(dv)?dv:'{#'+n+'}');},getParam:function(n,dv,ty){var tr=tinymce.trim,v=is(this.settings[n])?this.settings[n]:dv,o;if(ty==='hash'){o={};if(is(v,'string')){each(v.indexOf('=')>0?v.split(/[;,](?![^=;,]*(?:[;,]|$))/):v.split(','),function(v){v=v.split('=');if(v.length>1)o[tr(v[0])]=tr(v[1]);else o[tr(v[0])]=tr(v);});}else o=v;return o;}return v;},nodeChanged:function(o){var t=this,s=t.selection,n=s.getNode()||t.getBody();if(t.initialized){t.onNodeChange.dispatch(t,o?o.controlManager||t.controlManager:t.controlManager,isIE&&n.ownerDocument!=t.getDoc()?t.getBody():n,s.isCollapsed(),o);}},addButton:function(n,s){var t=this;t.buttons=t.buttons||{};t.buttons[n]=s;},addCommand:function(n,f,s){this.execCommands[n]={func:f,scope:s||this};},addQueryStateHandler:function(n,f,s){this.queryStateCommands[n]={func:f,scope:s||this};},addQueryValueHandler:function(n,f,s){this.queryValueCommands[n]={func:f,scope:s||this};},addShortcut:function(pa,desc,cmd_func,sc){var t=this,c;if(!t.settings.custom_shortcuts)return false;t.shortcuts=t.shortcuts||{};if(is(cmd_func,'string')){c=cmd_func;cmd_func=function(){t.execCommand(c,false,null);};}if(is(cmd_func,'object')){c=cmd_func;cmd_func=function(){t.execCommand(c[0],c[1],c[2]);};}each(explode(pa),function(pa){var o={func:cmd_func,scope:sc||this,desc:desc,alt:false,ctrl:false,shift:false};each(explode(pa,'+'),function(v){switch(v){case'alt':case'ctrl':case'shift':o[v]=true;break;default:o.charCode=v.charCodeAt(0);o.keyCode=v.toUpperCase().charCodeAt(0);}});t.shortcuts[(o.ctrl?'ctrl':'')+','+(o.alt?'alt':'')+','+(o.shift?'shift':'')+','+o.keyCode]=o;});return true;},execCommand:function(cmd,ui,val,a){var t=this,s=0,o,st;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd)&&(!a||!a.skip_focus))t.focus();o={};t.onBeforeExecCommand.dispatch(t,cmd,ui,val,o);if(o.terminate)return false;if(t.execCallback('execcommand_callback',t.id,t.selection.getNode(),cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(o=t.execCommands[cmd]){st=o.func.call(o.scope,ui,val);if(st!==true){t.onExecCommand.dispatch(t,cmd,ui,val,a);return st;}}each(t.plugins,function(p){if(p.execCommand&&p.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);s=1;return false;}});if(s)return true;if(t.theme.execCommand&&t.theme.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(t.editorCommands.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}t.getDoc().execCommand(cmd,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);},queryCommandState:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryStateCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandState(c);if(o!==-1)return o;try{return this.getDoc().queryCommandState(c);}catch(ex){}},queryCommandValue:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryValueCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandValue(c);if(is(o))return o;try{return this.getDoc().queryCommandValue(c);}catch(ex){}},show:function(){var t=this;DOM.show(t.getContainer());DOM.hide(t.id);t.load();},hide:function(){var t=this,d=t.getDoc();if(isIE&&d)d.execCommand('SelectAll');t.save();DOM.hide(t.getContainer());DOM.setStyle(t.id,'display',t.orgDisplay);},isHidden:function(){return!DOM.isHidden(this.id);},setProgressState:function(b,ti,o){this.onSetProgressState.dispatch(this,b,ti,o);return b;},resizeToContent:function(){var t=this;DOM.setStyle(t.id+"_ifr",'height',t.getBody().scrollHeight);},load:function(o){var t=this,e=t.getElement(),h;if(e){o=o||{};o.load=true;h=t.setContent(is(e.value)?e.value:e.innerHTML,o);o.element=e;if(!o.no_events)t.onLoadContent.dispatch(t,o);o.element=e=null;return h;}},save:function(o){var t=this,e=t.getElement(),h,f;if(!e||!t.initialized)return;o=o||{};o.save=true;if(!o.no_events){t.undoManager.typing=0;t.undoManager.add();}o.element=e;h=o.content=t.getContent(o);if(!o.no_events)t.onSaveContent.dispatch(t,o);h=o.content;if(!/TEXTAREA|INPUT/i.test(e.nodeName)){e.innerHTML=h;if(f=DOM.getParent(t.id,'form')){each(f.elements,function(e){if(e.name==t.id){e.value=h;return false;}});}}else e.value=h;o.element=e=null;return h;},setContent:function(h,o){var t=this;o=o||{};o.format=o.format||'html';o.set=true;o.content=h;if(!o.no_events)t.onBeforeSetContent.dispatch(t,o);if(!tinymce.isIE&&(h.length===0||/^\s+$/.test(h))){o.content=t.dom.setHTML(t.getBody(),'
');o.format='raw';}o.content=t.dom.setHTML(t.getBody(),tinymce.trim(o.content));if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;o.content=t.dom.setHTML(t.getBody(),t.serializer.serialize(t.getBody(),o));}if(!o.no_events)t.onSetContent.dispatch(t,o);return o.content;},getContent:function(o){var t=this,h;o=o||{};o.format=o.format||'html';o.get=true;if(!o.no_events)t.onBeforeGetContent.dispatch(t,o);if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;h=t.serializer.serialize(t.getBody(),o);}else h=t.getBody().innerHTML;h=h.replace(/^\s*|\s*$/g,'');o.content=h;if(!o.no_events)t.onGetContent.dispatch(t,o);return o.content;},isDirty:function(){var t=this;return tinymce.trim(t.startContent)!=tinymce.trim(t.getContent({format:'raw',no_events:1}))&&!t.isNotDirty;},getContainer:function(){var t=this;if(!t.container)t.container=DOM.get(t.editorContainer||t.id+'_parent');return t.container;},getContentAreaContainer:function(){return this.contentAreaContainer;},getElement:function(){return DOM.get(this.settings.content_element||this.id);},getWin:function(){var t=this,e;if(!t.contentWindow){e=DOM.get(t.id+"_ifr");if(e)t.contentWindow=e.contentWindow;}return t.contentWindow;},getDoc:function(){var t=this,w;if(!t.contentDocument){w=t.getWin();if(w)t.contentDocument=w.document;}return t.contentDocument;},getBody:function(){return this.bodyElement||this.getDoc().body;},convertURL:function(u,n,e){var t=this,s=t.settings;if(s.urlconverter_callback)return t.execCallback('urlconverter_callback',u,e,true,n);if(!s.convert_urls||(e&&e.nodeName=='LINK')||u.indexOf('file:')===0)return u;if(s.relative_urls)return t.documentBaseURI.toRelative(u);u=t.documentBaseURI.toAbsolute(u,s.remove_script_host);return u;},addVisual:function(e){var t=this,s=t.settings;e=e||t.getBody();if(!is(t.hasVisual))t.hasVisual=s.visual;each(t.dom.select('table,a',e),function(e){var v;switch(e.nodeName){case'TABLE':v=t.dom.getAttrib(e,'border');if(!v||v=='0'){if(t.hasVisual)t.dom.addClass(e,s.visual_table_class);else t.dom.removeClass(e,s.visual_table_class);}return;case'A':v=t.dom.getAttrib(e,'name');if(v){if(t.hasVisual)t.dom.addClass(e,'mceItemAnchor');else t.dom.removeClass(e,'mceItemAnchor');}return;}});t.onVisualAid.dispatch(t,e,t.hasVisual);},remove:function(){var t=this,e=t.getContainer();t.removed=1;t.hide();t.execCallback('remove_instance_callback',t);t.onRemove.dispatch(t);t.onExecCommand.listeners=[];EditorManager.remove(t);DOM.remove(e);},destroy:function(s){var t=this;if(t.destroyed)return;if(!s){tinymce.removeUnload(t.destroy);tinyMCE.onBeforeUnload.remove(t._beforeUnload);if(t.theme.destroy)t.theme.destroy();t.controlManager.destroy();t.selection.destroy();t.dom.destroy();if(!t.settings.content_editable){Event.clear(t.getWin());Event.clear(t.getDoc());}Event.clear(t.getBody());Event.clear(t.formElement);}if(t.formElement){t.formElement.submit=t.formElement._mceOldSubmit;t.formElement._mceOldSubmit=null;}t.contentAreaContainer=t.formElement=t.container=t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null;if(t.selection)t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null;t.destroyed=1;},_addEvents:function(){var t=this,i,s=t.settings,lo={mouseup:'onMouseUp',mousedown:'onMouseDown',click:'onClick',keyup:'onKeyUp',keydown:'onKeyDown',keypress:'onKeyPress',submit:'onSubmit',reset:'onReset',contextmenu:'onContextMenu',dblclick:'onDblClick',paste:'onPaste'};function eventHandler(e,o){var ty=e.type;if(t.removed)return;if(t.onEvent.dispatch(t,e,o)!==false){t[lo[e.fakeType||e.type]].dispatch(t,e,o);}};each(lo,function(v,k){switch(k){case'contextmenu':if(tinymce.isOpera){Event.add(t.getBody(),'mousedown',function(e){if(e.ctrlKey){e.fakeType='contextmenu';eventHandler(e);}});}else Event.add(t.getBody(),k,eventHandler);break;case'paste':Event.add(t.getBody(),k,function(e){var tx,h,el,r;if(e.clipboardData)tx=e.clipboardData.getData('text/plain');else if(tinymce.isIE)tx=t.getWin().clipboardData.getData('Text');eventHandler(e,{text:tx,html:h});});break;case'submit':case'reset':Event.add(t.getElement().form||DOM.getParent(t.id,'form'),k,eventHandler);break;default:Event.add(s.content_editable?t.getBody():t.getDoc(),k,eventHandler);}});Event.add(s.content_editable?t.getBody():(isGecko?t.getDoc():t.getWin()),'focus',function(e){t.focus(true);});if(tinymce.isGecko){Event.add(t.getDoc(),'DOMNodeInserted',function(e){var v;e=e.target;if(e.nodeType===1&&e.nodeName==='IMG'&&(v=e.getAttribute('mce_src')))e.src=t.documentBaseURI.toAbsolute(v);});}if(isGecko){function setOpts(){var t=this,d=t.getDoc(),s=t.settings;if(isGecko&&!s.readonly){if(t._isHidden()){try{if(!s.content_editable)d.designMode='On';}catch(ex){}}try{d.execCommand("styleWithCSS",0,false);}catch(ex){if(!t._isHidden())try{d.execCommand("useCSS",0,true);}catch(ex){}}if(!s.table_inline_editing)try{d.execCommand('enableInlineTableEditing',false,false);}catch(ex){}if(!s.object_resizing)try{d.execCommand('enableObjectResizing',false,false);}catch(ex){}}};t.onBeforeExecCommand.add(setOpts);t.onMouseDown.add(setOpts);}t.onMouseUp.add(t.nodeChanged);t.onClick.add(t.nodeChanged);t.onKeyUp.add(function(ed,e){var c=e.keyCode;if((c>=33&&c<=36)||(c>=37&&c<=40)||c==13||c==45||c==46||c==8||(tinymce.isMac&&(c==91||c==93))||e.ctrlKey)t.nodeChanged();});t.onReset.add(function(){t.setContent(t.startContent,{format:'raw'});});if(t.getParam('tab_focus')){function tabCancel(ed,e){if(e.keyCode===9)return Event.cancel(e);};function tabHandler(ed,e){var x,i,f,el,v;function find(d){f=DOM.getParent(ed.id,'form');el=f.elements;if(f){each(el,function(e,i){if(e.id==ed.id){x=i;return false;}});if(d>0){for(i=x+1;i=0;i--){if(el[i].type!='hidden')return el[i];}}}return null;};if(e.keyCode===9){v=explode(ed.getParam('tab_focus'));if(v.length==1){v[1]=v[0];v[0]=':prev';}if(e.shiftKey){if(v[0]==':prev')el=find(-1);else el=DOM.get(v[0]);}else{if(v[1]==':next')el=find(1);else el=DOM.get(v[1]);}if(el){if(ed=EditorManager.get(el.id||el.name))ed.focus();else window.setTimeout(function(){window.focus();el.focus();},10);return Event.cancel(e);}}};t.onKeyUp.add(tabCancel);if(isGecko){t.onKeyPress.add(tabHandler);t.onKeyDown.add(tabCancel);}else t.onKeyDown.add(tabHandler);}if(s.custom_shortcuts){if(s.custom_undo_redo_keyboard_shortcuts){t.addShortcut('ctrl+z',t.getLang('undo_desc'),'Undo');t.addShortcut('ctrl+y',t.getLang('redo_desc'),'Redo');}if(isGecko){t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold');t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic');t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline');}for(i=1;i<=6;i++)t.addShortcut('ctrl+'+i,'',['FormatBlock',false,'']);t.addShortcut('ctrl+7','',['FormatBlock',false,'

']);t.addShortcut('ctrl+8','',['FormatBlock',false,'

']);t.addShortcut('ctrl+9','',['FormatBlock',false,'
']);function find(e){var v=null;if(!e.altKey&&!e.ctrlKey&&!e.metaKey)return v;each(t.shortcuts,function(o){if(tinymce.isMac&&o.ctrl!=e.metaKey)return;else if(!tinymce.isMac&&o.ctrl!=e.ctrlKey)return;if(o.alt!=e.altKey)return;if(o.shift!=e.shiftKey)return;if(e.keyCode==o.keyCode||(e.charCode&&e.charCode==o.charCode)){v=o;return false;}});return v;};t.onKeyUp.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyPress.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyDown.add(function(ed,e){var o=find(e);if(o){o.func.call(o.scope);return Event.cancel(e);}});}if(tinymce.isIE){Event.add(t.getDoc(),'controlselect',function(e){var re=t.resizeInfo,cb;e=e.target;if(e.nodeName!=='IMG')return;if(re)Event.remove(re.node,re.ev,re.cb);if(!t.dom.hasClass(e,'mceItemNoResize')){ev='resizeend';cb=Event.add(e,ev,function(e){var v;e=e.target;if(v=t.dom.getStyle(e,'width')){t.dom.setAttrib(e,'width',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'width','');}if(v=t.dom.getStyle(e,'height')){t.dom.setAttrib(e,'height',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'height','');}});}else{ev='resizestart';cb=Event.add(e,'resizestart',Event.cancel,Event);}re=t.resizeInfo={node:e,ev:ev,cb:cb};});t.onKeyDown.add(function(ed,e){switch(e.keyCode){case 8:if(t.selection.getRng().item){t.selection.getRng().item(0).removeNode();return Event.cancel(e);}}});}if(tinymce.isOpera){t.onClick.add(function(ed,e){Event.prevent(e);});}if(s.custom_undo_redo){function addUndo(){t.undoManager.typing=0;t.undoManager.add();};if(tinymce.isIE){Event.add(t.getWin(),'blur',function(e){var n;if(t.selection){n=t.selection.getNode();if(!t.removed&&n.ownerDocument&&n.ownerDocument!=t.getDoc())addUndo();}});}else{Event.add(t.getDoc(),'blur',function(){if(t.selection&&!t.removed)addUndo();});}t.onMouseDown.add(addUndo);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.ctrlKey){t.undoManager.typing=0;t.undoManager.add();}});t.onKeyDown.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45){if(t.undoManager.typing){t.undoManager.add();t.undoManager.typing=0;}return;}if(!t.undoManager.typing){t.undoManager.add();t.undoManager.typing=1;}});}},_convertInlineElements:function(){var t=this,s=t.settings,dom=t.dom,v,e,na,st,sp;function convert(ed,o){if(!s.inline_styles)return;if(o.get){each(t.dom.select('table,u,strike',o.node),function(n){switch(n.nodeName){case'TABLE':if(v=dom.getAttrib(n,'height')){dom.setStyle(n,'height',v);dom.setAttrib(n,'height','');}break;case'U':case'STRIKE':n.style.textDecoration=n.nodeName=='U'?'underline':'line-through';dom.setAttrib(n,'mce_style','');dom.setAttrib(n,'mce_name','span');break;}});}else if(o.set){each(t.dom.select('table,span',o.node).reverse(),function(n){if(n.nodeName=='TABLE'){if(v=dom.getStyle(n,'height'))dom.setAttrib(n,'height',v.replace(/[^0-9%]+/g,''));}else{if(n.style.textDecoration=='underline')na='u';else if(n.style.textDecoration=='line-through')na='strike';else na='';if(na){n.style.textDecoration='';dom.setAttrib(n,'mce_style','');e=dom.create(na,{style:dom.getAttrib(n,'style')});dom.replace(e,n,1);}}});}};t.onPreProcess.add(convert);if(!s.cleanup_on_startup){t.onSetContent.add(function(ed,o){if(o.initial)convert(t,{node:t.getBody(),set:1});});}},_convertFonts:function(){var t=this,s=t.settings,dom=t.dom,fz,fzn,sl,cl;if(!s.inline_styles)return;fz=[8,10,12,14,18,24,36];fzn=['xx-small','x-small','small','medium','large','x-large','xx-large'];if(sl=s.font_size_style_values)sl=explode(sl);if(cl=s.font_size_classes)cl=explode(cl);function process(no){var n,sp,nl,x;if(!s.inline_styles)return;nl=t.dom.select('font',no);for(x=nl.length-1;x>=0;x--){n=nl[x];sp=dom.create('span',{style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});dom.setStyles(sp,{fontFamily:dom.getAttrib(n,'face'),color:dom.getAttrib(n,'color'),backgroundColor:n.style.backgroundColor});if(n.size){if(sl)dom.setStyle(sp,'fontSize',sl[parseInt(n.size)-1]);else dom.setAttrib(sp,'class',cl[parseInt(n.size)-1]);}dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);}};t.onPreProcess.add(function(ed,o){if(o.get)process(o.node);});t.onSetContent.add(function(ed,o){if(o.initial)process(o.node);});},_isHidden:function(){var s;if(!isGecko)return 0;s=this.selection.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},_fixNesting:function(s){var d=[],i;s=s.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(a,b,c){var e;if(b==='/'){if(!d.length)return'';if(c!==d[d.length-1].tag){for(i=d.length-1;i>=0;i--){if(d[i].tag===c){d[i].close=1;break;}}return'';}else{d.pop();if(d.length&&d[d.length-1].close){a=a+'';d.pop();}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(c))return a;if(/\/>$/.test(a))return a;d.push({tag:c});}return a;});for(i=d.length-1;i>=0;i--)s+='';return s;}});})();(function(){var each=tinymce.each,isIE=tinymce.isIE,isGecko=tinymce.isGecko,isOpera=tinymce.isOpera,isWebKit=tinymce.isWebKit;function isBlock(n){return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n.nodeName);};tinymce.create('tinymce.EditorCommands',{EditorCommands:function(ed){this.editor=ed;},execCommand:function(cmd,ui,val){var t=this,ed=t.editor,f;switch(cmd){case'Cut':case'Copy':case'Paste':try{ed.getDoc().execCommand(cmd,ui,val);}catch(ex){if(isGecko){ed.windowManager.confirm(ed.getLang('clipboard_msg'),function(s){if(s)window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');});}else ed.windowManager.alert(ed.getLang('clipboard_no_support'));}return true;case'mceResetDesignMode':case'mceBeginUndoLevel':return true;case'unlink':t.UnLink();return true;case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':t.mceJustify(cmd,cmd.substring(7).toLowerCase());return true;case'mceEndUndoLevel':case'mceAddUndoLevel':ed.undoManager.add();return true;default:f=this[cmd];if(f){f.call(this,ui,val);return true;}}return false;},Indent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){d.setStyle(e,'paddingLeft',(parseInt(e.style.paddingLeft||0)+iv)+iu);});return;}ed.getDoc().execCommand('Indent',false,null);if(isIE){d.getParent(s.getNode(),function(n){if(n.nodeName=='BLOCKQUOTE'){n.dir=n.style.cssText='';}});}},Outdent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,v,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){v=Math.max(0,parseInt(e.style.paddingLeft||0)-iv);d.setStyle(e,'paddingLeft',v?v+iu:'');});return;}ed.getDoc().execCommand('Outdent',false,null);},mceSetAttribute:function(u,v){var ed=this.editor,d=ed.dom,e;if(e=d.getParent(ed.selection.getNode(),d.isBlock))d.setAttrib(e,v.name,v.value);},mceSetContent:function(u,v){this.editor.setContent(v);},mceToggleVisualAid:function(){var ed=this.editor;ed.hasVisual=!ed.hasVisual;ed.addVisual();},mceReplaceContent:function(u,v){var s=this.editor.selection;s.setContent(v.replace(/\{\$selection\}/g,s.getContent({format:'text'})));},mceInsertLink:function(u,v){var ed=this.editor,s=ed.selection,e=ed.dom.getParent(s.getNode(),'A');if(tinymce.is(v,'string'))v={href:v};function set(e){each(v,function(v,k){ed.dom.setAttrib(e,k,v);});};if(!e){ed.execCommand('CreateLink',false,'javascript:mctmp(0);');each(ed.dom.select('a'),function(e){if(e.href=='javascript:mctmp(0);')set(e);});}else{if(v.href)set(e);else ed.dom.remove(e,1);}},UnLink:function(){var ed=this.editor,s=ed.selection;if(s.isCollapsed())s.select(s.getNode());ed.getDoc().execCommand('unlink',false,null);s.collapse(0);},FontName:function(u,v){var t=this,ed=t.editor,s=ed.selection,e;if(!v){if(s.isCollapsed())s.select(s.getNode());t.RemoveFormat();}else{if(ed.settings.convert_fonts_to_spans)t._applyInlineStyle('span',{style:{fontFamily:v}});else ed.getDoc().execCommand('FontName',false,v);}},FontSize:function(u,v){var ed=this.editor,s=ed.settings,fc,fs;if(s.convert_fonts_to_spans&&v>=1&&v<=7){fs=tinymce.explode(s.font_size_style_values);fc=tinymce.explode(s.font_size_classes);if(fc)v=fc[v-1]||v;else v=fs[v-1]||v;}if(v>=1&&v<=7)ed.getDoc().execCommand('FontSize',false,v);else this._applyInlineStyle('span',{style:{fontSize:v}});},queryCommandValue:function(c){var f=this['queryValue'+c];if(f)return f.call(this,c);return false;},queryCommandState:function(cmd){var f;switch(cmd){case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':return this.queryStateJustify(cmd,cmd.substring(7).toLowerCase());default:if(f=this['queryState'+cmd])return f.call(this,cmd);}return-1;},_queryState:function(c){try{return this.editor.getDoc().queryCommandState(c);}catch(ex){}},_queryVal:function(c){try{return this.editor.getDoc().queryCommandValue(c);}catch(ex){}},queryValueFontSize:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'SPAN'))v=p.style.fontSize;if(!v&&(isOpera||isWebKit)){if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.size;return v;}return v||this._queryVal('FontSize');},queryValueFontName:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.face;if(p=ed.dom.getParent(ed.selection.getNode(),'SPAN'))v=p.style.fontFamily.replace(/, /g,',').replace(/[\'\"]/g,'').toLowerCase();if(!v)v=this._queryVal('FontName');return v;},mceJustify:function(c,v){var ed=this.editor,se=ed.selection,n=se.getNode(),nn=n.nodeName,bl,nb,dom=ed.dom,rm;if(ed.settings.inline_styles&&this.queryStateJustify(c,v))rm=1;bl=dom.getParent(n,ed.dom.isBlock);if(nn=='IMG'){if(v=='full')return;if(rm){if(v=='center')dom.setStyle(bl||n.parentNode,'textAlign','');dom.setStyle(n,'float','');this.mceRepaint();return;}if(v=='center'){if(bl&&/^(TD|TH)$/.test(bl.nodeName))bl=0;if(!bl||bl.childNodes.length>1){nb=dom.create('p');nb.appendChild(n.cloneNode(false));if(bl)dom.insertAfter(nb,bl);else dom.insertAfter(nb,n);dom.remove(n);n=nb.firstChild;bl=nb;}dom.setStyle(bl,'textAlign',v);dom.setStyle(n,'float','');}else{dom.setStyle(n,'float',v);dom.setStyle(bl||n.parentNode,'textAlign','');}this.mceRepaint();return;}if(ed.settings.inline_styles&&ed.settings.forced_root_block){if(rm)v='';each(this._getSelectedBlocks(dom.getParent(se.getStart(),dom.isBlock),dom.getParent(se.getEnd(),dom.isBlock)),function(e){dom.setAttrib(e,'align','');dom.setStyle(e,'textAlign',v=='full'?'justify':v);});return;}else if(!rm)ed.getDoc().execCommand(c,false,null);if(ed.settings.inline_styles){if(rm){dom.getParent(ed.selection.getNode(),function(n){if(n.style&&n.style.textAlign)dom.setStyle(n,'textAlign','');});return;}each(dom.select('*'),function(n){var v=n.align;if(v){if(v=='full')v='justify';dom.setStyle(n,'textAlign',v);dom.setAttrib(n,'align','');}});}},mceSetCSSClass:function(u,v){this.mceSetStyleInfo(0,{command:'setattrib',name:'class',value:v});},getSelectedElement:function(){var t=this,ed=t.editor,dom=ed.dom,se=ed.selection,r=se.getRng(),r1,r2,sc,ec,so,eo,e,sp,ep,re;if(se.isCollapsed()||r.item)return se.getNode();re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(isIE){r1=r.duplicate();r1.collapse(true);sc=r1.parentElement();r2=r.duplicate();r2.collapse(false);ec=r2.parentElement();if(sc!=ec){r1.move('character',1);sc=r1.parentElement();}if(sc==ec){r1=r.duplicate();r1.moveToElementText(sc);if(r1.compareEndPoints('StartToStart',r)==0&&r1.compareEndPoints('EndToEnd',r)==0)return re&&re.test(sc.nodeName)?null:sc;}}else{function getParent(n){return dom.getParent(n,function(n){return n.nodeType==1;});};sc=r.startContainer;ec=r.endContainer;so=r.startOffset;eo=r.endOffset;if(!r.collapsed){if(sc==ec){if(so-eo<2){if(sc.hasChildNodes()){sp=sc.childNodes[so];return re&&re.test(sp.nodeName)?null:sp;}}}}if(sc.nodeType!=3||ec.nodeType!=3)return null;if(so==0){sp=getParent(sc);if(sp&&sp.firstChild!=sc)sp=null;}if(so==sc.nodeValue.length){e=sc.nextSibling;if(e&&e.nodeType==1)sp=sc.nextSibling;}if(eo==0){e=ec.previousSibling;if(e&&e.nodeType==1)ep=e;}if(eo==ec.nodeValue.length){ep=getParent(ec);if(ep&&ep.lastChild!=ec)ep=null;}if(sp==ep)return re&&sp&&re.test(sp.nodeName)?null:sp;}return null;},InsertHorizontalRule:function(){if(isGecko||isIE)this.editor.selection.setContent('
');else this.editor.getDoc().execCommand('InsertHorizontalRule',false,'');},RemoveFormat:function(){var t=this,ed=t.editor,s=ed.selection,b;if(isWebKit)s.setContent(s.getContent({format:'raw'}).replace(/(<(span|b|i|strong|em|strike) [^>]+>|<(span|b|i|strong|em|strike)>|<\/(span|b|i|strong|em|strike)>|)/g,''),{format:'raw'});else ed.getDoc().execCommand('RemoveFormat',false,null);t.mceSetStyleInfo(0,{command:'removeformat'});ed.addVisual();},mceSetStyleInfo:function(u,v){var t=this,ed=t.editor,d=ed.getDoc(),dom=ed.dom,e,b,s=ed.selection,nn=v.wrapper||'span',b=s.getBookmark(),re;function set(n,e){if(n.nodeType==1){switch(v.command){case'setattrib':return dom.setAttrib(n,v.name,v.value);case'setstyle':return dom.setStyle(n,v.name,v.value);case'removeformat':return dom.setAttrib(n,'class','');}}};re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if((e=t.getSelectedElement())&&!ed.settings.force_span_wrappers)set(e,1);else{d.execCommand('FontName',false,'__');each(isWebKit?dom.select('span'):dom.select('font'),function(n){var sp,e;if(dom.getAttrib(n,'face')=='__'||n.style.fontFamily==='__'){sp=dom.create(nn,{mce_new:'1'});set(sp);each(n.childNodes,function(n){sp.appendChild(n.cloneNode(true));});dom.replace(sp,n);}});}each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!dom.getAttrib(n,'mce_new')){p=dom.getParent(n,function(n){return n.nodeType==1&&dom.getAttrib(n,'mce_new');});if(p)dom.remove(n,1);}});each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!p||!dom.getAttrib(n,'mce_new'))return;if(ed.settings.force_span_wrappers&&p.nodeName!='SPAN')return;if(p.nodeName==nn.toUpperCase()&&p.childNodes.length==1)return dom.remove(p,1);if(n.nodeType==1&&(!re||!re.test(p.nodeName))&&p.childNodes.length==1){set(p);dom.setAttrib(n,'class','');}});each(dom.select(nn).reverse(),function(n){if(dom.getAttrib(n,'mce_new')||(dom.getAttribs(n).length<=1&&n.className==='')){if(!dom.getAttrib(n,'class')&&!dom.getAttrib(n,'style'))return dom.remove(n,1);dom.setAttrib(n,'mce_new','');}});s.moveToBookmark(b);},queryStateJustify:function(c,v){var ed=this.editor,n=ed.selection.getNode(),dom=ed.dom;if(n&&n.nodeName=='IMG'){if(dom.getStyle(n,'float')==v)return 1;return n.parentNode.style.textAlign==v;}n=dom.getParent(ed.selection.getStart(),function(n){return n.nodeType==1&&n.style.textAlign;});if(v=='full')v='justify';if(ed.settings.inline_styles)return(n&&n.style.textAlign==v);return this._queryState(c);},ForeColor:function(ui,v){var ed=this.editor;if(ed.settings.convert_fonts_to_spans){this._applyInlineStyle('span',{style:{color:v}});return;}else ed.getDoc().execCommand('ForeColor',false,v);},HiliteColor:function(ui,val){var t=this,ed=t.editor,d=ed.getDoc();if(ed.settings.convert_fonts_to_spans){this._applyInlineStyle('span',{style:{backgroundColor:val}});return;}function set(s){if(!isGecko)return;try{d.execCommand("styleWithCSS",0,s);}catch(ex){d.execCommand("useCSS",0,!s);}};if(isGecko||isOpera){set(true);d.execCommand('hilitecolor',false,val);set(false);}else d.execCommand('BackColor',false,val);},Undo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.undo();ed.nodeChanged();}else ed.getDoc().execCommand('Undo',false,null);},Redo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.redo();ed.nodeChanged();}else ed.getDoc().execCommand('Redo',false,null);},FormatBlock:function(ui,val){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,bl,nb,b;function isBlock(n){return/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(n.nodeName);};bl=dom.getParent(s.getNode(),function(n){return isBlock(n);});if(bl){if((isIE&&isBlock(bl.parentNode))||bl.nodeName=='DIV'){nb=ed.dom.create(val);each(dom.getAttribs(bl),function(v){dom.setAttrib(nb,v.nodeName,dom.getAttrib(bl,v.nodeName));});b=s.getBookmark();dom.replace(nb,bl,1);s.moveToBookmark(b);ed.nodeChanged();return;}}val=ed.settings.forced_root_block?(val||'

'):val;if(val.indexOf('<')==-1)val='<'+val+'>';if(tinymce.isGecko)val=val.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi,'$1');ed.getDoc().execCommand('FormatBlock',false,val);},mceCleanup:function(){var ed=this.editor,s=ed.selection,b=s.getBookmark();ed.setContent(ed.getContent());s.moveToBookmark(b);},mceRemoveNode:function(ui,val){var ed=this.editor,s=ed.selection,b,n=val||s.getNode();if(n==ed.getBody())return;b=s.getBookmark();ed.dom.remove(n,1);s.moveToBookmark(b);ed.nodeChanged();},mceSelectNodeDepth:function(ui,val){var ed=this.editor,s=ed.selection,c=0;ed.dom.getParent(s.getNode(),function(n){if(n.nodeType==1&&c++==val){s.select(n);ed.nodeChanged();return false;}},ed.getBody());},mceSelectNode:function(u,v){this.editor.selection.select(v);},mceInsertContent:function(ui,val){this.editor.selection.setContent(val);},mceInsertRawHTML:function(ui,val){var ed=this.editor;ed.selection.setContent('tiny_mce_marker');ed.setContent(ed.getContent().replace(/tiny_mce_marker/g,val));},mceRepaint:function(){var s,b,e=this.editor;if(tinymce.isGecko){try{s=e.selection;b=s.getBookmark(true);if(s.getSel())s.getSel().selectAllChildren(e.getBody());s.collapse(true);s.moveToBookmark(b);}catch(ex){}}},queryStateUnderline:function(){var ed=this.editor,n=ed.selection.getNode();if(n&&n.nodeName=='A')return false;return this._queryState('Underline');},queryStateOutdent:function(){var ed=this.editor,n;if(ed.settings.inline_styles){if((n=ed.dom.getParent(ed.selection.getStart(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;if((n=ed.dom.getParent(ed.selection.getEnd(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;}return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList()||(!ed.settings.inline_styles&&!!ed.dom.getParent(ed.selection.getNode(),'BLOCKQUOTE'));},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'UL');},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'OL');},queryStatemceBlockQuote:function(){return!!this.editor.dom.getParent(this.editor.selection.getStart(),function(n){return n.nodeName==='BLOCKQUOTE';});},mceBlockQuote:function(){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,sb,eb,n,bm,bq,r,bq2,i,nl;function getBQ(e){return dom.getParent(e,function(n){return n.nodeName==='BLOCKQUOTE';});};sb=dom.getParent(s.getStart(),isBlock);eb=dom.getParent(s.getEnd(),isBlock);if(bq=getBQ(sb)){if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();if(getBQ(eb)){bq2=bq.cloneNode(false);while(n=eb.nextSibling)bq2.appendChild(n.parentNode.removeChild(n));}if(bq2)dom.insertAfter(bq2,bq);nl=t._getSelectedBlocks(sb,eb);for(i=nl.length-1;i>=0;i--){dom.insertAfter(nl[i],bq);}if(/^\s*$/.test(bq.innerHTML))dom.remove(bq,1);if(bq2&&/^\s*$/.test(bq2.innerHTML))dom.remove(bq2,1);if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(0);if(dom.getParent(s.getStart(),isBlock)!=sb){r=s.getRng();r.move('character',-1);r.select();}}}else t.editor.selection.moveToBookmark(bm);return;}if(isIE&&!sb&&!eb){t.editor.getDoc().execCommand('Indent');n=getBQ(s.getNode());n.style.margin=n.dir='';return;}if(!sb||!eb)return;if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();each(t._getSelectedBlocks(getBQ(s.getStart()),getBQ(s.getEnd())),function(e){if(e.nodeName=='BLOCKQUOTE'&&!bq){bq=e;return;}if(!bq){bq=dom.create('blockquote');e.parentNode.insertBefore(bq,e);}if(e.nodeName=='BLOCKQUOTE'&&bq){n=e.firstChild;while(n){bq.appendChild(n.cloneNode(true));n=n.nextSibling;}dom.remove(e);return;}bq.appendChild(dom.remove(e));});if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(1);}}else s.moveToBookmark(bm);},_applyInlineStyle:function(na,at,op){var t=this,ed=t.editor,dom=ed.dom,bm,lo={},kh;na=na.toUpperCase();if(op&&op.check_classes&&at['class'])op.check_classes.push(at['class']);function replaceFonts(){var bm;each(dom.select(tinymce.isWebKit&&!tinymce.isAir?'span':'font'),function(n){if(n.style.fontFamily=='mceinline'||n.face=='mceinline'){if(!bm)bm=ed.selection.getBookmark();at._mce_new='1';dom.replace(dom.create(na,at),n,1);}});each(dom.select(na),function(n){if(n.getAttribute('_mce_new')){function removeStyle(n){if(n.nodeType==1){each(at.style,function(v,k){dom.setStyle(n,k,'');});if(at['class']&&n.className&&op){each(op.check_classes,function(c){if(dom.hasClass(n,c))dom.removeClass(n,c);});}}};each(dom.select(na,n),removeStyle);if(n.parentNode&&n.parentNode.nodeType==1&&n.parentNode.childNodes.length==1)removeStyle(n.parentNode);dom.getParent(n.parentNode,function(pn){if(pn.nodeType==1){if(at.style){each(at.style,function(v,k){var sv;if(!lo[k]&&(sv=dom.getStyle(pn,k))){if(sv===v)dom.setStyle(n,k,'');lo[k]=1;}});}if(at['class']&&pn.className&&op){each(op.check_classes,function(c){if(dom.hasClass(pn,c))dom.removeClass(n,c);});}}return false;});n.removeAttribute('_mce_new');}});each(dom.select(na).reverse(),function(n){var c=0;each(dom.getAttribs(n),function(an){if(an.nodeName.substring(0,1)!='_'&&dom.getAttrib(n,an.nodeName)!=''){c++;}});if(c==0)dom.remove(n,1);});ed.selection.moveToBookmark(bm);return!!bm;};ed.focus();ed.getDoc().execCommand('FontName',false,'mceinline');replaceFonts();if(kh=t._applyInlineStyle.keyhandler){ed.onKeyUp.remove(kh);ed.onKeyPress.remove(kh);ed.onKeyDown.remove(kh);ed.onSetContent.remove(t._applyInlineStyle.chandler);}if(ed.selection.isCollapsed()){t._pendingStyles=tinymce.extend(t._pendingStyles||{},at.style);t._applyInlineStyle.chandler=ed.onSetContent.add(function(){delete t._pendingStyles;});t._applyInlineStyle.keyhandler=kh=function(e){if(t._pendingStyles){at.style=t._pendingStyles;delete t._pendingStyles;}if(replaceFonts()){ed.onKeyDown.remove(t._applyInlineStyle.keyhandler);ed.onKeyPress.remove(t._applyInlineStyle.keyhandler);}if(e.type=='keyup')ed.onKeyUp.remove(t._applyInlineStyle.keyhandler);};ed.onKeyDown.add(kh);ed.onKeyPress.add(kh);ed.onKeyUp.add(kh);}else t._pendingStyles=0;},_getSelectedBlocks:function(st,en){var ed=this.editor,dom=ed.dom,s=ed.selection,sb,eb,n,bl=[];sb=dom.getParent(st||s.getStart(),isBlock);eb=dom.getParent(en||s.getEnd(),isBlock);if(sb)bl.push(sb);if(sb&&eb&&sb!=eb){n=sb;while((n=n.nextSibling)&&n!=eb){if(isBlock(n))bl.push(n);}}if(eb&&sb!=eb)bl.push(eb);return bl;}});})();tinymce.create('tinymce.UndoManager',{index:0,data:null,typing:0,UndoManager:function(ed){var t=this,Dispatcher=tinymce.util.Dispatcher;t.editor=ed;t.data=[];t.onAdd=new Dispatcher(this);t.onUndo=new Dispatcher(this);t.onRedo=new Dispatcher(this);},add:function(l){var t=this,i,ed=t.editor,b,s=ed.settings,la;l=l||{};l.content=l.content||ed.getContent({format:'raw',no_events:1});l.content=l.content.replace(/^\s*|\s*$/g,'');la=t.data[t.index>0&&(t.index==0||t.index==t.data.length)?t.index-1:t.index];if(!l.initial&&la&&l.content==la.content)return null;if(s.custom_undo_redo_levels){if(t.data.length>s.custom_undo_redo_levels){for(i=0;i0){if(t.index==t.data.length&&t.index>1){i=t.index;t.typing=0;if(!t.add())t.index=i;--t.index;}l=t.data[--t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onUndo.dispatch(t,l);}return l;},redo:function(){var t=this,ed=t.editor,l=null;if(t.index','gi');t.rePadd=new RegExp(']+)><\\\/p>|]+)\\\/>|]+)>\\s+<\\\/p>|

<\\\/p>||

\\s+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR1=new RegExp(']+)>[\\s\\u00a0]+<\\\/p>|

[\\s\\u00a0]+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR2=new RegExp(']+)>( | )<\\\/p>|

( | )<\\\/p>'.replace(/p/g,elm),'gi');t.reBR2Nbsp=new RegExp(']+)>\\s*
\\s*<\\\/p>|

\\s*
\\s*<\\\/p>'.replace(/p/g,elm),'gi');t.reTrailBr=new RegExp('\\s*
\\s*<\\\/p>'.replace(/p/g,elm),'gi');function padd(ed,o){if(isOpera)o.content=o.content.replace(t.reOpera,'');o.content=o.content.replace(t.rePadd,'<'+elm+'$1$2$3$4$5$6>\u00a0');if(!isIE&&!isOpera&&o.set){o.content=o.content.replace(t.reNbsp2BR1,'<'+elm+'$1$2>
');o.content=o.content.replace(t.reNbsp2BR2,'<'+elm+'$1$2>
');}else{o.content=o.content.replace(t.reBR2Nbsp,'<'+elm+'$1$2>\u00a0');o.content=o.content.replace(t.reTrailBr,'');}};ed.onBeforeSetContent.add(padd);ed.onPostProcess.add(padd);if(s.forced_root_block){ed.onInit.add(t.forceRoots,t);ed.onSetContent.add(t.forceRoots,t);ed.onBeforeGetContent.add(t.forceRoots,t);}},setup:function(){var t=this,ed=t.editor,s=ed.settings;if(s.forced_root_block){ed.onKeyUp.add(t.forceRoots,t);ed.onPreProcess.add(t.forceRoots,t);}if(s.force_br_newlines){if(isIE){ed.onKeyPress.add(function(ed,e){var n,s=ed.selection;if(e.keyCode==13&&s.getNode().nodeName!='LI'){s.setContent('
',{format:'raw'});n=ed.dom.get('__');n.removeAttribute('id');s.select(n);s.collapse();return Event.cancel(e);}});}return;}if(!isIE&&s.force_p_newlines){ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&!e.shiftKey){if(!t.insertPara(e))Event.cancel(e);}});if(isGecko){ed.onKeyDown.add(function(ed,e){if((e.keyCode==8||e.keyCode==46)&&!e.shiftKey)t.backspaceDelete(e,e.keyCode==8);});}}function ren(rn,na){var ne=ed.dom.create(na);each(rn.attributes,function(a){if(a.specified&&a.nodeValue)ne.setAttribute(a.nodeName.toLowerCase(),a.nodeValue);});each(rn.childNodes,function(n){ne.appendChild(n.cloneNode(true));});rn.parentNode.replaceChild(ne,rn);return ne;};if(isIE&&s.element!='P'){ed.onKeyPress.add(function(ed,e){t.lastElm=ed.selection.getNode().nodeName;});ed.onKeyUp.add(function(ed,e){var bl,sel=ed.selection,n=sel.getNode(),b=ed.getBody();if(b.childNodes.length===1&&n.nodeName=='P'){n=ren(n,s.element);sel.select(n);sel.collapse();ed.nodeChanged();}else if(e.keyCode==13&&!e.shiftKey&&t.lastElm!='P'){bl=ed.dom.getParent(n,'P');if(bl){ren(bl,s.element);ed.nodeChanged();}}});}},find:function(n,t,s){var ed=this.editor,w=ed.getDoc().createTreeWalker(n,4,null,false),c=-1;while(n=w.nextNode()){c++;if(t==0&&n==s)return c;if(t==1&&c==s)return n;}return-1;},forceRoots:function(ed,e){var t=this,ed=t.editor,b=ed.getBody(),d=ed.getDoc(),se=ed.selection,s=se.getSel(),r=se.getRng(),si=-2,ei,so,eo,tr,c=-0xFFFFFF;var nx,bl,bp,sp,le,nl=b.childNodes,i,n,eid;for(i=nl.length-1;i>=0;i--){nx=nl[i];if(nx.nodeType==3||(!t.dom.isBlock(nx)&&nx.nodeType!=8)){if(!bl){if(nx.nodeType!=3||/[^\s]/g.test(nx.nodeValue)){if(si==-2&&r){if(!isIE){if(r.startContainer.nodeType==1&&(n=r.startContainer.childNodes[r.startOffset])&&n.nodeType==1){eid=n.getAttribute("id");n.setAttribute("id","__mce");}else{if(ed.dom.getParent(r.startContainer,function(e){return e===b;})){so=r.startOffset;eo=r.endOffset;si=t.find(b,0,r.startContainer);ei=t.find(b,0,r.endContainer);}}}else{tr=d.body.createTextRange();tr.moveToElementText(b);tr.collapse(1);bp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(1);sp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(0);le=(tr.move('character',c)*-1)-sp;si=sp-bp;ei=le;}}bl=ed.dom.create(ed.settings.forced_root_block);bl.appendChild(nx.cloneNode(1));nx.parentNode.replaceChild(bl,nx);}}else{if(bl.hasChildNodes())bl.insertBefore(nx,bl.firstChild);else bl.appendChild(nx);}}else bl=null;}if(si!=-2){if(!isIE){bl=b.getElementsByTagName(ed.settings.element)[0];r=d.createRange();if(si!=-1)r.setStart(t.find(b,1,si),so);else r.setStart(bl,0);if(ei!=-1)r.setEnd(t.find(b,1,ei),eo);else r.setEnd(bl,0);if(s){s.removeAllRanges();s.addRange(r);}}else{try{r=s.createRange();r.moveToElementText(b);r.collapse(1);r.moveStart('character',si);r.moveEnd('character',ei);r.select();}catch(ex){}}}else if(!isIE&&(n=ed.dom.get('__mce'))){if(eid)n.setAttribute('id',eid);else n.removeAttribute('id');r=d.createRange();r.setStartBefore(n);r.setEndBefore(n);se.setRng(r);}},getParentBlock:function(n){var d=this.dom;return d.getParent(n,d.isBlock);},insertPara:function(e){var t=this,ed=t.editor,dom=ed.dom,d=ed.getDoc(),se=ed.settings,s=ed.selection.getSel(),r=s.getRangeAt(0),b=d.body;var rb,ra,dir,sn,so,en,eo,sb,eb,bn,bef,aft,sc,ec,n,vp=dom.getViewPort(ed.getWin()),y,ch,car;function isEmpty(n){n=n.innerHTML;n=n.replace(/<(img|hr|table)/gi,'-');n=n.replace(/<[^>]+>/g,'');return n.replace(/[ \t\r\n]+/g,'')=='';};rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(true);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(true);dir=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;sn=dir?s.anchorNode:s.focusNode;so=dir?s.anchorOffset:s.focusOffset;en=dir?s.focusNode:s.anchorNode;eo=dir?s.focusOffset:s.anchorOffset;if(sn===en&&/^(TD|TH)$/.test(sn.nodeName)){dom.remove(sn.firstChild);ed.dom.add(sn,se.element,null,'
');aft=ed.dom.add(sn,se.element,null,'
');r=d.createRange();r.selectNodeContents(aft);r.collapse(1);ed.selection.setRng(r);return false;}if(sn==b&&en==b&&b.firstChild&&ed.dom.isBlock(b.firstChild)){sn=en=sn.firstChild;so=eo=0;rb=d.createRange();rb.setStart(sn,0);ra=d.createRange();ra.setStart(en,0);}sn=sn.nodeName=="HTML"?d.body:sn;sn=sn.nodeName=="BODY"?sn.firstChild:sn;en=en.nodeName=="HTML"?d.body:en;en=en.nodeName=="BODY"?en.firstChild:en;sb=t.getParentBlock(sn);eb=t.getParentBlock(en);bn=sb?sb.nodeName:se.element;if(t.dom.getParent(sb,function(n){return/OL|UL|PRE/.test(n.nodeName);}))return true;if(sb&&(sb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(sb.style.position))){bn=se.element;sb=null;}if(eb&&(eb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(eb.style.position))){bn=se.element;eb=null;}if(/(TD|TABLE|TH|CAPTION)/.test(bn)||(sb&&bn=="DIV"&&/left|right/gi.test(sb.style.cssFloat))){bn=se.element;sb=eb=null;}bef=(sb&&sb.nodeName==bn)?sb.cloneNode(0):ed.dom.create(bn);aft=(eb&&eb.nodeName==bn)?eb.cloneNode(0):ed.dom.create(bn);aft.removeAttribute('id');if(/^(H[1-6])$/.test(bn)&&sn.nodeValue&&so==sn.nodeValue.length)aft=ed.dom.create(se.element);n=sc=sn;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;sc=n;}while((n=n.previousSibling?n.previousSibling:n.parentNode));n=ec=en;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;ec=n;}while((n=n.nextSibling?n.nextSibling:n.parentNode));if(sc.nodeName==bn)rb.setStart(sc,0);else rb.setStartBefore(sc);rb.setEnd(sn,so);bef.appendChild(rb.cloneContents()||d.createTextNode(''));try{ra.setEndAfter(ec);}catch(ex){}ra.setStart(en,eo);aft.appendChild(ra.cloneContents()||d.createTextNode(''));r=d.createRange();if(!sc.previousSibling&&sc.parentNode.nodeName==bn){r.setStartBefore(sc.parentNode);}else{if(rb.startContainer.nodeName==bn&&rb.startOffset==0)r.setStartBefore(rb.startContainer);else r.setStart(rb.startContainer,rb.startOffset);}if(!ec.nextSibling&&ec.parentNode.nodeName==bn)r.setEndAfter(ec.parentNode);else r.setEnd(ra.endContainer,ra.endOffset);r.deleteContents();if(isOpera)ed.getWin().scrollTo(0,vp.y);if(bef.firstChild&&bef.firstChild.nodeName==bn)bef.innerHTML=bef.firstChild.innerHTML;if(aft.firstChild&&aft.firstChild.nodeName==bn)aft.innerHTML=aft.firstChild.innerHTML;if(isEmpty(bef))bef.innerHTML='
';function appendStyles(e,en){var nl=[],nn,n,i;e.innerHTML='';if(se.keep_styles){n=en;do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(n.nodeName)){nn=n.cloneNode(false);dom.setAttrib(nn,'id','');nl.push(nn);}}while(n=n.parentNode);}if(nl.length>0){for(i=nl.length-1,nn=e;i>=0;i--)nn=nn.appendChild(nl[i]);nl[0].innerHTML=isOpera?' ':'
';return nl[0];}else e.innerHTML=isOpera?' ':'
';};if(isEmpty(aft))car=appendStyles(aft,en);if(isOpera&&parseFloat(opera.version())<9.5){r.insertNode(bef);r.insertNode(aft);}else{r.insertNode(aft);r.insertNode(bef);}aft.normalize();bef.normalize();function first(n){return d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode()||n;};r=d.createRange();r.selectNodeContents(isGecko?first(car||aft):car||aft);r.collapse(1);s.removeAllRanges();s.addRange(r);y=ed.dom.getPos(aft).y;ch=aft.clientHeight;if(yvp.y+vp.h){ed.getWin().scrollTo(0,y

"; - - // Safari can't handle uppercase or unicode characters when - // in quirks mode. - if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { - return; - } - - Sizzle = function(query, context, extra, seed){ - context = context || document; - - // Only use querySelectorAll on non-XML documents - // (ID selectors don't work in non-HTML documents) - if ( !seed && context.nodeType === 9 && !isXML(context) ) { - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(e){} - } - - return oldSizzle(query, context, extra, seed); - }; - - for ( var prop in oldSizzle ) { - Sizzle[ prop ] = oldSizzle[ prop ]; - } - - div = null; // release memory in IE - })(); -} - -(function(){ - var div = document.createElement("div"); - - div.innerHTML = "
"; - - // Opera can't find a second classname (in 9.6) - // Also, make sure that getElementsByClassName actually exists - if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { - return; - } - - // Safari caches class attributes, doesn't catch changes (in 3.2) - div.lastChild.className = "e"; - - if ( div.getElementsByClassName("e").length === 1 ) { - return; - } - - Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function(match, context, isXML) { - if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { - return context.getElementsByClassName(match[1]); - } - }; - - div = null; // release memory in IE -})(); - -function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - if ( elem ) { - elem = elem[dir]; - var match = false; - - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 && !isXML ){ - elem.sizcache = doneName; - elem.sizset = i; - } - - if ( elem.nodeName.toLowerCase() === cur ) { - match = elem; - break; - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - if ( elem ) { - elem = elem[dir]; - var match = false; - - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 ) { - if ( !isXML ) { - elem.sizcache = doneName; - elem.sizset = i; - } - if ( typeof cur !== "string" ) { - if ( elem === cur ) { - match = true; - break; - } - - } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { - match = elem; - break; - } - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -var contains = document.compareDocumentPosition ? function(a, b){ - return !!(a.compareDocumentPosition(b) & 16); -} : function(a, b){ - return a !== b && (a.contains ? a.contains(b) : true); -}; - -var isXML = function(elem){ - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -var posProcess = function(selector, context){ - var tmpSet = [], later = "", match, - root = context.nodeType ? [context] : context; - - // Position selectors must be done after the filter - // And so must :not(positional) so we move all PSEUDOs to the end - while ( (match = Expr.match.PSEUDO.exec( selector )) ) { - later += match[0]; - selector = selector.replace( Expr.match.PSEUDO, "" ); - } - - selector = Expr.relative[selector] ? selector + "*" : selector; - - for ( var i = 0, l = root.length; i < l; i++ ) { - Sizzle( selector, root[i], tmpSet ); - } - - return Sizzle.filter( later, tmpSet ); -}; - -// EXPOSE -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.filters; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = getText; -jQuery.isXMLDoc = isXML; -jQuery.contains = contains; - -return; - -window.Sizzle = Sizzle; - -})(); -var runtil = /Until$/, - rparentsprev = /^(?:parents|prevUntil|prevAll)/, - // Note: This RegExp should be improved, or likely pulled from Sizzle - rmultiselector = /,/, - slice = Array.prototype.slice; - -// Implement the identical functionality for filter and not -var winnow = function( elements, qualifier, keep ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem, i ) { - return (elem === qualifier) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem, i ) { - return (jQuery.inArray( elem, qualifier ) >= 0) === keep; - }); -}; - -jQuery.fn.extend({ - find: function( selector ) { - var ret = this.pushStack( "", "find", selector ), length = 0; - - for ( var i = 0, l = this.length; i < l; i++ ) { - length = ret.length; - jQuery.find( selector, this[i], ret ); - - if ( i > 0 ) { - // Make sure that the results are unique - for ( var n = length; n < ret.length; n++ ) { - for ( var r = 0; r < length; r++ ) { - if ( ret[r] === ret[n] ) { - ret.splice(n--, 1); - break; - } - } - } - } - } - - return ret; - }, - - has: function( target ) { - var targets = jQuery( target ); - return this.filter(function() { - for ( var i = 0, l = targets.length; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false), "not", selector); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true), "filter", selector ); - }, - - is: function( selector ) { - return !!selector && jQuery.filter( selector, this ).length > 0; - }, - - closest: function( selectors, context ) { - if ( jQuery.isArray( selectors ) ) { - var ret = [], cur = this[0], match, matches = {}, selector; - - if ( cur && selectors.length ) { - for ( var i = 0, l = selectors.length; i < l; i++ ) { - selector = selectors[i]; - - if ( !matches[selector] ) { - matches[selector] = jQuery.expr.match.POS.test( selector ) ? - jQuery( selector, context || this.context ) : - selector; - } - } - - while ( cur && cur.ownerDocument && cur !== context ) { - for ( selector in matches ) { - match = matches[selector]; - - if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) { - ret.push({ selector: selector, elem: cur }); - delete matches[selector]; - } - } - cur = cur.parentNode; - } - } - - return ret; - } - - var pos = jQuery.expr.match.POS.test( selectors ) ? - jQuery( selectors, context || this.context ) : null; - - return this.map(function( i, cur ) { - while ( cur && cur.ownerDocument && cur !== context ) { - if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selectors) ) { - return cur; - } - cur = cur.parentNode; - } - return null; - }); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - if ( !elem || typeof elem === "string" ) { - return jQuery.inArray( this[0], - // If it receives a string, the selector is used - // If it receives nothing, the siblings are used - elem ? jQuery( elem ) : this.parent().children() ); - } - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context || this.context ) : - jQuery.makeArray( selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? - all : - jQuery.unique( all ) ); - }, - - andSelf: function() { - return this.add( this.prevObject ); - } -}); - -// A painfully simple check to see if an element is disconnected -// from a document (should be improved, where feasible). -function isDisconnected( node ) { - return !node || !node.parentNode || node.parentNode.nodeType === 11; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return jQuery.nth( elem, 2, "nextSibling" ); - }, - prev: function( elem ) { - return jQuery.nth( elem, 2, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( elem.parentNode.firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.makeArray( elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 ? jQuery.unique( ret ) : ret; - - if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret, name, slice.call(arguments).join(",") ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], cur = elem[dir]; - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - nth: function( cur, result, dir, elem ) { - result = result || 1; - var num = 0; - - for ( ; cur; cur = cur[dir] ) { - if ( cur.nodeType === 1 && ++num === result ) { - break; - } - } - - return cur; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); -var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, - rleadingWhitespace = /^\s+/, - rxhtmlTag = /(<([\w:]+)[^>]*?)\/>/g, - rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i, - rtagName = /<([\w:]+)/, - rtbody = /"; - }, - wrapMap = { - option: [ 1, "" ], - legend: [ 1, "
", "
" ], - thead: [ 1, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - col: [ 2, "", "
" ], - area: [ 1, "", "" ], - _default: [ 0, "", "" ] - }; - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// IE can't serialize and This is a p

- * @before $.metadata.setType("elem", "script") - * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" - * @desc Reads metadata from a nested script element - * - * @param String type The encoding type - * @param String name The name of the attribute to be used to get metadata (optional) - * @cat Plugins/Metadata - * @descr Sets the type of encoding to be used when loading metadata for the first time - * @type undefined - * @see metadata() - */ - -(function($) { - -$.extend({ - metadata : { - defaults : { - type: 'class', - name: 'metadata', - cre: /({.*})/, - single: 'metadata' - }, - setType: function( type, name ){ - this.defaults.type = type; - this.defaults.name = name; - }, - get: function( elem, opts ){ - var settings = $.extend({},this.defaults,opts); - // check for empty string in single property - if ( !settings.single.length ) settings.single = 'metadata'; - - var data = $.data(elem, settings.single); - // returned cached data if it already exists - if ( data ) return data; - - data = "{}"; - - if ( settings.type == "class" ) { - var m = settings.cre.exec( elem.className ); - if ( m ) - data = m[1]; - } else if ( settings.type == "elem" ) { - if( !elem.getElementsByTagName ) - return undefined; - var e = elem.getElementsByTagName(settings.name); - if ( e.length ) - data = $.trim(e[0].innerHTML); - } else if ( elem.getAttribute != undefined ) { - var attr = elem.getAttribute( settings.name ); - if ( attr ) - data = attr; - } - - if ( data.indexOf( '{' ) <0 ) - data = "{" + data + "}"; - - data = eval("(" + data + ")"); - - $.data( elem, settings.single, data ); - return data; - } - } -}); - -/** - * Returns the metadata object for the first member of the jQuery object. - * - * @name metadata - * @descr Returns element's metadata object - * @param Object opts An object contianing settings to override the defaults - * @type jQuery - * @cat Plugins/Metadata - */ -$.fn.metadata = function( opts ){ - return $.metadata.get( this[0], opts ); -}; - -})(jQuery); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_ar.js b/www/include/jslibs/jquery-validation/localization/messages_ar.js deleted file mode 100644 index 71e97a88e4..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_ar.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin into arabic. - * Locale: AR - */ -jQuery.extend(jQuery.validator.messages, { - required: "هذا الحقل إلزامي", - remote: "يرجى تصحيح هذا الحقل للمتابعة", - email: "رجاء إدخال عنوان بريد إلكتروني صحيح", - url: "رجاء إدخال عنوان موقع إلكتروني صحيح", - date: "رجاء إدخال تاريخ صحيح", - dateISO: "رجاء إدخال تاريخ صحيح (ISO)", - number: "رجاء إدخال عدد بطريقة صحيحة", - digits: "رجاء إدخال أرقام فقط", - creditcard: "رجاء إدخال رقم بطاقة ائتمان صحيح", - equalTo: "رجاء إدخال نفس القيمة", - accept: "رجاء إدخال ملف بامتداد موافق عليه", - maxlength: jQuery.validator.format("الحد الأقصى لعدد الحروف هو {0}"), - minlength: jQuery.validator.format("الحد الأدنى لعدد الحروف هو {0}"), - rangelength: jQuery.validator.format("عدد الحروف يجب أن يكون بين {0} و {1}"), - range: jQuery.validator.format("رجاء إدخال عدد قيمته بين {0} و {1}"), - max: jQuery.validator.format("رجاء إدخال عدد أقل من أو يساوي (0}"), - min: jQuery.validator.format("رجاء إدخال عدد أكبر من أو يساوي (0}") -}); - diff --git a/www/include/jslibs/jquery-validation/localization/messages_bg.js b/www/include/jslibs/jquery-validation/localization/messages_bg.js deleted file mode 100644 index 9232f7202e..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_bg.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: BG - */ -jQuery.extend(jQuery.validator.messages, { - required: "Полето е задължително.", - remote: "Моля, въведете правилната стойност.", - email: "Моля, въведете валиден email.", - url: "Моля, въведете валидно URL.", - date: "Моля, въведете валидна дата.", - dateISO: "Моля, въведете валидна дата (ISO).", - number: "Моля, въведете валиден номер.", - digits: "Моля, въведете само цифри", - creditcard: "Моля, въведете валиден номер на кредитна карта.", - equalTo: "Моля, въведете същата стойност отново.", - accept: "Моля, въведете стойност с валидно разширение.", - maxlength: $.validator.format("Моля, въведете повече от {0} символа."), - minlength: $.validator.format("Моля, въведете поне {0} символа."), - rangelength: $.validator.format("Моля, въведете стойност с дължина между {0} и {1} символа."), - range: $.validator.format("Моля, въведете стойност между {0} и {1}."), - max: $.validator.format("Моля, въведете стойност по-малка или равна на {0}."), - min: $.validator.format("Моля, въведете стойност по-голяма или равна на {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_ca.js b/www/include/jslibs/jquery-validation/localization/messages_ca.js deleted file mode 100644 index f8235345cf..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_ca.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: CA - */ -jQuery.extend(jQuery.validator.messages, { - required: "Aquest camp és obligatori.", - remote: "Si us plau, omple aquest camp.", - email: "Si us plau, escriu una adreça de correu-e vàlida", - url: "Si us plau, escriu una URL vàlida.", - date: "Si us plau, escriu una data vàlida.", - dateISO: "Si us plau, escriu una data (ISO) vàlida.", - number: "Si us plau, escriu un número enter vàlid.", - digits: "Si us plau, escriu només dígits.", - creditcard: "Si us plau, escriu un número de tarjeta vàlid.", - equalTo: "Si us plau, escriu el maateix valor de nou.", - accept: "Si us plau, escriu un valor amb una extensió acceptada.", - maxlength: jQuery.validator.format("Si us plau, no escriguis més de {0} caracters."), - minlength: jQuery.validator.format("Si us plau, no escriguis menys de {0} caracters."), - rangelength: jQuery.validator.format("Si us plau, escriu un valor entre {0} i {1} caracters."), - range: jQuery.validator.format("Si us plau, escriu un valor entre {0} i {1}."), - max: jQuery.validator.format("Si us plau, escriu un valor menor o igual a {0}."), - min: jQuery.validator.format("Si us plau, escriu un valor major o igual a {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_cn.js b/www/include/jslibs/jquery-validation/localization/messages_cn.js deleted file mode 100644 index 8415f4ad74..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_cn.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: CN - */ -jQuery.extend(jQuery.validator.messages, { - required: "必选字段", - remote: "请修正该字段", - email: "请输入正确格式的电子邮件", - url: "请输入合法的网址", - date: "请输入合法的日期", - dateISO: "请输入合法的日期 (ISO).", - number: "请输入合法的数字", - digits: "只能输入整数", - creditcard: "请输入合法的信用卡号", - equalTo: "请再次输入相同的值", - accept: "请输入拥有合法后缀名的字符串", - maxlength: jQuery.validator.format("请输入一个长度最多是 {0} 的字符串"), - minlength: jQuery.validator.format("请输入一个长度最少是 {0} 的字符串"), - rangelength: jQuery.validator.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"), - range: jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"), - max: jQuery.validator.format("请输入一个最大为 {0} 的值"), - min: jQuery.validator.format("请输入一个最小为 {0} 的值") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_cs.js b/www/include/jslibs/jquery-validation/localization/messages_cs.js deleted file mode 100644 index ab998190f5..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_cs.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: CS - */ -jQuery.extend(jQuery.validator.messages, { - required: "Tento údaj je povinný.", - remote: "Prosím, opravte tento údaj.", - email: "Prosím, zadejte platný e-mail.", - url: "Prosím, zadejte platné URL.", - date: "Prosím, zadejte platné datum.", - dateISO: "Prosím, zadejte platné datum (ISO).", - number: "Prosím, zadejte číslo.", - digits: "Prosím, zadávejte pouze číslice.", - creditcard: "Prosím, zadejte číslo kreditní karty.", - equalTo: "Prosím, zadejte znovu stejnou hodnotu.", - accept: "Prosím, zadejte soubor se správnou příponou.", - maxlength: jQuery.validator.format("Prosím, zadejte nejvíce {0} znaků."), - minlength: jQuery.validator.format("Prosím, zadejte nejméně {0} znaků."), - rangelength: jQuery.validator.format("Prosím, zadejte od {0} do {1} znaků."), - range: jQuery.validator.format("Prosím, zadejte hodnotu od {0} do {1}."), - max: jQuery.validator.format("Prosím, zadejte hodnotu menší nebo rovnu {0}."), - min: jQuery.validator.format("Prosím, zadejte hodnotu větší nebo rovnu {0}.") -}); diff --git a/www/include/jslibs/jquery-validation/localization/messages_da.js b/www/include/jslibs/jquery-validation/localization/messages_da.js deleted file mode 100644 index 1f729e0a01..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_da.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: DA - */ -jQuery.extend(jQuery.validator.messages, { - required: "Dette felt er påkrævet.", - maxlength: jQuery.validator.format("Indtast højst {0} tegn."), - minlength: jQuery.validator.format("Indtast mindst {0} tegn."), - rangelength: jQuery.validator.format("Indtast mindst {0} og højst {1} tegn."), - email: "Indtast en gyldig email-adresse.", - url: "Indtast en gyldig URL.", - date: "Indtast en gyldig dato.", - number: "Indtast et tal.", - digits: "Indtast kun cifre.", - equalTo: "Indtast den samme værdi igen.", - range: jQuery.validator.format("Angiv en værdi mellem {0} og {1}."), - max: jQuery.validator.format("Angiv en værdi der højst er {0}."), - min: jQuery.validator.format("Angiv en værdi der mindst er {0}."), - creditcard: "Indtast et gyldigt kreditkortnummer." -}); diff --git a/www/include/jslibs/jquery-validation/localization/messages_de.js b/www/include/jslibs/jquery-validation/localization/messages_de.js deleted file mode 100644 index 0c03e30209..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_de.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: DE - */ -jQuery.extend(jQuery.validator.messages, { - required: "Dieses Feld ist ein Pflichtfeld.", - maxlength: jQuery.validator.format("Geben Sie bitte maximal {0} Zeichen ein."), - minlength: jQuery.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."), - rangelength: jQuery.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."), - email: "Geben Sie bitte eine gültige E-Mail Adresse ein.", - url: "Geben Sie bitte eine gültige URL ein.", - date: "Bitte geben Sie ein gültiges Datum ein.", - number: "Geben Sie bitte eine Nummer ein.", - digits: "Geben Sie bitte nur Ziffern ein.", - equalTo: "Bitte denselben Wert wiederholen.", - range: jQuery.validator.format("Geben Sie bitten einen Wert zwischen {0} und {1}."), - max: jQuery.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."), - min: jQuery.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."), - creditcard: "Geben Sie bitte ein gültige Kreditkarten-Nummer ein." -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_el.js b/www/include/jslibs/jquery-validation/localization/messages_el.js deleted file mode 100644 index 52607a5ad8..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_el.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: EL - */ -jQuery.extend(jQuery.validator.messages, { - required: "Αυτό το πεδίο είναι υποχρεωτικό.", - remote: "Παρακαλώ διορθώστε αυτό το πεδίο.", - email: "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.", - url: "Παρακαλώ εισάγετε ένα έγκυρο URL.", - date: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.", - dateISO: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).", - number: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό.", - digits: "Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.", - creditcard: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.", - equalTo: "Παρακαλώ εισάγετε την ίδια τιμή ξανά.", - accept: "Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.", - maxlength: $.validator.format("Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες."), - minlength: $.validator.format("Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες."), - rangelength: $.validator.format("Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων."), - range: $.validator.format("Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}."), - max: $.validator.format("Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}."), - min: $.validator.format("Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}.") -}); - diff --git a/www/include/jslibs/jquery-validation/localization/messages_es.js b/www/include/jslibs/jquery-validation/localization/messages_es.js deleted file mode 100644 index b9a24145da..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_es.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: ES - */ -jQuery.extend(jQuery.validator.messages, { - required: "Este campo es obligatorio.", - remote: "Por favor, rellena este campo.", - email: "Por favor, escribe una dirección de correo válida", - url: "Por favor, escribe una URL válida.", - date: "Por favor, escribe una fecha válida.", - dateISO: "Por favor, escribe una fecha (ISO) válida.", - number: "Por favor, escribe un número entero válido.", - digits: "Por favor, escribe sólo dígitos.", - creditcard: "Por favor, escribe un número de tarjeta válido.", - equalTo: "Por favor, escribe el mismo valor de nuevo.", - accept: "Por favor, escribe un valor con una extensión aceptada.", - maxlength: jQuery.validator.format("Por favor, no escribas más de {0} caracteres."), - minlength: jQuery.validator.format("Por favor, no escribas menos de {0} caracteres."), - rangelength: jQuery.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."), - range: jQuery.validator.format("Por favor, escribe un valor entre {0} y {1}."), - max: jQuery.validator.format("Por favor, escribe un valor menor o igual a {0}."), - min: jQuery.validator.format("Por favor, escribe un valor mayor o igual a {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_fa.js b/www/include/jslibs/jquery-validation/localization/messages_fa.js deleted file mode 100644 index 1ea531e9f5..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_fa.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: FA - */ -jQuery.extend(jQuery.validator.messages, { - required: "تکمیل این فیلد اجباری است.", - remote: "لطفا این فیلد را تصحیح کنید.", - email: ".لطفا یک ایمیل صحیح وارد کنید", - url: "لطفا آدرس صحیح وارد کنید.", - date: "لطفا یک تاریخ صحیح وارد کنید", - dateISO: "لطفا تاریخ صحیح وارد کنید (ISO).", - number: "لطفا عدد صحیح وارد کنید.", - digits: "لطفا تنها رقم وارد کنید", - creditcard: "لطفا کریدیت کارت صحیح وارد کنید.", - equalTo: "لطفا مقدار برابری وارد کنید", - accept: "لطفا مقداری وارد کنید که ", - maxlength: jQuery.validator.format("لطفا بیشتر از {0} حرف وارد نکنید."), - minlength: jQuery.validator.format("لطفا کمتر از {0} حرف وارد نکنید."), - rangelength: jQuery.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."), - range: jQuery.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."), - max: jQuery.validator.format("لطفا مقداری کمتر از {0} حرف وارد کنید."), - min: jQuery.validator.format("لطفا مقداری بیشتر از {0} حرف وارد کنید.") -}); diff --git a/www/include/jslibs/jquery-validation/localization/messages_fi.js b/www/include/jslibs/jquery-validation/localization/messages_fi.js deleted file mode 100644 index eb47369988..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_fi.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: FI - */ -jQuery.extend(jQuery.validator.messages, { - required: "Tämä kenttä on pakollinen.", - maxlength: jQuery.validator.format("Voit syöttää enintään {0} merkkiä."), - minlength: jQuery.validator.format("Vähintään {0} merkkiä."), - rangelength: jQuery.validator.format("Syötä vähintään {0} ja enintään {1} merkkiä."), - email: "Syö:tä oikea sähköpostiosoite.", - url: "Syötä oikea URL osoite.", - date: "Syötä oike päivämäärä.", - dateISO: "Syötä oike päivämäärä (VVVV-MM-DD).", - number: "Syötä numero.", - digits: "Syötä pelkästään numeroita.", - equalTo: "Syötä sama arvo uudestaan.", - range: jQuery.validator.format("Syötä arvo {0} ja {1} väliltä."), - max: jQuery.validator.format("Syötä arvo joka on yhtä suuri tai suurempi kuin {0}."), - min: jQuery.validator.format("Syötä arvo joka on pienempi tai yhtä suuri kuin {0}."), - creditcard: "Syötä voimassa oleva luottokorttinumero." -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_fr.js b/www/include/jslibs/jquery-validation/localization/messages_fr.js deleted file mode 100644 index f9e1340cd4..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_fr.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: FR - */ -jQuery.extend(jQuery.validator.messages, { - required: "Ce champ est requis.", - remote: "Veuillez remplir ce champ pour continuer.", - email: "Veuillez entrer une adresse email valide.", - url: "Veuillez entrer une URL valide.", - date: "Veuillez entrer une date valide.", - dateISO: "Veuillez entrer une date valide (ISO).", - number: "Veuillez entrer un nombre valide.", - digits: "Veuillez entrer (seulement) une valeur numérique.", - creditcard: "Veuillez entrer un numéro de carte de crédit valide.", - equalTo: "Veuillez entrer une nouvelle fois la même valeur.", - accept: "Veuillez entrer une valeur avec une extension valide.", - maxlength: jQuery.validator.format("Veuillez ne pas entrer plus de {0} caractères."), - minlength: jQuery.validator.format("Veuillez entrer au moins {0} caractères."), - rangelength: jQuery.validator.format("Veuillez entrer entre {0} et {1} caractères."), - range: jQuery.validator.format("Veuillez entrer une valeur entre {0} et {1}."), - max: jQuery.validator.format("Veuillez entrer une valeur inférieure ou égale à {0}."), - min: jQuery.validator.format("Veuillez entrer une valeur supérieure ou égale à {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_ge.js b/www/include/jslibs/jquery-validation/localization/messages_ge.js deleted file mode 100644 index 5c3ee684f8..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_ge.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: GE - */ -jQuery.extend(jQuery.validator.messages, { - required: "ამ ველის შევსება აუცილებელია.", - remote: "გთხოვთ მიუთითოთ სწორი მნიშვნელობა.", - email: "გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.", - url: "გთხოვთ მიუთითოთ კორექტული URL.", - date: "გთხოვთ მიუთითოთ კორექტული თარიღი.", - dateISO: "გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.", - number: "გთხოვთ მიუთითოთ ციფრი.", - digits: "გთხოვთ მიუთითოთ მხოლოდ ციფრები.", - creditcard: "გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.", - equalTo: "გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.", - accept: "გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.", - maxlength: jQuery.validator.format("დასაშვებია არაუმეტეს {0} სიმბოლო."), - minlength: jQuery.validator.format("აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო."), - rangelength: jQuery.validator.format("ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე."), - range: jQuery.validator.format("გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე."), - max: jQuery.validator.format("გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს."), - min: jQuery.validator.format("გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_he.js b/www/include/jslibs/jquery-validation/localization/messages_he.js deleted file mode 100644 index c89eafe1b0..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_he.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: HE - */ -jQuery.extend(jQuery.validator.messages, { - required: ".השדה הזה הינו שדה חובה", - remote: "נא לתקן שדה זה.", - email: "נא למלא כתובת דוא\"ל חוקית", - url: "נא למלא כתובת אינטרנט חוקית.", - date: "נא למלא תאריך חוקי", - dateISO: "נא למלא תאריך חוקי (ISO).", - number: "נא למלא מספר.", - digits: ".נא למלא רק מספרים", - creditcard: "נא למלא מספר כרטיס אשראי חוקי.", - equalTo: "נא למלא את אותו ערך שוב.", - accept: "נא למלא ערך עם סיומת חוקית.", - maxlength: jQuery.validator.format(".נא לא למלא יותר מ- {0} תווים"), - minlength: jQuery.validator.format("נא למלא לפחות {0} תווים."), - rangelength: jQuery.validator.format("נא למלא ערך בין {0} ל- {1} תווים."), - range: jQuery.validator.format("נא למלא ערך בין {0} ל- {1}."), - max: jQuery.validator.format("נא למלא ערך קטן או שווה ל- {0}."), - min: jQuery.validator.format("נא למלא ערך גדול או שווה ל- {0}.") -}); diff --git a/www/include/jslibs/jquery-validation/localization/messages_hu.js b/www/include/jslibs/jquery-validation/localization/messages_hu.js deleted file mode 100644 index 086222aa12..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_hu.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: HU - */ -jQuery.extend(jQuery.validator.messages, { - required: "Kötelező megadni.", - maxlength: jQuery.validator.format("Legfeljebb {0} karakter hosszú legyen."), - minlength: jQuery.validator.format("Legalább {0} karakter hosszú legyen."), - rangelength: jQuery.validator.format("Legalább {0} és legfeljebb {1} karakter hosszú legyen."), - email: "Érvényes e-mail címnek kell lennie.", - url: "Érvényes URL-nek kell lennie.", - date: "Dátumnak kell lennie.", - number: "Számnak kell lennie.", - digits: "Csak számjegyek lehetnek.", - equalTo: "Meg kell egyeznie a két értéknek.", - range: jQuery.validator.format("{0} és {1} közé kell esnie."), - max: jQuery.validator.format("Nem lehet nagyobb, mint {0}."), - min: jQuery.validator.format("Nem lehet kisebb, mint {0}."), - creditcard: "Érvényes hitelkártyaszámnak kell lennie." -}); diff --git a/www/include/jslibs/jquery-validation/localization/messages_it.js b/www/include/jslibs/jquery-validation/localization/messages_it.js deleted file mode 100644 index ec44bca565..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_it.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: IT - */ -jQuery.extend(jQuery.validator.messages, { - required: "Campo obbligatorio.", - remote: "Controlla questo campo.", - email: "Inserisci un indirizzo email valido.", - url: "Inserisci un indirizzo web valido.", - date: "Inserisci una data valida.", - dateISO: "Inserisci una data valida (ISO).", - number: "Inserisci un numero valido.", - digits: "Inserisci solo numeri.", - creditcard: "Inserisci un numero di carta di credito valido.", - equalTo: "Il valore non corrisponde.", - accept: "Inserisci un valore con un'estensione valida.", - maxlength: jQuery.validator.format("Non inserire più di {0} caratteri."), - minlength: jQuery.validator.format("Inserisci almeno {0} caratteri."), - rangelength: jQuery.validator.format("Inserisci un valore compreso tra {0} e {1} caratteri."), - range: jQuery.validator.format("Inserisci un valore compreso tra {0} e {1}."), - max: jQuery.validator.format("Inserisci un valore minore o uguale a {0}."), - min: jQuery.validator.format("Inserisci un valore maggiore o uguale a {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_ja.js b/www/include/jslibs/jquery-validation/localization/messages_ja.js deleted file mode 100644 index f404c14392..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_ja.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Language: JA - */ -jQuery.extend(jQuery.validator.messages, { - required: "このフィールドは必須です。", - remote: "このフィールドを修正してください。", - email: "有効なEメールアドレスを入力してください。", - url: "有効なURLを入力してください。", - date: "有効な日付を入力してください。", - dateISO: "有効な日付(ISO)を入力してください。", - number: "有効な数字を入力してください。", - digits: "数字のみを入力してください。", - creditcard: "有効なクレジットカード番号を入力してください。", - equalTo: "同じ値をもう一度入力してください。", - accept: "有効な拡張子を含む値を入力してください。", - maxlength: jQuery.format("{0} 文字以内で入力してください。"), - minlength: jQuery.format("{0} 文字以上で入力してください。"), - rangelength: jQuery.format("{0} 文字から {1} 文字までの値を入力してください。"), - range: jQuery.format("{0} から {1} までの値を入力してください。"), - max: jQuery.format("{0} 以下の値を入力してください。"), - min: jQuery.format("{1} 以上の値を入力してください。") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_kk.js b/www/include/jslibs/jquery-validation/localization/messages_kk.js deleted file mode 100644 index b377894631..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_kk.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: KK - */ -jQuery.extend(jQuery.validator.messages, { - required: "Бұл өрісті міндетті түрде толтырыңыз.", - remote: "Дұрыс мағына енгізуіңізді сұраймыз.", - email: "Нақты электронды поштаңызды енгізуіңізді сұраймыз.", - url: "Нақты URL-ды енгізуіңізді сұраймыз.", - date: "Нақты URL-ды енгізуіңізді сұраймыз.", - dateISO: "Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.", - number: "Күнді енгізуіңізді сұраймыз.", - digits: "Тек қана сандарды енгізуіңізді сұраймыз.", - creditcard: "Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.", - equalTo: "Осы мәнді қайта енгізуіңізді сұраймыз.", - accept: "Файлдың кеңейтуін дұрыс таңдаңыз.", - maxlength: jQuery.format("Ұзындығы {0} символдан көр болмасын."), - minlength: jQuery.format("Ұзындығы {0} символдан аз болмасын."), - rangelength: jQuery.format("Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз."), - range: jQuery.format("Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз."), - max: jQuery.format("{0} аз немесе тең санын енгізуіңіді сұраймыз."), - min: jQuery.format("{0} көп немесе тең санын енгізуіңізді сұраймыз.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_lt.js b/www/include/jslibs/jquery-validation/localization/messages_lt.js deleted file mode 100644 index a890dbe636..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_lt.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin in lithuanian. - * Locale: LT - */ -jQuery.extend(jQuery.validator.messages, { - required: "Šis laukas yra privalomas.", - remote: "Prašau pataisyti šį lauką.", - email: "Prašau įvesti teisingą elektroninio pašto adresą.", - url: "Prašau įvesti teisingą URL.", - date: "Prašau įvesti teisingą datą.", - dateISO: "Prašau įvesti teisingą datą (ISO).", - number: "Prašau įvesti teisingą skaičių.", - digits: "Prašau naudoti tik skaitmenis.", - creditcard: "Prašau įvesti teisingą kreditinės kortelės numerį.", - equalTo: "Prašau įvestį tą pačią reikšmę dar kartą.", - accept: "Prašau įvesti reikšmę su teisingu plėtiniu.", - maxlength: $.format("Prašau įvesti ne daugiau kaip {0} simbolių."), - minlength: $.format("Prašau įvesti bent {0} simbolius."), - rangelength: $.format("Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių."), - range: $.format("Prašau įvesti reikšmę intervale nuo {0} iki {1}."), - max: $.format("Prašau įvesti reikšmę mažesnę arba lygią {0}."), - min: $.format("Prašau įvesti reikšmę didesnę arba lygią {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_lv.js b/www/include/jslibs/jquery-validation/localization/messages_lv.js deleted file mode 100644 index 944e918c09..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_lv.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: LV - */ -jQuery.extend(jQuery.validator.messages, { - required: "Šis lauks ir obligāts.", - remote: "Lūdzu, pārbaudiet šo lauku.", - email: "Lūdzu, ievadiet derīgu e-pasta adresi.", - url: "Lūdzu, ievadiet derīgu URL adresi.", - date: "Lūdzu, ievadiet derīgu datumu.", - dateISO: "Lūdzu, ievadiet derīgu datumu (ISO).", - number: "Lūdzu, ievadiet derīgu numuru.", - digits: "Lūdzu, ievadiet tikai ciparus.", - creditcard: "Lūdzu, ievadiet derīgu kredītkartes numuru.", - equalTo: "Lūdzu, ievadiet to pašu vēlreiz.", - accept: "Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.", - maxlength: jQuery.validator.format("Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes."), - minlength: jQuery.validator.format("Lūdzu, ievadiet vismaz {0} rakstzīmes."), - rangelength: jQuery.validator.format("Lūdzu ievadiet {0} līdz {1} rakstzīmes."), - range: jQuery.validator.format("Lūdzu, ievadiet skaitli no {0} līdz {1}."), - max: jQuery.validator.format("Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}."), - min: jQuery.validator.format("Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_nl.js b/www/include/jslibs/jquery-validation/localization/messages_nl.js deleted file mode 100644 index e266158a8d..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_nl.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: NL - */ -jQuery.extend(jQuery.validator.messages, { - required: "Dit is een verplicht veld.", - remote: "Controleer dit veld.", - email: "Vul hier een geldig e-mailadres in.", - url: "Vul hier een geldige URL in.", - date: "Vul hier een geldige datum in.", - dateISO: "Vul hier een geldige datum in (ISO-formaat).", - number: "Vul hier een geldig getal in.", - digits: "Vul hier alleen getallen in.", - creditcard: "Vul hier een geldig creditcardnummer in.", - equalTo: "Vul hier dezelfde waarde in.", - accept: "Vul hier een waarde in met een geldige extensie.", - maxlength: jQuery.validator.format("Vul hier maximaal {0} tekens in."), - minlength: jQuery.validator.format("Vul hier minimaal {0} tekens in."), - rangelength: jQuery.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."), - range: jQuery.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."), - max: jQuery.validator.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."), - min: jQuery.validator.format("Vul hier een waarde in groter dan of gelijk aan {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_no.js b/www/include/jslibs/jquery-validation/localization/messages_no.js deleted file mode 100644 index 89706fc362..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_no.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: NO (Norwegian) - */ -jQuery.extend(jQuery.validator.messages, { - required: "Dette feltet er obligatorisk.", - maxlength: jQuery.validator.format("Maksimalt {0} tegn."), - minlength: jQuery.validator.format("Minimum {0} tegn."), - rangelength: jQuery.validator.format("Angi minimum {0} og maksimum {1} tegn."), - email: "Oppgi en gyldig epostadresse.", - url: "Angi en gyldig URL.", - date: "Angi en gyldig dato.", - dateISO: "Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).", - dateSE: "Angi en gyldig dato.", - number: "Angi et gyldig nummer.", - numberSE: "Angi et gyldig nummer.", - digits: "Skriv kun tall.", - equalTo: "Skriv samme verdi igjen.", - range: jQuery.validator.format("Angi en verdi mellom {0} og {1}."), - max: jQuery.validator.format("Angi en verdi som er større eller lik {0}."), - min: jQuery.validator.format("Angi en verdi som er mindre eller lik {0}."), - creditcard: "Angi et gyldig kredittkortnummer." -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_pl.js b/www/include/jslibs/jquery-validation/localization/messages_pl.js deleted file mode 100644 index 27190d8a33..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_pl.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: PL - */ -jQuery.extend(jQuery.validator.messages, { - required: "To pole jest wymagane.", - remote: "Proszę o wypełnienie tego pola.", - email: "Proszę o podanie prawidłowego adresu email.", - url: "Proszę o podanie prawidłowego URL.", - date: "Proszę o podanie prawidłowej daty.", - dateISO: "Proszę o podanie prawidłowej daty (ISO).", - number: "Proszę o podanie prawidłowej liczby.", - digits: "Proszę o podanie samych cyfr.", - creditcard: "Proszę o podanie prawidłowej karty kredytowej.", - equalTo: "Proszę o podanie tej samej wartości ponownie.", - accept: "Proszę o podanie wartości z prawidłowym rozszerzeniem.", - maxlength: jQuery.validator.format("Proszę o podanie nie więcej niż {0} znaków."), - minlength: jQuery.validator.format("Proszę o podanie przynajmniej {0} znaków."), - rangelength: jQuery.validator.format("Proszę o podanie wartości o długości od {0} do {1} znaków."), - range: jQuery.validator.format("Proszę o podanie wartości z przedziału od {0} do {1}."), - max: jQuery.validator.format("Proszę o podanie wartości mniejszej bądź równej {0}."), - min: jQuery.validator.format("Proszę o podanie wartości większej bądź równej {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_ptbr.js b/www/include/jslibs/jquery-validation/localization/messages_ptbr.js deleted file mode 100644 index 07118575b3..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_ptbr.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: PT_BR - */ -jQuery.extend(jQuery.validator.messages, { - required: "Este campo é requerido.", - remote: "Por favor, corrija este campo.", - email: "Por favor, forneça um endereço eletrônico válido.", - url: "Por favor, forneça uma URL válida.", - date: "Por favor, forneça uma data válida.", - dateISO: "Por favor, forneça uma data válida (ISO).", - number: "Por favor, forneça um número válida.", - digits: "Por favor, forneça somente dígitos.", - creditcard: "Por favor, forneça um cartão de crédito válido.", - equalTo: "Por favor, forneça o mesmo valor novamente.", - accept: "Por favor, forneça um valor com uma extensão válida.", - maxlength: jQuery.validator.format("Por favor, forneça não mais que {0} caracteres."), - minlength: jQuery.validator.format("Por favor, forneça ao menos {0} caracteres."), - rangelength: jQuery.validator.format("Por favor, forneça um valor entre {0} e {1} caracteres de comprimento."), - range: jQuery.validator.format("Por favor, forneça um valor entre {0} e {1}."), - max: jQuery.validator.format("Por favor, forneça um valor menor ou igual a {0}."), - min: jQuery.validator.format("Por favor, forneça um valor maior ou igual a {0}.") -}); diff --git a/www/include/jslibs/jquery-validation/localization/messages_ptpt.js b/www/include/jslibs/jquery-validation/localization/messages_ptpt.js deleted file mode 100644 index 1e3fea29c1..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_ptpt.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Translated default messages for the jQuery validation plugin. - * Locale: PT_PT - */ -jQuery.extend(jQuery.validator.messages, { - required: "Campo de preenchimento obrigatório.", - remote: "Por favor, corrija este campo.", - email: "Por favor, introduza um endereço eletrónico válido.", - url: "Por favor, introduza um URL válido.", - date: "Por favor, introduza uma data válida.", - dateISO: "Por favor, introduza uma data válida (ISO).", - number: "Por favor, introduza um número válido.", - digits: "Por favor, introduza apenas dígitos.", - creditcard: "Por favor, introduza um número de cartão de crédito válido.", - equalTo: "Por favor, introduza de novo o mesmo valor.", - accept: "Por favor, introduza um ficheiro com uma extensão válida.", - maxlength: jQuery.validator.format("Por favor, não introduza mais do que {0} caracteres."), - minlength: jQuery.validator.format("Por favor, introduza pelo menos {0} caracteres."), - rangelength: jQuery.validator.format("Por favor, introduza entre {0} e {1} caracteres."), - range: jQuery.validator.format("Por favor, introduza um valor entre {0} e {1}."), - max: jQuery.validator.format("Por favor, introduza um valor menor ou igual a {0}."), - min: jQuery.validator.format("Por favor, introduza um valor maior ou igual a {0}.") -}); diff --git a/www/include/jslibs/jquery-validation/localization/messages_ro.js b/www/include/jslibs/jquery-validation/localization/messages_ro.js deleted file mode 100644 index ae9a67cf90..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_ro.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: RO - */ -jQuery.extend(jQuery.validator.messages, { - required: "Acest câmp este obligatoriu.", - remote: "Te rugăm să completezi acest câmp.", - email: "Te rugăm să introduci o adresă de email validă", - url: "Te rugăm sa introduci o adresă URL validă.", - date: "Te rugăm să introduci o dată corectă.", - dateISO: "Te rugăm să introduci o dată (ISO) corectă.", - number: "Te rugăm să introduci un număr întreg valid.", - digits: "Te rugăm să introduci doar cifre.", - creditcard: "Te rugăm să introduci un numar de carte de credit valid.", - equalTo: "Te rugăm să reintroduci valoarea.", - accept: "Te rugăm să introduci o valoare cu o extensie validă.", - maxlength: jQuery.validator.format("Te rugăm să nu introduci mai mult de {0} caractere."), - minlength: jQuery.validator.format("Te rugăm să introduci cel puțin {0} caractere."), - rangelength: jQuery.validator.format("Te rugăm să introduci o valoare între {0} și {1} caractere."), - range: jQuery.validator.format("Te rugăm să introduci o valoare între {0} și {1}."), - max: jQuery.validator.format("Te rugăm să introduci o valoare egal sau mai mică decât {0}."), - min: jQuery.validator.format("Te rugăm să introduci o valoare egal sau mai mare decât {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_ru.js b/www/include/jslibs/jquery-validation/localization/messages_ru.js deleted file mode 100644 index 419ac24db3..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_ru.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: RU - */ -jQuery.extend(jQuery.validator.messages, { - required: "Это поле необходимо заполнить.", - remote: "Пожалуйста, введите правильное значение.", - email: "Пожалуйста, введите корретный адрес электронной почты.", - url: "Пожалуйста, введите корректный URL.", - date: "Пожалуйста, введите корректную дату.", - dateISO: "Пожалуйста, введите корректную дату в формате ISO.", - number: "Пожалуйста, введите число.", - digits: "Пожалуйста, вводите только цифры.", - creditcard: "Пожалуйста, введите правильный номер кредитной карты.", - equalTo: "Пожалуйста, введите такое же значение ещё раз.", - accept: "Пожалуйста, выберите файл с правильным расширением.", - maxlength: jQuery.validator.format("Пожалуйста, введите не больше {0} символов."), - minlength: jQuery.validator.format("Пожалуйста, введите не меньше {0} символов."), - rangelength: jQuery.validator.format("Пожалуйста, введите значение длиной от {0} до {1} символов."), - range: jQuery.validator.format("Пожалуйста, введите число от {0} до {1}."), - max: jQuery.validator.format("Пожалуйста, введите число, меньшее или равное {0}."), - min: jQuery.validator.format("Пожалуйста, введите число, большее или равное {0}.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_se.js b/www/include/jslibs/jquery-validation/localization/messages_se.js deleted file mode 100644 index 3dee369086..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_se.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: SE - */ -jQuery.extend(jQuery.validator.messages, { - required: "Detta fält är obligatoriskt.", - maxlength: jQuery.validator.format("Du får ange högst {0} tecken."), - minlength: jQuery.validator.format("Du måste ange minst {0} tecken."), - rangelength: jQuery.validator.format("Ange minst {0} och max {1} tecken."), - email: "Ange en korrekt e-postadress.", - url: "Ange en korrekt URL.", - date: "Ange ett korrekt datum.", - dateISO: "Ange ett korrekt datum (&ARING;&ARING;&ARING;&ARING;-MM-DD).", - number: "Ange ett korrekt nummer.", - digits: "Ange endast siffror.", - equalTo: "Ange samma värde igen.", - range: jQuery.validator.format("Ange ett värde mellan {0} och {1}."), - max: jQuery.validator.format("Ange ett värde som är större eller lika med {0}."), - min: jQuery.validator.format("Ange ett värde som är mindre eller lika med {0}."), - creditcard: "Ange ett korrekt kreditkortsnummer." -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_sk.js b/www/include/jslibs/jquery-validation/localization/messages_sk.js deleted file mode 100644 index 442d31d071..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_sk.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: SK - */ -jQuery.extend(jQuery.validator.messages, { - required: "Povinné zadať.", - maxlength: jQuery.validator.format("Maximálne {0} znakov."), - minlength: jQuery.validator.format("Minimálne {0} znakov."), - rangelength: jQuery.validator.format("Minimálne {0} a Maximálne {0} znakov."), - email: "E-mailová adresa musí byť platná.", - url: "URL musí byť platný.", - date: "Musí byť dátum.", - number: "Musí byť číslo.", - digits: "Môže obsahovať iba číslice.", - equalTo: "Dva hodnoty sa musia rovnať.", - range: jQuery.validator.format("Musí byť medzi {0} a {1}."), - max: jQuery.validator.format("Nemôže byť viac ako{0}."), - min: jQuery.validator.format("Nemôže byť menej ako{0}."), - creditcard: "Číslo platobnej karty musí byť platné." -}); diff --git a/www/include/jslibs/jquery-validation/localization/messages_sr.js b/www/include/jslibs/jquery-validation/localization/messages_sr.js deleted file mode 100644 index 1a8917470c..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_sr.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: SR - */ -jQuery.extend(jQuery.validator.messages, { - required: "Поље је обавезно.", - remote: "Средите ово поље.", - email: "Унесите исправну и-мејл адресу", - url: "Унесите исправан URL.", - date: "Унесите исправан датум.", - dateISO: "Унесите исправан датум (ISO).", - number: "Унесите исправан број.", - digits: "Унесите само цифе.", - creditcard: "Унесите исправан број кредитне картице.", - equalTo: "Унесите исту вредност поново.", - accept: "Унесите вредност са одговарајућом екстензијом.", - maxlength: $.validator.format("Унесите мање од {0}карактера."), - minlength: $.validator.format("Унесите барем {0} карактера."), - rangelength: $.validator.format("Унесите вредност дугачку између {0} и {1} карактера."), - range: $.validator.format("Унесите вредност између {0} и {1}."), - max: $.validator.format("Унесите вредност мању или једнаку {0}."), - min: $.validator.format("Унесите вредност већу или једнаку {0}.") -}); diff --git a/www/include/jslibs/jquery-validation/localization/messages_tr.js b/www/include/jslibs/jquery-validation/localization/messages_tr.js deleted file mode 100644 index 9df81e47ef..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_tr.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: TR - */ -jQuery.extend(jQuery.validator.messages, { - required: "Bu alanın doldurulması zorunludur.", - remote: "Lütfen bu alanı düzeltin.", - email: "Lütfen geçerli bir e-posta adresi giriniz.", - url: "Lütfen geçerli bir web adresi (URL) giriniz.", - date: "Lütfen geçerli bir tarih giriniz.", - dateISO: "Lütfen geçerli bir tarih giriniz(ISO formatında)", - number: "Lütfen geçerli bir sayı giriniz.", - digits: "Lütfen sadece sayısal karakterler giriniz.", - creditcard: "Lütfen geçerli bir kredi kartı giriniz.", - equalTo: "Lütfen aynı değeri tekrar giriniz.", - accept: "Lütfen geçerli uzantıya sahip bir değer giriniz.", - maxlength: jQuery.validator.format("Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz."), - minlength: jQuery.validator.format("Lütfen en az {0} karakter uzunluğunda bir değer giriniz."), - rangelength: jQuery.validator.format("Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz."), - range: jQuery.validator.format("Lütfen {0} ile {1} arasında bir değer giriniz."), - max: jQuery.validator.format("Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz."), - min: jQuery.validator.format("Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz.") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_tw.js b/www/include/jslibs/jquery-validation/localization/messages_tw.js deleted file mode 100644 index 248153518d..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_tw.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: TW (Taiwan - Traditional Chinese) - */ -jQuery.extend(jQuery.validator.messages, { - required: "必填", - remote: "請修正此欄位", - email: "請輸入正確的電子信箱", - url: "請輸入合法的URL", - date: "請輸入合法的日期", - dateISO: "請輸入合法的日期 (ISO).", - number: "請輸入數字", - digits: "請輸入整數", - creditcard: "請輸入合法的信用卡號碼", - equalTo: "請重複輸入一次", - accept: "請輸入有效的後缀字串", - maxlength: jQuery.validator.format("請輸入長度不大於{0} 的字串"), - minlength: jQuery.validator.format("請輸入長度不小於 {0} 的字串"), - rangelength: jQuery.validator.format("請輸入長度介於 {0} 和 {1} 之間的字串"), - range: jQuery.validator.format("請輸入介於 {0} 和 {1} 之間的數值"), - max: jQuery.validator.format("請輸入不大於 {0} 的數值"), - min: jQuery.validator.format("請輸入不小於 {0} 的數值") -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/messages_ua.js b/www/include/jslibs/jquery-validation/localization/messages_ua.js deleted file mode 100644 index 25434a65ff..0000000000 --- a/www/include/jslibs/jquery-validation/localization/messages_ua.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Translated default messages for the jQuery validation plugin. - * Locale: UA (Ukrainian) - */ -jQuery.extend(jQuery.validator.messages, { - required: "Це поле необхідно заповнити.", - remote: "Будь ласка, введіть правильне значення.", - email: "Будь ласка, введіть коректну адресу електронної пошти.", - url: "Будь ласка, введіть коректний URL.", - date: "Будь ласка, введіть коректну дату.", - dateISO: "Будь ласка, введіть коректну дату у форматі ISO.", - number: "Будь ласка, введіть число.", - digits: "Вводите потрібно лише цифри.", - creditcard: "Будь ласка, введіть правильний номер кредитної карти.", - equalTo: "Будь ласка, введіть таке ж значення ще раз.", - accept: "Будь ласка, виберіть файл з правильним розширенням.", - maxlength: jQuery.validator.format("Будь ласка, введіть не більше {0} символів."), - minlength: jQuery.validator.format("Будь ласка, введіть не менше {0} символів."), - rangelength: jQuery.validator.format("Будь ласка, введіть значення довжиною від {0} до {1} символів."), - range: jQuery.validator.format("Будь ласка, введіть число від {0} до {1}."), - max: jQuery.validator.format("Будь ласка, введіть число, менше або рівно {0}."), - min: jQuery.validator.format("Будь ласка, введіть число, більше або рівно {0}.") -}); diff --git a/www/include/jslibs/jquery-validation/localization/methods_de.js b/www/include/jslibs/jquery-validation/localization/methods_de.js deleted file mode 100644 index 3e8ac8437e..0000000000 --- a/www/include/jslibs/jquery-validation/localization/methods_de.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Localized default methods for the jQuery validation plugin. - * Locale: DE - */ -jQuery.extend(jQuery.validator.methods, { - date: function(value, element) { - return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value); - }, - number: function(value, element) { - return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value); - } -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/methods_nl.js b/www/include/jslibs/jquery-validation/localization/methods_nl.js deleted file mode 100644 index 152e94de06..0000000000 --- a/www/include/jslibs/jquery-validation/localization/methods_nl.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Localized default methods for the jQuery validation plugin. - * Locale: NL - */ -jQuery.extend(jQuery.validator.methods, { - date: function(value, element) { - return this.optional(element) || /^\d\d?[\.\/-]\d\d?[\.\/-]\d\d\d?\d?$/.test(value); - } -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/localization/methods_pt.js b/www/include/jslibs/jquery-validation/localization/methods_pt.js deleted file mode 100644 index 21879d3bb6..0000000000 --- a/www/include/jslibs/jquery-validation/localization/methods_pt.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Localized default methods for the jQuery validation plugin. - * Locale: PT_BR - */ -jQuery.extend(jQuery.validator.methods, { - date: function(value, element) { - return this.optional(element) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test(value); - } -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/test/events.html b/www/include/jslibs/jquery-validation/test/events.html deleted file mode 100644 index a6515197eb..0000000000 --- a/www/include/jslibs/jquery-validation/test/events.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - -Test for jQuery validate() plugin - - - - - - - - - - - -
-
- A simple comment form with submit validation and default messages -

- - -

- - -

-

- - -

-

- - -

-

- -

-
-
- - - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/test/firebug/errorIcon.png b/www/include/jslibs/jquery-validation/test/firebug/errorIcon.png deleted file mode 100644 index 2d75261bb6..0000000000 Binary files a/www/include/jslibs/jquery-validation/test/firebug/errorIcon.png and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/test/firebug/firebug.css b/www/include/jslibs/jquery-validation/test/firebug/firebug.css deleted file mode 100644 index 1f041c4da9..0000000000 --- a/www/include/jslibs/jquery-validation/test/firebug/firebug.css +++ /dev/null @@ -1,209 +0,0 @@ - -html, body { - margin: 0; - background: #FFFFFF; - font-family: Lucida Grande, Tahoma, sans-serif; - font-size: 11px; - overflow: hidden; -} - -a { - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -.toolbar { - height: 14px; - border-top: 1px solid ThreeDHighlight; - border-bottom: 1px solid ThreeDShadow; - padding: 2px 6px; - background: ThreeDFace; -} - -.toolbarRight { - position: absolute; - top: 4px; - right: 6px; -} - -#log { - overflow: auto; - position: absolute; - left: 0; - width: 100%; -} - -#commandLine { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - height: 18px; - border: none; - border-top: 1px solid ThreeDShadow; -} - -/************************************************************************************************/ - -.logRow { - position: relative; - border-bottom: 1px solid #D7D7D7; - padding: 2px 4px 1px 6px; - background-color: #FFFFFF; -} - -.logRow-command { - font-family: Monaco, monospace; - color: blue; -} - -.objectBox-null { - padding: 0 2px; - border: 1px solid #666666; - background-color: #888888; - color: #FFFFFF; -} - -.objectBox-string { - font-family: Monaco, monospace; - color: red; - white-space: pre; -} - -.objectBox-number { - color: #000088; -} - -.objectBox-function { - font-family: Monaco, monospace; - color: DarkGreen; -} - -.objectBox-object { - color: DarkGreen; - font-weight: bold; -} - -/************************************************************************************************/ - -.logRow-info, -.logRow-error, -.logRow-warning { - background: #FFFFFF no-repeat 2px 2px; - padding-left: 20px; - padding-bottom: 3px; -} - -.logRow-info { - background-image: url(infoIcon.png); -} - -.logRow-warning { - background-color: cyan; - background-image: url(warningIcon.png); -} - -.logRow-error { - background-color: LightYellow; - background-image: url(errorIcon.png); -} - -.errorMessage { - vertical-align: top; - color: #FF0000; -} - -.objectBox-sourceLink { - position: absolute; - right: 4px; - top: 2px; - padding-left: 8px; - font-family: Lucida Grande, sans-serif; - font-weight: bold; - color: #0000FF; -} - -/************************************************************************************************/ - -.logRow-group { - background: #EEEEEE; - border-bottom: none; -} - -.logGroup { - background: #EEEEEE; -} - -.logGroupBox { - margin-left: 24px; - border-top: 1px solid #D7D7D7; - border-left: 1px solid #D7D7D7; -} - -/************************************************************************************************/ - -.selectorTag, -.selectorId, -.selectorClass { - font-family: Monaco, monospace; - font-weight: normal; -} - -.selectorTag { - color: #0000FF; -} - -.selectorId { - color: DarkBlue; -} - -.selectorClass { - color: red; -} - -/************************************************************************************************/ - -.objectBox-element { - font-family: Monaco, monospace; - color: #000088; -} - -.nodeChildren { - margin-left: 16px; -} - -.nodeTag { - color: blue; -} - -.nodeValue { - color: #FF0000; - font-weight: normal; -} - -.nodeText, -.nodeComment { - margin: 0 2px; - vertical-align: top; -} - -.nodeText { - color: #333333; -} - -.nodeComment { - color: DarkGreen; -} - -/************************************************************************************************/ - -.propertyNameCell { - vertical-align: top; -} - -.propertyName { - font-weight: bold; -} diff --git a/www/include/jslibs/jquery-validation/test/firebug/firebug.html b/www/include/jslibs/jquery-validation/test/firebug/firebug.html deleted file mode 100644 index 861e639326..0000000000 --- a/www/include/jslibs/jquery-validation/test/firebug/firebug.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - Firebug - - - - -
- Clear - - Close - -
-
- - - - - diff --git a/www/include/jslibs/jquery-validation/test/firebug/firebug.js b/www/include/jslibs/jquery-validation/test/firebug/firebug.js deleted file mode 100644 index eb853b8244..0000000000 --- a/www/include/jslibs/jquery-validation/test/firebug/firebug.js +++ /dev/null @@ -1,672 +0,0 @@ - -if (!("console" in window) || !("firebug" in console)) { -(function() -{ - window.console = - { - log: function() - { - logFormatted(arguments, ""); - }, - - debug: function() - { - logFormatted(arguments, "debug"); - }, - - info: function() - { - logFormatted(arguments, "info"); - }, - - warn: function() - { - logFormatted(arguments, "warning"); - }, - - error: function() - { - logFormatted(arguments, "error"); - }, - - assert: function(truth, message) - { - if (!truth) - { - var args = []; - for (var i = 1; i < arguments.length; ++i) - args.push(arguments[i]); - - logFormatted(args.length ? args : ["Assertion Failure"], "error"); - throw message ? message : "Assertion Failure"; - } - }, - - dir: function(object) - { - var html = []; - - var pairs = []; - for (var name in object) - { - try - { - pairs.push([name, object[name]]); - } - catch (exc) - { - } - } - - pairs.sort(function(a, b) { return a[0] < b[0] ? -1 : 1; }); - - html.push(''); - for (var i = 0; i < pairs.length; ++i) - { - var name = pairs[i][0], value = pairs[i][1]; - - html.push('', - '', ''); - } - html.push('
', - escapeHTML(name), ''); - appendObject(value, html); - html.push('
'); - - logRow(html, "dir"); - }, - - dirxml: function(node) - { - var html = []; - - appendNode(node, html); - logRow(html, "dirxml"); - }, - - group: function() - { - logRow(arguments, "group", pushGroup); - }, - - groupEnd: function() - { - logRow(arguments, "", popGroup); - }, - - time: function(name) - { - timeMap[name] = (new Date()).getTime(); - }, - - timeEnd: function(name) - { - if (name in timeMap) - { - var delta = (new Date()).getTime() - timeMap[name]; - logFormatted([name+ ":", delta+"ms"]); - delete timeMap[name]; - } - }, - - count: function() - { - this.warn(["count() not supported."]); - }, - - trace: function() - { - this.warn(["trace() not supported."]); - }, - - profile: function() - { - this.warn(["profile() not supported."]); - }, - - profileEnd: function() - { - }, - - clear: function() - { - consoleBody.innerHTML = ""; - }, - - open: function() - { - toggleConsole(true); - }, - - close: function() - { - if (frameVisible) - toggleConsole(); - } - }; - - // ******************************************************************************************** - - var consoleFrame = null; - var consoleBody = null; - var commandLine = null; - - var frameVisible = false; - var messageQueue = []; - var groupStack = []; - var timeMap = {}; - - var clPrefix = ">>> "; - - var isFirefox = navigator.userAgent.indexOf("Firefox") != -1; - var isIE = navigator.userAgent.indexOf("MSIE") != -1; - var isOpera = navigator.userAgent.indexOf("Opera") != -1; - var isSafari = navigator.userAgent.indexOf("AppleWebKit") != -1; - - // ******************************************************************************************** - - function toggleConsole(forceOpen) - { - frameVisible = forceOpen || !frameVisible; - if (consoleFrame) - consoleFrame.style.visibility = frameVisible ? "visible" : "hidden"; - else - waitForBody(); - } - - function focusCommandLine() - { - toggleConsole(true); - if (commandLine) - commandLine.focus(); - } - - function waitForBody() - { - if (document.body) - createFrame(); - else - setTimeout(waitForBody, 200); - } - - function createFrame() - { - if (consoleFrame) - return; - - window.onFirebugReady = function(doc) - { - window.onFirebugReady = null; - - var toolbar = doc.getElementById("toolbar"); - toolbar.onmousedown = onSplitterMouseDown; - - commandLine = doc.getElementById("commandLine"); - addEvent(commandLine, "keydown", onCommandLineKeyDown); - - addEvent(doc, isIE || isSafari ? "keydown" : "keypress", onKeyDown); - - consoleBody = doc.getElementById("log"); - layout(); - flush(); - } - - var baseURL = getFirebugURL(); - - consoleFrame = document.createElement("iframe"); - consoleFrame.setAttribute("src", baseURL+"/firebug.html"); - consoleFrame.setAttribute("frameBorder", "0"); - consoleFrame.style.visibility = (frameVisible ? "visible" : "hidden"); - consoleFrame.style.zIndex = "2147483647"; - consoleFrame.style.position = "fixed"; - consoleFrame.style.width = "100%"; - consoleFrame.style.left = "0"; - consoleFrame.style.bottom = "0"; - consoleFrame.style.height = "200px"; - document.body.appendChild(consoleFrame); - } - - function getFirebugURL() - { - var scripts = document.getElementsByTagName("script"); - for (var i = 0; i < scripts.length; ++i) - { - if (scripts[i].src.indexOf("firebug.js") != -1) - { - var lastSlash = scripts[i].src.lastIndexOf("/"); - return scripts[i].src.substr(0, lastSlash); - } - } - } - - function evalCommandLine() - { - var text = commandLine.value; - commandLine.value = ""; - - logRow([clPrefix, text], "command"); - - var value; - try - { - value = eval(text); - } - catch (exc) - { - } - - console.log(value); - } - - function layout() - { - var toolbar = consoleBody.ownerDocument.getElementById("toolbar"); - var height = consoleFrame.offsetHeight - (toolbar.offsetHeight + commandLine.offsetHeight); - consoleBody.style.top = toolbar.offsetHeight + "px"; - consoleBody.style.height = height + "px"; - - commandLine.style.top = (consoleFrame.offsetHeight - commandLine.offsetHeight) + "px"; - } - - function logRow(message, className, handler) - { - if (consoleBody) - writeMessage(message, className, handler); - else - { - messageQueue.push([message, className, handler]); - waitForBody(); - } - } - - function flush() - { - var queue = messageQueue; - messageQueue = []; - - for (var i = 0; i < queue.length; ++i) - writeMessage(queue[i][0], queue[i][1], queue[i][2]); - } - - function writeMessage(message, className, handler) - { - var isScrolledToBottom = - consoleBody.scrollTop + consoleBody.offsetHeight >= consoleBody.scrollHeight; - - if (!handler) - handler = writeRow; - - handler(message, className); - - if (isScrolledToBottom) - consoleBody.scrollTop = consoleBody.scrollHeight - consoleBody.offsetHeight; - } - - function appendRow(row) - { - var container = groupStack.length ? groupStack[groupStack.length-1] : consoleBody; - container.appendChild(row); - } - - function writeRow(message, className) - { - var row = consoleBody.ownerDocument.createElement("div"); - row.className = "logRow" + (className ? " logRow-"+className : ""); - row.innerHTML = message.join(""); - appendRow(row); - } - - function pushGroup(message, className) - { - logFormatted(message, className); - - var groupRow = consoleBody.ownerDocument.createElement("div"); - groupRow.className = "logGroup"; - var groupRowBox = consoleBody.ownerDocument.createElement("div"); - groupRowBox.className = "logGroupBox"; - groupRow.appendChild(groupRowBox); - appendRow(groupRowBox); - groupStack.push(groupRowBox); - } - - function popGroup() - { - groupStack.pop(); - } - - // ******************************************************************************************** - - function logFormatted(objects, className) - { - var html = []; - - var format = objects[0]; - var objIndex = 0; - - if (typeof(format) != "string") - { - format = ""; - objIndex = -1; - } - - var parts = parseFormat(format); - for (var i = 0; i < parts.length; ++i) - { - var part = parts[i]; - if (part && typeof(part) == "object") - { - var object = objects[++objIndex]; - part.appender(object, html); - } - else - appendText(part, html); - } - - for (var i = objIndex+1; i < objects.length; ++i) - { - appendText(" ", html); - - var object = objects[i]; - if (typeof(object) == "string") - appendText(object, html); - else - appendObject(object, html); - } - - logRow(html, className); - } - - function parseFormat(format) - { - var parts = []; - - var reg = /((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/; - var appenderMap = {s: appendText, d: appendInteger, i: appendInteger, f: appendFloat}; - - for (var m = reg.exec(format); m; m = reg.exec(format)) - { - var type = m[8] ? m[8] : m[5]; - var appender = type in appenderMap ? appenderMap[type] : appendObject; - var precision = m[3] ? parseInt(m[3]) : (m[4] == "." ? -1 : 0); - - parts.push(format.substr(0, m[0][0] == "%" ? m.index : m.index+1)); - parts.push({appender: appender, precision: precision}); - - format = format.substr(m.index+m[0].length); - } - - parts.push(format); - - return parts; - } - - function escapeHTML(value) - { - function replaceChars(ch) - { - switch (ch) - { - case "<": - return "<"; - case ">": - return ">"; - case "&": - return "&"; - case "'": - return "'"; - case '"': - return """; - } - return "?"; - }; - return String(value).replace(/[<>&"']/g, replaceChars); - } - - function objectToString(object) - { - try - { - return object+""; - } - catch (exc) - { - return null; - } - } - - // ******************************************************************************************** - - function appendText(object, html) - { - html.push(escapeHTML(objectToString(object))); - } - - function appendNull(object, html) - { - html.push('', escapeHTML(objectToString(object)), ''); - } - - function appendString(object, html) - { - html.push('"', escapeHTML(objectToString(object)), - '"'); - } - - function appendInteger(object, html) - { - html.push('', escapeHTML(objectToString(object)), ''); - } - - function appendFloat(object, html) - { - html.push('', escapeHTML(objectToString(object)), ''); - } - - function appendFunction(object, html) - { - var reName = /function ?(.*?)\(/; - var m = reName.exec(objectToString(object)); - var name = m ? m[1] : "function"; - html.push('', escapeHTML(name), '()'); - } - - function appendObject(object, html) - { - try - { - if (object == undefined) - appendNull("undefined", html); - else if (object == null) - appendNull("null", html); - else if (typeof object == "string") - appendString(object, html); - else if (typeof object == "number") - appendInteger(object, html); - else if (typeof object == "function") - appendFunction(object, html); - else if (object.nodeType == 1) - appendSelector(object, html); - else if (typeof object == "object") - appendObjectFormatted(object, html); - else - appendText(object, html); - } - catch (exc) - { - } - } - - function appendObjectFormatted(object, html) - { - var text = objectToString(object); - var reObject = /\[object (.*?)\]/; - - var m = reObject.exec(text); - html.push('', m ? m[1] : text, '') - } - - function appendSelector(object, html) - { - html.push(''); - - html.push('', escapeHTML(object.nodeName.toLowerCase()), ''); - if (object.id) - html.push('#', escapeHTML(object.id), ''); - if (object.className) - html.push('.', escapeHTML(object.className), ''); - - html.push(''); - } - - function appendNode(node, html) - { - if (node.nodeType == 1) - { - html.push( - '
', - '<', node.nodeName.toLowerCase(), ''); - - for (var i = 0; i < node.attributes.length; ++i) - { - var attr = node.attributes[i]; - if (!attr.specified) - continue; - - html.push(' ', attr.nodeName.toLowerCase(), - '="', escapeHTML(attr.nodeValue), - '"') - } - - if (node.firstChild) - { - html.push('>
'); - - for (var child = node.firstChild; child; child = child.nextSibling) - appendNode(child, html); - - html.push('
</', - node.nodeName.toLowerCase(), '>
'); - } - else - html.push('/>
'); - } - else if (node.nodeType == 3) - { - html.push('
', escapeHTML(node.nodeValue), - '
'); - } - } - - // ******************************************************************************************** - - function addEvent(object, name, handler) - { - if (document.all) - object.attachEvent("on"+name, handler); - else - object.addEventListener(name, handler, false); - } - - function removeEvent(object, name, handler) - { - if (document.all) - object.detachEvent("on"+name, handler); - else - object.removeEventListener(name, handler, false); - } - - function cancelEvent(event) - { - if (document.all) - event.cancelBubble = true; - else - event.stopPropagation(); - } - - function onError(msg, href, lineNo) - { - var html = []; - - var lastSlash = href.lastIndexOf("/"); - var fileName = lastSlash == -1 ? href : href.substr(lastSlash+1); - - html.push( - '', msg, '', - '' - ); - - logRow(html, "error"); - }; - - function onKeyDown(event) - { - if (event.keyCode == 123) - toggleConsole(); - else if ((event.keyCode == 108 || event.keyCode == 76) && event.shiftKey - && (event.metaKey || event.ctrlKey)) - focusCommandLine(); - else - return; - - cancelEvent(event); - } - - function onSplitterMouseDown(event) - { - if (isSafari || isOpera) - return; - - addEvent(document, "mousemove", onSplitterMouseMove); - addEvent(document, "mouseup", onSplitterMouseUp); - - for (var i = 0; i < frames.length; ++i) - { - addEvent(frames[i].document, "mousemove", onSplitterMouseMove); - addEvent(frames[i].document, "mouseup", onSplitterMouseUp); - } - } - - function onSplitterMouseMove(event) - { - var win = document.all - ? event.srcElement.ownerDocument.parentWindow - : event.target.ownerDocument.defaultView; - - var clientY = event.clientY; - if (win != win.parent) - clientY += win.frameElement ? win.frameElement.offsetTop : 0; - - var height = consoleFrame.offsetTop + consoleFrame.clientHeight; - var y = height - clientY; - - consoleFrame.style.height = y + "px"; - layout(); - } - - function onSplitterMouseUp(event) - { - removeEvent(document, "mousemove", onSplitterMouseMove); - removeEvent(document, "mouseup", onSplitterMouseUp); - - for (var i = 0; i < frames.length; ++i) - { - removeEvent(frames[i].document, "mousemove", onSplitterMouseMove); - removeEvent(frames[i].document, "mouseup", onSplitterMouseUp); - } - } - - function onCommandLineKeyDown(event) - { - if (event.keyCode == 13) - evalCommandLine(); - else if (event.keyCode == 27) - commandLine.value = ""; - } - - window.onerror = onError; - addEvent(document, isIE || isSafari ? "keydown" : "keypress", onKeyDown); - - if (document.documentElement.getAttribute("debug") == "true") - toggleConsole(true); -})(); -} diff --git a/www/include/jslibs/jquery-validation/test/firebug/firebugx.js b/www/include/jslibs/jquery-validation/test/firebug/firebugx.js deleted file mode 100644 index 5a467fc143..0000000000 --- a/www/include/jslibs/jquery-validation/test/firebug/firebugx.js +++ /dev/null @@ -1,10 +0,0 @@ - -if (!("console" in window) || !("firebug" in console)) -{ - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", - "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; - - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {} -} \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/test/firebug/infoIcon.png b/www/include/jslibs/jquery-validation/test/firebug/infoIcon.png deleted file mode 100644 index da1e5334c1..0000000000 Binary files a/www/include/jslibs/jquery-validation/test/firebug/infoIcon.png and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/test/firebug/warningIcon.png b/www/include/jslibs/jquery-validation/test/firebug/warningIcon.png deleted file mode 100644 index de51084e84..0000000000 Binary files a/www/include/jslibs/jquery-validation/test/firebug/warningIcon.png and /dev/null differ diff --git a/www/include/jslibs/jquery-validation/test/index-14.html b/www/include/jslibs/jquery-validation/test/index-14.html deleted file mode 100644 index b8ee2f18e3..0000000000 --- a/www/include/jslibs/jquery-validation/test/index-14.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - jQuery - Validation Test Suite - - - - - - - - - - - - - -

jQuery Validation Plugin Test Suite

- -

- - - -
-

See this blog entry for more information.

-

- Here are some links in a normal paragraph: Google, - Google Groups. - This link has class="blog": - diveintomark - -

-
-

Everything inside the red border is inside a div with id="foo".

-

This is a normal link: Yahoo

-

This link has class="blog": Simon Willison's Weblog

- -
-

Try them out:

-
    -
      - -
      - - - - -
      - -
      - - - - -
      - -
      - - -
      - -
      - - -
      - -
      - - -
      - -
      - -
      -
      -
        -
      • - -
      • -
      -
      - -
      - - -
      - -
      - - -
      - -
      - - -
      - -
      - -
      - -
      - - - -
      - -
      - - -
      - -
      - -
      - -
      -

      -
      - -
      - -
        - -
        - - - - - - -
          -
        -
        - -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        - -
        - - - - - - - -
        - -
        - - - -
        - - -
        -
        - - -
        -
        - -
        - -
        - -
        - -
        - -
        - -
        -
        - -
          - - - diff --git a/www/include/jslibs/jquery-validation/test/index.html b/www/include/jslibs/jquery-validation/test/index.html deleted file mode 100644 index 1a4b7ab21e..0000000000 --- a/www/include/jslibs/jquery-validation/test/index.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - jQuery - Validation Test Suite - - - - - - - - - - - - - -

          jQuery Validation Plugin Test Suite

          -

          -
          -

          -
            -
            test markup
            - - - -
            -

            See this blog entry for more information.

            -

            - Here are some links in a normal paragraph: Google, - Google Groups. - This link has class="blog": - diveintomark - -

            -
            -

            Everything inside the red border is inside a div with id="foo".

            -

            This is a normal link: Yahoo

            -

            This link has class="blog": Simon Willison's Weblog

            - -
            -

            Try them out:

            -
              -
                - -
                - - - - -
                - -
                - - - - -
                - -
                - - -
                - -
                - - -
                - -
                - - -
                - -
                - -
                -
                -
                  -
                • - -
                • -
                -
                - -
                - - -
                - -
                - - -
                - -
                - - -
                - -
                - -
                - -
                - - - -
                - -
                - - -
                - -
                - -
                - -
                -

                -
                - -
                - -
                  - -
                  - - - - - - -
                    -
                  -
                  - -
                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  - -
                  - - - - - - - -
                  - -
                  - - - -
                  - - -
                  -
                  - - -
                  -
                  - -
                  - -
                  - -
                  - -
                  - -
                  - -
                  -
                  - - - diff --git a/www/include/jslibs/jquery-validation/test/large.html b/www/include/jslibs/jquery-validation/test/large.html deleted file mode 100644 index 82c47f1f82..0000000000 --- a/www/include/jslibs/jquery-validation/test/large.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - -Test for jQuery validate() plugin - - - - - - - - - - - - - -
                  -
                  - A simple comment form with submit validation and default messages -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -

                  - -

                  -
                  -
                  - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/test/messages.js b/www/include/jslibs/jquery-validation/test/messages.js deleted file mode 100644 index 0faf984ed8..0000000000 --- a/www/include/jslibs/jquery-validation/test/messages.js +++ /dev/null @@ -1,62 +0,0 @@ -module("messages"); - -test("predefined message not overwritten by addMethod(a, b, undefined)", function() { - var message = "my custom message"; - $.validator.messages.custom = message; - $.validator.addMethod("custom", function() {}); - same(message, $.validator.messages.custom); - delete $.validator.messages.custom; - delete $.validator.methods.custom; -}); - -test("group error messages", function() { - $.validator.addClassRules({ - requiredDateRange: {required:true, date:true, dateRange:true} - }); - $.validator.addMethod("dateRange", function() { - return new Date($("#fromDate").val()) < new Date($("#toDate").val()); - }, "Please specify a correct date range."); - var form = $("#dateRangeForm"); - form.validate({ - groups: { - dateRange: "fromDate toDate" - }, - errorPlacement: function(error) { - form.find(".errorContainer").append(error); - } - }); - ok( !form.valid() ); - equals( 1, form.find(".errorContainer *").length ); - equals( "Please enter a valid date.", form.find(".errorContainer label.error").text() ); - - $("#fromDate").val("12/03/2006"); - $("#toDate").val("12/01/2006"); - ok( !form.valid() ); - equals( "Please specify a correct date range.", form.find(".errorContainer label.error").text() ); - - $("#toDate").val("12/04/2006"); - ok( form.valid() ); - ok( form.find(".errorContainer label.error").is(":hidden") ); -}); - -test("read messages from metadata", function() { - var form = $("#testForm9") - form.validate(); - var e = $("#testEmail9") - e.valid(); - equals( form.find("label").text(), "required" ); - e.val("bla").valid(); - equals( form.find("label").text(), "email" ); -}); - - -test("read messages from metadata, with meta option specified, but no metadata in there", function() { - var form = $("#testForm1clean") - form.validate({ - meta: "validate", - rules: { - firstname: "required" - } - }); - ok(!form.valid(), "not valid"); -}); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/test/methods.js b/www/include/jslibs/jquery-validation/test/methods.js deleted file mode 100644 index 15ce325090..0000000000 --- a/www/include/jslibs/jquery-validation/test/methods.js +++ /dev/null @@ -1,584 +0,0 @@ -(function($) { - -function methodTest( methodName ) { - var v = jQuery("#form").validate(); - var method = $.validator.methods[methodName]; - var element = $("#firstname")[0]; - return function(value, param) { - element.value = value; - return method.call( v, value, element, param ); - }; -} - -module("methods"); - -test("default messages", function() { - var m = $.validator.methods; - $.each(m, function(key) { - ok( jQuery.validator.messages[key], key + " has a default message." ); - }); -}); - -test("digit", function() { - var method = methodTest("digits"); - ok( method( "123" ), "Valid digits" ); - ok(!method( "123.000" ), "Invalid digits" ); - ok(!method( "123.000,00" ), "Invalid digits" ); - ok(!method( "123.0.0,0" ), "Invalid digits" ); - ok(!method( "x123" ), "Invalid digits" ); - ok(!method( "100.100,0,0" ), "Invalid digits" ); -}); - -test("url", function() { - var method = methodTest("url"); - ok( method( "http://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); - ok( method( "https://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); - ok( method( "ftp://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); - ok( method( "http://www.føtex.dk/" ), "Valid url, danish unicode characters" ); - ok( method( "http://bösendorfer.de/" ), "Valid url, german unicode characters" ); - ok( method( "http://192.168.8.5" ), "Valid IP Address" ) - ok(!method( "http://192.168.8." ), "Invalid IP Address" ) - ok(!method( "http://bassistance" ), "Invalid url" ); // valid - ok(!method( "http://bassistance." ), "Invalid url" ); // valid - ok(!method( "http://bassistance,de" ), "Invalid url" ); - ok(!method( "http://bassistance;de" ), "Invalid url" ); - ok(!method( "http://.bassistancede" ), "Invalid url" ); - ok(!method( "bassistance.de" ), "Invalid url" ); -}); - -test("url2 (tld optional)", function() { - var method = methodTest("url2"); - ok( method( "http://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); - ok( method( "https://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); - ok( method( "ftp://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); - ok( method( "http://www.føtex.dk/" ), "Valid url, danish unicode characters" ); - ok( method( "http://bösendorfer.de/" ), "Valid url, german unicode characters" ); - ok( method( "http://192.168.8.5" ), "Valid IP Address" ) - ok(!method( "http://192.168.8." ), "Invalid IP Address" ) - ok( method( "http://bassistance" ), "Invalid url" ); - ok( method( "http://bassistance." ), "Invalid url" ); - ok(!method( "http://bassistance,de" ), "Invalid url" ); - ok(!method( "http://bassistance;de" ), "Invalid url" ); - ok(!method( "http://.bassistancede" ), "Invalid url" ); - ok(!method( "bassistance.de" ), "Invalid url" ); -}); - -test("email", function() { - var method = methodTest("email"); - ok( method( "name@domain.tld" ), "Valid email" ); - ok( method( "name@domain.tl" ), "Valid email" ); - ok( method( "bart+bart@tokbox.com" ), "Valid email" ); - ok( method( "bart+bart@tokbox.travel" ), "Valid email" ); - ok( method( "n@d.tld" ), "Valid email" ); - ok( method( "ole@føtex.dk"), "Valid email" ); - ok( method( "jörn@bassistance.de"), "Valid email" ); - ok( method( "bla.blu@g.mail.com"), "Valid email" ); - ok( method( "\"Scott Gonzalez\"@example.com" ), "Valid email" ); - ok( method( "\"Scott González\"@example.com" ), "Valid email" ); - ok( method( "\"name.\"@domain.tld" ), "Valid email" ); // valid without top label - ok( method( "\"name,\"@domain.tld" ), "Valid email" ); // valid without top label - ok( method( "\"name;\"@domain.tld" ), "Valid email" ); // valid without top label - ok(!method( "name" ), "Invalid email" ); - ok(!method( "name@" ), "Invalid email" ); - ok(!method( "name@domain" ), "Invalid email" ); - ok(!method( "name.@domain.tld" ), "Invalid email" ); - ok(!method( "name,@domain.tld" ), "Invalid email" ); - ok(!method( "name;@domain.tld" ), "Invalid email" ); -}); - -test("email2 (tld optional)", function() { - var method = methodTest("email2"); - ok( method( "name@domain.tld" ), "Valid email" ); - ok( method( "name@domain.tl" ), "Valid email" ); - ok( method( "bart+bart@tokbox.com" ), "Valid email" ); - ok( method( "bart+bart@tokbox.travel" ), "Valid email" ); - ok( method( "n@d.tld" ), "Valid email" ); - ok( method( "ole@føtex.dk"), "Valid email" ); - ok( method( "jörn@bassistance.de"), "Valid email" ); - ok( method( "bla.blu@g.mail.com"), "Valid email" ); - ok( method( "\"Scott Gonzalez\"@example.com" ), "Valid email" ); - ok( method( "\"Scott González\"@example.com" ), "Valid email" ); - ok( method( "\"name.\"@domain.tld" ), "Valid email" ); // valid without top label - ok( method( "\"name,\"@domain.tld" ), "Valid email" ); // valid without top label - ok( method( "\"name;\"@domain.tld" ), "Valid email" ); // valid without top label - ok(!method( "name" ), "Invalid email" ); - ok(!method( "name@" ), "Invalid email" ); - ok( method( "name@domain" ), "Invalid email" ); - ok(!method( "name.@domain.tld" ), "Invalid email" ); - ok(!method( "name,@domain.tld" ), "Invalid email" ); - ok(!method( "name;@domain.tld" ), "Invalid email" ); -}); - -test("number", function() { - var method = methodTest("number"); - ok( method( "123" ), "Valid number" ); - ok( method( "-123" ), "Valid number" ); - ok( method( "123,000" ), "Valid number" ); - ok( method( "-123,000" ), "Valid number" ); - ok( method( "123,000.00" ), "Valid number" ); - ok( method( "-123,000.00" ), "Valid number" ); - ok(!method( "123.000,00" ), "Invalid number" ); - ok(!method( "123.0.0,0" ), "Invalid number" ); - ok(!method( "x123" ), "Invalid number" ); - ok(!method( "100.100,0,0" ), "Invalid number" ); - - ok( method( "" ), "Blank is valid" ); - ok( method( "123" ), "Valid decimal" ); - ok( method( "123000" ), "Valid decimal" ); - ok( method( "123000.12" ), "Valid decimal" ); - ok( method( "-123000.12" ), "Valid decimal" ); - ok( method( "123.000" ), "Valid decimal" ); - ok( method( "123,000.00" ), "Valid decimal" ); - ok( method( "-123,000.00" ), "Valid decimal" ); - ok(!method( "1230,000.00" ), "Invalid decimal" ); - ok(!method( "123.0.0,0" ), "Invalid decimal" ); - ok(!method( "x123" ), "Invalid decimal" ); - ok(!method( "100.100,0,0" ), "Invalid decimal" ); -}); - -/* disabled for now, need to figure out how to test localized methods -test("numberDE", function() { - var method = methodTest("numberDE"); - ok( method( "123" ), "Valid numberDE" ); - ok( method( "-123" ), "Valid numberDE" ); - ok( method( "123.000" ), "Valid numberDE" ); - ok( method( "-123.000" ), "Valid numberDE" ); - ok( method( "123.000,00" ), "Valid numberDE" ); - ok( method( "-123.000,00" ), "Valid numberDE" ); - ok(!method( "123,000.00" ), "Invalid numberDE" ); - ok(!method( "123,0,0.0" ), "Invalid numberDE" ); - ok(!method( "x123" ), "Invalid numberDE" ); - ok(!method( "100,100.0.0" ), "Invalid numberDE" ); - - ok( method( "" ), "Blank is valid" ); - ok( method( "123" ), "Valid decimalDE" ); - ok( method( "123000" ), "Valid decimalDE" ); - ok( method( "123000,12" ), "Valid decimalDE" ); - ok( method( "-123000,12" ), "Valid decimalDE" ); - ok( method( "123.000" ), "Valid decimalDE" ); - ok( method( "123.000,00" ), "Valid decimalDE" ); - ok( method( "-123.000,00" ), "Valid decimalDE" ) - ok(!method( "123.0.0,0" ), "Invalid decimalDE" ); - ok(!method( "x123" ), "Invalid decimalDE" ); - ok(!method( "100,100.0.0" ), "Invalid decimalDE" ); -}); -*/ - -test("date", function() { - var method = methodTest("date"); - ok( method( "06/06/1990" ), "Valid date" ); - ok( method( "6/6/06" ), "Valid date" ); - ok(!method( "1990x-06-06" ), "Invalid date" ); -}); - -test("dateISO", function() { - var method = methodTest("dateISO"); - ok( method( "1990-06-06" ), "Valid date" ); - ok( method( "1990/06/06" ), "Valid date" ); - ok( method( "1990-6-6" ), "Valid date" ); - ok( method( "1990/6/6" ), "Valid date" ); - ok(!method( "1990-106-06" ), "Invalid date" ); - ok(!method( "190-06-06" ), "Invalid date" ); -}); - -/* disabled for now, need to figure out how to test localized methods -test("dateDE", function() { - var method = methodTest("dateDE"); - ok( method( "03.06.1984" ), "Valid dateDE" ); - ok( method( "3.6.84" ), "Valid dateDE" ); - ok(!method( "6-6-06" ), "Invalid dateDE" ); - ok(!method( "1990-06-06" ), "Invalid dateDE" ); - ok(!method( "06/06/1990" ), "Invalid dateDE" ); - ok(!method( "6/6/06" ), "Invalid dateDE" ); -}); -*/ - -test("required", function() { - var v = jQuery("#form").validate(), - method = $.validator.methods.required, - e = $('#text1, #text1b, #hidden2, #select1, #select2'); - ok( method.call( v, e[0].value, e[0]), "Valid text input" ); - ok(!method.call( v, e[1].value, e[1]), "Invalid text input" ); - ok(!method.call( v, e[1].value, e[2]), "Invalid text input" ); - - ok(!method.call( v, e[2].value, e[3]), "Invalid select" ); - ok( method.call( v, e[3].value, e[4]), "Valid select" ); - - e = $('#area1, #area2, #pw1, #pw2'); - ok( method.call( v, e[0].value, e[0]), "Valid textarea" ); - ok(!method.call( v, e[1].value, e[1]), "Invalid textarea" ); - ok( method.call( v, e[2].value, e[2]), "Valid password input" ); - ok(!method.call( v, e[3].value, e[3]), "Invalid password input" ); - - e = $('#radio1, #radio2, #radio3'); - ok(!method.call( v, e[0].value, e[0]), "Invalid radio" ); - ok( method.call( v, e[1].value, e[1]), "Valid radio" ); - ok( method.call( v, e[2].value, e[2]), "Valid radio" ); - - e = $('#check1, #check2'); - ok( method.call( v, e[0].value, e[0]), "Valid checkbox" ); - ok(!method.call( v, e[1].value, e[1]), "Invalid checkbox" ); - - e = $('#select1, #select2, #select3, #select4'); - ok(!method.call( v, e[0].value, e[0]), "Invalid select" ); - ok( method.call( v, e[1].value, e[1]), "Valid select" ); - ok( method.call( v, e[2].value, e[2]), "Valid select" ); - ok( method.call( v, e[3].value, e[3]), "Valid select" ); -}); - -test("required with dependencies", function() { - var v = jQuery("#form").validate(), - method = $.validator.methods.required, - e = $('#hidden2, #select1, #area2, #radio1, #check2'); - ok( method.call( v, e[0].value, e[0], "asffsaa"), "Valid text input due to depencie not met" ); - ok(!method.call( v, e[0].value, e[0], "input"), "Invalid text input" ); - ok( method.call( v, e[0].value, e[0], function() { return false; }), "Valid text input due to depencie not met" ); - ok(!method.call( v, e[0].value, e[0], function() { return true; }), "Invalid text input" ); - ok( method.call( v, e[1].value, e[1], "asfsfa"), "Valid select due to dependency not met" ); - ok(!method.call( v, e[1].value, e[1], "input"), "Invalid select" ); - ok( method.call( v, e[2].value, e[2], "asfsafsfa"), "Valid textarea due to dependency not met" ); - ok(!method.call( v, e[2].value, e[2], "input"), "Invalid textarea" ); - ok( method.call( v, e[3].value, e[3], "asfsafsfa"), "Valid radio due to dependency not met" ); - ok(!method.call( v, e[3].value, e[3], "input"), "Invalid radio" ); - ok( method.call( v, e[4].value, e[4], "asfsafsfa"), "Valid checkbox due to dependency not met" ); - ok(!method.call( v, e[4].value, e[4], "input"), "Invalid checkbox" ); -}); - -test("minlength", function() { - var v = jQuery("#form").validate(), - method = $.validator.methods.minlength, - param = 2, - e = $('#text1, #text1c, #text2, #text3'); - ok( method.call( v, e[0].value, e[0], param), "Valid text input" ); - ok(!method.call( v, e[1].value, e[1], param), "Invalid text input" ); - ok(!method.call( v, e[2].value, e[2], param), "Invalid text input" ); - ok( method.call( v, e[3].value, e[3], param), "Valid text input" ); - - e = $('#check1, #check2, #check3'); - ok(!method.call( v, e[0].value, e[0], param), "Valid checkbox" ); - ok( method.call( v, e[1].value, e[1], param), "Valid checkbox" ); - ok( method.call( v, e[2].value, e[2], param), "Invalid checkbox" ); - - e = $('#select1, #select2, #select3, #select4, #select5'); - ok(method.call( v, e[0].value, e[0], param), "Valid select " + e[0].id ); - ok(!method.call( v, e[1].value, e[1], param), "Invalid select " + e[1].id ); - ok( method.call( v, e[2].value, e[2], param), "Valid select " + e[2].id ); - ok( method.call( v, e[3].value, e[3], param), "Valid select " + e[3].id ); - ok( method.call( v, e[4].value, e[4], param), "Valid select " + e[4].id ); -}); - -test("maxlength", function() { - var v = jQuery("#form").validate(); - var method = $.validator.methods.maxlength, - param = 4, - e = $('#text1, #text2, #text3'); - ok( method.call( v, e[0].value, e[0], param), "Valid text input" ); - ok( method.call( v, e[1].value, e[1], param), "Valid text input" ); - ok(!method.call( v, e[2].value, e[2], param), "Invalid text input" ); - - e = $('#check1, #check2, #check3'); - ok( method.call( v, e[0].value, e[0], param), "Valid checkbox" ); - ok( method.call( v, e[1].value, e[1], param), "Invalid checkbox" ); - ok(!method.call( v, e[2].value, e[2], param), "Invalid checkbox" ); - - e = $('#select1, #select2, #select3, #select4'); - ok( method.call( v, e[0].value, e[0], param), "Valid select" ); - ok( method.call( v, e[1].value, e[1], param), "Valid select" ); - ok( method.call( v, e[2].value, e[2], param), "Valid select" ); - ok(!method.call( v, e[3].value, e[3], param), "Invalid select" ); -}); - -test("rangelength", function() { - var v = jQuery("#form").validate(); - var method = $.validator.methods.rangelength, - param = [2, 4], - e = $('#text1, #text2, #text3'); - ok( method.call( v, e[0].value, e[0], param), "Valid text input" ); - ok(!method.call( v, e[1].value, e[1], param), "Invalid text input" ); - ok(!method.call( v, e[2].value, e[2], param), "Invalid text input" ); -}); - -test("min", function() { - var v = jQuery("#form").validate(); - var method = $.validator.methods.min, - param = 8, - e = $('#value1, #value2, #value3'); - ok(!method.call( v, e[0].value, e[0], param), "Invalid text input" ); - ok( method.call( v, e[1].value, e[1], param), "Valid text input" ); - ok( method.call( v, e[2].value, e[2], param), "Valid text input" ); -}); - -test("max", function() { - var v = jQuery("#form").validate(); - var method = $.validator.methods.max, - param = 12, - e = $('#value1, #value2, #value3'); - ok( method.call( v, e[0].value, e[0], param), "Valid text input" ); - ok( method.call( v, e[1].value, e[1], param), "Valid text input" ); - ok(!method.call( v, e[2].value, e[2], param), "Invalid text input" ); -}); - -test("range", function() { - var v = jQuery("#form").validate(); - var method = $.validator.methods.range, - param = [4,12], - e = $('#value1, #value2, #value3'); - ok(!method.call( v, e[0].value, e[0], param), "Invalid text input" ); - ok( method.call( v, e[1].value, e[1], param), "Valid text input" ); - ok(!method.call( v, e[2].value, e[2], param), "Invalid text input" ); -}); - -test("equalTo", function() { - var v = jQuery("#form").validate(); - var method = $.validator.methods.equalTo, - e = $('#text1, #text2'); - ok( method.call( v, "Test", e[0], "#text1"), "Text input" ); - ok( method.call( v, "T", e[1], "#text2"), "Another one" ); -}); - -test("creditcard", function() { - var method = methodTest("creditcard"); - ok( method( "446-667-651" ), "Valid creditcard number" ); - ok( !method( "asdf" ), "Invalid creditcard number" ); -}); - -test("accept", function() { - var method = methodTest("accept"); - ok( method( "picture.gif" ), "Valid default accept type" ); - ok( method( "picture.jpg" ), "Valid default accept type" ); - ok( method( "picture.jpeg" ), "Valid default accept type" ); - ok( method( "picture.png" ), "Valid default accept type" ); - ok( !method( "picture.pgn" ), "Invalid default accept type" ); - - var v = jQuery("#form").validate(), - method = function(value, param) { - return $.validator.methods.accept.call(v, value, $('#text1')[0], param) - }; - ok( method( "picture.doc", "doc"), "Valid custom accept type" ); - ok( method( "picture.pdf", "doc|pdf"), "Valid custom accept type" ); - ok( method( "picture.pdf", "pdf|doc"), "Valid custom accept type" ); - ok( !method( "picture.pdf", "doc"), "Invalid custom accept type" ); - ok( !method( "picture.doc", "pdf"), "Invalid custom accept type" ); - - ok( method( "picture.pdf", "doc,pdf"), "Valid custom accept type, comma seperated" ); - ok( method( "picture.pdf", "pdf,doc"), "Valid custom accept type, comma seperated" ); - ok( !method( "picture.pdf", "gop,top"), "Invalid custom accept type, comma seperated" ); -}); - -test("remote", function() { - expect(7); - stop(); - var e = $("#username"); - var v = $("#userForm").validate({ - rules: { - username: { - required: true, - remote: "users.php" - } - }, - messages: { - username: { - required: "Please", - remote: jQuery.validator.format("{0} in use") - } - }, - submitHandler: function() { - ok( false, "submitHandler may never be called when validating only elements"); - } - }); - $(document).ajaxStop(function() { - $(document).unbind("ajaxStop"); - equals( 1, v.size(), "There must be one error" ); - equals( "Peter in use", v.errorList[0].message ); - - $(document).ajaxStop(function() { - $(document).unbind("ajaxStop"); - equals( 1, v.size(), "There must be one error" ); - equals( "Peter2 in use", v.errorList[0].message ); - start(); - }); - e.val("Peter2"); - ok( !v.element(e), "new value, new request" ); - }); - ok( !v.element(e), "invalid element, nothing entered yet" ); - e.val("Peter"); - ok( !v.element(e), "still invalid, because remote validation must block until it returns" ); -}); - -test("remote, customized ajax options", function() { - expect(2); - stop(); - var v = $("#userForm").validate({ - rules: { - username: { - required: true, - remote: { - url: "users.php", - type: "post", - beforeSend: function(request, settings) { - same(settings.type, "post"); - same(settings.data, "username=asdf&email=email.com"); - }, - data: { - email: function() { - return "email.com"; - } - }, - complete: function() { - start(); - } - } - } - } - }); - $("#username").val("asdf"); - $("#userForm").valid(); -}); - - -test("remote extensions", function() { - expect(5); - stop(); - var e = $("#username"); - var v = $("#userForm").validate({ - rules: { - username: { - required: true, - remote: "users2.php" - } - }, - messages: { - username: { - required: "Please" - } - }, - submitHandler: function() { - ok( false, "submitHandler may never be called when validating only elements"); - } - }); - $(document).ajaxStop(function() { - $(document).unbind("ajaxStop"); - equals( 1, v.size(), "There must be one error" ); - equals( v.errorList[0].message, "asdf is already taken, please try something else" ); - v.element(e); - equals( v.errorList[0].message, "asdf is already taken, please try something else", "message doesn't change on revalidation" ); - start(); - }); - ok( !v.element(e), "invalid element, nothing entered yet" ); - e.val("asdf"); - ok( !v.element(e), "still invalid, because remote validation must block until it returns" ); -}); - -module("additional methods"); - -test("phone (us)", function() { - var method = methodTest("phoneUS"); - ok( method( "1(212)-999-2345" ), "Valid us phone number" ); - ok( method( "212 999 2344" ), "Valid us phone number" ); - ok( method( "212-999-0983" ), "Valid us phone number" ); - ok(!method( "111-123-5434" ), "Invalid us phone number" ); - ok(!method( "212 123 4567" ), "Invalid us phone number" ); -}); - -test("dateITA", function() { - var method = methodTest("dateITA"); - ok( method( "01/01/1900" ), "Valid date ITA" ); - ok(!method( "01/13/1990" ), "Invalid date ITA" ); - ok(!method( "01.01.1900" ), "Invalid date ITA" ); -}); - -test("time", function() { - var method = methodTest("time"); - ok( method("00:00"), "Valid time, lower bound" ); - ok( method("23:59"), "Valid time, upper bound" ); - ok( !method("24:60"), "Invalid time" ); - ok( !method("24:00"), "Invalid time" ); - ok( !method("29:59"), "Invalid time" ); - ok( !method("30:00"), "Invalid time" ); -}); - -test("minWords", function() { - var method = methodTest("minWords"); - ok( method("hello worlds", 2), "plain text, valid" ); - ok( method("hello world", 2), "html, valid" ); - ok( !method("hello", 2), "plain text, invalid" ); - ok( !method("world", 2), "html, invalid" ); - ok( !method("world
                  ", 2), "html, invalid" ); -}); - -test("maxWords", function() { - var method = methodTest("maxWords"); - ok( method("hello", 2), "plain text, valid" ); - ok( method("world", 2), "html, valid" ); - ok( method("world
                  ", 2), "html, valid" ); - ok( !method("hello worlds", 2), "plain text, invalid" ); - ok( !method("hello world", 2), "html, invalid" ); -}); - -function testCardTypeByNumber(number, cardname, expected) { - $("#cardnumber").val(number); - var actual = $("#ccform").valid(); - equals(actual, expected, $.format("Expect card number {0} to validate to {1}, actually validated to ", number, expected)); -} - -test('creditcardtypes, all', function() { - $("#ccform").validate({ - rules: { - cardnumber: { - creditcard: true, - creditcardtypes: { - all: true - } - } - } - }); - - testCardTypeByNumber("4111-1111-1111-1111", "VISA", true) - testCardTypeByNumber("5111-1111-1111-1118", "MasterCard", true) - testCardTypeByNumber("6111-1111-1111-1116", "Discover", true) - testCardTypeByNumber("3400-0000-0000-009", "AMEX", true); - - testCardTypeByNumber("4111-1111-1111-1110", "VISA", false) - testCardTypeByNumber("5432-1111-1111-1111", "MasterCard", false) - testCardTypeByNumber("6611-6611-6611-6611", "Discover", false) - testCardTypeByNumber("3777-7777-7777-7777", "AMEX", false) - -}); - -test('creditcardtypes, visa', function() { - $("#ccform").validate({ - rules: { - cardnumber: { - creditcard: true, - creditcardtypes: { - visa: true - } - } - } - }); - - testCardTypeByNumber("4111-1111-1111-1111", "VISA", true) - testCardTypeByNumber("5111-1111-1111-1118", "MasterCard", false) - testCardTypeByNumber("6111-1111-1111-1116", "Discover", false) - testCardTypeByNumber("3400-0000-0000-009", "AMEX", false); -}); - -test('creditcardtypes, mastercard', function() { - $("#ccform").validate({ - rules: { - cardnumber: { - creditcard: true, - creditcardtypes: { - mastercard: true - } - } - } - }); - - testCardTypeByNumber("5111-1111-1111-1118", "MasterCard", true) - testCardTypeByNumber("6111-1111-1111-1116", "Discover", false) - testCardTypeByNumber("3400-0000-0000-009", "AMEX", false); - testCardTypeByNumber("4111-1111-1111-1111", "VISA", false); -}); - -})(jQuery); \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/test/qunit/qunit.css b/www/include/jslibs/jquery-validation/test/qunit/qunit.css deleted file mode 100644 index a6a831c2ce..0000000000 --- a/www/include/jslibs/jquery-validation/test/qunit/qunit.css +++ /dev/null @@ -1,197 +0,0 @@ -/** Font Family and Sizes */ - -#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { - font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial; -} - -#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } -#qunit-tests { font-size: smaller; } - - -/** Resets */ - -#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult { - margin: 0; - padding: 0; -} - - -/** Header */ - -#qunit-header { - padding: 0.5em 0 0.5em 1em; - - color: #8699a4; - background-color: #0d3349; - - font-size: 1.5em; - line-height: 1em; - font-weight: normal; - - border-radius: 15px 15px 0 0; - -moz-border-radius: 15px 15px 0 0; - -webkit-border-top-right-radius: 15px; - -webkit-border-top-left-radius: 15px; -} - -#qunit-header a { - text-decoration: none; - color: #c2ccd1; -} - -#qunit-header a:hover, -#qunit-header a:focus { - color: #fff; -} - -#qunit-banner { - height: 5px; -} - -#qunit-testrunner-toolbar { - padding: 0.5em 0 0.5em 2em; - color: #5E740B; - background-color: #eee; -} - -#qunit-userAgent { - padding: 0.5em 0 0.5em 2.5em; - background-color: #2b81af; - color: #fff; - text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; -} - - -/** Tests: Pass/Fail */ - -#qunit-tests { - list-style-position: inside; -} - -#qunit-tests li { - padding: 0.4em 0.5em 0.4em 2.5em; - border-bottom: 1px solid #fff; - list-style-position: inside; -} - -#qunit-tests li strong { - cursor: pointer; -} - -#qunit-tests ol { - margin-top: 0.5em; - padding: 0.5em; - - background-color: #fff; - - border-radius: 15px; - -moz-border-radius: 15px; - -webkit-border-radius: 15px; - - box-shadow: inset 0px 2px 13px #999; - -moz-box-shadow: inset 0px 2px 13px #999; - -webkit-box-shadow: inset 0px 2px 13px #999; -} - -#qunit-tests table { - border-collapse: collapse; - margin-top: .2em; -} - -#qunit-tests th { - text-align: right; - vertical-align: top; - padding: 0 .5em 0 0; -} - -#qunit-tests td { - vertical-align: top; -} - -#qunit-tests pre { - margin: 0; - white-space: pre-wrap; - word-wrap: break-word; -} - -#qunit-tests del { - background-color: #e0f2be; - color: #374e0c; - text-decoration: none; -} - -#qunit-tests ins { - background-color: #ffcaca; - color: #500; - text-decoration: none; -} - -/*** Test Counts */ - -#qunit-tests b.counts { color: black; } -#qunit-tests b.passed { color: #5E740B; } -#qunit-tests b.failed { color: #710909; } - -#qunit-tests li li { - margin: 0.5em; - padding: 0.4em 0.5em 0.4em 0.5em; - background-color: #fff; - border-bottom: none; - list-style-position: inside; -} - -/*** Passing Styles */ - -#qunit-tests li li.pass { - color: #5E740B; - background-color: #fff; - border-left: 26px solid #C6E746; -} - -#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; } -#qunit-tests .pass .test-name { color: #366097; } - -#qunit-tests .pass .test-actual, -#qunit-tests .pass .test-expected { color: #999999; } - -#qunit-banner.qunit-pass { background-color: #C6E746; } - -/*** Failing Styles */ - -#qunit-tests li li.fail { - color: #710909; - background-color: #fff; - border-left: 26px solid #EE5757; -} - -#qunit-tests .fail { color: #000000; background-color: #EE5757; } -#qunit-tests .fail .test-name, -#qunit-tests .fail .module-name { color: #000000; } - -#qunit-tests .fail .test-actual { color: #EE5757; } -#qunit-tests .fail .test-expected { color: green; } - -#qunit-banner.qunit-fail { background-color: #EE5757; } - - -/** Footer */ - -#qunit-testresult { - padding: 0.5em 0.5em 0.5em 2.5em; - - color: #2b81af; - background-color: #D2E0E6; - - border-radius: 0 0 15px 15px; - -moz-border-radius: 0 0 15px 15px; - -webkit-border-bottom-right-radius: 15px; - -webkit-border-bottom-left-radius: 15px; -} - -/** Fixture */ - -#qunit-fixture { - position: absolute; - top: -10000px; - left: -10000px; -} diff --git a/www/include/jslibs/jquery-validation/test/qunit/qunit.js b/www/include/jslibs/jquery-validation/test/qunit/qunit.js deleted file mode 100644 index 7a5c2703ce..0000000000 --- a/www/include/jslibs/jquery-validation/test/qunit/qunit.js +++ /dev/null @@ -1,1414 +0,0 @@ -/* - * QUnit - A JavaScript Unit Testing Framework - * - * http://docs.jquery.com/QUnit - * - * Copyright (c) 2011 John Resig, Jörn Zaefferer - * Dual licensed under the MIT (MIT-LICENSE.txt) - * or GPL (GPL-LICENSE.txt) licenses. - */ - -(function(window) { - -var defined = { - setTimeout: typeof window.setTimeout !== "undefined", - sessionStorage: (function() { - try { - return !!sessionStorage.getItem; - } catch(e){ - return false; - } - })() -} - -var testId = 0; - -var Test = function(name, testName, expected, testEnvironmentArg, async, callback) { - this.name = name; - this.testName = testName; - this.expected = expected; - this.testEnvironmentArg = testEnvironmentArg; - this.async = async; - this.callback = callback; - this.assertions = []; -}; -Test.prototype = { - init: function() { - var tests = id("qunit-tests"); - if (tests) { - var b = document.createElement("strong"); - b.innerHTML = "Running " + this.name; - var li = document.createElement("li"); - li.appendChild( b ); - li.id = this.id = "test-output" + testId++; - tests.appendChild( li ); - } - }, - setup: function() { - if (this.module != config.previousModule) { - if ( config.previousModule ) { - QUnit.moduleDone( { - name: config.previousModule, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all - } ); - } - config.previousModule = this.module; - config.moduleStats = { all: 0, bad: 0 }; - QUnit.moduleStart( { - name: this.module - } ); - } - - config.current = this; - this.testEnvironment = extend({ - setup: function() {}, - teardown: function() {} - }, this.moduleTestEnvironment); - if (this.testEnvironmentArg) { - extend(this.testEnvironment, this.testEnvironmentArg); - } - - QUnit.testStart( { - name: this.testName - } ); - - // allow utility functions to access the current test environment - // TODO why?? - QUnit.current_testEnvironment = this.testEnvironment; - - try { - if ( !config.pollution ) { - saveGlobal(); - } - - this.testEnvironment.setup.call(this.testEnvironment); - } catch(e) { - QUnit.ok( false, "Setup failed on " + this.testName + ": " + e.message ); - } - }, - run: function() { - if ( this.async ) { - QUnit.stop(); - } - - if ( config.notrycatch ) { - this.callback.call(this.testEnvironment); - return; - } - try { - this.callback.call(this.testEnvironment); - } catch(e) { - fail("Test " + this.testName + " died, exception and test follows", e, this.callback); - QUnit.ok( false, "Died on test #" + (this.assertions.length + 1) + ": " + e.message + " - " + QUnit.jsDump.parse(e) ); - // else next test will carry the responsibility - saveGlobal(); - - // Restart the tests if they're blocking - if ( config.blocking ) { - start(); - } - } - }, - teardown: function() { - try { - checkPollution(); - this.testEnvironment.teardown.call(this.testEnvironment); - } catch(e) { - QUnit.ok( false, "Teardown failed on " + this.testName + ": " + e.message ); - } - }, - finish: function() { - if ( this.expected && this.expected != this.assertions.length ) { - QUnit.ok( false, "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run" ); - } - - var good = 0, bad = 0, - tests = id("qunit-tests"); - - config.stats.all += this.assertions.length; - config.moduleStats.all += this.assertions.length; - - if ( tests ) { - var ol = document.createElement("ol"); - - for ( var i = 0; i < this.assertions.length; i++ ) { - var assertion = this.assertions[i]; - - var li = document.createElement("li"); - li.className = assertion.result ? "pass" : "fail"; - li.innerHTML = assertion.message || (assertion.result ? "okay" : "failed"); - ol.appendChild( li ); - - if ( assertion.result ) { - good++; - } else { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - - // store result when possible - defined.sessionStorage && sessionStorage.setItem("qunit-" + this.testName, bad); - - if (bad == 0) { - ol.style.display = "none"; - } - - var b = document.createElement("strong"); - b.innerHTML = this.name + " (" + bad + ", " + good + ", " + this.assertions.length + ")"; - - addEvent(b, "click", function() { - var next = b.nextSibling, display = next.style.display; - next.style.display = display === "none" ? "block" : "none"; - }); - - addEvent(b, "dblclick", function(e) { - var target = e && e.target ? e.target : window.event.srcElement; - if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) { - target = target.parentNode; - } - if ( window.location && target.nodeName.toLowerCase() === "strong" ) { - window.location.search = "?" + encodeURIComponent(getText([target]).replace(/\(.+\)$/, "").replace(/(^\s*|\s*$)/g, "")); - } - }); - - var li = id(this.id); - li.className = bad ? "fail" : "pass"; - li.style.display = resultDisplayStyle(!bad); - li.removeChild( li.firstChild ); - li.appendChild( b ); - li.appendChild( ol ); - - } else { - for ( var i = 0; i < this.assertions.length; i++ ) { - if ( !this.assertions[i].result ) { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - } - - try { - QUnit.reset(); - } catch(e) { - fail("reset() failed, following Test " + this.testName + ", exception and reset fn follows", e, QUnit.reset); - } - - QUnit.testDone( { - name: this.testName, - failed: bad, - passed: this.assertions.length - bad, - total: this.assertions.length - } ); - }, - - queue: function() { - var test = this; - synchronize(function() { - test.init(); - }); - function run() { - // each of these can by async - synchronize(function() { - test.setup(); - }); - synchronize(function() { - test.run(); - }); - synchronize(function() { - test.teardown(); - }); - synchronize(function() { - test.finish(); - }); - } - // defer when previous test run passed, if storage is available - var bad = defined.sessionStorage && +sessionStorage.getItem("qunit-" + this.testName); - if (bad) { - run(); - } else { - synchronize(run); - }; - } - -} - -var QUnit = { - - // call on start of module test to prepend name to all tests - module: function(name, testEnvironment) { - config.currentModule = name; - config.currentModuleTestEnviroment = testEnvironment; - }, - - asyncTest: function(testName, expected, callback) { - if ( arguments.length === 2 ) { - callback = expected; - expected = 0; - } - - QUnit.test(testName, expected, callback, true); - }, - - test: function(testName, expected, callback, async) { - var name = '' + testName + '', testEnvironmentArg; - - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - // is 2nd argument a testEnvironment? - if ( expected && typeof expected === 'object') { - testEnvironmentArg = expected; - expected = null; - } - - if ( config.currentModule ) { - name = '' + config.currentModule + ": " + name; - } - - if ( !validTest(config.currentModule + ": " + testName) ) { - return; - } - - var test = new Test(name, testName, expected, testEnvironmentArg, async, callback); - test.module = config.currentModule; - test.moduleTestEnvironment = config.currentModuleTestEnviroment; - test.queue(); - }, - - /** - * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through. - */ - expect: function(asserts) { - config.current.expected = asserts; - }, - - /** - * Asserts true. - * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); - */ - ok: function(a, msg) { - a = !!a; - var details = { - result: a, - message: msg - }; - msg = escapeHtml(msg); - QUnit.log(details); - config.current.assertions.push({ - result: a, - message: msg - }); - }, - - /** - * Checks that the first two arguments are equal, with an optional message. - * Prints out both actual and expected values. - * - * Prefered to ok( actual == expected, message ) - * - * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." ); - * - * @param Object actual - * @param Object expected - * @param String message (optional) - */ - equal: function(actual, expected, message) { - QUnit.push(expected == actual, actual, expected, message); - }, - - notEqual: function(actual, expected, message) { - QUnit.push(expected != actual, actual, expected, message); - }, - - deepEqual: function(actual, expected, message) { - QUnit.push(QUnit.equiv(actual, expected), actual, expected, message); - }, - - notDeepEqual: function(actual, expected, message) { - QUnit.push(!QUnit.equiv(actual, expected), actual, expected, message); - }, - - strictEqual: function(actual, expected, message) { - QUnit.push(expected === actual, actual, expected, message); - }, - - notStrictEqual: function(actual, expected, message) { - QUnit.push(expected !== actual, actual, expected, message); - }, - - raises: function(block, expected, message) { - var actual, ok = false; - - if (typeof expected === 'string') { - message = expected; - expected = null; - } - - try { - block(); - } catch (e) { - actual = e; - } - - if (actual) { - // we don't want to validate thrown error - if (!expected) { - ok = true; - // expected is a regexp - } else if (QUnit.objectType(expected) === "regexp") { - ok = expected.test(actual); - // expected is a constructor - } else if (actual instanceof expected) { - ok = true; - // expected is a validation function which returns true is validation passed - } else if (expected.call({}, actual) === true) { - ok = true; - } - } - - QUnit.ok(ok, message); - }, - - start: function() { - config.semaphore--; - if (config.semaphore > 0) { - // don't start until equal number of stop-calls - return; - } - if (config.semaphore < 0) { - // ignore if start is called more often then stop - config.semaphore = 0; - } - // A slight delay, to avoid any current callbacks - if ( defined.setTimeout ) { - window.setTimeout(function() { - if ( config.timeout ) { - clearTimeout(config.timeout); - } - - config.blocking = false; - process(); - }, 13); - } else { - config.blocking = false; - process(); - } - }, - - stop: function(timeout) { - config.semaphore++; - config.blocking = true; - - if ( timeout && defined.setTimeout ) { - clearTimeout(config.timeout); - config.timeout = window.setTimeout(function() { - QUnit.ok( false, "Test timed out" ); - QUnit.start(); - }, timeout); - } - } - -}; - -// Backwards compatibility, deprecated -QUnit.equals = QUnit.equal; -QUnit.same = QUnit.deepEqual; - -// Maintain internal state -var config = { - // The queue of tests to run - queue: [], - - // block until document ready - blocking: true -}; - -// Load paramaters -(function() { - var location = window.location || { search: "", protocol: "file:" }, - GETParams = location.search.slice(1).split('&'); - - for ( var i = 0; i < GETParams.length; i++ ) { - GETParams[i] = decodeURIComponent( GETParams[i] ); - if ( GETParams[i] === "noglobals" ) { - GETParams.splice( i, 1 ); - i--; - config.noglobals = true; - } else if ( GETParams[i] === "notrycatch" ) { - GETParams.splice( i, 1 ); - i--; - config.notrycatch = true; - } else if ( GETParams[i].search('=') > -1 ) { - GETParams.splice( i, 1 ); - i--; - } - } - - // restrict modules/tests by get parameters - config.filters = GETParams; - - // Figure out if we're running the tests from a server or not - QUnit.isLocal = !!(location.protocol === 'file:'); -})(); - -// Expose the API as global variables, unless an 'exports' -// object exists, in that case we assume we're in CommonJS -if ( typeof exports === "undefined" || typeof require === "undefined" ) { - extend(window, QUnit); - window.QUnit = QUnit; -} else { - extend(exports, QUnit); - exports.QUnit = QUnit; -} - -// define these after exposing globals to keep them in these QUnit namespace only -extend(QUnit, { - config: config, - - // Initialize the configuration options - init: function() { - extend(config, { - stats: { all: 0, bad: 0 }, - moduleStats: { all: 0, bad: 0 }, - started: +new Date, - updateRate: 1000, - blocking: false, - autostart: true, - autorun: false, - filters: [], - queue: [], - semaphore: 0 - }); - - var tests = id("qunit-tests"), - banner = id("qunit-banner"), - result = id("qunit-testresult"); - - if ( tests ) { - tests.innerHTML = ""; - } - - if ( banner ) { - banner.className = ""; - } - - if ( result ) { - result.parentNode.removeChild( result ); - } - }, - - /** - * Resets the test setup. Useful for tests that modify the DOM. - * - * If jQuery is available, uses jQuery's html(), otherwise just innerHTML. - */ - reset: function() { - if ( window.jQuery ) { - jQuery( "#main, #qunit-fixture" ).html( config.fixture ); - } else { - var main = id( 'main' ) || id( 'qunit-fixture' ); - if ( main ) { - main.innerHTML = config.fixture; - } - } - }, - - /** - * Trigger an event on an element. - * - * @example triggerEvent( document.body, "click" ); - * - * @param DOMElement elem - * @param String type - */ - triggerEvent: function( elem, type, event ) { - if ( document.createEvent ) { - event = document.createEvent("MouseEvents"); - event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, - 0, 0, 0, 0, 0, false, false, false, false, 0, null); - elem.dispatchEvent( event ); - - } else if ( elem.fireEvent ) { - elem.fireEvent("on"+type); - } - }, - - // Safe object type checking - is: function( type, obj ) { - return QUnit.objectType( obj ) == type; - }, - - objectType: function( obj ) { - if (typeof obj === "undefined") { - return "undefined"; - - // consider: typeof null === object - } - if (obj === null) { - return "null"; - } - - var type = Object.prototype.toString.call( obj ) - .match(/^\[object\s(.*)\]$/)[1] || ''; - - switch (type) { - case 'Number': - if (isNaN(obj)) { - return "nan"; - } else { - return "number"; - } - case 'String': - case 'Boolean': - case 'Array': - case 'Date': - case 'RegExp': - case 'Function': - return type.toLowerCase(); - } - if (typeof obj === "object") { - return "object"; - } - return undefined; - }, - - push: function(result, actual, expected, message) { - var details = { - result: result, - message: message, - actual: actual, - expected: expected - }; - - message = escapeHtml(message) || (result ? "okay" : "failed"); - message = '' + message + ""; - expected = escapeHtml(QUnit.jsDump.parse(expected)); - actual = escapeHtml(QUnit.jsDump.parse(actual)); - var output = message + ''; - if (actual != expected) { - output += ''; - output += ''; - } - if (!result) { - var source = sourceFromStacktrace(); - if (source) { - details.source = source; - output += ''; - } - } - output += "
                  Expected:
                  ' + expected + '
                  Result:
                  ' + actual + '
                  Diff:
                  ' + QUnit.diff(expected, actual) +'
                  Source:
                  ' + source +'
                  "; - - QUnit.log(details); - - config.current.assertions.push({ - result: !!result, - message: output - }); - }, - - // Logging callbacks; all receive a single argument with the listed properties - // run test/logs.html for any related changes - begin: function() {}, - // done: { failed, passed, total, runtime } - done: function() {}, - // log: { result, actual, expected, message } - log: function() {}, - // testStart: { name } - testStart: function() {}, - // testDone: { name, failed, passed, total } - testDone: function() {}, - // moduleStart: { name } - moduleStart: function() {}, - // moduleDone: { name, failed, passed, total } - moduleDone: function() {} -}); - -if ( typeof document === "undefined" || document.readyState === "complete" ) { - config.autorun = true; -} - -addEvent(window, "load", function() { - QUnit.begin({}); - - // Initialize the config, saving the execution queue - var oldconfig = extend({}, config); - QUnit.init(); - extend(config, oldconfig); - - config.blocking = false; - - var userAgent = id("qunit-userAgent"); - if ( userAgent ) { - userAgent.innerHTML = navigator.userAgent; - } - var banner = id("qunit-header"); - if ( banner ) { - var paramsIndex = location.href.lastIndexOf(location.search); - if ( paramsIndex > -1 ) { - var mainPageLocation = location.href.slice(0, paramsIndex); - if ( mainPageLocation == location.href ) { - banner.innerHTML = ' ' + banner.innerHTML + ' '; - } else { - var testName = decodeURIComponent(location.search.slice(1)); - banner.innerHTML = '' + banner.innerHTML + '' + testName + ''; - } - } - } - - var toolbar = id("qunit-testrunner-toolbar"); - if ( toolbar ) { - var filter = document.createElement("input"); - filter.type = "checkbox"; - filter.id = "qunit-filter-pass"; - addEvent( filter, "click", function() { - var li = document.getElementsByTagName("li"); - for ( var i = 0; i < li.length; i++ ) { - if ( li[i].className.indexOf("pass") > -1 ) { - li[i].style.display = filter.checked ? "none" : ""; - } - } - if ( defined.sessionStorage ) { - sessionStorage.setItem("qunit-filter-passed-tests", filter.checked ? "true" : ""); - } - }); - if ( defined.sessionStorage && sessionStorage.getItem("qunit-filter-passed-tests") ) { - filter.checked = true; - } - toolbar.appendChild( filter ); - - var label = document.createElement("label"); - label.setAttribute("for", "qunit-filter-pass"); - label.innerHTML = "Hide passed tests"; - toolbar.appendChild( label ); - } - - var main = id('main') || id('qunit-fixture'); - if ( main ) { - config.fixture = main.innerHTML; - } - - if (config.autostart) { - QUnit.start(); - } -}); - -function done() { - config.autorun = true; - - // Log the last module results - if ( config.currentModule ) { - QUnit.moduleDone( { - name: config.currentModule, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all - } ); - } - - var banner = id("qunit-banner"), - tests = id("qunit-tests"), - runtime = +new Date - config.started, - passed = config.stats.all - config.stats.bad, - html = [ - 'Tests completed in ', - runtime, - ' milliseconds.
                  ', - '', - passed, - ' tests of ', - config.stats.all, - ' passed, ', - config.stats.bad, - ' failed.' - ].join(''); - - if ( banner ) { - banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass"); - } - - if ( tests ) { - var result = id("qunit-testresult"); - - if ( !result ) { - result = document.createElement("p"); - result.id = "qunit-testresult"; - result.className = "result"; - tests.parentNode.insertBefore( result, tests.nextSibling ); - } - - result.innerHTML = html; - } - - QUnit.done( { - failed: config.stats.bad, - passed: passed, - total: config.stats.all, - runtime: runtime - } ); -} - -function validTest( name ) { - var i = config.filters.length, - run = false; - - if ( !i ) { - return true; - } - - while ( i-- ) { - var filter = config.filters[i], - not = filter.charAt(0) == '!'; - - if ( not ) { - filter = filter.slice(1); - } - - if ( name.indexOf(filter) !== -1 ) { - return !not; - } - - if ( not ) { - run = true; - } - } - - return run; -} - -// so far supports only Firefox, Chrome and Opera (buggy) -// could be extended in the future to use something like https://github.com/csnover/TraceKit -function sourceFromStacktrace() { - try { - throw new Error(); - } catch ( e ) { - if (e.stacktrace) { - // Opera - return e.stacktrace.split("\n")[6]; - } else if (e.stack) { - // Firefox, Chrome - return e.stack.split("\n")[4]; - } - } -} - -function resultDisplayStyle(passed) { - return passed && id("qunit-filter-pass") && id("qunit-filter-pass").checked ? 'none' : ''; -} - -function escapeHtml(s) { - if (!s) { - return ""; - } - s = s + ""; - return s.replace(/[\&"<>\\]/g, function(s) { - switch(s) { - case "&": return "&"; - case "\\": return "\\\\"; - case '"': return '\"'; - case "<": return "<"; - case ">": return ">"; - default: return s; - } - }); -} - -function synchronize( callback ) { - config.queue.push( callback ); - - if ( config.autorun && !config.blocking ) { - process(); - } -} - -function process() { - var start = (new Date()).getTime(); - while ( config.queue.length && !config.blocking ) { - if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) { - config.queue.shift()(); - } else { - window.setTimeout( process, 13 ); - break; - } - } - if (!config.blocking && !config.queue.length) { - done(); - } -} - -function saveGlobal() { - config.pollution = []; - - if ( config.noglobals ) { - for ( var key in window ) { - config.pollution.push( key ); - } - } -} - -function checkPollution( name ) { - var old = config.pollution; - saveGlobal(); - - var newGlobals = diff( old, config.pollution ); - if ( newGlobals.length > 0 ) { - ok( false, "Introduced global variable(s): " + newGlobals.join(", ") ); - config.current.expected++; - } - - var deletedGlobals = diff( config.pollution, old ); - if ( deletedGlobals.length > 0 ) { - ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") ); - config.current.expected++; - } -} - -// returns a new Array with the elements that are in a but not in b -function diff( a, b ) { - var result = a.slice(); - for ( var i = 0; i < result.length; i++ ) { - for ( var j = 0; j < b.length; j++ ) { - if ( result[i] === b[j] ) { - result.splice(i, 1); - i--; - break; - } - } - } - return result; -} - -function fail(message, exception, callback) { - if ( typeof console !== "undefined" && console.error && console.warn ) { - console.error(message); - console.error(exception); - console.warn(callback.toString()); - - } else if ( window.opera && opera.postError ) { - opera.postError(message, exception, callback.toString); - } -} - -function extend(a, b) { - for ( var prop in b ) { - a[prop] = b[prop]; - } - - return a; -} - -function addEvent(elem, type, fn) { - if ( elem.addEventListener ) { - elem.addEventListener( type, fn, false ); - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, fn ); - } else { - fn(); - } -} - -function id(name) { - return !!(typeof document !== "undefined" && document && document.getElementById) && - document.getElementById( name ); -} - -// Test for equality any JavaScript type. -// Discussions and reference: http://philrathe.com/articles/equiv -// Test suites: http://philrathe.com/tests/equiv -// Author: Philippe Rathé -QUnit.equiv = function () { - - var innerEquiv; // the real equiv function - var callers = []; // stack to decide between skip/abort functions - var parents = []; // stack to avoiding loops from circular referencing - - // Call the o related callback with the given arguments. - function bindCallbacks(o, callbacks, args) { - var prop = QUnit.objectType(o); - if (prop) { - if (QUnit.objectType(callbacks[prop]) === "function") { - return callbacks[prop].apply(callbacks, args); - } else { - return callbacks[prop]; // or undefined - } - } - } - - var callbacks = function () { - - // for string, boolean, number and null - function useStrictEquality(b, a) { - if (b instanceof a.constructor || a instanceof b.constructor) { - // to catch short annotaion VS 'new' annotation of a declaration - // e.g. var i = 1; - // var j = new Number(1); - return a == b; - } else { - return a === b; - } - } - - return { - "string": useStrictEquality, - "boolean": useStrictEquality, - "number": useStrictEquality, - "null": useStrictEquality, - "undefined": useStrictEquality, - - "nan": function (b) { - return isNaN(b); - }, - - "date": function (b, a) { - return QUnit.objectType(b) === "date" && a.valueOf() === b.valueOf(); - }, - - "regexp": function (b, a) { - return QUnit.objectType(b) === "regexp" && - a.source === b.source && // the regex itself - a.global === b.global && // and its modifers (gmi) ... - a.ignoreCase === b.ignoreCase && - a.multiline === b.multiline; - }, - - // - skip when the property is a method of an instance (OOP) - // - abort otherwise, - // initial === would have catch identical references anyway - "function": function () { - var caller = callers[callers.length - 1]; - return caller !== Object && - typeof caller !== "undefined"; - }, - - "array": function (b, a) { - var i, j, loop; - var len; - - // b could be an object literal here - if ( ! (QUnit.objectType(b) === "array")) { - return false; - } - - len = a.length; - if (len !== b.length) { // safe and faster - return false; - } - - //track reference to avoid circular references - parents.push(a); - for (i = 0; i < len; i++) { - loop = false; - for(j=0;j= 0) { - type = "array"; - } else { - type = typeof obj; - } - return type; - }, - separator:function() { - return this.multiline ? this.HTML ? '
                  ' : '\n' : this.HTML ? ' ' : ' '; - }, - indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing - if ( !this.multiline ) - return ''; - var chr = this.indentChar; - if ( this.HTML ) - chr = chr.replace(/\t/g,' ').replace(/ /g,' '); - return Array( this._depth_ + (extra||0) ).join(chr); - }, - up:function( a ) { - this._depth_ += a || 1; - }, - down:function( a ) { - this._depth_ -= a || 1; - }, - setParser:function( name, parser ) { - this.parsers[name] = parser; - }, - // The next 3 are exposed so you can use them - quote:quote, - literal:literal, - join:join, - // - _depth_: 1, - // This is the list of parsers, to modify them, use jsDump.setParser - parsers:{ - window: '[Window]', - document: '[Document]', - error:'[ERROR]', //when no parser is found, shouldn't happen - unknown: '[Unknown]', - 'null':'null', - undefined:'undefined', - 'function':function( fn ) { - var ret = 'function', - name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE - if ( name ) - ret += ' ' + name; - ret += '('; - - ret = [ ret, QUnit.jsDump.parse( fn, 'functionArgs' ), '){'].join(''); - return join( ret, QUnit.jsDump.parse(fn,'functionCode'), '}' ); - }, - array: array, - nodelist: array, - arguments: array, - object:function( map ) { - var ret = [ ]; - QUnit.jsDump.up(); - for ( var key in map ) - ret.push( QUnit.jsDump.parse(key,'key') + ': ' + QUnit.jsDump.parse(map[key]) ); - QUnit.jsDump.down(); - return join( '{', ret, '}' ); - }, - node:function( node ) { - var open = QUnit.jsDump.HTML ? '<' : '<', - close = QUnit.jsDump.HTML ? '>' : '>'; - - var tag = node.nodeName.toLowerCase(), - ret = open + tag; - - for ( var a in QUnit.jsDump.DOMAttrs ) { - var val = node[QUnit.jsDump.DOMAttrs[a]]; - if ( val ) - ret += ' ' + a + '=' + QUnit.jsDump.parse( val, 'attribute' ); - } - return ret + close + open + '/' + tag + close; - }, - functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function - var l = fn.length; - if ( !l ) return ''; - - var args = Array(l); - while ( l-- ) - args[l] = String.fromCharCode(97+l);//97 is 'a' - return ' ' + args.join(', ') + ' '; - }, - key:quote, //object calls it internally, the key part of an item in a map - functionCode:'[code]', //function calls it internally, it's the content of the function - attribute:quote, //node calls it internally, it's an html attribute value - string:quote, - date:quote, - regexp:literal, //regex - number:literal, - 'boolean':literal - }, - DOMAttrs:{//attributes to dump from nodes, name=>realName - id:'id', - name:'name', - 'class':'className' - }, - HTML:false,//if true, entities are escaped ( <, >, \t, space and \n ) - indentChar:' ',//indentation unit - multiline:true //if true, items in a collection, are separated by a \n, else just a space. - }; - - return jsDump; -})(); - -// from Sizzle.js -function getText( elems ) { - var ret = "", elem; - - for ( var i = 0; elems[i]; i++ ) { - elem = elems[i]; - - // Get the text from text nodes and CDATA nodes - if ( elem.nodeType === 3 || elem.nodeType === 4 ) { - ret += elem.nodeValue; - - // Traverse everything else, except comment nodes - } else if ( elem.nodeType !== 8 ) { - ret += getText( elem.childNodes ); - } - } - - return ret; -}; - -/* - * Javascript Diff Algorithm - * By John Resig (http://ejohn.org/) - * Modified by Chu Alan "sprite" - * - * Released under the MIT license. - * - * More Info: - * http://ejohn.org/projects/javascript-diff-algorithm/ - * - * Usage: QUnit.diff(expected, actual) - * - * QUnit.diff("the quick brown fox jumped over", "the quick fox jumps over") == "the quick brown fox jumped jumps over" - */ -QUnit.diff = (function() { - function diff(o, n){ - var ns = new Object(); - var os = new Object(); - - for (var i = 0; i < n.length; i++) { - if (ns[n[i]] == null) - ns[n[i]] = { - rows: new Array(), - o: null - }; - ns[n[i]].rows.push(i); - } - - for (var i = 0; i < o.length; i++) { - if (os[o[i]] == null) - os[o[i]] = { - rows: new Array(), - n: null - }; - os[o[i]].rows.push(i); - } - - for (var i in ns) { - if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) { - n[ns[i].rows[0]] = { - text: n[ns[i].rows[0]], - row: os[i].rows[0] - }; - o[os[i].rows[0]] = { - text: o[os[i].rows[0]], - row: ns[i].rows[0] - }; - } - } - - for (var i = 0; i < n.length - 1; i++) { - if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null && - n[i + 1] == o[n[i].row + 1]) { - n[i + 1] = { - text: n[i + 1], - row: n[i].row + 1 - }; - o[n[i].row + 1] = { - text: o[n[i].row + 1], - row: i + 1 - }; - } - } - - for (var i = n.length - 1; i > 0; i--) { - if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null && - n[i - 1] == o[n[i].row - 1]) { - n[i - 1] = { - text: n[i - 1], - row: n[i].row - 1 - }; - o[n[i].row - 1] = { - text: o[n[i].row - 1], - row: i - 1 - }; - } - } - - return { - o: o, - n: n - }; - } - - return function(o, n){ - o = o.replace(/\s+$/, ''); - n = n.replace(/\s+$/, ''); - var out = diff(o == "" ? [] : o.split(/\s+/), n == "" ? [] : n.split(/\s+/)); - - var str = ""; - - var oSpace = o.match(/\s+/g); - if (oSpace == null) { - oSpace = [" "]; - } - else { - oSpace.push(" "); - } - var nSpace = n.match(/\s+/g); - if (nSpace == null) { - nSpace = [" "]; - } - else { - nSpace.push(" "); - } - - if (out.n.length == 0) { - for (var i = 0; i < out.o.length; i++) { - str += '' + out.o[i] + oSpace[i] + ""; - } - } - else { - if (out.n[0].text == null) { - for (n = 0; n < out.o.length && out.o[n].text == null; n++) { - str += '' + out.o[n] + oSpace[n] + ""; - } - } - - for (var i = 0; i < out.n.length; i++) { - if (out.n[i].text == null) { - str += '' + out.n[i] + nSpace[i] + ""; - } - else { - var pre = ""; - - for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++) { - pre += '' + out.o[n] + oSpace[n] + ""; - } - str += " " + out.n[i].text + nSpace[i] + pre; - } - } - } - - return str; - }; -})(); - -})(this); diff --git a/www/include/jslibs/jquery-validation/test/rules.js b/www/include/jslibs/jquery-validation/test/rules.js deleted file mode 100644 index 3eaa377fae..0000000000 --- a/www/include/jslibs/jquery-validation/test/rules.js +++ /dev/null @@ -1,267 +0,0 @@ -module("rules"); - -test("rules() - internal - input", function() { - var element = $('#firstname'); - var v = $('#testForm1').validate(); - same( element.rules(), { required: true, minlength: 2 } ); -}); - -test("rules(), ignore method:false", function() { - var element = $('#firstnamec'); - var v = $('#testForm1clean').validate({ - rules: { - firstname: { required: false, minlength: 2 } - } - }); - same( element.rules(), { minlength: 2 } ); -}); - -test("rules() - internal - select", function() { - var element = $('#meal'); - var v = $('#testForm3').validate(); - same( element.rules(), {required: true} ); -}); - -test("rules() - external", function() { - var element = $('#text1'); - var v = $('#form').validate({ - rules: { - action: {date: true, min: 5} - } - }); - same( element.rules(), {date: true, min: 5} ); -}); - -test("rules() - external - complete form", function() { - expect(1); - - var methods = $.extend({}, $.validator.methods); - var messages = $.extend({}, $.validator.messages); - - $.validator.addMethod("verifyTest", function() { - ok( true, "method executed" ); - return true; - }); - var v = $('#form').validate({ - rules: { - action: {verifyTest: true} - } - }); - v.form(); - - $.validator.methods = methods; - $.validator.messages = messages; -}); - -test("rules() - internal - input", function() { - var element = $('#form8input'); - var v = $('#testForm8').validate(); - same( element.rules(), {required: true, number: true, rangelength: [2, 8]}); -}); - -test("rules(), merge min/max to range, minlength/maxlength to rangelength", function() { - jQuery.validator.autoCreateRanges = true; - var v = $("#testForm1clean").validate({ - rules: { - firstname: { - min: 5, - max: 12 - }, - lastname: { - minlength: 2, - maxlength: 8 - } - } - }); - same( $("#firstnamec").rules(), {range: [5, 12]}); - - same( $("#lastnamec").rules(), {rangelength: [2, 8]} ); - jQuery.validator.autoCreateRanges = false; -}); - -test("rules(), gurantee that required is at front", function() { - $("#testForm1").validate(); - var v = $("#v2").validate(); - $("#subformRequired").validate(); - function flatRules(element) { - var result = []; - jQuery.each($(element).rules(), function(key, value) { result.push(key) }); - return result.join(" "); - } - equals( "required minlength", flatRules("#firstname") ); - equals( "required maxlength minlength", flatRules("#v2-i6") ); - equals( "required maxlength", flatRules("#co_name") ); - - QUnit.reset(); - jQuery.validator.autoCreateRanges = true; - v = $("#v2").validate(); - equals( "required rangelength", flatRules("#v2-i6") ); - - $("#subformRequired").validate({ - rules: { - co_name: "required" - } - }); - $("#co_name").removeClass(); - equals( "required maxlength", flatRules("#co_name") ); - jQuery.validator.autoCreateRanges = false; -}); - -test("rules(), evaluate dynamic parameters", function() { - expect(2); - var v = $("#testForm1clean").validate({ - rules: { - firstname: { - min: function(element) { - equals( $("#firstnamec")[0], element ); - return 12; - } - } - } - }); - same( $("#firstnamec").rules(), {min:12}); -}); - -test("rules(), class and attribute combinations", function() { - - $.validator.addMethod("customMethod1", function() { - return false; - }, ""); - $.validator.addMethod("customMethod2", function() { - return false; - }, ""); - var v = $("#v2").validate({ - rules: { - 'v2-i7': { - required: true, - minlength: 2, - customMethod: true - } - } - }); - same( $("#v2-i1").rules(), { required: true }); - same( $("#v2-i2").rules(), { required: true, email: true }); - same( $("#v2-i3").rules(), { url: true }); - same( $("#v2-i4").rules(), { required: true, minlength: 2 }); - same( $("#v2-i5").rules(), { required: true, minlength: 2, maxlength: 5, customMethod1: "123" }); - jQuery.validator.autoCreateRanges = true; - same( $("#v2-i5").rules(), { required: true, customMethod1: "123", rangelength: [2, 5] }); - same( $("#v2-i6").rules(), { required: true, customMethod2: true, rangelength: [2, 5] }); - jQuery.validator.autoCreateRanges = false; - same( $("#v2-i7").rules(), { required: true, minlength: 2, customMethod: true }); - - delete $.validator.methods.customMethod1; - delete $.validator.messages.customMethod1; - delete $.validator.methods.customMethod2; - delete $.validator.messages.customMethod2; -}); - -test("rules(), dependency checks", function() { - var v = $("#testForm1clean").validate({ - rules: { - firstname: { - min: { - param: 5, - depends: function(el) { - return /^a/.test($(el).val()); - } - } - }, - lastname: { - max: { - param: 12 - }, - email: { - depends: function() { return true; } - } - } - } - }); - - var rules = $("#firstnamec").rules(); - equals( 0, v.objectLength(rules) ); - - $("#firstnamec").val('ab'); - same( $("#firstnamec").rules(), {min:5}); - - same( $("#lastnamec").rules(), {max:12, email:true}); -}); - -test("rules(), add and remove", function() { - $.validator.addMethod("customMethod1", function() { - return false; - }, ""); - $("#v2").validate(); - var removedAttrs = $("#v2-i5").removeClass("required").removeAttrs("minlength maxlength"); - same( $("#v2-i5").rules(), { customMethod1: "123" }); - - $("#v2-i5").addClass("required").attr(removedAttrs); - same( $("#v2-i5").rules(), { required: true, minlength: 2, maxlength: 5, customMethod1: "123" }); - - $("#v2-i5").addClass("email").attr({min: 5}); - same( $("#v2-i5").rules(), { required: true, email: true, minlength: 2, maxlength: 5, min: 5, customMethod1: "123" }); - - $("#v2-i5").removeClass("required email").removeAttrs("minlength maxlength customMethod1 min"); - same( $("#v2-i5").rules(), {}); - - delete $.validator.methods.customMethod1; - delete $.validator.messages.customMethod1; -}); - -test("rules(), add and remove static rules", function() { - var v = $("#testForm1clean").validate({ - rules: { - firstname: "required date" - } - }); - same( $("#firstnamec").rules(), { required: true, date: true } ); - - $("#firstnamec").rules("remove", "date") - same( $("#firstnamec").rules(), { required: true } ); - $("#firstnamec").rules("add", "email"); - same( $("#firstnamec").rules(), { required: true, email: true } ); - - $("#firstnamec").rules("remove", "required"); - same( $("#firstnamec").rules(), { email: true } ); - - same( $("#firstnamec").rules("remove"), { email: true } ); - same( $("#firstnamec").rules(), { } ); - - $("#firstnamec").rules("add", "required email"); - same( $("#firstnamec").rules(), { required: true, email: true } ); - - - same( $("#lastnamec").rules(), {} ); - $("#lastnamec").rules("add", "required"); - $("#lastnamec").rules("add", { - minlength: 2 - }); - same( $("#lastnamec").rules(), { required: true, minlength: 2 } ); - - - var removedRules = $("#lastnamec").rules("remove", "required email"); - same( $("#lastnamec").rules(), { minlength: 2 } ); - $("#lastnamec").rules("add", removedRules); - same( $("#lastnamec").rules(), { required: true, minlength: 2 } ); -}); - -test("rules(), add messages", function() { - $("#firstnamec").attr("title", null); - var v = $("#testForm1clean").validate({ - rules: { - firstname: "required" - } - }); - $("#testForm1clean").valid(); - $("#firstnamec").valid(); - same( v.settings.messages.firstname, undefined ); - - $("#firstnamec").rules("add", { - messages: { - required: "required" - } - }); - - $("#firstnamec").valid(); - same( v.errorList[0] && v.errorList[0].message, "required" ); -}); diff --git a/www/include/jslibs/jquery-validation/test/selects/index.html b/www/include/jslibs/jquery-validation/test/selects/index.html deleted file mode 100644 index 8bc8f8f83a..0000000000 --- a/www/include/jslibs/jquery-validation/test/selects/index.html +++ /dev/null @@ -1,444 +0,0 @@ - - - - - -Fun with jQuery - - - - - - - - - - - -Mission: - - -CODE - - - - - -
                  - - - - - - - - - diff --git a/www/include/jslibs/jquery-validation/test/tabs.html b/www/include/jslibs/jquery-validation/test/tabs.html deleted file mode 100644 index 2fb8a00a85..0000000000 --- a/www/include/jslibs/jquery-validation/test/tabs.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - -Test for jQuery validate() plugin - - - - - - - - - - - - - - - - - -
                  - -
                  - -
                  -
                  - A simple comment form with submit validation and default messages -

                  - - -

                  - - -

                  -

                  - - -

                  -

                  - - -

                  -
                  - -
                  -
                  - Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. - Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. -
                  -
                  - Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. - Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. - Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. -
                  -
                  -

                  - -

                  - -
                  - - - \ No newline at end of file diff --git a/www/include/jslibs/jquery-validation/test/test.js b/www/include/jslibs/jquery-validation/test/test.js deleted file mode 100644 index 2ec0968c59..0000000000 --- a/www/include/jslibs/jquery-validation/test/test.js +++ /dev/null @@ -1,1121 +0,0 @@ -jQuery.validator.defaults.debug = true; - -module("validator"); - -test("Constructor", function() { - var v1 = $("#testForm1").validate(); - var v2 = $("#testForm1").validate(); - equals( v1, v2, "Calling validate() multiple times must return the same validator instance" ); - equals( v1.elements().length, 3, "validator elements" ); -}); - -test("validate() without elements, with non-form elements", function() { - $("#doesn'texist").validate(); -}); - -test("valid() plugin method", function() { - var form = $("#userForm"); - form.validate(); - ok ( !form.valid(), "Form isn't valid yet" ); - var input = $("#username"); - ok ( !input.valid(), "Input isn't valid either" ); - input.val("Hello world"); - ok ( form.valid(), "Form is now valid" ); - ok ( input.valid(), "Input is valid, too" ); -}); - -test("valid() plugin method", function() { - var form = $("#testForm1"); - form.validate(); - var inputs = form.find("input"); - ok( !inputs.valid(), "all invalid" ); - inputs.not(":first").val("ok"); - ok( !inputs.valid(), "just one invalid" ); - inputs.val("ok"); - ok( inputs.valid(), "all valid" ); -}); - -test("valid() plugin method, special handling for checkable groups", function() { - // rule is defined on first checkbox, must apply to others, too - var checkable = $("#checkable2"); - ok( !checkable.valid(), "must be invalid, not checked yet" ); - checkable.attr("checked", true); - ok( checkable.valid(), "valid, is now checked" ); - checkable.attr("checked", false); - ok( !checkable.valid(), "invalid again" ); - $("#checkable3").attr("checked", true); - ok( checkable.valid(), "valid, third box is checked" ); -}); - -test("addMethod", function() { - expect( 3 ); - $.validator.addMethod("hi", function(value) { - return value == "hi"; - }, "hi me too"); - var method = $.validator.methods.hi, - e = $('#text1')[0]; - ok( !method(e.value, e), "Invalid" ); - e.value = "hi"; - ok( method(e.value, e), "Invalid" ); - ok( jQuery.validator.messages.hi == "hi me too", "Check custom message" ); -}); - -test("addMethod2", function() { - expect( 4 ); - $.validator.addMethod("complicatedPassword", function(value, element, param) { - return this.optional(element) || /\D/.test(value) && /\d/.test(value) - }, "Your password must contain at least one number and one letter"); - var v = jQuery("#form").validate({ - rules: { - action: { complicatedPassword: true } - } - }); - var rule = $.validator.methods.complicatedPassword, - e = $('#text1')[0]; - e.value = ""; - ok( v.element(e) === undefined, "Rule is optional, valid" ); - equals( 0, v.size() ); - e.value = "ko"; - ok( !v.element(e), "Invalid, doesn't contain one of the required characters" ); - e.value = "ko1"; - ok( v.element(e) ); -}); - -test("form(): simple", function() { - expect( 2 ); - var form = $('#testForm1')[0]; - var v = $(form).validate(); - ok( !v.form(), 'Invalid form' ); - $('#firstname').val("hi"); - $('#lastname').val("hi"); - ok( v.form(), 'Valid form' ); -}); - -test("form(): checkboxes: min/required", function() { - expect( 3 ); - var form = $('#testForm6')[0]; - var v = $(form).validate(); - ok( !v.form(), 'Invalid form' ); - $('#form6check1').attr("checked", true); - ok( !v.form(), 'Invalid form' ); - $('#form6check2').attr("checked", true); - ok( v.form(), 'Valid form' ); -}); -test("form(): selects: min/required", function() { - expect( 3 ); - var form = $('#testForm7')[0]; - var v = $(form).validate(); - ok( !v.form(), 'Invalid form' ); - $("#optionxa").attr("selected", true); - ok( !v.form(), 'Invalid form' ); - $("#optionxb").attr("selected", true); - ok( v.form(), 'Valid form' ); -}); - -test("form(): with equalTo", function() { - expect( 2 ); - var form = $('#testForm5')[0]; - var v = $(form).validate(); - ok( !v.form(), 'Invalid form' ); - $('#x1, #x2').val("hi"); - ok( v.form(), 'Valid form' ); -}); - -test("check(): simple", function() { - expect( 3 ); - var element = $('#firstname')[0]; - var v = $('#testForm1').validate(); - ok( v.size() == 0, 'No errors yet' ); - v.check(element); - ok( v.size() == 1, 'error exists' ); - v.errorList = []; - $('#firstname').val("hi"); - v.check(element); - ok( !v.size() == 1, 'No more errors' ); -}); - -test("hide(): input", function() { - expect( 3 ); - var errorLabel = $('#errorFirstname'); - var element = $('#firstname')[0]; - element.value ="bla"; - var v = $('#testForm1').validate(); - errorLabel.show(); - ok( errorLabel.is(":visible"), "Error label visible before validation" ); - ok( v.element(element) ); - ok( errorLabel.is(":hidden"), "Error label not visible after validation" ); -}); - -test("hide(): radio", function() { - expect( 2 ); - var errorLabel = $('#agreeLabel'); - var element = $('#agb')[0]; - element.checked = true; - var v = $('#testForm2').validate({ errorClass: "xerror" }); - errorLabel.show(); - ok( errorLabel.is(":visible"), "Error label visible after validation" ); - v.element(element); - ok( errorLabel.is(":hidden"), "Error label not visible after hiding it" ); -}); - -test("hide(): errorWrapper", function() { - expect(2); - var errorLabel = $('#errorWrapper'); - var element = $('#meal')[0]; - element.selectedIndex = 1; - - errorLabel.show(); - ok( errorLabel.is(":visible"), "Error label visible after validation" ); - var v = $('#testForm3').validate({ wrapper: "li", errorLabelContainer: $("#errorContainer") }); - v.element(element); - ok( errorLabel.is(":hidden"), "Error label not visible after hiding it" ); -}); - -test("hide(): container", function() { - expect(4); - var errorLabel = $('#errorContainer'); - var element = $('#testForm3')[0]; - var v = $('#testForm3').validate({ errorWrapper: "li", errorContainer: $("#errorContainer") }); - v.form(); - ok( errorLabel.is(":visible"), "Error label visible after validation" ); - $('#meal')[0].selectedIndex = 1; - v.form(); - ok( errorLabel.is(":hidden"), "Error label not visible after hiding it" ); - $('#meal')[0].selectedIndex = -1; - v.element("#meal"); - ok( errorLabel.is(":visible"), "Error label visible after validation" ); - $('#meal')[0].selectedIndex = 1; - v.element("#meal"); - ok( errorLabel.is(":hidden"), "Error label not visible after hiding it" ); -}); - -test("valid()", function() { - expect(4); - var errorList = [{name:"meal",message:"foo", element:$("#meal")[0]}]; - var v = $('#testForm3').validate(); - ok( v.valid(), "No errors, must be valid" ); - v.errorList = errorList; - ok( !v.valid(), "One error, must be invalid" ); - QUnit.reset(); - v = $('#testForm3').validate({ submitHandler: function() { - ok( false, "Submit handler was called" ); - }}); - ok( v.valid(), "No errors, must be valid and returning true, even with the submit handler" ); - v.errorList = errorList; - ok( !v.valid(), "One error, must be invalid, no call to submit handler" ); -}); - -test("submitHandler keeps submitting button", function() { - $("#userForm").validate({ - debug: true, - submitHandler: function(form) { - // dunno how to test this better; this tests the implementation that uses a hidden input - var hidden = $(form).find("input:hidden")[0]; - same(hidden.value, button.value) - same(hidden.name, button.name) - } - }); - $("#username").val("bla"); - var button = $("#userForm :submit")[0] - $(button).triggerHandler("click"); - $("#userForm").submit(); -}); - -test("showErrors()", function() { - expect( 4 ); - var errorLabel = $('#errorFirstname').hide(); - var element = $('#firstname')[0]; - var v = $('#testForm1').validate(); - ok( errorLabel.is(":hidden") ); - equals( 0, $("label.error[for=lastname]").size() ); - v.showErrors({"firstname": "required", "lastname": "bla"}); - equals( true, errorLabel.is(":visible") ); - equals( true, $("label.error[for=lastname]").is(":visible") ); -}); - -test("showErrors(), allow empty string and null as default message", function() { - $("#userForm").validate({ - rules: { - username: { - required: true, - minlength: 3 - } - }, - messages: { - username: { - required: "", - minlength: "too short" - } - } - }); - ok( !$("#username").valid() ); - equals( "", $("label.error[for=username]").text() ); - - $("#username").val("ab"); - ok( !$("#username").valid() ); - equals( "too short", $("label.error[for=username]").text() ); - - $("#username").val("abc"); - ok( $("#username").valid() ); - ok( $("label.error[for=username]").is(":hidden") ); -}); - -test("showErrors() - external messages", function() { - expect( 4 ); - var methods = $.extend({}, $.validator.methods); - var messages = $.extend({}, $.validator.messages); - $.validator.addMethod("foo", function() { return false; }); - $.validator.addMethod("bar", function() { return false; }); - equals( 0, $("#testForm4 label.error[for=f1]").size() ); - equals( 0, $("#testForm4 label.error[for=f2]").size() ); - var form = $('#testForm4')[0]; - var v = $(form).validate({ - messages: { - f1: "Please!", - f2: "Wohoo!" - } - }); - v.form(); - equals( $("#testForm4 label.error[for=f1]").text(), "Please!" ); - equals( $("#testForm4 label.error[for=f2]").text(), "Wohoo!" ); - - $.validator.methods = methods; - $.validator.messages = messages; -}); - -test("showErrors() - custom handler", function() { - expect(5); - var v = $('#testForm1').validate({ - showErrors: function(errorMap, errorList) { - equals( v, this ); - equals( v.errorList, errorList ); - equals( v.errorMap, errorMap ); - equals( "buga", errorMap.firstname ); - equals( "buga", errorMap.lastname ); - } - }); - v.form(); -}); - -test("option: (un)highlight, default", function() { - $("#testForm1").validate(); - var e = $("#firstname") - ok( !e.hasClass("error") ); - ok( !e.hasClass("valid") ); - e.valid() - ok( e.hasClass("error") ); - ok( !e.hasClass("valid") ); - e.val("hithere").valid() - ok( !e.hasClass("error") ); - ok( e.hasClass("valid") ); -}); - -test("option: (un)highlight, nothing", function() { - expect(3); - $("#testForm1").validate({ - highlight: false, - unhighlight: false - }); - var e = $("#firstname") - ok( !e.hasClass("error") ); - e.valid() - ok( !e.hasClass("error") ); - e.valid() - ok( !e.hasClass("error") ); -}); - -test("option: (un)highlight, custom", function() { - expect(5); - $("#testForm1clean").validate({ - highlight: function(element, errorClass) { - equals( "invalid", errorClass ); - $(element).hide(); - }, - unhighlight: function(element, errorClass) { - equals( "invalid", errorClass ) - $(element).show(); - }, - errorClass: "invalid", - rules: { - firstname: "required" - } - }); - var e = $("#firstnamec") - ok( e.is(":visible") ); - e.valid() - ok( !e.is(":visible") ); - e.val("hithere").valid() - ok( e.is(":visible") ); -}); - -test("option: (un)highlight, custom2", function() { - expect(6); - $("#testForm1").validate({ - highlight: function(element, errorClass) { - $(element).addClass(errorClass); - $(element.form).find("label[for=" + element.id + "]").addClass(errorClass); - }, - unhighlight: function(element, errorClass) { - $(element).removeClass(errorClass); - $(element.form).find("label[for=" + element.id + "]").removeClass(errorClass); - }, - errorClass: "invalid" - }); - var e = $("#firstname") - var l = $("#errorFirstname") - ok( !e.is(".invalid") ); - ok( !l.is(".invalid") ); - e.valid() - ok( e.is(".invalid") ); - ok( l.is(".invalid") ); - e.val("hithere").valid() - ok( !e.is(".invalid") ); - ok( !l.is(".invalid") ); -}); - -test("option: focusCleanup default false", function() { - var form = $("#userForm") - form.validate(); - form.valid(); - ok( form.is(":has(label.error[for=username]:visible)")); - $("#username").focus(); - ok( form.is(":has(label.error[for=username]:visible)")); -}); - -test("option: focusCleanup true", function() { - var form = $("#userForm") - form.validate({ - focusCleanup: true - }); - form.valid(); - ok( form.is(":has(label.error[for=username]:visible)") ); - $("#username").focus().trigger("focusin"); - ok( !form.is(":has(label.error[for=username]:visible)") ); -}); - -test("option: focusCleanup with wrapper", function() { - var form = $("#userForm") - form.validate({ - focusCleanup: true, - wrapper: "span" - }); - form.valid(); - ok( form.is(":has(span:visible:has(label.error[for=username]))") ); - $("#username").focus().trigger("focusin"); - ok( !form.is(":has(span:visible:has(label.error[for=username]))") ); -}); - -test("elements() order", function() { - var container = $("#orderContainer"); - var v = $("#elementsOrder").validate({ - errorLabelContainer: container, - wrap: "li" - }); - deepEqual( v.elements().map(function() { - return $(this).attr("id"); - }).get(), ["order1", "order2", "order3", "order4", "order5", "order6"], "elements must be in document order" ); - v.form(); - deepEqual( container.children().map(function() { - return $(this).attr("for"); - }).get(), ["order1", "order2", "order3", "order4", "order5", "order6"], "labels in error container must be in document order" ); -}); - -test("defaultMessage(), empty title is ignored", function() { - var v = $("#userForm").validate(); - equals( "This field is required.", v.defaultMessage($("#username")[0], "required") ); -}); - -test("formatAndAdd", function() { - expect(4); - var v = $("#form").validate(); - var fakeElement = { form: $("#form")[0], name: "bar" }; - v.formatAndAdd(fakeElement, {method: "maxlength", parameters: 2}) - equals( "Please enter no more than 2 characters.", v.errorList[0].message ); - equals( "bar", v.errorList[0].element.name ); - - v.formatAndAdd(fakeElement, {method: "range", parameters:[2,4]}) - equals( "Please enter a value between 2 and 4.", v.errorList[1].message ); - - v.formatAndAdd(fakeElement, {method: "range", parameters:[0,4]}) - equals( "Please enter a value between 0 and 4.", v.errorList[2].message ); -}); - -test("formatAndAdd2", function() { - expect(3); - var v = $("#form").validate(); - var fakeElement = { form: $("#form")[0], name: "bar" }; - jQuery.validator.messages.test1 = function(param, element) { - equals( v, this ); - equals( 0, param ); - return "element " + element.name + " is not valid"; - }; - v.formatAndAdd(fakeElement, {method: "test1", parameters: 0}) - equals( "element bar is not valid", v.errorList[0].message ); -}); - -test("formatAndAdd, auto detect substitution string", function() { - var v = $("#testForm1clean").validate({ - rules: { - firstname: { - required: true, - rangelength: [5, 10] - } - }, - messages: { - firstname: { - rangelength: "at least ${0}, up to {1}" - } - } - }); - $("#firstnamec").val("abc"); - v.form(); - equals( "at least 5, up to 10", v.errorList[0].message ); -}) - -test("error containers, simple", function() { - expect(14); - var container = $("#simplecontainer"); - var v = $("#form").validate({ - errorLabelContainer: container, - showErrors: function() { - container.find("h3").html( jQuery.validator.format("There are {0} errors in your form.", this.size()) ); - this.defaultShowErrors(); - } - }); - - v.prepareForm(); - ok( v.valid(), "form is valid" ); - equals( 0, container.find("label").length, "There should be no error labels" ); - equals( "", container.find("h3").html() ); - - v.prepareForm(); - v.errorList = [{message:"bar", element: {name:"foo"}}, {message: "necessary", element: {name:"required"}}]; - ok( !v.valid(), "form is not valid after adding errors manually" ); - v.showErrors(); - equals( container.find("label").length, 2, "There should be two error labels" ); - ok( container.is(":visible"), "Check that the container is visible" ); - container.find("label").each(function() { - ok( $(this).is(":visible"), "Check that each label is visible" ); - }); - equals( "There are 2 errors in your form.", container.find("h3").html() ); - - v.prepareForm(); - ok( v.valid(), "form is valid after a reset" ); - v.showErrors(); - equals( container.find("label").length, 2, "There should still be two error labels" ); - ok( container.is(":hidden"), "Check that the container is hidden" ); - container.find("label").each(function() { - ok( $(this).is(":hidden"), "Check that each label is hidden" ); - }); -}); - -test("error containers, with labelcontainer I", function() { - expect(16); - var container = $("#container"), - labelcontainer = $("#labelcontainer"); - var v = $("#form").validate({ - errorContainer: container, - errorLabelContainer: labelcontainer, - wrapper: "li" - }); - - ok( v.valid(), "form is valid" ); - equals( 0, container.find("label").length, "There should be no error labels in the container" ); - equals( 0, labelcontainer.find("label").length, "There should be no error labels in the labelcontainer" ); - equals( 0, labelcontainer.find("li").length, "There should be no lis labels in the labelcontainer" ); - - v.errorList = [{message:"bar", element: {name:"foo"}}, {name: "required", message: "necessary", element: {name:"required"}}]; - ok( !v.valid(), "form is not valid after adding errors manually" ); - v.showErrors(); - equals( 0, container.find("label").length, "There should be no error label in the container" ); - equals( 2, labelcontainer.find("label").length, "There should be two error labels in the labelcontainer" ); - equals( 2, labelcontainer.find("li").length, "There should be two error lis in the labelcontainer" ); - ok( container.is(":visible"), "Check that the container is visible" ); - ok( labelcontainer.is(":visible"), "Check that the labelcontainer is visible" ); - var labels = labelcontainer.find("label").each(function() { - ok( $(this).is(":visible"), "Check that each label is visible1" ); - equals( "li", $(this).parent()[0].tagName.toLowerCase(), "Check that each label is wrapped in an li" ); - ok( $(this).parent("li").is(":visible"), "Check that each parent li is visible" ); - }); -}); - -test("errorcontainer, show/hide only on submit", function() { - expect(14); - var container = $("#container"); - var labelContainer = $("#labelcontainer"); - var v = $("#testForm1").bind("invalid-form.validate", function() { - ok( true, "invalid-form event triggered called" ); - }).validate({ - errorContainer: container, - errorLabelContainer: labelContainer, - showErrors: function() { - container.html( jQuery.validator.format("There are {0} errors in your form.", this.numberOfInvalids()) ); - ok( true, "showErrors called" ); - this.defaultShowErrors(); - } - }); - equals( "", container.html(), "must be empty" ); - equals( "", labelContainer.html(), "must be empty" ); - // validate whole form, both showErrors and invalidHandler must be called once - // preferably invalidHandler first, showErrors second - ok( !v.form(), "invalid form" ); - equals( 2, labelContainer.find("label").length ); - equals( "There are 2 errors in your form.", container.html() ); - ok( labelContainer.is(":visible"), "must be visible" ); - ok( container.is(":visible"), "must be visible" ); - - $("#firstname").val("hix").keyup(); - $("#testForm1").triggerHandler("keyup", [jQuery.event.fix({ type: "keyup", target: $("#firstname")[0] })]); - equals( 1, labelContainer.find("label:visible").length ); - equals( "There are 1 errors in your form.", container.html() ); - - $("#lastname").val("abc"); - ok( v.form(), "Form now valid, trigger showErrors but not invalid-form" ); -}); - -test("option invalidHandler", function() { - expect(1); - var v = $("#testForm1clean").validate({ - invalidHandler: function() { - ok( true, "invalid-form event triggered called" ); - start(); - } - }); - $("#usernamec").val("asdf").rules("add", { required: true, remote: "users.php" }); - stop(); - $("#testForm1clean").submit(); -}); - -test("findByName()", function() { - deepEqual( new $.validator({}, document.getElementById("form")).findByName(document.getElementById("radio1").name).get(), $("#form").find("[name=radio1]").get() ); -}); - -test("focusInvalid()", function() { - expect(1); - var inputs = $("#testForm1 input").focus(function() { - equals( inputs[0], this, "focused first element" ); - }); - var v = $("#testForm1").validate(); - v.form(); - v.focusInvalid(); -}); - -test("findLastActive()", function() { - expect(3); - var v = $("#testForm1").validate(); - ok( !v.findLastActive() ); - v.form(); - v.focusInvalid(); - equals( v.findLastActive(), $("#firstname")[0] ); - var lastActive = $("#lastname").trigger("focus").trigger("focusin")[0]; - equals( v.lastActive, lastActive ); -}); - -test("validating multiple checkboxes with 'required'", function() { - expect(3); - var checkboxes = $("#form input[name=check3]").attr("checked", false); - equal(checkboxes.size(), 5); - var v = $("#form").validate({ - rules: { - check3: "required" - } - }); - v.form(); - equal(v.size(), 1); - checkboxes.filter(":last").attr("checked", true); - v.form(); - equal(v.size(), 0); -}); - -test("dynamic form", function() { - var counter = 0; - function add() { - $("").appendTo("#testForm2"); - } - function errors(expected, message) { - equals(expected, v.size(), message ); - } - var v = $("#testForm2").validate(); - v.form(); - errors(1); - add(); - v.form(); - errors(2); - add(); - v.form(); - errors(3); - $("#testForm2 input[name=list1]").remove(); - v.form(); - errors(2); - add(); - v.form(); - errors(3); - $("#testForm2 input[name^=list]").remove(); - v.form(); - errors(1); - $("#agb").attr("disabled", true); - v.form(); - errors(0); - $("#agb").attr("disabled", false); - v.form(); - errors(1); -}); - -test("idOrName()", function() { - expect(4); - var v = $("#testForm1").validate(); - equals( "form8input", v.idOrName( $("#form8input")[0] ) ); - equals( "check", v.idOrName( $("#form6check1")[0] ) ); - equals( "agree", v.idOrName( $("#agb")[0] ) ); - equals( "button", v.idOrName( $("#form :button")[0] ) ); -}); - -test("resetForm()", function() { - function errors(expected, message) { - equals(expected, v.size(), message ); - } - var v = $("#testForm1").validate(); - v.form(); - errors(2); - $("#firstname").val("hiy"); - v.resetForm(); - errors(0); - equals("", $("#firstname").val(), "form plugin is included, therefor resetForm must also reset inputs, not only errors"); -}); - -test("message from title", function() { - var v = $("#withTitle").validate(); - v.checkForm(); - equals(v.errorList[0].message, "fromtitle", "title not used"); -}); - -test("ignoreTitle", function() { - var v = $("#withTitle").validate({ignoreTitle:true}); - v.checkForm(); - equals(v.errorList[0].message, $.validator.messages["required"], "title used when it should have been ignored"); -}); - -test("ajaxSubmit", function() { - expect(1); - stop(); - $("#user").val("Peter"); - $("#password").val("foobar"); - jQuery("#signupForm").validate({ - submitHandler: function(form) { - jQuery(form).ajaxSubmit({ - success: function(response) { - equals("Hi Peter, welcome back.", response); - start(); - } - }); - } - }); - jQuery("#signupForm").triggerHandler("submit"); -}); - - -module("misc"); - -test("success option", function() { - expect(7); - equals( "", $("#firstname").val() ); - var v = $("#testForm1").validate({ - success: "valid" - }); - var label = $("#testForm1 label"); - ok( label.is(".error") ); - ok( !label.is(".valid") ); - v.form(); - ok( label.is(".error") ); - ok( !label.is(".valid") ); - $("#firstname").val("hi"); - v.form(); - ok( label.is(".error") ); - ok( label.is(".valid") ); -}); - -test("success option2", function() { - expect(5); - equals( "", $("#firstname").val() ); - var v = $("#testForm1").validate({ - success: "valid" - }); - var label = $("#testForm1 label"); - ok( label.is(".error") ); - ok( !label.is(".valid") ); - $("#firstname").val("hi"); - v.form(); - ok( label.is(".error") ); - ok( label.is(".valid") ); -}); - -test("success option3", function() { - expect(5); - equals( "", $("#firstname").val() ); - $("#errorFirstname").remove(); - var v = $("#testForm1").validate({ - success: "valid" - }); - equals( 0, $("#testForm1 label").size() ); - $("#firstname").val("hi"); - v.form(); - var labels = $("#testForm1 label"); - equals( 3, labels.size() ); - ok( labels.eq(0).is(".valid") ); - ok( !labels.eq(1).is(".valid") ); -}); - -test("successlist", function() { - var v = $("#form").validate({ success: "xyz" }); - v.form(); - equals(0, v.successList.length); -}); - -test("success isn't called for optional elements", function() { - expect(4); - equals( "", $("#firstname").removeClass().val() ); - $("#something").remove(); - $("#lastname").remove(); - $("#errorFirstname").remove(); - var v = $("#testForm1").validate({ - success: function() { - ok( false, "don't call success for optional elements!" ); - }, - rules: { - firstname: "email" - } - }); - equals( 0, $("#testForm1 label").size() ); - v.form(); - equals( 0, $("#testForm1 label").size() ); - $("#firstname").valid(); - equals( 0, $("#testForm1 label").size() ); -}); - -test("all rules are evaluated even if one returns a dependency-mistmatch", function() { - expect(6); - equals( "", $("#firstname").removeClass().val() ); - $("#lastname").remove(); - $("#errorFirstname").remove(); - $.validator.addMethod("custom1", function() { - ok( true, "custom method must be evaluated" ); - return true; - }, ""); - var v = $("#testForm1").validate({ - rules: { - firstname: {email:true, custom1: true} - } - }); - equals( 0, $("#testForm1 label").size() ); - v.form(); - equals( 0, $("#testForm1 label").size() ); - $("#firstname").valid(); - equals( 0, $("#testForm1 label").size() ); - - delete $.validator.methods.custom1; - delete $.validator.messages.custom1; -}); - -test("messages", function() { - var m = jQuery.validator.messages; - equals( "Please enter no more than 0 characters.", m.maxlength(0) ); - equals( "Please enter at least 1 characters.", m.minlength(1) ); - equals( "Please enter a value between 1 and 2 characters long.", m.rangelength([1, 2]) ); - equals( "Please enter a value less than or equal to 1.", m.max(1) ); - equals( "Please enter a value greater than or equal to 0.", m.min(0) ); - equals( "Please enter a value between 1 and 2.", m.range([1, 2]) ); -}); - -test("jQuery.validator.format", function() { - equals( "Please enter a value between 0 and 1.", jQuery.validator.format("Please enter a value between {0} and {1}.", 0, 1) ); - equals( "0 is too fast! Enter a value smaller then 0 and at least -15", jQuery.validator.format("{0} is too fast! Enter a value smaller then {0} and at least {1}", 0, -15) ); - var template = jQuery.validator.format("{0} is too fast! Enter a value smaller then {0} and at least {1}"); - equals( "0 is too fast! Enter a value smaller then 0 and at least -15", template(0, -15) ); - template = jQuery.validator.format("Please enter a value between {0} and {1}."); - equals( "Please enter a value between 1 and 2.", template([1, 2]) ); -}); - -test("option: ignore", function() { - var v = $("#testForm1").validate({ - ignore: "[name=lastname]" - }); - v.form(); - equals( 1, v.size() ); -}); - -test("option: subformRequired", function() { - jQuery.validator.addMethod("billingRequired", function(value, element) { - if ($("#bill_to_co").is(":checked")) - return $(element).parents("#subform").length; - return !this.optional(element); - }, ""); - var v = $("#subformRequired").validate(); - v.form(); - equals( 1, v.size() ); - $("#bill_to_co").attr("checked", false); - v.form(); - equals( 2, v.size() ); - - delete $.validator.methods.billingRequired; - delete $.validator.messages.billingRequired; -}); - -module("expressions"); - -test("expression: :blank", function() { - var e = $("#lastname")[0]; - equals( 1, $(e).filter(":blank").length ); - e.value = " "; - equals( 1, $(e).filter(":blank").length ); - e.value = " " - equals( 1, $(e).filter(":blank").length ); - e.value= " a "; - equals( 0, $(e).filter(":blank").length ); -}); - -test("expression: :filled", function() { - var e = $("#lastname")[0]; - equals( 0, $(e).filter(":filled").length ); - e.value = " "; - equals( 0, $(e).filter(":filled").length ); - e.value = " " - equals( 0, $(e).filter(":filled").length ); - e.value= " a "; - equals( 1, $(e).filter(":filled").length ); -}); - -test("expression: :unchecked", function() { - var e = $("#check2")[0]; - equals( 1, $(e).filter(":unchecked").length ); - e.checked = true; - equals( 0, $(e).filter(":unchecked").length ); - e.checked = false; - equals( 1, $(e).filter(":unchecked").length ); -}); - -module("events"); - -test("validate on blur", function() { - function errors(expected, message) { - equals(v.size(), expected, message ); - } - function labels(expected) { - equals(v.errors().filter(":visible").size(), expected); - } - function blur(target) { - target.trigger("blur").trigger("focusout"); - } - $("#errorFirstname").hide(); - var e = $("#firstname"); - var v = $("#testForm1").validate(); - $("#something").val(""); - blur(e); - errors(0, "No value yet, required is skipped on blur"); - labels(0); - e.val("h"); - blur(e); - errors(1, "Required was ignored, but as something was entered, check other rules, minlength isn't met"); - labels(1); - e.val("hh"); - blur(e); - errors(0, "All is fine"); - labels(0); - e.val(""); - v.form(); - errors(3, "Submit checks all rules, both fields invalid"); - labels(3); - blur(e); - errors(1, "Blurring the field results in emptying the error list first, then checking the invalid field: its still invalid, don't remove the error" ); - labels(3); - e.val("h"); - blur(e); - errors(1, "Entering a single character fulfills required, but not minlength: 2, still invalid"); - labels(3); - e.val("hh"); - blur(e); - errors(0, "Both required and minlength are met, no errors left"); - labels(2); -}); - -test("validate on keyup", function() { - function errors(expected, message) { - equals(expected, v.size(), message ); - } - function keyup(target) { - target.trigger("keyup"); - } - var e = $("#firstname"); - var v = $("#testForm1").validate(); - keyup(e); - errors(0, "No value, no errors"); - e.val("a"); - keyup(e); - errors(0, "Value, but not invalid"); - e.val(""); - v.form(); - errors(2, "Both invalid"); - keyup(e); - errors(1, "Only one field validated, still invalid"); - e.val("hh"); - keyup(e); - errors(0, "Not invalid anymore"); - e.val("h"); - keyup(e); - errors(1, "Field didn't loose focus, so validate again, invalid"); - e.val("hh"); - keyup(e); - errors(0, "Valid"); -}); - -test("validate on not keyup, only blur", function() { - function errors(expected, message) { - equals(expected, v.size(), message ); - } - var e = $("#firstname"); - var v = $("#testForm1").validate({ - onkeyup: false - }); - errors(0); - e.val("a"); - e.trigger("keyup"); - e.keyup(); - errors(0); - e.trigger("blur").trigger("focusout"); - errors(1); -}); - -test("validate on keyup and blur", function() { - function errors(expected, message) { - equals(expected, v.size(), message ); - } - var e = $("#firstname"); - var v = $("#testForm1").validate(); - errors(0); - e.val("a"); - e.trigger("keyup"); - errors(0); - e.trigger("blur").trigger("focusout"); - errors(1); -}); - -test("validate email on keyup and blur", function() { - function errors(expected, message) { - equals(expected, v.size(), message ); - } - var e = $("#firstname"); - var v = $("#testForm1").validate(); - v.form(); - errors(2); - e.val("a"); - e.trigger("keyup"); - errors(1); - e.val("aa"); - e.trigger("keyup"); - errors(0); -}); - -test("validate checkbox on click", function() { - function errors(expected, message) { - equals(expected, v.size(), message ); - } - function trigger(element) { - element.click(); - // triggered click event screws up checked-state in 1.4 - element.valid(); - } - var e = $("#check2"); - var v = $("#form").validate({ - rules: { - check2: "required" - } - }); - trigger(e); - errors(0); - trigger(e); - equals( false, v.form() ); - errors(1); - trigger(e); - errors(0); - trigger(e); - errors(1); -}); - -test("validate multiple checkbox on click", function() { - function errors(expected, message) { - equals(expected, v.size(), message ); - } - function trigger(element) { - element.click(); - // triggered click event screws up checked-state in 1.4 - element.valid(); - } - var e1 = $("#check1").attr("checked", false); - var e2 = $("#check1b"); - var v = $("#form").validate({ - rules: { - check: { - required: true, - minlength: 2 - } - } - }); - trigger(e1); - trigger(e2); - errors(0); - trigger(e2); - equals( false, v.form() ); - errors(1); - trigger(e2); - errors(0); - trigger(e2); - errors(1); -}); - -test("validate radio on click", function() { - function errors(expected, message) { - equals(expected, v.size(), message ); - } - function trigger(element) { - element.click(); - // triggered click event screws up checked-state in 1.4 - element.valid(); - } - var e1 = $("#radio1"); - var e2 = $("#radio1a"); - var v = $("#form").validate({ - rules: { - radio1: "required" - } - }); - errors(0); - equals( false, v.form() ); - errors(1); - trigger(e2); - errors(0); - trigger(e1); - errors(0); -}); - -module("ajax"); - -test("check the serverside script works", function() { - stop(); - $.getJSON("users.php", {value: 'asd'}, function(response) { - ok( response, "yet available" ); - $.getJSON("users.php", {username: "asdf"}, function(response) { - ok( !response, "already taken" ); - start(); - }); - }); -}); - -test("check the serverside script works2", function() { - stop(); - $.getJSON("users2.php", {value: 'asd'}, function(response) { - ok( response, "yet available" ); - $.getJSON("users.php", {username: "asdf"}, function(response) { - ok( !response, "asdf is already taken, please try something else" ); - start(); - }); - }); -}); diff --git a/www/include/jslibs/jquery-validation/test/users.php b/www/include/jslibs/jquery-validation/test/users.php deleted file mode 100644 index d79d1869ef..0000000000 --- a/www/include/jslibs/jquery-validation/test/users.php +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/www/include/jslibs/jquery-validation/test/users2.php b/www/include/jslibs/jquery-validation/test/users2.php deleted file mode 100644 index d787f763ce..0000000000 --- a/www/include/jslibs/jquery-validation/test/users2.php +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/www/include/jslibs/jquery-validation/todo b/www/include/jslibs/jquery-validation/todo deleted file mode 100644 index 702a4965f2..0000000000 --- a/www/include/jslibs/jquery-validation/todo +++ /dev/null @@ -1,172 +0,0 @@ -1.3 ---- - -- checkout datejs.com for a proper date implementation -> complete but very heavy parser, currently overkill - -- rewrite required-method to use jQuery's extended val() on selects[/radios/checkboxes] -- consider a field-validator object that encapsulates a single element and all methods working on it -- export API browser -- add example/support for other URL schemes like svn://.... -- document min/max/range methods for checkboxes/selects - -/** - * Return false, if the element is - * - * - some kind of text input and its value is too short - * - * - a set of checkboxes has not enough boxes checked - * - * - a select and has not enough options selected - * - * Works with all kind of text inputs, checkboxes and select. - * - * @example - * @desc Declares an optional input element with at least 5 characters (or none at all). - * - * @example - * @desc Declares an input element that must have at least 5 characters. - * - * @example
                  - * Spam - * - * - * - * - *
                  - * @desc Specifies a group of checkboxes. To validate, at least two checkboxes must be selected. - * - * @param Number min - * @name jQuery.validator.methods.minLength - * @type Boolean - * @cat Plugins/Validate/Methods - */ - - /** - * Return false, if the element is - * - * - some kind of text input and its value is too short or too long - * - * - a set of checkboxes has not enough or too many boxes checked - * - * - a select and has not enough or too many options selected - * - * Works with all kind of text inputs, checkboxes and selects. - * - * @example - * @desc Declares an optional input element with at least 3 and at most 5 characters (or none at all). - * - * @example - * @desc Declares an input element that must have at least 3 and at most 5 characters. - * - * @example - * @desc Specifies a select that must have at least two but no more than three options selected. - * - * @param Array min/max - * @name jQuery.validator.methods.rangeLength - * @type Boolean - * @cat Plugins/Validate/Methods - */ - -- document numberOfInvalids and hideErrors - -/** - * Returns the number of invalid elements in the form. - * - * @example $("#myform").validate({ - * showErrors: function() { - * $("#summary").html("Your form contains " + this.numberOfInvalids() + " errors, see details below."); - * this.defaultShowErrors(); - * } - * }); - * @desc Specifies a custom showErrors callback that updates the number of invalid elements each - * time the form or a single element is validated. - * - * @name jQuery.validator.prototype.numberOfInvalids - * @type Number - */ - - /** - * Hides all error messages in this form. - * - * @example var validator = $("#myform").validate(); - * $(".cancel").click(function() { - * validator.hideErrors(); - * }); - * @desc Specifies a custom showErrors callback that updates the number of invalid elements each - * time the form or a single element is validated. - * - * @name jQuery.validator.prototype.hideErrors - */ - -- remove deprecated methods - -- css references - - http://test5.caribmedia.com/CSS/Secrets/members/michiel/floating-forms.html - - http://paularmstrongdesigns.com/projects/awesomeform/ - - http://dnevnikeklektika.com/uni-form/ - -- consider validation on page load, disabling required-checks -- completely rework showErrors: manually settings errors is currently extremely flawed and utterly useless, eg. errors disappear if some other validation is triggered -- add custom event to remote validation for adding more parameters - -- document focusInvalid() -- document validation lifecycle: setup (add event handlers), run validation (prepare form, validate elements, display errors/submit form) - -> show where the user can hook in via callbacks - -- AND depedency: specify multiple expressions as an array - -- add custom events for form and elements instead of more callbacks (additional options/callbacks) - - beforeValidation: Callback, called before doing any validation - - beforeSubmit: Callback, called before submitting the form (default submit or calling submitHandler, if specified) - -- animations!! -- ajax validation: - - in combination with autocomplete (mustmatch company name, fill out address details, validate required) - - validate zip code in comparison to address, if match and state is missing, fill out state -- strong password check/integration: http://phiras.wordpress.com/2007/04/08/password-strength-meter-a-jquery-plugin/ - -- stop firefox password manager to popup before validation - check mozilla bug tracker? - -- overload addMethod with a Option-variant: -$.validator.addMethod({ - name: "custom", - message: "blablabla", - parameteres: false, - handler: function() { ... } -}); - - Examples: - - wordpress comment form, make it a drop-in method - - ajaxForm() integration - - ajaxSubmit with rules-option, more/less options to ajaxSubmit - - watermark integration http://digitalbush.com/projects/watermark-input-plugin - - datepicker integration - - timepicker integration ( http://labs.perifer.se/timedatepicker/ ) - - integration with CakePHP ( https://trac.cakephp.org/ticket/2359 ) - - integration with tabs: http://www.netix.sk/forms/test.html - - intergration with rich-text-editors (FCKEditor, Codepress) - http://www.fyneworks.com/jquery/FCKEditor/ - -2.0 ---- -- attachValidation, removeValidation, validate (with UI), valid (without UI) -- (re)move current addMethod implementation -- move rules plugin option -- move metadata support -- make validate method chainable - -> provide an accessor for the validator if necessary at all -- move a few default methods to additionals, eg. dateXXX, creditcard, definitely accept \ No newline at end of file diff --git a/www/include/jslibs/jquery.validate.js b/www/include/jslibs/jquery.validate.js deleted file mode 100644 index 17e83c9f4c..0000000000 --- a/www/include/jslibs/jquery.validate.js +++ /dev/null @@ -1,1146 +0,0 @@ -/* - * jQuery validation plug-in 1.7 - * - * http://bassistance.de/jquery-plugins/jquery-plugin-validation/ - * http://docs.jquery.com/Plugins/Validation - * - * Copyright (c) 2006 - 2008 Jörn Zaefferer - * - * $Id: jquery.validate.js 6403 2009-06-17 14:27:16Z joern.zaefferer $ - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - */ - -(function($) { - -$.extend($.fn, { - // http://docs.jquery.com/Plugins/Validation/validate - validate: function( options ) { - - // if nothing is selected, return nothing; can't chain anyway - if (!this.length) { - options && options.debug && window.console && console.warn( "nothing selected, can't validate, returning nothing" ); - return; - } - - // check if a validator for this form was already created - var validator = $.data(this[0], 'validator'); - if ( validator ) { - return validator; - } - - validator = new $.validator( options, this[0] ); - $.data(this[0], 'validator', validator); - - if ( validator.settings.onsubmit ) { - - // allow suppresing validation by adding a cancel class to the submit button - this.find("input, button").filter(".cancel").click(function() { - validator.cancelSubmit = true; - }); - - // when a submitHandler is used, capture the submitting button - if (validator.settings.submitHandler) { - this.find("input, button").filter(":submit").click(function() { - validator.submitButton = this; - }); - } - - // validate the form on submit - this.submit( function( event ) { - if ( validator.settings.debug ) - // prevent form submit to be able to see console output - event.preventDefault(); - - function handle() { - if ( validator.settings.submitHandler ) { - if (validator.submitButton) { - // insert a hidden input as a replacement for the missing submit button - var hidden = $("").attr("name", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm); - } - validator.settings.submitHandler.call( validator, validator.currentForm ); - if (validator.submitButton) { - // and clean up afterwards; thanks to no-block-scope, hidden can be referenced - hidden.remove(); - } - return false; - } - return true; - } - - // prevent submit for invalid forms or custom submit handlers - if ( validator.cancelSubmit ) { - validator.cancelSubmit = false; - return handle(); - } - if ( validator.form() ) { - if ( validator.pendingRequest ) { - validator.formSubmitted = true; - return false; - } - return handle(); - } else { - validator.focusInvalid(); - return false; - } - }); - } - - return validator; - }, - // http://docs.jquery.com/Plugins/Validation/valid - valid: function() { - if ( $(this[0]).is('form')) { - return this.validate().form(); - } else { - var valid = true; - var validator = $(this[0].form).validate(); - this.each(function() { - valid &= validator.element(this); - }); - return valid; - } - }, - // attributes: space seperated list of attributes to retrieve and remove - removeAttrs: function(attributes) { - var result = {}, - $element = this; - $.each(attributes.split(/\s/), function(index, value) { - result[value] = $element.attr(value); - $element.removeAttr(value); - }); - return result; - }, - // http://docs.jquery.com/Plugins/Validation/rules - rules: function(command, argument) { - var element = this[0]; - - if (command) { - var settings = $.data(element.form, 'validator').settings; - var staticRules = settings.rules; - var existingRules = $.validator.staticRules(element); - switch(command) { - case "add": - $.extend(existingRules, $.validator.normalizeRule(argument)); - staticRules[element.name] = existingRules; - if (argument.messages) - settings.messages[element.name] = $.extend( settings.messages[element.name], argument.messages ); - break; - case "remove": - if (!argument) { - delete staticRules[element.name]; - return existingRules; - } - var filtered = {}; - $.each(argument.split(/\s/), function(index, method) { - filtered[method] = existingRules[method]; - delete existingRules[method]; - }); - return filtered; - } - } - - var data = $.validator.normalizeRules( - $.extend( - {}, - $.validator.metadataRules(element), - $.validator.classRules(element), - $.validator.attributeRules(element), - $.validator.staticRules(element) - ), element); - - // make sure required is at front - if (data.required) { - var param = data.required; - delete data.required; - data = $.extend({required: param}, data); - } - - return data; - } -}); - -// Custom selectors -$.extend($.expr[":"], { - // http://docs.jquery.com/Plugins/Validation/blank - blank: function(a) {return !$.trim("" + a.value);}, - // http://docs.jquery.com/Plugins/Validation/filled - filled: function(a) {return !!$.trim("" + a.value);}, - // http://docs.jquery.com/Plugins/Validation/unchecked - unchecked: function(a) {return !a.checked;} -}); - -// constructor for validator -$.validator = function( options, form ) { - this.settings = $.extend( true, {}, $.validator.defaults, options ); - this.currentForm = form; - this.init(); -}; - -$.validator.format = function(source, params) { - if ( arguments.length == 1 ) - return function() { - var args = $.makeArray(arguments); - args.unshift(source); - return $.validator.format.apply( this, args ); - }; - if ( arguments.length > 2 && params.constructor != Array ) { - params = $.makeArray(arguments).slice(1); - } - if ( params.constructor != Array ) { - params = [ params ]; - } - $.each(params, function(i, n) { - source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n); - }); - return source; -}; - -$.extend($.validator, { - - defaults: { - messages: {}, - groups: {}, - rules: {}, - errorClass: "error", - validClass: "valid", - errorElement: "label", - focusInvalid: true, - errorContainer: $( [] ), - errorLabelContainer: $( [] ), - onsubmit: true, - ignore: [], - ignoreTitle: false, - onfocusin: function(element) { - this.lastActive = element; - - // hide error label and remove error class on focus if enabled - if ( this.settings.focusCleanup && !this.blockFocusCleanup ) { - this.settings.unhighlight && this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass ); - this.errorsFor(element).hide(); - } - }, - onfocusout: function(element) { - if ( !this.checkable(element) && (element.name in this.submitted || !this.optional(element)) ) { - this.element(element); - } - }, - onkeyup: function(element) { - if ( element.name in this.submitted || element == this.lastElement ) { - this.element(element); - } - }, - onclick: function(element) { - // click on selects, radiobuttons and checkboxes - if ( element.name in this.submitted ) - this.element(element); - // or option elements, check parent select in that case - else if (element.parentNode.name in this.submitted) - this.element(element.parentNode); - }, - highlight: function( element, errorClass, validClass ) { - $(element).addClass(errorClass).removeClass(validClass); - }, - unhighlight: function( element, errorClass, validClass ) { - $(element).removeClass(errorClass).addClass(validClass); - } - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/setDefaults - setDefaults: function(settings) { - $.extend( $.validator.defaults, settings ); - }, - - messages: { - required: "This field is required.", - remote: "Please fix this field.", - email: "Please enter a valid email address.", - url: "Please enter a valid URL.", - date: "Please enter a valid date.", - dateISO: "Please enter a valid date (ISO).", - number: "Please enter a valid number.", - digits: "Please enter only digits.", - creditcard: "Please enter a valid credit card number.", - equalTo: "Please enter the same value again.", - accept: "Please enter a value with a valid extension.", - maxlength: $.validator.format("Please enter no more than {0} characters."), - minlength: $.validator.format("Please enter at least {0} characters."), - rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."), - range: $.validator.format("Please enter a value between {0} and {1}."), - max: $.validator.format("Please enter a value less than or equal to {0}."), - min: $.validator.format("Please enter a value greater than or equal to {0}.") - }, - - autoCreateRanges: false, - - prototype: { - - init: function() { - this.labelContainer = $(this.settings.errorLabelContainer); - this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm); - this.containers = $(this.settings.errorContainer).add( this.settings.errorLabelContainer ); - this.submitted = {}; - this.valueCache = {}; - this.pendingRequest = 0; - this.pending = {}; - this.invalid = {}; - this.reset(); - - var groups = (this.groups = {}); - $.each(this.settings.groups, function(key, value) { - $.each(value.split(/\s/), function(index, name) { - groups[name] = key; - }); - }); - var rules = this.settings.rules; - $.each(rules, function(key, value) { - rules[key] = $.validator.normalizeRule(value); - }); - - function delegate(event) { - var validator = $.data(this[0].form, "validator"), - eventType = "on" + event.type.replace(/^validate/, ""); - validator.settings[eventType] && validator.settings[eventType].call(validator, this[0] ); - } - $(this.currentForm) - .validateDelegate(":text, :password, :file, select, textarea", "focusin focusout keyup", delegate) - .validateDelegate(":radio, :checkbox, select, option", "click", delegate); - - if (this.settings.invalidHandler) - $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler); - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/form - form: function() { - this.checkForm(); - $.extend(this.submitted, this.errorMap); - this.invalid = $.extend({}, this.errorMap); - if (!this.valid()) - $(this.currentForm).triggerHandler("invalid-form", [this]); - this.showErrors(); - return this.valid(); - }, - - checkForm: function() { - this.prepareForm(); - for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) { - this.check( elements[i] ); - } - return this.valid(); - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/element - element: function( element ) { - element = this.clean( element ); - this.lastElement = element; - this.prepareElement( element ); - this.currentElements = $(element); - var result = this.check( element ); - if ( result ) { - delete this.invalid[element.name]; - } else { - this.invalid[element.name] = true; - } - if ( !this.numberOfInvalids() ) { - // Hide error containers on last error - this.toHide = this.toHide.add( this.containers ); - } - this.showErrors(); - return result; - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/showErrors - showErrors: function(errors) { - if(errors) { - // add items to error list and map - $.extend( this.errorMap, errors ); - this.errorList = []; - for ( var name in errors ) { - this.errorList.push({ - message: errors[name], - element: this.findByName(name)[0] - }); - } - // remove items from success list - this.successList = $.grep( this.successList, function(element) { - return !(element.name in errors); - }); - } - this.settings.showErrors - ? this.settings.showErrors.call( this, this.errorMap, this.errorList ) - : this.defaultShowErrors(); - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/resetForm - resetForm: function() { - if ( $.fn.resetForm ) - $( this.currentForm ).resetForm(); - this.submitted = {}; - this.prepareForm(); - this.hideErrors(); - this.elements().removeClass( this.settings.errorClass ); - }, - - numberOfInvalids: function() { - return this.objectLength(this.invalid); - }, - - objectLength: function( obj ) { - var count = 0; - for ( var i in obj ) - count++; - return count; - }, - - hideErrors: function() { - this.addWrapper( this.toHide ).hide(); - }, - - valid: function() { - return this.size() == 0; - }, - - size: function() { - return this.errorList.length; - }, - - focusInvalid: function() { - if( this.settings.focusInvalid ) { - try { - $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []) - .filter(":visible") - .focus() - // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find - .trigger("focusin"); - } catch(e) { - // ignore IE throwing errors when focusing hidden elements - } - } - }, - - findLastActive: function() { - var lastActive = this.lastActive; - return lastActive && $.grep(this.errorList, function(n) { - return n.element.name == lastActive.name; - }).length == 1 && lastActive; - }, - - elements: function() { - var validator = this, - rulesCache = {}; - - // select all valid inputs inside the form (no submit or reset buttons) - // workaround $Query([]).add until http://dev.jquery.com/ticket/2114 is solved - return $([]).add(this.currentForm.elements) - .filter(":input") - .not(":submit, :reset, :image, [disabled]") - .not( this.settings.ignore ) - .filter(function() { - !this.name && validator.settings.debug && window.console && console.error( "%o has no name assigned", this); - - // select only the first element for each name, and only those with rules specified - if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) - return false; - - rulesCache[this.name] = true; - return true; - }); - }, - - clean: function( selector ) { - return $( selector )[0]; - }, - - errors: function() { - return $( this.settings.errorElement + "." + this.settings.errorClass, this.errorContext ); - }, - - reset: function() { - this.successList = []; - this.errorList = []; - this.errorMap = {}; - this.toShow = $([]); - this.toHide = $([]); - this.currentElements = $([]); - }, - - prepareForm: function() { - this.reset(); - this.toHide = this.errors().add( this.containers ); - }, - - prepareElement: function( element ) { - this.reset(); - this.toHide = this.errorsFor(element); - }, - - check: function( element ) { - element = this.clean( element ); - - // if radio/checkbox, validate first element in group instead - if (this.checkable(element)) { - element = this.findByName( element.name )[0]; - } - - var rules = $(element).rules(); - var dependencyMismatch = false; - for( method in rules ) { - var rule = { method: method, parameters: rules[method] }; - try { - var result = $.validator.methods[method].call( this, element.value.replace(/\r/g, ""), element, rule.parameters ); - - // if a method indicates that the field is optional and therefore valid, - // don't mark it as valid when there are no other rules - if ( result == "dependency-mismatch" ) { - dependencyMismatch = true; - continue; - } - dependencyMismatch = false; - - if ( result == "pending" ) { - this.toHide = this.toHide.not( this.errorsFor(element) ); - return; - } - - if( !result ) { - this.formatAndAdd( element, rule ); - return false; - } - } catch(e) { - this.settings.debug && window.console && console.log("exception occured when checking element " + element.id - + ", check the '" + rule.method + "' method", e); - throw e; - } - } - if (dependencyMismatch) - return; - if ( this.objectLength(rules) ) - this.successList.push(element); - return true; - }, - - // return the custom message for the given element and validation method - // specified in the element's "messages" metadata - customMetaMessage: function(element, method) { - if (!$.metadata) - return; - - var meta = this.settings.meta - ? $(element).metadata()[this.settings.meta] - : $(element).metadata(); - - return meta && meta.messages && meta.messages[method]; - }, - - // return the custom message for the given element name and validation method - customMessage: function( name, method ) { - var m = this.settings.messages[name]; - return m && (m.constructor == String - ? m - : m[method]); - }, - - // return the first defined argument, allowing empty strings - findDefined: function() { - for(var i = 0; i < arguments.length; i++) { - if (arguments[i] !== undefined) - return arguments[i]; - } - return undefined; - }, - - defaultMessage: function( element, method) { - return this.findDefined( - this.customMessage( element.name, method ), - this.customMetaMessage( element, method ), - // title is never undefined, so handle empty string as undefined - !this.settings.ignoreTitle && element.title || undefined, - $.validator.messages[method], - "Warning: No message defined for " + element.name + "" - ); - }, - - formatAndAdd: function( element, rule ) { - var message = this.defaultMessage( element, rule.method ), - theregex = /\$?\{(\d+)\}/g; - if ( typeof message == "function" ) { - message = message.call(this, rule.parameters, element); - } else if (theregex.test(message)) { - message = jQuery.format(message.replace(theregex, '{$1}'), rule.parameters); - } - this.errorList.push({ - message: message, - element: element - }); - - this.errorMap[element.name] = message; - this.submitted[element.name] = message; - }, - - addWrapper: function(toToggle) { - if ( this.settings.wrapper ) - toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) ); - return toToggle; - }, - - defaultShowErrors: function() { - for ( var i = 0; this.errorList[i]; i++ ) { - var error = this.errorList[i]; - this.settings.highlight && this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass ); - this.showLabel( error.element, error.message ); - } - if( this.errorList.length ) { - this.toShow = this.toShow.add( this.containers ); - } - if (this.settings.success) { - for ( var i = 0; this.successList[i]; i++ ) { - this.showLabel( this.successList[i] ); - } - } - if (this.settings.unhighlight) { - for ( var i = 0, elements = this.validElements(); elements[i]; i++ ) { - this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass ); - } - } - this.toHide = this.toHide.not( this.toShow ); - this.hideErrors(); - this.addWrapper( this.toShow ).show(); - }, - - validElements: function() { - return this.currentElements.not(this.invalidElements()); - }, - - invalidElements: function() { - return $(this.errorList).map(function() { - return this.element; - }); - }, - - showLabel: function(element, message) { - var label = this.errorsFor( element ); - if ( label.length ) { - // refresh error/success class - label.removeClass().addClass( this.settings.errorClass ); - - // check if we have a generated label, replace the message then - label.attr("generated") && label.html(message); - } else { - // create label - label = $("<" + this.settings.errorElement + "/>") - .attr({"for": this.idOrName(element), generated: true}) - .addClass(this.settings.errorClass) - .html(message || ""); - if ( this.settings.wrapper ) { - // make sure the element is visible, even in IE - // actually showing the wrapped element is handled elsewhere - label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent(); - } - if ( !this.labelContainer.append(label).length ) - this.settings.errorPlacement - ? this.settings.errorPlacement(label, $(element) ) - : label.insertAfter(element); - } - if ( !message && this.settings.success ) { - label.text(""); - typeof this.settings.success == "string" - ? label.addClass( this.settings.success ) - : this.settings.success( label ); - } - this.toShow = this.toShow.add(label); - }, - - errorsFor: function(element) { - var name = this.idOrName(element); - return this.errors().filter(function() { - return $(this).attr('for') == name; - }); - }, - - idOrName: function(element) { - return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name); - }, - - checkable: function( element ) { - return /radio|checkbox/i.test(element.type); - }, - - findByName: function( name ) { - // select by name and filter by form for performance over form.find("[name=...]") - var form = this.currentForm; - return $(document.getElementsByName(name)).map(function(index, element) { - return element.form == form && element.name == name && element || null; - }); - }, - - getLength: function(value, element) { - switch( element.nodeName.toLowerCase() ) { - case 'select': - return $("option:selected", element).length; - case 'input': - if( this.checkable( element) ) - return this.findByName(element.name).filter(':checked').length; - } - return value.length; - }, - - depend: function(param, element) { - return this.dependTypes[typeof param] - ? this.dependTypes[typeof param](param, element) - : true; - }, - - dependTypes: { - "boolean": function(param, element) { - return param; - }, - "string": function(param, element) { - return !!$(param, element.form).length; - }, - "function": function(param, element) { - return param(element); - } - }, - - optional: function(element) { - return !$.validator.methods.required.call(this, $.trim(element.value), element) && "dependency-mismatch"; - }, - - startRequest: function(element) { - if (!this.pending[element.name]) { - this.pendingRequest++; - this.pending[element.name] = true; - } - }, - - stopRequest: function(element, valid) { - this.pendingRequest--; - // sometimes synchronization fails, make sure pendingRequest is never < 0 - if (this.pendingRequest < 0) - this.pendingRequest = 0; - delete this.pending[element.name]; - if ( valid && this.pendingRequest == 0 && this.formSubmitted && this.form() ) { - $(this.currentForm).submit(); - this.formSubmitted = false; - } else if (!valid && this.pendingRequest == 0 && this.formSubmitted) { - $(this.currentForm).triggerHandler("invalid-form", [this]); - this.formSubmitted = false; - } - }, - - previousValue: function(element) { - return $.data(element, "previousValue") || $.data(element, "previousValue", { - old: null, - valid: true, - message: this.defaultMessage( element, "remote" ) - }); - } - - }, - - classRuleSettings: { - required: {required: true}, - email: {email: true}, - url: {url: true}, - date: {date: true}, - dateISO: {dateISO: true}, - dateDE: {dateDE: true}, - number: {number: true}, - numberDE: {numberDE: true}, - digits: {digits: true}, - creditcard: {creditcard: true} - }, - - addClassRules: function(className, rules) { - className.constructor == String ? - this.classRuleSettings[className] = rules : - $.extend(this.classRuleSettings, className); - }, - - classRules: function(element) { - var rules = {}; - var classes = $(element).attr('class'); - classes && $.each(classes.split(' '), function() { - if (this in $.validator.classRuleSettings) { - $.extend(rules, $.validator.classRuleSettings[this]); - } - }); - return rules; - }, - - attributeRules: function(element) { - var rules = {}; - var $element = $(element); - - for (method in $.validator.methods) { - var value = $element.attr(method); - if (value) { - rules[method] = value; - } - } - - // maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs - if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) { - delete rules.maxlength; - } - - return rules; - }, - - metadataRules: function(element) { - if (!$.metadata) return {}; - - var meta = $.data(element.form, 'validator').settings.meta; - return meta ? - $(element).metadata()[meta] : - $(element).metadata(); - }, - - staticRules: function(element) { - var rules = {}; - var validator = $.data(element.form, 'validator'); - if (validator.settings.rules) { - rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {}; - } - return rules; - }, - - normalizeRules: function(rules, element) { - // handle dependency check - $.each(rules, function(prop, val) { - // ignore rule when param is explicitly false, eg. required:false - if (val === false) { - delete rules[prop]; - return; - } - if (val.param || val.depends) { - var keepRule = true; - switch (typeof val.depends) { - case "string": - keepRule = !!$(val.depends, element.form).length; - break; - case "function": - keepRule = val.depends.call(element, element); - break; - } - if (keepRule) { - rules[prop] = val.param !== undefined ? val.param : true; - } else { - delete rules[prop]; - } - } - }); - - // evaluate parameters - $.each(rules, function(rule, parameter) { - rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter; - }); - - // clean number parameters - $.each(['minlength', 'maxlength', 'min', 'max'], function() { - if (rules[this]) { - rules[this] = Number(rules[this]); - } - }); - $.each(['rangelength', 'range'], function() { - if (rules[this]) { - rules[this] = [Number(rules[this][0]), Number(rules[this][1])]; - } - }); - - if ($.validator.autoCreateRanges) { - // auto-create ranges - if (rules.min && rules.max) { - rules.range = [rules.min, rules.max]; - delete rules.min; - delete rules.max; - } - if (rules.minlength && rules.maxlength) { - rules.rangelength = [rules.minlength, rules.maxlength]; - delete rules.minlength; - delete rules.maxlength; - } - } - - // To support custom messages in metadata ignore rule methods titled "messages" - if (rules.messages) { - delete rules.messages; - } - - return rules; - }, - - // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true} - normalizeRule: function(data) { - if( typeof data == "string" ) { - var transformed = {}; - $.each(data.split(/\s/), function() { - transformed[this] = true; - }); - data = transformed; - } - return data; - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/addMethod - addMethod: function(name, method, message) { - $.validator.methods[name] = method; - $.validator.messages[name] = message != undefined ? message : $.validator.messages[name]; - if (method.length < 3) { - $.validator.addClassRules(name, $.validator.normalizeRule(name)); - } - }, - - methods: { - - // http://docs.jquery.com/Plugins/Validation/Methods/required - required: function(value, element, param) { - // check if dependency is met - if ( !this.depend(param, element) ) - return "dependency-mismatch"; - switch( element.nodeName.toLowerCase() ) { - case 'select': - // could be an array for select-multiple or a string, both are fine this way - var val = $(element).val(); - return val && val.length > 0; - case 'input': - if ( this.checkable(element) ) - return this.getLength(value, element) > 0; - default: - return $.trim(value).length > 0; - } - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/remote - remote: function(value, element, param) { - if ( this.optional(element) ) - return "dependency-mismatch"; - - var previous = this.previousValue(element); - if (!this.settings.messages[element.name] ) - this.settings.messages[element.name] = {}; - previous.originalMessage = this.settings.messages[element.name].remote; - this.settings.messages[element.name].remote = previous.message; - - param = typeof param == "string" && {url:param} || param; - - if ( previous.old !== value ) { - previous.old = value; - var validator = this; - this.startRequest(element); - var data = {}; - data[element.name] = value; - $.ajax($.extend(true, { - url: param, - mode: "abort", - port: "validate" + element.name, - dataType: "json", - data: data, - success: function(response) { - validator.settings.messages[element.name].remote = previous.originalMessage; - var valid = response === true; - if ( valid ) { - var submitted = validator.formSubmitted; - validator.prepareElement(element); - validator.formSubmitted = submitted; - validator.successList.push(element); - validator.showErrors(); - } else { - var errors = {}; - var message = (previous.message = response || validator.defaultMessage( element, "remote" )); - errors[element.name] = $.isFunction(message) ? message(value) : message; - validator.showErrors(errors); - } - previous.valid = valid; - validator.stopRequest(element, valid); - } - }, param)); - return "pending"; - } else if( this.pending[element.name] ) { - return "pending"; - } - return previous.valid; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/minlength - minlength: function(value, element, param) { - return this.optional(element) || this.getLength($.trim(value), element) >= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/maxlength - maxlength: function(value, element, param) { - return this.optional(element) || this.getLength($.trim(value), element) <= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/rangelength - rangelength: function(value, element, param) { - var length = this.getLength($.trim(value), element); - return this.optional(element) || ( length >= param[0] && length <= param[1] ); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/min - min: function( value, element, param ) { - return this.optional(element) || value >= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/max - max: function( value, element, param ) { - return this.optional(element) || value <= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/range - range: function( value, element, param ) { - return this.optional(element) || ( value >= param[0] && value <= param[1] ); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/email - email: function(value, element) { - // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/ - return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/url - url: function(value, element) { - // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/ - return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/date - date: function(value, element) { - return this.optional(element) || !/Invalid|NaN/.test(new Date(value)); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/dateISO - dateISO: function(value, element) { - return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/number - number: function(value, element) { - return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/digits - digits: function(value, element) { - return this.optional(element) || /^\d+$/.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/creditcard - // based on http://en.wikipedia.org/wiki/Luhn - creditcard: function(value, element) { - if ( this.optional(element) ) - return "dependency-mismatch"; - // accept only digits and dashes - if (/[^0-9-]+/.test(value)) - return false; - var nCheck = 0, - nDigit = 0, - bEven = false; - - value = value.replace(/\D/g, ""); - - for (var n = value.length - 1; n >= 0; n--) { - var cDigit = value.charAt(n); - var nDigit = parseInt(cDigit, 10); - if (bEven) { - if ((nDigit *= 2) > 9) - nDigit -= 9; - } - nCheck += nDigit; - bEven = !bEven; - } - - return (nCheck % 10) == 0; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/accept - accept: function(value, element, param) { - param = typeof param == "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif"; - return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i")); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/equalTo - equalTo: function(value, element, param) { - // bind to the blur event of the target in order to revalidate whenever the target field is updated - // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead - var target = $(param).unbind(".validate-equalTo").bind("blur.validate-equalTo", function() { - $(element).valid(); - }); - return value == target.val(); - } - - } - -}); - -// deprecated, use $.validator.format instead -$.format = $.validator.format; - -})(jQuery); - -// ajax mode: abort -// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); -// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() -;(function($) { - var ajax = $.ajax; - var pendingRequests = {}; - $.ajax = function(settings) { - // create settings for compatibility with ajaxSetup - settings = $.extend(settings, $.extend({}, $.ajaxSettings, settings)); - var port = settings.port; - if (settings.mode == "abort") { - if ( pendingRequests[port] ) { - pendingRequests[port].abort(); - } - return (pendingRequests[port] = ajax.apply(this, arguments)); - } - return ajax.apply(this, arguments); - }; -})(jQuery); - -// provides cross-browser focusin and focusout events -// IE has native support, in other browsers, use event caputuring (neither bubbles) - -// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation -// handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target -;(function($) { - // only implement if not provided by jQuery core (since 1.4) - // TODO verify if jQuery 1.4's implementation is compatible with older jQuery special-event APIs - if (!jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener) { - $.each({ - focus: 'focusin', - blur: 'focusout' - }, function( original, fix ){ - $.event.special[fix] = { - setup:function() { - this.addEventListener( original, handler, true ); - }, - teardown:function() { - this.removeEventListener( original, handler, true ); - }, - handler: function(e) { - arguments[0] = $.event.fix(e); - arguments[0].type = fix; - return $.event.handle.apply(this, arguments); - } - }; - function handler(e) { - e = $.event.fix(e); - e.type = fix; - return $.event.handle.call(this, e); - } - }); - }; - $.extend($.fn, { - validateDelegate: function(delegate, type, handler) { - return this.bind(type, function(event) { - var target = $(event.target); - if (target.is(delegate)) { - return handler.apply(target, arguments); - } - }); - } - }); -})(jQuery); \ No newline at end of file diff --git a/www/include/jslibs/jquery.validate.login.js b/www/include/jslibs/jquery.validate.login.js deleted file mode 100644 index 0973b9b627..0000000000 --- a/www/include/jslibs/jquery.validate.login.js +++ /dev/null @@ -1,15 +0,0 @@ -(function($) { - - $.validator.loginValidate = function(login) { - if (!login || login.length < 8) - return false; - return !(/[^a-zA-Z0-9]/.test(login)); - } - - $.validator.addMethod("login", function(value, element, usernameField) { - var login = element.value; - - return $.validator.loginValidate(login); - }, " "); - -})(jQuery); \ No newline at end of file diff --git a/www/include/jslibs/jquery.validate.password.js b/www/include/jslibs/jquery.validate.password.js deleted file mode 100644 index 989f93cfd4..0000000000 --- a/www/include/jslibs/jquery.validate.password.js +++ /dev/null @@ -1,88 +0,0 @@ -/* - * jQuery validate.password plug-in 1.0 - * - * http://bassistance.de/jquery-plugins/jquery-plugin-validate.password/ - * - * Copyright (c) 2009 Jörn Zaefferer - * - * $Id$ - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - */ -(function($) { - - var LOWER = /[a-z]/, - UPPER = /[A-Z]/, - DIGIT = /[0-9]/, - DIGITS = /[0-9].*[0-9]/, - SPECIAL = /[^a-zA-Z0-9]/, - SAME = /^(.)\1+$/; - - function rating(rate, message) { - return { - rate: rate, - messageKey: message - }; - } - - function uncapitalize(str) { - return str.substring(0, 1).toLowerCase() + str.substring(1); - } - - $.validator.passwordRating = function(password, username) { - if (!password || password.length < 8) - return rating(0, "too-short"); - if (username && password.toLowerCase().match(username.toLowerCase())) - return rating(0, "similar-to-username"); - if (SAME.test(password)) - return rating(1, "very-weak"); - - var lower = LOWER.test(password), - upper = UPPER.test(uncapitalize(password)), - digit = DIGIT.test(password), - digits = DIGITS.test(password), - special = SPECIAL.test(password); - - if (lower && upper && digit || lower && digits || upper && digits || special) - return rating(4, "strong"); - if (lower && upper || lower && digit || upper && digit) - return rating(3, "good"); - return rating(2, "weak"); - } - - $.validator.passwordRating.messages = { - "similar-to-username": "Too similar to username", - "too-short": "Too short", - "very-weak": "Very weak", - "weak": "Weak", - "good": "Good", - "strong": "Strong" - } - - $.validator.addMethod("password", function(value, element, usernameField) { - // use untrimmed value - var password = element.value, - // get username for comparison, if specified - username = $(typeof usernameField != "boolean" ? usernameField : []); - - var rating = $.validator.passwordRating(password, username.val()); - // update message for this field - - var meter = $(".password-meter", element.form); - - meter.find(".password-meter-bar").removeClass().addClass("password-meter-bar").addClass("password-meter-" + rating.messageKey); - meter.find(".password-meter-message") - .removeClass() - .addClass("password-meter-message") - .addClass("password-meter-message-" + rating.messageKey) - .text($.validator.passwordRating.messages[rating.messageKey]); - // display process bar instead of error message - - return rating.rate >= 2; - }, " "); - // manually add class rule, to make username param optional - $.validator.classRuleSettings.password = { password: true }; - -})(jQuery); \ No newline at end of file