Commits

Vladimir Sidorenko committed bbad884

updated to 7.6.0

Comments (0)

Files changed (45)

redactor/static/redactor/css/blank.css

-html {
-	padding: 0;
-	margin: 0;
-}
-body {
-	font-family: "PT Sans", "Trebuchet MS", Verdana, Arial, Tahoma, sans-serif;      
-	font-size: 15px;
-	margin: 0;
-	padding: 0;
-	overflow-x: hidden;
-}
-div,
-p,
-ul,
-ol,
-table,
-dl,
-pre,
-h1, 
-h2, 
-h3, 
-h4,
-h5 {
-	margin: 15px;
-}
-div,
-p,
-ul,
-ol,
-table,
-dl,
-blockquote,
-pre,
-iframe, 
-object,
-hr {
-	margin-bottom: 15px;	
-	line-height: 1.5em;		
-}
-blockquote {
-	margin-left: 3em;
-	font-style: italic;
-	color: #777;	
-}
-div {
-	background-color: #fff;
-	border: 1px dashed #ebebeb;	
-}
-ul, ol {
-	padding-left: 2em;	
-}
-ul ul, 
-ol ol, 
-ul ol, 
-ol ul {
-	border: none;
-	margin: 2px !important;
-	padding: 0;
-	padding-left: 2em;	
-}
-dl dt { font-weight: bold; }
-dd { margin-left: 1em;}
-
-table {
-	border-collapse: collapse;
-	font-size: 1em;	
-}
-table td {
-	border: 1px solid #ddd;
-	padding: 5px;
-}
-table thead td {
-	border-bottom: 2px solid #000 !important;
-	font-weight: bold;
-}
-code, pre {
-	font-family: monospace sans-serif; 
-}
-code {
-	background-color: #d8d7d7;
-}
-pre { 
-	padding: 1em; 
-	border: 1px dashed #ccc; 
-	background: #f5f5f5; 
-	overflow: auto;  
-}
-hr {
-  display: block;
-  height: 1px;
-  border: 0;
-  border-top: 1px solid #ccc;
-}
-
-.redactor_video_box {
-	width: 300px;
-	height: 200px;
-	background: url(../i/video_box.png) center no-repeat #000 !important;	
-	margin: 10px;
-	margin-bottom: 1.5em;	
-}
-.redactor_video_box object, .redactor_video_box embed, .redactor_video_box iframe {
-	display: none;
-}
-
-.redactor_file_link {
-	padding-left: 20px;
-}
-.redactor_file_ico_avi 	  { background: url(../i/fileicons/avi.png) no-repeat; }
-.redactor_file_ico_csv 	  { background: url(../i/fileicons/csv.png) no-repeat; }
-.redactor_file_ico_doc 	  { background: url(../i/fileicons/doc.png) no-repeat; }
-.redactor_file_ico_gif 	  { background: url(../i/fileicons/gif.png) no-repeat; }
-.redactor_file_ico_html   { background: url(../i/fileicons/html.png) no-repeat; }
-.redactor_file_ico_jpg 	  { background: url(../i/fileicons/jpg.png) no-repeat; }
-.redactor_file_ico_mov	  { background: url(../i/fileicons/mov.png) no-repeat; }
-.redactor_file_ico_other  { background: url(../i/fileicons/other.png) no-repeat; }
-.redactor_file_ico_pdf 	  { background: url(../i/fileicons/pdf.png) no-repeat; }
-.redactor_file_ico_png 	  { background: url(../i/fileicons/png.png) no-repeat; }
-.redactor_file_ico_ppt 	  { background: url(../i/fileicons/ppt.png) no-repeat; }
-.redactor_file_ico_rar 	  { background: url(../i/fileicons/rar.png) no-repeat; }
-.redactor_file_ico_rtf 	  { background: url(../i/fileicons/rtf.png) no-repeat; }
-.redactor_file_ico_txt 	  { background: url(../i/fileicons/txt.png) no-repeat; }
-.redactor_file_ico_xls 	  { background: url(../i/fileicons/xls.png) no-repeat; }
-.redactor_file_ico_zip 	  { background: url(../i/fileicons/zip.png) no-repeat; }
-
-
-h1, h2, h3, h4,h5 {
-	font-weight: bold;	
-}
-
-h1 {
-	font-size: 36px;
-	line-height: 40px;
-	margin-bottom: 10px;	
-}
-h2 {
-	font-size: 30px;
-	line-height: 36px;	
-	margin-bottom: 15px;	
-}
-h3 {
-	font-size: 24px;
-	line-height: 30px;	
-	margin-bottom: 10px;	
-}
-h4 {
-	font-size: 18px;
-	line-height: 24px;	
-	margin-bottom: 10px;	
-}
-h4 {
-	font-size: 1em;
-	margin-bottom: 10px;	
-}

redactor/static/redactor/css/django_admin.css

-.redactor_box { display: inline-block; min-width: 750px; }
-.redactor_box textarea, .redactor_box iframe { min-height: 300px; }
-
-#redactor_tabs { padding-left: 0; }
-#redactor_tabs li { list-style: none; }

redactor/static/redactor/css/docstyle.css

+html {
+	padding: 0;
+	margin: 0;
+}
+body {
+	font-family: "PT Sans", "Trebuchet MS", Verdana, Arial, Tahoma, sans-serif;      
+	font-size: 17px;
+	margin: 0;
+	padding: 0;
+	overflow-x: hidden;
+	background: #f4f4f4;
+}
+#page {
+	max-width: 900px;
+	width: 74%;
+	margin: 20px auto;	
+	padding: 15px 50px;
+	background: #fff;
+	border: 1px solid #ddd;
+}
+#page:focus {
+	outline: none;
+}
+
+::selection {
+	background-color: #333;
+	color: #fff;
+	text-shadow: none;
+}
+
+div,
+p,
+ul,
+ol,
+table,
+dl,
+blockquote,
+pre,
+iframe, 
+object,
+hr {
+	margin-bottom: 15px;	
+	line-height: 1.5em;		
+}
+blockquote {
+	margin-left: 3em;
+	font-style: italic;
+	color: #777;	
+}
+ul, ol {
+	padding-left: 2em;	
+}
+ul ul, 
+ol ol, 
+ul ol, 
+ol ul {
+	border: none;
+	margin: 2px !important;
+	padding: 0;
+	padding-left: 2em;	
+}
+dl dt { font-weight: bold; }
+dd { margin-left: 1em;}
+
+table {
+	border-collapse: collapse;
+	font-size: 1em;	
+}
+table td {
+	border: 1px solid #ddd;
+	padding: 5px;
+}
+table thead td {
+	border-bottom: 2px solid #000 !important;
+	font-weight: bold;
+}
+code, pre {
+	font-family: monospace sans-serif; 
+}
+code {
+	background-color: #d8d7d7;
+}
+pre { 
+	padding: 1em; 
+	border: 1px dashed #ccc; 
+	background: #f5f5f5; 
+	overflow: auto;  
+}
+hr {
+  display: block;
+  height: 1px;
+  border: 0;
+  border-top: 1px solid #ccc;
+}
+
+h1, h2, h3, h4,h5 {
+	font-weight: bold;	
+}
+
+h1 {
+	font-size: 36px;
+	line-height: 40px;
+	margin-bottom: 10px;	
+}
+h2 {
+	font-size: 30px;
+	line-height: 36px;	
+	margin-bottom: 15px;	
+}
+h3 {
+	font-size: 24px;
+	line-height: 30px;	
+	margin-bottom: 10px;	
+}
+h4 {
+	font-size: 18px;
+	line-height: 24px;	
+	margin-bottom: 10px;	
+}
+h4 {
+	font-size: 1em;
+	margin-bottom: 10px;	
+}

redactor/static/redactor/css/redactor.css

 .redactor_box, .redactor_box textarea {
 	background-color: #fff;
 }
