/*
	[Discuz!] (C)2001-2007 Comsenz Inc.
	This is NOT a freeware, use is subject to license terms

	$RCSfile: common.js,v $
	$Revision: 1.103 $
	$Date: 2007/07/30 09:16:52 $
*/

var lang = new Array();
var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);

function $(id) {
	return document.getElementById(id);
}

Array.prototype.push = function(value) {
	this[this.length] = value;
	return this.length;
}

function checkall(form, prefix, checkall) {
	var checkall = checkall ? checkall : 'chkall';
	for(var i = 0; i < form.elements.length; i++) {
		var e = form.elements[i];
		if(e.name && e.name != checkall && (!prefix || (prefix && e.name.match(prefix)))) {
			e.checked = form.elements[checkall].checked;
		}
	}
}
 function getCookie(c_name) {
     if (document.cookie.length>0) {
        c_start=document.cookie.indexOf(c_name + "=");
         if (c_start!=-1) { 
            c_start=c_start + c_name.length+1;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1)   c_end=document.cookie.length;
            return decodeURIComponent(document.cookie.substring(c_start,c_end));
        }
    }
    return null;
}

function clearcookie() { 
    var temp=document.cookie.split(";"); 
    var loop3; 
    var ts; 
    for (loop3=0;loop3<temp.length;loop3++) { 
        ts=temp[loop3].split("=")[0];	
        if (ts.indexOf('PET1')!=-1 || ts.indexOf('PET2')!=-1) {
            deletecookie(ts);
       }
    }
}

function round(v,e) { 
	var t=1; 
	for(;e>0;t*=10,e--); 
	for(;e<0;t/=10,e++); 
	return Math.round(v*t)/t; 
}

function deletecookie(name) {
   //删除名称为name的Cookie 
   var date = new Date();
   date.setTime(date.getTime()-10000);
   document.cookie = name + "=a; expires=" + date.toGMTString();
}  	

function doane(event) {
	e = event ? event : window.event;
	if(is_ie) {
		e.returnValue = false;
		e.cancelBubble = true;
	} else if(e) {
		e.stopPropagation();
		e.preventDefault();
	}
}

function fetchCheckbox(cbn) {
	return $(cbn) && $(cbn).checked == true ? 1 : 0;
}

function getcookie(name) {
	var cookie_start = document.cookie.indexOf(name);
	var cookie_end = document.cookie.indexOf(";", cookie_start);
	return cookie_start == -1 ? '' : unescape(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length)));
}


function in_array(needle, haystack) {
	if(typeof needle == 'string' || typeof needle == 'number') {
		for(var i in haystack) {
			if(haystack[i] == needle) {
					return true;
			}
		}
	}
	return false;
}

function setcopy(text, alertmsg){
	if(is_ie) {
		clipboardData.setData('Text', text);
		alert(alertmsg);
	} else if(prompt('Press Ctrl+C Copy to Clipboard', text)) {
		alert(alertmsg);
	}
}

function isUndefined(variable) {
	return typeof variable == 'undefined' ? true : false;
}

function mb_strlen(str) {
	var len = 0;
	for(var i = 0; i < str.length; i++) {
		len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1;
	}
	return len;
}

function setcookie(cookieName, cookieValue, seconds, path, domain, secure) {
	var expires = new Date();
	expires.setTime(expires.getTime() + seconds);
	document.cookie = escape(cookieName) + '=' + escape(cookieValue)
		+ (expires ? '; expires=' + expires.toGMTString() : '')
		+ (path ? '; path=' + path : '/')
		+ (domain ? '; domain=' + domain : '')
		+ (secure ? '; secure' : '');
}

function strlen(str) {
	return (is_ie && str.indexOf('\n') != -1) ? str.replace(/\r?\n/g, '_').length : str.length;
}

function trim(str) {
	return (str + '').replace(/(\s+)$/g, '').replace(/^\s+/g, '');
}

function gE(z,y){return z.getElementsByTagName(y)}
function ce(z){return document.createElement(z)}
function ac(z){
var a=0,b=0;while(z){a+=z.offsetLeft;b+=z.offsetTop;z=z.offsetParent} return [a,b]}

var Get={
windowSize:function()
{
	var width = 0, height = 0;
	if(typeof window.innerWidth == 'number') //Non-IE
	{
		width = window.innerWidth;
		height = window.innerHeight;
	}
	else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
  	{
		//IE 6+ in 'standards compliant mode'
		width = document.documentElement.clientWidth;
		height = document.documentElement.clientHeight;
	}
 	else if(document.body && (document.body.clientWidth || document.body.clientHeight))
	{
		//IE 4 compatible
		width = document.body.clientWidth;
		height = document.body.clientHeight;
	}
	return [width, height];
}
,

scroll:function()
{
	var x = 0, y = 0;
	if(typeof(window.pageYOffset) == 'number')
	{
		//Netscape compliant
		x = window.pageXOffset;
		y = window.pageYOffset;
	}
	else if(document.body && (document.body.scrollLeft || document.body.scrollTop))
	{
		//DOM compliant
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}
	else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop))
	{
		//IE6 standards compliant mode
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	}
	return [x, y];
}
}

