/**
 * ATOM-JS Library Base on JQuery 1.3
 */


var atom = {}


/**
 * ajax post
 * @param {Object} url
 * @param {Object} data
 * @param {Object} callback
 */
atom.ajax = function(url,data,callback){
	var rtt = function(data){
		if(data=="ATOM-SIGN-NEEDLOGIN"){
			alert("你还没有登录或者已经掉线了");
			return;
		}
		callback(data);
	}
	$.ajax({
		type:"POST",
		url:url,
		cache:false,
		data:data,
		success:rtt	
	});
}

atom.chtitle = function(){
	if(document.title=="------")document.title="【新通知】";
	else document.title="------";
}
atom.ischange = 0;
atom.online = function(){
	var rtt = function(data){
		if(data=="")return;
		var nums = data.split("-");
		if(nums[0]!=0){
			$("#home-todo li:eq(0)").addClass("new");
			$("#home-todo li:eq(0) a").html(nums[0]+"个");
		}
		if(nums[1]!=0){
			$("#home-todo li:eq(1)").addClass("new");
			$("#home-todo li:eq(1) a").html(nums[1]+"个");			
		}
		if((nums[0]!=0 || nums[1]!=0)&&atom.ischange==0){
			setInterval("atom.chtitle()",1000);
			atom.ischange = 1;
		}
	}
	atom.ajax("/ajax-online.php","",rtt);
}

setInterval("atom.online()",5000);


atom.lockbttp = null;
atom.lockbt = function(bt){
	bt.disabled=true;
	atom.lockbttp = bt;
	setTimeout("atom.lockbttp.disabled=false",3000);
}