-
-body .redactor_air {
-	position: absolute;
-	border: 1px solid #ddd;
-	border-bottom: none;
-	z-index: 1001;
-}
 .redactor_box iframe {
 	outline: none;	
 	width: 100%;
 	padding: 0;
 	display: block;
 	position: relative;
-	z-index: 1;	
+	z-index: 1004; 
 	outline: none;	
 	border: none;
 	width: 100%;
-	font-size: 13px;
+	font-size: 13px;	
 }
 
 /*
-	FULLSCREEN
+	Fuulscreen
 */
 body .redactor_box_fullscreen {
-	position: absolute;
-	z-index: 2000;
-	top: 0;
-	left: 0;
-	border: none !important;
-	width: 100%;
-	height: 100%;
+    border: medium none !important;
+    height: 100%;
+    left: 0;
+    position: absolute;
+    top: 0;
+    width: 100%;
+    z-index: 2000;
 }
-body .redactor_box_fullscreen .redactor_resizer {
-	display: none;
-}
-
-
 
 /*
 	TOOLBAR
 .redactor_toolbar {
 	position: relative;
 	z-index: 1002;
-	height: 30px;
+	height: 33px;
+	left: 0;
+	top: 0;
 	margin: 0 !important;
 	padding: 0 !important;
 	line-height: 0 !important;
 	list-style: none;
 	font-size: 0;
-	background: url(../i/bg_toolbar.png) repeat-x bottom #f4f4f4;
+	background: #f5f5f5;
+	background: -moz-linear-gradient(top,  #f5f5f5 0%, #dedede 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#dedede));
+	background: -webkit-linear-gradient(top,  #f5f5f5 0%,#dedede 100%);
+	background: -o-linear-gradient(top,  #f5f5f5 0%,#dedede 100%);
+	background: -ms-linear-gradient(top,  #f5f5f5 0%,#dedede 100%);
+	background: linear-gradient(top,  #f5f5f5 0%,#dedede 100%);
+	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#dedede',GradientType=0 );
 	overflow: hidden;	
-	border-bottom: 1px solid #cecccc;
+	border-bottom: 1px solid #c2c2c2;
 }
 .redactor_toolbar li {
 	float: left !important;
-	display: inline !important;
-	padding: 1px;
+	padding: 3px 1px;
 	padding-right: 0;
 }
 .redactor_toolbar li.redactor_separator {
-	float: left;
-	background: url(../i/separator.png) center no-repeat;
-	width: 2px;
-	height: 32px;
+	float: left;		
+	height: 34px;
+	border-left: 1px solid #cfcfcf;
+	border-right: 1px solid #eee;	
 	padding: 0;
-	margin: 0 2px;
+	margin: 0 2px 0 3px;
 }
-.redactor_toolbar_right {
+li.redactor_toolbar_right {
 	float: none;
 	float: right !important;
 	padding: 2px 0;
 	width: 25px;
 	height: 26px;
 }	
-
 .redactor_toolbar li a {
 	border: 1px solid transparent;
 	* border: 1px solid #eee; 
 	zoom: 1;
 	text-decoration: none;
 }	
-
 .redactor_toolbar li a span {
 	display: block;
-	text-indent: -3000px;
-	background: url(../i/icons.png) no-repeat top left;
+	text-indent: -9999px;
+	background: url(../img/icons.png) no-repeat top left;
 }
 	
 .redactor_toolbar li a:hover {
 	BUTTONS
 	step 25px
 */
-body .redactor_toolbar li a.redactor_btn_html span				 { background-position: 0; }
-body .redactor_toolbar li a.redactor_btn_styles span			 { background-position: -25px; }
-body .redactor_toolbar li a.redactor_btn_bold span				 { background-position: -50px; }
-body .redactor_toolbar li a.redactor_btn_italic span			 { background-position: -75px; }
-body .redactor_toolbar li a.redactor_btn_deleted span		 	 { background-position: -550px; }		
+body .redactor_toolbar li a.redactor_btn_html span				  { background-position: 0; }
+body .redactor_toolbar li a.redactor_btn_styles span			  { background-position: -25px; }
+body .redactor_toolbar li a.redactor_btn_bold span				  { background-position: -50px; }
+body .redactor_toolbar li a.redactor_btn_italic span			  { background-position: -75px; }
+body .redactor_toolbar li a.redactor_btn_deleted span		 	  { background-position: -550px; }		
 body .redactor_toolbar li a.redactor_btn_insertunorderedlist span { background-position: -100px; }		
-body .redactor_toolbar li a.redactor_btn_insertorderedlist span  { background-position: -125px; }
-body .redactor_toolbar li a.redactor_btn_outdent span	 		 { background-position: -150px; }
-body .redactor_toolbar li a.redactor_btn_indent span		 	 { background-position: -175px; }
-body .redactor_toolbar li a.redactor_btn_image span		 		 { background-position: -200px; }
-body .redactor_toolbar li a.redactor_btn_video span		 		 { background-position: -225px; }
-body .redactor_toolbar li a.redactor_btn_file span		 		 { background-position: -250px; }	
-body .redactor_toolbar li a.redactor_btn_table span		 		 { background-position: -275px; }
-body .redactor_toolbar li a.redactor_btn_link span		 		 { background-position: -300px; }
-body .redactor_toolbar li a.redactor_btn_fontcolor span		 	 { background-position: -325px; }
-body .redactor_toolbar li a.redactor_btn_backcolor span		 	 { background-position: -350px; }
-body .redactor_toolbar li a.redactor_btn_justifyleft span		 { background-position: -375px; }
-body .redactor_toolbar li a.redactor_btn_justifycenter span		 { background-position: -400px; }
-body .redactor_toolbar li a.redactor_btn_justifyright span		 { background-position: -425px; }
-body .redactor_toolbar li a.redactor_btn_justify span		 	 { background-position: -450px; }
-body .redactor_toolbar li a.redactor_btn_horizontalrule span 	 { background-position: -475px; }
-body .redactor_toolbar li a.redactor_btn_fullscreen span		 { background-position: -500px; }							
-body .redactor_toolbar li a.redactor_btn_normalscreen span		 { background-position: -525px !important; }	
-
+body .redactor_toolbar li a.redactor_btn_insertorderedlist span   { background-position: -125px; }
+body .redactor_toolbar li a.redactor_btn_outdent span	 		  { background-position: -150px; }
+body .redactor_toolbar li a.redactor_btn_indent span		 	  { background-position: -175px; }
+body .redactor_toolbar li a.redactor_btn_image span		 		  { background-position: -200px; }
+body .redactor_toolbar li a.redactor_btn_video span		 		  { background-position: -225px; }
+body .redactor_toolbar li a.redactor_btn_file span		 		  { background-position: -250px; }	
+body .redactor_toolbar li a.redactor_btn_table span		 		  { background-position: -275px; }
+body .redactor_toolbar li a.redactor_btn_link span		 		  { background-position: -300px; }
+body .redactor_toolbar li a.redactor_btn_fontcolor span		 	  { background-position: -325px; }
+body .redactor_toolbar li a.redactor_btn_backcolor span		 	  { background-position: -350px; }
+body .redactor_toolbar li a.redactor_btn_justifyleft span		  { background-position: -375px; }
+body .redactor_toolbar li a.redactor_btn_justifycenter span		  { background-position: -400px; }
+body .redactor_toolbar li a.redactor_btn_justifyright span		  { background-position: -425px; }
+body .redactor_toolbar li a.redactor_btn_justify span		 	  { background-position: -450px; }
+body .redactor_toolbar li a.redactor_btn_horizontalrule span 	  { background-position: -475px; }
+body .redactor_toolbar li a.redactor_btn_fullscreen span		  { background-position: -500px; }							
+body .redactor_toolbar li a.redactor_btn_normalscreen span		  { background-position: -525px !important; }	
 
 
 /*
 	RESIZER
 */
 .redactor_resizer {
+	font-family: Arial, Tahoma, Verdana, Helvetica, sans-serif;
 	background-color: #f5f5f5;
-	line-height: 0;
-	font-size: 0;
-}
-.redactor_resizer div {
-	display: block;
-	background: url(../i/resizer.png) center no-repeat;
-	background-position: 50% 1px;
-	width: 49px;
-	height: 8px;
-	margin: auto;
+	padding-top: 2px;
+	line-height: 6px;
+	font-size: 12px;
+	color: #ddd;
+	text-align: center;
+	text-shadow: 0 -1px 0 #aaa;
 	cursor: s-resize;
 }
 
