Участник:Krassotkin/ultraInputBoxes.js

Материал из Википедии — свободной энциклопедии
function clickUltraInputBox(formI) {
 var newUri="http://"+window.location.hostname+document.getElementById("createbox_"+formI).getAttribute("action")+"?action="+document.getElementById("action_"+formI).value+"&preload="+encodeURIComponent(document.getElementById("preload_"+formI).value)+"&editintro="+encodeURIComponent(document.getElementById("editintro_"+formI).value)+"&summary="+document.getElementById("summary_"+formI).value+"&minor="+document.getElementById("minor_"+formI).value+"&title="+encodeURIComponent(document.getElementById("textValuePrefix_"+formI).value+document.getElementById("text_"+formI).value)+"&create="+encodeURIComponent(document.getElementById("submit_"+formI).value);
 window.location = newUri;
 return;
}

function createUltraInputBoxes() {
 var allForms = document.getElementsByTagName("form");
 for(var formI=0; formI<allForms.length; formI++) {
  var form=allForms.item(formI); 
  if(form.className!="createbox") {continue;}
  var grandParent=form.parentNode.parentNode;
  if(grandParent.className!="ultraInputBox") {continue;}
  form.id="createbox_"+formI;
  var cn=form.childNodes; var targetEl=null;
  for(var targetElN=0, f=false;targetElN<cn.length&&!f;targetElN++) {
   targetEl=cn.item(targetElN);
   if(targetEl.tagName&&targetEl.tagName.toLowerCase()=="p") {f=true;}
  }
  var parentEl=targetEl; cn=targetEl.childNodes; targetEl=null;
  for(var targetElN=0;targetElN<cn.length;targetElN++) {
   targetEl=cn.item(targetElN);
   if(targetEl.tagName&&targetEl.tagName.toLowerCase()=="input") {
    if(targetEl.getAttribute("name")) {
     if(targetEl.getAttribute("name").toLowerCase()=="action") {targetEl.id="action_"+formI;}
     else if(targetEl.getAttribute("name").toLowerCase()=="preload") {targetEl.id="preload_"+formI;}
     else if(targetEl.getAttribute("name").toLowerCase()=="editintro") {targetEl.id="editintro_"+formI;}
     else if(targetEl.getAttribute("name").toLowerCase()=="summary") {targetEl.id="summary_"+formI;}
     else if(targetEl.getAttribute("name").toLowerCase()=="minor") {targetEl.id="minor_"+formI;} 
     else if(targetEl.getAttribute("name").toLowerCase()=="create") {
      targetEl.id="submit_"+formI; targetEl.setAttribute("onClick", "clickUltraInputBox(\""+formI+"\");return false;");
     } else if(targetEl.getAttribute("name").toLowerCase()=="title") {
      var tmptxt=targetEl.getAttribute("value");
      var tmpEl=document.createElement("input"); tmpEl.value=tmptxt; tmpEl.id="textValuePrefix_"+formI; tmpEl.setAttribute("type","hidden"); parentEl.appendChild(tmpEl);
      targetEl.value=""; targetEl.id="text_"+formI;
     }
    }
   }
  }
 }
}

$(createUltraInputBoxes);