//联系人自动完成
atom.autocompname = function(iid,num){
	
	var doshow = function(){
		var offset = ipt.offset();
		div.css("display","block");
		div.css("left",offset.left+"px");
		div.css("top",(offset.top+25)+"px");
		popc.css("top",offset.top+"px");
		popc.css("left",(offset.left+380)+"px");
		popw.css("display","none");
	}

	var dochange = function(){
		var kpt = ipt.val();
		if (kpt == "") {
			selqu=0;
			doshow();
			div.html("<div style='padding:3px 5px;border-bottom:1px solid #f2f2f2;background-color:#eeeeff;font-size:12px;'>请输入姓名，输入框会自动搜索</div>");
			lastval = "";
			return;
		}
		
		if(kpt == lastval)return;
		lastval = kpt;
		
		selqu=0;
		div.html("");
		
		var k=0;
		for(i=0;i<comp.length;i++){
			if (comp[i].indexOf(kpt) != -1) {
				div.append("<p name='"+k+"' class='" + i + "' style='padding:3px 5px;border-bottom:1px solid #f2f2f2'>" + comp[i] + "<span style='font-size:12px;padding-left:20px;color:#888888'>"+comp_html[i]+"</span></p>");
				$("p:last",div).bind("mouseover",function(){
					$("p:eq("+selqu+")",div).css("background-color","white");
					$(this).css("background-color","#eeeeff");
					selqu = $(this).attr("name");
				});
				$("p:last",div).bind("mousedown",function(){ipt.trigger("keydown",["y"]);});
				k++;
			}
		}
		if (div.html() == "") {
			doshow();
			selqu=0;
			div.html("<div style='padding:3px 5px;border-bottom:1px solid #f2f2f2;background-color:#eeeeff;font-size:12px;'>没有找到符合条件的名字</div>");
		}
		else {
			doshow();
			$("p:first", div).css("background-color", "#eeeeff");
		}
	}
	
	
	var addone = function(nuid){
		if ($("p", list).size() == num) {
			alert("您最多能选择"+num+"个人");
			return;
		}
		for(i=0;i<selected.length;i++){
			if(selected[i]==comp_uid[nuid])return;
		}
		list.append("<p class='"+comp_uid[nuid]+"' style='border:1px solid green;padding:5px 10px;margin:0 10px 10px 0;float:left;'><nobr>"+comp[nuid]+" <img style='cursor:pointer' src='/res/img/com/cancel.gif'/></nobr></p>");
		ipt.val("");
		selected.push(comp_uid[nuid]);
		list.css("display","block");
		dohide();
		var act = selected.length-1;
		$("."+comp_uid[nuid]+" img",list).bind("click",function(){$("."+comp_uid[nuid],list).remove();selected[act]=0;popw.css("display","none");if(list.html()=="")list.css("display","none");});
	}
	
	var doselect = function(event,mmm){
		var thect = $("p",div).size();
		if(thect==0)return;
		var oe = window.event ? window.event : event;
		if(oe.keyCode==13 || mmm=="y"){
			var nuid = parseInt($("p:eq("+selqu+")",div).attr("class"));
			addone(nuid);
			return;
		}
		if(thect==1)return;
		if(oe.keyCode==38 && selqu>0){
			$("p:eq("+selqu+")",div).css("background-color","white");
			selqu--;
			$("p:eq("+selqu+")",div).css("background-color","#eeeeff");
			return;
		}
		if(oe.keyCode==40 && selqu<thect){
			$("p:eq("+selqu+")",div).css("background-color","white");
			selqu++;
			$("p:eq("+selqu+")",div).css("background-color","#eeeeff");
			return;
		}
	};
	
	
	var dohide = function(){
		selqu=0;
		div.css("display","none");
	}

	var getfrd = function(){
		dochange();
		if(comp.length!=0)return;
		var rtt = function(data){
			$("<div style='display:none' id='"+iid+"-nlist'>"+data+"</div>").appendTo("body");
			var mmk = $("p",$("#"+iid+"-nlist"));
			comp = [];
			comp_uid = [];
			for(i=0;i<mmk.length;i++){
				comp_uid[i] = mmk[i].getAttribute('title');
				comp_html[i] = mmk[i].getAttribute('name');
				comp[i] = mmk[i].innerHTML
			}
		}
		atom.ajax("/!contact/ajax-get-contact-auto.php","",rtt);
	}
	
	var showpop = function(){
		var showcheck = function(){
			var offset = ipt.offset();
			popw.css("top",(offset.top+25)+"px");
			popw.css("left",(offset.left+100)+"px");
			popw.css("display","block");
			$("p input",popw).attr("checked",false);
			for(i=0;i<selected.length;i++){
				if(selected[i]==0)continue;
				$(".v-"+selected[i],popw).attr("checked","true");
			}
		}
		var cshow = function(){
			var cls = $("select",popw).val();
			if (cls == 0) {					
				$("p", popw).css("display", "block");
				return;
			}
			$("p", popw).css("display", "none");
			$("."+cls, popw).css("display", "block");				
		}
		var inicheck = function(data){
			if (comp_check == 1) {
				showcheck();
				return;
			}
			popw.html(data);
			$("p",popw).css("float","left");
			$("p",popw).css("width","84px");
			$("p",popw).css("line-height","30px");
			$("p",popw).css("padding-left","10px");
			$("p",popw).css("font-size","12px");
			$("p",popw).css("border-bottom","1px solid #f2f2f2");
			$("p",popw).css("overflow","hidden");
			$(".i-button-s",popw).bind("click",function(){popw.css("display","none");});
			$("select",popw).bind("change",cshow);
			$("p input",popw).bind("click",function(){
				var kuid = this.value;
				for(i=0;i<selected.length;i++){
					if (selected[i] == comp_uid[kuid]) {
						$("."+comp_uid[kuid],list).remove();
						selected[i]=0;
						if(list.html()=="")list.css("display","none");
						showcheck();
						return;
					}
				}
				addone(kuid);
				showcheck();
			});
			comp_check=1;
			showcheck();			
		}
		
		if(popw.css("display")=="block"){
			popw.css("display","none");
			return;
		}
		
		if (comp_check == 1) showcheck();
		else atom.ajax("/!contact/ajax-get-contact-check.php", "", inicheck);
	}
	

	var selqu = 0;
	var lastval = "";
	var comp = [];
	var comp_html = [];
	var comp_uid = [];
	var comp_check = 0;
	var selected = [];

	var ipt = $("#"+iid);
	ipt.css("background","url('/res/img/com/plus.gif') no-repeat 380px 5px");
	ipt.after("<div id='"+iid+"-auto' style='display:none;position:absolute;border:1px solid #cccccc;padding:2px;width:200px;background-color:white;cursor:pointer'></div>");		
	var div = $("#"+iid+"-auto"); 
	ipt.before("<div id='"+iid+"-list' style='margin-bottom:10px;width:400px;display:none'></div>");
	var list = $("#"+iid+"-list");
	
	ipt.after("<div id='"+iid+"-pop' style='position:absolute;height:25px;width:25px;cursor:pointer'></div>");
	var popc = $("#"+iid+"-pop")
	var offset = ipt.offset();
	popc.css("top",offset.top+"px");
	popc.css("left",(offset.left+380)+"px");

	ipt.after("<div id='"+iid+"-window' style='display:none;position:absolute;border:1px solid #cccccc;width:300px;height200px;padding:2px;background-color:white;'></div>");
	var popw = $("#"+iid+"-window");
	
	popc.bind("click",showpop);
	popc.bind("mouseover",getfrd);				
	ipt.bind("blur",dohide);
	ipt.bind("focus",getfrd);
	ipt.bind("keyup",dochange);
	ipt.bind("keydown",function(event,mmm){doselect(event,mmm)});
	return selected;
}


