// JavaScript Document

//原著：http://www.cnblogs.com/JustinYoung/
//修改：biny
//本次修改是针对CSDN博客后台文章添加系统，兼容FF的代码运行框功能,FF下的另存为功能不受支持,其它的可以使用
function runCode(num){
	var obj=document.getElementsByTagName("textarea");
	for(var i=0;i<obj.length;i++){
		if(num==i){
			var newWin=window.open('',"_blank",'');
			newWin.document.open('text/html','replace');
			newWin.opener=null
			var testCode=obj[num].value;
			newWin.document.write(testCode);
			newWin.document.close();
		}				
	}
}
/*****保存代码为html页面，现阶段只支持IE******/
//firefox不兼容的主要原因就是因为ff不支持execCommand('saveas','','filename');		
function saveCode(num){
	var obj=document.getElementsByTagName("textarea");
	for(var i=0;i<obj.length;i++){
		if(num==i){
			var newWin=window.open('','_blank','top=10000');
			newWin.document.open('text/html','replace');
			var testCode=obj[num].value;
			newWin.document.write(testCode);
			newWin.document.execCommand('saveas','','code.htm');
			newWin.close();
		}
	}
}
function copyCode(num){
	var obj=document.getElementsByTagName("textarea");
	for(var i=0;i<obj.length;i++){
		if(num==i){		
			var testCode=obj[num].value;
			if(copy2Clipboard(testCode)!=false)
			{
				alert("生成的代码已经复制到粘贴板，你可以使用Ctrl+V 贴到需要的地方去了哦！  ");
			}
		}
	}
}
copy2Clipboard=function(txt){
	if(window.clipboardData){
		window.clipboardData.clearData();
		window.clipboardData.setData("Text",txt);
	}
	else if(navigator.userAgent.indexOf("Opera")!=-1){
		window.location=txt;
	}
	else if(window.netscape){
		try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
	}
	catch(e){
		alert("您的firefox安全限制限制您进行剪贴板操作，请打开’about:config’将signed.applets.codebase_principal_support’设置为true’之后重试");
		return false;
	}
	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);
	}
}  

/*根据类名获得对象*/
function getElementsByClassName(searchClass, node,tag){  
	if(document.getElementsByClassName){return  document.getElementsByClassName(searchClass)}
	else{        
		node = node || document;        
		tag = tag || "*";        
		var classes = searchClass.split(" "),        
		elements = (tag === "*" && node.all)? node.all : node.getElementsByTagName(tag),        
		patterns = [],         
		returnElements = [],        
		current,         
		match;        
		var i = classes.length;       
		while(--i >= 0){patterns.push(new RegExp("(^|\\s)" + classes[i] + "(\\s|$)"));}        
		var j = elements.length;       
		while(--j >= 0){            
			current = elements[j];           
			match = false;            
			for(var k=0, kl=patterns.length; k<kl; k++){                
				match = patterns[k].test(current.className);                
				if (!match)  break;           
			} 
			if (match)  returnElements.push(current);        
		}        
		return returnElements;   
	} 
}

/*通用加载函数，页面中如果要用到onload函数在窗体一加载时就执行的代码，可以直接添加到这个函数，否则会引起多个onload函数的执行冲突
  带参数的调用方法：addLoadEvent(new Function("refurFrame('单词管理');"));
*/
function addLoadEvent(func){
	var oldonload=window.onload;
	if(typeof window.onload!='function'){
		window.onload=func;	
	}
	else{
		window.onload=function(){
			oldonload();
			func();
		}	
	}
}
/*加载样式*/
function loadClass(){
	var hrefValue=window.location.href;
	if(hrefValue.indexOf("archive")!=-1)   
    {//进入文章页面，加载样式
		var articleId=document.getElementsByTagName('body')[0];
		articleId.className="Article"
		var boxes=getElementsByClassName('feedbackListSubtitle');
		if(boxes.length>0){
			for(var i=0;i<boxes.length;i++){
				var links=boxes[i].getElementsByTagName('a');
				var oldHrefStr;
				for(var n=0;n<links.length;n++){
					var curHtml=links[n].innerHTML;
					if(curHtml.indexOf("楼")!=-1){						
						links[n].className="userLevel";						
						oldHrefStr=links[n].href;						
					}	
				}
				/*创建一个用户头像的节点,随机添加一个头像样式*/
				var x=Math.floor(Math.random()*6)+1;
				var newNode = document.createElement("a");  //创建新元素span 
				newNode.className="userIco"+x;
				newNode.setAttribute('href',oldHrefStr);//复制节点的href属性
				boxes[i].appendChild(newNode);  //追加一个新的子结点 
				//appendBefore(boxes[i],newNode);
			}	
		}
		var box=document.getElementById('comment_form');
		if(submitBox){
			var submitBox=document.getElementById('btn_comment_submit').parentNode;//提交按钮的父容器P标签
			var psBox=submitBox.nextSibling;
			submitBox.className="submitBox";
			psBox.className="submitTips";
		}
	}
}
function appendBefore(curNode,newNode)  //前插入函数 
{ 
   if(curNode.parentNode)   //如果存在双亲结点 
   { 
      curNode.parentNode.insertBefore(newNode, curNode);  //在当前节结点前插入新结点 
   } 
} 

//addLoadEvent(menuFun);
