_ _    _ _____  ___   __                       
 __      _(_) | _(_)___ / ( _ ) / /_   ___ ___  _ __ ___  
 \ \ /\ / / | |/ / | |_ \ / _ \| '_ \ / __/ _ \| '_ ` _ \ 
  \ V  V /| |   <| |___) | (_) | (_) | (_| (_) | | | | | |
   \_/\_/ |_|_|\_\_|____/ \___/ \___(_)___\___/|_| |_| |_|

Käyttäjä:Zache/tallenna.js

Tässä artikkelissa perehdymme Käyttäjä:Zache/tallenna.js:n kiehtovaan maailmaan ja tutkimme sen alkuperää, kehitystä ja merkitystä nykyään. Käyttäjä:Zache/tallenna.js:llä on ollut perustavanlaatuinen rooli elämämme eri osa-alueilla aina historiassa esiintymisestä sen vaikutuksiin nyky-yhteiskunnassa. Näillä linjoilla perehdymme sen tärkeimpiin ja transsendenttisimpiin puoliin analysoimalla sen vaikutusta eri alueilla ja sen merkitystä populaarikulttuurissa. Liity kanssamme tälle tutkimus- ja pohdiskelumatkalle Käyttäjä:Zache/tallenna.js:stä, jännittävästä aiheesta, joka ei jätä ketään välinpitämättömäksi.
var fvmsg=new Array();
fvmsg=new Array();
fvmsg=new Array();
fvmsg=new Array();

fvmsg="Kohdenimi pitää asettaa.";
fvmsg="Yhteenvedon kuvaus-parametri pitää asettaa.";
fvmsg="Yhteenvedon tekijä- tai tekijänoikeuksien haltija -parametri pitää asettaa.";
fvmsg="Yhteenvedon lähde-parametri pitää asettaa.";
fvmsg="Yhteenvedon päiväys-parametri pitää asettaa.";
fvmsg="Lisenssi pitää valita.";

// mikäli tämä on true niin lomaketta ei lähetetä vaan ainoastaan ilmoitetaan onnistuiko tarkistus.
if (mwUploadFormValidator_debug  == undefined) var mwUploadFormValidator_debug=false;     

// poistaa whitespacet (välilyönti, rivinvaihto) tekstin alusta ja lopusta

function trim1(str) {
  return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

// Valitsee käyttäjän kielen mukaisen tekstin näytettäväksi jos sopiva on käytössä.

function mwUploadFormValidatorMsg(key) {
  var lang= wgUserLanguage;
  if (fvmsg==null) lang='en';
  if (fvmsg==null) {
    lang='en';
    if (fvmsg==null) {
      lang='fi';
      if (fvmsg==null) 
        return "ERROR: string for lang=" + lang +" and key=" + key + " not found.";
    }
  }
  return fvmsg;
}

function mwUploadFormValidator() {
  clear_msg();
// Tarkistetaan, että halutaanko ohittaa tarkistukset
  e=document.getElementById("wpIgnoreWarning");
  if (e==null) return true;
  if (e.checked==true) {
     if (mwUploadFormValidator_debug==true) {
       alert("Ohitettiin tarkistukset");
       return false;
     } else 
       return true;
  }
/*
// Emme tarkista onko ladattava tiedosto asetettuna, koska Wikipedian nykyinen koodi tekee sen

  e=document.getElementById("wpUploadFile");
  if ((e) && (trim1(e.value)=="") ) {
    alert("wpUploadFile pitää olla asetettuna");
    return false;
  }
*/


// Tarkistetaan onko kohdenimenä jotain
  e=document.getElementById("wpDestFile");
  if ((e) && (trim1(e.value)=="") ) {
    alert_msg(mwUploadFormValidatorMsg("puuttuva_kohdenimi"));
    return false;
  }


// Tarkistetaan yhteenveto. 
  e=document.getElementById("wpUploadDescription");

// Mikäli yhteenvetokenttää ei saada niin jotain meni kammottavasti pieleen ja lopetetaan tarkistus
  if (e==null) return true;

// Poistetaan rivinvaihdot, koska javascript regex ei pidä niistä 
  var wpUploadDescription=e.value.replace(/\n|\r/gm, " ");

// Tarkistetaan onko yhteenvedon kuvaus-parametri asetettuna

  var notfound=true;
  var re = new RegExp("\\| Kuvaus *?=(.*?)(\\||}})", "igm");
  var m = re.exec(wpUploadDescription);

  if (m == null) ;
  else if (m.length<2) ;
  else {
    var t=trim1(m);
    if (t.length>0) notfound=false;
  }

  if (notfound==true) {
    alert_msg(mwUploadFormValidatorMsg("puuttuva_kuvaus"));
    return false;
  }

// Tarkistetaan onko lähde-parametri asetettuna

  var notfound=true;
  var re = new RegExp("\\| Lähde *?=(.*?)(\\||}})", "igm");
  var m = re.exec(wpUploadDescription);

  if (m == null) ;
  else if (m.length<2) ;
  else {
    var t=trim1(m);
    if (t.length>0) notfound=false;
  }
  if (notfound==true) {
    alert_msg(mwUploadFormValidatorMsg("puuttuva_lahde"));
    return false;
  }


// Tarkistetaan onko yhteenvedon päiväys-parametri asetettuna

  var notfound=true;
  var re = new RegExp("\\| Päiväys *?=(.*?)(\\||}})", "igm");
  var m = re.exec(wpUploadDescription);

  if (m == null) ;
  else if (m.length<2) ;
  else {
    var t=trim1(m);
    if (t.length>0) notfound=false;
  }
  if (notfound==true) {
    alert_msg(mwUploadFormValidatorMsg("puuttuva_paivays"));
    return false;
  } 

// Tarkistetaan onko tekijä tai tekijänoikeuksien haltija -parametri asetettuna

  var notfound=true;
  var re = new RegExp("\\| Tekijä *?=(.*?)(\\||}})", "im");
  var m = re.exec(wpUploadDescription);

  if (m == null) ;
  else if (m.length<2) ;
  else {
    var t=trim1(m);
    if (t.length>0) notfound=false;
  }

  var re = new RegExp("\\| Tekijänoikeuksien haltija *?=(.*?)(\\||}})", "igm");
  var m = re.exec(wpUploadDescription);

  if (m == null) ;
  else if (m.length<2) ;
  else {
    var t=trim1(m);
    if (t.length>0) notfound=false;
  }

  if (notfound==true) {
    alert_msg(mwUploadFormValidatorMsg("puuttuva_tekija"));
    return false;
  } 

// Tarkistetaan käyttöoikeus
  e=document.getElementById("wpLicense");
  if (e==null) return true;
  else if (trim1(e.value)=="") {
    alert_msg(mwUploadFormValidatorMsg("puuttuva_lisenssi"));
    return false;
  }

  if (mwUploadFormValidator_debug==true) {
    alert("Kaikki OK");
    return false;
  }
  return true;
}

function clear_msg() {
  var e=document.getElementById("viestilaatikko");
  if (!e) return false;
  e.style.display="none";
  e.innerHTML="";
}

function alert_msg(str) {
  var e=document.getElementById("viestilaatikko");
  if (e) {
    e.style.display="block";
    e.innerHTML+=str;
  } else {
    alert(str);
  }
}

function initMwUploadFormValidator() {
  var e=document.getElementById("mw-upload-form");
  if (!e) return false;
 
// alert(e.parentNode);
// Asetetaan rumasti onsubmit-käsitteliä 
  var str=e.parentNode.innerHTML;
  str=str.replace(/id=\"?mw-upload-form\"?/igm, "id=\"mw-upload-form\" onsubmit=\"return mwUploadFormValidator()\"");
  e.parentNode.innerHTML=str;
 
//   alert(str);
//  e.setAttribute("onsubmit", "return mwUploadFormValidator()");
//  e.setAttribute("ONSUBMIT", "return mwUploadFormValidator()");

   var newDiv = document.createElement('span');

  if (newDiv) {
    newDiv.setAttribute("id", "viestilaatikko");
    newDiv.style.padding="0.5em";
    newDiv.style.fontSize="150%";
    newDiv.style.color="red";
//    newDiv.style.border="0.2em solid red";
    newDiv.style.display="none";
    newDiv.style.width="100%";
    newDiv.style.clear="both";
    document.getElementById("fiwiki-bottom-toolbar").appendChild(newDiv);
  }
}

if (wgCanonicalNamespace=="Special" && wgCanonicalSpecialPageName=="Upload")  
  addOnloadHook( initMwUploadFormValidator );