//上传进度条
atom.uploadbar = function(frm,bt){

	var getpro = function(){
		 var req = new XMLHttpRequest();
		 req.open("GET", "/progress", 1);
		 req.setRequestHeader("X-Progress-ID", uuid);
		 req.send(null);
		 req.onreadystatechange = function () {
		 	if (req.readyState == 4) {
		   		if (req.status == 200) {
			    	var upload = eval(req.responseText);
					//$("#"+bar+" div div").html(upload.state);			
			    	if (upload.state == 'uploading') {
						if (setsize == false) {
							var sz = upload.size;
							var dw = "K";						 
							if (sz >= 1024 * 1024) {
								sz = parseFloat(sz / (1024 * 1024))
								dw = "M"
							}
							else if(sz>1024)sz = parseFloat(sz/(1024));
							else sz = "1";
							
							var i = sz.toString().indexOf(".");
							
							if(i!=-1){
								sz = sz.toString().substring(0,i+2)+dw;
							}
							
							
							$("#bar-" + uuid + " h6").append(" (" + sz + ")");
							setsize = true;
						}
			     		w = 100 * upload.received / upload.size;
			     		$("#bar-"+uuid+" div div").css("width",w + 'px');
			    	}
	
			    	if (upload.state == 'done') {
						$("#bar-"+uuid+" div div").css("width",'100px');
						window.clearInterval(interval);
					}
		   		}
		 	}
		}	
	}

	var setsize = false;
	
 	var uuid = "";
 	for (i = 0; i < 32; i++)uuid += Math.floor(Math.random() * 16).toString(16);
	
	var acts = $("#"+frm)[0].action;
	var actss = acts.split("?X-Progress-ID");	
	$("#"+frm)[0].action = actss[0]+"?X-Progress-ID="+uuid;
	$(document.body).append('<iframe name="hdifm-'+uuid+'" id="hdifm-'+uuid+'" style="display:none"></iframe>');
	$("#"+frm).attr("target","hdifm-"+uuid);
	
	var sname = $(bt).val();
	var aname = sname.split("\\");
	var fname = aname[aname.length-1];
	
	$(bt).before('<div id="bar-'+uuid+'" style="margin-bottom:10px;border-bottom:1px solid #cccccc;height:50px;"><h6 style="font-size:12px;color:#888888">'+fname+'</h6><div style="border:1px solid blue;padding:1px;width:100px;height:10px;margin:5px 10px 5px 0;float:left;"><div style="background-color:blue;float:left;height:10px;"></div></div><h5 style="float:left;margin-top:2px"><a href="javascript:void(0)">取消上传</a></h5></div>');
	$("#bar-"+uuid+" h5 a").bind("click",function(){
		$("#hdifm-"+uuid).attr("src","0");
		$("#hdifm-"+uuid).remove();
		window.clearInterval(interval);
		$("#bar-"+uuid).remove();
	});
	
	
	var interval = setInterval(getpro,2000);
	$("#"+frm)[0].submit();
	$(bt).after('<input class="i-upload" type="file" name="p_file" onchange="atom.uploadbar(\''+frm+'\',this);">');
	$(bt).remove();
	getpro();
}

