Commit fb7dc3b2 authored by Lingnan Wu's avatar Lingnan Wu

Delete the xinha editor and use the Html box editor to replace it

parent 2fa73245
----------- HtmlBox -----------
| Copyright@2008 Remiya Solutions |
-------------------------------
========================================================
| Version 1.4 |
========================================================
| Release Date: 20.05.2008 |
| |
| New features: |
| - Added Cut, Copy, Paste support for IE, and help |
| message for the other browsers. |
| - Ajax support: Post and Get custom Success and Error|
| messages possible |
========================================================
| Version 1.6 |
========================================================
| Developed Date: 08.06.2008 (Not released) |
| |
| New features: |
| - Format support (H1..H6,P,PRE,Indented paragraph) |
| - Paragraph button added |
========================================================
| Version 1.8 |
========================================================
| Developed Date: 11.06.2008 (Not released) |
| |
| New features: |
| - Remove format button |
| - Strip tags button |
| - Colors as plug-in for less space |
========================================================
| Version 2.0 |
========================================================
| Release Date: 14.06.2008 |
| |
| New features: |
| - Code buttons (ASP,C,C++,Java,JavaScript,PHP,VB,XML)|
| - Custom CSS stylesheet support |
========================================================
| Version 2.2 |
========================================================
| Release Date: 16.06.2008 |
| |
| New features: |
| - Unlink support |
========================================================
| Version 2.4 |
========================================================
| Release Date: 18.07.2008 |
| |
| New features: |
| - Custom CSS stylesheet support (Not Safari) |
| - Quote button |
| - User defined styles supported (as plug-in) |
========================================================
| Version 2.5 |
========================================================
| Release Date: 05.10.2008 |
| |
| New features: |
| - A bug removed when used with latest JQuery pack |
========================================================
| Version 2.6 |
========================================================
| Release Date: 05.10.2008 |
| |
| New features: |
| - Added remove function to remove the HtmlBox |
| instance from the DOM and global space |
| - Added change function to fire when text in the |
| HtmlBox instance is changed |
========================================================
| Version 2.8 |
========================================================
| Release Date: 19.01.2009 |
| |
| New features: |
| - Source syntax made external(as plug-in) |
| - Added idir function to set an user-defined image |
| directory |
========================================================
| Version 3.2 |
========================================================
| Release Date: 29.03.2009 |
| |
| New features: |
| - The entire source code has been redone. Now is |
| more stable, easier to use and closer to the |
| JQuery traditional usage |
| - Advanced Undo Redo capabilities are added |
========================================================
| Version 4.0 |
========================================================
| Release Date: 15.10.2009 |
| |
| New features: |
| - Skins support is added out of the box. |
| - Custom icon sets are supported |
| - Custom tools can be specified |
| - The user manual has been updated |
| - Tested with Chrome |
| - Source syntax made external(as plug-in) |
========================================================
| Version 4.0.3 |
========================================================
| Release Date: 23.02.2011 |
| |
| Removed bugs: |
| - Undo Redo manager was not working when minimized |
========================================================
| Version 4.0.3 |
========================================================
| Release Date: 23.02.2011 |
| |
| Removed bugs: |
| - Method set_text was causing problems with IE |
========================================================
TODO (for the Pro version):
2. Smiles and Image gallery support
3. Advanced color picker, image and hyperlink dialogs
\ No newline at end of file
The MIT License
Copyright (c) 2007-2011 Remiya Solutions (http://remiya.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.
HtmlBox ver. 4.0.3
Copyright (c) 2007-2011 Remiya Solutions
Website: http://remiya.com
HtmlBox 4.0.3 is a Cross-browser interactive open-source
HTML textarea built on top of the jQuery library.
Tested with Mozilla Firefox, Inrernet Explorer, Opera,
Netscape, Chrome and Safari.
HtmlBox 4.0.3 is distributed under the MIT license
(included in the package). This means you can use it for
any purpose (even commercial) and include it in any
type of software.
A link back (credit) to the HtmlBox website will be
nice, but it is not obligatory in any way and is
subject to free will and desire to help its further
evolution.
For usage instructions on how to use this product see
the supplied demo's source code and look in the online
manual of HtmlBox at http://remiya.com.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>HtmlBox - Demo Default Icons</title>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="jquery.codify.min.js"></script>
<script type="text/javascript" src="htmlbox.colors.js"></script>
<script type="text/javascript" src="htmlbox.styles.js"></script>
<script type="text/javascript" src="htmlbox.syntax.js"></script>
<script type="text/javascript" src="htmlbox.undoredomanager.js"></script>
<script type="text/javascript" src="htmlbox.min.js"></script>
</head>
<body>
<h2>Default Skin</h2>
<textarea id="htmlbox_icon_set_default">This HtmlBox uses the default Icon Set</textarea>
<script language="Javascript" type="text/javascript">
var hb_icon_set_default = $("#htmlbox_icon_set_default").css("height","100").css("width","600").htmlbox({
toolbars:[
["cut","copy","paste","separator_dots","bold","italic","underline","strike","separator","sub","sup","separator_dots","undo","redo","separator_dots",
"left","center","right","justify","separator_dots","ol","ul","indent","outdent","separator_dots","link","unlink","image"],
["code","removeformat","striptags","separator_dots","quote","paragraph","hr","separator_dots",
{icon:"new.gif",tooltip:"New",command:function(){hb_icon_set_default.set_text("<p></p>");}},
{icon:"open.gif",tooltip:"Open",command:function(){alert('Open')}},
{icon:"save.gif",tooltip:"Save",command:function(){alert('Save')}}
]
],
icons:"default",
skin:"default"
});
</script>
<h2>Blue Skin</h2>
<textarea id="htmlbox_icon_set_blue">This HtmlBox uses the default Icon Set</textarea>
<script language="Javascript" type="text/javascript">
var hb_icon_set_blue = $("#htmlbox_icon_set_blue").css("height","100").css("width","600").htmlbox({
toolbars:[
["cut","copy","paste","separator_dots","bold","italic","underline","strike","sub","sup","separator_dots","undo","redo","separator_dots",
"left","center","right","justify","separator_dots","ol","ul","indent","outdent","separator_dots","link","unlink","image"],
["code","removeformat","striptags","separator_dots","quote","paragraph","hr","separator_dots",
{icon:"new.gif",tooltip:"New",command:function(){hb_icon_set_blue.set_text("<p></p>");}},
{icon:"open.gif",tooltip:"Open",command:function(){alert('Open')}},
{icon:"save.gif",tooltip:"Save",command:function(){alert('Save')}}
]
],
icons:"default",
skin:"blue"
});
</script>
<h2>Green Skin</h2>
<textarea id="htmlbox_icon_set_green">This HtmlBox uses the default Icon Set</textarea>
<script language="Javascript" type="text/javascript">
var hb_icon_set_green = $("#htmlbox_icon_set_green").css("height","100").css("width","600").htmlbox({
toolbars:[
["cut","copy","paste","separator_dots","bold","italic","underline","strike","sub","sup","separator_dots","undo","redo","separator_dots",
"left","center","right","justify","separator_dots","ol","ul","indent","outdent","separator_dots","link","unlink","image"],
["code","removeformat","striptags","separator_dots","quote","paragraph","hr","separator_dots",
{icon:"new.gif",tooltip:"New",command:function(){hb_icon_set_green.set_text("<p></p>");}},
{icon:"open.gif",tooltip:"Open",command:function(){alert('Open')}},
{icon:"save.gif",tooltip:"Save",command:function(){alert('Save')}}
]
],
icons:"default",
skin:"green"
});
</script>
<h2>Red Skin</h2>
<textarea id="htmlbox_icon_set_red">This HtmlBox uses the default Icon Set</textarea>
<script language="Javascript" type="text/javascript">
var hb_icon_set_red = $("#htmlbox_icon_set_red").css("height","100").css("width","600").htmlbox({
toolbars:[
["cut","copy","paste","separator_dots","bold","italic","underline","strike","sub","sup","separator_dots","undo","redo","separator_dots",
"left","center","right","justify","separator_dots","ol","ul","indent","outdent","separator_dots","link","unlink","image"],
["code","removeformat","striptags","separator_dots","quote","paragraph","hr","separator_dots",
{icon:"new.gif",tooltip:"New",command:function(){hb_icon_set_red.set_text("<p></p>");}},
{icon:"open.gif",tooltip:"Open",command:function(){alert('Open')}},
{icon:"save.gif",tooltip:"Save",command:function(){alert('Save')}}
]
],
icons:"default",
skin:"red"
});
</script>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>HtmlBox - Demo Silk Icon Set</title>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="jquery.codify.min.js"></script>
<script type="text/javascript" src="htmlbox.colors.js"></script>
<script type="text/javascript" src="htmlbox.styles.js"></script>
<script type="text/javascript" src="htmlbox.syntax.js"></script>
<script type="text/javascript" src="htmlbox.undoredomanager.js"></script>
<script type="text/javascript" src="htmlbox.min.js"></script>
</head>
<body>
<h2>Default Skin</h2>
<textarea id="htmlbox_silk_icon_set_default">This HtmlBox uses the wonderful Silk Icon Set</textarea>
<script language="Javascript" type="text/javascript">
var hb_silk_icon_set_default = $("#htmlbox_silk_icon_set_default").css("height","100").css("width","600").htmlbox({
toolbars:[
["cut","copy","paste","separator_dots","bold","italic","underline","strike","sub","sup","separator_dots","undo","redo","separator_dots",
"left","center","right","justify","separator_dots","ol","ul","indent","outdent","separator_dots","link","unlink","image"],
["code","removeformat","striptags","separator_dots","quote","paragraph","hr","separator_dots",
{icon:"new.png",tooltip:"New",command:function(){hb_silk_icon_set_blue.set_text("<p></p>");}},
{icon:"open.png",tooltip:"Open",command:function(){alert('Open')}},
{icon:"save.png",tooltip:"Save",command:function(){alert('Save')}}
]
],
icons:"silk",
skin:"default"
});
</script>
<h2>Blue Skin</h2>
<textarea id="htmlbox_silk_icon_set_blue">This HtmlBox uses the wonderful Silk Icon Set</textarea>
<script language="Javascript" type="text/javascript">
var hb_silk_icon_set_blue = $("#htmlbox_silk_icon_set_blue").css("height","100").css("width","600").htmlbox({
toolbars:[
["cut","copy","paste","separator_dots","bold","italic","underline","strike","sub","sup","separator_dots","undo","redo","separator_dots",
"left","center","right","justify","separator_dots","ol","ul","indent","outdent","separator_dots","link","unlink","image"],
["code","removeformat","striptags","separator_dots","quote","paragraph","hr","separator_dots",
{icon:"new.png",tooltip:"New",command:function(){hb_silk_icon_set_blue.set_text("<p></p>");}},
{icon:"open.png",tooltip:"Open",command:function(){alert('Open')}},
{icon:"save.png",tooltip:"Save",command:function(){alert('Save')}}
]
],
icons:"silk",
skin:"blue"
});
</script>
<h2>Green Skin</h2>
<textarea id="htmlbox_oo_icon_set_green">This HtmlBox uses the wonderful Silk Icon Set</textarea>
<script language="Javascript" type="text/javascript">
var hb_silk_icon_set_green = $("#htmlbox_oo_icon_set_green").css("height","100").css("width","600").htmlbox({
toolbars:[
["cut","copy","paste","separator_dots","bold","italic","underline","strike","sub","sup","separator_dots","undo","redo","separator_dots",
"left","center","right","justify","separator_dots","ol","ul","indent","outdent","separator_dots","link","unlink","image"],
["code","removeformat","striptags","separator_dots","quote","paragraph","hr","separator_dots",
{icon:"new.png",tooltip:"New",command:function(){hb_silk_icon_set_green.set_text("<p></p>");}},
{icon:"open.png",tooltip:"Open",command:function(){alert('Open')}},
{icon:"save.png",tooltip:"Save",command:function(){alert('Save')}}
]
],
icons:"silk",
skin:"green"
});
</script>
<h2>Red Skin</h2>
<textarea id="htmlbox_silk_icon_set_red">This HtmlBox uses the wonderful Silk Icon Set</textarea>
<script language="Javascript" type="text/javascript">
var hb_silk_icon_set_red = $("#htmlbox_silk_icon_set_red").css("height","100").css("width","600").htmlbox({
toolbars:[
["cut","copy","paste","separator_dots","bold","italic","underline","strike","sub","sup","separator_dots","undo","redo","separator_dots",
"left","center","right","justify","separator_dots","ol","ul","indent","outdent","separator_dots","link","unlink","image"],
["code","removeformat","striptags","separator_dots","quote","paragraph","hr","separator_dots",
{icon:"new.png",tooltip:"New",command:function(){hb_silk_icon_set_red.set_text("<p></p>");}},
{icon:"open.png",tooltip:"Open",command:function(){alert('Open')}},
{icon:"save.png",tooltip:"Save",command:function(){alert('Save')}}
]
],
icons:"silk",
skin:"red"
});
</script>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>HtmlBox 4.0 - Demonstration Full</title>
<script language="Javascript" src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script language="Javascript" src="htmlbox.colors.js" type="text/javascript"></script>
<script language="Javascript" src="htmlbox.styles.js" type="text/javascript"></script>
<script language="Javascript" src="htmlbox.syntax.js" type="text/javascript"></script>
<script language="Javascript" src="xhtml.js" type="text/javascript"></script>
<script language="Javascript" src="htmlbox.min.js" type="text/javascript"></script>
</head>
<body>
<textarea id='ha'></textarea>
<script language="Javascript" type="text/javascript">
$("#ha").css("height","100%").css("width","100%").htmlbox({
toolbars:[
[
// Cut, Copy, Paste
"separator","cut","copy","paste",
// Undo, Redo
"separator","undo","redo",
// Bold, Italic, Underline, Strikethrough, Sup, Sub
"separator","bold","italic","underline","strike","sup","sub",
// Left, Right, Center, Justify
"separator","justify","left","center","right",
// Ordered List, Unordered List, Indent, Outdent
"separator","ol","ul","indent","outdent",
// Hyperlink, Remove Hyperlink, Image
"separator","link","unlink","image"
],
[// Show code
"separator","code",
// Formats, Font size, Font family, Font color, Font, Background
"separator","formats","fontsize","fontfamily",
"separator","fontcolor","highlight",
],
[
//Strip tags
"separator","removeformat","striptags","hr","paragraph",
// Styles, Source code syntax buttons
"separator","quote","styles","syntax"
]
],
skin:"blue"
});
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>HtmlBox 4.0 - Minimalistic Demonstration</title>
<script language="Javascript" src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script language="Javascript" src="htmlbox.min.js" type="text/javascript"></script>
</head>
<body>
<textarea id='hb'></textarea>
<script language="Javascript" type="text/javascript">
var hb = $("#hb").htmlbox({
buttons:[
["separator_dots","bold","italic","underline"]
],
icons:"default",
skin:"green"
});
</script>
</body>
</html>
\ No newline at end of file
document.htmlbox_colors=function(){
return ['white', 'FFFFFF', 'ivory', 'FFFFF0', 'lightyellow', 'FFFFE0', 'yellow', 'FFFF00', 'snow', 'FFFAFA', 'floralwhite', 'FFFAF0', 'lemonchiffon', 'FFFACD', 'cornsilk', 'FFF8DC', 'seashell', 'FFF5EE', 'lavenderblush', 'FFF0F5', 'papayawhip', 'FFEFD5', 'blanchedalmond', 'FFEBCD', 'mistyrose', 'F FE4E1', 'bisque', 'FFE4C4', 'moccasin', 'FFE4B5', 'navajowhite', 'FFDEAD', 'peachpuff', 'FFDAB9', 'gold', 'FFD700', 'pink', 'FFC0CB', 'lightpink ', 'FFB6C1', 'orange', 'FFA500', 'lightsalmon', 'FFA07A', 'darkorange', 'FF8C00', 'coral', 'FF7F50', 'hotpink', 'FF69B4', 'tomato', 'FF6347', 'orangered', 'FF4500', 'deeppink', 'FF1493', 'magenta', 'FF00FF', 'fuchsia', 'FF00FF', 'red', 'FF0000', 'oldlace', 'FDF5E6', 'lightgoldenrodyellow', 'FAFAD2', ' linen', 'FAF0E6', 'antiquewhite', 'FAEBD7', 'salmon', 'FA8072', 'ghostwhite', 'F8F8FF', 'mintcream', 'F5FFFA', 'whitesmoke', 'F5F5F5', 'beige', ' F5F5DC', 'wheat', 'F5DEB3', 'sandybrown', 'F4A460', 'azure', 'F0FFFF', 'honeydew', 'F0FFF0', 'aliceblue', 'F0F8FF', 'khaki', 'F0E68C', 'lightcoral ', 'F08080', 'palegoldenrod', 'EEE8AA', 'violet', 'EE82EE', 'darksalmon', 'E9967A', 'lavender', 'E6E6FA', 'lightcyan', 'E0FFFF', 'burlywood', 'DEB887', 'plum', 'DDA0DD', 'gainsboro', 'DCDCDC', 'crimson', 'DC143C', 'palevioletred', 'DB7093', 'goldenrod', 'DAA520', 'orchid', 'DA70D6', 'thistle', 'D8BFD8', 'lightgrey', 'D3D3D3', 'tan', 'D2B48C', 'chocolate', 'D2691E', 'peru', 'CD853F', 'indianred', 'CD5C5C', 'mediumvioletred', 'C71585', 'silver', 'C0C0C0', 'darkkhaki', 'BDB76B', 'rosybrown', 'BC8F8F', 'mediumorchid', 'BA55D3', 'darkgoldenrod', 'B8860B', 'firebrick', 'B22222', 'powderblue', 'B0E0E6', 'lightsteelblue', 'B0C4DE', 'paleturquoise', 'AFEEEE', 'greenyellow', 'ADFF2F', 'lightblue', 'ADD8E6', 'darkgray', 'A9A9A9', 'brown', 'A52A2A', 'sienna', "A0522D", 'yellowgreen', "9ACD32", 'darkorchid', '9932CC', 'palegreen', '98FB98', 'darkviolet', '9400D3', 'mediumpurple', '9370DB', 'lightgreen', '90EE90', 'darkseagreen', '8FBC8F', 'saddlebrown', '8B4513', 'darkmagenta', '8B008B', 'darkred', '8B0000', 'blueviolet', '8A2BE2', 'lightskyblue', '87CEFA', 'skyblue', '87CEEB', 'gray', '808080', 'olive', '808000', 'purple', '800080', 'maroon', '800000', 'aquamarine', '7FFFD4', 'chartreuse', '7FFF00', 'lawngreen', '7CFC00', 'mediumslateblue', '7B68EE', 'lightslategray', '778899', 'slategray', '708090', 'olivedrab', '6B8E23', 'slateblue', '6A5ACD', 'dimgray', '696969', 'mediumaquamarine', '66CDAA', 'cornflowerblue', '6495ED', 'cadetblue', '5F9EA0', 'darkolivegreen', '556B2F', 'indigo', '4B0082', 'mediumturquoise', '48D1CC', 'darkslateblue', '483D8B', 'steelblue', '4682B4', 'royalblue', '4169E1', 'turquoise', '40E0D0', 'mediumseagreen', '3CB371', 'limegreen', '32CD32', 'darkslategray', '2F4F4F', 'seagreen', '2E8B57', 'forestgreen', '228B22', 'lightseagreen', '20B2AA', 'dodgerblue', '1E90FF', 'midnightblue', '191970', 'cyan', '00FFFF', 'aqua', '00FFFF', 'springgreen', '00FF7F', 'lime', '00FF00', 'mediumspringgreen', '00FA9A', 'darkturquoise', '00CED1', 'deepskyblue', '00BFFF', 'darkcyan', "008B8B", 'teal', "008080", 'green', '008000', 'darkgreen', '006400', 'blue', '0000FF', 'mediumblue', '0000CD', 'darkblue', '00008B', 'navy', '000080', 'black', '000000'];
};
\ No newline at end of file
//============================= START OF CLASS ==============================//
// CLASS: HtmlBox //
//===========================================================================//
/**
* HtmlBox is a cross-browser widget that replaces the normal textboxes with
* rich text area like in OpenOffice Text. It has Ajax support out of the box.
* PS. It requires JQuery in order to function.
* TODO: Smilies, CSS for Safari
*<code>
* </code>
* Copyright@2007-2011 Remiya Solutions All rights reserved!
* @author Remiya Solutions
* @version 4.0.3
*/
(function($){
$.fn.htmlbox=function(options){
// START: Settings
// Are there any plugins?
var colors = (typeof document.htmlbox_colors === 'function')?document.htmlbox_colors():['silver','silver','white','white','yellow','yellow','orange','orange','red','red','green','green','blue','blue','brown','brown','black','black'];
var styles = (typeof document.htmlbox_styles === 'function')?document.htmlbox_styles():[['No Styles','','']];
var syntax = (typeof document.htmlbox_syntax === 'function')?document.htmlbox_syntax():[['No Syntax','','']];
var urm = (typeof htmlbox_undo_redo_manager === 'function')?new htmlbox_undo_redo_manager():false;
// Default option
var d={
toolbars:[["bold","italic","underline"]], // Buttons
idir:"./images/",// HtmlBox Image Directory, This is needed for the images to work
icons:"default", // Icon set
about:true,
skin:"default", // Skin, silver
output:"xhtml", // Output
toolbar_height:24,// Toolbar height
tool_height:16, // Tools height
tool_width:16, // Tools width
tool_image_height:16, // Tools image height
tool_image_width:16, // Tools image width
css:"body{margin:3px;font-family:verdana;font-size:11px;}p{margin:0px;}",
success:function(data){alert(data);}, // AJAX on success
error:function(a,b,c){return this;} // AJAX on error
};
// User options
d = $.extend(d, options);
// Is forward slash added to the image directory
if(d.idir.substring(d.idir.length-1)!=="/"){d.idir+="/";}
// END: Settings
// ------------- START: PRIVATE METHODS -----------------//
//========================= START OF METHOD ===========================//
// METHOD: get_selection //
//=====================================================================//
/**
* Returns the selected (X)HTML code
* @access private
*/
var get_selection = function(){
var range;
if($.browser.msie){
range = d.iframe.contentWindow.document.selection.createRange();
if (range.htmlText && range.text){return range.htmlText;}
}else{
if (d.iframe.contentWindow.getSelection) {
var selection = d.iframe.contentWindow.getSelection();
if (selection.rangeCount>0&&window.XMLSerializer){
range=selection.getRangeAt(0);
var html=new XMLSerializer().serializeToString(range.cloneContents());
return html;
}if (selection.rangeCount > 0) {
range = selection.getRangeAt(0);
var clonedSelection = range.cloneContents();
var div = document.createElement('div');
div.appendChild(clonedSelection);
return div.innerHTML;
}
}
}
};
//=====================================================================//
// METHOD: get_selection //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: in_array //
//=====================================================================//
/**
* Coppies the PHP in_array function. This is useful for Objects.
* @access private
*/
var in_array=function(o,a){
for (var i in a){ if((i===o)){return true;} }
return false;
};
//=====================================================================//
// METHOD: in_array //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: insert_text //
//=====================================================================//
/**
* Inserts text at the cursor position or selection
* @access private
*/
var insert_text = function(text,start,end){
if($.browser.msie){
d.iframe.contentWindow.focus();
if(typeof d.idoc.selection !== "undefined" && d.idoc.selection.type !== "Text" && d.idoc.selection.type !== "None"){start = false;d.idoc.selection.clear();}
var sel = d.idoc.selection.createRange();sel.pasteHTML(text);
if (text.indexOf("\n") === -1) {
if (start === false) {} else {
if (typeof start !== "undefined") {
sel.moveStart("character", - text.length + start);
sel.moveEnd("character", - end);
} else {
sel.moveStart("character", - text.length);
}
}
sel.select();
}
}else{
d.idoc.execCommand("insertHTML", false, text);
}
// Updating the textarea component, so whenever it is posted it will send all the data
if ($("#"+d.id).is(":visible") === false) {
var html = $("#1"+d.id).is(":visible")?$("#"+d.id).val():html = d.iframe.contentWindow.document.body.innerHTML;
html = (typeof getXHTML === 'function')?getXHTML(html):html;
$("#"+d.id).val(html);
if(urm){urm.add(html);} // Undo Redo
if(undefined!==d.change){d.change();}
}
};
//=====================================================================//
// METHOD: insert_text //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: keyup //
//=====================================================================//
/**
* Keyup event.
* @access private
*/
var keyup = function(e){
// Updating the textarea component, so whenever it is posted it will send all the data
var html = $("#1"+d.id).is(":visible")?$("#"+d.id).val():html = d.iframe.contentWindow.document.body.innerHTML;
if(urm){urm.add(html);} // Undo Redo
html = (typeof getXHTML === 'function')?getXHTML(html):html;
$("#"+d.id).val(html);
if(undefined!==d.change){d.change();}
};
//=====================================================================//
// METHOD: keyup //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: style //
//=====================================================================//
/**
* Sets the CSS style to the HtmlBox iframe
* @access private
*/
var style = function(){
// START: HtmlBox Style
if(d.css.indexOf("background:")===-1){d.css+="body{background:white;}";}
if(d.css.indexOf("background-image:")===-1){
d.css=d.css+"body{background-image:url("+d.idir+"logo.gif);background-position:top right;background-repeat:no-repeat;}";
}
if( d.idoc.createStyleSheet) {
d.idoc.createStyleSheet().cssText=d.css;
}else {
var css=d.idoc.createElement('link');
css.rel='stylesheet'; css.href='data:text/css,'+escape(d.css);
if($.browser.opera){
d.idoc.documentElement.appendChild(css);
}else{
d.idoc.getElementsByTagName("head")[0].appendChild(css);
}
}
// END: HtmlBox Style
};
//=====================================================================//
// METHOD: style //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: toolbar //
//=====================================================================//
/**
* The toolbar of HtmlBox
* @return this
* @access private
*/
var toolbar=function(){
var h = "";
if(d.about&&!in_array(d.toolbars[0],"about")){d.toolbars[0][d.toolbars[0].length]="separator";d.toolbars[0][d.toolbars[0].length]="about";}
for(var k=0;k<d.toolbars.length;k++){
var toolbar = d.toolbars[k];
h += "<tr><td class='"+d.id+"_tb' valign='middle'><table cellspacing='1' cellpadding='0'>";
for(var i=0;i<(toolbar.length);i++){
var img = (d.icons==="default")?d.idir+"default/"+toolbar[i]+".gif":d.idir+d.icons+"/"+toolbar[i]+".png";
if(undefined===toolbar[i]){continue;}
// START: Custom button
else if(typeof(toolbar[i])!=='string'){
img = d.idir+d.icons+"/"+toolbar[i].icon;
var cmd = "var cmd = unescape(\""+escape( toolbar[i].command.toString() )+"\");eval(\"var fn=\"+cmd);fn()'";
h += "<td class='"+d.id+"_html_button' valign='middle' align='center' onclick='"+cmd+"' title='"+toolbar[i].tooltip+"'><image src='"+img+"'></td>";
}
// END: Custom button
else if(toolbar[i]==="separator"){h += "<td valign='middle' align='center'><image src='"+d.idir+"separator.gif' style='margin-right:1px;margin-left:3px;height:13px;'></td>";}
else if(toolbar[i]==="fontsize"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_fontsize' onchange='global_hb[\""+d.id+"\"].cmd(\"fontsize\",this.options[this.selectedIndex].value)' style='font-size:12px;'><option value='' selected>- SIZE -</option><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option></select></td>";
}else if(toolbar[i]==="fontfamily"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_fontfamily' onchange='global_hb[\""+d.id+"\"].cmd(\"fontname\",this.options[this.selectedIndex].value)' style='font-size:12px;'><option value='' selected>- FONT -</option><option value='arial' style='font-family:arial;'>Arial</option><option value='courier' style='font-family:courier;'>Courier</option><option value='cursive' style='font-family:cursive;'>Cursive</option><option value='georgia' style='font-family:georgia;'>Georgia</option><option value='monospace' style='font-family:monospace;'>Monospace</option><option value='tahoma' style='font-family:tahoma;'>Tahoma</option><option value='verdana' style='font-family:verdana;'>Verdana</option></select></td>";
}else if(toolbar[i]==="formats"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_formats' onchange='global_hb[\""+d.id+"\"].cmd(\"format\",this.options[this.selectedIndex].value)' style='font-size:12px;'><option value='' selected>- FORMATS -</option><option value='h1'>Heading 1</option><option value='h2'>Heading 2</option><option value='h3'>Heading 3</option><option value='h4'>Heading 4</option><option value='h5'>Heading 5</option><option value='h6'>Heading 6</option><option value='p'>Paragraph</option><option value='pindent'>First Indent</option><option value='pre'>Preformatted</option></select></td>";
}else if(toolbar[i]==="fontcolor"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_fontcolor' onchange='global_hb[\""+d.id+"\"].cmd(\"fontcolor\",this.options[this.selectedIndex].value)' style='font-size:12px;'><option value='' selected>-COLOR-</option>";
for(var m=0;m<colors.length;m++){ if(m%2){continue;}
h+="<option value='"+colors[m]+"' style='background:"+colors[m]+";color:"+colors[m]+";'>"+colors[m]+"</option>";
}
h += "</select></td>";
}else if(toolbar[i]==="highlight"){
console.log("werwrqewrqwrqwe");
h += "<td valign='middle' align='center'><select id='"+d.id+"_highlight' onchange='global_hb[\""+d.id+"\"].cmd(\"backcolor\",this.options[this.selectedIndex].value)' style='font-size:12px;'><option value='' selected>-HIGHLIGHT-</option>";
for(var n=0;n<colors.length;n++){ if(n%2){continue;}
h+="<option value='"+colors[n]+"' style='background:"+colors[n]+";color:"+colors[n]+";'>"+colors[n]+"</option>";
}
h += "</select></td>";
}else if(toolbar[i]==="styles"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_styles' onchange='global_hb[\""+d.id+"\"].cmd(\"styles\",this.options[this.selectedIndex].value);this.options[0].selected=\"true\";' style='font-size:12px;' style='background:white;'><option value='' selected>-STYLES-</option>";
for(var o=0;o<styles.length;o++){ if(o%2){continue;}
h+="<option value='"+o+"' style='background:white;color:red;'>"+styles[o][0]+"</option>";
}
h += "</select></td>";
}else if(toolbar[i]==="syntax"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_syntax' onchange='global_hb[\""+d.id+"\"].cmd(\"syntax\",this.options[this.selectedIndex].value);this.options[0].selected=\"true\";' style='font-size:12px;'><option value='' selected>-SYNTAX-</option>";
for(var p=0;p<syntax.length;p++){ if(p%2){continue;}
h+="<option value='"+p+"' style='background:white;color:red;'>"+syntax[p][0]+"</option>";
}
h += "</select></td>";
}
// Commands
var cmds = {"about":"About","bold":"Bold","center":"Center","code":"View Code","copy":"Copy","cut":"Cut","hr":"Insert Line","link":"Insert Link","image":"Insert Image","indent":"Indent","italic":"Italic","justify":"Justify","left":"Left","ol":"Numbered List","outdent":"Outdent","paragraph":"Insert Paragraph","paste":"Paste","quote":"Quote","redo":"Redo","removeformat":"Remove Format","right":"Right","strike":"Strikethrough","striptags":"Strip Tags","sub":"Subscript","sup":"Superscript","ul":"Bulleted List","underline":"Underline","undo":"Undo","unlink":"Remove Link"};
if(in_array(toolbar[i],cmds)){h += "<td class='"+d.id+"_html_button' valign='middle' align='center' onclick='global_hb[\""+d.id+"\"].cmd(\""+toolbar[i]+"\")' title='"+cmds[toolbar[i]]+"'><image src='"+img+"'></td>";}
}
h += "</table></td></tr>";
}
return h;
};
//=====================================================================//
// METHOD: toolbar //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: wrap_tags //
//=====================================================================//
/**
* Wraps tags around the cursor position or selection
* @access private
*/
this.wrap_tags = function(start,end){
var sel = get_selection();
if(undefined===sel){sel="";}
if(undefined===end){end="";}
insert_text(start+sel+end,start.length,end.length);
};
//=====================================================================//
// METHOD: wrap_tags //
//========================== END OF METHOD ============================//
// -------------- END: PRIVATE METHODS ------------------//
// ------------- START: PUBLIC METHODS -----------------//
//========================= START OF METHOD ===========================//
// METHOD: _init //
//=====================================================================//
/**
* Draws the HtmlBox on the screen
* @return this
* @access private
*/
this._init = function(is_init){
if(undefined===window.global_hb){global_hb=[];}
if(!$(this).attr("id")){$(this).attr("id","jqhb_"+global_hb.length);d.id="jqhb_"+global_hb.length;global_hb[d.id]=global_hb;}else{d.id=$(this).attr("id");}
if(undefined === global_hb[d.id]){global_hb[d.id]=this;}
// START: Timeout to allow creation of DesignMode
//if(undefined===is_init){setTimeout("global_hb['"+d.id+"'].init(true)",250);return false;}
// END: Timeout to allow creation of DesignMode
d.ta_wrap_id = d.id+"_wrap";
var w=$(this).css("width");var h=$(this).css("height");$(this).wrap("<table id='"+d.id+"_wrap' width='"+w+"' style='height:"+h+";border:2px solid #E9EAEF;' cellspacing='0' cellpadding='0'><tr><td id='"+d.id+"_container'></td></tr></table>");
// START: Appending toolbar
$(this).parent().parent().parent().parent().prepend(toolbar());
$("."+d.id+"_tb").height(d.toolbar_height);
$("."+d.id+"_html_button").each(function(){
// Set tool dimension
$(this).width(d.tool_width).height(d.tool_height);
// Set image dimension
$(this).find("image").each(function(){$(this).width(d.tool_image_width).height(d.tool_image_height);});
// Set borders
$(this).css("border","1px solid transparent").css("background","transparent").css("margin","1px 1px 1px 1px").css("padding","1px");
$(this).mouseover(function(){$(this).css("border","1px solid #BFCAFF").css("background","#EFF2FF");});
$(this).mouseout(function(){$(this).css("border","1px solid transparent").css("background","transparent");});
}
);
// Selectors
$("."+d.id+"_tb").find("select").each(function(){
$(this).css("border","1px solid #E9EAEF").css("background","transparent").css("margin","2px 2px 3px 2px");
if($.browser.mozilla){$(this).css("padding","0").css("position","relative").css("top","-2px");}
}
);
// END: Appending toolbar
// START: Skin
// default
var hb_border = "1px solid #7F7647";
var hb_background = "#DFDDD1";
var tb_border = "1px solid #7F7647";
if(d.skin==="blue"){
hb_border = "1px solid #7E9DB9";
hb_background = "#D7E3F2";
tb_border = "1px solid #7E9DB9";
}
if(d.skin==="red"){
hb_border = "1px solid #B91E00";
hb_background = "#FFD7CF";
tb_border = "1px solid #B91E00";
}
if(d.skin==="green"){
hb_border = "1px solid #8DB900";
hb_background = "#D5EF86";
tb_border = "1px solid #8DB900";
}
if(d.skin==="silver"){
hb_border = "1px solid #DDDDDD";
hb_background = "#F4F4F3";
tb_border = "1px solid #DDDDDD";
}
$("#"+d.id+"_wrap").css("border",hb_border);
$("#"+d.id+"_wrap").css("background",hb_background);
$("#"+d.id+"_container").css("background","white");
$("."+d.id+"_tb").css("border-bottom",tb_border);
//$("."+d.id+"_tb").css("background-image","url("+d.idir+"bg_blue.gif)");
//style='background:silver;border-bottom:1px outset white'
// END: Skin
try {
var iframe=document.createElement("IFRAME");// var doc=null;
$(iframe).css("width",w).css("height",h).attr("id",d.id+"_html").css("border","0");
$(this).parent().prepend(iframe);
// START: Shortcuts for less code
d.iframe = iframe;
d.idoc = iframe.contentWindow.document;
// END: Shortcuts
d.idoc.designMode="on";
// START: Insert text
// Is there text in the textbox?
var text = ($(this).val()==="")?"":$(this).val();
if($.browser.mozilla||$.browser.safari){
//if(text===""){text="&nbsp;";}
d.idoc.open('text/html', 'replace'); d.idoc.write(text); d.idoc.close();
}else{
if(text!==""){d.idoc.write(text);}
else{
// Needed by IE to initialize the iframe body
if($.browser.msie){d.idoc.write("&nbsp;");}
}
}
// Needed by browsers other than MSIE to become editable
if($.browser.msie===false){iframe.contentWindow.document.body.contentEditable = true;}
// END: Insert text
// START: HtmlBox Style
if(d.css.indexOf("background:")===-1){d.css+="body{background:white;}";}
if(d.css.indexOf("background-image:")===-1){
d.css=d.css+"body{background-image:url("+d.idir+"logo.gif);background-position:top right;background-repeat:no-repeat;}";
}
if(d.idoc.createStyleSheet) {
setTimeout("global_hb['"+d.id+"'].set_text(global_hb['"+d.id+"'].get_html())",10);
}else {style();}
// END: HtmlBox Style
// START: Adding events
if(iframe.contentWindow.document.attachEvent){
iframe.contentWindow.document.attachEvent("onkeyup", keyup);
}else{
iframe.contentWindow.document.addEventListener("keyup",keyup,false);
}
$(this).hide();
}catch(e){
alert("This rich text component is not supported by your browser.\n"+e);
$(this).show();
}
return this;
};
//=====================================================================//
// METHOD: _init //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: cmd //
//=====================================================================//
/**
* Executes a user-specified command
* @since 2.0
* @return this
*/
this.cmd = function(cmd,arg1){
// When user clicks toolbar button make sure it always targets its respective WYSIWYG
d.iframe.contentWindow.focus();
// START: Prepare commands
if(cmd==="paragraph"){cmd="format";arg1="p";}
var cmds = {"center":"justifycenter","hr":"inserthorizontalrule","justify":"justifyfull","left":"justifyleft","ol":"insertorderedlist","right":"justifyright","strike":"strikethrough","sub":"subscript","sup":"superscript","ul":"insertunorderedlist"};
if(in_array(cmd,cmds)){cmd=cmds[cmd];}
// END: Prepare commands
if(cmd==="code"){
var text = this.get_html();
if($("#"+d.id).is(":visible")){
$("#"+d.id).hide();
$("#"+d.id+"_html").show();
this.set_text(text);
}else{
$("#"+d.id).show();
$("#"+d.id+"_html").hide();
this.set_text(text);
$("#"+d.id).focus();
}
}else if(cmd==="link"){
d.idoc.execCommand("createlink", false, prompt("Paste Web Address URL Here:"));
}else if(cmd==="image"){
d.idoc.execCommand("insertimage", false, prompt("Paste Image URL Here:"));
}else if(cmd==="fontsize"){
d.idoc.execCommand(cmd, false,arg1);
}else if(cmd==="backcolor"){
if($.browser.msie){
d.idoc.execCommand("backcolor", false,arg1);
}else{
d.idoc.execCommand("hilitecolor", false,arg1);
}
}else if(cmd==="fontcolor"){
d.idoc.execCommand("forecolor", false,arg1);
}else if(cmd==="fontname"){
d.idoc.execCommand(cmd, false, arg1);
}else if(cmd==="cut"){
if($.browser.msie === false){
alert("Available in IExplore only.\nUse CTRL+X to cut text!");
}else{
d.idoc.execCommand('Cut');
}
}else if(cmd==="copy"){
if($.browser.msie === false){
alert("Available in IExplore only.\nUse CTRL+C to copy text!");
}else{
d.idoc.execCommand('Copy');
}
}else if(cmd==="paste"){
if($.browser.msie === false){
alert("Available in IExplore only.\nUse CTRL+V to paste text!");
}else{
d.idoc.execCommand('Paste');
}
}else if(cmd==="format"){
if(arg1==="pindent"){this.wrap_tags('<p style="text-indent:20px;">','</p>');}
else if(arg1!==""){d.idoc.execCommand('formatBlock', false, "<"+arg1+">");}
}else if(cmd==="striptags"){
var sel = get_selection();
sel = sel.replace(/(<([^>]+)>)/ig,"");
insert_text(sel);
}else if(cmd==="quote"){
this.wrap_tags('<br /><div style="position:relative;top:10px;left:11px;font-size:11px;font-family:verdana;">Quote</div><div class="quote" contenteditable="true" style="border:1px inset silver;margin:10px;padding:5px;background:#EFF7FF;">','</div><br />');
}else if(cmd==="styles"){
this.wrap_tags(styles[arg1][1],styles[arg1][2]);
}else if(cmd==="syntax"){
this.wrap_tags(syntax[arg1][1],syntax[arg1][2]);
}else if(cmd==="bold"){
this.wrap_tags("<b>","</b>");
}else if(cmd==="undo"&&urm){
if(urm.can_undo()){
var undo = urm.undo();
this.set_text(undo);
return true;
}
}else if(cmd==="redo"&&urm){
if(urm.can_redo()){
var redo = urm.redo();
this.set_text(redo);
return true;
}
}else if(cmd==="about"){
var about = "<p>HtmlBox is a modern, cross-browser, interactive, open-source text area built on top of the excellent jQuery library.</p>";
about += "<p style='margin:2px;'><b>Official Website:</b> <a href='http://remiya.com' target='_blank'>http://remiya.com</a></p>";
about += "<p style='margin:2px;'><b>License:</b> MIT license</p>";
about += "<p style='margin:2px;'><b>Version:</b> 4.0</p>";
about += "<p style='margin:2px;'><b>Credits:</b></p>";
about += "<p style='margin:2px;padding-left:20px;'><a href='http://jquery.com/' target='_blank'>JQuery (JavaScript Framework)</a></p>";
about += "<p style='margin:2px;padding-left:20px;'><a href='http://www.famfamfam.com/lab/icons/silk/' target='_blank'>Silk (Icon Set)</a></p>";
var html = '<table cellspacing="3" cellpadding="0" width="100%" height="100%" style="background:#D7E3F2;border:2px solid #7E9DB9;font-family:verdana;font-size:12px;">';
html += '<tr><td align="center" valign="middle" height="30" style="font-size:16px;"><b>About HtmlBox</b></td></tr>';
html += '<tr><td style="border:1px solid #7E9DB9;background:white;font-size:11px;" valign="top"><div style="overflow:auto;height:140px;" >'+about+'</div></td></tr>';
html += '<tr><td height="20"><table width="100%" style="font-family:verdana;font-size:10px;"><tr><td align="left">Copyright&copy;2009 Remiya Solutions<br>All right reserved!</td><td align="right"><button style="width:60px;height:24px;font-family:verdana;font-size:11px;" onclick="$(\'#'+d.id+'_about\').fadeOut(500);">Close</button></td></tr></table></td></tr>';
html += '</table>';
var w = 300;var h = 200;
var top = ($(window).height()-200)/2+$(document).scrollTop();
var left = ($(window).width()-300)/2;
if ($("#"+d.id+"_about").length === 0){
$("body").append("<div id='"+d.id+"_about' style='display:none;position:absolute;background:red;width:"+w+"px;height:"+h+"px;top:"+top+"px;left:"+left+"px;'>about</div>");
$("#"+d.id+"_about").html(html);
}else{
$("#"+d.id+"_about").css("top",top);
$("#"+d.id+"_about").css("left",left);
}
$("#"+d.id+"_about").focus();
$("#"+d.id+"_about").fadeIn(1000);
}else{
d.idoc.execCommand(cmd, false, null);
}
//Setting the changed text to textearea
if($("#"+d.id).is(":visible")===false){
$("#"+d.id).val(this.get_html());
// Register change
if(urm){urm.add(this.get_html());}
if(undefined!==d.change){d.change();}
}
};
//=====================================================================//
// METHOD: cmd //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: get_text //
//=====================================================================//
/**
* Returns the text without tags of the HtmlBox
* @since 1.2
* @return this
*/
this.get_text = function(){
// Is textbox visible?
if($("#"+d.id).is(":visible")){ return $("#"+d.id).val(); }
// Iframe is visible
var text;
if($.browser.msie){
text = d.iframe.contentWindow.document.body.innerText;
}else{
var html = d.iframe.contentWindow.document.body.ownerDocument.createRange();
html.selectNodeContents(d.iframe.contentWindow.document.body);
text = html;
}
return text;
};
//=====================================================================//
// METHOD: get_text //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: set_text //
//=====================================================================//
/**
* Sets the text as a content of the HtmlBox
* @since 1.2
* @return this
*/
this.set_text = function(txt){
var text = (undefined===txt)?"":txt;
if(text==="" && $.browser.safari){text = "&nbsp;";}// Bug in Chrome and Safari
// Is textarea visible? Writing to it.
if($("#"+d.id).is(":visible")){
$("#"+d.id).val(text);
}else{
// Textarea not visible. write to iframe
if($.browser.mozilla||$.browser.safari){
//if($.trim(text)===""){text="&nbsp;";}
d.idoc.open('text/html', 'replace'); d.idoc.write(text); d.idoc.close();
}else{
d.idoc.body.innerHTML = "";
if(text!==""){d.idoc.write(text);}
}
style(); // Setting the CSS style for the iframe
d.idoc.body.contentEditable = true;
}
if(urm){urm.add(this.get_html());}
if(undefined!==d.change){d.change();}
return this;
};
//=====================================================================//
// METHOD: set_text //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: get_html //
//=====================================================================//
/**
* Returns the (X)HTML content of the HtmlBox
* @return this
*/
this.get_html = function(){
var html;
if($("#"+d.id).is(":visible")){
html = $("#"+d.id).val();
}else{
html = d.iframe.contentWindow.document.body.innerHTML;
}
if(typeof getXHTML === 'function'){ return getXHTML(html); }else{return html;}
};
//=====================================================================//
// METHOD: get_html //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: change //
//=====================================================================//
/**
* Specifies a function to be executed on text change in the HtmlBox
*/
this.change=function(fn){d.change=fn;return this;};
//=====================================================================//
// METHOD: change //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: remove //
//=====================================================================//
/**
* Removes the HtmlBox instance from the DOM and the globalspace
*/
this.remove = function(){
global_hb[d.id]=undefined;
$("#"+d.id+"_wrap").remove();
if ($("#"+d.id+"_about").length === 0){$("#"+d.id+"_about").remove();}
};
//=====================================================================//
// METHOD: remove //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: post //
//=====================================================================//
/**
* Posts the form data to the specified URL using Ajax
* @param String the URL to post to
* @param String the text to be posted, default the (X)HTML text
* @return this;
*/
this.post=function(url,data){
if(undefined===data){data=this.get_html();} data=(d.id+"="+data);
$.ajax({type: "POST", data: data,url: url,dataType: "html",error:d.error,success:d.success});
};
//=====================================================================//
// METHOD: post //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: get //
//=====================================================================//
/**
* Gets the form data to the specified URL using Ajax
* @param String the URL to get to
* @param String the text to be posted, default the (X)HTML text
* @return this;
*/
this.get=function(url,data){
if(undefined===data){data=this.get_html();} data=(d.id+"="+data);
$.ajax({type: "GET", data: data,url: url,dataType: "html",error:d.error,success:d.success});
};
//=====================================================================//
// METHOD: get //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: success //
//=====================================================================//
/**
* Specifies what is to be executed on successful Ajax POST or GET
*/
this.success=function(fn){d.success=fn;return this;};
//=====================================================================//
// METHOD: success //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: error //
//=====================================================================//
/**
* Specifies what is to be executed on error Ajax POST or GET
* @return {HtmlBox} the instance of this HtmlBox
*/
this.error=function(fn){d.error=fn;return this;};
//=====================================================================//
// METHOD: error //
//========================== END OF METHOD ============================//
// -------------- END: PUBLIC METHODS ------------------//
this._init(false);
return this;
};
})(jQuery);
//===========================================================================//
// CLASS: HtmlBox //
//============================== END OF CLASS ===============================//
//============================= START OF CLASS ==============================//
// CLASS: HtmlBox //
//===========================================================================//
/**
* HtmlBox is a cross-browser widget that replaces the normal textboxes with
* rich text area like in OpenOffice Text. It has Ajax support out of the box.
* PS. It requires JQuery in order to function.
* TODO: Smilies, CSS for Safari
*<code>
* </code>
* Copyright@2007-2011 Remiya Solutions All rights reserved!
* @author Remiya Solutions
* @version 4.0.3
*/
(function($){
$.fn.htmlbox=function(options){
// START: Settings
// Are there any plugins?
var colors = (typeof document.htmlbox_colors === 'function')?document.htmlbox_colors():['silver','silver','white','white','yellow','yellow','orange','orange','red','red','green','green','blue','blue','brown','brown','black','black'];
var styles = (typeof document.htmlbox_styles === 'function')?document.htmlbox_styles():[['No Styles','','']];
var syntax = (typeof document.htmlbox_syntax === 'function')?document.htmlbox_syntax():[['No Syntax','','']];
var urm = (typeof htmlbox_undo_redo_manager === 'function')?new htmlbox_undo_redo_manager():false;
// Default option
var d={
toolbars:[["bold","italic","underline"]], // Buttons
idir:"./images/",// HtmlBox Image Directory, This is needed for the images to work
icons:"default", // Icon set
about:true,
skin:"default", // Skin, silver
output:"xhtml", // Output
toolbar_height:24,// Toolbar height
tool_height:16, // Tools height
tool_width:16, // Tools width
tool_image_height:16, // Tools image height
tool_image_width:16, // Tools image width
css:"body{margin:3px;font-family:verdana;font-size:11px;}p{margin:0px;}",
success:function(data){alert(data);}, // AJAX on success
error:function(a,b,c){return this;} // AJAX on error
};
// User options
d = $.extend(d, options);
// Is forward slash added to the image directory
if(d.idir.substring(d.idir.length-1)!=="/"){d.idir+="/";}
// END: Settings
// ------------- START: PRIVATE METHODS -----------------//
//========================= START OF METHOD ===========================//
// METHOD: get_selection //
//=====================================================================//
/**
* Returns the selected (X)HTML code
* @access private
*/
var get_selection = function(){
var range;
if($.browser.msie){
range = d.iframe.contentWindow.document.selection.createRange();
if (range.htmlText && range.text){return range.htmlText;}
}else{
if (d.iframe.contentWindow.getSelection) {
var selection = d.iframe.contentWindow.getSelection();
if (selection.rangeCount>0&&window.XMLSerializer){
range=selection.getRangeAt(0);
var html=new XMLSerializer().serializeToString(range.cloneContents());
return html;
}if (selection.rangeCount > 0) {
range = selection.getRangeAt(0);
var clonedSelection = range.cloneContents();
var div = document.createElement('div');
div.appendChild(clonedSelection);
return div.innerHTML;
}
}
}
};
//=====================================================================//
// METHOD: get_selection //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: in_array //
//=====================================================================//
/**
* Coppies the PHP in_array function. This is useful for Objects.
* @access private
*/
var in_array=function(o,a){
for (var i in a){ if((i===o)){return true;} }
return false;
};
//=====================================================================//
// METHOD: in_array //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: insert_text //
//=====================================================================//
/**
* Inserts text at the cursor position or selection
* @access private
*/
var insert_text = function(text,start,end){
if($.browser.msie){
d.iframe.contentWindow.focus();
if(typeof d.idoc.selection !== "undefined" && d.idoc.selection.type !== "Text" && d.idoc.selection.type !== "None"){start = false;d.idoc.selection.clear();}
var sel = d.idoc.selection.createRange();sel.pasteHTML(text);
if (text.indexOf("\n") === -1) {
if (start === false) {} else {
if (typeof start !== "undefined") {
sel.moveStart("character", - text.length + start);
sel.moveEnd("character", - end);
} else {
sel.moveStart("character", - text.length);
}
}
sel.select();
}
}else{
d.idoc.execCommand("insertHTML", false, text);
}
// Updating the textarea component, so whenever it is posted it will send all the data
if ($("#"+d.id).is(":visible") === false) {
var html = $("#1"+d.id).is(":visible")?$("#"+d.id).val():html = d.iframe.contentWindow.document.body.innerHTML;
html = (typeof getXHTML === 'function')?getXHTML(html):html;
$("#"+d.id).val(html);
if(urm){urm.add(html);} // Undo Redo
if(undefined!==d.change){d.change();}
}
};
//=====================================================================//
// METHOD: insert_text //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: keyup //
//=====================================================================//
/**
* Keyup event.
* @access private
*/
var keyup = function(e){
// Updating the textarea component, so whenever it is posted it will send all the data
var html = $("#1"+d.id).is(":visible")?$("#"+d.id).val():html = d.iframe.contentWindow.document.body.innerHTML;
if(urm){urm.add(html);} // Undo Redo
html = (typeof getXHTML === 'function')?getXHTML(html):html;
$("#"+d.id).val(html);
if(undefined!==d.change){d.change();}
};
//=====================================================================//
// METHOD: keyup //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: style //
//=====================================================================//
/**
* Sets the CSS style to the HtmlBox iframe
* @access private
*/
var style = function(){
// START: HtmlBox Style
if(d.css.indexOf("background:")===-1){d.css+="body{background:white;}";}
if(d.css.indexOf("background-image:")===-1){
d.css=d.css+"body{background-image:url("+d.idir+"logo.gif);background-position:top right;background-repeat:no-repeat;}";
}
if( d.idoc.createStyleSheet) {
d.idoc.createStyleSheet().cssText=d.css;
}else {
var css=d.idoc.createElement('link');
css.rel='stylesheet'; css.href='data:text/css,'+escape(d.css);
if($.browser.opera){
d.idoc.documentElement.appendChild(css);
}else{
d.idoc.getElementsByTagName("head")[0].appendChild(css);
}
}
// END: HtmlBox Style
};
//=====================================================================//
// METHOD: style //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: toolbar //
//=====================================================================//
/**
* The toolbar of HtmlBox
* @return this
* @access private
*/
var toolbar=function(){
var h = "";
if(d.about&&!in_array(d.toolbars[0],"about")){d.toolbars[0][d.toolbars[0].length]="separator";d.toolbars[0][d.toolbars[0].length]="about";}
for(var k=0;k<d.toolbars.length;k++){
var toolbar = d.toolbars[k];
h += "<tr><td class='"+d.id+"_tb' valign='middle'><table cellspacing='1' cellpadding='0'>";
for(var i=0;i<(toolbar.length);i++){
var img = (d.icons==="default")?d.idir+"default/"+toolbar[i]+".gif":d.idir+d.icons+"/"+toolbar[i]+".png";
if(undefined===toolbar[i]){continue;}
// START: Custom button
else if(typeof(toolbar[i])!=='string'){
img = d.idir+d.icons+"/"+toolbar[i].icon;
var cmd = "var cmd = unescape(\""+escape( toolbar[i].command.toString() )+"\");eval(\"var fn=\"+cmd);fn()'";
h += "<td class='"+d.id+"_html_button' valign='middle' align='center' onclick='"+cmd+"' title='"+toolbar[i].tooltip+"'><image src='"+img+"'></td>";
}
// END: Custom button
else if(toolbar[i]==="separator"){h += "<td valign='middle' align='center'><image src='"+d.idir+"separator.gif' style='margin-right:1px;margin-left:3px;height:13px;'></td>";}
else if(toolbar[i]==="fontsize"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_fontsize' onchange='global_hb[\""+d.id+"\"].cmd(\"fontsize\",this.options[this.selectedIndex].value)' style='font-size:12px;'><option value='' selected>- SIZE -</option><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option></select></td>";
}else if(toolbar[i]==="fontfamily"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_fontfamily' onchange='global_hb[\""+d.id+"\"].cmd(\"fontname\",this.options[this.selectedIndex].value)' style='font-size:12px;'><option value='' selected>- FONT -</option><option value='arial' style='font-family:arial;'>Arial</option><option value='courier' style='font-family:courier;'>Courier</option><option value='cursive' style='font-family:cursive;'>Cursive</option><option value='georgia' style='font-family:georgia;'>Georgia</option><option value='monospace' style='font-family:monospace;'>Monospace</option><option value='tahoma' style='font-family:tahoma;'>Tahoma</option><option value='verdana' style='font-family:verdana;'>Verdana</option></select></td>";
}else if(toolbar[i]==="formats"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_formats' onchange='global_hb[\""+d.id+"\"].cmd(\"format\",this.options[this.selectedIndex].value)' style='font-size:12px;'><option value='' selected>- FORMATS -</option><option value='h1'>Heading 1</option><option value='h2'>Heading 2</option><option value='h3'>Heading 3</option><option value='h4'>Heading 4</option><option value='h5'>Heading 5</option><option value='h6'>Heading 6</option><option value='p'>Paragraph</option><option value='pindent'>First Indent</option><option value='pre'>Preformatted</option></select></td>";
}else if(toolbar[i]==="fontcolor"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_fontcolor' onchange='global_hb[\""+d.id+"\"].cmd(\"fontcolor\",this.options[this.selectedIndex].value)' style='font-size:12px;'><option value='' selected>-COLOR-</option>";
for(var m=0;m<colors.length;m++){ if(m%2){continue;}
h+="<option value='"+colors[m]+"' style='background:"+colors[m]+";color:"+colors[m]+";'>"+colors[m]+"</option>";
}
h += "</select></td>";
}else if(toolbar[i]==="highlight"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_highlight' onchange='global_hb[\""+d.id+"\"].cmd(\"backcolor\",this.options[this.selectedIndex].value)' style='font-size:12px;'><option value='' selected>-HIGHLIGHT-</option>";
for(var n=0;n<colors.length;n++){ if(n%2){continue;}
h+="<option value='"+colors[n]+"' style='background:"+colors[n]+";color:"+colors[n]+";'>"+colors[n]+"</option>";
}
h += "</select></td>";
}else if(toolbar[i]==="styles"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_styles' onchange='global_hb[\""+d.id+"\"].cmd(\"styles\",this.options[this.selectedIndex].value);this.options[0].selected=\"true\";' style='font-size:12px;' style='background:white;'><option value='' selected>-STYLES-</option>";
for(var o=0;o<styles.length;o++){ if(o%2){continue;}
h+="<option value='"+o+"' style='background:white;color:red;'>"+styles[o][0]+"</option>";
}
h += "</select></td>";
}else if(toolbar[i]==="syntax"){
h += "<td valign='middle' align='center'><select id='"+d.id+"_syntax' onchange='global_hb[\""+d.id+"\"].cmd(\"syntax\",this.options[this.selectedIndex].value);this.options[0].selected=\"true\";' style='font-size:12px;'><option value='' selected>-SYNTAX-</option>";
for(var p=0;p<syntax.length;p++){ if(p%2){continue;}
h+="<option value='"+p+"' style='background:white;color:red;'>"+syntax[p][0]+"</option>";
}
h += "</select></td>";
}
// Commands
var cmds = {"about":"About","bold":"Bold","center":"Center","code":"View Code","copy":"Copy","cut":"Cut","hr":"Insert Line","link":"Insert Link","image":"Insert Image","indent":"Indent","italic":"Italic","justify":"Justify","left":"Left","ol":"Numbered List","outdent":"Outdent","paragraph":"Insert Paragraph","paste":"Paste","quote":"Quote","redo":"Redo","removeformat":"Remove Format","right":"Right","strike":"Strikethrough","striptags":"Strip Tags","sub":"Subscript","sup":"Superscript","ul":"Bulleted List","underline":"Underline","undo":"Undo","unlink":"Remove Link"};
if(in_array(toolbar[i],cmds)){h += "<td class='"+d.id+"_html_button' valign='middle' align='center' onclick='global_hb[\""+d.id+"\"].cmd(\""+toolbar[i]+"\")' title='"+cmds[toolbar[i]]+"'><image src='"+img+"'></td>";}
}
h += "</table></td></tr>";
}
return h;
};
//=====================================================================//
// METHOD: toolbar //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: wrap_tags //
//=====================================================================//
/**
* Wraps tags around the cursor position or selection
* @access private
*/
this.wrap_tags = function(start,end){
var sel = get_selection();
if(undefined===sel){sel="";}
if(undefined===end){end="";}
insert_text(start+sel+end,start.length,end.length);
};
//=====================================================================//
// METHOD: wrap_tags //
//========================== END OF METHOD ============================//
// -------------- END: PRIVATE METHODS ------------------//
// ------------- START: PUBLIC METHODS -----------------//
//========================= START OF METHOD ===========================//
// METHOD: _init //
//=====================================================================//
/**
* Draws the HtmlBox on the screen
* @return this
* @access private
*/
this._init = function(is_init){
if(undefined===window.global_hb){global_hb=[];}
if(!$(this).attr("id")){$(this).attr("id","jqhb_"+global_hb.length);d.id="jqhb_"+global_hb.length;global_hb[d.id]=global_hb;}else{d.id=$(this).attr("id");}
if(undefined === global_hb[d.id]){global_hb[d.id]=this;}
// START: Timeout to allow creation of DesignMode
//if(undefined===is_init){setTimeout("global_hb['"+d.id+"'].init(true)",250);return false;}
// END: Timeout to allow creation of DesignMode
d.ta_wrap_id = d.id+"_wrap";
var w=$(this).css("width");var h=$(this).css("height");$(this).wrap("<table id='"+d.id+"_wrap' width='"+w+"' style='height:"+h+";border:2px solid #E9EAEF;' cellspacing='0' cellpadding='0'><tr><td id='"+d.id+"_container'></td></tr></table>");
// START: Appending toolbar
$(this).parent().parent().parent().parent().prepend(toolbar());
$("."+d.id+"_tb").height(d.toolbar_height);
$("."+d.id+"_html_button").each(function(){
// Set tool dimension
$(this).width(d.tool_width).height(d.tool_height);
// Set image dimension
$(this).find("image").each(function(){$(this).width(d.tool_image_width).height(d.tool_image_height);});
// Set borders
$(this).css("border","1px solid transparent").css("background","transparent").css("margin","1px 1px 1px 1px").css("padding","1px");
$(this).mouseover(function(){$(this).css("border","1px solid #BFCAFF").css("background","#EFF2FF");});
$(this).mouseout(function(){$(this).css("border","1px solid transparent").css("background","transparent");});
}
);
// Selectors
$("."+d.id+"_tb").find("select").each(function(){
$(this).css("border","1px solid #E9EAEF").css("background","transparent").css("margin","2px 2px 3px 2px");
if($.browser.mozilla){$(this).css("padding","0").css("position","relative").css("top","-2px");}
}
);
// END: Appending toolbar
// START: Skin
// default
var hb_border = "1px solid #7F7647";
var hb_background = "#DFDDD1";
var tb_border = "1px solid #7F7647";
if(d.skin==="blue"){
hb_border = "1px solid #7E9DB9";
hb_background = "#D7E3F2";
tb_border = "1px solid #7E9DB9";
}
if(d.skin==="red"){
hb_border = "1px solid #B91E00";
hb_background = "#FFD7CF";
tb_border = "1px solid #B91E00";
}
if(d.skin==="green"){
hb_border = "1px solid #8DB900";
hb_background = "#D5EF86";
tb_border = "1px solid #8DB900";
}
if(d.skin==="silver"){
hb_border = "1px solid #DDDDDD";
hb_background = "#F4F4F3";
tb_border = "1px solid #DDDDDD";
}
$("#"+d.id+"_wrap").css("border",hb_border);
$("#"+d.id+"_wrap").css("background",hb_background);
$("#"+d.id+"_container").css("background","white");
$("."+d.id+"_tb").css("border-bottom",tb_border);
//$("."+d.id+"_tb").css("background-image","url("+d.idir+"bg_blue.gif)");
//style='background:silver;border-bottom:1px outset white'
// END: Skin
try {
var iframe=document.createElement("IFRAME");// var doc=null;
$(iframe).css("width",w).css("height",h).attr("id",d.id+"_html").css("border","0");
$(this).parent().prepend(iframe);
// START: Shortcuts for less code
d.iframe = iframe;
d.idoc = iframe.contentWindow.document;
// END: Shortcuts
d.idoc.designMode="on";
// START: Insert text
// Is there text in the textbox?
var text = ($(this).val()==="")?"":$(this).val();
if($.browser.mozilla||$.browser.safari){
//if(text===""){text="&nbsp;";}
d.idoc.open('text/html', 'replace'); d.idoc.write(text); d.idoc.close();
}else{
if(text!==""){d.idoc.write(text);}
else{
// Needed by IE to initialize the iframe body
if($.browser.msie){d.idoc.write("&nbsp;");}
}
}
// Needed by browsers other than MSIE to become editable
if($.browser.msie===false){iframe.contentWindow.document.body.contentEditable = true;}
// END: Insert text
// START: HtmlBox Style
if(d.css.indexOf("background:")===-1){d.css+="body{background:white;}";}
if(d.css.indexOf("background-image:")===-1){
d.css=d.css+"body{background-image:url("+d.idir+"logo.gif);background-position:top right;background-repeat:no-repeat;}";
}
if(d.idoc.createStyleSheet) {
setTimeout("global_hb['"+d.id+"'].set_text(global_hb['"+d.id+"'].get_html())",10);
}else {style();}
// END: HtmlBox Style
// START: Adding events
if(iframe.contentWindow.document.attachEvent){
iframe.contentWindow.document.attachEvent("onkeyup", keyup);
}else{
iframe.contentWindow.document.addEventListener("keyup",keyup,false);
}
$(this).hide();
}catch(e){
alert("This rich text component is not supported by your browser.\n"+e);
$(this).show();
}
return this;
};
//=====================================================================//
// METHOD: _init //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: cmd //
//=====================================================================//
/**
* Executes a user-specified command
* @since 2.0
* @return this
*/
this.cmd = function(cmd,arg1){
// When user clicks toolbar button make sure it always targets its respective WYSIWYG
d.iframe.contentWindow.focus();
// START: Prepare commands
if(cmd==="paragraph"){cmd="format";arg1="p";}
var cmds = {"center":"justifycenter","hr":"inserthorizontalrule","justify":"justifyfull","left":"justifyleft","ol":"insertorderedlist","right":"justifyright","strike":"strikethrough","sub":"subscript","sup":"superscript","ul":"insertunorderedlist"};
if(in_array(cmd,cmds)){cmd=cmds[cmd];}
// END: Prepare commands
if(cmd==="code"){
var text = this.get_html();
if($("#"+d.id).is(":visible")){
$("#"+d.id).hide();
$("#"+d.id+"_html").show();
this.set_text(text);
}else{
$("#"+d.id).show();
$("#"+d.id+"_html").hide();
this.set_text(text);
$("#"+d.id).focus();
}
}else if(cmd==="link"){
d.idoc.execCommand("createlink", false, prompt("Paste Web Address URL Here:"));
}else if(cmd==="image"){
d.idoc.execCommand("insertimage", false, prompt("Paste Image URL Here:"));
}else if(cmd==="fontsize"){
d.idoc.execCommand(cmd, false,arg1);
}else if(cmd==="backcolor"){
if($.browser.msie){
d.idoc.execCommand("backcolor", false,arg1);
}else{
d.idoc.execCommand("hilitecolor", false,arg1);
}
}else if(cmd==="fontcolor"){
d.idoc.execCommand("forecolor", false,arg1);
}else if(cmd==="fontname"){
d.idoc.execCommand(cmd, false, arg1);
}else if(cmd==="cut"){
if($.browser.msie === false){
alert("Available in IExplore only.\nUse CTRL+X to cut text!");
}else{
d.idoc.execCommand('Cut');
}
}else if(cmd==="copy"){
if($.browser.msie === false){
alert("Available in IExplore only.\nUse CTRL+C to copy text!");
}else{
d.idoc.execCommand('Copy');
}
}else if(cmd==="paste"){
if($.browser.msie === false){
alert("Available in IExplore only.\nUse CTRL+V to paste text!");
}else{
d.idoc.execCommand('Paste');
}
}else if(cmd==="format"){
if(arg1==="pindent"){this.wrap_tags('<p style="text-indent:20px;">','</p>');}
else if(arg1!==""){d.idoc.execCommand('formatBlock', false, "<"+arg1+">");}
}else if(cmd==="striptags"){
var sel = get_selection();
sel = sel.replace(/(<([^>]+)>)/ig,"");
insert_text(sel);
}else if(cmd==="quote"){
this.wrap_tags('<br /><div style="position:relative;top:10px;left:11px;font-size:11px;font-family:verdana;">Quote</div><div class="quote" contenteditable="true" style="border:1px inset silver;margin:10px;padding:5px;background:#EFF7FF;">','</div><br />');
}else if(cmd==="styles"){
this.wrap_tags(styles[arg1][1],styles[arg1][2]);
}else if(cmd==="syntax"){
this.wrap_tags(syntax[arg1][1],syntax[arg1][2]);
}else if(cmd==="bold"){
this.wrap_tags("<b>","</b>");
}else if(cmd==="undo"&&urm){
if(urm.can_undo()){
var undo = urm.undo();
this.set_text(undo);
return true;
}
}else if(cmd==="redo"&&urm){
if(urm.can_redo()){
var redo = urm.redo();
this.set_text(redo);
return true;
}
}else if(cmd==="about"){
var about = "<p>HtmlBox is a modern, cross-browser, interactive, open-source text area built on top of the excellent jQuery library.</p>";
about += "<p style='margin:2px;'><b>Official Website:</b> <a href='http://remiya.com' target='_blank'>http://remiya.com</a></p>";
about += "<p style='margin:2px;'><b>License:</b> MIT license</p>";
about += "<p style='margin:2px;'><b>Version:</b> 4.0</p>";
about += "<p style='margin:2px;'><b>Credits:</b></p>";
about += "<p style='margin:2px;padding-left:20px;'><a href='http://jquery.com/' target='_blank'>JQuery (JavaScript Framework)</a></p>";
about += "<p style='margin:2px;padding-left:20px;'><a href='http://www.famfamfam.com/lab/icons/silk/' target='_blank'>Silk (Icon Set)</a></p>";
var html = '<table cellspacing="3" cellpadding="0" width="100%" height="100%" style="background:#D7E3F2;border:2px solid #7E9DB9;font-family:verdana;font-size:12px;">';
html += '<tr><td align="center" valign="middle" height="30" style="font-size:16px;"><b>About HtmlBox</b></td></tr>';
html += '<tr><td style="border:1px solid #7E9DB9;background:white;font-size:11px;" valign="top"><div style="overflow:auto;height:140px;" >'+about+'</div></td></tr>';
html += '<tr><td height="20"><table width="100%" style="font-family:verdana;font-size:10px;"><tr><td align="left">Copyright&copy;2009 Remiya Solutions<br>All right reserved!</td><td align="right"><button style="width:60px;height:24px;font-family:verdana;font-size:11px;" onclick="$(\'#'+d.id+'_about\').fadeOut(500);">Close</button></td></tr></table></td></tr>';
html += '</table>';
var w = 300;var h = 200;
var top = ($(window).height()-200)/2+$(document).scrollTop();
var left = ($(window).width()-300)/2;
if ($("#"+d.id+"_about").length === 0){
$("body").append("<div id='"+d.id+"_about' style='display:none;position:absolute;background:red;width:"+w+"px;height:"+h+"px;top:"+top+"px;left:"+left+"px;'>about</div>");
$("#"+d.id+"_about").html(html);
}else{
$("#"+d.id+"_about").css("top",top);
$("#"+d.id+"_about").css("left",left);
}
$("#"+d.id+"_about").focus();
$("#"+d.id+"_about").fadeIn(1000);
}else{
d.idoc.execCommand(cmd, false, null);
}
//Setting the changed text to textearea
if($("#"+d.id).is(":visible")===false){
$("#"+d.id).val(this.get_html());
// Register change
if(urm){urm.add(this.get_html());}
if(undefined!==d.change){d.change();}
}
};
//=====================================================================//
// METHOD: cmd //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: get_text //
//=====================================================================//
/**
* Returns the text without tags of the HtmlBox
* @since 1.2
* @return this
*/
this.get_text = function(){
// Is textbox visible?
if($("#"+d.id).is(":visible")){ return $("#"+d.id).val(); }
// Iframe is visible
var text;
if($.browser.msie){
text = d.iframe.contentWindow.document.body.innerText;
}else{
var html = d.iframe.contentWindow.document.body.ownerDocument.createRange();
html.selectNodeContents(d.iframe.contentWindow.document.body);
text = html;
}
return text;
};
//=====================================================================//
// METHOD: get_text //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: set_text //
//=====================================================================//
/**
* Sets the text as a content of the HtmlBox
* @since 1.2
* @return this
*/
this.set_text = function(txt){
var text = (undefined===txt)?"":txt;
if(text==="" && $.browser.safari){text = "&nbsp;";}// Bug in Chrome and Safari
// Is textarea visible? Writing to it.
if($("#"+d.id).is(":visible")){
$("#"+d.id).val(text);
}else{
// Textarea not visible. write to iframe
if($.browser.mozilla||$.browser.safari){
//if($.trim(text)===""){text="&nbsp;";}
d.idoc.open('text/html', 'replace'); d.idoc.write(text); d.idoc.close();
}else{
d.idoc.body.innerHTML = "";
if(text!==""){d.idoc.write(text);}
}
style(); // Setting the CSS style for the iframe
d.idoc.body.contentEditable = true;
}
if(urm){urm.add(this.get_html());}
if(undefined!==d.change){d.change();}
return this;
};
//=====================================================================//
// METHOD: set_text //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: get_html //
//=====================================================================//
/**
* Returns the (X)HTML content of the HtmlBox
* @return this
*/
this.get_html = function(){
var html;
if($("#"+d.id).is(":visible")){
html = $("#"+d.id).val();
}else{
html = d.iframe.contentWindow.document.body.innerHTML;
}
if(typeof getXHTML === 'function'){ return getXHTML(html); }else{return html;}
};
//=====================================================================//
// METHOD: get_html //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: change //
//=====================================================================//
/**
* Specifies a function to be executed on text change in the HtmlBox
*/
this.change=function(fn){d.change=fn;return this;};
//=====================================================================//
// METHOD: change //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: remove //
//=====================================================================//
/**
* Removes the HtmlBox instance from the DOM and the globalspace
*/
this.remove = function(){
global_hb[d.id]=undefined;
$("#"+d.id+"_wrap").remove();
if ($("#"+d.id+"_about").length === 0){$("#"+d.id+"_about").remove();}
};
//=====================================================================//
// METHOD: remove //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: post //
//=====================================================================//
/**
* Posts the form data to the specified URL using Ajax
* @param String the URL to post to
* @param String the text to be posted, default the (X)HTML text
* @return this;
*/
this.post=function(url,data){
if(undefined===data){data=this.get_html();} data=(d.id+"="+data);
$.ajax({type: "POST", data: data,url: url,dataType: "html",error:d.error,success:d.success});
};
//=====================================================================//
// METHOD: post //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: get //
//=====================================================================//
/**
* Gets the form data to the specified URL using Ajax
* @param String the URL to get to
* @param String the text to be posted, default the (X)HTML text
* @return this;
*/
this.get=function(url,data){
if(undefined===data){data=this.get_html();} data=(d.id+"="+data);
$.ajax({type: "GET", data: data,url: url,dataType: "html",error:d.error,success:d.success});
};
//=====================================================================//
// METHOD: get //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: success //
//=====================================================================//
/**
* Specifies what is to be executed on successful Ajax POST or GET
*/
this.success=function(fn){d.success=fn;return this;};
//=====================================================================//
// METHOD: success //
//========================== END OF METHOD ============================//
//========================= START OF METHOD ===========================//
// METHOD: error //
//=====================================================================//
/**
* Specifies what is to be executed on error Ajax POST or GET
* @return {HtmlBox} the instance of this HtmlBox
*/
this.error=function(fn){d.error=fn;return this;};
//=====================================================================//
// METHOD: error //
//========================== END OF METHOD ============================//
// -------------- END: PUBLIC METHODS ------------------//
this._init(false);
return this;
};
})(jQuery);
//===========================================================================//
// CLASS: HtmlBox //
//============================== END OF CLASS ===============================//
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(x($){$.1q.4L=x(1d){j 1e=(1i G.3n===\'x\')?G.3n():[\'2d\',\'2d\',\'1r\',\'1r\',\'3o\',\'3o\',\'3p\',\'3p\',\'1N\',\'1N\',\'2B\',\'2B\',\'2C\',\'2C\',\'3q\',\'3q\',\'3r\',\'3r\'];j 1w=(1i G.3s===\'x\')?G.3s():[[\'3t 4M\',\'\',\'\']];j 1x=(1i G.3u===\'x\')?G.3u():[[\'3t 4N\',\'\',\'\']];j Q=(1i 3v===\'x\')?3w 3v():D;j d={1y:[["2D","3x","3y"]],1j:"./4O/",1W:"2e",R:1s,1X:"2e",4P:"4Q",3z:24,3A:16,3B:16,3C:16,3D:16,q:"S{11:2E;B-17:1F;B-U:1Y;}p{11:4R;}",1G:x(L){1Z(L)},1H:x(a,b,c){I f}};d=$.4S(d,1d);8(d.1j.4T(d.1j.M-1)!=="/"){d.1j+="/"}j 2F=x(){j 1t;8($.K.1u){1t=d.H.O.G.1f.2G();8(1t.3E&&1t.y){I 1t.3E}}l{8(d.H.O.3F){j 1f=d.H.O.3F();8(1f.3G>0&&2f.3H){1t=1f.3I(0);j v=3w 3H().4U(1t.3J());I v}8(1f.3G>0){1t=1f.3I(0);j 3K=1t.3J();j 18=G.2H(\'18\');18.2I(3K);I 18.21}}}};j 2g=x(o,a){1I(j i 2h a){8((i===o)){I 1s}}I D};j 2J=x(y,1z,1J){8($.K.1u){d.H.O.2i();8(1i d.u.1f!=="T"&&d.u.1f.2j!=="4V"&&d.u.1f.2j!=="4W"){1z=D;d.u.1f.4X()}j W=d.u.1f.2G();W.4Y(y);8(y.22("\\n")===-1){8(1z===D){}l{8(1i 1z!=="T"){W.3L("2K",-y.M+1z);W.4Z("2K",-1J)}l{W.3L("2K",-y.M)}}W.P()}}l{d.u.12("50",D,y)}8($("#"+d.9).1k(":1A")===D){j v=$("#1"+d.9).1k(":1A")?$("#"+d.9).1l():v=d.H.O.G.S.21;v=(1i 1O===\'x\')?1O(v):v;$("#"+d.9).1l(v);8(Q){Q.2k(v)}8(T!==d.1m){d.1m()}}};j 2l=x(e){j v=$("#1"+d.9).1k(":1A")?$("#"+d.9).1l():v=d.H.O.G.S.21;8(Q){Q.2k(v)}v=(1i 1O===\'x\')?1O(v):v;$("#"+d.9).1l(v);8(T!==d.1m){d.1m()}};j t=x(){8(d.q.22("A:")===-1){d.q+="S{A:1r;}"}8(d.q.22("A-1n:")===-1){d.q=d.q+"S{A-1n:1B("+d.1j+"3M.2m);A-23:1g 1K;A-2n:3N-2n;}"}8(d.u.2L){d.u.2L().51=d.q}l{j q=d.u.2H(\'2M\');q.52=\'53\';q.2o=\'L:y/q,\'+3O(d.q);8($.K.54){d.u.55.2I(q)}l{d.u.56("57")[0].2I(q)}}};j E=x(){j h="";8(d.R&&!2g(d.1y[0],"R")){d.1y[0][d.1y[0].M]="2N";d.1y[0][d.1y[0].M]="R"}1I(j k=0;k<d.1y.M;k++){j E=d.1y[k];h+="<19><z 2p=\'"+d.9+"2q\' 13=\'1a\'><1C 2O=\'1\' 2P=\'0\'>";1I(j i=0;i<(E.M);i++){j 2r=(d.1W==="2e")?d.1j+"2e/"+E[i]+".2m":d.1j+d.1W+"/"+E[i]+".58";8(T===E[i]){25}l 8(1i(E[i])!==\'59\'){2r=d.1j+d.1W+"/"+E[i].5a;j r="j r = 5b(\\""+3O(E[i].5c.5d())+"\\");5e(\\"j 1q=\\"+r);1q()\'";h+="<z 2p=\'"+d.9+"2Q\' 13=\'1a\' 14=\'15\' 2R=\'"+r+"\' 3P=\'"+E[i].5f+"\'><1n 2S=\'"+2r+"\'></z>"}l 8(E[i]==="2N"){h+="<z 13=\'1a\' 14=\'15\'><1n 2S=\'"+d.1j+"2N.2m\' t=\'11-1K:F;11-1b:2E;Y:5g;\'></z>"}l 8(E[i]==="2T"){h+="<z 13=\'1a\' 14=\'15\'><P 9=\'"+d.9+"5h\' 1L=\'J[\\""+d.9+"\\"].r(\\"2T\\",f.1d[f.1M].s)\' t=\'B-U:1D;\'><g s=\'\' 1v>- 5i -</g><g s=\'1\'>1</g><g s=\'2\'>2</g><g s=\'3\'>3</g><g s=\'4\'>4</g><g s=\'5\'>5</g><g s=\'6\'>6</g><g s=\'7\'>7</g></P></z>"}l 8(E[i]==="5j"){h+="<z 13=\'1a\' 14=\'15\'><P 9=\'"+d.9+"5k\' 1L=\'J[\\""+d.9+"\\"].r(\\"3Q\\",f.1d[f.1M].s)\' t=\'B-U:1D;\'><g s=\'\' 1v>- 5l -</g><g s=\'3R\' t=\'B-17:3R;\'>5m</g><g s=\'3S\' t=\'B-17:3S;\'>5n</g><g s=\'3T\' t=\'B-17:3T;\'>5o</g><g s=\'3U\' t=\'B-17:3U;\'>5p</g><g s=\'3V\' t=\'B-17:3V;\'>5q</g><g s=\'3W\' t=\'B-17:3W;\'>5r</g><g s=\'1F\' t=\'B-17:1F;\'>5s</g></P></z>"}l 8(E[i]==="5t"){h+="<z 13=\'1a\' 14=\'15\'><P 9=\'"+d.9+"5u\' 1L=\'J[\\""+d.9+"\\"].r(\\"2U\\",f.1d[f.1M].s)\' t=\'B-U:1D;\'><g s=\'\' 1v>- 5v -</g><g s=\'5w\'>1P 1</g><g s=\'5x\'>1P 2</g><g s=\'5y\'>1P 3</g><g s=\'5z\'>1P 4</g><g s=\'5A\'>1P 5</g><g s=\'5B\'>1P 6</g><g s=\'p\'>3X</g><g s=\'3Y\'>5C 3Z</g><g s=\'5D\'>5E</g></P></z>"}l 8(E[i]==="2V"){h+="<z 13=\'1a\' 14=\'15\'><P 9=\'"+d.9+"5F\' 1L=\'J[\\""+d.9+"\\"].r(\\"2V\\",f.1d[f.1M].s)\' t=\'B-U:1D;\'><g s=\'\' 1v>-5G-</g>";1I(j m=0;m<1e.M;m++){8(m%2){25}h+="<g s=\'"+1e[m]+"\' t=\'A:"+1e[m]+";2s:"+1e[m]+";\'>"+1e[m]+"</g>"}h+="</P></z>"}l 8(E[i]==="5H"){h+="<z 13=\'1a\' 14=\'15\'><P 9=\'"+d.9+"5I\' 1L=\'J[\\""+d.9+"\\"].r(\\"2W\\",f.1d[f.1M].s)\' t=\'B-U:1D;\'><g s=\'\' 1v>-5J-</g>";1I(j n=0;n<1e.M;n++){8(n%2){25}h+="<g s=\'"+1e[n]+"\' t=\'A:"+1e[n]+";2s:"+1e[n]+";\'>"+1e[n]+"</g>"}h+="</P></z>"}l 8(E[i]==="1w"){h+="<z 13=\'1a\' 14=\'15\'><P 9=\'"+d.9+"5K\' 1L=\'J[\\""+d.9+"\\"].r(\\"1w\\",f.1d[f.1M].s);f.1d[0].1v=\\"1s\\";\' t=\'B-U:1D;\' t=\'A:1r;\'><g s=\'\' 1v>-5L-</g>";1I(j o=0;o<1w.M;o++){8(o%2){25}h+="<g s=\'"+o+"\' t=\'A:1r;2s:1N;\'>"+1w[o][0]+"</g>"}h+="</P></z>"}l 8(E[i]==="1x"){h+="<z 13=\'1a\' 14=\'15\'><P 9=\'"+d.9+"5M\' 1L=\'J[\\""+d.9+"\\"].r(\\"1x\\",f.1d[f.1M].s);f.1d[0].1v=\\"1s\\";\' t=\'B-U:1D;\'><g s=\'\' 1v>-5N-</g>";1I(j p=0;p<1x.M;p++){8(p%2){25}h+="<g s=\'"+p+"\' t=\'A:1r;2s:1N;\'>"+1x[p][0]+"</g>"}h+="</P></z>"}j 1Q={"R":"40","2D":"5O","15":"5P","41":"5Q 5R","2t":"42","2X":"43","44":"2u 5S","2M":"2u 45","1n":"2u 46","47":"3Z","3x":"5T","48":"5U","1b":"5V","49":"5W 4a","5X":"5Y","4b":"2u 3X","2Y":"2v","2Z":"4c","26":"5Z","60":"4d 61","1K":"62","4e":"63","4f":"64 65","4g":"66","4h":"67","4i":"68 4a","3y":"69","27":"6a","6b":"4d 45"};8(2g(E[i],1Q)){h+="<z 2p=\'"+d.9+"2Q\' 13=\'1a\' 14=\'15\' 2R=\'J[\\""+d.9+"\\"].r(\\""+E[i]+"\\")\' 3P=\'"+1Q[E[i]]+"\'><1n 2S=\'"+2r+"\'></z>"}}h+="</1C></z></19>"}I h};f.1R=x(1z,1J){j W=2F();8(T===W){W=""}8(T===1J){1J=""}2J(1z+W+1J,1z.M,1J.M)};f.4j=x(6c){8(T===2f.J){J=[]}8(!$(f).2w("9")){$(f).2w("9","4k"+J.M);d.9="4k"+J.M;J[d.9]=J}l{d.9=$(f).2w("9")}8(T===J[d.9]){J[d.9]=f}d.6d=d.9+"28";j w=$(f).q("1o");j h=$(f).q("Y");$(f).6e("<1C 9=\'"+d.9+"28\' 1o=\'"+w+"\' t=\'Y:"+h+";1h:1c N #4l;\' 2O=\'0\' 2P=\'0\'><19><z 9=\'"+d.9+"4m\'></z></19></1C>");$(f).29().29().29().29().4n(E());$("."+d.9+"2q").Y(d.3z);$("."+d.9+"2Q").31(x(){$(f).1o(d.3B).Y(d.3A);$(f).4o("1n").31(x(){$(f).1o(d.3D).Y(d.3C)});$(f).q("1h","F N 2a").q("A","2a").q("11","F F F F").q("2b","F");$(f).6f(x(){$(f).q("1h","F N #6g").q("A","#6h")});$(f).6i(x(){$(f).q("1h","F N 2a").q("A","2a")})});$("."+d.9+"2q").4o("P").31(x(){$(f).q("1h","F N #4l").q("A","2a").q("11","1c 1c 2E 1c");8($.K.32){$(f).q("2b","0").q("23","4p").q("1g","-1c")}});j 1S="F N #4q";j 1T="#6j";j 1U="F N #4q";8(d.1X==="2C"){1S="F N #2x";1T="#4r";1U="F N #2x"}8(d.1X==="1N"){1S="F N #4s";1T="#6k";1U="F N #4s"}8(d.1X==="2B"){1S="F N #4t";1T="#6l";1U="F N #4t"}8(d.1X==="2d"){1S="F N #4u";1T="#6m";1U="F N #4u"}$("#"+d.9+"28").q("1h",1S);$("#"+d.9+"28").q("A",1T);$("#"+d.9+"4m").q("A","1r");$("."+d.9+"2q").q("1h-6n",1U);6o{j H=G.2H("6p");$(H).q("1o",w).q("Y",h).2w("9",d.9+"33").q("1h","0");$(f).29().4n(H);d.H=H;d.u=H.O.G;d.u.6q="4v";j y=($(f).1l()==="")?"":$(f).1l();8($.K.32||$.K.34){d.u.35(\'y/v\',\'36\');d.u.2c(y);d.u.4w()}l{8(y!==""){d.u.2c(y)}l{8($.K.1u){d.u.2c("&4x;")}}}8($.K.1u===D){H.O.G.S.4y=1s}8(d.q.22("A:")===-1){d.q+="S{A:1r;}"}8(d.q.22("A-1n:")===-1){d.q=d.q+"S{A-1n:1B("+d.1j+"3M.2m);A-23:1g 1K;A-2n:3N-2n;}"}8(d.u.2L){6r("J[\'"+d.9+"\'].1V(J[\'"+d.9+"\'].1E())",10)}l{t()}8(H.O.G.4z){H.O.G.4z("6s",2l)}l{H.O.G.6t("2l",2l,D)}$(f).37()}6u(e){1Z("6v 6w y 6x 1k 6y 6z 6A 6B K.\\n"+e);$(f).38()}I f};f.r=x(r,Z){d.H.O.2i();8(r==="4b"){r="2U";Z="p"}j 1Q={"15":"6C","44":"6D","48":"6E","1b":"6F","49":"6G","1K":"6H","4e":"6I","4g":"6J","4h":"6K","4i":"6L"};8(2g(r,1Q)){r=1Q[r]}8(r==="41"){j y=f.1E();8($("#"+d.9).1k(":1A")){$("#"+d.9).37();$("#"+d.9+"33").38();f.1V(y)}l{$("#"+d.9).38();$("#"+d.9+"33").37();f.1V(y);$("#"+d.9).2i()}}l 8(r==="2M"){d.u.12("6M",D,4A("2v 6N 6O 4B 4C:"))}l 8(r==="1n"){d.u.12("6P",D,4A("2v 46 4B 4C:"))}l 8(r==="2T"){d.u.12(r,D,Z)}l 8(r==="2W"){8($.K.1u){d.u.12("2W",D,Z)}l{d.u.12("6Q",D,Z)}}l 8(r==="2V"){d.u.12("6R",D,Z)}l 8(r==="3Q"){d.u.12(r,D,Z)}l 8(r==="2X"){8($.K.1u===D){1Z("39 2h 3a 3b.\\3c 3d+X 3e 2X y!")}l{d.u.12(\'43\')}}l 8(r==="2t"){8($.K.1u===D){1Z("39 2h 3a 3b.\\3c 3d+C 3e 2t y!")}l{d.u.12(\'42\')}}l 8(r==="2Y"){8($.K.1u===D){1Z("39 2h 3a 3b.\\3c 3d+V 3e 2Y y!")}l{d.u.12(\'2v\')}}l 8(r==="2U"){8(Z==="3Y"){f.1R(\'<p t="y-47:3f;">\',\'</p>\')}l 8(Z!==""){d.u.12(\'6S\',D,"<"+Z+">")}}l 8(r==="4f"){j W=2F();W=W.36(/(<([^>]+)>)/6T,"");2J(W)}l 8(r==="2Z"){f.1R(\'<3g /><18 t="23:4p;1g:3h;1b:1Y;B-U:1Y;B-17:1F;">4c</18><18 2p="2Z" 6U="1s" t="1h:F 6V 2d;11:3h;2b:6W;A:#6X;">\',\'</18><3g />\')}l 8(r==="1w"){f.1R(1w[Z][1],1w[Z][2])}l 8(r==="1x"){f.1R(1x[Z][1],1x[Z][2])}l 8(r==="2D"){f.1R("<b>","</b>")}l 8(r==="27"&&Q){8(Q.6Y()){j 27=Q.27();f.1V(27);I 1s}}l 8(r==="26"&&Q){8(Q.6Z()){j 26=Q.26();f.1V(26);I 1s}}l 8(r==="R"){j R="<p>4D 1k a 70, 71-K, 72, 35-73 y 74 75 4v 1g 76 77 78 4E 79.</p>";R+="<p t=\'11:1c;\'><b>7a 7b:</b> <a 2o=\'2y://4F.2z\' 3i=\'3j\'>2y://4F.2z</a></p>";R+="<p t=\'11:1c;\'><b>7c:</b> 7d 7e</p>";R+="<p t=\'11:1c;\'><b>7f:</b> 4.0</p>";R+="<p t=\'11:1c;\'><b>7g:</b></p>";R+="<p t=\'11:1c;2b-1b:3f;\'><a 2o=\'2y://7h.2z/\' 3i=\'3j\'>7i (7j 7k)</a></p>";R+="<p t=\'11:1c;2b-1b:3f;\'><a 2o=\'2y://7l.7m.2z/7n/1W/7o/\' 3i=\'3j\'>7p (7q 7r)</a></p>";j v=\'<1C 2O="3" 2P="0" 1o="3k%" Y="3k%" t="A:#4r;1h:1c N #2x;B-17:1F;B-U:1D;">\';v+=\'<19><z 14="15" 13="1a" Y="30" t="B-U:7s;"><b>40 4D</b></z></19>\';v+=\'<19><z t="1h:F N #2x;A:1r;B-U:1Y;" 13="1g"><18 t="7t:7u;Y:7v;" >\'+R+\'</18></z></19>\';v+=\'<19><z Y="20"><1C 1o="3k%" t="B-17:1F;B-U:3h;"><19><z 14="1b">7w&2t;7x 7y 7z<3g>7A 1K 7B!</z><z 14="1K"><4G t="1o:7C;Y:7D;B-17:1F;B-U:1Y;" 2R="$(\\\'#\'+d.9+\'1p\\\').7E(7F);">7G</4G></z></19></1C></z></19>\';v+=\'</1C>\';j w=4H;j h=4I;j 1g=($(2f).Y()-4I)/2+$(G).7H();j 1b=($(2f).1o()-4H)/2;8($("#"+d.9+"1p").M===0){$("S").7I("<18 9=\'"+d.9+"1p\' t=\'7J:7K;23:7L;A:1N;1o:"+w+"2A;Y:"+h+"2A;1g:"+1g+"2A;1b:"+1b+"2A;\'>R</18>");$("#"+d.9+"1p").v(v)}l{$("#"+d.9+"1p").q("1g",1g);$("#"+d.9+"1p").q("1b",1b)}$("#"+d.9+"1p").2i();$("#"+d.9+"1p").7M(7N)}l{d.u.12(r,D,7O)}8($("#"+d.9).1k(":1A")===D){$("#"+d.9).1l(f.1E());8(Q){Q.2k(f.1E())}8(T!==d.1m){d.1m()}}};f.7P=x(){8($("#"+d.9).1k(":1A")){I $("#"+d.9).1l()}j y;8($.K.1u){y=d.H.O.G.S.7Q}l{j v=d.H.O.G.S.7R.2G();v.7S(d.H.O.G.S);y=v}I y};f.1V=x(3l){j y=(T===3l)?"":3l;8(y===""&&$.K.34){y="&4x;"}8($("#"+d.9).1k(":1A")){$("#"+d.9).1l(y)}l{8($.K.32||$.K.34){d.u.35(\'y/v\',\'36\');d.u.2c(y);d.u.4w()}l{d.u.S.21="";8(y!==""){d.u.2c(y)}}t();d.u.S.4y=1s}8(Q){Q.2k(f.1E())}8(T!==d.1m){d.1m()}I f};f.1E=x(){j v;8($("#"+d.9).1k(":1A")){v=$("#"+d.9).1l()}l{v=d.H.O.G.S.21}8(1i 1O===\'x\'){I 1O(v)}l{I v}};f.1m=x(1q){d.1m=1q;I f};f.3m=x(){J[d.9]=T;$("#"+d.9+"28").3m();8($("#"+d.9+"1p").M===0){$("#"+d.9+"1p").3m()}};f.7T=x(1B,L){8(T===L){L=f.1E()}L=(d.9+"="+L);$.4J({2j:"7U",L:L,1B:1B,4K:"v",1H:d.1H,1G:d.1G})};f.7V=x(1B,L){8(T===L){L=f.1E()}L=(d.9+"="+L);$.4J({2j:"7W",L:L,1B:1B,4K:"v",1H:d.1H,1G:d.1G})};f.1G=x(1q){d.1G=1q;I f};f.1H=x(1q){d.1H=1q;I f};f.4j(D);I f}})(4E);',62,493,'||||||||if|id||||||this|option|||var||else|||||css|cmd|value|style|idoc|html||function|text|td|background|font||false|toolbar|1px|document|iframe|return|global_hb|browser|data|length|solid|contentWindow|select|urm|about|body|undefined|size||sel||height|arg1||margin|execCommand|valign|align|center||family|div|tr|middle|left|2px|options|colors|selection|top|border|typeof|idir|is|val|change|image|width|_about|fn|white|true|range|msie|selected|styles|syntax|toolbars|start|visible|url|table|12px|get_html|verdana|success|error|for|end|right|onchange|selectedIndex|red|getXHTML|Heading|cmds|wrap_tags|hb_border|hb_background|tb_border|set_text|icons|skin|11px|alert||innerHTML|indexOf|position||continue|redo|undo|_wrap|parent|transparent|padding|write|silver|default|window|in_array|in|focus|type|add|keyup|gif|repeat|href|class|_tb|img|color|copy|Insert|Paste|attr|7E9DB9|http|com|px|green|blue|bold|3px|get_selection|createRange|createElement|appendChild|insert_text|character|createStyleSheet|link|separator|cellspacing|cellpadding|_html_button|onclick|src|fontsize|format|fontcolor|backcolor|cut|paste|quote||each|mozilla|_html|safari|open|replace|hide|show|Available|IExplore|only|nUse|CTRL|to|20px|br|10px|target|_blank|100|txt|remove|htmlbox_colors|yellow|orange|brown|black|htmlbox_styles|No|htmlbox_syntax|htmlbox_undo_redo_manager|new|italic|underline|toolbar_height|tool_height|tool_width|tool_image_height|tool_image_width|htmlText|getSelection|rangeCount|XMLSerializer|getRangeAt|cloneContents|clonedSelection|moveStart|logo|no|escape|title|fontname|arial|courier|cursive|georgia|monospace|tahoma|Paragraph|pindent|Indent|About|code|Copy|Cut|hr|Link|Image|indent|justify|ol|List|paragraph|Quote|Remove|strike|striptags|sub|sup|ul|_init|jqhb_|E9EAEF|_container|prepend|find|relative|7F7647|D7E3F2|B91E00|8DB900|DDDDDD|on|close|nbsp|contentEditable|attachEvent|prompt|URL|Here|HtmlBox|jQuery|remiya|button|300|200|ajax|dataType|htmlbox|Styles|Syntax|images|output|xhtml|0px|extend|substring|serializeToString|Text|None|clear|pasteHTML|moveEnd|insertHTML|cssText|rel|stylesheet|opera|documentElement|getElementsByTagName|head|png|string|icon|unescape|command|toString|eval|tooltip|13px|_fontsize|SIZE|fontfamily|_fontfamily|FONT|Arial|Courier|Cursive|Georgia|Monospace|Tahoma|Verdana|formats|_formats|FORMATS|h1|h2|h3|h4|h5|h6|First|pre|Preformatted|_fontcolor|COLOR|highlight|_highlight|HIGHLIGHT|_styles|STYLES|_syntax|SYNTAX|Bold|Center|View|Code|Line|Italic|Justify|Left|Numbered|outdent|Outdent|Redo|removeformat|Format|Right|Strikethrough|Strip|Tags|Subscript|Superscript|Bulleted|Underline|Undo|unlink|is_init|ta_wrap_id|wrap|mouseover|BFCAFF|EFF2FF|mouseout|DFDDD1|FFD7CF|D5EF86|F4F4F3|bottom|try|IFRAME|designMode|setTimeout|onkeyup|addEventListener|catch|This|rich|component|not|supported|by|your|justifycenter|inserthorizontalrule|justifyfull|justifyleft|insertorderedlist|justifyright|strikethrough|subscript|superscript|insertunorderedlist|createlink|Web|Address|insertimage|hilitecolor|forecolor|formatBlock|ig|contenteditable|inset|5px|EFF7FF|can_undo|can_redo|modern|cross|interactive|source|area|built|of|the|excellent|library|Official|Website|License|MIT|license|Version|Credits|jquery|JQuery|JavaScript|Framework|www|famfamfam|lab|silk|Silk|Icon|Set|16px|overflow|auto|140px|Copyright|2009|Remiya|Solutions|All|reserved|60px|24px|fadeOut|500|Close|scrollTop|append|display|none|absolute|fadeIn|1000|null|get_text|innerText|ownerDocument|selectNodeContents|post|POST|get|GET'.split('|'),0,{}))
\ No newline at end of file
document.htmlbox_styles=function(){
return [
[
'Pull Orange - Right',
'<br /><div style="float: right; width: 150px; margin: 10px; padding:5px; background:gold; border:1px solid maroon;color:black;font-family: Arial,Helvetica,Georgia;font-weight:bold;line-height:140%;}">',
'</div><br />'
],
[
'Pull Orange - Left',
'<br /><div style="float: left; width: 150px; margin: 10px; padding:5px; background:gold; border:1px solid maroon;color:black;font-family: Arial,Helvetica,Georgia;font-weight:bold;line-height:140%;}">',
'</div><br />'
],
[
'Curly',
'<br /><table cellspacing="0" cellpadding="0"><tr><td style="border-top:1px solid #b8b8b8;border-left:1px solid #b8b8b8;padding-top:5px;padding-left:5px;">',
'</td><td style="border-top:1px solid #b8b8b8;border-right:1px solid #b8b8b8;font-size:1px;width:21px;height:17px;">&nbsp;</td></tr><tr><td width="*" style="border-bottom:1px solid #b8b8b8;border-left:1px solid #b8b8b8;font-size:1px;">&nbsp;</td><td style="width:21px;height:17px;"><img src="images/corner.gif" style="width:21px;height:17px;"></td></tr></table><br />'
]
];
};
\ No newline at end of file
document.htmlbox_syntax=function(){
return [
[
'Actionscript',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">Actionscript Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'ADA',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">ADA Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'Applescript',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">Applescript Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'ASP',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">ASP Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'Basic',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">Basic Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'C#',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">C# Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'C++',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">C++ Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'ColdFusion',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">ColdFusion Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'CSS',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;"CSS Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'HTML',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">HTML Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'Java',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">Java Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'JavaScript',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">JavaScript Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'Lisp',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">Lisp Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'Lua',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">Lua Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'MySQL',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">MySQL Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'Perl',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">Perl Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'PHP',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">PHP Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'Python',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">Python Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'Ruby',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">Ruby Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'Scheme',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">Scheme Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'SQL',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">SQL Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'VB.NET',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">VB.NET Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
],
[
'XML',
'<br /><div style="position:relative;top:10px;left:10px;font-size:11px;font-family:verdana;">XML Code</div><div class="asp" contenteditable="true" style="border:1px dashed silver;margin:10px;padding:5px;background:cornsilk;font-family:monospace;font-size:12px;">',
'</div><br />'
]
];
};
\ No newline at end of file
function htmlbox_undo_redo_manager(repeat) {
var r = false;
var d = [];
var p = 0;
this.d = function () {
return d;
};
this.add = function (o) {
if (d[p - 1] == o) return false;
d[p] = o;
p++;
d = d.slice(0, p);
};
this.can_redo = function () {
if (p >= d.length) {
return false;
}
return true;
};
this.can_undo = function () {
if (p < 1) {
return false;
}
return true;
};
this.clear = function () {
d = [];
p = 0;
};
this.undo = function () {
if (p < 1) {
return false;
}
p--;
return d[p - 1];
};
this.redo = function () {
if (p >= d.length) {
return false;
}
p++;
return d[p - 1];
};
}
\ No newline at end of file
/*
* 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 l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
/*
* Sizzle CSS Selector Engine - v0.9.3
* Copyright 2009, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
* More information: http://sizzlejs.com/
*/
(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
\ No newline at end of file
/*
Html2Xhtml : Javascript Mini HTML to XHTML Parser
-------------------------------------------------
Current version: 0.3
Copyright 2006 All rights reserved. Jacob Lee <letsgolee@lycos.co.kr>
Free for non-commercial && commercial use.
*/
function getXHTML(data){return new Html2Xhtml(data).parse()};function Html2Xhtml(data){this.data=data||''};Html2Xhtml.prototype.setHTML=function(data){this.data=data||this.data};Html2Xhtml.prototype.parse=function(){var state=0;var xhtml='';var p=0;var unget=false;var tagname='';var attrname='';var attrval='';var quot='';var data=this.data;var len=data.length;var phpval='';var tagtype=0;var insidepre=false;var codetype='';while(1){if(p>=len&&!unget){return xhtml}if(unget){unget=false}else{var c=data.substr(p++,1)}switch(state){case 0:if(c=='<'){state=1;break}xhtml+=c;break;case 1:if(/[a-zA-Z]/.test(c)){state=2;tagtype=1;tagname=c.toLowerCase();break}if(c=='/'){state=2;tagtype=-1;break}if(c=='!'){if(data.substr(p,2)=='--'){xhtml+='<!--';p+=2;state=9;break}xhtml+='<!';state=10;break}if(c=='?'||c=='%'){codetype=c;state=11;xhtml+='<'+c;break}xhtml+='&lt;';unget=true;state=0;break;case 2:if(Html2Xhtml.isSpaceChar[c]){xhtml+=(!insidepre&&tagtype>0&&Html2Xhtml.hasNLBefore[tagname]&&xhtml.length&&xhtml.substr(xhtml.length-1,1)!='\n'?'\n':'')+(tagtype>0?'<':'</')+tagname;state=3;break}if(c=='/'){xhtml+=(!insidepre&&tagtype>0&&Html2Xhtml.hasNLBefore[tagname]&&xhtml.length&&xhtml.substr(xhtml.length-1,1)!='\n'?'\n':'')+(tagtype>0?'<':'</')+tagname;if(data.substr(p,1)!='>'){state=3;break}state=4;break}if(c=='>'){xhtml+=(!insidepre&&tagtype>0&&Html2Xhtml.hasNLBefore[tagname]&&xhtml.length&&xhtml.substr(xhtml.length-1,1)!='\n'?'\n':'')+(tagtype>0?'<':'</')+tagname;unget=true;state=4;break}tagname+=c.toLowerCase();break;case 3:if(Html2Xhtml.isSpaceChar[c]){break}if(c=='/'){if(data.substr(p,1)!='>'){break}state=4;break}if(c=='>'){unget=true;state=4;break}attrname=c.toLowerCase();attrval='';state=5;break;case 4:xhtml+=(Html2Xhtml.isEmptyTag[tagname]?' />':'>')+(!insidepre&&tagtype<0&&Html2Xhtml.hasNLAfter[tagname]&&p<len&&data.substr(p,1)!='\n'?'\n':'');if(tagtype>0&&Html2Xhtml.dontAnalyzeContent[tagname]){state=13;attrname=attrval=quot='';tagtype=0;break}if(tagname=='pre'){insidepre=!insidepre}state=0;tagname=attrname=attrval=quot='';tagtype=0;break;case 5:if(Html2Xhtml.isSpaceChar[c]){xhtml+=' '+attrname;if(Html2Xhtml.isEmptyAttr[attrname]){xhtml+='="'+attrname+'"'}state=3;break}if(c=='/'){xhtml+=' '+attrname;if(Html2Xhtml.isEmptyAttr[attrname]){xhtml+='="'+attrname+'"'}if(data.substr(p,1)!='>'){state=3;break}state=4;break}if(c=='>'){xhtml+=' '+attrname;if(Html2Xhtml.isEmptyAttr[attrname]){xhtml+='="'+attrname+'"'}unget=true;state=4;break}if(c=='='){xhtml+=' '+attrname+'=';state=6;break}if(c=='"'||c=="'"){attrname+='?'}else{attrname+=c.toLowerCase()}break;case 6:if(Html2Xhtml.isSpaceChar[c]){xhtml+=(Html2Xhtml.isEmptyAttr[attrname]?'"'+attrname+'"':'""');state=3;break}if(c=='>'){xhtml+=(Html2Xhtml.isEmptyAttr[attrname]?'"'+attrname+'"':'""');unget=true;state=4;break}if(c=='/'&&data.substr(p,1)=='>'){xhtml+=(Html2Xhtml.isEmptyAttr[attrname]?'"'+attrname+'"':'""');state=4;break}if(c=='"'||c=="'"){quot=c;state=8;break}attrval=c;state=7;break;case 7:if(Html2Xhtml.isSpaceChar[c]){xhtml+='"'+Html2Xhtml.escapeQuot(attrval,'"')+'"';state=3;break}if(c=='/'&&data.substr(p,1)=='>'){xhtml+='"'+Html2Xhtml.escapeQuot(attrval,'"')+'"';state=4;break}if(c=='>'){unget=true;xhtml+='"'+Html2Xhtml.escapeQuot(attrval,'"')+'"';state=4;break}attrval+=c;break;case 8:if(c==quot){xhtml+='"'+Html2Xhtml.escapeQuot(attrval,'"')+'"';state=3;break}attrval+=c;break;case 9:if(c=='-'&&data.substr(p,2)=='->'){p+=2;xhtml+='-->';state=0;break}xhtml+=c;break;case 10:if(c=='>'){state=0}xhtml+=c;break;case 11:if(c=="'"||c=='"'){quot=c;state=12;break}if(c==codetype&&data.substr(p,1)=='>'){state=0;xhtml+=c+'>';codetype='';p++;break}xhtml+=c;break;case 12:if(c==quot){state=11;xhtml+=quot+Html2Xhtml.escapeQuot(phpval,quot)+quot;phpval=quot='';break}phpval+=c;break;case 13:if(c=='<'&&data.substr(p,tagname.length+1).toLowerCase()=='/'+tagname){unget=true;state=0;tagname='';break}if(tagname=='textarea'){xhtml+=Html2Xhtml.escapeHTMLChar(c)}else{xhtml+=c}break}}return xhtml};Html2Xhtml.escapeQuot=function(str,quot){if(!quot){quot='"'}if(quot=='"'){return str.replace(/"/ig,'\\"')}return str.replace(/'/ig,"\\'")};Html2Xhtml.escapeHTMLChar=function(c){if(c=='&'){return'&amp;'}if(c=='<'){return'&lt;'}if(c=='>'){return'&gt;'}return c};Html2Xhtml.isSpaceChar={' ':1,'\r':1,'\n':1,'\t':1};Html2Xhtml.isEmptyTag={'area':1,'base':1,'basefont':1,'br':1,'hr':1,'img':1,'input':1,'link':1,'meta':1,'param':1};Html2Xhtml.isEmptyAttr={'checked':1,'compact':1,'declare':1,'defer':1,'disabled':1,'ismap':1,'multiple':1,'noresize':1,'nosave':1,'noshade':1,'nowrap':1,'readonly':1,'selected':1};Html2Xhtml.hasNLBefore={'div':1,'p':1,'table':1,'tbody':1,'tr':1,'td':1,'th':1,'title':1,'head':1,'body':1,'script':1,'comment':1,'li':1,'meta':1,'h1':1,'h2':1,'h3':1,'h4':1,'h5':1,'h6':1,'hr':1,'ul':1,'ol':1,'option':1,'link':1};Html2Xhtml.hasNLAfter={'html':1,'head':1,'body':1,'p':1,'th':1,'style':1};Html2Xhtml.dontAnalyzeContent={'textarea':1,'script':1,'style':1};
\ No newline at end of file
textEditor{padding: 20px;}
textEditor{padding: 20;}
content editable { padding:20px;}
div.gadget-action div.front_pad {
font-size: 10px;
}
div.draggable_wrapper {
background-color: #FFFFFF;
}
#gadget_area_wrapper {
margin-top: 0.5em;
}
div#pad-navigation-wrapper {
border: 0 none !important;
}
#pad-navigation-wrapper {
border-bottom: 1px solid #3D6474;
height: 38px;
margin-top: 10px;
width: 96%;
}
/* tabs */
#tabs_switcher {
background: none repeat scroll 0 0 transparent;
border-style: none;
cursor: pointer;
float: left;
font-weight: bold;
margin: 0;
padding-top: 5px;
width: 10%;
}
div#tabs, div#pad-navigation-wrapper div#tabs_switcher.tab {
display: none !important;
}
#tabs {
float: left;
padding-left: 0;
width: 78%;
}
#tabs ul {
list-style: none outside none;
margin: 0;
padding: 0;
width: 100%;
}
li.tab_selected {
background-color: #DAE6F6;
border-bottom: 1px solid #DAE6F6;
font-weight: bold;
}
li.tab {
background-color: #BDD0F0;
border: 1px solid #3D6474;
cursor: pointer;
display: block;
float: left;
font-size: 12px;
height: 24px;
margin-right: 1px;
padding-right: 5px;
}
#tabs li span {
display: block;
float: left;
height: 19px;
padding: 5px 10px 0;
}
div.pad-actions {
float: left;
}
#tabs li span.rename_tab_dialog_image {
background: url("../images/ung/icon_edit.gif") no-repeat scroll 0 0 transparent;
padding-right: 6px;
}
#tabs li span.remove_tab_dialog_image {
background: url("../images/ung/icon_remove.gif") no-repeat scroll 0 0 transparent;
padding-right: 6px;
}
#add_new_tab_dialog_link {
background: none repeat scroll 0 0 transparent;
border-style: none;
cursor: pointer;
display: block;
float: left;
font-weight: bold;
height: 19px;
margin-left: 5px;
padding-left: 5px;
padding-top: 5px;
}
span.clickable_image {
cursor: pointer;
display: block;
float: left;
margin-top: 5px;
}
div#add_new_gadget_link {
border-bottom: 0 none;
padding-top: 5px;
width: 50% !important;
float: right;
font-weight: bold;
height: 20px;
padding-top: 5px;
text-align: right;
}
#add-gadgets {
cursor: pointer;
font-size: 11px;
}
#loading-wrapper {
background-color: #FFFFFF;
left: 50%;
margin-left: -150px;
padding: 7px 0 0;
position: absolute;
text-align: center;
top: 80px;
width: 250px;
z-index: 1000;
}
#loading-wrapper p {
font-size: 90%;
font-weight: bold;
}
div.front_pad div#page_wrapper {
margin: -0.5em 0 0 !important;
}
#page_wrapper {
background-color: inherit;
float: left;
margin: 0.5em 0 0;
padding: 0;
text-align: left;
width: 100%;
}
div.portal-column {
float: left;
margin-right: 3px;
width: 100% !important;
}
div.block {
margin: 1px 1px 3px;
padding: 0;
width: 100%;
}
span.handle, h3.handle {
cursor: move;
}
h3.handle {
background: url("../images/ung/tab_left_selected.png") no-repeat scroll left top transparent;
border-bottom: 1px solid #3D6474;
color: #FFFFFF;
font-size: 14px;
margin: 0;
padding: 0 0 0 10px;
}
/*h3.handle {
background: none repeat scroll 0 0 white !important;
border-bottom: 0 none !important;
color: #222222 !important;
font-size: 13px !important;
}*/
h3.handle span.handle {
background: url("../images/ung/tab_right_selected.png") no-repeat scroll right top transparent;
display: block;
min-height: 20px;
padding: 5px 5px 0 0;
}
/*h3.handle span.handle {
background: none repeat scroll 0 0 white !important;
}*/
a.block-remove {
background-image: url("../images/ung/icon_remove.gif");
}
a.block-edit-form {
background-image: url("../images/ung/icon_edit.png") !important;
}
a.block-minimize {
background-image: url("../images/ung/icon_minimize.png") !important;
}
a.clickable-block {
background-position: center center;
background-repeat: no-repeat;
cursor: pointer;
display: block;
float: right;
height: 15px;
margin: 0;
padding: 0;
width: 15px;
}
div.block h3 span.gadget_title {
min-width: 100px;
}
div.edit-form {
-moz-border-bottom-colors: none;
-moz-border-image: none;
-moz-border-left-colors: none;
-moz-border-right-colors: none;
-moz-border-top-colors: none;
background-color: #BDD0F0;
border-color: black;
border-style: solid;
border-width: 0 1px 1px;
overflow: auto;
padding-bottom: 0.5em;
padding-left: 1em;
padding-top: 0.5em;
width: auto;
height: 176px !important;
background-color: #FFFFFF !important;
border: 0 none !important;
padding-left: 0 !important;
}
div#page_wrapper div.minimize_wrapper div.edit-form fieldset.left, div#page_wrapper div.minimize_wrapper div.edit-form fieldset.left label {
display: inline !important;
}
div.edit-form fieldset {
border: 0 solid black;
}
div.block div.input {
margin-left: 0;
}
div.edit-form button {
margin-top: 0.5em;
margin-top: -0.3em !important;
}
div.block div.content {
padding: 0;
border-bottom: 1px solid #DDDDDD !important;
border-top: 0 none !important;
background: none repeat scroll 0 0 #DAE6F6;
border-bottom: 4px solid #BBCCFF;
border-top: 4px solid #BBCCFF;
background-color: #FFFFFF;
clear: left;
overflow: visible;
padding: 0.1em;
}
div.block table, div.block table tr, div.block table tr td {
border: medium none;
}
.ig_tbl_img table, .ig_tbl_img tr, .ig_tbl_img td, .ig_tbl_img a, .ig_tbl_img span, .ig_tbl_line table, .ig_tbl_line tr, .ig_tbl_line td, .ig_tbl_line a, .ig_tbl_line span, ig_reset {
background: none repeat scroll 0 50% transparent;
border: 0 none;
border-collapse: collapse;
bottom: auto;
clear: none;
float: none;
font-family: arial,sans-serif;
font-style: normal;
font-variant: normal;
height: auto;
letter-spacing: normal;
line-height: 1;
margin: 0;
padding: 0;
text-indent: 0;
text-transform: none;
top: auto;
vertical-align: middle;
white-space: normal;
width: auto;
word-spacing: normal;
}
div.toggable_dialog {
background-color: #97B0D1;
border: 5px solid #BDD0F0;
display: none;
left: 400px;
padding: 0 1em 0.5em;
position: absolute;
top: 75px;
z-index: 10000;
}
#content .ungleftlist {
width:230px;
float:left;
}
#content .ungrightlist {
width:1000px;
float:left;
}
......@@ -9,7 +9,7 @@ body {
font-weight:normal;
overflow-x: hidden;
}
textEditor{padding: 20px;}
/* buttons aspect */
.ung_button {
background-image: url('../images/ung/button_background.png');
......
body {
background: #fff !important;
width:100%;
height:100%;
margin: 0;
padding: 0;
font-family: arial,sans-serif;
display:inline-block;
font-weight:normal;
overflow-x: hidden;
}
/* buttons aspect */
.ung_button {
background-image: url('../images/ung/button_background.png');
border: 1px solid #BBBBBB;
border-radius: 4px 4px 4px 4px;
color: #333333;
}
/* widget fields */
fieldset.widget {
border: 0 none;
}
/* hide legends */
div.field label, span.headline, a.listbox_title, div.actions, div.actions,
legend.group_title, fieldset.left {
display: none;
}
/* Hidden input */
fieldset#hidden_fieldset,
div#upload_document,
div#edit_document {
display: none;
}
/* navigation classes */
div.navigation {
border-bottom: 1px solid #C9D7F1;
font-family: arial,sans-serif;
font-size: 13px;
height: 15px;
padding: 5px;
}
div.navigation fieldset.widget {
border: 0px;
padding-top: 0.6%;
margin: -0.60%;
width: 96%;
}
/* left */
div.navigation-left a {
margin-left:7px;
}
/* right */
div.navigation-right {
float: right;
margin-top: -16px;
}
div.navigation-right a {
margin-left: 2px;
}
div.navigation-right fieldset.widget div {
float: left;
}
/* language selection */
div#select_language {
font-family: arial,sans-serif;
font-size: 14px;
list-style: none outside none;
white-space: nowrap;
}
div#select_language {
color: #2200CC;
}
div#select_language ul li span {
cursor: pointer;
}
span#available_language {
text-decoration: underline;
}
div#select_language ul li ul {
display: none;
height: auto;
position: absolute;
z-index: 200;
width: 70px;
}
div#select_language ul {
list-style: none outside none;
margin: 0;
padding: 0;
}
div#select_language ul li li {
background: none repeat scroll 0 0 #FFFFFF;
border-left: 1px solid #C9D7F1;
border-right: 1px solid #C9D7F1;
}
div#select_language ul li span {
cursor: pointer;
}
div#select_language ul li:hover ul {
display: block;
}
div#select_language ul li li:hover {
background-color: #DAE6F6;
}
/* other options */
a#left_message, a#right_message {
color: #FD0A0A;
display: none;
}
/* header */
div.header {
height: 3.5em;
width: 100%;
}
div#wrapper_header {
width: 100%;
height: 100%;
display: inline-block;
}
/* left */
div.header-left {
margin-top: -4px;
width: 32em;
position: absolute;
}
div.header-left h2 {
font-size: 14pt;
}
/* logo UNG */
a#loading_message {
display: none;
}
div.logo-area {
float: left;
padding-right: 10px;
}
a.ung_docs img {
border:0 none;
position:relative;
top:9px;
}
/* document title & state */
div#wrapper_header div.field a[name="document_title"] {
color: #060605;
padding-left: 1em;
padding-right: 1em;
text-decoration: none;
}
div#wrapper_header div.field a[name="document_title"], div#wrapper_header div.field a[name="document_state"] {
font-size: 15px;
margin-left: 22px;
}
div#wrapper_header div.field a[name="document_title"]:hover {
background: none repeat scroll 0 0 #FFFFD6;
border: 1px solid #AAAAAA;
}
/* research bar */
div.input form {
margin-top: 0.5em;
float:right;
}
/* right */
div.header-right{
margin-right: 10em;
position: relative;
float: right;
}
div.header-right fieldset.widget {
padding: 0;
}
/* last modification & author */
div.header-right div.input {
margin-top: 1em;
}
div.header-right div.input div{
float: right;
position: relative;
}
div.header-right div.input a {
color: #A7A2A2;
font-size: 13px;
}
.action_menu {
float:right;
position: absolute;
margin-left: 3em;
z-index: 200;
}
.action_menu ul {
padding: 0;
}
.action_menu ul li {
list-style: none inside none;
}
.action_menu a#change_state {
background-image: url("../images/ung/button_background.png");
border: 1px solid #D1D1D1;
color: #333333;
padding: 2px;
}
.action_menu ul#change_state_list>li:hover {
color: #000000;
text-decoration: none;
cursor:pointer;
margin-right: -3em;
}
.action_menu li:hover ul {
display: block;
}
.action_menu ul li ul {
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #D1D1D1;
display: none;
}
.action_menu ul li ul:hover {
display: block;
}
.action_menu ul li ul li:hover {
background: none repeat scroll 0 0 #F3F3F3;
}
.action_menu ul li ul li {
text-align: center;
}
.action_menu ul li ul li h6 {
color: #333333;
font-size: 12px;
font-weight: lighter;
padding: 0.5em;
margin: 0;
}
/* main */
div.main {
height: auto;
margin-top: 0.5em;
}
/***************** UNG main page ********************/
/* left */
#content .main-left {
border-right: 4px solid #BBCCFF;
background-color: #DAE6F6;
height: 400px;
margin-left: -4px;
width: 15%;
margin-top: -0.6em;
overflow:auto;
float:left;
}
div.gadget-column {
margin-left: -4px;
margin-right: -8px;
}
/* listbox menus */
.option_menu {
font-family: arial,sans-serif;
font-size: 14px;
list-style: none outside none;
white-space: nowrap;
color: #8E8E8E;
margin-top: -5px;
margin-left: 5px;
float:left;
}
.option_menu li {
padding-top: 0.5em;
position: relative;
text-decoration: none;
}
.option_menu li div {
display: block;
text-decoration: none;
}
.option_menu li div.fix {
height: 19px;
padding-left: 2px;
padding-right: 14px;
text-align: justify;
width: 78px;
}
.option_menu li div.fix img {
margin-left: 3px;
position: relative;
top: 2px;
}
.option_menu img {
border: 0 none;
}
.option_menu li:hover ul {
display: block;
}
.option_menu li ul {
display: none;
height: auto;
position: absolute;
z-index: 200;
background-color: #FFFFFF;
border: 1px solid #D1D1D1;
}
.option_menu li li:hover {
background-color: #DAE6F6;
}
.option_menu ul {
list-style: none outside none;
margin: 0;
padding: 0;
}
.option_menu li div:hover {
color: #000000;
text-decoration: none;
cursor: pointer;
}
.option_menu li ul div {
color: #002E3F;
display: block;
font-size: 14px;
font-style: normal;
line-height: 28px;
margin-left: 4px;
margin-top: -5px;
padding: 0 21px 0 1px;
text-align: left;
text-decoration: none;
}
/* upload button */
div.gadget-action input#upload {
left: 0.5em;
position: relative;
top: 0.1em;
}
/* action list */
div.gadget-column div.file-selection {
background-color: #FFFFFF;
margin: 0.5em -4px -4px;
}
div.gadget-column div.file-selection div.file-quick-browser,
div.gadget-column div.file-selection div.file-quick-search {
border-bottom: 1px solid #DDDDDD;
padding-bottom: 5px;
padding-top: 5px;
width: 100%;
}
div.listbox-tree {
font-size: 13px;
height: 233px;
overflow: hidden;
width: 100%;
}
div.listbox-domain-tree-container select {
display: none;
}
.tree-open, .tree-closed {
color:black;
background: #FFFFFF;
border: medium none;
cursor: pointer;
margin-left: 1em;
}
/* gadgets */
/* right */
#content .main-right {
height: 100%;
margin-top: -0.6em;
width:85%;
float:left;
margin-left:0px;
}
div.main-right fieldset.widget {
margin-top: 5px;
padding: 0;
margin-left: -1px;
}
/* buttons delete, refresh, change state */
div.toolbar, div.favorite {
border-collapse: collapse;
}
div.favorite {
background-color: #BBCCFF;
height: 27px;
margin-top: -5px;
padding-top: 8px;
}
div.toolbar {
background-color: #E3E9FF;
height: 27px;
padding-bottom: 5px;
}
div.favorite a {
float: right;
font-size: 14px;
margin-right: 5px;
}
a.domain_selected {
float: left !important;
font-size: 15px !important;
}
button.delete {
margin-left: 6px;
margin-top: 6px;
}
/* navigation buttons */
div.listbox-navigation {
float: right;
font-size: 13px;
margin-right: 5px;
margin-top: 0;
min-width: 10%;
display: none;
}
div.listbox-navigation input {
margin-top: 0.3em;
height: 18px;
width: 20px;
}
div.listbox-navigation button.listbox_first_page {
background-image: url("../images/ung/first_page.png");
}
div.listbox-navigation button.listbox_previous_page {
background-image: url("../images/ung/previous_page.png");
}
div.listbox-navigation button.listbox_next_page {
background-image: url("../images/ung/next_page.png");
}
div.listbox-navigation button.listbox_last_page {
background-image: url("../images/ung/last_page.png");
}
div.listbox-navigation button.listbox_previous_page, div.listbox-navigation button.listbox_next_page {
margin: 0;
width: 12px;
}
div.listbox-navigation button {
position: relative;
top: -0.2em;
background-repeat: no-repeat;
border: 0 none;
height: 20px;
display: none;
}
div.listbox-navigation button:hover {
cursor: pointer;
}
/* header */
div.listbox-header-box {
height: 0;
}
div.listbox-content a, a:visited, a:focus {
background-color: inherit;
color: #002E3F;
text-decoration: none;
}
div.listbox-content a:hover {
background-color: inherit;
color: #3D6474;
text-decoration: underline;
}
a.your_listbox_title {
display: none;
}
/* records displayer */
div.listbox-header-box {
height: 0;
float: right;
}
div.listbox-number-of-records {
float: right;
font-size: 12px;
margin-right: 5em;
margin-top: -18px;
min-width: 30%;
}
/* document list */
/* headlines */
table.listbox {
background: none repeat scroll 0 0 #EFF3FA;
}
.listbox {
border-collapse: collapse;
}
thead {
background: url("../images/ung/href_background.gif") repeat scroll 0 0 transparent;
font-family: serif;
font-size: medium;
font-style: normal;
font-variant: normal;
font-weight: normal;
letter-spacing: normal;
line-height: 100%;
word-spacing: normal;
}
div.listbox-content tr {
border-bottom: 1px solid #D1D1D1;
empty-cells: show;
font-size: 13px;
padding-top: 1px;
white-space: nowrap;
}
.listbox th {
border-right: 1px solid #BBCCFF;
}
.listbox-table-select-cell {
width: 0.5%;
}
.listbox-table-header-cell {
text-align: left;
}
.sort-button {
background: url("../images/ung/href_background.gif") repeat scroll 0 0 transparent;
border: 0 none;
}
.sort-button span {
color: #112ABB;
}
/* document line */
tr.text:hover, tr.illustration:hover, tr.table:hover {/*editable document*/
background-color: #DAE6F6;
}
tr.other td.listbox-table-data-cell a {/*uneditable document*/
color: #8E8E8E;
text-decoration: none !important;
}
div.listbox-content tr {
border-bottom: 1px solid #D1D1D1;
empty-cells: show;
font-size: 13px;
padding-top: 1px;
white-space: nowrap;
}
div.listbox-content table.listbox tbody tr td {
padding: 2.2px;
vertical-align: middle;
}
div.listbox-content a:hover {
background-color: inherit;
color: #3D6474;
text-decoration: underline;
}
div.listbox-content td.listbox-table-data-cell {
cursor: pointer;
}
div.listbox-content td.listbox-table-data-cell a img {
margin-right: -8px;
}
div.listbox-content a img, div.main-content a img {
border: 0 none;
}
/**********************************************************
******************* editor page ***********************/
/* content */
div.content {
/*background: none repeat scroll 0 0 #DAE6F6;*/
width:100%;
border-bottom: 4px solid #BBCCFF;
border-top: 4px solid #BBCCFF;
}
fieldset.bottom {
border: 0 none;
width:100%;
list-style: none outside none;
padding: 0;
position: relative;
}
/* SVG-edit */
iframe#svgframe {
width: 100%;
border: 0 none;
overflow: hidden;
}
/**********************************************************
******************* login page ************************/
/* welcome message */
div#advertisement b {
font-size: 12px;
}
div#advertisement img{
position: absolute;
margin-top: 3em;
height: 10em;
}
/* login table */
span#id_provider_details {
font-size: 8px;
float: left;
}
table#field_table, table#new-account-table, table#create-new-user {
border: 1px solid #C3D9FF;
width: 78%;
}
table#field_table tbody, table#new-account-table tbody, table#create-new-user tbody {
background: none repeat scroll 0 0 #E8EEFA;
}
table#field_table tbody label {
float: right;
font-size: 10pt;
white-space: nowrap;
}
/* new user table */
table#create-new-user {
display: none;
margin-top: -22px;
}
table#new-account-table table td, table#create-new-user td {
font-size: 10pt;
}
td#form-message {
color: #EC1D1D;
display: none;
}
form#create-user table tbody tr:last-child td a{
color: #2200CC;
cursor: pointer;
font-size: 8pt;
text-decoration: underline;
}
/* new account "button" */
td#new-account-form {
color: #0000CC;
cursor: pointer;
font-weight: bold;
text-decoration: underline;
}
/* footer */
div.footer {
font-size: 10pt;
margin-top: 40px;
text-align: center;
}
div.footer a {
margin-left: 0.5em;
margin-right: 0.5em;
}
/**********************************************************
******************** tooltip area *********************/
span.tooltipElement {
cursor: pointer;
color: #0099CC;
}
div.toolLocation{
visibility: hidden;
position: absolute;
border-radius: 10px 10px 10px 10px;
border: 1px solid Black;
padding: 10px;
font-family: Verdana, Arial;
font-size: 10px;
background-color: #FFFFCC;
}
/**********************************************************
******************* dialog box ************************/
div.ui-dialog {
background: none repeat scroll 0 0 #C1D9FF;
}
fieldset#edit_document {
border: 0 none;
height: 72px;
margin-left: -1em;
margin-top: -0.5em;
width: 379px;
}
div.ui-dialog-titlebar {
background: none repeat scroll 0 0 #E0EDFE;
border: 0 none;
border-radius: 1px 1px 1px 1px;
height: 15px;
}
span#ui-dialog-title-edit_document, span#ui-dialog-title-upload_document, span#ui-dialog-title-gadget-listbox {
color: #222222 !important;
font: bold 12pt Arial,Sans-serif;
margin-left: -8px;
margin-top: -3px;
}
div#edit_document.ui-dialog-content {
background-color: #FFFFFF;
}
div#edit_document {
height: 80px;
overflow: hidden;
width: 368px;
}
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
float: none !important;
height: 21px;
margin-top: -10px;
width: 104px;
}
.ui-dialog .ui-dialog-buttonpane button {
margin: 0 0.4em 0.5em 0 !important;
}
.ui-button .ui-button-text {
line-height: 1em !important;
}
.ui-button-text-only .ui-button-text {
padding: 0.2em 0.3em !important;
}
span.ui-button-text {
font-size: 12px;
}
<!doctype html>
<html class="no-js" lang="en" >
<html class="no-js" lang="en" manifest="UNG.manifest">
<!-- the "no-js" class is for Modernizr. -->
<head id="UNGinitial" data-template-set="html5-reset">
......@@ -93,6 +93,10 @@
Storage.initialize();//initialize storage
}
$(document).ready(initung);
//a global value for the iframe of the image editor
var iframeNumber=0;
</script>
<!--For the theme gadget-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
......@@ -161,7 +165,21 @@
<!--Finance-->
<script type="text/javascript" src="jquery.sheet/jquery.sheet.financefn.js"></script>
<!--/Finance-->
<!--HTML BOX-->
<script type="text/javascript">
//controller for save ,every time saved also will make a load(bug?)
var isSaving=false;
//controller for the load prolblem ,first time load twice(bug?)
var isFirstTimeLoad=true;
var FirstTimeLoadControl=true;
var FirstTimeListLoad=true;
</script>
<script language="Javascript" src="HtmlBox/htmlbox.colors.js" type="text/javascript"></script>
<script language="Javascript" src="HtmlBox/htmlbox.styles.js" type="text/javascript"></script>
<script language="Javascript" src="HtmlBox/htmlbox.syntax.js" type="text/javascript"></script>
<script language="Javascript" src="HtmlBox/xhtml.js" type="text/javascript"></script>
<script language="Javascript" src="HtmlBox/htmlbox.min.js" type="text/javascript"></script>
<!--/HTML BOX-->
<body>
<!-- Gadget work start here -->
<div id="application" gadget="portal_gadgets/application/gadget.html"
......
......@@ -10,31 +10,21 @@
* loadContentFromDocument : display the content of the specified document in the editor
*/
SVGEditor = function() {
this.name = "svg-edit"; // name to use in dialog boxes
this.objectName = "SVGEditor" ; // name of the object reference
this.load = function() {
if(control){
console.log("1");
$("#svgframe").attr("src", "svg-edit/svg-editor.html");
}
else{
console.log("2");
$("#svgframe").attr("src", "svg-edit/svg-editor1.html");
control=false;
}
$("#svgframe").attr("src", "svg-edit/svg-editor.html");
}
this.saveEdition = function() {
var s = "svgframe";
getCurrentDocument().saveEdition(window.frames[s].svgCanvas.getSvgString());
getCurrentDocument().saveEdition(document.getElementById("ha_html").contentWindow.document.body.innerHTML);
}
this.loadContentFromDocument = function(doc) {
tryUntilSucceed(function() {window.frames["svgframe"].svgEditor.loadFromString(doc.getContent());});
tryUntilSucceed(function() {document.getElementById("svgframe").contentWindow.svgEditor.loadFromString(doc.getContent());});
}
this.load();
this.load();
}
/**
......
var frmMainName="svgframe";
var image = document.getElementById("image");
var frm=document.createElement("iframe");
var frmName=frmMainName+iframeNumber;
image.appendChild(frm);
frm.setAttribute("id","svgframe");
frm.setAttribute("name","svgframe");
frm.setAttribute("width","100%");
frm.setAttribute("height","600");
console.log("come to here");
var wholeName="#"+frmName;
......@@ -16,7 +16,6 @@ SheetEditor = function() {
}
this.saveEdition = function() {
console.log("in table");
//instanceLength to save the number of current sheet
var instanceLength=jQuery.sheet.instance.length;
var sheetNumber = jQuery.sheet.instance[instanceLength-1].exportSheet.html().length;
......
......@@ -16,6 +16,7 @@ SheetEditor = function() {
}
this.saveEdition = function() {
console.log("in table");
//instanceLength to save the number of current sheet
var instanceLength=jQuery.sheet.instance.length;
var sheetNumber = jQuery.sheet.instance[instanceLength-1].exportSheet.html().length;
......
......@@ -13,107 +13,102 @@ Xinha = function() {
this.name = "Xinha"; // name to use in dialog boxes
this.objectName = "Xinha" // name of the object reference
this.load = function() {
_editor_url = "xinha/";
getCurrentPage().include("xinha/XinhaCore.js","script");
getCurrentPage().include("xinha/config.js","script");
xinha_init();
if(FirstTimeListLoad){
if(FirstTimeLoadControl){
$("#ha").css("height","450px").css("width","100%").htmlbox({
toolbars:[
[
// Cut, Copy, Paste
"separator","cut","copy","paste",
// Undo, Redo
"separator","undo","redo",
// Bold, Italic, Underline, Strikethrough, Sup, Sub
"separator","bold","italic","underline","strike","sup","sub",
// Left, Right, Center, Justify
"separator","justify","left","center","right",
// Ordered List, Unordered List, Indent, Outdent
"separator","ol","ul","indent","outdent",
// Hyperlink, Remove Hyperlink, Image
"separator","link","unlink","image"
],
[// Show code
"separator","code",
// Formats, Font size, Font family, Font color, Font, Background
"separator","formats","fontsize","fontfamily",
"separator","fontcolor","highlight",
],
[
//Strip tags
"separator","removeformat","striptags","hr","paragraph",
// Styles, Source code syntax buttons
"separator","quote","styles","syntax"
]
],
skin:"blue"
});
}
}
else{
$("#ha").css("height","450px").css("width","100%").htmlbox({
toolbars:[
[
// Cut, Copy, Paste
"separator","cut","copy","paste",
// Undo, Redo
"separator","undo","redo",
// Bold, Italic, Underline, Strikethrough, Sup, Sub
"separator","bold","italic","underline","strike","sup","sub",
// Left, Right, Center, Justify
"separator","justify","left","center","right",
// Ordered List, Unordered List, Indent, Outdent
"separator","ol","ul","indent","outdent",
// Hyperlink, Remove Hyperlink, Image
"separator","link","unlink","image"
],
[// Show code
"separator","code",
// Formats, Font size, Font family, Font color, Font, Background
"separator","formats","fontsize","fontfamily",
"separator","fontcolor","highlight",
],
[
//Strip tags
"separator","removeformat","striptags","hr","paragraph",
// Styles, Source code syntax buttons
"separator","quote","styles","syntax"
]
],
skin:"blue"
});
}
}
this.saveEdition = function() {
getCurrentDocument().saveEdition(xinha_editors.input_area.getEditorContent());
getCurrentDocument().saveEdition(document.getElementById("ha_html").contentWindow.document.body.innerHTML);
}
this.loadContentFromDocument = function(doc) {
var setText = function() {xinha_editors.input_area.setEditorContent(doc.getContent());}
tryUntilSucceed(setText);
}
this.load();
}
AlohaInterface = function() {
this.name = "Aloha"; // name to use in dialog boxes
this.objectName = "AlohaInterface" // name of the object reference
this.load = function() {
GENTICS_Aloha_base="aloha/aloha/";
loadFile("aloha/aloha/aloha.js", "script", function(data) {
eval(data);
includeJS("aloha/aloha/plugins/com.gentics.aloha.plugins.Format/plugin.js");
includeJS("aloha/aloha/plugins/com.gentics.aloha.plugins.Table/plugin.js");
includeJS("aloha/aloha/plugins/com.gentics.aloha.plugins.List/plugin.js");
includeJS("aloha/aloha/plugins/com.gentics.aloha.plugins.Link/plugin.js");
$("div#page_content div.input").html("<div id='input_area'>test</div>");
$("#input_area").css("min-height","15em").css("border","5px solid #3399FF").css("overflow","auto");
$("#input_area").aloha();
});
}
this.saveEdition = function() {
console.log("in text");
console.log("editables 's length is : ")
console.log(editables.length);
getCurrentDocument().saveEdition(GENTICS.Aloha.editables[0].getContents());
}
this.loadContentFromDocument = function(doc) {
var setText = function() {$("div.aloha_editable").html(doc.getContent());}
tryUntilSucceed(setText);
}
this.load();
}
NicEdit = function() {
this.name = "NicEdit"; // name to use in dialog boxes
this.objectName = "NicEdit" // name of the object reference
this.instance = null;
this.load = function() {
var nic = this;
loadFile("nicEdit/nicEdit.js","script",function(data) {
eval(data);
nic.instance = new nicEditor({iconsPath : 'nicEdit/nicEditorIcons.gif',fullPanel : true}).panelInstance('input_area');
});
}
this.saveEdition = function() {
getCurrentDocument().saveEdition($("div.input div.nicEdit-main").html());
}
this.loadContentFromDocument = function(doc) {
if(this.instance) {this.instance.removeInstance('input_area');this.instance=null}
$("#input_area").attr("value",doc.getContent());
this.instance = new nicEditor({iconsPath : 'nicEdit/nicEditorIcons.gif',fullPanel : true}).panelInstance('input_area');
}
this.load();
}
TinyEdit = function() {
this.name = "Tiny"; // name to use in dialog boxes
this.objectName = "TinyEdit" // name of the object reference
this.load = function() {
loadFile("tinyEdit/tinyEdit.js","script",function(data) {
eval(data);
new TINY.editor.edit('editor',{
id:'input_area', // (required) ID of the textarea
width:584, // (optional) width of the editor
height:175, // (optional) heightof the editor
cssclass:'te', // (optional) CSS class of the editor
controlclass:'tecontrol', // (optional) CSS class of the buttons
rowclass:'teheader', // (optional) CSS class of the button rows
dividerclass:'tedivider', // (optional) CSS class of the button diviers
controls:['bold', 'italic', 'underline', 'strikethrough', '|', 'subscript', 'superscript', '|', 'orderedlist', 'unorderedlist', '|' ,'outdent' ,'indent', '|', 'leftalign', 'centeralign', 'rightalign', 'blockjustify', '|', 'unformat', '|', 'undo', 'redo', 'n', 'font', 'size', 'style', '|', 'image', 'hr', 'link', 'unlink', '|', 'cut', 'copy', 'paste', 'print'], // (required) options you want available, a '|' represents a divider and an 'n' represents a new row
footer:true, // (optional) show the footer
fonts:['Verdana','Arial','Georgia','Trebuchet MS'], // (optional) array of fonts to display
xhtml:true, // (optional) generate XHTML vs HTML
//cssfile:'style.css', // (optional) attach an external CSS file to the editor
content:'starting content', // (optional) set the starting content else it will default to the textarea content
css:'body{background-color:#ccc}', // (optional) attach CSS to the editor
bodyid:'editor', // (optional) attach an ID to the editor body
footerclass:'tefooter', // (optional) CSS class of the footer
toggle:{text:'source',activetext:'wysiwyg',cssclass:'toggle'}, // (optional) toggle to markup view options
resize:{cssclass:'resize'} // (optional) display options for the editor resize
});
});
}
this.saveEdition = function() {
getCurrentDocument().saveEdition($("#input").attr("value"));
}
this.loadContentFromDocument = function(doc) {
$("#input").attr("value",doc.getContent());
//controllers are defined in the index.html
if(FirstTimeListLoad){
if(doc.getContent()){
if(!isSaving){
if(FirstTimeLoadControl)
tryUntilSucceed(function() {document.getElementById("ha_html").contentWindow.document.write(doc.getContent());});
}
}
}
else{
if(doc.getContent()){
if(!isSaving){
tryUntilSucceed(function() {document.getElementById("ha_html").contentWindow.document.write(doc.getContent());});
}
}
}
if((FirstTimeLoadControl==false)&&(isFirstTimeLoad==false))
FirstTimeLoadControl=true;
FirstTimeListLoad=false;
isSaving=false;
}
this.load();
}
......
......@@ -13,107 +13,102 @@ Xinha = function() {
this.name = "Xinha"; // name to use in dialog boxes
this.objectName = "Xinha" // name of the object reference
this.load = function() {
_editor_url = "xinha/";
getCurrentPage().include("xinha/XinhaCore.js","script");
getCurrentPage().include("xinha/config.js","script");
xinha_init();
if(FirstTimeListLoad){
if(FirstTimeLoadControl){
$("#ha").css("height","450px").css("width","100%").htmlbox({
toolbars:[
[
// Cut, Copy, Paste
"separator","cut","copy","paste",
// Undo, Redo
"separator","undo","redo",
// Bold, Italic, Underline, Strikethrough, Sup, Sub
"separator","bold","italic","underline","strike","sup","sub",
// Left, Right, Center, Justify
"separator","justify","left","center","right",
// Ordered List, Unordered List, Indent, Outdent
"separator","ol","ul","indent","outdent",
// Hyperlink, Remove Hyperlink, Image
"separator","link","unlink","image"
],
[// Show code
"separator","code",
// Formats, Font size, Font family, Font color, Font, Background
"separator","formats","fontsize","fontfamily",
"separator","fontcolor","highlight",
],
[
//Strip tags
"separator","removeformat","striptags","hr","paragraph",
// Styles, Source code syntax buttons
"separator","quote","styles","syntax"
]
],
skin:"blue"
});
}
}
else{/*
$("#ha").css("height","450px").css("width","100%").htmlbox({
toolbars:[
[
// Cut, Copy, Paste
"separator","cut","copy","paste",
// Undo, Redo
"separator","undo","redo",
// Bold, Italic, Underline, Strikethrough, Sup, Sub
"separator","bold","italic","underline","strike","sup","sub",
// Left, Right, Center, Justify
"separator","justify","left","center","right",
// Ordered List, Unordered List, Indent, Outdent
"separator","ol","ul","indent","outdent",
// Hyperlink, Remove Hyperlink, Image
"separator","link","unlink","image"
],
[// Show code
"separator","code",
// Formats, Font size, Font family, Font color, Font, Background
"separator","formats","fontsize","fontfamily",
"separator","fontcolor","highlight",
],
[
//Strip tags
"separator","removeformat","striptags","hr","paragraph",
// Styles, Source code syntax buttons
"separator","quote","styles","syntax"
]
],
skin:"blue"
});*/
}
}
this.saveEdition = function() {
getCurrentDocument().saveEdition(xinha_editors.input_area.getEditorContent());
getCurrentDocument().saveEdition(document.getElementById("ha_html").contentWindow.document.body.innerHTML);
}
this.loadContentFromDocument = function(doc) {
var setText = function() {xinha_editors.input_area.setEditorContent(doc.getContent());}
tryUntilSucceed(setText);
}
this.load();
}
AlohaInterface = function() {
this.name = "Aloha"; // name to use in dialog boxes
this.objectName = "AlohaInterface" // name of the object reference
this.load = function() {
GENTICS_Aloha_base="aloha/aloha/";
loadFile("aloha/aloha/aloha.js", "script", function(data) {
eval(data);
includeJS("aloha/aloha/plugins/com.gentics.aloha.plugins.Format/plugin.js");
includeJS("aloha/aloha/plugins/com.gentics.aloha.plugins.Table/plugin.js");
includeJS("aloha/aloha/plugins/com.gentics.aloha.plugins.List/plugin.js");
includeJS("aloha/aloha/plugins/com.gentics.aloha.plugins.Link/plugin.js");
$("div#page_content div.input").html("<div id='input_area'>test</div>");
$("#input_area").css("min-height","15em").css("border","5px solid #3399FF").css("overflow","auto");
$("#input_area").aloha();
});
}
this.saveEdition = function() {
console.log("in text");
console.log("editables 's length is : ")
console.log(editables.length);
getCurrentDocument().saveEdition(GENTICS.Aloha.editables[0].getContents());
}
this.loadContentFromDocument = function(doc) {
var setText = function() {$("div.aloha_editable").html(doc.getContent());}
tryUntilSucceed(setText);
}
this.load();
}
NicEdit = function() {
this.name = "NicEdit"; // name to use in dialog boxes
this.objectName = "NicEdit" // name of the object reference
this.instance = null;
this.load = function() {
var nic = this;
loadFile("nicEdit/nicEdit.js","script",function(data) {
eval(data);
nic.instance = new nicEditor({iconsPath : 'nicEdit/nicEditorIcons.gif',fullPanel : true}).panelInstance('input_area');
});
}
this.saveEdition = function() {
getCurrentDocument().saveEdition($("div.input div.nicEdit-main").html());
}
this.loadContentFromDocument = function(doc) {
if(this.instance) {this.instance.removeInstance('input_area');this.instance=null}
$("#input_area").attr("value",doc.getContent());
this.instance = new nicEditor({iconsPath : 'nicEdit/nicEditorIcons.gif',fullPanel : true}).panelInstance('input_area');
}
this.load();
}
TinyEdit = function() {
this.name = "Tiny"; // name to use in dialog boxes
this.objectName = "TinyEdit" // name of the object reference
this.load = function() {
loadFile("tinyEdit/tinyEdit.js","script",function(data) {
eval(data);
new TINY.editor.edit('editor',{
id:'input_area', // (required) ID of the textarea
width:584, // (optional) width of the editor
height:175, // (optional) heightof the editor
cssclass:'te', // (optional) CSS class of the editor
controlclass:'tecontrol', // (optional) CSS class of the buttons
rowclass:'teheader', // (optional) CSS class of the button rows
dividerclass:'tedivider', // (optional) CSS class of the button diviers
controls:['bold', 'italic', 'underline', 'strikethrough', '|', 'subscript', 'superscript', '|', 'orderedlist', 'unorderedlist', '|' ,'outdent' ,'indent', '|', 'leftalign', 'centeralign', 'rightalign', 'blockjustify', '|', 'unformat', '|', 'undo', 'redo', 'n', 'font', 'size', 'style', '|', 'image', 'hr', 'link', 'unlink', '|', 'cut', 'copy', 'paste', 'print'], // (required) options you want available, a '|' represents a divider and an 'n' represents a new row
footer:true, // (optional) show the footer
fonts:['Verdana','Arial','Georgia','Trebuchet MS'], // (optional) array of fonts to display
xhtml:true, // (optional) generate XHTML vs HTML
//cssfile:'style.css', // (optional) attach an external CSS file to the editor
content:'starting content', // (optional) set the starting content else it will default to the textarea content
css:'body{background-color:#ccc}', // (optional) attach CSS to the editor
bodyid:'editor', // (optional) attach an ID to the editor body
footerclass:'tefooter', // (optional) CSS class of the footer
toggle:{text:'source',activetext:'wysiwyg',cssclass:'toggle'}, // (optional) toggle to markup view options
resize:{cssclass:'resize'} // (optional) display options for the editor resize
});
});
}
this.saveEdition = function() {
getCurrentDocument().saveEdition($("#input").attr("value"));
}
this.loadContentFromDocument = function(doc) {
$("#input").attr("value",doc.getContent());
//controllers are defined in the index.html
if(FirstTimeListLoad){
if(doc.getContent()){
if(!isSaving){
if(FirstTimeLoadControl)
tryUntilSucceed(function() {document.getElementById("ha_html").contentWindow.document.write(doc.getContent());});
}
}
}
else{
if(doc.getContent()){
if(!isSaving){
tryUntilSucceed(function() {document.getElementById("ha_html").contentWindow.document.write(doc.getContent());});
}
}
}
if((FirstTimeLoadControl==false)&&(isFirstTimeLoad==false))
FirstTimeLoadControl=true;
FirstTimeListLoad=false;
isSaving=false;
}
this.load();
}
......@@ -128,7 +123,7 @@ TinyEdit = function() {
* setAsCurrentDocument : set the document as currentDocument in the local storage and display its properties in the current page
*/
JSONDocument.prototype.type = "xinha";
JSONDocument.prototype.type = "text";
JSONDocument.prototype.saveEdition = function(content) {
this.setLastUser(getCurrentUser().getName());
this.setContent(content);
......
......@@ -87,7 +87,7 @@ var Page = {
});
}
else {
Page.loadEditor(editor);
Page.loadEditor(editor);
Page.displayUserInformation(getCurrentUser());
Page.displayDocumentInformation(getCurrentDocument());
}
......@@ -386,6 +386,7 @@ var Document = {
* save document modification
*/
saveCurrentDocument: function() {
isSaving=true;
getCurrentPage().getEditor().saveEdition();
getCurrentDocument().save();
localStorage.currentDocument = JSON.stringify(getCurrentDocument());
......@@ -399,16 +400,18 @@ var Document = {
startDocumentEdition: function(doc) {
if(Document.supportedDocuments[doc.getType()].editorPage) {
getCurrentStorage().getDocument(doc.getAddress(), function(data) {
this.setCurrentDocument(data);
// initialize
var thedialog;
var inittheme = function() {
Page.initialize(Document.supportedDocuments[getCurrentDocument().getType()].editorPage);
Storage.initialize();
thedialog = $("#diag").dialog({title:"",modal: true, autoOpen: false});
}
$(document).ready(inittheme);
showUng(false);
this.setCurrentDocument(data);
});
} else {
alert("no editor available for this document");
......@@ -420,6 +423,8 @@ var Document = {
*/
stopDocumentEdition: function() {
// this.saveCurrentDocument();
//change the saving status
isSaving==false;
showUng(true);
return false;
},
......
......@@ -87,7 +87,7 @@ var Page = {
});
}
else {
Page.loadEditor(editor);
Page.loadEditor(editor);
Page.displayUserInformation(getCurrentUser());
Page.displayDocumentInformation(getCurrentDocument());
}
......@@ -386,7 +386,6 @@ var Document = {
* save document modification
*/
saveCurrentDocument: function() {
getCurrentPage().getEditor().saveEdition();
getCurrentDocument().save();
localStorage.currentDocument = JSON.stringify(getCurrentDocument());
......@@ -400,16 +399,18 @@ var Document = {
startDocumentEdition: function(doc) {
if(Document.supportedDocuments[doc.getType()].editorPage) {
getCurrentStorage().getDocument(doc.getAddress(), function(data) {
this.setCurrentDocument(data);
// initialize
var thedialog;
var inittheme = function() {
Page.initialize(Document.supportedDocuments[getCurrentDocument().getType()].editorPage);
Storage.initialize();
thedialog = $("#diag").dialog({title:"",modal: true, autoOpen: false});
}
$(document).ready(inittheme);
showUng(false);
this.setCurrentDocument(data);
});
} else {
alert("no editor available for this document");
......@@ -421,6 +422,7 @@ var Document = {
*/
stopDocumentEdition: function() {
// this.saveCurrentDocument();
//change the saving status
showUng(true);
return false;
},
......
......@@ -6,11 +6,9 @@ var showUng=function(m) {
document.getElementById("themeheader").style.display='block';
}
else{
$("#svgframe").attr("src", "blank.html");
document.getElementById("ungcontent").style.display='block';
document.getElementById("themecontent").style.display='none';
document.getElementById("ungheader").style.display='block';
document.getElementById("themeheader").style.display='none';
$(document).ready(initung);
}
}
......@@ -231,7 +231,11 @@ Line.prototype = {
.click(function() {line.changeState();})//clic on a checkbox
.end()
.find("td.listbox-table-data-cell")
.click(function() {//click on a line
.click(function() {//clic on a line
if(isFirstTimeLoad){
FirstTimeLoadControl=false;
isFirstTimeLoad=false;
}
setCurrentDocumentID(line.getID());
Document.startDocumentEdition(line.getDocument())
})
......
......@@ -231,7 +231,11 @@ Line.prototype = {
.click(function() {line.changeState();})//clic on a checkbox
.end()
.find("td.listbox-table-data-cell")
.click(function() {//click on a line
.click(function() {//clic on a line
if(isFirstTimeLoad){
FirstTimeLoadControl=true;
isFirstTimeLoad=false;
}
setCurrentDocumentID(line.getID());
Document.startDocumentEdition(line.getDocument())
})
......
......@@ -5,8 +5,8 @@
Page Content
</label>
<div class="input"><div >
<iframe name="svgframe" id="svgframe" width="100%" height="600"/>
<div class="input"><div id="image">
<iframe name="svgframe" id="svgframe" width="100%" height="600"/>
</div></div>
</content>
<dependencies>
......
<root>
<title> Illustration Web - Web Illustration </title>
<content>
<label>
Page Content
</label>
<div class="input"><div id="image">
<iframe name="svgframe" id="svgframe" width="100%" height="600"/>
</div></div>
</content>
<dependencies>
<scriptfile>js/image-editor.js</scriptfile>
</dependencies>
</root>
<root>
<title> Page Table - Table Page </title>
<content>
<label>
Page Content
</label>
<table>
<tr>
<td colspan="2"style="vertical-align: top; ">
<div id="jQuerySheet" class="jQuerySheet" style="height: 100%; width: 100%">
</div>
</td>
</tr>
</table>
</content>
<dependencies>
<scriptfile>js/table-editor.js</scriptfile>
</dependencies>
</root>
......@@ -6,13 +6,14 @@
Page Content
</label>
<div class='input'>
<textarea id='input_area' name='input_area' style='width:100%;height:500px'>
</textarea>
<div class='input'><div id="textEditor">
<textarea id='ha'></textarea>
</div>
</div>
</content>
<dependencies>
<scriptfile>js/text-editor.js</scriptfile>
<stylefile>css/jquery-ui.css</stylefile>
</dependencies>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<title> Page web - Web Page </title>
<content>
<label>
Page Content
</label>
<div class='input'><div id="textEditor">
<textarea id='ha'></textarea>
</div>
</div>
</content>
<dependencies>
<scriptfile>js/table-editor.js</scriptfile>
</dependencies>
</root>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment