/**
 @author leuko
 @date 2007-10-22
**/
var mzsky = {
	getLeftTop:function(evnt,l,t){
		var evt  = evnt?evnt:window.event;
		var lsub = l?l:0;
		var tsub = t?t:0;
		var domBody = document.body?document.body:document.documentElement;
		var left = domBody.scrollLeft + evt.clientX + lsub ;
		var top  = domBody.scrollTop  + evt.clientY + tsub ;
		return {'left':left,'top':top};
	},
	//**s在数组arr中查找
	in_array: function (s,arr)
	{
		for(var i=0,l=arr.length;i<l;i++){
			if(arr[i]==s)
				return true;
		}
		return false;
	},
	//去除空白
	trim: function (str)
	{
		return lib.replace(str, "(^\\s+)|(\\s+$)", "");
	},

	//匹配
	match: function (str, regexp, mode)
	{
		if (typeof mode == "undefined") mode = "g";
		var re = new RegExp(regexp, mode);
		var arr = re.exec(str);
		return arr;
	},

	//替换
	replace: function (str, regexp, rep, mode)
	{
		if (typeof rep == "undefined") rep = "";
		if (typeof mode == "undefined") mode = "g";
		var re = new RegExp(regexp, mode);
		var s = str.replace(re, rep);
		return s;
	},

	//取得对象
	e: function (elementId)
	{
		return document.getElementById(elementId);
	}, 

	//取得一个元素的text
	getText: function (element)
	{
		if (typeof element.innerText != "undefined") return element.innerText;
		if (typeof element.textContent != "undefined") return element.textContent;
		return null;
	},

	//设置一个元素的text
	setText: function (element, text)
	{
		if (typeof element.innerText != "undefined") 
		{
			element.innerText = text;
			return true;
		}
		if (typeof element.textContent != "undefined") 
		{
			element.textContent = text;
			return true;
		}
		return false;
	},

	//取得元素的innerHTML
	getHTML: function (element)
	{
		return element.innerHTML;
	},
	
	//设置元素的innerHTML
	setHTML: function (element, html)
	{
		element.innerHTML = html;
		return true;
	},	

	//通过打印其下元素调试对象
	debug: function (element)
	{
		try 
		{
			var win = window.open("", win, "width=320,height=240,scrollbars=yes");
			win.document.open();
			win.document.write("<ul>");
			for (var i in element)
			{
				win.document.write("<li>" + i + "=" + element[i] + "</li>")
			}
			win.document.write("</ul>");
			win.document.close();
		}catch (e)
		{
			alert(e);
		}
	},

	//取得对象的子节点
	childNodes: function (element)
	{
		var nodes = element.childNodes;
		var _nodes = new Array();
		var j = 0;
		for (var i = 0; i < nodes.length; i ++)
		{
			if (nodes[i].nodeType == 1) 
			{
				_nodes[j] = nodes[i];
				j ++;
			}
		}

		return _nodes;
	},

	//删除一个元素
	remove: function (element)
	{
		element.parentNode.removeChild(element);
	},
	
	//取得一个对象的X坐标
	x: function (element)
	{
		var positionX = 0;
		while (element != null)
		{
			positionX += element.offsetLeft;
			element = element.offsetParent;
		}
		return positionX;
	},
	
	//取得一个对象的y坐标
	y: function (element)
	{
		var positionY = 0;
		while (element != null)
		{
			positionY += element.offsetTop;
			element = element.offsetParent;
		}
		return positionY;
	},

	//取得一个对象的width
	w: function (element)
	{
		return element.offsetWidth;
	},
	
	//取得一个对象的Height offsetHeight
	h:  function (element)
	{
		return element.offsetHeight;
	},


	//取得url中参数值
	getParameter: function (varName)
	{
		var query = window.location.search;
		if (query != null || query != "")
		{
			query = query.replace(/^\?+/, "");
			var qArray = query.split("&");
			var len = qArray.length;
			if (len > 0)
			{
				for (var i=0; i<len; i++)
				{
					var sArray = qArray[i].split("=", 2);
					if (sArray[0] && sArray[1] && sArray[0] == varName)
					{
						return unescape(sArray[1]);
					}
				}
			}
		}
		return null;
	},

	//url编码
	urlencode: function (str)
	{
		return encodeURIComponent(str);
	},	

	//url解码
	urldecode: function (str)
	{
		return decodeURIComponent(str);
	},
		
	//将字符串转换成整数
	intval:function(s)
	{
		var _s = parseInt(s);
		if (isNaN(_s)) _s = 0;
		return _s;
	},
	
	//取得body对象
	getBody:function(s)
	{
		if (document.compatMode && document.compatMode != "BackCompat")
		{
			return document.documentElement;
		}
		else
		{
			return document.body;
		}
	}
}

//去除空格
String.prototype.trim = function() 
{
	return lib.trim(this);
};

//取得字符串长度，flg:true时 一个中文算两个
String.prototype.strlen = function(flg)
{
	if (typeof flg == "undefined") flg = false;
	if (flg == true)
	{
		return this.replace(/[^\x00-\xff]/g, "##").length;
	}
	else
	{
		return this.length;
	}
}

/**
listener.add(element, "mousedown", function(){alert("xx");});
**/
var listener = {
	/** 添加一事件的监听器 **/
	add: function (element, event, listener)
	{
		if (typeof element.addEventListener != "undefined")
		{
			element.addEventListener(event, listener, false);
		}
		else if (typeof element.attachEvent != "undefined")
		{
			element.attachEvent("on" + event, listener);
		}
		else
		{
			eval("element." + "on" + event + "=listener");
		}
	},

	/** 删除事件的监听器 **/
	remove: function (element, event, listener)
	{
		if (typeof element.removeEventListener != "undefined")
		{
			element.removeEventListener(event, listener, false);
		}
		else if (typeof element.detachEvent != "undefined")
		{
			element.detachEvent("on" + event, listener);
		}
		else
		{
			element["on" + event] = null;
		}
	},

	/** 事件目标 **/
	src: function (event)
	{
		var targetElement = null;
		if (typeof event.target != "undefined")
		{
			targetElement = event.target;
		}
		else
		{
			targetElement = event.srcElement;
		}
		while (targetElement.nodeType == 3 && targetElement.parentNode != null)
		{
			targetElement = targetElement.parentNode;
		}
		return targetElement;
	},

	stop: function (event)
	{
		if (typeof event.stopPropagation != "undefined")
		{
			event.stopPropagation();
		}
		else
		{
			event.cancelBubble = true;
		}
	}

}

/**
cookie.set("name", "value", 3600, "/", "wangyou.com");
cookie.get("name");
**/
var cookies = {
	//设置cookie
	set: function (name, value, time, path, domain) 
	{
		var expires = "";
		if (time) 
		{
			var date = new Date();
			date.setTime(date.getTime() + time * 1000);
			expires = "; expires=" + date.toGMTString();
		}
		if (!path) path = "/";
		
		if (domain)
		{
			document.cookie = name + "=" + value + expires + "; path=" + path + "; domain=" + domain + ";";
		}
		else
		{
			document.cookie = name + "=" + value + expires + "; path=" + path + ";";
		}
	},

	//取得cookie值
	get: function (name) 
	{
		var name = name + "=";
		var cookies = document.cookie.split(";");
		for(var i=0; i<cookies.length; i++) 
		{
			var c = cookies[i];
			while (c.charAt(0) == " ") c = c.substring(1, c.length);
			if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
		}
		return null;
	}
}



function setThemes(src){
	mzsky.e("theme_css").href = src;
}
function getThemes(){
	return mzsky.e("theme_css").href;
}

function getDefaultThemes(){
	return "1.css";
}










