/** JS Effect for bestdeals index ***/
/** Author : ffpan ***/
/** Create Date : 2009-05-22 ***/

//蒙版效果
function $mousePos(evt){ 
	evt=evt || window.event; 
	if(evt.pageX){ 
		xPos=evt.pageX; 
		yPos=evt.pageY; 
	} else { 
		xPos=evt.clientX+document.documentElement.scrollLeft; 
		yPos=evt.clientY+document.documentElement.scrollTop; 
	}
	return [xPos,yPos];
}

var maskAnimate =(function(){
	var mask = null;
	var subGray = null;
	var curr = null;
	var mpos = [];
	var props = {} //动画移动的配置
	var ps; //pageSize
	var rc;
	var func={
		onresize:null,
		onscroll:null
	};
	var con = null; //被移除的form

	return function(el , m){
		if(!mask)
			initMask();
		if(el){   //显示蒙版
			curr = el;
			mpos = m;
			measureSize();
			rePos();
			for(var s in func){
				func[s]=window[s];
				window[s]=rePos;
			}
		}
		else{   //隐藏蒙版
			reRePos();
			show(mask , false);
			for(var s in func){
				func[s]=window[s];
				window[s]=null;
			}
		}
	}

	//生成蒙版的div
	function initMask(){
		mask=$c('div');
		mask.style.cssText='background-color:{$c};border:none;position:absolute;visibility:hidden;opacity:{$a};filter:alpha(opacity={$A});z-index:{$z}'.replaceWith({
			c: maskAnimate.bgColor || '#fff',
			a: maskAnimate.bgAlpha || '0.7',
			A: maskAnimate.bgAlpha ? parseInt(maskAnimate.bgAlpha * 100) : '70'
		});
		document.body.appendChild(mask);
		maskAnimate.mask = mask;

		subGray = $c("div");
		subGray.id = "subGray";
		subGray.style.cssText='background-color:{$c};border:none;position:absolute;visibility:hidden;opacity:{$a};filter:alpha(opacity={$A});z-index:{$z}'.replaceWith({
			c: maskAnimate.bgColor || '#000000',
			a: maskAnimate.bgAlpha || '0.3',
			A: maskAnimate.bgAlpha ? parseInt(maskAnimate.bgAlpha * 100) : '30'
		});
		document.body.appendChild(subGray);
		maskAnimate.subGray = subGray;

	}
	
	function measureSize(){
		sty = curr.style;
		sty.visibility="hidden";
		sty.left = "-10000px";
		sty.top = "-10000px";
		sty.display = "block";
		sty.position = "absolute";
	}

	//显示元素
	function show(el , v){
		el.style.visibility = v?"visible":"hidden";
	}
	
	function centerPos(ps, cw, ch){
		return {
			left: ((ps.winWidth - cw) >> 1) + ps.scrollLeft + (maskAnimate.adjustX || 0),
			top: ((ps.winHeight - ch) >> 1) + ps.scrollTop + (maskAnimate.adjustY || 0)
		};
	}

	//动态显示元素
	function rePos(){
		ps = $pageSize("doc");
		rc = centerPos(ps, curr.offsetWidth, curr.offsetHeight);
		if(rc.left < ps.scrollLeft) rc.left = ps.scrollLeft;
		if(rc.top < ps.scrollTop) rc.top = ps.scrollTop;
		
		if(curr.style.visibility!="visible"){
			props = {
				width : [0,curr.offsetWidth],
				height : [0,curr.offsetHeight],
				left:[mpos[0] , rc.left],
				top:[mpos[1] , rc.top]
			};
			$animate(subGray , props , {callback:aniFn.pass(true)});
			show(subGray ,true);
			setRect(curr, rc);
			setIndex();
		}
		else{
			setRect(subGray , rc);
			setRect(curr, rc);
		}
		setRect(mask , ps);
	}

	function reRePos(){
		show(subGray , true);
		show(curr,false);
		$animate(subGray , props , {reverse : true});
	}

	function setIndex(){
		subGray.style.zIndex = 18;
		curr.style.zIndex = 20;
		mask.style.zIndex = 15;
	}

	//animate回调函数
	function aniFn(v){
		if(v){
			show(curr , true);
			show(mask , true);
			show(subGray , false);
		}
	}


	//控制el的位置
	function setRect(el,rect){
		var sty=el.style;
		sty.left=(rect.left||0)+'px';
		sty.top=(rect.top||0)+'px';
		if('width' in rect)
			sty.width=rect.width+'px';
		if('height' in rect)
			sty.height=rect.height+'px';
	}
})();

