var _json; // 结构
var num = Array(); // 图片数
var tim = Array(); // 定时器
var garTransitions = new Array(38); // 滤镜
garTransitions[0] = "progid:DXImageTransform.Microsoft.RandomDissolve()";
garTransitions[1] = "progid:DXImageTransform.Microsoft.Iris(irisStyle='star', motion='out')";
garTransitions[2] = "progid:DXImageTransform.Microsoft.Iris(irisStyle='diamond', motion='in')";
garTransitions[3] = "progid:DXImageTransform.Microsoft.Iris(irisStyle='cross', motion='out')";
garTransitions[4] = "progid:DXImageTransform.Microsoft.Iris(irisStyle='circle', motion='in')";
garTransitions[5] = "progid:DXImageTransform.Microsoft.Iris(irisStyle='square', motion='out')";
garTransitions[6] = "progid:DXImageTransform.Microsoft.Iris(irisStyle='plus', motion='in')";
garTransitions[7] = "progid:DXImageTransform.Microsoft.Barn(orientation='vertical' motion='in')";
garTransitions[8] = "progid:DXImageTransform.Microsoft.Barn(orientation='vertical' motion='out')";
garTransitions[9] = "progid:DXImageTransform.Microsoft.Barn(orientation='horizontal' motion='in')";
garTransitions[10] = "progid:DXImageTransform.Microsoft.Barn(orientation='horizontal' motion='out')";
garTransitions[11] = "progid:DXImageTransform.Microsoft.Pixelate()";
garTransitions[12] = "progid:DXImageTransform.Microsoft.Inset()";
garTransitions[13] = "progid:DXImageTransform.Microsoft.Checkerboard(Direction='left')";
garTransitions[14] = "progid:DXImageTransform.Microsoft.Checkerboard(Direction='right')";
garTransitions[15] = "progid:DXImageTransform.Microsoft.Checkerboard(Direction='down')";
garTransitions[16] = "progid:DXImageTransform.Microsoft.Checkerboard(Direction='up')";
garTransitions[17] = "progid:DXImageTransform.Microsoft.RandomBars(motion='horizontal')";
garTransitions[18] = "progid:DXImageTransform.Microsoft.RandomBars(motion='vertical')";
garTransitions[19] = "progid:DXImageTransform.Microsoft.Slide(bands=5, slideStyle='push')";
garTransitions[20] = "progid:DXImageTransform.Microsoft.Slide(bands=5, slidestyle='swap')";
garTransitions[21] = "progid:DXImageTransform.Microsoft.Slide(bands=5, slidestyle='hide')";
garTransitions[22] = "progid:DXImageTransform.Microsoft.Spiral()";
garTransitions[23] = "progid:DXImageTransform.Microsoft.Stretch(stretchStyle='push')";
garTransitions[24] = "progid:DXImageTransform.Microsoft.Stretch(stretchstyle='spin')";
garTransitions[25] = "progid:DXImageTransform.Microsoft.Stretch(stretchstyle='hide')";
garTransitions[26] = "progid:DXImageTransform.Microsoft.Wipe(GradientSize=.50, wipeStyle=0, motion='forward')";
garTransitions[27] = "progid:DXImageTransform.Microsoft.RadialWipe(wipeStyle='clock')";
garTransitions[28] = "progid:DXImageTransform.Microsoft.RadialWipe(wipeStyle='radial')";
garTransitions[29] = "progid:DXImageTransform.Microsoft.RadialWipe(wipeStyle='wedge')";
garTransitions[30] = "progid:DXImageTransform.Microsoft.Zigzag(motion='leftup')";
garTransitions[31] = "progid:DXImageTransform.Microsoft.Strips(motion='leftup')";
garTransitions[32] = "progid:DXImageTransform.Microsoft.Strips(motion='rightup')";
garTransitions[33] = "progid:DXImageTransform.Microsoft.Strips(motion='leftdown')";
garTransitions[34] = "progid:DXImageTransform.Microsoft.Strips(motion='rightdown')";
garTransitions[35] = "progid:DXImageTransform.Microsoft.Wheel(spokes=8)";
garTransitions[36] = "progid:DXImageTransform.Microsoft.Inset()";
garTransitions[37] = "progid:DXImageTransform.Microsoft.Fade(overlap=1)";
function $(id){
	return document.getElementById(id);
}
function dongdong(json){ // 回调
	_json = json;
	num = Array();
	var part = Array();
	for(var id in json){
		num.push(id);
		part.push('<span id="_'+id+'_" style="margin:2px;display:-moz-inline-box;display:inline-block;width:90px;height:90px;border:1px solid #fff;background:url(http://blog.mo.cn/mo/'+json[id].username+'/'+id+'_s.jpg) center center;cursor:crosshair;" title="'+json[id].title+'\n'+json[id].created+'" onclick="da('+id+','+id+');" onmouseover="zhong(event,'+id+');"></span>');
	}
	if(sort == 'id'){
		num.sort();
		part.sort();
		part.reverse();
	}
	else{
		num.reverse();
	}
	$(sample).innerHTML = part.join("");
}
function getid(_id,flag){ // 返回上下页序号
	for(var i=0;i<num.length;i++){
		if(_id == num[i]){
			if(flag == 'prev'){
				return num[i+1];
			}
			else{
				return num[i-1];
			}
		}
	}
}
function da(id,oid){ // 大图
	if(!_json[id].id){
		return true;
	}
	var img = new Image();
	var title = _json[id].title || _json[id].created;
	var photo_id = 'photo_'+oid;
	if(!$(photo_id)){
		create(photo_id);
	}
	else{
		ding($(photo_id));
	}
	//$(photo_id).style.background = 'red';
	$(photo_id).innerHTML = 'Loading...';
	$(photo_id).style.top = '25%';
	$(photo_id).style.left = '25%';
	$(photo_id).style.visibility = 'visible';
	$(photo_id).style.position = "absolute";
	img.onload = function(){
		//$(photo_id).style.background = 'white';
		// var xy = size();
		$(photo_id).style.top = (window.screen.height-this.height)/4;
		$(photo_id).style.left = (window.screen.width-this.width)/2;
		var part = '';
		part += '<legend><a href="http://'+_json[id].username+'.blog.mo.cn">'+_json[id].username+'\'s Moblog</a></legend>';
		part += title + '<br>';
		part += '<img id="img_'+id+'" title="'+_json[id].title+'\n'+_json[id].created+'" ondblclick="hidden(\''+oid+'\',event);" style="display:none;">';
		var pid = getid(id,'prev');
		var url = Array();
		if(pid){
			url.push('<a href="#" onclick="da('+pid+','+oid+');">上一张</a>');
		}
		var nid = getid(id,'next');
		if(nid){
			url.push('<a href="#" onclick="da('+nid+','+oid+');">下一张</a>');
		}
		url.push($('slide').innerHTML);
		url.push('<a href="#" onclick="hidden(\''+oid+'\');" target="_self">关闭</a>');
		$(photo_id).innerHTML = part + '<div align="right"><nobr>' + url.join(" | ") + '</nobr></div>';
		cool('img_'+id,this.src);
	};
	img.src = 'http://blog.mo.cn/mo/'+_json[id].username+'/'+id+'.jpg';
}
function create(id){ // 相框
	var obj = document.createElement('fieldset');
	obj.id = id;
	obj.className = 'drag';
	obj.onclick = function(){ding(this);};
	obj.style.cssText = 'background:#fff;position:absolute;visibility:hidden;';
	document.body.appendChild(obj);
	ding(obj);
}
function ding(obj){ // 置顶
	var div = document.getElementsByTagName('fieldset');
	var array = Array();
	for(var i=0;i<div.length;i++){
		if(div[i].id != 'preview')
			array.push(div[i].style.zIndex);
	}
	var max = Math.max.apply(Math,array);
	obj.style.zIndex = max + 1;
}
function size(){
	var dE = document.documentElement;
	return {top:dE.scrollTop,left:dE.scrollLeft,height:dE.clientHeight,width:dE.clientWidth};
}
function zhong(e,id){ // 中图
	var posx = 0;
	var posy = 0;
	if(!e)
		var e = window.event;
	if(e.pageX || e.pageY){
		posx = e.pageX;
		posy = e.pageY;
	}
	else if(e.clientX || e.clientY){
		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;
	}
	$('preview').innerHTML = '<img src="http://blog.mo.cn/mo/'+_json[id].username+'/'+id+'_s.jpg" title="'+_json[id].title+'\n'+_json[id].created+'" onclick="da('+id+','+id+');">';
	$('preview').style.visibility = 'visible';
	$('preview').style.zIndex = 999;
	$('preview').style.left = posx;
	$('preview').style.top = posy;
	// $('preview').innerHTML += $('_id_').style.cssText;
}
function hidden(obj,event){ // 隐藏
	if(obj == 'all'){
		var div = document.getElementsByTagName('fieldset');
		for(var i=0;i<div.length;i++){
			if(div[i].className == 'drag'){
				div[i].style.visibility = 'hidden';
			}
		}
	}
	else if(obj == 'preview'){
		$('preview').style.visibility = 'hidden';
	}
	else if($('photo_'+obj)){
		try{
			if(window.event){
				window.event.cancelBubble = true;
				window.event.returnValue = false;
			}
			else if(event.stopPropagation && event.preventDefault){
				event.stopPropagation();
				event.preventDefault();
			}
		}catch(err){}
		$('photo_'+obj).style.visibility = 'hidden';
	}
	else if($(obj)){
		alert('info: ' + obj);
	}
}
var dragobject = { // 十字
	z: 0, x: 0, y: 0, offsetx : null, offsety : null, targetobj : null, dragapproved : 0,
	initialize:function(){
		document.onmousedown = this.drag;
		document.onmouseup = function(){this.dragapproved = 0}
	},
	drag:function(e){
		var evtobj = window.event? window.event : e;
		this.targetobj = window.event? event.srcElement : e.target;
		this.targetobj = this.targetobj.parentNode;
		if(this.targetobj.className == 'drag'){
			this.dragapproved = 1;
			if (isNaN(parseInt(this.targetobj.style.left))){
				this.targetobj.style.left = 0;
			}
			if (isNaN(parseInt(this.targetobj.style.top))){
				this.targetobj.style.top = 0;
			}
			this.offsetx = parseInt(this.targetobj.style.left);
			this.offsety = parseInt(this.targetobj.style.top);
			this.x = evtobj.clientX;
			this.y = evtobj.clientY;
			if(evtobj.preventDefault)
				evtobj.preventDefault();
			document.onmousemove = dragobject.moveit;
		}
	},
	moveit:function(e){
		var evtobj = window.event? window.event : e;
		if(this.dragapproved == 1){
			this.targetobj.style.left = this.offsetx+evtobj.clientX-this.x+'px';
			this.targetobj.style.top = this.offsety+evtobj.clientY-this.y+'px';
			return false;
		}
	}
}
function apply(_sort){ // 生效
	if($('json_src')){
		document.body.removeChild($('json_src'));
		$(sample).innerHTML = 'Reloading...';
	}
	var js = document.createElement('script');
	js.id = 'json_src';
	js.charset = 'gb2312';
	js.src = 'http://blog.mo.cn/moblog_json.cgi?json='+username+'&count='+limit+'&sort='+_sort+'&callback=dongdong'+'&r='+Math.random();
	document.body.appendChild(js);
	sort = _sort;
}
function play(){ // 播放
	num.reverse();
	for(var i=0;i<num.length;i++){
		tim.push(setTimeout("da(num["+i+"],num[0])",5000*i));
	}
	$('slide').innerHTML = '<a href="#" onclick="stop();" target="_self">停止</a>';
}
function stop(){ // 停止
	for(var i=0;i<tim.length;i++){
		window.clearTimeout(tim[i]);
	}
	num.reverse();
	$('slide').innerHTML = '<a href="#" onclick="play();" target="_self">播放</a>';
}
function cool(id,src){ // 特效
	var obj = $(id);
	try{
		obj.style.filter = garTransitions[Math.floor((Math.random()*garTransitions.length))];
		obj.filters.item(0).Apply();
		obj.src = src;
		obj.style.display = 'block';
		obj.filters.item(0).Play(duration=2);
	}
	catch(e){
		obj.src = src;
		obj.style.opacity = 0;
		obj.style.MozOpacity = 0;
		obj.style.display = 'block';
		simple(id,true);
	}
}
function simple(id,method){
	var obj = $(id);
	var Opacity;
	if(method == true){
		Opacity = 0
	}
	else{
		Opacity = 100;
	}
	var Timer = setInterval(
		function (){
			if(Opacity < 100 && method == true){
				Opacity += 10;
			}
			else if(Opacity > 10 && method == false){
				Opacity -= 10;
			}
			else{
				clearInterval(Timer);
			}
			obj.style.filter = "alpha(opacity=" + Opacity + ");";
			obj.style.opacity = Opacity / 100;
			obj.style.MozOpacity = Opacity / 100;
		},
		100
	);
}