function SubmitForm() {
  if (DOMFL.GetElm("submit")) {
    DOMFL.HideModalWindow();
		DOMFL.GetElm("submit").click();
	}
}

function SetTextField() {
  var content = DOMFL.GetElm("modalcontent");
	var elms = DOMFL.GetElmsByTag("input", content);
	for (var i = 0; i < elms.length; i++) if (elms[i].type == "text" || elms[i].type == "password") DOMFL.GetElm((elms[i].id).replace("_modal", "")).value = elms[i].value;
	SubmitForm();
}

function SetDatePicker() {
  var content = DOMFL.GetElm("modalcontent");
	var elms = DOMFL.GetElmsByTag("input", content);
	for (var i = 0; i < elms.length; i++) if (elms[i].type == "hidden") DOMFL.GetElm((elms[i].id).replace("_modal", "")).value = elms[i].value;
	SubmitForm();
}

function SetTextarea() {
  var content = DOMFL.GetElm("modalcontent");
	var elms = DOMFL.GetElmsByTag("textarea", content);
	for (var i = 0; i < elms.length; i++) DOMFL.GetElm((elms[i].id).replace("_modal", "")).value = elms[i].value;
	SubmitForm();
}

function SetSelect() {
  var content = DOMFL.GetElm("modalcontent");
	var elms = DOMFL.GetElmsByTag("select", content);
	for (var i = 0; i < elms.length; i++) DOMFL.GetElm((elms[i].id).replace("_modal", "")).selectedIndex = elms[i].selectedIndex;
	SubmitForm();
}

function SetRadio() {
  var content = DOMFL.GetElm("modalcontent");
	var elms = DOMFL.GetElmsByTag("input", content);
	for (var i = 0; i < elms.length; i++) if (elms[i].type == "radio") DOMFL.GetElm((elms[i].id).replace("_modal", "")).checked = elms[i].checked;
	SubmitForm();
}

function CustomForm(form, yesno, action) {
  var en = (document.location.href.indexOf("/en/") != -1);
	var custom = document.createElement("div");
	var buttons = document.createElement("p");
	var button1 = document.createElement("input");
	var button2 = document.createElement("input");
	buttons.className = "divider";
	button1.type = "button";
	button2.type = "button";
	button1.className = "button submit";
	button2.className = "button";
	DOMFL.SetEvent(button1, "click", action);
	DOMFL.SetEvent(button2, "click", DOMFL.HideModalWindow);
  if (en) button1.value = (yesno) ? "  Yes  " : " Continue ";
  else button1.value = (yesno) ? "  Sí  " : " Continuar ";
	if (en) button2.value = (yesno) ? "  No  " : " Cancel ";
	else button2.value = (yesno) ? "  No  " : " Cancelar ";
	buttons.appendChild(button1);
	buttons.appendChild(DOMFL.Text(" "));
	buttons.appendChild(button2);
	custom.appendChild(form);
	custom.appendChild(buttons);
	return custom;
}

function CustomFormSingle(form) {
  var en = (document.location.href.indexOf("/en/") != -1);
	var custom = document.createElement("div");
	var buttons = document.createElement("p");
	var button1 = document.createElement("input");
	buttons.className = "divider";
	button1.type = "button";
	button1.className = "button submit";
	DOMFL.SetEvent(button1, "click", DOMFL.HideModalWindow);
  if (en) button1.value = "  OK  ";
  else button1.value = " Aceptar ";
	buttons.appendChild(button1);
	custom.appendChild(form);
	custom.appendChild(buttons);
	return custom;
}

function CustomMessage(str) {
	var msg = document.createElement("p");
	msg.appendChild(DOMFL.Text(str));
	return msg;
}

function CustomField(label, input) {
	var field = document.createElement("p");
	field.appendChild(label);
	field.appendChild(document.createElement("br"));
	field.appendChild(input);
	field.appendChild(document.createElement("br"));
	return field;
}

function CustomTextField(elm) {
	var l = DOMFL.GetElmsByTag("label", elm.parentNode)[0];
	var label = document.createElement("label");
	label.htmlFor = elm.id + "_modal";
	label.appendChild(DOMFL.Text(l.childNodes[0].nodeValue));
	label.className = l.className;
	var input = document.createElement("input");
	input.type = elm.type;
	input.id = elm.id + "_modal";
	input.name = elm.id + "_modal";
	input.className = "text";
	input.style.marginBottom = elm.style.marginBottom;
	input.value = elm.value;
	input.size = elm.size;
	if (parseInt(input.size, 10) > 45) input.size = "45";
	input.setAttribute("maxlength", elm.getAttribute("maxlength"));
	return CustomField(label, input);
}

