
var duceactionid = null;
var popside_x = 10;   // 弹出窗口位于鼠标左侧或者右侧的距离；3-12 合适

function ducepopupinit(event){
	try{
		if(event.srcElement) o = event.srcElement; else o = event.target;
		if(o.id != duceactionid){
			duceactionid = o.id;
			var divid = 'ducepopinfo';
			if(o.id.indexOf('thread_') != -1){
				var duceid = 'duce' + o.id;
				
				$(divid).innerHTML = $(duceid).innerHTML;
				ducetomouseloc(event, divid, o.id);
				if(!o.onmouseover) {
					o.onmouseout = function() {
						$(divid).style.display = 'none';
					}
				}
				if(!$(divid).onmouseover) {
					$(divid).onmouseover = function() {
						$(divid).style.display = 'block';
					}
					$(divid).onmouseout = function() { 
						$(divid).style.display = 'none';
					}
					//$(divid).onmouseup = $(divid).onmouseout;
				}	
			}
		}
	}catch(e){return true}
}

function ducetomouseloc(em, showid, ctrlid){
	try{
		if($(showid).innerHTML == '') return;
		$(showid).style.display = 'block';
		var showobj = $(showid);
		var menuobj = $(ctrlid);
		menuobj.pos = fetchOffset(menuobj);
		showobj.X = em.clientX + popside_x;
		showobj.Y = menuobj.pos['top'];

		showobj.w = showobj.offsetWidth;
		showobj.h = showobj.offsetHeight;
		menuobj.w = menuobj.offsetWidth;
		menuobj.h = menuobj.offsetHeight;

		var bdtop = document.documentElement.scrollTop + document.documentElement.clientHeight;
		var bdleft = document.body.clientWidth;

		if(showobj.X > menuobj.w + menuobj.pos['left'] - popside_x*2){
			showobj.X = menuobj.w + menuobj.pos['left'] - popside_x*2;
		}

		showobj.style.left = (showobj.X + showobj.w > document.body.clientWidth) && (showobj.X - showobj.w - popside_x >= 0) ? showobj.X - showobj.w - popside_x + 'px' : showobj.X + 'px';
		showobj.style.top = showobj.Y + showobj.h > document.documentElement.scrollTop + document.documentElement.clientHeight ? showobj.Y - showobj.h + 1 + 'px' : showobj.Y + (is_moz ? 15 : 14) + 'px';
	}catch(e){}
}

if(!document.onmouseover) {
	document.onmouseover = function(e) {
		if (!e) ducepopupinit(window.event); else ducepopupinit(e);
	};
}

function ducerandstr(num) { 
	var seedArray = new Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9');
	var seedStr = '';
	for (i=0;i<num;i++) {
		seedStr += seedArray[Math.round(Math.random()*(seedArray.length-1))];
	}
	return(seedStr);
}

