﻿/*------------------------------------------------------------------------------------------------------------/
 * JavaScript Framework Written for WOLFHOLE 2.0. Base On JQuery 1.3+
/*-----------------------------------------------------------------------------------------------------------*/



var isIE6 = (navigator.userAgent.toLowerCase().indexOf("msie 6") != -1);
var isIE = (navigator.userAgent.toLowerCase().indexOf("msie") != -1);
//加载时间统计-初始时间
var preTime=new Date();
jQuery(function($) {
	//链接处理
	$("a[rel='external']").attr("target", "_blank");
	
	//CSS移除彩蛋
	var eggshellStr = /38,38,40,40,37,37,39,39,/, unEggStr = /37,37,39,39,38,38,40,40,/, indexEggStr = /39,39,40,40,39,39,40,40,/;
	var eFlag = false;
	var inputString = "";
	var cssCopy;
	$(document).keydown(function(e){
		inputString += e.which + ","
		var cssLinks = $("link[rel='stylesheet']");
		if(!eFlag && eggshellStr.test(inputString)){
			alert("传说中的彩蛋...\r\n←←→→↑↑↓↓还原...");
			cssCopy = cssLinks.detach();
			eFlag = true;
			inputString = "";
		}
		if(eFlag && unEggStr.test(inputString)){
			alert("Back to normal...");
			cssCopy.appendTo("head");
			cssCopy = null;
			eFlag = false;
			inputString = "";
		}
		if(indexEggStr.test(inputString)){
			var oMatrix = jQuery("#maskMatrix li");
			if(oMatrix.length>0)IndexEgg(oMatrix);
			inputString = "";
		}
	});


});

function IndexEgg(obj){
	var R=0, x1=.1, y1=.05, x2=.25, y2=.24, x3=1.6, y3=.24, x4=300, y4=200, x5=300, y5=200;
	var flyObj = function(){
		obj.each(function(i, ele){
			jQuery(ele).css({position: "absolute", left: Math.sin(R*x1+i*x2+x3)*x4+x5, top: Math.cos(R*y1+i*y2+y3)*y4+y5});
		});
		R++;
	}
	setInterval(flyObj, 10);
}
//内容页表情选择列表载入、交互处理
function selectFaces(){
	var container = jQuery("#showFaces");
	if(container.length == 0)return;
	
	var amount = 17;//表情个数
	var thtml = "";
	for(var i=0; i<amount; ++i){
		thtml += "<a index='" + i + "'></a>";
	}
	container.html(thtml);
	container.find("a[index]").each(function(i, ele){
		//初始化样式
		jQuery(ele).css("background-position", (-24)*i+"px 0");
		//交互处理
		//.on不在css文件中定义，只作标识
		jQuery(ele).hover(function(){
			jQuery(this).css("background-position", (-24)*i+"px -20px");
		}, function(){
			jQuery(this).filter("[class!='on']").css("background-position", (-24)*i+"px 0");
		});
		jQuery(ele).click(function(){
			jQuery(this).addClass("on").siblings(".on").each(function(i, ele){
				var t = parseInt(jQuery(ele).attr("index"));
				jQuery(ele).removeClass("on").css("background-position", (-24)*t+"px 0");
			});
			jQuery("#userFace").val(i);//改写变量值
		});
	});
	//选中第一个
	container.find("a[index]:first").addClass("on").css("background-position", "0 -20px");
}

//表情显示
function showFaces(){
	var container2 = jQuery("#commentTarget .face");
	if(container2.length == 0)return;
	container2.each(function(i, ele){
		var t = parseInt(jQuery(ele).attr("index"));
		if(isNaN(t))t = 0;
		jQuery(ele).css("background-position", (-24)*t+"px -20px");
	});
}

//Str, 要弹出显示的内容, 必选参数
//Width, 弹出容器的宽度, 必选参数
//Container, 弹出的框体的相对定位容器, 可选参数, 默认为body
//offsetX, x偏移量, 可选参数
function ksPopup(Str, Container, offsetX, offsetY){
	var Container = (Container==undefined || Container==null) ? "body" : Container;
	var offsetX = (offsetX==undefined || offsetX==null) ? "-50px" : offsetX;
	var offsetY = (offsetY==undefined || offsetY==null) ? "24px" : offsetY;
	var oPopupBox = jQuery(Container).find(".popupBox");
	if (oPopupBox.length == 0){
		jQuery(Container).append("<span class='popupBox'></span>");
		jQuery(Container).css({position: "relative"});
		oPopupBox = jQuery(Container).find(".popupBox");
		oPopupBox.css({top: offsetY, left: offsetX});
	}
	oPopupBox.text(Str);
	oPopupBox.fadeIn({queue: true, duration: 400});
	setTimeout(function(){oPopupBox.fadeOut({queue: true, duration: 800})}, 4000);
}

//在新窗口运行指定代码
function CodeProcess()
{
	var oRunCode = jQuery("#ConField .RunableCode");
	var oCopyCode = jQuery("#ConField .CopyableCode");
	if(oRunCode.length > 0){
		oRunCode.each(function(i, ele){
			var oRunButton = "RunBtn_" + i;
			var rCode = jQuery(ele).find("textarea").val();
			jQuery(ele).append("<a id="+oRunButton+">运行代码</a>");
			jQuery("#"+oRunButton).click(function(){
				var oWin = window.open("", "", "");
				oWin.opener = null;
				oWin.document.write(rCode);
				oWin.document.close();
			});
			var oCopyButton = "CopyBtn_" + i;
			jQuery(ele).append("<a id="+oCopyButton+">复制代码</a>");
			jQuery("#"+oCopyButton).click(function(){
				if(window.clipboardData!=undefined){
					window.clipboardData.setData("Text", rCode);
					ksPopup("代码已成功复制到剪贴板", ele, "10px");
				}else{
					ksPopup("您的浏览器禁止读写剪贴板", ele, "10px");
				}
			});
		});
	}
	if(oCopyCode.length > 0){
		oCopyCode.each(function(i, ele){
			var oCopyButton = "CopyBtn_" + i;
			jQuery(ele).append("<a id="+oCopyButton+">复制代码</a>");
			jQuery("#"+oCopyButton).click(function(){
				var rCode = jQuery(ele).find("textarea").val();
				if(window.clipboardData!=undefined){
					window.clipboardData.setData("Text", rCode);
					ksPopup("代码已成功复制到剪贴板", ele, "10px");
				}else{
					ksPopup("您的浏览器禁止读写剪贴板", ele, "10px");
				}
			});
		});
	}
}

//Cookie操作
function getCookie(name)
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while(i < clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
		{
			return getCookieVal(j);
		}
		i = document.cookie.indexOf(" ", i) + 1;
		if(i == 0) break;
	}
	return;
}
function getCookieVal(offset)
{
	var endstr = document.cookie.indexOf(";", offset);
	if(endstr == -1)
	{
		endstr = document.cookie.length;
	}
	return unescape(document.cookie.substring(offset, endstr));
}
function setCookie(name, value, expires, path, domain, secure)
{
	document.cookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
}