var Tooltip = {
	create: function(htmlTooltip)
	{
		var d = ce('div'), t = ce('table'), tb = ce('tbody'), tr1 = ce('tr'), tr2 = ce('tr'), td = ce('td'), th1 = ce('th'), th2 = ce('th'), th3 = ce('th');
		d.className = 'tooltip';
		th1.style.backgroundPosition = 'top right';
		th2.style.backgroundPosition = 'bottom left';
		th3.style.backgroundPosition = 'bottom right';
		if(htmlTooltip)
		td.innerHTML = htmlTooltip;
		td.id="text";
		tr1.appendChild(td);
		tr1.appendChild(th1);
		tb.appendChild(tr1);
		tr2.appendChild(th2);
		tr2.appendChild(th3);
		tb.appendChild(tr2);
		t.appendChild(tb);
		d.appendChild(t);
		return d;
	},

	fix: function(tooltip, noShrink, visible)
	{
		var table = gE(tooltip, 'table')[0],
		    td = gE(table, 'td')[0],
		    c = td.childNodes;
		if(c.length >= 2 && c[0].nodeName == 'TABLE' && c[1].nodeName == 'TABLE')
		{
			var m;
			if(c[1].offsetWidth > 300)
				m = Math.max(300, c[0].offsetWidth) + 20;
			else
				m = Math.max(c[0].offsetWidth, c[1].offsetWidth) + 20;
			if(m > 20)
			{
				tooltip.style.width = m + 'px';
				c[0].style.width = c[1].style.width = '100%';

				if(!noShrink && tooltip.offsetHeight > document.body.clientHeight)
					table.className = 'shrink';
			}
		}
		if(visible)
			tooltip.style.visibility = 'visible';
	},

	fixSafe: function(p1, p2, p3)
	{
		if(Browser.ie)
			setTimeout(Tooltip.fix.bind(this, p1, p2, p3), 1);
		else
			Tooltip.fix(p1, p2, p3);
	},

	append: function(el, htmlTooltip)
	{
		var el = $(el);
		var tooltip = Tooltip.create(htmlTooltip);
		el.appendChild(tooltip);

		Tooltip.fixSafe(tooltip, 1, 1);
	},

	move: function(_this, tooltip, x, y, tow, toh, clip)
	{c = ac(_this);
		var _,
		    c = ac(_this),
		    left = c[0],
		    top  = c[1],
		    minx = 0,
		    miny = 0,
		    w1   = _this.offsetWidth  + x,
		    h1   = _this.offsetHeight + y,
		    windowSize = Get.windowSize(),
		    scroll = Get.scroll(),
		    bcw = windowSize[0],
		    bch = windowSize[1],
		    bsl = scroll[0],
		    bst = scroll[1];
		tooltip.style.width = tow + 'px';
		if(clip)
		{
			_ = $(clip);
			if(_)
			{
				c = ac(_);
				minx = c[0];
				miny = c[1];

				if(_.offsetWidth + minx <= bsl + bcw)
					bcw = _.offsetWidth  + minx - bsl;

				if(_.offsetHeight + miny <= bst + bch)
					bch = _.offsetHeight + miny - bst;
			}
		}
		if(left + w1 + tow > bcw)
			left = Math.max(left - tow - x, minx);
		else
			left += w1;

		if(left < minx)
			left = minx;
		else if(left + tow > bsl + bcw)
			left = bsl + bcw - tow;

		if(top - toh - y > Math.max(bst, miny))
			top = top - toh - y;
		else
			top += h1;

		if(top < miny)
			top = miny;
		else if(top + toh > bst + bch)
			top = Math.max(bst, bst + bch - toh);
			tooltip.style.left = left + 'px';
			tooltip.style.top  = top  + 'px';
			tooltip.style.visibility = 'visible';
	},

	show: function(_this, text, x, y,_type,spanClass)
	{
		var _;
		if(!Tooltip.tooltip)
		{
			_ = Tooltip.create();
			_.style.position = 'absolute';
			_.style.left = _.style.top = '-2323px';

			var lay = $('layers');
			lay.appendChild(_);

			Tooltip.tooltip      = _;
			Tooltip.tooltipTable = gE(_, 'table')[0];
			Tooltip.tooltipTd    = gE(_, 'td')[0];
		}

		if(spanClass) text = '<span class="' + spanClass + '">' + text + '</span>';
		_ = Tooltip.tooltip;
		_.style.width = '300px';
		_.style.left = '-2323px';
		_.style.top  = '-2323px';
		Tooltip.tooltipTd.innerHTML = text;
		getData(_this,_type);
		_.style.display = '';
		Tooltip.fix(_, 0, 0);
		Tooltip.move(_this, _, x, y, Tooltip.tooltipTable.offsetWidth, Tooltip.tooltipTable.offsetHeight, 'fixTooltip');
	},

	hide: function()
	{
		if(Tooltip.tooltip)
		{
			Tooltip.tooltip.style.display = 'none';
			Tooltip.tooltip.visibility = 'hidden';
			Tooltip.tooltipTable.className = '';
		}
	}
};


