﻿//格式化字符串
function formatString(text){
	var str = text;
	var index=0;
	for(var i=1;i<arguments.length;i++) {
		var obj = arguments[i];
		if(typeof(obj) == "object") {
			for(var k in obj){ str = str.replace(new RegExp("\\{"+k+"\\}","gm"), obj[k])}
		}else{
			str = str.replace(new RegExp("\\{"+(index++)+"\\}","gm"), obj);
		}
	}
	return str;
}

//提示信息
function showTip(jElem, text, timeout){
    var html = formatString("<div style='position:absolute;display:none;background:#FFFFE1; border:solid 1px #ccc';><span style='margin:4px 6px; display:block'>{0}</span></div>", text);
    var elem = $(html).appendTo("body")
        .css("left", jElem.offset().left+24).css("top", jElem.offset().top-24)
        .fadeIn("fast");
    window.setTimeout(function(){
        elem.fadeOut("slow").remove();
    }, timeout);
}

//获取url参数
function getParameter(name){
    var rs = new RegExp("(^|)"+name+"=([^&]*)(&|$)","gi").exec(location.href);
    return rs ? unescape(rs[2]) : null;
}

//收藏图片
function favorIt(obj){
    var post = $(obj).parents("div.post[favorid]");
    var favorId = post.attr("favorid");
	//缩略图
	var thumbimg = post.find("img.small").attr("imgsrc") ? post.find("img.small").attr("imgsrc") : post.find("img.small").attr("src");
	//收藏框
	var dialog = $("#favordialog");
	dialog.attr("favorid", favorId);
	dialog.find(".thumb img").attr("src", thumbimg);
	//绑定提交按钮
	if(!window.bindFavorPost){
		window.bindFavorPost = true;
		dialog.find("input.sendbutton").click(function(){
			var dialog = $("#favordialog");
			var favorId = dialog.attr("favorid");
			var tag = dialog.find("input.inputtag").val();
			var keepPrivate = dialog.find("#fd_chkPrivacy").attr("checked");
			$.getJSON("/ws/favormgr.ashx?method=FavorIt",
				{"favorId": favorId, "tag": tag, "keepPrivate": keepPrivate, "t": Math.random()},
				function(json){
					if(json["success"]){
						$.modal.close();
						jQuery("<div class='dialogmsg'>收藏成功</div>").modal({
							close: false,
							onClose: function (dialog) {
								dialog.data.fadeOut('slow', function () {
									dialog.container.hide('fast', function () {
										dialog.overlay.slideUp('fast', function () {
										$.modal.close();
									});
								});
							});
						}});
						$.modal.close();
						window.setTimeout(function(){
							$.modal.close();
						}, 1500);						
					}else{
						if(!json["logined"]){
							if(confirm("请登录后收藏图片,\r\n是否现在登录?")){
								location.href="/login.aspx?ReturnUrl="+encodeURI(location.href);
							}
						}else{
							alert(json["msg"]);
						}
					}
				}
			); //end getJSON
		});//end submit
	}
	dialog.modal({
		overlayClose:true,
		overlay:80,
		maxWidth:560,
		overlayCss: {backgroundColor:"#fff"}
	});
	dialog.find("input.inputtag").focus();
}

//设为最爱
function toggleStar(obj){
    var li = $(obj).parents("li");
    var favorId = li.attr("favorid");
    var elem = li.find("img.markstar");
    var curlevel = elem.attr("curlevel");
    $.getJSON("/ws/setlevel.ashx",
        {"favorid": favorId, level:(curlevel=="0"?5:0), "t": Math.random()},
        function(json){
            if(json["success"]){
                var level = json["level"];
                elem.attr("curlevel", level);
                var imgName = level=="0" ? "stargray.png" : "star.png";
                elem.attr("src", "/Content/img/"+imgName).attr("title", (level=="0"?"设为最爱图片":"取消最爱"));
                var tip = level=="0" ? "已取消最爱" : "已设为<strong>最爱</strong>图片";
                showTip(elem, tip, 1000);
            }else{
                showTip(elem, json["msg"], 1000);
            }
        }
    );
}

// 格式化字符串 返回{tag:"formated", array:[]}
function formatTag(tag, sp){
	var arr = tag.split(/[,;，；。|]/);
	for(var i=0; i<arr.length; i++){
		arr[i] = $.trim(arr[i]);
	}
	return {tag:arr.join(sp || ","), array:arr};
}


// 调整到适合当前电脑的壁纸列表
function autowp(obj){
	location.href = formatString("/wallpaper/size/{width}x{height},.html", {width:screen.width, height:screen.height});
}

//显示悬浮提示
function showFloatMsg(msg, timeout, callback){
	$(formatString("<div class='dialogmsg'>{0}</div>", msg)).modal({
		close: false,
		onOpen: function (dialog) {
			dialog.overlay.fadeIn('fast', function () {
				dialog.data.hide();
				dialog.container.fadeIn('fast', function () {
					dialog.data.fadeIn('fast');
					if(timeout){
						window.setTimeout(function(){$.modal.close();}, timeout);
					}else{
						$.modal.close();
					}
				});
			});
		},
		onClose: function (dialog) {
			dialog.data.fadeOut('slow', function () {
				dialog.container.hide('fast', function () {
					dialog.overlay.slideUp('fast', function () {
					$.modal.close();
					if(callback) callback();
				});
			});
		});
	}});
}


