$(window).load(function () {$('textarea.fieldrte').each(function($key, $value) { $(this).fieldRTE($key); }); });

jQuery.fn.fieldRTE = function ($key) {
	if (document.createElement) {
		var $name = 'rte' + $key;
		var $textarea = $(this);
		var $height = $textarea.heightPlus('INNER') - 20;
		$textarea.cssHeight($height - 4);
		var $width = $textarea.widthPlus('INNER');
		$textarea.wrap('<div class="cell cellrte" style="width: ' + $width + 'px;"></div>');
		$textarea.cssWidth($width);
		var $parent = $textarea.parent('div.cellrte');
		$parent.prepend(
			'<input class="fieldrteedit" type="button" value="h1" />' + 
			'<input class="fieldrteedit" type="button" value="h2" />' +
			'<input class="fieldrteedit" type="button" value="para" />' +
			'<input class="fieldrteedit" type="button" value="list" />' +
			'<input class="fieldrteedit" type="button" value="bold" />' +
			'<input class="fieldrteedit" type="button" value="link" />' +
			'<input class="fieldrteedit alt" type="button" value="html" />' +
			'<input class="fieldrtecode alt" type="button" value="back" />' +
			'<iframe frameborder="0" height="' + $height + '" name="' + $name + '" src="about:blank" width="' + $width + '"></iframe>');
		var $iframe = $parent.find('iframe');
		var $buttoniframe = $parent.find('input:not([value="back"])');
		var $buttontextarea = $parent.find('input[value="back"]');
//action		
		
		$parent.find('input[value="h1"]').click(function() { $.iframeRead($name).execCommand('formatblock', false, '<h1>'); });
		$parent.find('input[value="h2"]').click(function() { $.iframeRead($name).execCommand('formatblock', false, '<h2>'); });
		$parent.find('input[value="para"]').click(function() { $.iframeRead($name).execCommand('formatblock', false, '<p>'); });
		$parent.find('input[value="list"]').click(function() { $.iframeRead($name).execCommand('insertunorderedlist', false, null); })
		$parent.find('input[value="bold"]').click(function() { $.iframeRead($name).execCommand('styleWithCSS', false, false); $.iframeRead($name).execCommand('bold', false, ''); });
		$parent.find('input[value="link"]').click(function() { $.RTElink($name); });
		$parent.find('input[value="html"]').click(function() { copyiframe(); showtextarea(); });
		$parent.find('input[value="back"]').click(function() { copytextarea(); showiframe(); });
//init		
		if ($.iframeRead($name)) {
			$.iframeRead($name).open();
			$.iframeRead($name).write('<html><head><link rel="styleSheet" href="css/rte.css" type="text/css" media="all" /></head><body>' + $textarea.val() + '</body></html>');
			$.iframeRead($name).close();
			$.iframeRead($name).designMode = 'on';
			
			$iframe.contents().find("body").bind('paste', function() { alert('pasting!'); })
			$textarea.bind('paste', function() { alert('pasting2!'); })
			 }
//copy
		function copyiframe() { $textarea.val($iframe.contents().find('body').html().replace(/<br>/i,'')); }
		function showtextarea() { $iframe.hide(); $buttoniframe.hide(); $textarea.show(); $buttontextarea.show(); }
		function copytextarea() { $iframe.contents().find('body').html($textarea.val().replace(/<br>/i,'')); }
		function showiframe() { $textarea.hide(); $buttontextarea.hide(); $iframe.show(); $buttoniframe.show(); }		 
			 
		copytextarea();	showiframe();
		$textarea.parents('form').bind('submit', function() { if ($textarea.is(':hidden')) { copyiframe(); } });     }     }
	
jQuery.iframeRead = function ($name) {
	var $selector = $('iframe[name=' + $name + ']');
	if ($selector.contentDocument) { return $selector.contentDocument; } 
	else if ($selector.contentWindow) { return $selector.contentWindow.document; }
	else if (window.frames[$name]) { return window.frames[$name].document; }     }
	
jQuery.RTElink = function($name) {
	$id = 'rtelink' + $name;
	$.winAdd($id, 2, 'Link', 'REMOVE');
	var $win = $('div#' + $id);
	$win.find('div.item').append(
		'<div class="row"><label>Type</label><select class="field fieldmid" name="' + $id + 'type"><option value="">Web page</option><option value="mailto:">Email</option></select></div>' + 
		'<div class="row"><label>Address</label><input class="field fieldtext fieldmid" name="' + $id + 'address" type="text" value="" /></div>' +
		'<div class="row rowbutton"><input class="button buttonmid" type="button" value="select" /></div>');
	var $button = $('div#' + $id + ' input[type="button"]');
	$button.click(function() {
		var $type = $('select[name="' + $id + 'type"]').val();
		var $address = $('input[name="' + $id + 'address"]').val();
		if ($address) { $.iframeRead($name).execCommand('createlink', false, $type + $address); } else { $.iframeRead($name).execCommand('unlink', false, []); }
		$win.empty().remove(); });
	$win.winBox(); $win.winShow('', '');      }
