var Tips=Class.create();

Tips.prototype={
	//初始化程序
	initialize:function(options){
		this.setOptions(options);
		this.elms = this.options.elms;
		this.isDrag = this.options.isDrag;
		this.mxContainer = this.options.mxContainer;
		this.lastTips = this.options.lastTips;
		this.lastTIndex = this.options.lastTIndex;
		this.nowIndex = this.options.nowIndex;
		this.objlist = this.options.objlist;
		this.initelms().initchild().reset();
	},
	//设置默认属性
	setOptions:function(options){
		this.options={
			elms:null,//标签对象
			isDrag:false,//是否移动
			mxContainer:"",//当_isDrag为true时有效，移动限制容器
			lastTips:null,//最后浏览的标签对象
			lastTIndex:0,//最后浏览的标签的index
			nowIndex:1,//zindex设置时，保存当前值
			objlist:[]//保存数据
		};
		Extend(this.options, options || {});
	},
	//初始化标签元素
	initelms:function(elms){
		_elms = this.elms;
		if(elms){
			_elms = elms;
			this.objlist.length += elms.length;
		}
		//alert(_elms.length + "--" + this.objlist.length);
		//绑定this，因为方法需在下面的each中调用，原this为循环元素，绑定为Tips对象
		var _fn = Bind(this,function(key,val){
			//alert(val.innerHTML);
			$(val).dblclick(function(){
				id = $(this).attr("tid"),prepareid = $(this).attr("prepareid"),ttype = $(this).attr("type");
				if(ttype=='7')
					mask('/spot/ptip/id/'+prepareid,'','便签详情');
				else
					mask('/spottip/stipinfo/id/'+id,'','便签详情');
			});
			//是否支持拖拽,并且是否已经设置了拖拽
			if(this.isDrag){
				var _dg_id=$(val).attr('id');
				var _drag = new Drag({
					drag:_dg_id,
					mxContainer:this.mxContainer,
					limit:true,
					handle:_dg_id
				});
				//_$(val).style.position = "absolute";
			}
			else{
				_$(val).style.position = "absolute";
			}
			if(this.elms && this.objlist.length < this.elms.length)
					this.objlist.length = this.elms.length;
			//样式及单击
			//再一次的绑定this，因为方法需在下面的click事件中调用，原this为click事件源，绑定为Tips对象
			var _fn1 = Bind(this,function(key,val){
				if(this.lastTips){
					this.lastTips = $(val);
					$(val).css("z-index",parseInt(this.lastTIndex) + 1 );
					this.lastTIndex = CurrentStyle(val).zIndex;
				}else{
					$(val).css("z-index",this.objlist.length + 2);
					this.lastTips = $(val);
					this.lastTIndex = this.objlist.length + 2;
				}
			});
			$(val).mousedown(function(){_fn1(key,val);}).css({cursor:"move"});//.css({cursor:"move"})
			////普通便签的zindex设置
			//alert(this.lastTIndex  + "---" + this.nowIndex + " ---" + _elms.length);
			if(this.lastTIndex!=0){
				this.lastTIndex++;
				$(val).css("z-index",this.lastTIndex);	
			}else
			{
				$(val).css("z-index",this.nowIndex);
				this.nowIndex++;
			}
				//alert("default:"+this.nowIndex);
			
		});
		
		//调用上面绑定后的方法
		$.each(_elms,_fn);

		return this;
	},
	//标签元素重定位
	reset:function(){
		//如果有容器必须设置position为relative或absolute来相对或绝对定位，并在获取offset之前设置
		!this.mxContainer || CurrentStyle(_$(this.mxContainer)).position == "relative" || CurrentStyle(_$(this.mxContainer)).position == "absolute" || (_$(this.mxContainer).style.position = "relative");
		//绑定this，因为方法需在下面的each中调用，原this为循环元素，绑定为Tips对象
		var _fn = Bind(this,function(key,val){
			//标签元素位置重置
			var left = parseInt( Math.random()*( $("#"+this.mxContainer).width() - $(val).width() - parseInt(CurrentStyle(val).paddingRight)  - 14 ) ) + "px";
			var top = parseInt(Math.random()*($("#"+this.mxContainer).height()-$(val).height() - 20 + 1)  ) + "px";
			$(val).css("left",left).css("top",top);
		});
		//调用上面绑定后的方法
		$.each(this.elms,_fn);
		return this;
	},
	//初始化子元素对象（单击、双击、关闭，删除、最小化、管理等各项功能）
	initchild:function(elms){
		var heng = (elms) ? elms.find(".tip_heng") : $(".tip_heng");
		var cha = (elms) ? elms.find(".tip_cha") : $(".tip_cha");
		var jia = (elms) ? elms.find(".tip_jia") : $(".tip_jia");
		var rp = (elms) ? elms.find(".tip_reply") : $(".tip_reply");
		var tip_reply = (elms) ? elms.find(".tip_task_a") : $(".tip_task_a");
		var buynow = (elms) ? elms.find(".tip_buynow") : $(".tip_buynow");
		
		heng.click(function(){
			id = $(this).attr("tid");
			$("#tip_"+id).fadeOut(300);
		});
		cha.click(function(){
			if(!!uUid==false)return islogin();
			id = $(this).attr("tid");
			Tips.dele(id,spid,function(){
				$("#tip_"+id).fadeOut(300,function(){
					//缓存写入
					var data = $("#idContainer").html();
					$("#cache").data("tip",data);
				});
			});
		});
		jia.click(function(){
			id = $(this).attr("tid");
			mask('/spottip/stipinfo/id/'+id,'','便签详情');
		});
		rp.click(function(){
			id = $(this).attr("tid");
			if(uUid)
				mask('/spottip/stipinfo/id/'+id,'','便签详情');
			else
				islogin();
		});
		
		//打工江湖
		$.goarena = function() {
			id = $(this).attr("taskid");
			$.cookie("taskid",id,{path:"/spot/",expires:1});
			mask('/spots/switch/act/employee/spotid/'+$(this).attr("spid")+'','','我的江湖',3);void(0);
			//window.open(href);
			return false;
		}
		tip_reply.bind("click",$.goarena);
		//购买据点
		buynow.click(function() {
			goodsid = $(this).attr("goodsid");
			if(!!uUid==false)return islogin();
			Boxy.confirm("确认要购买该据点吗?", function() {
				$.ajax({
					type: "POST",
					url: "/spots/buynow",
					data: "goodsid="+goodsid,
					success: function(msg){
						Boxy.alert(msg,function(){window.location.reload();},{title:'提示框'});
					}
				});
			}, {title: '据点购买确认'});
			return false;
		});

		return this;
	}
};
Extend(Tips,{
	convertJSON:function(json){
		newjson = json;
		if(json['tip_type']=="7"){
			var subjson = eval('(' + json['tip_data'] + ')');
			newjson['purl'] = imgsite + subjson['purl'];
			newjson['psmallurl'] = imgsite + subjson['psmallurl'];
			newjson['reply_num'] = (!!newjson['reply_num']==false) ? 0 : newjson['reply_num'];
			newjson['sub_content'] = (!!newjson['sub_content']==false) ? newjson['tip_content'].substr(0,8) : newjson['sub_content'];
			newjson['sub_tip_uname'] = (!!newjson['sub_tip_uname']==false) ? newjson['tip_uname'].substr(0,4) : newjson['sub_tip_uname'];
		}
		return newjson;
	},
	add:function(container,object){
		var t = $.template('<div class="${tip_skin} tip_c_key" tid="${tip_id}" id="tip_${tip_id}" istop="${tip_istop}" type="${tip_type}" prepareid="${prepareid}"><div class="Operat" align="right"><a href="javascript:;" tid="${tip_id}" title="隐藏" class="tip_heng"><img src ="/spots/images/heng.gif" /></a> <a href="javascript:;" tid="${tip_id}" class="tip_jia" title="详情"><img src ="/spots/images/jia.gif" /></a> <a style="display:${display}" href="javascript:;" tid="${tip_id}" class="tip_cha" title="删除"><img src ="/spots/images/cha.gif" /></a></div><div class="a666L"><a href="/space/indexspace.php?userid=${tip_uid}" target="_blank">${sub_tip_uname}</a></div><div class="S_bianqian"><em><img src="${img}" width="32" height="32" /></em><p>${sub_content}</p></div><div class="S_Date a666L"><span class="uleft"><a href="javascript:;" tid="${tip_id}" class="tip_reply">回复</a>(${reply_num})</span><span class="uright">${tip_diffctime}</span></div></div>');
		var t7 = $.template('<div class="Photo tip_c_key" style="margin:0 10px 10px 0" id="tip_${tip_id}" tid="${tip_id}" type="${tip_type}"  prepareid="${prepareid}"><div style="padding:0 5px 5px 0;" class="Operat" align="right"><a href="javascript:;" tid="${tip_id}" title="隐藏" class="tip_heng"><img src ="/spots/images/heng.gif" /></a> <a href="javascript:;" tid="${tip_id}" class="tip_jia" title="详情"><img src ="/spots/images/jia.gif" /></a> <a style="display:${display}" href="javascript:;" tid="${tip_id}" class="tip_cha" title="删除"><img src ="/spots/images/cha.gif" /></a></div><a href="${purl}" class="highslide" onclick="return hs.expand(this)"><img src="${psmallurl}" alt="${tip_content}|#|${prepareid}"/></a><p>${sub_content} <a href="javascript:;" onclick="mask(\'/spot/ptip/id/${prepareid}\',\'\',\'照片详情\');">评论</a>(${reply_num})</p><p>${sub_tip_uname}</p></div>');
		var tip_temp={
			"0":t,
			"7":t7
		};
		tip_temp["-1"]=tip_temp["1"]=tip_temp["2"]=tip_temp["3"]=tip_temp["4"]=tip_temp["5"]=tip_temp["6"]=tip_temp["8"]=tip_temp["0"];
		$.each(object,function(key,value){
			//权限
			if( ismaster )value['display']="";
			//模板数据转换
			value = Tips.convertJSON(value);
			container.append(tip_temp[value['tip_type']],value);
		});
	},
	dele:function(id,spid,callback){
		bConfirm("您确定要删除此便签吗？",function(){
			$.ajax(
				{
					type:"GET",
					url:"/spottip/deletetip/id/"+id+"/spid/"+spid,
					dataType:"html",
					timeout:10000,
					error:function(){},
					success:function(data){
						if(data=="-2"){
							islogin();
						}else if(data=="-1"){
							bAlert("你没有权限进行删除操作");
						}
						else if(data=="1" || data=="0"){
							if(typeof callback == 'function')callback(data);
						}
					}
				}
			);
		},"提示");
	},
	initnew:function(data){
		$("#wall").trigger("click");//此处不使用trigger是为了防止重复初始化子元素事件，如“据点_购买”
		//$("#idContainer").html($("#cache").data("tip"));
		Tips.add($("#idContainer"),[data]);
		tip.initelms($("#tip_"+data['tip_id'])).initchild($("#tip_"+data['tip_id']));
		
		//重定位
		var val=$("#tip_"+data['tip_id'])[0];
		var left = parseInt( ( $("#"+tip.mxContainer).width() - $(val).width()) - 4  )/2 + "px";
		var top = parseInt( ($("#"+tip.mxContainer).height()-$(val).height() - 20 + 1) ) /2 + "px";
		$(val).css("left",left).css("top",top);
		//缓存写入
		var data = $("#idContainer").html();
		$("#cache").data("tip",data);
	}
});

function load(elem,url,callback){
	if( typeof elem === 'undefined' )return;
	if(typeof callback == 'function')callback();
	elem.html('<div align="center" style="padding:20px;"><img src="/images/load.gif" alt="数据加载中,请稍候..." /><br>数据加载中,请稍候...</div>');
	elem.load(url);
};

//发布便签事件绑定
$("#btn_tip_post").click(function(){
	if(!!uUid==false)return islogin();
	Boxy.load('/spottip/posttip/spid/'+spid,{
		title:'便签发布',
		modal:true
	});
});
//便签管理事件绑定
$("#btn_tip_manage").click(function(){
	load($(".S_Visitor_P"),'/spottip/stipmanage/spid/'+spid,'');
});
//便签初始化
window.spid = $("#spid").val();
window.clas=(spid==6230)?"Wrap_body6230":"Wrap_body";
function initTip(){
	$("#bgimg").addClass(clas).removeClass("Wrap_body2");
	var data = $("#cache").data("tip");
	if ( !!data ) {
		$("#idContainer").html(data);
		//事件重定义
		Class.extend(tip,{
			elms : $("#idContainer").find(".tip_c_key"),
			objlist : [],
			lastTips : null,
			lastTIndex : 0,
			nowIndex : 1
		});
		//alert("tip_lastindex:"+tip.lastTIndex);
		tip.initelms().initchild();
	}
	else {
		current_request = $.getJSON("/spottip/gettipjson", {
			spid: window.spid
		}, function(json){
			json = json.reverse();
			$('.tip_c_key').remove();
			//加载便签
			Tips.add($("#idContainer"), json);
			//实例化便签对象
			window.tip = new Tips({
				elms: $(".tip_c_key"),
				isDrag: true,
				mxContainer: "idContainer"
			});
			//缓存写入
			var data = $("#idContainer").html();
			$("#cache").data("tip",data);
			//便签数
			$.getJSON("/spottip/newtipnum", { spid: window.spid }, function(json){
				$("#tipnum").html(json.count);
			});
		});
	}
	//地图事件绑定
	$("#img_task_btn").css('cursor','pointer').click(function(){
		clearTimeout(init_map);
		if($('.Map_Infor').css('width')=='0px'){
			$('.Map_Infor').animate({ 
				width: 180
			}, 1000);
			$('.Map').animate({ 
				width: 180
			}, 1000);
			$('#img_task_btn').css('left','700px').animate({ 
				left: '520px'
			}, 1000);
			$('#img_task_btn').find("img").attr("src","/spots/images/map02.gif");
		}else{
			$('.Map_Infor').animate({ 
				width: 0,
				opacity: 'hide'
			}, 970);
			$('.Map').animate({ 
				width: 0,
				opacity: 'hide'
			}, 970);
			$('#img_task_btn').animate({ 
				left: '715px'
			}, 1000);
			$('#img_task_btn').find("img").attr("src","/spots/images/map.gif");
		}
	}).children("a").focus(
		function(){
			$(this).blur();
		}
	);
	init_map = setTimeout(function(){$("#img_task_btn").trigger("click")},3000);
};
//页面初始化
(function(){
	$.loadbassjs = function(){
		$.getScript('/spot/js/coupon.js');
		$.getScript('/spot/js/coupon_validate.js');
		$.getScript('/spot/js/boss.js');
		$.getScript('/spot/js/baas_model_json.js');			
	}
	initTip();
	
	$("#spottask").bind("click",function(){
		if(!!uUid==false)return islogin();
		Boxy.load('/spots/switch/act/baas/spotid/'+spid,{title:'我的江湖',titletype:3,afterShow:$.loadbassjs});
	});
	$("#spotsell").bind("click",base.sellSpot);
	
	//====
	$("#postevent").bind("click",function(){
		if(!!uUid==false)return islogin();
		var spid = $("#spid").val();
		//if ($("#stype").val() == "34") 
		$.ajax({
			type: "GET",
			url: "/spot/isjoin/spid/" + spid,
			dataType: "text",
			success: function(data){
				if (data == "0") {
					bConfirm("加入据点后才可发布据点活动，点击确定后直接加入该据点～", function(){
						$.ajax({
							type: "GET",
							url: "/spot/dojoin/spid/" + spid,
							dataType: "text",
							success: function(data){
								window.location = "/activity/newchooseactivity.php?spotId=" + spid;
							}
						});
					}, '提示');
				}
				else {
					window.location = "/activity/newchooseactivity.php?spotId=" + spid;
				}
			}
		});
	});
})()

