tinyMCEPopup.requireLangPack();

var PasteDialog = {
	init : function() {
		var ed = tinyMCEPopup.editor,  el = document.getElementById('container'), title = document.getElementById('title'), ifr, doc, css, cssHTML = '';

		var cmd = tinyMCEPopup.getWindowArg('cmd', 'mcePaste');
		
		if (cmd == 'mcePaste' || cmd == 'mcePasteWord') {
			// Set title
			document.title = title.innerHTML = (cmd == 'mcePasteWord') ? ed.getLang('paste.paste_word_desc') : ed.getLang('paste.paste_desc');
			
			// Create iframe
			el.innerHTML = '<iframe id="content" src="javascript:\'\';" frameBorder="0" style="border: 1px solid gray"></iframe>';
			ifr = document.getElementById('content');
			doc = ifr.contentWindow.document;
	
			// Force absolute CSS urls
			css = tinymce.explode(ed.settings.content_css) || [];
			css = css.concat(ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css"));
			css = css.concat(ed.baseURI.toAbsolute("plugins/paste/css/blank.css"));
			tinymce.each(css, function(u) {
				cssHTML += '<link href="' + ed.documentBaseURI.toAbsolute('' + u) + '" rel="stylesheet" type="text/css" />';
			});
	
			// Write content into iframe
			doc.open();
			doc.write('<html><head>' + cssHTML + '</head><body class="mceContentBody" spellcheck="false"></body></html>');
			doc.close();
	
			doc.designMode = 'on';
			
			window.setTimeout(function() {
				ifr.contentWindow.focus();
			}, 10);
		} else {
			document.title = ed.getLang('paste.paste_text_desc');
			title.innerHTML = ed.getLang('paste.paste_text_desc');
			el.innerHTML = '<textarea id="content" name="content" rows="15" cols="100" dir="ltr" wrap="soft" class="mceFocus"></textarea>';		
		}
		this.resize();
	},

	insert : function() {
		var h, wc, c = document.getElementById('content');
		var wc = tinyMCEPopup.getWindowArg('cmd', 'mcePaste') == 'mcePasteWord';
		
		if(c.nodeName == 'TEXTAREA') {
			h = c.value;
			
			if (tinyMCEPopup.editor.getParam("force_p_newlines")) {
            	// create a linebreak marker
                h = h.replace(/\n(\n)?/g, '__MCE_PARA__');
                var blocks = '';
                // convert marker to paragraphs
                tinymce.each(h.split('__MCE_PARA__'), function(block) {
                	blocks += '<p>' + block + '</p>';
                });
                
                h = blocks;
            }

            h = h.replace(/\n/g, '<br />');

			
		} else {
			h = c.contentWindow.document.body.innerHTML;
		}

		try {
			tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : wc});
		} catch (e) {}
		tinyMCEPopup.close();
	},

	resize : function() {
		var vp = tinyMCEPopup.dom.getViewPort(window), el;

		el = document.getElementById('content');

		if (el) {
			el.style.width  = (vp.w - 20) + 'px';
			el.style.height = (vp.h - 90) + 'px';
		}
	}
};
tinyMCEPopup.onInit.add(PasteDialog.init, PasteDialog);