+
+
 /*
 	DROPDOWN
 */
 .redactor_dropdown {
 	top: 28px;
 	left: 0;
-	z-index: 1003;
+	z-index: 1004;
 	position: absolute;
 	width: 200px;
 	background-color: #fff;
 	-webkit-box-shadow: 0 2px 4px #ccc;
 	-moz-box-shadow: 0 2px 4px #ccc;	
 	box-shadow: 0 2px 4px #ccc;	
-	line-height: 21px;		
+	line-height: 21px;	
+	padding: 10px;	
 }
 .redactor_separator_drop {
 	border-top: 1px solid #ddd;;
 }
 
 
+
 /* MODAL */
 #redactor_modal_overlay {
-	position: absolute;
+	position: fixed;
 	margin: auto;
 	top: 0;
 	left: 0;
 	height: 100%;
 	z-index: 50000;
 	
-
-	
 	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
 	filter:alpha(opacity=70);
 	opacity: 0.70;
 	
-	background-color: #000 !important;
+	background-color: #fff !important;
 }
-#redactor_modal_overlay[id] { position: fixed; }
 
 #redactor_modal {
 	background-color: #fff;
+	padding: 10px 50px;
 	position: fixed;
 	top: 50%;
 	left: 50%;
 	
-	box-shadow: 0px 5px 20px #111;
-	-webkit-box-shadow: 0 5px 20px #111; 
-  	-moz-box-shadow: 0 5px 20px #111;	
+	box-shadow: 0px 5px 20px #999;
+	-webkit-box-shadow: 0 5px 20px #999; 
+  	-moz-box-shadow: 0 5px 20px #999;	
   	
   	-webkit-border-radius: 8px;
   	-moz-border-radius: 8px;
 	color: #000;
 }
 #redactor_modal_header {
-	padding: 30px 40px;
-	font-size: 24px;
+	padding: 30px 0;
+	font-size: 18px;
+	font-weight: bold;
 }
 #redactor_modal_inner {
-	padding: 0 40px 30px 40px;
+	padding: 0 0 30px 0;
 }
 #redactor_modal_close {
 	position: absolute;
 	font-size: 24px;
 	width: 30px;
 	height: 30px;
+	color: #999;
+	cursor: pointer;
+}
+#redactor_modal_close:hover {
 	color: #000;
-	cursor: pointer;
 }
 #redactor_modal label {
 	display: inline !important;
 }
 .redactor_ruler {
 	margin-bottom: 10px;
+	width: 99% !important;
 }
 .redactor_ruler td {
 	font-size: 12px !important;
 	padding: 5px !important;
 	border: none !important;
+	vertical-align: middle !important;
 }
 #redactor_image_box {
 	height: 270px; 
 	overflow: auto; 
 	margin-bottom: 10px;
 }
-
 #redactor_image_box img {
 	margin-right: 10px;
 	margin-bottom: 10px;
 	cursor: pointer;
 }
-
 #redactor_tabs {
-	position: relative;
-	top: -15px;
-	overflow: hidden;
-	list-style: none;
-	margin-left: 0;
-	margin-bottom: 5px;
+	margin-bottom: 18px;
 }
-#redactor_tabs li {
-	float: left;
-	margin-right: 10px;
+#redactor_tabs a {
+	display: inline-block;
+	border: 1px solid #ddd;
+	padding: 4px 14px;
+	font-size: 12px;
+	text-decoration: none;
+	color: #000;
+	line-height: 1;
+	-webkit-border-radius: 10px;
+	-moz-border-radius: 10px;
+	border-radius: 10px;		
 }
-#redactor_tabs li a {
-	display: block;
-	color: #000;
-	padding: 3px 7px;
-	font-size: 12px;
+#redactor_tabs a:hover, #redactor_tabs a.redactor_tabs_act {
+	background-color: #eee;
+	color: #777 !important;
+	text-decoration: none !important;
 }
-#redactor_tabs li a.redactor_tabs_act, #redactor_tabs li a.redactor_tabs_act:hover {
-	background-color: #e7e7e7 !important;
-	text-decoration: none !important;
-	color: #777 !important;
-  	-webkit-border-radius: 4px;
-  	-moz-border-radius: 4px;
-  	border-radius: 4px;  		
+.redactor_btns_box {
+	float: right;
+	padding: 6px 16px;
+	background-color: #eee;
+  	-webkit-border-radius: 5px;
+  	-moz-border-radius: 5px;
+  	border-radius: 5px;  	
 }
 
-/* Drag'n'Drop Area */
+/* Drag and Drop Area */
 .redactor_droparea {
 	position: relative;
     width: 100%;
     margin: auto;	
+    margin-bottom: 5px;
 }
 .redactor_droparea .redactor_dropareabox {    
 	z-index: 1;
 	position: relative;
     text-align: center;    
-    width: 96%;
-    padding: 80px 0;
+    width: 99%;
+    padding: 60px 0;
     border: 2px dashed #bbb;
 }
 .redactor_droparea .redactor_dropareabox, .redactor_dropalternative {
     color: #777;
-    font-size: 13px;
+    font-size: 12px;
 }
 .redactor_dropalternative {
 	margin: 4px 0 2px 0;
     background: #f7e5e5;
     border-color: #dcc3c3;
 }
-
 .redactor_dropareabox.drop {
     background: #f4f4ee;
     border-color: #e0e5d6;

redactor/static/redactor/css/style.css

+html {
+	padding: 0;
+	margin: 0;
+}
+body {
+	font-family: "PT Sans", "Trebuchet MS", Verdana, Arial, Tahoma, sans-serif;      
+	font-size: 17px;
+	margin: 0;
+	padding: 0;
+	overflow-x: hidden;
+	background: #fff;
+}
+#page {
+	margin: 20px;	
+	background: #fff;
+}
+#page:focus {
+	outline: none;
+}
+
+::selection {
+	background-color: #333;
+	color: #fff;
+	text-shadow: none;
+}
+
+div,
+p,
+ul,
+ol,
+table,
+dl,
+blockquote,
+pre,
+iframe, 
+object,
+hr {
+	margin-bottom: 15px;	
+	line-height: 1.5em;		
+}
+blockquote {
+	margin-left: 3em;
+	font-style: italic;
+	color: #777;	
+}
+ul, ol {
+	padding-left: 2em;	
+}
+ul ul, 
+ol ol, 
+ul ol, 
+ol ul {
+	border: none;
+	margin: 2px !important;
+	padding: 0;
+	padding-left: 2em;	
+}
+dl dt { font-weight: bold; }
+dd { margin-left: 1em;}
+
+table {
+	border-collapse: collapse;
+	font-size: 1em;	
+}
+table td {
+	border: 1px solid #ddd;
+	padding: 5px;
+}
+table thead td {
+	border-bottom: 2px solid #000 !important;
+	font-weight: bold;
+}
+code, pre {
+	font-family: monospace sans-serif; 
+}
+code {
+	background-color: #d8d7d7;
+}
+pre { 
+	padding: 1em; 
+	border: 1px dashed #ccc; 
+	background: #f5f5f5; 
+	overflow: auto;  
+}
+hr {
+  display: block;
+  height: 1px;
+  border: 0;
+  border-top: 1px solid #ccc;
+}
+
+h1, h2, h3, h4,h5 {
+	font-weight: bold;	
+}
+
+h1 {
+	font-size: 36px;
+	line-height: 40px;
+	margin-bottom: 10px;	
+}
+h2 {
+	font-size: 30px;
+	line-height: 36px;	
+	margin-bottom: 15px;	
+}
+h3 {
+	font-size: 24px;
+	line-height: 30px;	
+	margin-bottom: 10px;	
+}
+h4 {
+	font-size: 18px;
+	line-height: 24px;	
+	margin-bottom: 10px;	
+}
+h4 {
+	font-size: 1em;
+	margin-bottom: 10px;	
+}