function CustomMiniTextField(elm) {
	var label = document.createElement("label");
	label.htmlFor = elm.id + "_modal";
	if (elm.getAttribute("label")) label.appendChild(DOMFL.Text(elm.getAttribute("label")));
	else label.appendChild(DOMFL.Text(" "));
	label.className = "required";
	var input = document.createElement("input");
	input.type = elm.type;
	input.id = elm.id + "_modal";
	input.name = elm.id + "_modal";
	input.className = "text";
	input.style.marginBottom = elm.style.marginBottom;
	input.value = elm.value;
	input.size = elm.size;
	if (parseInt(input.size, 10) > 45) input.size = "45";
	input.setAttribute("maxlength", elm.getAttribute("maxlength"));
	return CustomField(label, input);
}

function CustomDatePicker(elm) {
	var l = DOMFL.GetElmsByTag("label", elm.parentNode)[0];
	var label = document.createElement("label");
	label.appendChild(DOMFL.Text(l.childNodes[0].nodeValue));
	label.className = l.className;
	var div = document.createElement("div");
	var p = document.createElement("p");
	div.id = "flatcalendar";
	p.style.marginBottom = "0.1em";
	p.appendChild(label);
	var input = document.createElement("input");
	input.type = "hidden";
	input.id = elm.id + "_modal";
	input.name = elm.id + "_modal";
	input.value = elm.value;
	p.appendChild(input);
	div.appendChild(p);
	setTimeout("SetFlatCalendar('"+ input.id + "')", 2);
	setTimeout(DOMFL.ScrollModalWindow, 3);
	return div;
}

function DateChanged(calendar) {
	calendar.params.inputField.value = calendar.date.print("%Y-%m-%d");
}

function SetFlatCalendar(input) {
  if (typeof Calendar != "undefined") Calendar.setup( { inputField : input, flat : "flatcalendar", flatCallback : DateChanged } );
}

function CustomTextarea(elm) {
	var l = DOMFL.GetElmsByTag("label", elm.parentNode)[0];
	var label = document.createElement("label");
	label.htmlFor = elm.id + "_modal";
	label.appendChild(DOMFL.Text(l.childNodes[0].nodeValue));
	label.className = l.className;
	var textarea = document.createElement("textarea");
	textarea.id = elm.id + "_modal";
	textarea.name = elm.id + "_modal";
	textarea.value = elm.value;
	textarea.className = elm.className;
	if (!isNaN(parseInt(textarea.className, 10))) {
		var count = document.createElement("span");
		count.id = textarea.id + "_count";
		count.appendChild(DOMFL.Text(" (" + textarea.value.length + "/" + textarea.className + " caracteres)"));
    label.appendChild(count);
    DOMFL.SetEvent(textarea, "keyup", TextCounter);
	}
	textarea.style.height = elm.style.height;
	textarea.style.width = "292px";
	return CustomField(label, textarea);
}

function CustomSelect(elm) {
	var l = DOMFL.GetElmsByTag("label", elm.parentNode)[0];
	var label = document.createElement("label");
	label.htmlFor = elm.id + "_modal";
	label.appendChild(DOMFL.Text(l.childNodes[0].nodeValue));
	label.className = l.className;
	var sel = document.createElement("select");
	sel.id = elm.id + "_modal";
	sel.name = elm.id + "_modal";
	for (i = 0; i < elm.options.length; i++) {
	  if (elm.options[i].childNodes.length > 0) sel.options[sel.options.length] = new Option(elm.options[i].childNodes[0].nodeValue, elm.options[i].value);
	  else sel.options[sel.options.length] = new Option("", elm.options[i].value);
	}
	sel.selectedIndex = elm.selectedIndex;
	sel.style.width = "302px";
	return CustomField(label, sel);
}

function CustomRadio(elm) {
	var l = DOMFL.GetElmsByTag("label", elm.parentNode)[0];
	var label = document.createElement("label");
	label.appendChild(DOMFL.Text(l.childNodes[0].nodeValue));
	label.className = l.className;
	var p = document.createElement("p");
	p.className = "radios";
	p.appendChild(label);
	p.appendChild(document.createElement("br"));
	var radios = DOMFL.GetElmsByTag("input", elm.parentNode);
	var labels = DOMFL.GetElmsByTag("label", elm.parentNode);
	for (i = 0; i < radios.length; i++) {
	  var inp = document.createElement(document.uniqueID ? "<input name=\"" + radios[i].name + "_modal\">" : "input");
	  inp.type = "radio";
	  inp.id = radios[i].id + "_modal";
	  inp.setAttribute("name", radios[i].name + "_modal");
	  inp.value = radios[i].value;
	  inp.checked = radios[i].checked;
		var la = document.createElement("label");
		la.htmlFor = radios[i].id + "_modal";
		la.appendChild(DOMFL.Text(labels[i + 1].childNodes[0].nodeValue));
		p.appendChild(inp);
		p.appendChild(la);
		p.appendChild(document.createElement("br"));
	}
	return p;
}