
//window.setTimeout('menushow(0)',100);

function setpic(id, link) {
  var pic=document.getElementById(id);
  if (pic!=null) pic.src=link;
}

function gotoId(id) {
  window.location.href='?id='+id;
}

function uploadInsert(ref_dir, ref_file, insertboth) {
  var fname=document.getElementById("fname");
  var tdir=document.getElementById("tdir");
  if (insertboth) fname.value=ref_file; else fname.value="";
  tdir.value="content/"+ref_dir;
}

function updateSelector(textfieldnum, field) {
  var tf=document.getElementById("var_"+textfieldnum);
  var val=document.getElementById("var_"+textfieldnum+"."+field);
  var origin=tf.value.split(",");
  origin[field]=val.value;
  if (origin[origin.length-1]=="") origin.splice(origin.length-1,1);
  if (origin[origin.length-1]=="") origin.splice(origin.length-1,1);
  tf.value=origin.join(",");
}

function cleanHtml(targetfield) {
  var search = new Array("&auml;","&ouml;","&uuml;","&Auml;","&Ouml;","&Uuml;","&szlig;","&eacute;","&amp;","“", "”");
  var replace = new Array("ä","ö","ü","Ä","Ö","Ü","ß","é", "&","\"", "\"");

  var field=document.getElementById(targetfield);
  if (field.value) {
    var str = field.value;
    for (var i=0; i<replace.length; i++) {
      var attr = new RegExp(search[i],"g");
      str = str.replace(attr, replace[i]);
    } 
    field.value=str;
  }
}

function replaceImgSrc(targetfield) {
  var field=document.getElementById(targetfield);
  if (field.value) {
    // {([A-Za-z0-9._-]{0,64})\.([A-Za-z0-9._-]{0,8})\}
    field.value=field.value.replace(/src="([A-Za-z0-9._-]{0,64})"/gi, "src=\"{$1}\"");
    field.value=field.value.replace(/href="([A-Za-z0-9._-]{0,64})"/gi, "href=\"{$1}\"");
  }
}


function insertLink(linklist, targetfield) {
  var id=document.getElementById(linklist);
  var field=document.getElementById(targetfield);
  if (id.value>0) {
    //field.value=field.value.replace("%link=%", "%link="+id.value+"%");
    insertAtCaret(field, "%link="+id.value+"%");
    var pos=field.value.indexOf("%link=");
    setCaretTo(field, pos);
  }
}

	function insertAtCaret(obj, text) {
		if(document.selection) {
			obj.focus();
			var orig = obj.value.replace(/\r\n/g, "\n");
			var range = document.selection.createRange();

			if(range.parentElement() != obj) {
				return false;
			}

			range.text = text;
			
			var actual = tmp = obj.value.replace(/\r\n/g, "\n");

			for(var diff = 0; diff < orig.length; diff++) {
				if(orig.charAt(diff) != actual.charAt(diff)) break;
			}

			for(var index = 0, start = 0; 
				tmp.match(text) 
					&& (tmp = tmp.replace(text, "")) 
					&& index <= diff; 
				index = start + text.length
			) {
				start = actual.indexOf(text, index);
			}
		} else if(obj.selectionStart) {
			var start = obj.selectionStart;
			var end   = obj.selectionEnd;

			obj.value = obj.value.substr(0, start) 
				+ text 
				+ obj.value.substr(end, obj.value.length);
		}
		
		if(start != null) {
			setCaretTo(obj, start + text.length);
		} else {
			obj.value += text;
		}
	}
	
	function setCaretTo(obj, pos) {
		if(obj.createTextRange) {
			var range = obj.createTextRange();
			range.move('character', pos);
			range.select();
		} else if(obj.selectionStart) {
			obj.focus();
			obj.setSelectionRange(pos, pos);
		}
	}