//日历
atom.smcal = function(iid) {
	var month=0;
	var gentxt = function(){
		var dms = 24*3600*1000;
		var today = new Date();
		if(month!=0){
			amon = today.getMonth()+month;
			if (amon >= 0) {
				theyear = today.getFullYear() + parseInt(amon / 12);
				themon = amon % 12;
			}
			else {
				theyear = today.getFullYear() - parseInt(Math.abs(amon) / 12)-1;
				themon = 11 - Math.abs(amon) % 12;
			}
			today.setFullYear(theyear);
			today.setMonth(themon);
			
		}
		var ctday = new Date();
		var monword = ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']; 
		var day = today.getDay();
		var dt = today.getDate();	
		lostd = ((7-(dt+7-day)%7)+1)%7;
		firsttime = today.getTime()-dms*(lostd+dt-1);
		ct ="<div style='height:20px;border-bottom:1px solid #cccccc;margin-bottom:5px;padding-bottom:5px;'><div style='cursor:pointer;float:left;padding-top:5px;'><img src='/res/img/com/p-left.gif'/></div><div style='float:left;text-align:center;width:100px'>"+monword[today.getMonth()]+" "+today.getFullYear()+"年</div><div style='cursor:pointer;float:left;padding-top:5px;'><img src='/res/img/com/p-right.gif'/></div><div style='cursor:pointer;float:left;float:right'>关闭</div></div>"
		ct += "<table>";
		for(i=0;i<42;i++){
			ctday.setTime(firsttime+dms*i);
			if(i%7==0){
				if(i==0)ct+="<tr>";
				else ct+="</tr><tr>";
			}
			if(month==0 && ctday.getTime()==today.getTime())ct+="<td style='padding:0 5px;background-color:yellow;cursor:pointer' title='"+ctday.getTime()+"'>"+ctday.getDate()+"</td>";
			else if(ctday.getMonth() == today.getMonth())ct+="<td style='padding:0 5px;cursor:pointer' title='"+ctday.getTime()+"'>"+ctday.getDate()+"</td>";
			else ct+="<td style='padding:0 5px;color:#888888;cursor:pointer' title='"+ctday.getTime()+"'>"+ctday.getDate()+"</td>";
		}
		ct +="</tr></table>";
		amcal.html(ct);
		$("div div:eq(0)",amcal).bind("click",lastm);
		$("div div:eq(2)",amcal).bind("click",nextm);
		$("div div:eq(3)",amcal).bind("click",function(){amcal.css("display","none");});
		$("table td",amcal).bind("click",function(){
			var wd = $(this).attr("title");
			var pp = new Date();
			pp.setTime(wd);			
			ipt.val(pp.getFullYear()+"-"+(pp.getMonth()+1)+"-"+pp.getDate());
			amcal.css("display","none");
		});
		var offset = ipt.offset();
		amcal.css("left",offset.left+"px");
		amcal.css("top",(offset.top+25)+"px");

	}
	var lastm = function(){
		month+=-1;
		gentxt();
	}
	var nextm = function(){
		month+=1;
		gentxt();
	}
	
	var ipt = $("#"+iid);
	$(document.body).append("<div id='"+iid+"-smcal' style='display:none;position:absolute;padding:10px;background-color:white;border:1px solid #cccccc;width:170px'></div>");
	var amcal = $("#"+iid+"-smcal");
	
	ipt.bind("focus",function(){
		gentxt();
		amcal.css("display","block");
	});
	
}

//下拉选择框
atom.select = function(iid,options){

	var ipt = $("#"+iid);
	$(document.body).append("<ul id='"+iid+"-select' style='display:none;position:absolute;padding:5px 0;background-color:white;border:1px solid #cccccc;'></ul>");
	var select = $("#"+iid+"-select");

	for(i=0;i<options.length;i++){
		select.append("<li style='padding:0 10px;cursor:pointer;'>"+options[i]+"</li>");
	}
	
	select.append("<div style='padding:5px 10px 0 10px;cursor:pointer;border-top:1px solid #cccccc;text-align:right;'>关闭</div>");
	
	$("li",select).bind("mouseover",function(){
		$(this).css("background-color","blue");
		$(this).css("color","white");
	});

	$("li",select).bind("mouseout",function(){
		$(this).css("background-color","white");
		$(this).css("color","black");
	});
	$("li",select).bind("click",function(){
		ipt.val($(this).html());
		select.css("display","none");
	});		
	$("div",select).bind("click",function(){
		select.css("display","none");
	})
	ipt.bind("focus",function(){
		var offset = ipt.offset();
		select.css("left",offset.left+"px");
		select.css("top",(offset.top+25)+"px");			
		select.css("width",(parseInt(ipt.css("width"))+4)+"px");
		select.css("display","block");
	});
	
}


