﻿$(function() {
	$("div.BlogCodeBlock").each(function() {

		//$(this).find(".cCodeBlockTextArea").remove();
		//$(this).find(".cCBBar").remove();

		$codeBlock = $(this).children("div:first");
		var code = []
		$codeBlock.find("pre").each(function() {
			 code.push($(this).text());
		});
		var $ta = $("<textarea class='cCodeBlockTextarea'></textarea>");
		$ta.height($codeBlock.height()).width($codeBlock.width())
		.val(code.join("\n")).css("display", "none").insertAfter($codeBlock);
		$codeBlock.before("<div class='cCBBar' style='background-color: #888888; padding: 3px'>" + 
		"<span class='cCBShowHL'>排版顯示</span><span class='cCBShowPT'>純文字</span><span class='cCBCopyText' title='Copy Text' style='display:none'>複製文字</span></div>");
	});
	var cLEDColor = "yellow";
	$(".cCBShowHL,.cCBShowPT,.cCBCopyText")
	.css({ 
		"text-decoration":"underline",
		"cursor":"pointer",
		"color":"black",
		"margin-left":"5px"
	})
	.filter(".cCBCopyText").css("color", "#ffffff").end()
	.click(function() {
		if (this.title) //Copy Text
		{
			copyToClipboard($(this).parents(".BlogCodeBlock:first").find("textarea.cCodeBlockTextarea").val());
			return;
		}
		if ($(this).css("color") == cLEDColor)
			return;
		$(this)
		.css({ color:cLEDColor })
		.siblings(":not(span[title])")
		.css({ "color":"#444444" })
		.end().parent()
		.children(".cCBCopyText").toggle().end() //Toggle Copy Text
		.next().toggle().next().toggle();
	}).filter(".cCBShowHL").css("color", cLEDColor);

//Copy to clipboard: ref http://forum.moztw.org/viewtopic.php?p=131407
function copyToClipboard(txt) {
	var copied = false;
	 if(window.clipboardData) {
		window.clipboardData.clearData();
		window.clipboardData.setData("Text", txt);
		copied = true;
	 } else if (window.netscape) {
		try {
		   netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
		} catch (e) {
		   alert("被瀏覽器拒絕！\n請在瀏覽器網址列輸入'about:config'\n，將'signed.applets.codebase_principal_support'設為'true'");
		}
		var clip = Components.classes['@mozilla.org/widget/clipboard;1']
		.createInstance(Components.interfaces.nsIClipboard);
		if (!clip)
		   return;
		var trans = Components.classes['@mozilla.org/widget/transferable;1']
		.createInstance(Components.interfaces.nsITransferable);
		if (!trans)
		   return;
		trans.addDataFlavor('text/unicode');
		var str = new Object();
		var len = new Object();
		var str = Components.classes["@mozilla.org/supports-string;1"]
		.createInstance(Components.interfaces.nsISupportsString);
		var copytext = txt;
		str.data = copytext;
		trans.setTransferData("text/unicode",str,copytext.length*2);
		var clipid = Components.interfaces.nsIClipboard;
		if (!clip)
		   return false;
		clip.setData(trans,null,clipid.kGlobalClipboard);
		copied = true;
	 }
	 if (copied) alert('文字內容已複製到剪貼簿中!');
	 else alert("使用的瀏覽器不支援文字複製功能!");
}	
	
});