var xmlHttp;

function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();        
	}
}

function getData(_this,_type) {
	createXMLHttpRequest();
	var url;
	if(_type=='item') {
		url =  "gi.php?id=" + escape(_this.id);
	}else {
		url = "gp.php?id=" + escape(_this.id);
	}
	xmlHttp.open("GET", url, true);
	xmlHttp.onreadystatechange = function() {
		$("text").innerHTML="资料载入中...";
		if (xmlHttp.readyState == 4) 
		{
		if (xmlHttp.status == 200) {
			$("text").innerHTML=xmlHttp.responseText;
			Tooltip.fix(Tooltip.tooltip, 0, 0);
			Tooltip.move(_this, Tooltip.tooltip, 0, 0, $('text').offsetWidth, $('text').offsetHeight, 'fixTooltip');
			}
		}
	};
	xmlHttp.send(null);
}

						function randomChar(l) {
							var x="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
							var tmp="";
							for(var i=0;i<l; i++) {
								tmp += x.charAt(Math.ceil(Math.random()*100000000)%x.length);
							}
							return tmp;
						}
						function pushitem(id,e) {
							if(document.all){window.event.returnValue=false;}else{e.preventDefault();}	
							$('lhitem').style.display='block';
							$('lhitem').src=$('item_'+id+'').src;
						}
						function push(id,e) {
							if(document.all){window.event.returnValue=false;}else{e.preventDefault();}
							if(!/.(jpg|jpeg|gif)$/.test($('pet1').getAttribute("src"))){
								$('pet1').style.display='block';
								$('pet1').src=$('pet_'+id+'').src;
								var newid = 'ajax_pet1_'+id;
								$('ajax_pet1').href = "menu.php?pet1_id="+id+'&formhash='+$('formhash').value;
								$('_pet1').value=id;
								var data = 'formhash='+$('formhash').value+'&action=petczsx&pet1='+id;
								var x = new Ajax('HTML', 'pet1_czsx');
								x.get('ajax.php?' + data, function(s){
									var t = eval('('+s+')');
									//$('pet1_czsx').style.display='';
									$('pet1_tlcz').innerHTML = t.pettlcz;
									$('pet1_lcz').innerHTML = t.petlcz;
									$('pet1_fycz').innerHTML = t.petfycz;
									$('pet1_fcz').innerHTML = t.petfcz;
									$('pet1_kxcz').innerHTML = t.petkxcz;
									$('zy').innerHTML = t.petsxzy;
								});
							}else if(!/.(jpg|jpeg|gif)$/.test($('pet2').getAttribute("src"))) {
								$('pet2').style.display='block';
								$('pet2').src=$('pet_'+id+'').src;
								var newid = 'ajax_pet2_'+id;;
								$('ajax_pet2').href = "menu.php?pet2_id="+id+'&formhash='+$('formhash').value;
								$('_pet2').value=id;
								var data = 'formhash='+$('formhash').value+'&action=petczsx&pet2='+id;
								//ajaxresponse('left_pic', );
								var x = new Ajax('HTML', 'pet2_czsx');
								x.get('ajax.php?' + data, function(s){
									var t = eval('('+s+')');
									//$('pet2_czsx').style.display='';
									$('pet2_tlcz').innerHTML = t.pettlcz;
									$('pet2_lcz').innerHTML = t.petlcz;
									$('pet2_fycz').innerHTML = t.petfycz;
									$('pet2_fcz').innerHTML = t.petfcz;
									$('pet2_kxcz').innerHTML = t.petkxcz;
									});
							}else {
								alert("请先清空主副宠!");
							}
							if($('_pet1').value && $('_pet2').value) petpreview();
						}

						function cancelpet(pet,e) {
							if(document.all){window.event.returnValue=false;}else{e.preventDefault();}
							clearcookie();
							$(pet).style.display='none';
							$('lhitem').style.display='none';
							$('left_pic').style.display='none';
							$('left_page').style.display='none';
							$('left_cont').style.display='none';
							$('pettlczl').innerHTML = $('petlczl').innerHTML = $('petfczl').innerHTML = $('zy').innerHTML = $(pet+'_tlcz').innerHTML = $(pet+'_lcz').innerHTML = $(pet+'_fycz').innerHTML = $(pet+'_fcz').innerHTML = $(pet+'_kxcz').innerHTML = $('_'+pet).value =  $(pet).src =  $('ajax_'+pet).href ='';
							var randchar = randomChar(10);
							$('formhash').value=randchar;
						}
		
						function showtype(id,e) {
							if(document.all){window.event.returnValue=false;}else{e.preventDefault();}
							var idlist = [0,1,32,64,128,256,16,4,8,2];
							for (var i=0;i<idlist.length;i++) {
								if(idlist[i]==id) {
									$('li_'+idlist[i]).className='here';
									$('type_'+idlist[i]).style.display='block';	 
								}else{
									$('li_'+idlist[i]).className='';
									$('type_'+idlist[i]).style.display='none';
								}
							}
							return false;
						}
						
						function petpreview() {
							var pet1_id= $('_pet1').value;	
							var pet2_id= $('_pet2').value;
							if(pet1_id=='' || pet2_id=='') {
								alert("要炼化的主宠或辅宠不能为空!");
								return false;
							}
							var data = 'action=petpreview&pet1='+pet1_id+'&pet2='+pet2_id;
							//ajaxresponse('left_pic', );
							var x = new Ajax('HTML', 'left_pic');
							x.get('ajax.php?' + data, function(s){
								if(s=='' || s=='failed') {
									//alert("这两种宠物不能合成!");
									return false;
								}
								var obj = $('left_pic');
								var t = eval('('+s+')');
								var left_pic = '';
								for(var p in t) {
									obj.style.display = '';
									left_pic += "<dl><dt><a href=\"#\" onclick=\"push(this.id,event);\" target=\"_self\" onmouseout=\"Tooltip.hide();\" onmouseover=\"Tooltip.show(this,'',0 ,0);\" id="+p+"><img src='icon/"+t[p]['xtb']+"' width=\"48\" height=\"48\"></a></dt><dd>"+t[p]['name']+"</dd></dl>";
								}
								$('left_page').style.display='block';
								obj.innerHTML = left_pic;
							});
						}

						function petlh() {
							var pet1_id= $('_pet1').value;	
							var pet2_id= $('_pet2').value;							
							var data = 'formhash='+$('formhash').value+'&action=petlh&pet1='+pet1_id+'&pet2='+pet2_id+"&_t=" + new Date().getTime();
							//ajaxresponse('left_pic', );
							var x = new Ajax('HTML', 'left_cont');
							x.get('ajax.php?' + data, function(s){
								if(s=='' || s=='failed') {
									alert("您必须提交主宠和辅宠数据才能开始炼妖(单击宠物头像可提交数据)!");
									return false;
								}
								var t = eval('('+s+')');
								$('left_cont').style.display = 'block';
								$('pettlczl').innerHTML = round(t['pettlczl'],2);
								$('petlczl').innerHTML = round(t['petlczl'],2);
								$('petfczl').innerHTML = round(t['petfczl'],2);
								$('pett').innerHTML = round(t['pett'],2);
								$('petl').innerHTML = round(t['petl'],2);
								$('petf').innerHTML = round(t['petf'],2);
							});
						}
						function petreset() {
							clearcookie();
							$('pet1').style.display='none';
							$('pet2').style.display='none';
							$('lhitem').style.display='none';
							$('left_pic').style.display='none';
							$('left_page').style.display='none';
							$('left_cont').style.display='none';
							$('pettlczl').innerHTML = $('petlczl').innerHTML = $('petfczl').innerHTML = $('zy').innerHTML = $('pet1_tlcz').innerHTML = $('pet1_lcz').innerHTML = $('pet1_fycz').innerHTML = $('pet1_fcz').innerHTML = $('pet1_kxcz').innerHTML = $('pet2_tlcz').innerHTML = $('pet2_lcz').innerHTML = $('pet2_fycz').innerHTML = $('pet2_fcz').innerHTML = $('pet2_kxcz').innerHTML = $('_pet1').value = $('_pet2').value = $('pet1').src = $('pet2').src = $('ajax_pet1').href = $('ajax_pet2').href = $('gold_g').value =  $('gold_s').value = $('gold_c').value = '';
							var randchar = randomChar(10);
							$('formhash').value=randchar;
						}