redactor/static/redactor/css/wym.css

 
 body {
 	font-family: "PT Sans", "Trebuchet MS", Verdana, Arial, Tahoma, sans-serif;      
-	font-size: 15px;
+	font-size: 17px;
 	margin: 0;
 	padding: 0;
 	overflow-x: hidden;
 	background-color: #f8f8f8;	
 }
+
+#page {
+	margin: 20px;	
+	background: #f8f8f8;
+	border: none;
+	padding: 0;
+}
+#page:focus {
+	outline: none;
+}
+
+
 div,
 p,
 ul,
 	background-color: #fff;
 	border: 1px solid #ebebeb;
 	padding: 10px;
-	margin: 10px;	
+	margin: 10px 0;	
 }
 
 p ul, 
   border-top: 1px solid #ccc;
 }
 
-.redactor_video_box {
-	width: 300px;
-	height: 200px;
-	background: url(../i/video_box.png) center no-repeat #000 !important;	
-	margin: 10px;
-	margin-bottom: 1.5em;	
-}
-.redactor_video_box object, .redactor_video_box embed, .redactor_video_box iframe {
-	display: none;
-}
-
-.redactor_file_link {
-	padding-left: 20px;
-}
-.redactor_file_ico_avi 	  { background: url(../i/fileicons/avi.png) no-repeat; }
-.redactor_file_ico_csv 	  { background: url(../i/fileicons/csv.png) no-repeat; }
-.redactor_file_ico_doc 	  { background: url(../i/fileicons/doc.png) no-repeat; }
-.redactor_file_ico_gif 	  { background: url(../i/fileicons/gif.png) no-repeat; }
-.redactor_file_ico_html   { background: url(../i/fileicons/html.png) no-repeat; }
-.redactor_file_ico_jpg 	  { background: url(../i/fileicons/jpg.png) no-repeat; }
-.redactor_file_ico_mov	  { background: url(../i/fileicons/mov.png) no-repeat; }
-.redactor_file_ico_other  { background: url(../i/fileicons/other.png) no-repeat; }
-.redactor_file_ico_pdf 	  { background: url(../i/fileicons/pdf.png) no-repeat; }
-.redactor_file_ico_png 	  { background: url(../i/fileicons/png.png) no-repeat; }
-.redactor_file_ico_ppt 	  { background: url(../i/fileicons/ppt.png) no-repeat; }
-.redactor_file_ico_rar 	  { background: url(../i/fileicons/rar.png) no-repeat; }
-.redactor_file_ico_rtf 	  { background: url(../i/fileicons/rtf.png) no-repeat; }
-.redactor_file_ico_txt 	  { background: url(../i/fileicons/txt.png) no-repeat; }
-.redactor_file_ico_xls 	  { background: url(../i/fileicons/xls.png) no-repeat; }
-.redactor_file_ico_zip 	  { background: url(../i/fileicons/zip.png) no-repeat; }
-
-
 h1, h2, h3, h4,h5 {
 	font-weight: bold;	
 	margin-bottom: 10px;

redactor/static/redactor/i/bg_toolbar.png

Removed
Old image

redactor/static/redactor/i/fileicons/.DS_Store

Binary file removed.

redactor/static/redactor/i/fileicons/avi.png

Removed
Old image

redactor/static/redactor/i/fileicons/csv.png

Removed
Old image

redactor/static/redactor/i/fileicons/doc.png

Removed
Old image

redactor/static/redactor/i/fileicons/gif.png

Removed
Old image

redactor/static/redactor/i/fileicons/html.png

Removed
Old image

redactor/static/redactor/i/fileicons/jpg.png

Removed
Old image

redactor/static/redactor/i/fileicons/mov.png

Removed
Old image

redactor/static/redactor/i/fileicons/other.png

Removed
Old image

redactor/static/redactor/i/fileicons/pdf.png

Removed
Old image

redactor/static/redactor/i/fileicons/png.png

Removed
Old image

redactor/static/redactor/i/fileicons/ppt.png

Removed
Old image

redactor/static/redactor/i/fileicons/rar.png

Removed
Old image

redactor/static/redactor/i/fileicons/rtf.png

Removed
Old image

redactor/static/redactor/i/fileicons/txt.png

Removed
Old image

redactor/static/redactor/i/fileicons/xls.png

Removed
Old image

redactor/static/redactor/i/fileicons/zip.png

Removed
Old image

redactor/static/redactor/i/icons.png

Removed
Old image

redactor/static/redactor/i/resizer.png

Removed
Old image

redactor/static/redactor/i/separator.png

Removed
Old image

redactor/static/redactor/img/icons.png

Added
New image

redactor/static/redactor/jquery-1.7.min.js

File contents unchanged.

redactor/static/redactor/langs/de.js

+var RLANG = {
+	html: 'HTML',
+	video: 'Video',
+	image: 'Bilder',
+	table: 'Tabelle',
+	link: 'Link',
+	link_insert: 'Link einfügen ...',
+	unlink: 'Link entfernen',
+	styles: 'Styles',
+	paragraph: 'Absatz',
+	quote: 'Zitat',
+	code: 'Code',
+	header1: 'Kopfzeile 1',
+	header2: 'Kopfzeile 2',
+	header3: 'Kopfzeile 3',
+    header4: 'Kopfzeile 4',
+	format: 'Format',
+	bold:  'Fett',
+	italic: 'Kursiv',
+	superscript: 'Hochgestellt',
+	strikethrough: 'Strikethrough',
+	fontcolor: 'Schriftfarbe',
+	backcolor: 'Texthervorhebungsfarbe',
+	removeformat: 'Formatierung löschen',
+	cleanstyles: 'Styles säubern',
+	lists: 'Lists',
+	unorderedlist: 'Aufzählungszeichen',
+	orderedlist: 'Nummerierung',	
+	outdent: 'Einzug verkleinern',
+	indent: 'Einzug vergrößern',
+	redo: 'Wiederholen',
+	undo: 'Rückgängig',
+	cut: 'Ausschneiden',
+	cancel: 'Abbrechen',	
+	insert: 'Einfügen',
+	save: 'Speichern',	
+	_delete: 'Löschen',
+	insert_table: 'Tabelle einfügen',		
+	insert_row_above: 'Zeilen oberhalb einfügen',
+	insert_row_below: 'Zeilen unterhalb einfügen',
+	insert_column_left: 'Spalten links einfügen',
+	insert_column_right: 'Spalten rechts einfügen',									
+	delete_column: 'Spalten löschen',									
+	delete_row: 'Zeilen löschen',									
+	delete_table: 'Tabelle löschen',
+	Rows: 'Zeilen',
+	Columns: 'Spalten',	
+	add_head: 'Titel einfügen',
+	delete_head: 'Titel entfernen',	
+	title: 'Title',
+	image_view: 'Bider',
+	image_position: 'Textumbruch',
+	none: 'Keine',
+	left: 'Links',
+	right: 'Rechts',
+	image_web_link: 'Bilder Link',
+	text: 'Text',
+	mailto: 'Email',
+	web: 'URL',
+	video_html_code: 'Video embed code',
+	file: 'Datei',	
+	upload: 'laden',
+	download: 'Download',
+	choose: 'Auswählen',
+	or_choose: 'Oder, wählen Sie',
+	drop_file_here: 'Ziehen Sie eine Datei hier',
+	align_left:	'Linksbündig',	
+	align_center: 'Mitte',
+	align_right: 'Rechtsbündig',
+	align_justify: 'Setzt den Text der Breite',
+	horizontalrule: 'Horizontale Linie',
+	fullscreen: 'Vollbild',
+	deleted: 'Durchgestrichen',
+	anchor: 'Anker'    	
+};

redactor/static/redactor/langs/en.js

 	horizontalrule: 'Horizontal rule',
 	fullscreen: 'Fullscreen',
 	deleted: 'Deleted',
-	none: 'None'
-};
+	none: 'None',
+	anchor: 'Anchor'
+};