$r("domready" , function(){
	//首页左上方滚动图片
	//load pic by imagetext in file cn_bestdeals_index_080828.txt
	var imageHallDiv = $("imageHallDiv")
	var imageHall = $('imageHall');
	var rollPrev = $("rollPrev");
	var rollNext = $("rollNext");

	var totalLen = 98*(imagetext.length);  //imageHall总长度
	var rollLen = 98*4;  //每一次移动的总长度
	var eachLen = 7;  //每次移动的产度

	function loadImage(){
		var mouse = "";
		for(var i=0,l=imagetext.length*2 ; i<l ; i++){
			var a = (i>=imagetext.length) ? (i-imagetext.length) : i ;
			var arr = imagetext[a].split("|");
			mouse += "<li><a href=\""+arr[0]+"\" title=\""+arr[2]+"\"><span style=\"background-image:url("+arr[1]+");\"></span>"+arr[2]+"</a></li>";
		}
		imageHall.innerHTML = mouse;
	}
	
	function autoScroll(direction){
		var tt=1;
		if(direction=="left"){
			if(imageHallDiv.scrollLeft<=0)
				imageHallDiv.scrollLeft = totalLen;
		}else{
			if(imageHallDiv.scrollLeft>=totalLen)
				imageHallDiv.scrollLeft = 0;
		}
		
		var timer = setInterval(function(){
			if(direction=="left")
				imageHallDiv.scrollLeft -=eachLen;
			else
				imageHallDiv.scrollLeft +=eachLen;
			if((tt)*eachLen>=rollLen){
				clearInterval(timer);
				tt=1;
			}
			tt++;
		} , 20);
	}
	rollPrev.onclick = function(){autoScroll("left");}
	rollNext.onclick = function(){autoScroll("right");}
	
	loadImage();
	


	//中间左边的日历
	var c_prev = 6; //向前最多显示6个月
	var c_next = 1; //向后最多显示1个月
	var c_max = 6; //最多显示7条数据
	

	var b_m = [1,3,5,7,8,10,12];
	var s_m = [4,6,9,11];
	var now = new Date();
	var reset_y = now_y = now.getFullYear();
	var reset_m = now_m = now.getMonth();
	var reset_x = now_x = now.getDay();
	var reset_d = now_d = now.getDate();

	var calendarBody = $("calendar_body");
	var calendarDiv = $("calendar_div");
	var calendarMonth = $("calendar_month");
	var calendarContent = $("calendar_content");
	var lastMonth = $("lastMonth");
	var nextMonth = $("nextMonth");

	var c_days = {};

	Array.prototype.search = function(val){
		for(var i=0 , l=this.length;i<l;i++){
			if(this[i]==val) return true;
		}
		return false;
	}
	
	//初始化月份对应的总天数
	function init_days(y){
		var c_day = {};
		for(var i=1;i<=12;i++){
			if(b_m.search(i))
				c_day[i] = 31;
			else if(s_m.search(i))
				c_day[i] = 30;
			else if(i==2){
				var temp = new Date(y , 1 , 29);
				if(temp.getMonth()==1)
					c_day[i] = 29;
				else
					c_day[i] = 28;
			}
		}
		return c_day;
	}
	
	//根据年份和月份画出日历
	function draw_cal(year , month){
		if(month>11){
			year = year+1;
			month = month-12;
		}
		if(month<0){
			year = year-1;
			month = month+12;
		}
		
		now_y = year;
		now_m = month;
		 var firstD = new Date(year , month , 1);
		 var startX = firstD.getDay();

		calendarMonth.$("strong")[0].innerHTML =  (month+1)+"月";
		days = c_days[month+1];
		
		//draw the first line
		var ccArr = [];
		var mouse = "";
		var cc = 1;
		for(var i=0;i<startX;i++){
			mouse +="<td>&nbsp;</td>";
		}
		for(var i=startX;i<7;i++){
			mouse +="<td><a href=\"###\">"+cc+"</a></td>";
			cc++;
		}
		mouse = "<tr>"+mouse+"</tr>";
		ccArr.push(mouse);
		
		//draw middle lines
		for(var i=cc;i<=days;){
			mouse = "";
			for(var m=0;m<7;m++){
				if(i>days)
					mouse +="<td>&nbsp;</td>";
				else
					mouse +="<td><a href=\"###\">"+i+"</a></td>";
				i++;
			}
			ccArr.push("<tr>"+mouse+"</tr>");
		}
		calendarDiv.innerHTML = "<table cellspacing=\"1\" cellpadding=\"0\" class=\"calendar_day\"><thead><tr><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr></thead><tbody id=\"calendar_body\">"+ccArr.join("");+"</tbody></table>";

		
		//显示/隐藏下一月上一月
		lastMonth.style.display = "";
		nextMonth.style.display = "";
		var a = reset_m;
		var b = now_m;
		a = reset_y>now_y?a+12:a;
		b = reset_y<now_y?b+12:b;
		if(a>b&&a-b>=6){
			lastMonth.style.display = "none";
		}
		if(a<b&&b-a>=1){
			nextMonth.style.display = "none";
		}

		//如果跳到本月，显示本日
		if(now_m==reset_m)
			showAllInfo(reset_y,reset_m+1,reset_d,null);

	}

	function init_cal(){
		c_days = init_days(now_y);
		draw_cal(now_y , now_m);
	}

	function showAllInfo(y , m ,d , el){
		setCls(el);
		var mouse = "";
		mouse = "<li style=\"list-style:none;\"><strong>"+y+"年"+m+"月"+d+"日</strong></li>";
		calendarContent.innerHTML = mouse;
		calendarContent.innerHTML += getInfo(y , m , d);
		
	}

	function getInfo(y , m , d){
		var conArr = [];
		for (var i=0,l=arrNews.length ; i<l ; i++){
			var bd = arrNews[i][2].split('-');
			var ed = arrNews[i][3].split('-');
			if((new Date(y , m , d)).getTime()>=(new Date(bd[0] , bd[1] , bd[2])).getTime() && (new Date(y,m,d)).getTime()<=(new Date(ed[0] , ed[1] , ed[2])).getTime()) {
				conArr.push(i);
			}
		}
		conArr.sort(randomSort);
		fArr = conArr.length>c_max?conArr.slice(0,6):conArr;

		//根据数组显示内容
		var mouse = "";
		var idx;
		for(var i=0,l=fArr.length;i<l;i++){
			idx = fArr[i];
			mouse += "<li><a href=\""+arrNews[idx][4]+"\" title=\""+arrNews[idx][0]+"\" target=\"_blank\">"+arrNews[idx][0]+"</a></li>";
		}
		return mouse;
	}

	function randomSort(a,b){
		return Math.random()>0.5?1:-1;
	}

	function setCls(el){
		var as = calendarDiv.$("td");
		for(var i=0 , l=as.length;i<l;i++){
			if(as[i].className=="selected"){
				as[i].className="";
				break;
			}
		}
		if(el)
			el.parentNode.className = "selected";
		else{
			for (var i=0,l=as.length;i<l;i++){
				if(as[i].$("a").length!=0){
					if(as[i].$("a")[0].innerHTML == reset_d)
						as[i].className="selected";
				}
			}
		}
	}
	
	lastMonth.onclick = function(){
		draw_cal(now_y , now_m-1);
	}
	
	nextMonth.onclick = function(){
		draw_cal(now_y , now_m+1);
	}

	calendarDiv.onclick = function(e){
		var el = $fixE(e).$target;
		if(el.tagName=="A"){
			showAllInfo(now_y , now_m+1 , parseInt(el.innerHTML) , el);
		}
	};
	
	init_cal();
	showAllInfo(reset_y , reset_m+1 , reset_d , null);



	var rbBlock = $("rb_block");
	var ltBlock = $("lt_block");
	var rtBlock = $("rt_Block");

	var fltCloudDiv = $("cloud_flight");
	var pkgCloudDiv = $("cloud_package");
	var hotelCloudDiv = $("cloud_hotel");

	var fltFrm = $("cloud_flight_form");
	var pkgFrm = $('cloud_package_form');
	var hotelFrm = $('cloud_hotel_form');
	
	//根据query生成hidden元素
	function insertHidden(hdiv , query){
		hdiv.innerHTML = "";
		var queryArr = query;
		var nhidden,h;
		for(var i=0,l=queryArr.length;i<l;i++){
			if(queryArr[i]=="")
				continue;
			h = queryArr[i].split("=");
			hdiv.innerHTML +="<input type=\"hidden\" name=\""+h[0]+"\" value=\""+h[1]+"\" />";
//			nhidden = $c("input");
//			nhidden.setAttribute("name", h[0]);
//			nhidden.id = h[0];
//			nhidden.value = h[1];
//			nhidden.type = "hidden";
//			hdiv.appendChild(nhidden);
		}
	}

	//点击特惠国际机票弹出窗口
	rbBlock.onmousedown = function(e){
		var el = $fixE(e).$target;
		if(el.tagName=="A"||el.tagName=="TD"||el.tagName=="TR"){
			while(el.tagName!="TR"){
				el = el.parentNode;
			}
			
			initFlightForm();
			$('cloud_flight_cancel').onclick = $('cloud_flight_close').onclick = function(){
				showCloud(null , null , false);
			}
			showCloud(e , fltCloudDiv , true);
		}
		

		function initFlightForm(){
			var query = el.getAttribute("query").split("&").concat(["DDatePeriod1","ADatePeriod1"]);
			insertHidden($("flight_hidden") , query);
	

			//初始化日期信息
			if(el.getAttribute("para_1")){
				$('cloud_flight_st').setAttribute("mod_calendar_rangestart" , el.getAttribute("range_start_1"));
				$('cloud_flight_st').setAttribute("mod_calendar_rangeend" , el.getAttribute("range_end_1"));
				$('cloud_flight_st').value = "";
				$d($('cloud_flight_st'));
				$('cloud_flight_back').style.display = "none";
			}
			if(el.getAttribute("para_2")){
				$('cloud_flight_back').style.display = "";
				$('cloud_flight_ed').setAttribute("mod_calendar_rangestart" , el.getAttribute("range_start_2"));
				$('cloud_flight_ed').setAttribute("mod_calendar_rangeend" , el.getAttribute("range_end_2"));
				$('cloud_flight_st').value = $('cloud_flight_ed').value  = "";
				$d($('cloud_flight_st'));
				$d($('cloud_flight_ed'));
			}

			$('cloud_flight_tip').innerHTML = el.getAttribute("instruction");
		}
	}


	fltFrm.onsubmit = function(){
		if($('cloud_flight_st').offsetWidth!=0 && $('cloud_flight_st').isNull()){
			$alert($('cloud_flight_st') , "请选择出发日期");
			return false;
		}
	
		if($('cloud_flight_ed').offsetWidth!=0){
			if($('cloud_flight_ed').isNull()){
				$alert($('cloud_flight_ed') , "请选择返程日期");
				return false;
			}
			if($('cloud_flight_ed').value.isDateTime()<$('cloud_flight_st').value.isDateTime()){
				$alert($('cloud_flight_ed') , "返程日期必须晚于出发日期");
				return false;
			}
			this.ADatePeriod1.value = $('cloud_flight_ed').value;
		}

		this.DDatePeriod1.value = $('cloud_flight_st').value;
		showCloud(null , null , false);
		return true;
	}

	
	//点击特价酒店
	//arr[0]: pribd_jmp_metal01
	//arr[1]: hotel_diamond06
	//arr[2]: http://hotels.ctrip.com/domestic/ShowHotelInfo.aspx?hotel=22052&startdate=2009-5-31&DepDate=2009-6-1
	//arr[3]: 北京香榭舍酒店公寓
	//arr[4]: [2009年4月3日&nbsp;-&nbsp;2009年12月31日]&nbsp;此期间入住酒店，每间房均可获赠欢迎水果一份。
	//arr[5]: http://images3.ctrip.com/i/hotel/23000/22052/1118D753-C9F6-45E6-88FF-1ED938ECF8A3.jpg
	//arr[6]: 北京香榭舍公寓酒店是一家商务型公寓式酒店，位于东三环华威桥，朝阳区CBD商务圈，毗邻国贸中心。酒店紧邻地铁10号线、潘家园古玩城、首都图书馆、北京欢乐谷游乐场等，交通、娱乐、购物非常便利。

	ltBlock.onmousedown = function(e){
		var el = $fixE(e).$target;
		if(el.tagName=="A"||el.tagName=="TD"||el.tagName=="TR"){
			while(el.tagName!="TR")
				el = el.parentNode;

			$('cloud_hotel_cancel').onclick = $('cloud_hotel_close').onclick = function(){
				showCloud(null , null , false);
			}
			initHotelForm();
			showCloud(e , hotelCloudDiv , true);
		}
	
		$("cloud_hotel_form").onsubmit = function(){
			insertHidden($("flight_hidden") , el);

			if($("cloud_hotel_st") && $("cloud_hotel_st").isNull()){
				$alert($("cloud_hotel_st") , "请选择入住日期");
				return false;
			}
			if($("cloud_hotel_ed") && $("cloud_hotel_ed").isNull()){
				$alert($("cloud_hotel_ed") , "请选择离店日期");
				return false;
			}
			if($("cloud_hotel_ed").value.isDateTime()<$("cloud_hotel_st").value.isDateTime()){
				$alert($("cloud_hotel_ed") , "离店日期必须晚于入住日期");
				return false;
			}
			
			this.StartDate.value = $("cloud_hotel_st").value;
			this.DepDate.value = $("cloud_hotel_ed").value;
			showCloud(null , null , false);
			return true;

		}

		function initHotelForm(){
			//根据query生成hidden元素
			var query = el.getAttribute("query").split("&").concat(["StartDate","DepDate"]);
			insertHidden($("hotel_hidden") , query);

			var para = el.getAttribute("para");
			var arr = para.split(",");
			$("cloud_hotel_level").style.display = (arr[0]=="")?"none":"";
			$("cloud_hotel_level").className=arr[0];
			$("cloud_hotel_star").className = arr[1];
			$("cloud_hotel_link").href = $("cloud_hotel_link2").href = arr[2];
			$("cloud_hotel_link").innerHTML = arr[3];
			$("cloud_hotel_tips").innerHTML = arr[4];
			$("cloud_hotel_image").src = arr[5];
			$("cloud_hotel_content").innerHTML = arr[6];
			
			$("cloud_hotel_st").setAttribute("mod_calendar_rangestart" , el.getAttribute("range_start_1"));
			$("cloud_hotel_ed").setAttribute("mod_calendar_rangestart" , el.getAttribute("range_start_2"));
			$("cloud_hotel_st").value=$("cloud_hotel_ed").value="";
			$d($("cloud_hotel_st"));
			$d($("cloud_hotel_ed"));
		}
	}



	//点击度假产品
	//arr[0] : http://www.ctrip.com/supermarket/package/packagebegin.asp?pkg=25491&startcity=2
	//arr[1] : [ 上海出发 ]香港迪士尼3日自由行（建行VISA信用卡专享 含迪士尼门票）
	//arr[2] : 特惠期：2009年4月28日 至 2009年6月27日
	//arr[3] : http://pages.ctrip.com/vacations/images/tour/tu/25491.jpg
	//arr[4] : ★ 5/15－6/14期间（6/1除外），韦伯经典音乐剧《猫》载誉在港演出，价格令人动心，近距离欣赏世界级名剧。（有意者请自行购票观看）<br>★ 自由选择在梦幻的迪士尼酒店或香港市区酒店入住，合理安排您的旅程！<br>★ 精选香港直飞航班，充分利用在香港的一分一秒，有足够的时间去体验香港的精彩！<br>★ 建行VISA信用卡专属产品，仅限使用建行VISA信用卡全额支付线路金额，且持卡人必须为出行人！<br>★ 赠送香港迪士尼乐园门票（每人一张）、香港手机电话卡（每成人一份）、香港自由行Pass（每成人一份）。

	rtBlock.onmousedown = function(e){
		var el = $fixE(e).$target;
		if(el.tagName=="A"||el.tagName=="TD"||el.tagName=="TR"){
			while(el.tagName!="TR")
				el = el.parentNode;

			$('cloud_package_cancel').onclick = $('cloud_package_close').onclick = function(){
				showCloud(null , null , false);
			}

			initPkgForm();
			showCloud(e , pkgCloudDiv , true);
		}
	
		
		function initPkgForm(){
			var para = el.getAttribute("para");
			var arr = para.split(",");
			$("cloud_package_link").innerHTML = arr[1];
			$("cloud_package_link").href = arr[0];
			$("cloud_package_tip").innerHTML = arr[2];
			$("cloud_package_img").src = arr[3];
			$("cloud_package_content").innerHTML = arr[4];
			$("cloud_package_form").action = arr[0];
		}
		
		pkgFrm.onsubmit = function(){
			showCloud(null , null , false);
			return true;
		}

	}


	function showCloud(e , el , f){
		if(f){
			m = $mousePos(e);
			maskAnimate(el , m);
		}
		else{
			maskAnimate(null);
		}
	}

});