// 图片列表js控件
// checkChanged(sender, favorId, checked)
function photoGrid(p, checkChanged){
	var li_list = p.find("li");
	//按top范围找出元素
	function findByTop(minTop, maxTop){
		var arr = [];
		li_list.each(function(i){
			var item = li_list.eq(i);
			if(item.data("init")) return;
			var top = item.offset().top - p.offset().top;
			if(top>minTop && top<maxTop){
				arr.push(item);
			}
		});
		return arr;
	}
	//循环显示图片
	function showImages(){
		if(gridTimer){
			window.clearInterval(gridTimer);
			gridTimer = null;
		}
		
		gridTimer = window.setInterval(function(){
			if(gridSqueue.length==0) {
				window.clearInterval(gridTimer);
				gridTimer = null;
				return;
			}
			var item = gridSqueue.splice(0, 1)[0];
			if(!item.data("init")){
				item.data("init", true);
				var img = item.find("img");
				img.attr("src", formatString('/thumb.ashx/{0}/{1}/square.jpg', item.attr("pathid"), item.attr("md5"))).show();
			}
		}, 100);
	}
	//开始一次图片显示
	function startShow(){
		gridSqueue = findByTop(-80, p.height()-10);
		showImages();
	}
	//停止图片显示
	function stopShow(){
		if(gridTimer){
			window.clearInterval(gridTimer);
			gridTimer = null;
		}
		if(gridScrollTimer){
			window.clearInterval(gridScrollTimer);
			gridScrollTimer = null;
		}
	}
	//绑定事件
	window.gridSqueue = [];
	window.gridTimer = null;
	window.gridScrollTimer = null;
	window.gridStopShow = false;
	li_list.mousedown(function(e){
		e.stopPropagation();
		var self = $(this);
		self.toggleClass("checked");
		checkChanged(self, self.attr("favorid"), self.hasClass("checked"));
	});
	p.scroll(function(){
		stopShow();
		gridScrollTimer = window.setTimeout(function(){
			gridScrollTimer = null;
			//静止后加载图片
			startShow();
		}, 250);
	}).mousedown(function(){
		stopShow();
	}).mouseup(function(){
		startShow();
	});
	//首次显示图片
	startShow();
}

// 搜索
function search(){
    var word = $("#userpanel .searchinput").val();
    if(!word){
        alert("请输入要搜索的关键字");
        return;
    }
    location.href = "/search/"+encodeURIComponent(word) + "/";
}

//下面为自动执行的函数=================
//按键KeyCode
var KEYS = {
    PageUp:33,
    PageDown:34,
	End:35,
	Home:36,
    Space:32,
	Backspace:7,
	Insert:45,
	Delete:46,
    Enter:13,
	Tab:9,
	Shift:16,
	Ctrl:17,
	Alt:18,
	CapsLock:20,
	Esc:27,
	Up:38,
	Down:40,
	Left:37,
	Right:39
};
//监测按键
$(document).keydown(function(e){
    if(window.noAutoNext) return;
    switch(e.which){
        case KEYS.PageDown:
        case KEYS.Space:
            if($(document).height()-$(window).scrollTop()-$(window).height() <150){
                var btn = $("div.pagination a.next");
                if(btn.length==1) {
					showFloatMsg("下一页", 0, function(){
						location.href = btn.attr("href");
					});
				}
            }
            break;
        case KEYS.PageUp:
            if($(window).scrollTop() <150){
                var btn = $("div.pagination a.prev");
                if(btn.length==1) {
					showFloatMsg("上一页", 0, function(){
						location.href = btn.attr("href");
					});
				}
            }
            break;
    }
});



// 预览tag
function tagPreview(obj, type){
    var btn = $(obj);
    var post = btn.parents("div.item");
    var tagElem = post.find(".tag");
    var curTag = btn.text().replace(/\(\d+\)/, "");
    var preview = post.find("div.preview");
    preview.html('<img src="/Content/img/indicator.gif" />').show();
    var param = type==1 ? {tag:tagElem.text(), relativetag:tagElem.text(), count:10} : {tag:tagElem.text(), relativetag:curTag, count:10};
    $.getJSON("/ws/tagcloud/SearchPhotoByRelativeTag", param, function(json){
        if(json.success){
            preview.empty();
            for(var i in json.list){
                var photo = json.list[i];
                preview.append(formatString('<a href="/view/{favorid}.html" target="_blank"><img class="thumb" src="{imagesquare}" title="{title}" /></a>', {favorid:photo.favorid, imagesquare:photo.imagesquare,title:photo.title}));
            }
            preview.append(formatString('<div><a href="/search/{0}/" target="_blank">查看全部 <strong>{1}</strong> 图片</a></div>', encodeURIComponent(curTag), curTag));
            preview.show("fast");
        }else{
            alert(json.msg);
        }
    });
}