redactor/static/redactor/langs/ru.js

 	title: 'Подсказка',
 	image_view: 'Скачать изображение',
 	image_position: 'Обтекание текстом',
-	none: 'нет',
 	left: 'слева',
 	right: 'справа',
 	image_web_link: 'Cсылка на изображение',
 	horizontalrule: 'Горизонтальная линейка',
 	fullscreen: 'Во весь экран',
 	deleted: 'Зачеркнутый',
-	none: 'Нет'								
+	none: 'Нет',
+	anchor: 'Якорь'									
 };

redactor/static/redactor/plugins/file_edit.html

-<form id="redactorUploadFileForm" method="post" action="" enctype="multipart/form-data">
-
-<p><input style="width: 99%;" name="file" id="file" /></p>
-
-
-<p>
-<input type="button" name="download" id="redactorFileDownloadBtn" value="%RLANG.download%" />&nbsp;&nbsp;
-<input type="button" name="delete" id="redactorFileDeleteBtn" value="%RLANG._delete%" />&nbsp;&nbsp;&nbsp;&nbsp;
-<input type="button" name="" onclick="redactorActive.modalClose();" value="%RLANG.cancel%"  />
-</p>
-</form>

redactor/static/redactor/plugins/image.html

-<form id="redactorInsertImageForm" method="post" action="" enctype="multipart/form-data">
-	<ul id="redactor_tabs">
-		<li><a href="javascript:void(null);" onclick="showRedactorTabs(this, 1);" class="redactor_tabs_act">%RLANG.upload%</a></li>	
-		<li><a href="javascript:void(null);" onclick="showRedactorTabs(this, 2);">%RLANG.choose%</a></li>		
-		<li><a href="javascript:void(null);" onclick="showRedactorTabs(this, 3); $('#redactor_file_link').focus();">%RLANG.link%</a></li>		
-	</ul>
-	<div id="redactor_tabs1" class="redactor_tabs">
+<div id="redactor_tabs">
+	<a href="javascript:void(null);" class="redactor_tabs_act">%RLANG.upload%</a>	
+	<a href="javascript:void(null);">%RLANG.choose%</a>		
+	<a href="javascript:void(null);">%RLANG.link%</a>		
+</div>
+
+
+<form id="redactorInsertImageForm" method="post" action="" enctype="multipart/form-data">	
+	<div id="redactor_tab1" class="redactor_tab">
 		<input type="file" id="redactor_file" name="file" />
 	</div>	
-	<div id="redactor_tabs2" class="redactor_tabs" style="display: none;">
+	<div id="redactor_tab2" class="redactor_tab" style="display: none;">
 		<div id="redactor_image_box"></div>
-	</div>
-	<div id="redactor_tabs3" class="redactor_tabs" style="display: none;">
-		<table class="redactor_ruler" width="100%">
-			<tr>
-				<td class="small">%RLANG.image_web_link%</td>
-				<td></td>
-			</tr>
-			<tr>
-				<td width="100%"><input name="redactor_file_link" id="redactor_file_link"  style="width: 99%"  /></td>
-				<td><input type="button" name="upload" id="redactorUploadBtn" value="%RLANG.insert%" /></td>
-			</tr>
-		
-		</table>
-	</div>
-</form>
+	</div>	
+</form>	
+
+	
+<div id="redactor_tab3" class="redactor_tab" style="display: none;">
+	<table class="redactor_ruler" width="100%">
+		<tr>
+			<td nowrap>%RLANG.image_web_link%</td>
+			<td width="100%"><input name="redactor_file_link" id="redactor_file_link"  style="width: 99%"  /></td>
+		</tr>
+		<tr>
+			<td></td>
+			<td>
+
+				<span class="redactor_btns_box">
+					<input type="button" name="upload" id="redactor_upload_btn" value="%RLANG.insert%" />&nbsp;&nbsp;
+					<a href="javascript:void(null);" style="color: #777; font-size: 12px;" id="redactor_btn_modal_close">%RLANG.cancel%</a>
+				</span>
+				<div style="clear: both;"></div>					
+				
+			</td>
+		</tr>
+	
+	</table>
+</div>
+

redactor/static/redactor/plugins/image_edit.html

-<form id="redactorInsertImageForm" method="post" action="" enctype="multipart/form-data">
+
 <table class="redactor_ruler">
 	<tr>
-		<td colspan="2" style="padding-bottom: 15px;"><a href="" target="_blank" id="redactor_image_edit_src">%RLANG.image_view%</a></td>
+		<td nowrap>%RLANG.title%</td>
+		<td><input id="redactor_file_alt" style="width: 99%;" /></td>
 	</tr>
 	<tr>
-		<td nowrap class="small">%RLANG.title%</td>
-		<td><input id="redactor_file_alt" size="20" /></td>
+		<td nowrap>%RLANG.link%</td>
+		<td><input id="redactor_file_link" style="width: 99%;" /></td>
 	</tr>
 	<tr>
 		<td nowrap class="small">%RLANG.image_position%</td>
 			</select>
 		</td>
 	</tr>
+	<tr>
+		<td><a href="javascript:void(null);" id="redactor_image_delete_btn" style="color: #000;">%RLANG._delete%</a></td>
+		<td>
+
+			<span class="redactor_btns_box">
+				<input type="button" name="save" id="redactorSaveBtn" value="%RLANG.save%" />&nbsp;&nbsp;
+				<a href="javascript:void(null);" style="color: #777; font-size: 12px;" id="redactor_btn_modal_close">%RLANG.cancel%</a>
+			</span>
+			<div style="clear: both;"></div>		
+		
+		</td>
+	</tr>
 </table>
 
 
-<p>
-<input type="button" name="save" id="redactorSaveBtn" value="%RLANG.save%" />&nbsp;&nbsp;
-<input type="button" name=""  id="redactor_image_edit_delete" value="%RLANG._delete%"  />&nbsp;&nbsp;
-<input type="button" name="" onclick="redactorActive.modalClose();" value="%RLANG.cancel%"  />
-</p>
-</form>

redactor/static/redactor/plugins/link.html

-<form id="redactorInsertLinkForm">
-<table class="redactor_ruler" style="margin-bottom: 6px;">
-	<tr>
-		<td style="white-space: nowrap;"><input value="link" name="redactor_link" id="redactor_link_id_url" type="radio" onclick="$('#redactor_link_url_name').text('URL')" checked="checked">&nbsp;<label for="redactor_link_id_url">%RLANG.web%</label></td>
-		<td width="100%"><input value="email" name="redactor_link" id="redactor_link_id_email" onclick="$('#redactor_link_url_name').text('%RLANG.mailto%')"  type="radio">&nbsp;<label for="redactor_link_id_email">%RLANG.mailto%</label></td>
-	</tr>
-</table>
+<form id="redactorInsertLinkForm" method="post" action="" enctype="multipart/form-data">
 