//表情
function insertface(showid,i,target){
	pos = getTextFieldSelection(document.getElementById(target));
	con = $("#"+target).val();
	con = con.substring(0,pos)+'[:#'+i+':]'+con.substring(pos,con.length);
	$("#"+target).val(con);
	$("#"+showid).hide();
	$("#"+target).focus();
}


//邀请
$("#btn_invitefriend").bind("click",function(){
	var t = '<div><div class="Send"><form action="/userhome/invitefriend.php" method="POST" target="_blank"><dl class="YaoQing"><dt>从我的MSN导入朋友名单，选择邀请人并发送邀请邮件<span class="c999">（我们不会记住您的密码，请放心导入）</span></dt><dd>MSN账号：<input type="text"  name="uname" id="uname" onfocus="this.className=\'Box02\'" onblur="this.className=\'Box01\'" class="Box01" style="width:200px; height:22px;"/></dd><dd>MSN密码：<input type="password" name="pwd"  id="pwd" onfocus="this.className=\'Box02\'" onblur="this.className=\'Box01\'" class="Box01" style="width:200px; height:22px;"/></dd><dd style="padding-left:65px;"><input type="submit" value="导 入" class="Btn_Small" /></dd></dl><dl class="YaoQing" style="margin-top:25px;">	<dt>点击“复制链接”按钮，粘贴到MSN、QQ或以其它方式发送给您的朋友</dt><dd><input name="input_inviteurl" id="input_inviteurl" type="text" onfocus="this.className=\'Box02\'" onblur="this.className=\'Box01\'" class="Box01" style="width:530px; height:22px;" value="'+joinurl+'"/></dd><dd style="padding-right:65px; text-align:right;"><input type="button" value="复制链接" class="Btn_Small" name="btn_inviteurl" id="btn_inviteurl"/></dd></dl></form></div></div>';
	new Boxy(t,{
		title:'邀请好友',
		modal:true
	});
	var url = $("#input_inviteurl").val();			
	$("#btn_inviteurl").bind("click",function(){
		url = $("#input_inviteurl").val();
		copyText(url);
		return false;
	});
	$(".Invite_Btn").bind("click",function(){
		var options = {modal: true,unloadOnHide:true,title:'我的好友'};			
		Boxy.load("/task/friend/sid/"+spid,options);
		return false;
	});
	return false;
});