//由于DZ系统默认浮动窗口不可自定义路径，复制floatwin函数稍加修改
function ducetransajax(action, script, w, h, scrollpos){
	var floatonly = !floatonly ? 0 : 1;
	var actione = action.split('_');
	action = actione[0];
	var handlekey = actione[1];
	if(handlekey == 'fastview'){
		script += '&induceajax=yex'// + '&' + ducerandstr(8);
	}
	var layerid = 'floatwin_' + handlekey;
	if(is_ie) {
		var objs = $('wrap').getElementsByTagName("OBJECT");
	} else {
		var objs = $('wrap').getElementsByTagName("EMBED");
	}
	loadcss('float');
	floatwinhandle[handlekey + '_0'] = layerid;
	if(!floatwinopened) {
		$('wrap').onkeydown = floatwin_wrapkeyhandle;
		for(i = 0;i < objs.length; i ++) {
			if(objs[i].style.visibility != 'hidden') {
				objs[i].setAttribute("oldvisibility", objs[i].style.visibility);
				objs[i].style.visibility = 'hidden';
			}
		}
	}
	scrollpos = !scrollpos ? '' : 'floatwin_scroll(\'' + scrollpos + '\');';
	var clientWidth = document.body.clientWidth;
	var clientHeight = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
	var scrollTop = document.body.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop;
	if(script && script != -1) {
		scriptfile = 'misc.php';
		if(floatwinreset || floatscripthandle[scriptfile] && floatscripthandle[scriptfile][0] != script) {
			if(!isUndefined(floatscripthandle[scriptfile])) {
				$('append_parent').removeChild($(floatscripthandle[scriptfile][1]));
				$('append_parent').removeChild($(floatscripthandle[scriptfile][1] + '_mask'));
			}
			floatwinreset = 0;
		}
		floatscripthandle[scriptfile] = [script, layerid];
	}
	if(!$(layerid)) {
		floattabs[layerid] = new Array();
		div = document.createElement('div');
		div.className = 'floatwin';
		div.id = layerid;
		div.style.width = w + 'px';
		div.style.height = h + 'px';
		div.style.left = floatwinhandle[handlekey + '_1'] = ((clientWidth - w) / 2) + 'px';
		div.style.position = 'absolute';
		div.style.zIndex = '997';
		div.onkeydown = floatwin_keyhandle;
		$('append_parent').appendChild(div);
		$(layerid).style.display = '';
		$(layerid).style.top = floatwinhandle[handlekey + '_2'] = ((clientHeight - h) / 2 + scrollTop) + 'px';
		$(layerid).innerHTML = '<div><h3 class="float_ctrl"><em><img src="' + ducepartDir + '/images/loading.gif"> 加载中...</em><span><a href="javascript:;" class="float_close" onclick="floatwinreset = 1;floatwin(\'close_' + handlekey + '\');">&nbsp</a></span></h3></div>';
		divmask = document.createElement('div');
		divmask.className = 'floatwinmask';
		divmask.id = layerid + '_mask';
		divmask.style.width = (parseInt($(layerid).style.width) + 14) + 'px';
		divmask.style.height = (parseInt($(layerid).style.height) + 14) + 'px';
		divmask.style.left = (parseInt($(layerid).style.left) - 6) + 'px';
		divmask.style.top = (parseInt($(layerid).style.top) - 6) + 'px';
		divmask.style.position = 'absolute';
		divmask.style.zIndex = '996';
		divmask.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=90,finishOpacity=100,style=0)';
		divmask.style.opacity = 0.9;
		$('append_parent').appendChild(divmask);
		if(script && script != -1) {
			script += (script.search(/\?/) > 0 ? '&' : '?') + 'infloat=yes&handlekey=' + handlekey;
			try {
				ajaxget(script, layerid, '', '', '', scrollpos);
			} catch(e) {
				setTimeout("ajaxget('" + script + "', '" + layerid + "', '', '', '', '" + scrollpos + "')", 1000);
			}
		} else if(script == -1) {
			$(layerid).innerHTML = '<div><h3 class="float_ctrl"><em id="' + layerid + '_title"></em><span><a href="javascript:;" class="float_close" onclick="floatwinreset = 1;floatwin(\'close_' + handlekey + '\');">&nbsp</a></span></h3></div><div id="' + layerid + '_content"></div>';
			$(layerid).style.zIndex = '1099';
			$(layerid + '_mask').style.zIndex = '1098';
		}
	} else {
		$(layerid).style.width = w + 'px';
		$(layerid).style.height = h + 'px';
		$(layerid).style.display = '';
		$(layerid).style.top = floatwinhandle[handlekey + '_2'] = ((clientHeight - h) / 2 + scrollTop) + 'px';
		$(layerid + '_mask').style.width = (parseInt($(layerid).style.width) + 14) + 'px';
		$(layerid + '_mask').style.height = (parseInt($(layerid).style.height) + 14) + 'px';
		$(layerid + '_mask').style.display = '';
		$(layerid + '_mask').style.top = (parseInt($(layerid).style.top) - 6) + 'px';
	}
	floatwins[floatwinopened] = handlekey;
	floatwinopened++;

}
