var isInDragmode = false;
var msOffsetX, msOffsetY, IMGX, IMGY;

function EditFloat()
{
	var p1 = document.getElementById("p1");
	var p2 = document.getElementById("p2");

	if (p1 != undefined && p1 != null && p2 != undefined && p2 != null)
	{
		var toj = p1.getElementsByTagName("div");
		for (var k=0; k<toj.length; k++)
		{
			if (toj[k].id && toj[k].id.indexOf("Elem_") != -1)
				toj[k].style.display = "none";
		}
		
		var TAG = p2.getElementsByTagName("input");
		var Num = Get_Pic_Num(TAG);
		IMGX = Get_IMGXY(true);
		IMGY = Get_IMGXY(false);
			
		for (var i=0; i<Num; i++)
		{
		  var str = i+1;
		  var d = document.createElement("div");
		  setrlpCloumn(str);
		  d.id = "Elem_" + str;
		  if (document.getElementById(d.id))
		  {
		    document.getElementById(d.id).style.display = "";
			continue;
		  }
		  
		  d.className = "Drop_Pic";
		  setDrag(d);

		  var fx = document.getElementById("float_x_" + str);
		  var fy = document.getElementById("float_y_" + str);
		  var fontFamily = document.getElementById("Font_style_" + str);
		  var fontSize = document.getElementById("Font_size_" + str);
		  var fontColor = document.getElementById("Color_v_" + str);
		  var fontBold = document.getElementById("Font_Bold_" + str);
		  var fontItalic = document.getElementById("Font_Italic_" + str);
			
		  if (fx != undefined && fx != null && fy != undefined && fy != null) {
		    d.style.left = parseInt(fx.value,10) + IMGX;
		    d.style.top = parseInt(fy.value,10) + IMGY;
		  }
		  else {
			d.style.left = IMGX;
			d.style.top = IMGY;
		  }
		  
		  if (fontFamily != undefined && fontFamily != null)
			d.style.fontFamily = fontFamily.options[fontFamily.options.selectedIndex].value;
		  
		  if (fontSize != undefined && fontSize != null)
			d.style.fontSize = fontSize.options[fontSize.options.selectedIndex].value;
			
		  if (fontColor != undefined && fontColor != null)
			d.style.color = fontColor.value;
			
		  if (fontBold != undefined && fontBold != null)
		    if (fontBold.value == "true")
				d.style.fontWeight = "bold";
		    
		  if (fontItalic != undefined && fontItalic != null)
		    if (fontItalic.value == "true")
				d.style.fontStyle = "italic";
		  
		  d.innerText = "字段" + str;
		  setXY(str,d.style.pixelLeft - IMGX, d.style.pixelTop - IMGY);
		  p1.appendChild(d);
		}
	}
}

function rlpIndexChange(obj)
{
	var i = obj.id.replace("rlp_Item_","");
	setrlpCloumn(i);
}

function trim(val)
{
	return val.replace(/^[\s　\t]+|[\s　\t]+$/,   "");
}

function ChangeStyle(obj, action)
{
	if (action) {
		obj.className = "Active_Style";
	}
	else {
		obj.className = "Default_Style";
	}
}

function setrlpCloumn(i)
{
	var obj = document.getElementById("rlp_Item_" + i);
	if (obj != undefined && obj != null)
	{		
		var v = obj.options[obj.selectedIndex].value;
		var tb = document.getElementById("column_Active_" + i);
		var tDesc = document.getElementById("tb_Desc_" + i);
		if (v != -1) {
			tb.style.display = "none";
			tDesc.style.display = "none";
		}
		else {
			tb.style.display = "";
			tDesc.style.display = "";
		}
	}
}

function ChangeBold(obj)
{
	var id = obj.id.replace("Bold_IMG_", "");
	var v = document.getElementById("Font_Bold_" + id);
	var o = document.getElementById("Elem_" + id);
	if (v != undefined && v != null && o != undefined && o != null)
	{
		if (v.value == "true")
		{
			v.value = "false";
			obj.src = "/img/bold.jpg";
			o.style.fontWeight = "";
		}
		else
		{
			v.value = "true";
			obj.src = "/img/_bold.jpg";
			o.style.fontWeight = "bold";
		}
	}
}

function ChangeItalic(obj)
{
	var id = obj.id.replace("Italic_IMG_", "");
	var v = document.getElementById("Font_Italic_" + id);
	var o = document.getElementById("Elem_" + id);
	if (v != undefined && v != null && o != undefined && o != null)
	{
		if (v.value == "true")
		{
			v.value = "false";
			obj.src = "/img/italic.jpg";
			o.style.fontStyle = "";
		}
		else
		{
			v.value = "true";
			obj.src = "/img/_italic.jpg";
			o.style.fontStyle = "italic";
		}
	}	
}