//**确认对话框
function show_confirm(callback,tips,ifDel,ifCancel){
	
	if(document.getElementById('_shield'))
		return;
	var oDiv = document.createElement('div');
	var domBody = document.documentElement?document.documentElement:document.body;
	document.body.appendChild(oDiv);
	oDiv.setAttribute('id','_shield');
	oDiv.style.position = 'absolute';
	oDiv.style.zIndex = '99999998';
	oDiv.style.left = '0px';
	oDiv.style.top  = '0px';
	oDiv.style.width  = domBody.scrollWidth  + 'px';
	oDiv.style.height = domBody.scrollHeight + 'px';
	oDiv.style.backgroundColor = '#888';
	oDiv.style.filter  = "alpha(opacity=50)";
	oDiv.style.opacity = 0.5;
	var left_scroll = domBody.scrollLeft; //滚动条卷去的宽度
	var top_scroll = domBody.scrollTop;  //滚动条卷去的高度
	var width_view = domBody.clientWidth; //正文可见宽度
	var height_view = domBody.clientHeight; //正文可见高度
	var l = left_scroll + (width_view-260)/2;
	var t = top_scroll + (height_view-180)/2
	var tip = tips?tips:'';
	if(typeof ifDel == 'undefined')
		ifDel = 1;
	if(typeof ifCancel == 'undefined')
		ifCancel = 1;
	
	var sDel = ifDel==0?'':'<p class="color1">确定要删除吗？</p>';
	var sCancel = ifCancel==0?'':'<input class="btncm btncc" value="取　消"  type="button" onclick="hide_confirm()" />';
	
	$(document.body).append('<div class="clue_to" id="_confirm">'+sDel+'<p class="color2">'+tip+'</p><p><input class="btncm btnok" value="确　定" type="button" onclick="'+callback+'" />&nbsp;&nbsp;'+sCancel+'</p></div>');
	document.getElementById('_confirm').style.left = l + 'px';
	document.getElementById('_confirm').style.top  = t + 'px';
	document.getElementById('_confirm').style.zIndex  = '99999999';
	try{
		$e('entry').style.visibility = 'hidden';
		/*var arrObj = document.getElementsByTagName('object');
		for(var i=0,l=arrObj.length;i<l;i++){
			arrObj[i].style.visibility = 'hidden';
		}*/
	}catch(e){}
}
function hide_confirm(){
	try{
		$e('entry').style.visibility = 'visible';
		/*var arrObj = document.getElementsByTagName('object');
		for(var i=0,l=arrObj.length;i<l;i++)
			arrObj[i].style.visibility = 'visible';*/
	}catch(e){}
	try{document.getElementById('_shield').parentNode.removeChild(document.getElementById('_shield'));}catch(e){}
	try{document.getElementById('_confirm').parentNode.removeChild(document.getElementById('_confirm'));}catch(e){}
}
//**end 确认对话框


function copyToClipboard(txt) {
      if(window.clipboardData) {
              window.clipboardData.clearData();
              window.clipboardData.setData("Text", txt);
			  alert('地址已复制，可直接粘贴！');
      } else if(navigator.userAgent.indexOf("Opera") != -1) {
           window.location = txt;
      } else if (window.netscape) {
           try {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
				alert('地址已复制，可直接粘贴！');
           } 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);
      }
}

//**控制日志图片的大小
function ctrl_pic_size(s,width){
	var w = width?width:200;
	$(s+" img").each(function(){
		if($(this).width()>w){
			var tmp_w = $(this).width();
			var tmp_h = $(this).height();
			var height = Math.round(tmp_h*w/tmp_w);
			$(this).height(height);
			$(this).width(w);
		}
	});
}

function get_div_count(){
	return $('div').length;
}

function get_slt_index(e,v){
	if(!document.getElementById(e))
		return -1;
	var o = document.getElementById(e).options;
	for(var i=0,l=o.length;i<l;i++){
		if(o[i].value == v)
			return i;
	}
	return -1;
}


function ajaxFileUpload(n,o){
	$.ajaxFileUpload(
		{url:'/blog/ajax_do_upload.php?'+Math.random(),secureuri:false,fileElementId:n,dataType: 'json',
			success: function (data, status){
				if(typeof(data.error) != 'undefined'){
					if(data.error != ''){
						show_confirm('hide_confirm()',data.error,0,0);
					}else{
						var src = '/blog/skin/customize/upload_bg/'+data.msg;
						var oImg = new Image();
						oImg.src = src;
						if(n=='upload_header_file'){
							_tmp_header_body_set.hu.background = data.msg;
							document.getElementById('header').style.background = 'url('+src+')';
						}else{
							_tmp_header_body_set.bu.background = data.msg;
							document.getElementById('body').style.background = 'url('+src+')';
						}
					}
				}
				$('#'+n).val('');
				o.value = '上 传';
				o.disabled=false;
			},error: function (data, status, e){$('#'+n).val('');o.value = '上 传';o.disabled=false;alert(e);}}
	)	
		//return false;
}