-<table class="redactor_ruler">
-	<tr>
-		<td nowrap id="redactor_link_url_name">URL</td>
-		<td width="100%"><input name="redactor_link_url" id="redactor_link_url" style="width: 99%;"  /></td>
-	</tr>
-	<tr>
-		<td>%RLANG.text%</td>
-		<td><input name="redactor_link_text" id="redactor_link_text" style="width: 99%;" /></td>
-	</tr>
-</table>
+
+	<div id="redactor_tabs">
+		<a href="javascript:void(null);" class="redactor_tabs_act">URL</a>
+		<a href="javascript:void(null);">Email</a>
+		<a href="javascript:void(null);">%RLANG.anchor%</a>
+		<a href="javascript:void(null);">%RLANG.file%</a>
+	</div>
+	
+	<input type="hidden" id="redactor_tab_selected" value="1" />
+	
+	<div class="redactor_tab" id="redactor_tab1">
+		<table class="redactor_ruler">
+			<tr>
+				<td nowrap>URL</td>
+				<td width="100%"><input id="redactor_link_url" style="width: 99%; font-size: 16px;"  /></td>
+			</tr>
+			<tr>
+				<td>%RLANG.text%</td>
+				<td><input class="redactor_link_text" id="redactor_link_url_text" style="width: 99%; font-size: 16px;" /></td>
+			</tr>
+		</table>
+	</div>
+	<div class="redactor_tab" id="redactor_tab2" style="display: none;">
+		<table class="redactor_ruler">
+			<tr>
+				<td nowrap>Email</td>
+				<td width="100%"><input id="redactor_link_mailto" style="width: 99%; font-size: 16px;"  /></td>
+			</tr>
+			<tr>
+				<td>%RLANG.text%</td>
+				<td><input class="redactor_link_text" id="redactor_link_mailto_text" style="width: 99%; font-size: 16px;" /></td>
+			</tr>
+		</table>
+	</div>
+	<div class="redactor_tab" id="redactor_tab3" style="display: none;">
+		<table class="redactor_ruler">
+			<tr>
+				<td nowrap>%RLANG.anchor%</td>
+				<td width="100%"><input id="redactor_link_anchor" style="width: 99%; font-size: 16px;"  /></td>
+			</tr>
+			<tr>
+				<td>%RLANG.text%</td>
+				<td><input class="redactor_link_text" id="redactor_link_anchor_text" style="width: 99%; font-size: 16px;" /></td>
+			</tr>
+		</table>
+	</div>
+	<div class="redactor_tab" id="redactor_tab4" style="display: none;">
+		<table class="redactor_ruler">
+			<tr>
+				<td>%RLANG.text%</td>
+				<td><input class="redactor_link_text" id="redactor_link_file_text" style="width: 99%; font-size: 16px;" /></td>
+			</tr>
+			<tr>
+				<td></td>
+				<td>
+				
+					<input type="file" id="redactor_file" name="file" />
+				
+				</td>
+			</tr>
+		</table>	
+		
+	</div>
 
 
 </form>
 
-
-<input type="button" name="" id="" value="%RLANG.insert%" onclick="redactorActive.insertLink();" />&nbsp;&nbsp;
-<input type="button" name="" onclick="redactorActive.modalClose();" value="%RLANG.cancel%"  />
+<span class="redactor_btns_box">
+<input type="button" id="redactor_insert_link_btn" value="%RLANG.insert%" />&nbsp;&nbsp;
+<a href="javascript:void(null);" style="color: #777; font-size: 12px;" id="redactor_btn_modal_close">%RLANG.cancel%</a>
+</span>
+<div style="clear: both;"></div>

redactor/static/redactor/plugins/table.html

 <table class="redactor_ruler" width="99%">
 	<tr>
 		<td>%RLANG.Rows%:</td>
-		<td><input size="5" value="2" id="redactor_table_rows" /></td>
+		<td width="100%"><input size="5" value="2" id="redactor_table_rows" /></td>
+	</tr>
+	<tr>	
 		<td>%RLANG.Columns%:</td>
 		<td><input size="5" value="3" id="redactor_table_columns" /></td>
 	</tr>
+	
+	<tr>
+		<td></td>
+		<td>
+			<br />
+			<span class="redactor_btns_box">
+				<input type="button" name="upload" id="redactor_insert_table_btn" value="%RLANG.insert%" />&nbsp;&nbsp;
+				<a href="javascript:void(null);" style="color: #777; font-size: 12px;" id="redactor_btn_modal_close">%RLANG.cancel%</a>
+			</span>
+			<div style="clear: both;"></div>			
+		
+		</td>
+	</tr>
 </table>
 
-
-<p><input type="button" name="" id="" value="%RLANG.insert%" onclick="redactorActive.insertTable();" />&nbsp;&nbsp;
-<input type="button" name=""  onclick="redactorActive.modalClose();" value="%RLANG.cancel%"  /></p>

redactor/static/redactor/plugins/video.html

 <div style="font-size: 11px; margin-bottom: 3px;">%RLANG.video_html_code%</div>
 <table class="redactor_ruler" style="width: 99%;">
 	<tr>
-	 	<textarea name="redactor_insert_video_area" id="redactor_insert_video_area" style="width: 99%; height: 160px;"></textarea>
+	 	<textarea id="redactor_insert_video_area" style="width: 99%; height: 160px;"></textarea>
 	</tr>
 </table>
 </form>
 
 
-<p><input type="button" name="" id="" value="%RLANG.insert%" onclick="redactorActive.insertVideo();" />&nbsp;&nbsp;
-<input type="button" name="" onclick="redactorActive.modalClose();" value="%RLANG.cancel%"  /></p>
-
+<span class="redactor_btns_box">
+	<input type="button" id="redactor_insert_video_btn" value="%RLANG.insert%" />&nbsp;&nbsp;
+	<a href="javascript:void(null);" style="color: #777; font-size: 12px;" id="redactor_btn_modal_close">%RLANG.cancel%</a>
+</span>
+<div style="clear: both;"></div>

redactor/static/redactor/redactor.js

 /*
-	Redactor v7.5.3
-	Updated 09.04.2012
+	Redactor v7.6.0
+	Updated 29.04.2012
 	
-	In English http://imperavi.com/
-	In Russian http://imperavi.ru/	
- 
+	http://redactorjs.com/
+		
 	Copyright (c) 2009-2012, Imperavi Ltd.
 	Dual licensed under the MIT or GPL Version 2 licenses.
 	
 	Usage: $('#content').redactor();	
 */
 