function OnValidtor()
{
	var validtor = true;
	var p2 = document.getElementById("p2");
	var TAG = p2.getElementsByTagName("select");
	
	for (var i=0; i<TAG.length; i++)
	{
		if (TAG[i].id.toLowerCase().indexOf("rlp_item_") != -1)
		{
			if (TAG[i].options[TAG[i].selectedIndex].value == -1)
			{
				var id = TAG[i].id.replace("rlp_Item_","");
				var v = document.getElementById("column_Active_" + id);
				if (trim(v.value) == "")
				{
					var sp = document.getElementById("tb_Desc_" + id);
					sp.style.color = "#ff0000";
					validtor = false;
				}
			}
		}
	}
	
	return validtor;
}

function setFontFamily(obj)
{
	var i = obj.id.replace("Font_style_","");
	var ctl = document.getElementById("Elem_" + i);
	if (ctl != undefined && ctl != null) {
		ctl.style.fontFamily = obj.options[obj.options.selectedIndex].value;
	}
}

function setFontSize(obj)
{
	var i = obj.id.replace("Font_size_","");
	var ctl = document.getElementById("Elem_" + i);
	if (ctl != undefined && ctl != null) {
		ctl.style.fontSize = obj.options[obj.options.selectedIndex].value;
	}
}

function setXY(str,top,left)
{
	var fx = document.getElementById("float_x_" + str);
	var fy = document.getElementById("float_y_" + str);
	
	if (fx != undefined && fx != null && fy != undefined && fy != null)
	{
		fx.value = top;
		fy.value = left;
	}
}

function Get_IMGXY(val)
{
	var pic = document.getElementById("Pic_Path");
	if (pic != undefined && pic != null)
	{		
		if (val)
			return pic.offsetLeft;
		else	
			return pic.offsetTop;
	}
	else
	{
		return 0;
	}
}

function Get_Pic_Num(obj)
{
	var j = 0;
	for (var i=0; i<obj.length; i++)
	{
		if (obj[i].type == "text" && obj[i].id.toLowerCase().indexOf("float_x_") != -1)
			j = j+1;
	}
	return j;
}

function ClearStyle(obj)
{
	var id = obj.id.replace("Elem_","");
	var col = document.getElementById("Column_" + id);
	if (col != undefined && col != null)
			ChangeStyle(col, false);
}

function setDrag(obj)
{
	obj.onmousedown = function()
	{
		isInDragmode = true;
		var id = obj.id.replace("Elem_","");
		var col = document.getElementById("Column_" + id);
		if (col != undefined && col != null)
			ChangeStyle(col, true);

		obj.style.position = "absolute";
		obj.style.cursor = "move";
		obj.onmouseup = new Function("isInDragmode = false;document.onmousemove = null; ClearStyle(this);");
		obj.onselectstart = new Function("return false");
		document.onmousemove = function()
		{
			if(isInDragmode)
			{
				var ele = obj.id.replace("Elem_","");
				var IMGW = document.getElementById("Pic_Path").width + IMGX - obj.offsetWidth;
				var IMGH = document.getElementById("Pic_Path").height + IMGY - obj.offsetHeight;
				
				if (event.x - msOffsetX < IMGX)
					obj.style.pixelLeft = IMGX;
				else if(event.x - msOffsetX > IMGW)
					obj.style.pixelLeft = IMGW;
				else
					obj.style.pixelLeft = event.x - msOffsetX;
				
				if (event.y - msOffsetY < IMGY)
					obj.style.pixelTop = IMGY;
				else if(event.y - msOffsetY > IMGH)
					obj.style.pixelTop = IMGH;
				else
					obj.style.pixelTop = event.y - msOffsetY;
			
				setXY(ele, obj.style.pixelLeft - IMGX, obj.style.pixelTop - IMGY);
			}
		}
		msOffsetX = event.x - obj.offsetLeft;
		msOffsetY = event.y - obj.offsetTop;
	}
}

/* New_Template Validtor */

function Tpl_Name_Valid(source, args)
{
    var c = document.getElementById("Tpl_Name");
    var v = "";
    try  {
    v = trim(c.value);
    } catch (e) 
    {}
    
    if (v != "")
    {
    var r = new RegExp("^[\\{\\} \\w\\u4E00-\\u9fa5]{2,30}$","g");
    if (!r.test(v))
    {
        New_Template_focus('Name',true);
		args.IsValid = false;
		return;
	}
    }
    else
    {
    New_Template_focus('Name',true);
    args.IsValid = false;
    }
}

