SEO Product link JS generator
1.0.0
1.0.8
original: lukasz885 - mod: 5ulo
function makeSEOlink(firstField, secondField, intoField) {
SEOlink = String();
delimiter = String();
if (document.getElementById(firstField).value == '' || document.getElementById(secondField).value == '') {
delimiter = '';
} else {
delimiter = '-';
}
SEOlink = document.getElementById(firstField).value + delimiter + document.getElementById(secondField).value;
//Below are Polish diacritics to be eliminated.
//You could remove them or enhance for your language specific diacritic characters.
//Use UTF-8 hex numbers for specifying characters.
var diacr = [
// PL
/[\u119]/g, /[\u118]/g, //ę,Ę
/[\u105]/g, /[\u104]/g, //ą,Ą
/[\u15B]/g, /[\u15A]/g, //ś,Ś
/[\u142]/g, /[\u141]/g, //ł,Ł
/[\u17C]/g, /[\u17B]/g, //ż,Ż
/[\u17A]/g, /[\u179]/g, //ź,Ź
/[\u107]/g, /[\u106]/g, //ć,Ć
/[\u144]/g, /[\u143]/g, //ń,Ń
// SK
/[\uE1]/g, /[\uC1]/g, //á,Á
/[\uE4]/g, /[\uC4]/g, //ä,Ä
/[\u10D]/g, /[\u10C]/g, //č,Č
/[\u10F]/g, /[\u10E]/g, //ď,Ď
/[\uE9]/g, /[\uC9]/g, //é,É
/[\uED]/g, /[\uCD]/g, //í,Í
/[\u13A]/g, /[\u139]/g, //ĺ,Ĺ
/[\u13E]/g, /[\u13D]/g, //ľ,Ľ
/[\u148]/g, /[\u147]/g, //ň,Ň
/[\uF3]/g, /[\uD3]/g, //ó,Ó
/[\uF4]/g, /[\uD4]/g, //ô,Ô
/[\u155]/g, /[\u154]/g, //ŕ,Ŕ
/[\u161]/g, /[\u160]/g, //š,Š
/[\u165]/g, /[\u164]/g, //ť,Ť
/[\uFA]/g, /[\uDA]/g, //ú,Ú
/[\uFD]/g, /[\uDD]/g, //ý,Ý
/[\u17E]/g, /[\u17D]/g, //ž,Ž
// CZ
/[\u11B]/g, /[\u11A]/g, //ě,Ě
/[\u158]/g, /[\u159]/g, //ř,Ř
/[\u16F]/g, /[\u16E]/g, //ů,Ů
];
var chars = ["e","E","a","A","s","S","l","L","z","Z","z","Z","c","C","n","N","a","A","a","A","c","C","d","D","e","E","i","I","l","L","l","L","n","N","o","O","o","O","r","R","s","S","t","T","u","U","y","Y","z","Z","e","E","r","R","u","U",];
for (var i = 0; i < diacr.length; i++) {
SEOlink = SEOlink.replace(diacr[i], chars[i]);
}
SEOlink = SEOlink.replace(/[^0-9a-zA-Z]/g, "-");
SEOlink = SEOlink.replace(/[--]+/g, "-");
SEOlink = SEOlink.replace(/^[-]/g, "");
SEOlink = SEOlink.replace(/[-]$/g, "");
document.getElementById(intoField).value = SEOlink.toLowerCase();
}
]]>