//编码
function HtmlEncode(str)
{
	if(str.length == 0) return "";
	 var s = str.replace(/ /g,"&nbsp;");
	 s = s.replace(/\n/g,"<br>");
     s = s.replace(/\'/g,"&#39;");
     s = s.replace(/\"/g,"&quot;");
     return s;  
};
function eediter_setjson(ul)
{
	var json='[';
	ul.find("li").each(function(index, element){
		if(index>0){json+=',';}
		
		json+='{"type":"' + $(this).attr("data-type") + '","body":"' ;
		
		if( $(this).attr("data-type")=="text")
		{
			json+=HtmlEncode($(this).find("textarea:eq(0)").val());//.encode() ;
			//json+=decodeURIComponent($(this).find("textarea:eq(0)").val());			
		}
		else if($(this).attr("data-type")=="image")
		{
			json+= $(this).find("img:eq(0)").attr("src") ;
		}
		else
		{
			json+= $(this).find("span:eq(0)").attr("src") ;
		}
		
		json+= '"}';
    });
	json+=']';	
	var txtid=ul.parent().attr("id").replace("_body","");
	ul.parent().find("#" + txtid).val(json);
};

function eediter_del(obj)
{
	var _back=confirm('确认要删除吗？');
	if(!_back){return;};
	var type=$(obj).parent().attr("data-type");
	if(type=="image")
	{
		var img=$(obj).parent().find("img:eq(0)").attr("src");
		if(img.toLowerCase().indexOf("/temp/") > -1)
		{
			var url=$(obj).parent().parent().parent().attr("vpath") + "Plugins/ProUpload.aspx?act=del&file=" + img;
			$.ajax({
				type: "GET", async: true,
				url: url,
				dataType: "html",
				success: function (data) {}
			 });		
		}
	}
	
	var ul=$(obj).parent().parent()
	$(obj).parent().remove();
	eediter_setjson(ul);
};
function eediter_add(type)
{
	var html='<li data-type="text">';
    html+='<textarea onblur="eediter_setjson($(this).parent().parent());"></textarea>';
	html+='<a class="del" href="javascript:;" onclick="eediter_del(this);"></a>';
    html+='</li>';	
	$(".eediter ul").append(html);	
	$('.eediter li').arrangeable();
	
};
function eediter_upload(obj,type)
{
	var url=$(obj).parent().parent().attr("vpath") + "Plugins/ProUpload.aspx?type=file";
	var maxWidth=$(obj).parent().parent().attr("maxWidth");
	if(maxWidth){url+="&MaxWidth=" + maxWidth;}

	if(obj.files)
	{
		var formData = new FormData();
		for(var i=0;i<obj.files.length;i++)
		{
			formData.append('files', obj.files[i], obj.files[i].name);
		}		
		$(obj).hide();
		$.ajax({
            type: "POST", 
			async: true,
			data:formData,
            url: url,           
			contentType: false,
			//dataType: "formData",
			cache: false,//上传文件无需缓存
            processData: false,//用于对data参数进行序列化处理 这里必须false
			dataType: "json",
            success: function (data) 
			{
				//alert(JSON.stringify(data));
				if (data.errcode == "0") 
				{
					for(var i=0;i < data.files.length; i++)
					{
						//alert( data.files[i].url);
						if(type=="image")
						{
							$(obj).parent().parent().find("ul:eq(0)").append('<li data-type="' + type + '"><img src="' + data.files[i].url + '" class="editerimg" ondragstart="return false;" ondrag="return false;" /><a href="javascript:;" class="del" onclick="eediter_del(this);"></a></li>');		
						}
						else
						{
							$(obj).parent().parent().find("ul:eq(0)").append('<li data-type="' + type + '" class="' + type + '"><span src="' + data.files[i].url + '"></span><a href="javascript:;" class="del" onclick="eediter_del(this);"></a></li>');		
						}
					}
				}
				else
				{
					layer.msg(data.message);
				}
				obj.value="";
				$('.eediter li').arrangeable();
				var ul=$(obj).parent().parent().find("ul");
				eediter_setjson(ul);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
				obj.value="";
			}
        });
		$(obj).show();	
	}
	else
	{
		$.ajaxFileUpload ({
		 	type: "post",
			url: url, //用于文件上传的服务器端请求地址 
			secureuri: false, //一般设置为false 
			fileElementId: $(obj).attr("id"), //文件上传空间的id属性  <input type="file" id="file" name="file" /> 
			dataType: "json", //返回值类型 一般设置为json 			
			success: function (data, status)  //服务器成功响应处理函数
			{
				//alert(JSON.stringify(data));
				if (data.errcode == "0") 
				{
					for(var i=0;i < data.files.length; i++)
					{
						//$(obj).parent().parent().find("ul:eq(0)").append('<li data-type="text"><img src="' + data.files[i].url + '" class="editerimg" ondragstart="return false;" ondrag="return false;" /><a href="javascript:;" class="del" onclick="eediter_del(this);"></a></li>');		
						if(type=="image")
						{
							$(obj).parent().parent().find("ul:eq(0)").append('<li data-type="' + type + '"><img src="' + data.files[i].url + '" class="editerimg" ondragstart="return false;" ondrag="return false;" /><a href="javascript:;" class="del" onclick="eediter_del(this);"></a></li>');		
						}
						else
						{
							$(obj).parent().parent().find("ul:eq(0)").append('<li data-type="' + type + '" class="' + type + '"><span src="' + data.files[i].url + '"></span><a href="javascript:;" class="del" onclick="eediter_del(this);"></a></li>');		
						}
					}
				}
				else
				{
					layer.msg(data.message);
				}
				obj.value="";
				var ul=$(obj).parent().parent().find("ul");
				eediter_setjson(ul);
			}, 
			error: function (data, status, e)//服务器响应失败处理函数
			{
			} 
		});	
	}	
};

//移动端
//插入位置
function getAppendArea(ul)
{
	var top=document.body.scrollTop;
	var rect=ul.get(0).getBoundingClientRect();
	if(ul.children().length==0)//
	{
		return {obj:ul.get(0),up:true};
	}
	else
	{	
		var editer_tool=$(".mediter_tool:eq(0)");
		var span=editer_tool.find("span:eq(0)");	
		var toolTop = top + editer_tool.get(0).offsetTop + span.get(0).offsetTop;		
		var rec=ul.get(0).getBoundingClientRect();

		if((top + rec.top) > toolTop) //最顶部
		{
			return {obj:ul.get(0),up:true};
		}
		else if(toolTop > (top + rec.top + ul.get(0).offsetHeight))//最底部
		{
			return {obj:ul.get(0),up:false};
		}
		else
		{
			for(var i=0;i<ul.children().length;i++)
			{
				var rect=ul.children()[i].getBoundingClientRect();
				var _min= top +  rect.top; 
				var _max=_min + ul.children()[i].offsetHeight;
				if(_min < toolTop && _max > toolTop)
				{
					if(toolTop < (_min +  parseInt(ul.children()[i].offsetHeight/2)))
					{
						return {obj:ul.children()[i],up:true};
					}
					else
					{
						return {obj:ul.children()[i],up:false};
					}
				}
			}			
		}
	}	
};
//添加节点
function mediter_add(obj,type,value)
{
	var html='<li data-type="'+ type +'">';
    html+='<dl>';
    html+='<dt>';
	html+='<a href="javascript:;" onclick="mediter_del(this);" class="titledel">&nbsp;</a>';
    html+='<a href="javascript:;" onclick="mediter_move(this,false);" class="titledown">&nbsp;</a>';
    html+='<a href="javascript:;" onclick="mediter_move(this,true);" class="titleup">&nbsp;</a>';
    html+='</dt>';
    html+='<dd>';
	switch(type)
	{
		case "title":
			html+='<input onblur="mediter_setjson($(this).parent().parent().parent().parent());" placeholder="请输入标题" />';
			break;
		case "text":
			html+='<textarea onblur="mediter_setjson($(this).parent().parent().parent().parent());" placeholder="请输入内容" />';
			break;
		case "image":
			html+='<img src="' + value + '" />';
			break;
		case "audio":
			html+='<audio src="' + value + '" controls="controls" />';
			break;
		case "video":
			html+='<video src="' + value + '" controls="controls" />';
			break;
	}
	html+='</dd>';
    html+='</dl>';
    html+='</li>';
	var ul=$(obj).parent().next();
	var area=getAppendArea(ul);
	if(area.obj.tagName=="UL")
	{
		if(area.up)
		{
			$(area.obj).prepend(html);//最前面
		}
		else
		{
			$(area.obj).append(html);//底部
		}
	}
	else
	{
		if(area.up)
		{
			$(area.obj).before(html);//前
		}
		else
		{
			$(area.obj).after(html);//后
		}
	}
	
};
//删除内容
function mediter_del(obj)
{
	var _back=confirm('确认要删除吗？');
	if(!_back){return;};
	var tmp="";
	var type=$(obj).parent().parent().parent().attr("data-type");
	switch(type)
	{
		case "text":
			break;
		case "image":
			tmp=$(obj).parent().next().find("img").attr("src");
			break;
		case "audio":
			tmp=$(obj).parent().next().find("audio").attr("src");
			break;
		case "video":
			tmp=$(obj).parent().next().find("video").attr("src");
			break;
	}
	if(tmp.toLowerCase().indexOf("/temp/") > -1)
	{
		var url=$(obj).parent().parent().parent().parent().parent().attr("vpath") + "Plugins/ProUpload.aspx?act=del&file=" + tmp;
		$.ajax({
			type: "GET", async: true,
			url: url,
			dataType: "html",
			success: function (data) {}
		});		
	}
	var ul=$(obj).parent().parent().parent().parent();
	$(obj).parent().parent().parent().remove();	
	mediter_setjson(ul);
};
//移动内容
function mediter_move(obj,up)
{
	var li=$(obj).parent().parent().parent();
	if(up)
	{
		if(li.index()==0)
		{
			//alert("已经在顶部!");
			return;
		}
		li.prev().before(li);
	}
	else
	{
		if(li.index()==li.parent().children().length-1)
		{
			//alert("已经在底部!");
			return;
		}
		li.next().after(li);
	}
	
	var ids="";
	li.parent().children().each(function(index,elem)
	{
		
		if(index>0){ids+=',';}
		ids+= $(elem).attr("rowid");
    });
	var ul=$(obj).parent().parent().parent().parent();
	mediter_setjson(ul);
};
function mediter_setjson(ul)
{
	var json='[';
	//$(".mediter li").each(function(index,elem)
	ul.find("li").each(function(index, elem)
	{
		if(index>0){json+=',';}
		var type=$(elem).attr("data-type").toLowerCase();
		switch(type)
		{
			case "title":
				json+='{"type":"title","body":"' + HtmlEncode($(elem).find("input").val()) + '"}';
				break;
			case "text":
				json+='{"type":"text","body":"' + HtmlEncode($(elem).find("textarea").val()) + '"}';
				break;
			case "image":
				json+='{"type":"image","body":"' + $(elem).find("img").attr("src") + '"}';
				break;
			case "audio":
				json+='{"type":"audio","body":"' + $(elem).find("audio").attr("src") + '"}';
				break;
			case "video":
				json+='{"type":"video","body":"' + $(elem).find("video").attr("src") + '"}';
				break;
		}
    });	
	json+=']';
	var txtid=ul.parent().attr("id").replace("_body","");	
	$("#"+ txtid).val(json);
};
function mediter_upload(obj,type)
{
	
	var url=$(obj).parent().parent().parent().attr("vpath") + "Plugins/ProUpload.aspx?type=file";
	var maxWidth=$(obj).parent().parent().parent().attr("maxWidth");
	if(maxWidth){url+="&MaxWidth=" + maxWidth;}
	if(obj.files)
	{
		var formData = new FormData();
		for(var i=0;i<obj.files.length;i++)
		{
			formData.append('files', obj.files[i], obj.files[i].name);
		}		
		$(obj).hide();
		$.ajax({
            type: "POST", 
			async: true,
			data:formData,
            url: url,           
			contentType: false,
			//dataType: "formData",
			cache: false,//上传文件无需缓存
            processData: false,//用于对data参数进行序列化处理 这里必须false
			dataType: "json",
            success: function (data) 
			{
				if (data.errcode == "0") 
				{
					for(var i=0;i < data.files.length; i++)
					{						
						mediter_add($(obj).parent().get(0),type,data.files[i].url);
					}
				}
				else
				{
					layer.msg(data.message);
				}
				obj.value="";
				var ul=$(obj).parent().parent().next();
				mediter_setjson(ul);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
			}
        });
		
		$(obj).show();
	}
	else
	{
		$(obj).hide();
		$.ajaxFileUpload ({
		 	type: "post",
			url: url, //用于文件上传的服务器端请求地址 
			secureuri: false, //一般设置为false 
			fileElementId: $(obj).attr("id"), //文件上传空间的id属性  <input type="file" id="file" name="file" /> 
			dataType: "json", //返回值类型 一般设置为json 			
			success: function (data, status)  //服务器成功响应处理函数
			{
				if (data.errcode == "0") 
				{
					for(var i=0;i < data.files.length; i++)
					{
						mediter_add(type,data.files[i].url);
					}
				}
				else
				{
					layer.msg(data.message);
				}
				obj.value="";
				var ul=$(obj).parent().parent().next();
				mediter_setjson(ul);
			}, 
			error: function (data, status, e)//服务器响应失败处理函数
			{
			} 
		});	
		$(obj).show();
	}
};
