var tag_window_open = false;
var tag_tagsid = 'tag_tags';
var tag_frameid = 'tag_frame';
var tag_chooserid = 'tag_chooser';
var tag_viewport = 80 + 2 * 5; // including border
var tag_sep = '@';
function fbm_pt_getSelection(evt) {
  var x, y;
  
  if (tag_window_open == true) {
    return;
  }
  else {
    if (evt.offsetX) {
    x = evt.offsetX;
      y = evt.offsetY;
    }
    else {
      x = evt.layerX;
      y = evt.layerY;
    }
    
    var f = document.forms['fpicture_edit'];
    f.x.value = x;
    f.y.value = y;
  }
  
  var frame = document.getElementById(tag_frameid);
  frame.style.left = x - Math.ceil(tag_viewport / 2)+"px";
  frame.style.top  = y - Math.ceil(tag_viewport / 2)+"px";
  frame.style.display = 'inline';
  
  var chooser = document.getElementById(tag_chooserid);
  chooser.style.left = x + Math.ceil(tag_viewport / 2)+5+"px";
  chooser.style.top  = frame.style.top;
  chooser.style.display = 'inline';
  
  tag_window_open = true;
}
function fbm_pt_submitForm(rd_mod, rd_evt) {
	if (tag_window_open == true) {
		return false;
	}
	else {
		ajaxFormSubmit('fbm','team_picture_save','fpicture_edit','rd_mod='+rd_mod+'&rd_evt='+rd_evt);
	}
}
function fbm_pt_init() {
  var f = document.forms['fpicture_edit'];
	
	var token = f.xysave.value.split(tag_sep);
	
	for(var i=0; i<token.length;i++) {
		if (token[i] == '') {
			break;
		}
		
		var data = token[i].split(":");
		
		// We need the ID
		var id = data[0];
		
		for(var j=0; j<f.pt_person.options.length; j++) {
			if (f.pt_person.options[j].value == id) {
				fbm_pt_addPersonNode(id, f.pt_person.options[j].text);
				
				f.pt_person.options[j].disabled = true;
				
				break;
			}
		}
	}
}
function fbm_pt_saveSelect() {
  var f = document.forms['fpicture_edit'];
  
  if (f.pt_person.selectedIndex == 0) {
    alert("Bitte wählen Sie eine Person aus der Liste aus.");
    return;
  }
  
  var pers = f.pt_person.options[f.pt_person.selectedIndex].value;
  var pers_name = f.pt_person.options[f.pt_person.selectedIndex].text;
  
  var row = f.pt_row.options[f.pt_row.selectedIndex].value;
  if (row != '') {
    row = ':'+row;
  }
  
  // Person speichern in Textarea
  f.xysave.value += pers+":"+f.x.value+":"+f.y.value+row+tag_sep;
  
	fbm_pt_addPersonNode(pers, pers_name);
  
  // Person deaktivieren
  f.pt_person.options[f.pt_person.selectedIndex].disabled = true;
  
  fbm_pt_cancelSelect();
}
function fbm_pt_addPersonNode(pers, pers_name) {
  var tags = document.getElementById(tag_tagsid);
  
  var tag = document.createElement("A");
  tag.setAttribute("href","javascript: fbm_pt_removeSelect('"+pers+"')");
  tag.setAttribute("class", "pt_remove");
  tag.setAttribute("id", "pt_id_"+pers);
  tag.setAttribute("onMouseOver", "fbm_pt_showFrame('"+pers+"')");
  tag.setAttribute("onMouseOut", "fbm_pt_hideFrame()");
  
  
  var text = document.createTextNode(pers_name);
  tag.appendChild(text);
  tags.appendChild(tag);
}
function fbm_pt_cancelSelect() {
  document.getElementById(tag_frameid).style.display = 'none';
  document.getElementById(tag_chooserid).style.display = 'none';
  
  var f = document.forms['fpicture_edit'];
  f.pt_person.selectedIndex = 0;
  f.pt_row.selectedIndex = 0;
  
  tag_window_open = false;
}
function fbm_pt_removeSelect(id) {
  tag_window_open = true;
  if (window.confirm("Möchten Sie den Personen-Tag wirklich entfernen?") == false) {
    tag_window_open = false;
    fbm_pt_hideFrame();
    return;
  }
  // Tag löschen
  var tags = document.getElementById(tag_tagsid);
  var tag  = document.getElementById("pt_id_"+id);
  
  tags.removeChild(tag);
  
  // Name wieder auswählbar
  var f = document.forms['fpicture_edit'].pt_person.options;
  for (var i = 0; i<f.length; i++) {
    if (f[i].value == id) {
      f[i].disabled = false;
      break;
    }
  }
  
  // Tag entfernen aus Save
  var xysave = document.forms['fpicture_edit'].xysave.value;
  var xytags = xysave.split(tag_sep);
  var xytags_out = '';
  
  for (var i = 0; i<xytags.length; i++) {
    var tag = xytags[i];
    if (tag == '') {
      continue;
    }
    var token = tag.split(":");
    if (token[0] != id) {
      xytags_out += tag+tag_sep;
    }
  }
  
  document.forms['fpicture_edit'].xysave.value = xytags_out;
  
  tag_window_open = false;
  fbm_pt_hideFrame();
}
function fbm_pt_showFrame(id) {
  if (tag_window_open == true) {
    return;
  }
  var x = -1;
  var y = -1;
  var xysave = document.forms['fpicture_edit'].xysave.value;
  var xytags = xysave.split(tag_sep);
  var xytags_out = '';
  
  for (var i = 0; i<xytags.length; i++) {
    var tag = xytags[i];
    if (tag == '') {
      continue;
    }
    var token = tag.split(":");
    if (token[0] == id) {
      x = token[1];
      y = token[2];
    }
  }
  if (x == -1) {
    return;
  }
  
  var frame = document.getElementById(tag_frameid);
  frame.style.left = x - Math.ceil(tag_viewport / 2)+"px";
  frame.style.top  = y - Math.ceil(tag_viewport / 2)+"px";
  frame.style.display = 'inline';
}
function fbm_pt_hideFrame() {
  if (tag_window_open == true) {
    return;
  }
  var frame = document.getElementById(tag_frameid);
  frame.style.display = 'none';
}
