UNPKG

phonemic-transcriber

Version:

A simple phonemic transcriber for the american english language.

481 lines (480 loc) 16.2 kB
"use strict"; let v = 1; let y = 0; let s = 0; let n = 0; let l = 0; let t = 0; let z = 0; let m = 0; let p = 0; let a = 0; let b = 0; let c = 0; let d = 0; let themeValue = 2; let myInputW = 810; let myInputH = 240; let myArea = 0; let myMAPA = document.getElementById("myMAPA"); let mySAPA = document.getElementById("mySAPA"); let mySyll = document.getElementById("mySyll"); let myStr1 = document.getElementById("myStr1"); let myStr2 = document.getElementById("myStr2"); let myCase = document.getElementById("myCase"); let myFusi = document.getElementById("myFusi"); let myMaxi = document.getElementById("myMaxi"); let myWeak = document.getElementById("myWeak"); let myST1a = document.getElementById("myST1a"); let myST1b = document.getElementById("myST1b"); let myST2a = document.getElementById("myST2a"); let myST2b = document.getElementById("myST2b"); // TOP BUTTON PANEL function myfunMAPA() { if ( myMAPA.checked == true ) { document.getElementById("mySAPA").checked = false; document.getElementById("myST1b").style.display = "none"; document.getElementById("myST1a").style.display = "inline"; document.getElementById("myST2b").style.display = "none"; document.getElementById("myST2a").style.display = "inline"; myCookie(); if ( a == 0 ) { let i = 0; while ( i < 3 ) { document.getElementsByClassName("phas")[i].style.display = "none"; document.getElementsByClassName("pham")[i].style.display = "block"; i = i + 1; }; }; } else { document.getElementById("myMAPA").checked = true; myfunMAPA(); }; }; function myfunSAPA() { if ( mySAPA.checked == true ) { document.getElementById("myMAPA").checked = false; document.getElementById("myST1a").style.display = "none"; document.getElementById("myST1b").style.display = "inline"; document.getElementById("myST2a").style.display = "none"; document.getElementById("myST2b").style.display = "inline"; myCookie(); if ( a == 0 ) { let i = 0; while ( i < 3 ) { document.getElementsByClassName("pham")[i].style.display = "none"; document.getElementsByClassName("phas")[i].style.display = "block"; i = i + 1; }; }; } else { document.getElementById("mySAPA").checked = true; myfunSAPA(); }; }; function myFunction() { myCookie(); }; function myFunMaxi() { document.getElementById("myWeak").checked = false; myCookie(); }; function myFunWeak() { document.getElementById("myMaxi").checked = false; myCookie(); }; function myPho() { if ( a == 0 ) { let i = 0; while ( i < 23 ) { document.getElementsByClassName("phop")[i].style.display = "block"; i = i + 1; }; i = 0; while ( i < 10 ) { document.getElementsByClassName("phos")[i].style.display = "inline"; i = i + 1; }; i = 0; while ( i < 6 ) { document.getElementsByClassName("phoz")[i].style.display = "none"; i = i + 1; }; a = 1; } else { let i = 0; while ( i < 23 ) { document.getElementsByClassName("phop")[i].style.display = "none"; i = i + 1; }; i = 0; while ( i < 10 ) { document.getElementsByClassName("phos")[i].style.display = "none"; i = i + 1; }; i = 0; while ( i < 6 ) { document.getElementsByClassName("phoz")[i].style.display = "inline"; i = i + 1; }; a = 0; }; if ( a == 1 ) { let i = 0; while ( i < 3 ) { document.getElementsByClassName("phas")[i].style.display = "block"; document.getElementsByClassName("pham")[i].style.display = "block"; i = i + 1; }; }; if ( a == 0 && myMAPA.checked == true ) { let i = 0; while ( i < 3 ) { document.getElementsByClassName("phas")[i].style.display = "none"; document.getElementsByClassName("pham")[i].style.display = "block"; i = i + 1; }; }; if ( a == 0 && mySAPA.checked == true ) { let i = 0; while ( i < 3 ) { document.getElementsByClassName("pham")[i].style.display = "none"; document.getElementsByClassName("phas")[i].style.display = "block"; i = i + 1; }; }; }; function myPhi() { if ( b == 0 ) { let i = 0; while ( i < 1 ) { document.getElementsByClassName("phip")[i].style.display = "block"; i = i + 1; }; i = 0; while ( i < 2 ) { document.getElementsByClassName("phis")[i].style.display = "inline"; i = i + 1; }; b = 1; } else { let i = 0; while ( i < 1 ) { document.getElementsByClassName("phip")[i].style.display = "none"; i = i + 1; }; i = 0; while ( i < 2 ) { document.getElementsByClassName("phis")[i].style.display = "none"; i = i + 1; }; b = 0; }; }; function myBib() { if ( c == 0 ) { let i = 0; while ( i < 7 ) { document.getElementsByClassName("bibp")[i].style.display = "block"; i = i + 1; }; i = 0; while ( i < 2 ) { document.getElementsByClassName("bibs")[i].style.display = "inline"; i = i + 1; }; c = 1; } else { let i = 0; while ( i < 7 ) { document.getElementsByClassName("bibp")[i].style.display = "none"; i = i + 1; }; i = 0; while ( i < 2 ) { document.getElementsByClassName("bibs")[i].style.display = "none"; i = i + 1; }; c = 0; }; }; function myPro() { if ( d == 0 ) { a = 0; b = 0; c = 0; myPho(); myPhi(); myBib(); d = 1; } else { a = 1; b = 1; c = 1; myPho(); myPhi(); myBib(); d = 0; }; myCookie(); }; function myExt() { if ( p == 0 ) { p = 1; } else { p = 0; }; myCookie(); }; // LOWER BUTTON PANEL function myChange() { let text; text = document.getElementById("myInput").value.toString(); if ( myMAPA.checked == true ) { v = 1 }; if ( mySAPA.checked == true ) { v = 2 }; if ( mySyll.checked == true ) { y = 1 } else { y = 0 }; if ( myStr1.checked == true ) { s = 1 } else { s = 0 }; if ( myStr2.checked == true ) { n = 1 } else { n = 0 }; if ( myCase.checked == true ) { l = 1 } else { l = 0 }; if ( myFusi.checked == true ) { z = 1 } else { z = 0 }; if ( myMaxi.checked == true ) { m = 1 } else { m = 0 }; if ( myWeak.checked == true ) { m = 2 }; text = Transcribe(text,v,y,s,n,l,z,m); document.getElementById("myResult").value = text; document.getElementById("myInput").scrollTop = 0; document.getElementById("myResult").scrollTop = 0; }; function myClear() { document.getElementById("myInput").value = ""; document.getElementById("myResult").value = ""; }; function myAaTex() { let amatex = document.getElementById("myInput").value.toString(); document.getElementById("myInput").value = myMoTex(amatex); document.getElementById("myInput").scrollTop = 0; document.getElementById("myResult").scrollTop = 0; }; function myMoTex(abtext) { abtext = abtext.toLowerCase(); // let abtext = abtext.replace(/\s+/g, " "); // let abtext = abtext.trim(); abtext = abtext.replace(/\n+/g, "êăõ"); abtext = abtext.replace(/\s+/g, " "); abtext = abtext.replace(/êăõ* /g, "\n\n"); abtext = abtext.replace(/êăõ/g, "\n\n"); abtext = abtext.trim(); // abtext = abtext.replace(/«/g,'"').replace(/»/g,'"').replace(/“/g,'"').replace(/”/g,'"').replace(/‘/g,"'").replace(/’/g,"'").replace(/`/g,"'").replace(/´/g,"'"); // abtext = abtext.replace(/[^a-z0-9 áéíóúüñ\n",:'\.\—\_\-?¿!¡;\(\)\[\]\{\}\…\+\=]/g,""); return abtext; }; function mySave() { let text1 = document.getElementById("myInput").value; let text2 = document.getElementById("myResult").value; let text3 = "=== ORIGINAL TEXT ===" + "\n\n" + text1 + "\n\n" + "=== PHONEMES TEXT ===" + "\n\n" + text2; let text4 = text3.replace(/\n/g, "\r\n"); let text5 = text4.replace(/\r+/g, "\r"); let factor = document.createElement('a'); factor.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(text5)); factor.setAttribute("download", "text.txt"); factor.style.display = "none"; document.body.appendChild(factor); factor.click(); document.body.removeChild(factor); }; function myCopy() { let text1 = document.getElementById("myInput").value; let text2 = document.getElementById("myResult").value; let text3 = "=== ORIGINAL TEXT ===" + "\n\n" + text1 + "\n\n" + "=== PHONEMES TEXT ===" + "\n\n" + text2; let text4 = text3.replace(/\n/g, "\r\n"); let text5 = text4.replace(/\r+/g, "\r"); const textArea = document.createElement("textarea"); textArea.value = text2; document.body.appendChild(textArea); textArea.select(); document.execCommand("copy"); document.body.removeChild(textArea); // window.alert("Good"); document.getElementById("myCopy").innerHTML = "Good"; setTimeout( function() { document.getElementById("myCopy").innerHTML = "Copy"; }, 1800 ); }; // THEME function myTheme() { if ( themeValue == 2 ) { document.body.style.color = "#efefef"; document.body.style.backgroundColor = "#303030"; let i = 0; while ( i < 2 ) { document.getElementsByTagName("textarea")[i].style.color = "#efefef"; document.getElementsByTagName("textarea")[i].style.backgroundColor = "#303030"; document.getElementsByTagName("textarea")[i].style.border = "1px solid #969696"; document.getElementsByTagName("textarea")[i].style.scrollbarColor = "#2b2b2b #363636"; i = i + 1; }; let u = 0; while ( u < 6 ) { document.getElementsByTagName("button")[u].style.color = "#efefef"; document.getElementsByTagName("button")[u].style.backgroundColor = "#303030"; document.getElementsByTagName("button")[u].style.border = "1px solid #969696"; u = u + 1; }; let a = 0; while ( a < 26 ) { document.getElementsByTagName("a")[a].style.color = "#c63636"; document.getElementsByTagName("a")[a].style.backgroundColor = "#303030"; a = a + 1; }; themeValue = 1; t = 2; myCookie(); } else { document.body.style.color = "#181818"; document.body.style.backgroundColor = "#ffffff"; let i = 0; while ( i < 2 ) { document.getElementsByTagName("textarea")[i].style.color = "#181818"; document.getElementsByTagName("textarea")[i].style.backgroundColor = "#ffffff"; document.getElementsByTagName("textarea")[i].style.border = "1px solid #999999"; document.getElementsByTagName("textarea")[i].style.scrollbarColor = "#c9c9c9 #fbfbfb"; i = i + 1; }; let u = 0; while ( u < 6 ) { document.getElementsByTagName("button")[u].style.color = "#181818"; document.getElementsByTagName("button")[u].style.backgroundColor = "#ffffff"; document.getElementsByTagName("button")[u].style.border = "1px solid #999999"; u = u + 1; }; let a = 0; while ( a < 26 ) { document.getElementsByTagName("a")[a].style.color = "#0000ff"; document.getElementsByTagName("a")[a].style.backgroundColor = "#ffffff"; a = a + 1; }; themeValue = 2; t = 1; myCookie(); }; }; // TEXTAREA function mySize() { myInputW = document.getElementById("myInput").offsetWidth; myInputH = document.getElementById("myInput").offsetHeight; myTextarea(); }; function myTextarea() { if ( myInputW < 810 ) { myInputW = 810; }; if ( myInputH < 240 ) { myInputH = 240; }; if ( myInputW > document.getElementById("main").offsetWidth ) { myInputW = document.getElementById("main").offsetWidth; }; if ( myInputH > screen.height ) { myInputH = screen.height; }; if ( myArea == 1 ) { myInputW = document.getElementById("main").offsetWidth; myInputH = screen.height; }; let i = 0; while ( i < 2 ) { document.getElementsByTagName("textarea")[i].style.width = myInputW + "px"; document.getElementsByTagName("textarea")[i].style.height = myInputH + "px"; i = i + 1; }; myCookie(); }; // COOKIES function myCookie() { if ( myMAPA.checked == true ) { v = 1 }; if ( mySAPA.checked == true ) { v = 2 }; if ( mySyll.checked == true ) { y = 1 } else { y = 0 }; if ( myStr1.checked == true ) { s = 1 } else { s = 0 }; if ( myStr2.checked == true ) { n = 1 } else { n = 0 }; if ( myCase.checked == true ) { l = 1 } else { l = 0 }; if ( myFusi.checked == true ) { z = 1 } else { z = 0 }; if ( myMaxi.checked == true ) { m = 1 } else { m = 0 }; if ( myWeak.checked == true ) { m = 2 }; document.cookie = "phonemic=" + v + "," + y + "," + s + "," + n + "," + l + "," + z + "," + m + "," + t + "," + d + "," + p + "," + myInputW + "," + myInputH + "," + myArea + ",~" + "; max-age=31415926 ; path=/"; }; // SETTING function mySetting() { if ( document.cookie.search(/phonemic=/) !== -1 ) { let settingDecode = decodeURIComponent(document.cookie); let settingValue = settingDecode.replace(/^.*(phonemic=)(.*)(,~).*/,"$2"); let settingLista = settingValue.trim().split(","); if ( settingLista[0] == 1 ) { document.getElementById("myMAPA").checked = true ; myfunMAPA(); }; if ( settingLista[0] == 2 ) { document.getElementById("mySAPA").checked = true ; myfunSAPA(); }; if ( settingLista[1] == 1 ) { document.getElementById("mySyll").checked = true ; myFunction(); }; if ( settingLista[1] == 0 ) { document.getElementById("mySyll").checked = false ; myFunction(); }; if ( settingLista[2] == 1 ) { document.getElementById("myStr1").checked = true ; myFunction(); }; if ( settingLista[2] == 0 ) { document.getElementById("myStr1").checked = false ; myFunction(); }; if ( settingLista[3] == 1 ) { document.getElementById("myStr2").checked = true ; myFunction(); }; if ( settingLista[3] == 0 ) { document.getElementById("myStr2").checked = false ; myFunction(); }; if ( settingLista[4] == 1 ) { document.getElementById("myCase").checked = true ; myFunction(); }; if ( settingLista[4] == 0 ) { document.getElementById("myCase").checked = false ; myFunction(); }; if ( settingLista[5] == 1 ) { document.getElementById("myFusi").checked = true ; myFunction(); }; if ( settingLista[5] == 0 ) { document.getElementById("myFusi").checked = false ; myFunction(); }; if ( settingLista[6] == 0 ) { document.getElementById("myMaxi").checked = false ; myFunction(); }; if ( settingLista[6] == 1 ) { document.getElementById("myMaxi").checked = true ; myFunMaxi(); }; if ( settingLista[6] == 2 ) { document.getElementById("myWeak").checked = true ; myFunWeak(); }; if ( settingLista[7] == 1 || settingLista[7] == 2 ) { themeValue = settingLista[7] ; myTheme(); }; if ( settingLista[8] == 0 ) { d = 1 ; myPro(); }; if ( settingLista[8] == 1 ) { d = 0 ; myPro(); }; if ( settingLista[9] == 0 ) { p = 1 ; myExt(); }; if ( settingLista[9] == 1 ) { p = 0 ; myExt(); }; if ( settingLista[10] !== undefined ) { myInputW = settingLista[10]; }; if ( settingLista[11] !== undefined ) { myInputH = settingLista[11]; }; if ( settingLista[12] !== undefined ) { myArea = settingLista[12]; }; myTextarea(); }; }; // TEXTAREA function myModeT() { if ( myArea == 0 ) { myArea = 1; myCookie(); myTextarea(); } else { myInputW = 810; myInputH = 240; myArea = 0; myCookie(); myTextarea(); }; }; // RESPONSIVE function myResponsive() { let widthMain = document.getElementById("main").offsetWidth; // MARGENS VALUES let valueMargen = myCalculation( widthMain, 300, 700, 0.45, 1.20 ) ; document.getElementById("main").style.margin = 0 + "em" + " " + valueMargen + "em" ; // FONT-SIZE MAIN let valueMfs = myCalculation( widthMain, 200, 600, 16, 20 ) ; document.getElementById("main").style.fontSize = valueMfs + "px" ; // FONT-SIZE H1 & H2 let valueHfs = myCalculation( widthMain, 200, 600, 24, 36 ) ; let widthH1 = myCalculation( widthMain, 120, 230, 0.60, 1 ) ; if ( widthMain < 174 ) { document.getElementById("Title").innerHTML = "PHONEMIC TRANSCR."; }; if ( widthMain >= 174 ) { document.getElementById("Title").innerHTML = "PHONEMIC TRANSCRIPTION"; }; document.getElementsByTagName("h1")[0].style.fontSize = valueHfs * widthH1 + "px" ; let i = 0; while ( i < 6 ) { document.getElementsByTagName("h2")[i].style.fontSize = valueHfs * 0.70 + "px" ; i = i + 1; }; myTextarea(); }; // RESPONSIVE CALCULATION function myCalculation ( X, Xa, Xb, Ya, Yb ) { if ( Xa !== Xb ) { if ( ( Xa < Xb ) && ( X <= Xa ) ) { let Y = Number ( Ya ); return Y; }; if ( ( Xa < Xb ) && ( X >= Xb ) ) { let Y = Number ( Yb ); return Y; }; if ( ( Xa > Xb ) && ( X >= Xa ) ) { let Y = Number ( Ya ); return Y; }; if ( ( Xa > Xb ) && ( X <= Xb ) ) { let Y = Number ( Yb ); return Y; }; if ( ( X > Xa && X < Xb ) || ( X > Xb && X < Xa ) ) { let Y = Number ( [ Yb * ( X - Xa ) + Ya * ( Xb - X ) ] / [ ( Xb - Xa ) ] ); return Y; }; } else { return false; }; }; // START mySetting(); myResponsive(); window.addEventListener( "resize", myResponsive );