/**
 * 站点广告控制工具
 */
setAd = (function() {
	
	lastScrollY=0;
	var coupletElement1;
	var coupletElement2;
	/**
	 * 创建对联广告
	 */
	function createCoupletAd(params) {
		var aa_img_1 = params.root_path + params.aa_img_1;// 左联图片路径
		var aa_img_2 = params.root_path + params.aa_img_2;// 右联图片路径
		var aa_img_specs_1 = params.aa_img_specs_1.split('*');
		var width = eval(aa_img_specs_1[0]);// 图片宽
		var left_x = 20;// 左联图片左边到视窗左边的距离
		var right_x = document.getElementsByTagName('body')[0].clientWidth - width-20;// 右联图片到左边到视窗左边的距离

		// 生成对联
		coupletElement1 = createCoupletElement(params, left_x, aa_img_1);
		coupletElement2 = createCoupletElement(params, right_x, aa_img_2);
	}
	
	/**
	 * 创建对联广告的Element
	 */
	function createCoupletElement(params, x, picResource) {
		var delta = 0.015;
		var target = params.aa_url_target; 
		var aa_url = params.aa_url;// 广告链接地址
		var aa_img_specs_1 = params.aa_img_specs_1.split('*');
		var width = eval(aa_img_specs_1[0]);// 图片宽
		var height = eval(aa_img_specs_1[1]);// 图片高
		var y = params.aa_top;// 图片上边到视窗顶部距离
		var topNum = params.aa_top;// 图片上边到视窗顶部距离
		topNum = topNum.replace("%","").replace("px","");
		if(y.indexOf('%') < 0){// 如果图片距离顶部的值不含“%”，则加上单位px
			y += 'px';
		}
		
		var coupletElement = document.createElement('div');
		coupletElement.className="coupletelement";
		coupletElement.style.cssText = 'Z-INDEX: 0; cursor: pointer; POSITION: absolute;width:' + width + 'px;height:' + height + 'px;left:' + x + 'px;top:' + y + ';';
		var i_height = height + 1;
		coupletElement.innerHTML = '<a href=' + aa_url + ' target='+target+ '><img src=' + picResource + ' width=100% height=100% border=0></a><span id="ad_countdown"></span><i class="fa fa-times fa-lg" style="position: absolute;top: '+i_height+'px;right: 0px;color: #94bfea;" onclick="adClose(this)"></i>';

		if (coupletElement.offsetLeft != (document.body.scrollLeft + x)) {
			var dx = (document.body.scrollLeft + x - coupletElement.offsetLeft) * delta;
			dx = (dx > 0 ? 1 : -1) * Math.ceil(Math.abs(dx));
			//coupletElement.style.left = coupletElement.offsetLeft + dx;
		}

		if (coupletElement.offsetTop != (document.body.scrollTop + topNum)) {
			var dy = (document.body.scrollTop + topNum - coupletElement.offsetTop) * delta;
			dy = (dy > 0 ? 1 : -1) * Math.ceil(Math.abs(dy));
			//coupletElement.style.top = coupletElement.offsetTop + dy;
		}

		document.body.appendChild(coupletElement);
		if (x > 0) {
			window.onresize = function() {
				x = document.getElementsByTagName('body')[0].clientWidth - width;
				coupletElement.style.cssText = 'Z-INDEX: 0; POSITION: absolute;width:' + width + 'px;height:' + height + 'px;left:' + x + 'px;top:' + y + ';';
			}
		}

		// 添加广告计时关闭
		adCountdown(params, coupletElement);
		return coupletElement; 
	}

	/**
	 * 移动对联广告
	 * @return {[type]} [description]
	 */
	window.heartBeatCouplet=function(){ 
		var diffY; 
		if (document.documentElement && document.documentElement.scrollTop)
		diffY = document.documentElement.scrollTop;
		else if (document.body)
		diffY = document.body.scrollTop
		else
		{/*Netscape stuff*/}
		//alert(diffY);
		percent=.1*(diffY-lastScrollY); 
		if(percent>0)percent=Math.ceil(percent); 
		else percent=Math.floor(percent); 


		if(coupletElement1 && coupletElement1.style){
			coupletElement1.style.top=parseInt(coupletElement1.style.top)+percent+"px";
		}
		if(coupletElement2 && coupletElement2.style){
			coupletElement2.style.top=parseInt(coupletElement2.style.top)+percent+"px";
		}
		
		lastScrollY=lastScrollY+percent; 
		//alert(lastScrollY);
	}

	/**
	 * 创建飘窗广告
	 */
	function createFloatAd(params) {
		var floatElement = createFloatElement(params);
		var speed = 20; // 飘动速度，即为定时器函数多长时间执行一次
		var step = params.aa_speed/50; // 规定每执行一次函数，left属性值变化的幅度
		var statusX = 1;
		var statusY = 1;
		var x = 400; // 规定初始状态下left属性的值
		var y = 300; // 规定初始状态下top属性的值
		// 差值用来测算left属性值的极限
		var winW = document.documentElement.clientWidth - document.getElementById("float_ad").offsetWidth;
		// 差值用来测算top属性值的极限
		var winH = document.documentElement.clientHeight - document.getElementById("float_ad").offsetHeight;
		window.onresize = function() {
			winW = document.documentElement.clientWidth - document.getElementById("float_ad").offsetWidth;
			winH = document.documentElement.clientHeight - document.getElementById("float_ad").offsetHeight;
		}
		
		// 移动飘窗广告
		function moveAd() {
			// 设置div的left属性值
			floatElement.style.left = x + 'px';
			// 设置div的top属性值
			floatElement.style.top = y + 'px';
			// 如果statusX=1则每次减少1倍step,否则增加1倍step
			x = x + step*(statusX ? -1 : 1)
			// 如果left属性值小于0，也就是div要超出左边界了，就将statusX设置为0
			if (x < 0) {
				statusX = 0
			}
			// 如果top属性值大于winW，也就是div要超出右边界了，就将statusX设置为1
			if (x > winW) {
				statusX = 1
			}
			y = y + step*(statusY ? -1 : 1)
			if (y < 0) {
				statusY = 0
			}
			if (y > winH) {
				statusY = 1
			}

		}
		var interval = setInterval(moveAd, speed);
		
		// 添加鼠标事件
		floatElement.onmouseover = function() {
			clearInterval(interval)
		}; 
		floatElement.onmouseout = function() {
			interval = setInterval(moveAd, speed)
		};
	}

	/**
	 * 创建飘窗广告Element
	 */
	function createFloatElement(params){
		var aa_img_1 = params.root_path + params.aa_img_1;// 图片路径
		var aa_url = params.aa_url;// 广告链接地址
		var aa_img_specs_1 = params.aa_img_specs_1.split('*');
		var target = params.aa_url_target;
		var width = eval(aa_img_specs_1[0]);// 图片宽
		var height = eval(aa_img_specs_1[1]);// 图片高
		var element = document.createElement('div');
		element.id = 'float_ad';
		element.style.cssText = 'Z-INDEX: 9999; cursor: pointer; POSITION: fixed; width:' + width + 'px;height:' + height + 'px;';
		var i_height = height + 1;
		element.innerHTML = '<a href=' + aa_url + ' target='+target+ '><img src=' + aa_img_1 + ' width=100% height=100% border=0></a><span id="ad_countdown"></span><i class="fa fa-times fa-lg" style="position: absolute;top: '+i_height+'px;right: 0px;color: #94bfea;" onclick="adClose(this)"></i>'; 
		document.body.appendChild(element);
		// 添加广告计时关闭
		adCountdown(params, element);
		return element;
	}
	
	/**
	 * 创建弹窗广告
	 */
	function createPopupAd(params,serverurl){
		var aa_id = params.aa_id;// 广告id
		var x = params.aa_left;// 弹框距左边的距离
		var y = params.aa_top;// 弹框距视窗顶部距离
		var w_ad_size = params.aa_window_specs.split('*');
		var aa_message_content = params.aa_message_content;
		
		if(x.indexOf('%') < 0){// 如果距离的值不含“%”，则加上单位px
			x += 'px';
		}
		if(y.indexOf('%') < 0){// 如果距离的值不含“%”，则加上单位px
			y += 'px';
		}
		var width = eval(w_ad_size[0]);// 弹框宽
		var height = eval(w_ad_size[1]);// 弹框高
		var div_height = height - 40;
		var element = document.createElement('div');
		
//		element.style.cssText = 'Z-INDEX: 0; POSITION: absolute; border: 1px solid #F00;border-radius: 5px;background-clip: padding-box;'
//				+ 'width:' + width + 'px;height:' + height + 'px;top:' + y +';left:' + x + ';';
//		element.innerHTML = '<i class="fa fa-times fa-lg" style="position: absolute;right: 3px;top: 7px;color: #d92e1c;" onclick="adClose(this)"></i>'
//				+ '<div id="ad_del" style="background-color: #d92e1c;padding: 12px 16px;line-height: 1;background-color: #e4e4e4;border-top-left-radius: 5px;border-top-right-radius: 5px;"></div>'
//				+ '<div style="width:100%;height:100%;overflow-y:scroll;background:#FF5151;padding:10px 0;">'+aa_message_content+'</div>';
//		
		//document.body.append(element);
		window.open(serverurl+"/module/assistad/getHtmlById.action?aa_id="+aa_id,"newwindow"+aa_id,"height="+height+",width="+width+",toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=yes,depended=yes,left="+x+",top="+y)
		
		// 添加广告计时关闭
		//adCountdown(params, element);
	}

		/**
	 * 创建弹窗链接广告
	 */
	function createPopupLinkAd(params){
		var aa_id = params.aa_id;// 广告ID
		var aa_url = params.aa_url;// 广告地址
		var x = params.aa_left;// 弹框距左边的距离
		var y = params.aa_top;// 弹框距视窗顶部距离
		var w_ad_size = params.aa_window_specs.split('*');
		var aa_message_content = params.aa_message_content;
		
		if(x.indexOf('%') < 0){// 如果距离的值不含“%”，则加上单位px
			x += 'px';
		}
		if(y.indexOf('%') < 0){// 如果距离的值不含“%”，则加上单位px
			y += 'px';
		}
		var width = eval(w_ad_size[0]);// 弹框宽
		var height = eval(w_ad_size[1]);// 弹框高
		var div_height = height - 40;
		var element = document.createElement('div');
		
		window.open(aa_url,"newwindow"+aa_id,"height="+height+",width="+width+",toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=yes,depended=yes,left="+x+",top="+y)
		
		// 添加广告计时关闭
		//adCountdown(params, element);
	}
	
	/**
	 * 创建居中广告
	 */
	function createCenterAd(params) {
		var floatElement = createFloatElement(params);//使用飘窗广告的Element
		// 差值用来测算left属性值的极限
		var winW = document.documentElement.clientWidth - document.getElementById("float_ad").offsetWidth;
		// 差值用来测算top属性值的极限
		var winH = document.documentElement.clientHeight - document.getElementById("float_ad").offsetHeight;
		window.onresize = function() {
			winW = document.documentElement.clientWidth - document.getElementById("float_ad").offsetWidth;
			winH = document.documentElement.clientHeight - document.getElementById("float_ad").offsetHeight;
		}
		
		// 设置div的left属性值
		floatElement.style.left = winW/2 + 'px';
		// 设置div的top属性值
		floatElement.style.top = winH/2 + 'px';
		
		// 添加鼠标事件
		floatElement.onmouseover = function() {
			clearInterval(interval)
		}; 
	}

	/**
	 * 添加广告计时关闭
	 */
	function adCountdown(params, element){
		var aa_lifetime = params.aa_lifetime;// 广告停留时间
		if(aa_lifetime && aa_lifetime != '∞'){
			var adInterval = setInterval(function (){
				aa_lifetime -= 1;
				var ad_countdown = document.getElementById('ad_countdown');
				ad_countdown.innerText = aa_lifetime + 's后关闭';
				if(aa_lifetime == 0){
					element.style.display = 'none';
					clearInterval(adInterval);
				}
			}, 1000);
		}
	}
	
	/**
	 * 关闭广告
	 */
	window.adClose = function(obj){
		var parent = obj.parentNode;
		parent.style.display = 'none';
	}

	var init = function(params,serverurl) {
		// 配置路径前缀
		var w_domain = params.w_domain;
		var w_alias = params.w_alias;
		var rootPath =  w_domain + "/";
		if (w_alias) {
			rootPath += w_alias +"/";
		}
		params.root_path = rootPath;
		// 广告状态为关闭则结束
		if (params.aa_state == "deactivate") {
			return;
		}
		
		if (params.aa_type == "baywindow") {
			// 飘窗广告
			createFloatAd(params);
		}
		if (params.aa_type == "couplets") {
			// 对联广告
			createCoupletAd(params);
		}
		if (params.aa_type == "popup") {
			// 弹窗消息广告
			createPopupAd(params,serverurl);
		}
		if (params.aa_type == "link") {
			// 弹窗链接广告
			createPopupLinkAd(params);
		}
		if (params.aa_type == "centerwindow") {
			// 居中广告
			createCenterAd(params);
		}

		window.setInterval("heartBeatCouplet()",10);
	};
	return init;
})();