-var redactorActive = false;
-var $table, $table_tr, $table_td, $tbody, $thead, $current_tr, $current_td;
+var RTOOLBAR = {};
 
 (function($){
+	
+	// Plugin
+	jQuery.fn.redactor = function(option)
+	{
+		return this.each(function() 
+		{
+			var $this = $(this);
+			
+			var data = $this.data('redactor');
+			if (!data) $this.data('redactor', (data = new Redactor(this, option)));
+		});
+	}
+	
+	
+	// Initialization
+	var Redactor = function(element, options) 
+	{
+		// Element
+		this.$el = $(element);
+	
+		// Options
+		this.opts = $.extend({
+	
+			lang: 'en',
+			toolbar: 'default',
 
-	// Initialization	
-	$.fn.redactor = function(options)
-	{				
-		var obj = new Construct(this, options);			
-		obj.init();		
-		return obj;
-	};
-
-	// Options and variables	
-	function Construct(el, options) 
-	{
-		this.opts = $.extend({	
-			lang: 'ru', // ru, en, fr, ua, pt_br, pl, lt
-			air: false,
-			toolbar: 'main', // false, main, mini, air
+			load: true,
+		
 			path: false,
-			focus: true,			
+			css: 'style.css',		
+			focus: true,
 			resize: true,
-			handler: false, // false or url
-			autoclear: true,
+			autoresize: false,
+			fixed: false,
+	
 			autoformat: true,
-			
+			cleanUp: true,
+			convertDivs: true,
 			removeClasses: true,
 			removeStyles: false,
+			convertLinks: true,		
 			
-			convertLinks: true,										
+			handler: false, // false or url
+			
 			autosave: false, // false or url
-			interval: 20, // seconds
-						
-			imageUpload: '/tests/upload.php', // url or false
-			imageGetJson: false, // url (ex. /folder/images.json ) or false
-			imageUploadFunction: false, // callback function
+			interval: 60, // seconds		
+	
+			imageGetJson: false, // url (ex. /folder/images.json ) or false		
 			
-			fileUpload: '/tests/file_upload.php',	
-			fileDownload: '/tests/file_download.php?file=',		
-			fileDelete: '/tests/file_delete.php?delete=',		
-			fileUploadFunction: false, // callback function
-						
-			
-			css: 'blank.css',	
-			
+			imageUpload: false, // url
+			linkFileUpload: false, // url	
+			fileUpload: false, // url
+							
 			visual: true,
 			fullscreen: false,
 			overlay: true, // modal overlay			
 				'#d8d8d8', '#595959', '#c4bd97', '#8db3e2', '#b8cce4', '#e5b9b7', '#d7e3bc', '#ccc1d9', '#b7dde8', '#fbd5b5', '#ffe694',
 				'#bfbfbf', '#3f3f3f', '#938953', '#548dd4', '#95b3d7', '#d99694', '#c3d69b', '#b2a2c7', '#b7dde8', '#fac08f', '#f2c314',
 				'#a5a5a5', '#262626', '#494429', '#17365d', '#366092', '#953734', '#76923c', '#5f497a', '#92cddc', '#e36c09', '#c09100',
-				'#7f7f7f', '#0c0c0c', '#1d1b10', '#0f243e', '#244061', '#632423', '#4f6128', '#3f3151', '#31859b', '#974806', '#7f6000')
+				'#7f7f7f', '#0c0c0c', '#1d1b10', '#0f243e', '#244061', '#632423', '#4f6128', '#3f3151', '#31859b', '#974806', '#7f6000'),
 			
-		}, options);
-		
-		this.$el = $(el);
-	};
-
+			
+			// private
+			allEmptyHtml: '<p><br /></p>',
+			mozillaEmptyHtml: '<p>&nbsp;</p>'
+					
+	
+		}, options, this.$el.data());
+	
+		// Init
+		this.init();	
+	}
+	
 	// Functionality