function Tpl_rContent(source, args)
{
    var c = document.getElementById("Tpl_Content");
    rContent();
    var v = "";
    try  {
      v = trim(c.value);
    } catch (e) 
    {}
    
    if (v == "")
    {
      New_Template_focus('rContent',true);
      args.IsValid = false;
    }
}

function Tpl_TAG(source, args)
{
    var c = document.getElementById("Tpl_TAG");
    var v = "";
    try  {
    v = trim(c.value);
    } catch (e) 
    {}
    
    if (v != "")
    {
    var arr = v.split(" ");
		
	if (arr.length > 5)
	{
		New_Template_focus('Tag',true);
		args.IsValid = false;
		return;
	}
	
	for (var i=0; i<arr.length; i++)
	{
		if (arr[i].length > 8)
		{
		New_Template_focus('Tag',true);
		args.IsValid = false;
		return;
		}
			
	    var parrten = /[^A-Za-z\u4E00-\u9fa5]/;
		if (parrten.test(arr[i]))
		{
		New_Template_focus('Tag',true);
		args.IsValid = false;
		return;
		}
	}
    }
}

function rContent()
{
    var Content = document.getElementById("Tpl_Content");
    var f = window.frames["HtmlEditor"].frames["Editor"];
    
    if (Content && f)
    {
       Content.value = f.document.body.innerHTML;
    }
}

function New_Template_focus(n,s)
{
	var d = document.getElementById(n);
	if (d)
	{
	  if (s)
		d.className = "rinfo_Active";
	  else
	    d.className = "rinfo";
	}
}

/* Create New_Archive */
function doCreateArchive()
{
  // Template Identiity
  var d = document.getElementById("Identity");
  var p = document.getElementById("p_left");
  var elent = p.getElementsByTagName("input");
  var arr = new Array();
  var Txt_Field = "";
  var Pic_Field = "";
  
  for (var i=0; i<elent.length; i++)
  {
    if (elent[i].id && elent[i].id.indexOf("Txt_Field_") != -1)
    {
      if (trim(elent[i].value) == "")
      {
        alert("文字字段信息必须填写!");
        return;
      }
      else
      {
        Txt_Field = Txt_Field + elent[i].value.replace(/\|/g, "") + "|";
        arr.push(elent[i]);
      }
	}
	else if(elent[i].id && elent[i].id.indexOf("Pic_Field_") != -1)
	{
	  if (trim(elent[i].value) == "")
      {
        alert("图片字段信息必须填写!");
        return;
      }
      else
      {
        Pic_Field = Pic_Field + elent[i].value.replace(/\|/g, "") + "|";
        arr.push(elent[i]);
      }
	}
  }
  
  for(var i=0; i<arr.length; i++)
	arr[i].value = "";
  
  // XmlHttp Async
  var data = "pid=" + d.value + "&Txt_Field=" + escape(Txt_Field) + "&Pic_Field=" + escape(Pic_Field);
  var req = GetXmlHttp();
  req.open("POST", "/CreateNewArticle.aspx");
  req.setRequestHeader("Content-Length",data.length); 
  req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  req.send(data);
  
  var addr = document.getElementById("Addr");
  var b = document.getElementById("create");
  addr.innerText = "地址正在生成,请稍等...";
  b.disabled = true;
  
  req.onreadystatechange = function() {

	 if (req.readyState == 4) {
	   eval(req.responseText);
	   b.disabled = false;
	 }
  }
}

function getXmlHttpPrefix() {

	var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
	var o;
	for (var i = 0; i < prefixes.length; i++) {
		try {
			// try to create the objects
			o = new ActiveXObject(prefixes[i] + ".XmlHttp");
			return prefixes[i];
		}
		catch (ex) {};
	}
	
	throw new Error("Could not find an installed XMLHttp object");
}

function GetXmlHttp()
{
  	try {
		// NS & MOZ
		if (window.XMLHttpRequest) {
			var req = new XMLHttpRequest();
			if (req.readyState == null) {
				req.readyState = 1;
				req.addEventListener("load", function () {
					req.readyState = 4;
					if (typeof req.onreadystatechange == "function")
						req.onreadystatechange();
				}, false);
			}
			
			return req;
		}
		// IE
		if (window.ActiveXObject) {
			return new ActiveXObject(getXmlHttpPrefix() + ".XmlHttp");
		}
	}
	catch (ex) {}
}