-	Construct.prototype = {
-
+	Redactor.prototype = {
+	
 	
 		// DYNAMICALLY LOAD
 		_loadFile: function(file, array)
 		{
 			var item = array[0];
-			array.splice(0, 1);	
+			array.splice(0, 1);
 
 			if (typeof(item) == 'function') var callback = item;
-			else 
-			{			
-				var callback = function()
-				{
-					this._loadFile(item, array);					
-					
-				}.bind2(this);
-			}
+			else var callback = $.proxy(function() { this._loadFile(item, array); }, this);
 		
 			this.dynamicallyLoad(file, callback);
 		},
 			var script = document.createElement("script");
 			script.src = url;
 		
-			// Handle Script loading
 			var done = false;
 		
-			// Attach handlers for all browsers
-			script.onload = script.onreadystatechange = function(){
-				if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
+			script.onload = script.onreadystatechange = function()
+			{
+				if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete"))
+				{
 				   done = true;
-				   if (callback){
-				      callback();
-				   }
-				   // Handle memory leak in IE
+				   if (callback) callback();		
 				   script.onload = script.onreadystatechange = null;
 				}
 			};
+			
 			head.appendChild(script);
-		
-			// We handle everything using the script element injection
-			return undefined;
+			
 		},
-		
-		// INITIALIZATION
-		init: function()
-		{
-			// get path to langs, plugins and toolbars
-			if (this.opts.path === false)
+	
+		// Initialization
+		init: function() 
+		{	
+			// get path to styles
+			this.getPath();
+			
+			
+			if (this.opts.load)
 			{
-				$('script').each(function(i,s) 
-				{ 
-					if (s.src) 
-					{
-						if (s.src.match(/\/redactor\.min\.js.*$/)) this.opts.path = s.src.replace(/redactor\.min\.js(\?.*)?$/, ''); 
-						else if (s.src.match(/\/redactor\.js.*$/)) this.opts.path = s.src.replace(/redactor\.js(\?.*)?$/, ''); 
-					}
-				}.bind2(this));
+				// load files	
+				var files = [];
+				
+				files.push(this.opts.path + '/langs/' + this.opts.lang + '.js');
+				if (this.opts.toolbar !== false) files.push(this.opts.path + '/toolbars/' + this.opts.toolbar + '.js');
+				files.push($.proxy(this.start, this));						
+					
+				this.loadFiles(files);		
 			}
-			
-			
+			else this.start();	
+
+					
+		},
+		start: function()
+		{	
+
 			// get dimensions
 			this.height = this.$el.css('height');
-			this.width = this.$el.css('width');
-
-			// get editor ID
-			this.editorID = this.$el.attr('id');			
-			if (typeof(this.editorID) == 'undefined') this.editorID = this.getRandomID();
-			
-			// air box
-			if (this.opts.air)
-			{
-				this.opts.toolbar = 'air';
-				this.air = $('<div id="imp_redactor_air_' + this.editorID + '" class="redactor_air" style="display: none;"></div>');
-			}	
-						
-			
-			// load files	
-			var files = [];
-			
-			files.push(this.opts.path + 'langs/' + this.opts.lang + '.js');
-
-			if (this.opts.toolbar !== false) 
-			{
-				files.push(this.opts.path + 'toolbars/' + this.opts.toolbar + '.js');
-			}
-
-			files.push(function() { this.start(); }.bind2(this));						
-				
-			this.loadFiles(files);
-			
-			
-			// constract editor
+			this.width = this.$el.css('width');			
+	
+			// construct editor
 			this.build();
 			
+			// get html
+			var html = this.$el.val();
+			
+			// preformatter		
+			html = this.preformater(html);
+			
+			// conver newlines to p
+			if (this.opts.autoformat) html = this.paragraphy(html);
+			
 			// enable
-	   		this.enable(this.$el.val());		   					
-					
-		},
-		
-		start: function()
-		{
-			// build toolbar
-			this.buildToolbar();
-					
-			// resizer
-			this.buildResizer();	
-			
-			// air enable
-			this.enableAir();
-			
-			// clean
-			$(this.doc).bind('paste', function(e)
+	   		this.$editor = this.enable(html);
+	   				
+	
+			// cleanup
+			$(this.doc).bind('paste', $.proxy(function(e)
 			{ 
-				 setTimeout(function () 
+				 setTimeout($.proxy(function () 
 				 { 
-
 				 	var node = $('<span id="pastemarkerend">&nbsp;</span>');
 				 	this.insertNodeAtCaret(node.get(0));
-
-				 	this.clean(); 				 	
-				 	
-				 }.bind2(this), 200);
-			}.bind2(this));					
-		
-			// doc events
-			$(this.doc).keypress(function(e)
-		    {
+	
+				 	this.pasteCleanUp();
+	
+				 }, this), 200);
+				 
+				 
+			}, this));	   		
+	
+			// keypress
+			$(this.doc).keypress($.proxy(function(e)
+			{
 				var key = e.keyCode || e.which;
-
-				if (navigator.userAgent.indexOf('AppleWebKit') != -1)
-				{
-					if (e.shiftKey && key == 13)
-					{
-						if (e.preventDefault) e.preventDefault();
-					
-						var node1 = $('<span><br /></span>')
-						this.insertNodeAtCaret(node1.get(0));
+	
+				// safari shift key + enter
+				if (navigator.userAgent.indexOf('AppleWebKit') != -1) return this.safariShiftKeyEnter(e, key);
+				
+			}, this))
+			
+			// keyup
+			.keyup($.proxy(function(e)
+			{		
+				var key = e.keyCode || e.which;		
 						
-						this.setFocusNode(node1.get(0));
-						
-						return false;
-					}
+				if (this.opts.autoformat)
+				{	
+					// if empty
+					if (key == 8 || key == 46) return this.formatEmpty(e);
+				
+					// new line p
+					if (key == 13 && !e.shiftKey && !e.ctrlKey && !e.metaKey)return this.formatNewLine(e);
 				}
-
-						
-		        if (key == 13 && !e.shiftKey && !e.ctrlKey && !e.metaKey)
-		        {
-		        	if (this.getParentNodeName() == 'BODY')
-		        	{
-		        		if (e.preventDefault) e.preventDefault();
-		        		
-			        	var node = $('<p><br /></p>')
-			        	this.insertNodeAtCaret(node.get(0));
-			        	
-			        	return false;
-			        }
-			        else return true;
-
-		        }	
+	
+				this.syncCode();
+				
+			}, this));
 			
-					        	        
-		    }.bind2(this));			
 			
-			$(this.doc).keyup(function(e)
-		    {			
-				var key = e.keyCode || e.which;
-				
-				if (key == 8 || key == 46)
-				{
-					if ($(this.doc.body).html() == '')
-					{
-						if (e.preventDefault) e.preventDefault();
-						
-						var node = $('<p><br /></p>').get(0);
-						$(this.doc.body).append(node);
-						this.setFocusNode(node);
-						
-						return false;
-					}
-
-				}		
-
-				
-				if (key == 13 && !e.shiftKey && !e.ctrlKey && !e.metaKey)	
-				{	
-
-					if (this.getParentNodeName() == 'BODY')
-					{
-						if (e.preventDefault) e.preventDefault();
-						
-						element = $(this.getCurrentNode());
-						if (element.get(0).tagName != 'P')
-						{
-						    newElement = $('<p>').append(element.clone().get(0).childNodes);
-						    element.replaceWith(newElement);		
-   						    newElement.html('<br />');					    
-						    this.setFocusNode(newElement.get(0));
-						    
-						    return false;				
-						 }
-						 
-						 // convert links
-						 if (this.opts.convertLinks) $(this.doc).linkify();
-					} 
-					else return true;
-
-				}
-								        	        
-		    }.bind2(this));				
-
+			// toolbar
+			this.buildToolbar();		
+			
+			// resizer
+			if (this.opts.autoresize === false) this.buildResizer();	
+			else this.observeAutoResize();	
+			
 			// shortcuts
-			this.shortcuts();			
+			this.shortcuts();		
 			
 			// autosave
-			this.autoSave();		
-				
-
+			this.autoSave();	
+	
+			// observers
+			this.observeImages();		
+	
 			// focus
 			if (this.opts.focus) this.focus();
-
+			
+			// fixed
+			if (this.opts.fixed)
+			{
+				this.observeScroll();
+				$(document).scroll($.proxy(this.observeScroll, this));
+			}
+	
+			
 		},
 		shortcuts: function()
 		{
-			$(this.doc).keydown(function(e)
+			$(this.doc).keydown($.proxy(function(e)
 			{
 				var key = e.keyCode || e.which;
-
+	
 				if (e.ctrlKey) 
 				{
-					// Ctrl + z
-					if (key == 90)
-					{
-						if (e.preventDefault) e.preventDefault();
-						this.execCommand('undo', null);
-					}		
-					// Ctrl + Shift + z	
-					else if (key == 90 && e.shiftKey)
-					{
-						if (e.preventDefault) e.preventDefault();
-						this.execCommand('redo', null);
-					}					
-					// Ctrl + m	
-					else if (key == 77)
-					{
-						if (e.preventDefault) e.preventDefault();
-						this.execCommand('removeFormat', null);
-					}			
-					// Ctrl + b												
-					else if (key == 66)
-					{
-						if (e.preventDefault) e.preventDefault();
-						this.execCommand('bold', null);
-					}	
-					// Ctrl + i				
-					else if (key == 73)
-					{
-						if (e.preventDefault) e.preventDefault();
-						this.execCommand('italic', null);
-					}	
-					// Ctrl + j
-					else if (key == 74)
-					{
-						if (e.preventDefault) e.preventDefault();
-						this.execCommand('insertunorderedlist', null);
-					}	
-					// Ctrl + k				
-					else if (key == 75)
-					{
-						if (e.preventDefault) e.preventDefault();
-						this.execCommand('insertorderedlist', null);
-					}	
-					// Ctrl + l
-					else if (key == 76)
-					{
-						if (e.preventDefault) e.preventDefault();
-						this.execCommand('superscript', null); 
-					}				
+					if (key == 90) this._shortcuts(e, 'undo'); // Ctrl + z
+					else if (key == 90 && e.shiftKey) this._shortcuts(e, 'redo');	// Ctrl + Shift + z				
+					else if (key == 77) this._shortcuts(e, 'removeFormat'); // Ctrl + m		
+					else if (key == 66) this._shortcuts(e, 'bold'); // Ctrl + b	
+					else if (key == 73) this._shortcuts(e, 'italic'); // Ctrl + i
+					else if (key == 74) this._shortcuts(e, 'insertunorderedlist'); // Ctrl + j
+					else if (key == 75) this._shortcuts(e, 'insertorderedlist'); // Ctrl + k	
+					else if (key == 76) this._shortcuts(e, 'superscript'); // Ctrl + l
 				}
-
-				// Tab
-				if (!e.shiftKey && key == 9)
+	
+				if (!e.shiftKey && key == 9) this._shortcuts(e, 'indent'); // Tab
+				else if (e.shiftKey && key == 9 ) this._shortcuts(e, 'outdent'); // Shift + tab
+			
+			}, this));
+		
+		},	
+		_shortcuts: function(e, cmd)
+		{
+			if (e.preventDefault) e.preventDefault();
+			this.execCommand(cmd, null);
+		},	
+		getPath: function()
+		{
+			if (this.opts.path !== false) return this.opts.path;
+	
+			$('script').each($.proxy(function(i,s) 
+			{ 
+				if (s.src) 
 				{
-					if (e.preventDefault) e.preventDefault();
-					this.execCommand('indent', null);
-				}		
-				// Shift + tab				
-				else if (e.shiftKey && key == 9 )
-				{
-					if (e.preventDefault) e.preventDefault();
-					this.execCommand('outdent', null);
+					var regexp = new RegExp(/\/redactor\.min\.js|\/redactor\.js/);
+					if (s.src.match(regexp)) this.opts.path = s.src.replace(regexp, ''); 					
 				}
-																					
-
-			
-			}.bind2(this));
-		
-		},
-		
-		focus: function()
-		{
-			if ($.browser.msie) this.$frame.get(0).contentWindow.focus();
-			else this.$frame.focus();
-		},			
+			}, this));
+					
+		},	
 		build: function()
 		{		
 			// container
-			this.$box = $('<div id="redactor_box_' + this.editorID + '" class="redactor_box"></div>');				
-
+			this.$box = $('<div class="redactor_box"></div>');				
+	
 			// frame
-			this.$frame = $('<iframe frameborder="0" scrolling="auto" id="redactor_frame_' + this.editorID + '" style="height: ' + this.height + ';" class="redactor_frame"></iframe>');	   	
+			this.$frame = $('<iframe frameborder="0" scrolling="auto" style="height: ' + this.height + ';" class="redactor_frame"></iframe>');	   	
 			
 			// hide textarea
-			this.$el.hide();
+			this.$el.css('width', '100%').hide();
 			
 			// append box and frame			
-			this.$box.insertAfter(this.$el).append(this.$frame).append(this.$el);
-