function ajax(val,lvl) { var http_request = false; if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { try {http_request = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {try {http_request = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) {}} } if (!http_request) { alert("Erreur : XMLHTTP impossible ! Utilisez un autre navigateur."); return false; } if (val == 1) { var num = document.getElementById("categorie").value; var subcat4 = document.getElementById("subcat4"); var divs = subcat4.getElementsByTagName("div"); for (var i = 0; i < divs.length; i++) { subcat4.removeChild(divs.item(i)); } if (num > 0) { document.getElementById("subcat1").style.display = "none"; document.getElementById("subcat2").style.display = "none"; document.getElementById("subcat3").style.display = ""; document.getElementById("post").cat_s.value = num; setCat(0, document.getElementById("categorie").options[document.getElementById("categorie").selectedIndex].text); var url = 'getsubcat.php?id='+num; http_request.onreadystatechange = function() {getSub(http_request);}; http_request.open('GET', url, true); http_request.send(null); } else { document.getElementById("subcat1").style.display = ""; document.getElementById("subcat2").style.display = "none"; document.getElementById("post").cat_s.value = ""; var form = document.getElementById("post"); for (var i = form.subcat.options.length - 1; i > 0; i--) { form.subcat.options[i] = null; } form.subcat.options[0] = new Option(" ", 0); } } else if (val == 2) { var keywords = document.getElementById("keywords").value; if (keywords.length > 2) { document.getElementById("searchButton").value = "Nouvelle recherche"; document.getElementById("searchButton").disabled = "disabled"; document.getElementById("searchprogress").style.display = ""; var url = 'getcatresults.php?kw='+keywords; http_request.onreadystatechange = function() {getCatResults(http_request);}; http_request.open('GET', url, true); http_request.send(null); } else { alert("Veuillez entrer des termes plus pr\351cis."); } } else if (val == 3) { var subcat4 = document.getElementById("subcat4"); var divs = subcat4.getElementsByTagName("div"); if (lvl >= 0) {var url = divs.item(lvl).firstChild.options[divs.item(lvl).firstChild.selectedIndex].value;} else {var url = document.getElementById('subcat').options[document.getElementById('subcat').selectedIndex].value;} url = "getsubcat.php?id="+url; lvl++; http_request.onreadystatechange = function() {getSubSub(http_request,lvl);}; http_request.open('GET', url, true); http_request.send(null); } } function addslashes(str) { str = str.replace(/\'/g,"\\\'"); return str; } function getCatResults(http_request) { if (http_request.readyState == 4) { if (http_request.status == 200) { if (http_request.responseText != "" && http_request.responseText != null) { var cats = new Array(); cats = http_request.responseText.split('|'); document.getElementById("searchresults").style.display = ""; var nbresultsSpan = document.getElementById("nbresults"); nbresultsSpan.removeChild(nbresultsSpan.firstChild); var newNbResults = document.createTextNode(cats.length); nbresultsSpan.appendChild(newNbResults); var sr_table = document.getElementById("sr_table"); while (sr_table.hasChildNodes()) { sr_table.removeChild(sr_table.firstChild); } document.getElementById('post').cat_r.value = ""; for (var i = 0; i < cats.length; i++) { var splitcat = new Array(); splitcat = cats[i].split('#'); var nbcat = splitcat.length / 4; var cur_url = ""; var cur_name = ""; var radio_val = ""; var cur_nbsites = ""; for (var j = nbcat; j > 0; j--) { cur_name += splitcat[(j*4)-1]; cur_url += splitcat[(j*4)-2]+"/"; if (j > 1) {cur_name += " > ";} else { radio_val = splitcat[(j*4)-4]; cur_nbsites = splitcat[(j*4)-3]; } } var newTR = document.createElement("tr"); var newTD = document.createElement("td"); var newRadio = document.createElement("input"); newTD.appendChild(newRadio); var newTxt = document.createTextNode(cur_name); var newLink = document.createElement("a"); newLink.appendChild(newTxt); newLink.setAttribute("href", "javascript:openCat('"+cur_url+"')"); newTD.appendChild(newLink); newTR.appendChild(newTD); sr_table.appendChild(newTR); newRadio.setAttribute("type", "radio"); newRadio.setAttribute("name", "searchcatsel"); newRadio.setAttribute("value", radio_val); newRadio.setAttribute("onclick", "setCat("+radio_val+", '"+addslashes(cur_name)+"')"); if (cur_nbsites > 1) {var newTxt = document.createTextNode(" ("+cur_nbsites+" sites)");} else {var newTxt = document.createTextNode(" ("+cur_nbsites+" site)");} var newSpan = document.createElement("span"); newSpan.appendChild(newTxt); newSpan.setAttribute("class", "nbsites"); newTD.appendChild(newSpan); document.getElementById("step1valider").style.display = ""; document.getElementById("sr_div").style.display = ""; document.getElementById("noresult").style.display = "none"; } } else { var nbresultsSpan = document.getElementById("nbresults"); nbresultsSpan.removeChild(nbresultsSpan.firstChild); var newNbResults = document.createTextNode("0"); nbresultsSpan.appendChild(newNbResults); document.getElementById("step1valider").style.display = "none"; document.getElementById("sr_div").style.display = "none"; document.getElementById("noresult").style.display = ""; } document.getElementById("searchresults").style.display = ""; } else { alert("Erreur : le serveur ne r\351pond pas ! Veuillez r\351essayer."); } document.getElementById("searchButton").disabled = ""; document.getElementById("searchprogress").style.display = "none"; } } function setCat(val, name) { if (val > 0) document.getElementById('post').cat_r.value = val; var catname = document.getElementById('catname'); catname.removeChild(catname.firstChild); var newTxt = document.createTextNode(name); catname.appendChild(newTxt); var subcat4 = document.getElementById("subcat4"); var divs = subcat4.getElementsByTagName("div"); for (var i = 0; i < divs.length; i++) { subcat4.removeChild(divs.item(i)); } } function getSubSub(http_request, lvl) { if (http_request.readyState == 4) { if (http_request.status == 200) { if (http_request.responseText != "") { var subcat4 = document.getElementById("subcat4"); var divs = subcat4.getElementsByTagName("div"); for (var i = lvl; i < divs.length; i++) { subcat4.removeChild(divs.item(i)); } if (http_request.responseText != "0") { var subcat = new Array(); subcat = http_request.responseText.split('|'); var nbsub = subcat.length / 2; var newDiv = document.createElement("div"); var newSelect = document.createElement("select"); newSelect.setAttribute("onchange", "setSubCat(this.value,"+lvl+")"); var newOption = document.createElement("option"); var newOptionTxt = document.createTextNode("---S\351lectionnez une sous-cat\351gorie---"); newOption.appendChild(newOptionTxt); newOption.setAttribute("value", "0"); newSelect.appendChild(newOption); for (var j = 0; j < nbsub; j++) { var newOption = document.createElement("option"); var newOptionTxt = document.createTextNode(subcat[(j*2)+1]); newOption.appendChild(newOptionTxt); newOption.setAttribute("value", subcat[j*2]); newSelect.appendChild(newOption); } newDiv.appendChild(newSelect); subcat4.appendChild(newDiv); subcat4.style.display = ""; } } else {alert("Erreur : le serveur ne r\351pond pas !");} document.getElementById("subcat3").style.display = "none"; } } } function getSub(http_request) { if (http_request.readyState == 4) { if (http_request.status == 200) { if (http_request.responseText != "") { var form = document.getElementById("post"); for (var i = form.subcat.options.length - 1; i > 0; i--) { form.subcat.options[i] = null; } if (http_request.responseText != "" && http_request.responseText != null) { if (http_request.responseText == "0") { document.getElementById("subcat1").style.display = ""; document.getElementById("subcat2").style.display = "none"; var form = document.getElementById("post"); for (var i = form.subcat.options.length - 1; i > 0; i--) { form.subcat.options[i] = null; } form.subcat.options[0] = new Option(" ", 0); } else { var subcat = new Array(); subcat = http_request.responseText.split('|'); var nbsub = subcat.length / 2; form.subcat.options[0] = new Option("---S\351lectionnez une sous-cat\351gorie---", 0); for (var j = 0; j < nbsub; j++) { form.subcat.options[j+1] = new Option(subcat[(j*2)+1], subcat[j*2]); } form.subcat.selectedIndex = 0; document.getElementById("subcat1").style.display = "none"; document.getElementById("subcat2").style.display = ""; } } else { document.getElementById("subcat1").style.display = ""; document.getElementById("subcat2").style.display = "none"; } document.getElementById("subcat3").style.display = "none"; } else {alert("Erreur : le serveur ne r\351pond pas !");} } } } function setSubCat(val, lvl) { var form = document.getElementById('post'); var subcatname = document.getElementById("subcat").options[document.getElementById("subcat").selectedIndex].text; var catname = document.getElementById("categorie").options[document.getElementById("categorie").selectedIndex].text; var full_name = catname+" > "+subcatname; if (val > 0) { form.cat_s.value = val; var subcat4 = document.getElementById("subcat4"); var divs = subcat4.getElementsByTagName("div"); for (var i = lvl + 1; i < divs.length; i++) { subcat4.removeChild(divs.item(i)); } if (lvl >= 0) { for (var i = 0; i < divs.length; i++) { var cur_name = divs.item(i).firstChild.options[divs.item(i).firstChild.selectedIndex].text; full_name += " > "+cur_name; } } var newTxt = document.createTextNode(full_name); var catnamespan = document.getElementById('catname'); catnamespan.removeChild(catnamespan.firstChild); catnamespan.appendChild(newTxt); document.getElementById("subcat3").style.display = ""; ajax(3,lvl); } else { if (lvl >= 0) { var subcat4 = document.getElementById("subcat4"); var divs = subcat4.getElementsByTagName("div"); for (var i = lvl; i < divs.length - 1; i++) { var cur_name = divs.item(i).firstChild.options[divs.item(i).firstChild.selectedIndex].text; var cur_value = divs.item(i).firstChild.options[divs.item(i).firstChild.selectedIndex].value; full_name += " > "+cur_name; } form.cat_s.value = cur_value; } else { form.cat_s.value = form.categorie.value; full_name = document.getElementById("categorie").options[document.getElementById("categorie").selectedIndex].text; var subcat4 = document.getElementById("subcat4"); var divs = subcat4.getElementsByTagName("div"); for (var i = 0; i < divs.length; i++) { subcat4.removeChild(divs.item(i)); } } var newTxt = document.createTextNode(full_name); var catnamespan = document.getElementById('catname'); catnamespan.removeChild(catnamespan.firstChild); catnamespan.appendChild(newTxt); } } function dispForm(val) { with (document) { var form = getElementById("post"); if (val == 2) { getElementById("catlist").style.display = ""; getElementById("searchcat").style.display = "none"; form.cat_s.value = ""; getElementById("searchresults").style.display = "none"; getElementById("scradio2").checked = "checked"; if (form.categorie.value > 0) { if (form.subcat.value > 0) {form.cat_s.value = form.subcat.value;} else {form.cat_s.value = form.categorie.value;} } } else { if (getElementById("nbresults").firstChild.nodeValue > 0) getElementById("searchresults").style.display = ""; getElementById("catlist").style.display = "none"; getElementById("searchcat").style.display = ""; } form.catseltype.value = val; } } function openCat(url) { window.open("http://www.sites-fr.info/categorie/"+url); } function go2step(val) { var form = document.getElementById('post'); if (val == 2) { var cur_method = form.catseltype.value; var step2 = 1; if ((cur_method == 1 && form.cat_r.value == "") || (cur_method == 2 && form.cat_s.value == "")) {alert("Veuillez s\351lectionner une cat\351gorie."); step2 = 0;} else if (cur_method == 2) {form.cat_r.value = form.cat_s.value;} if (step2 == 1) { document.getElementById("step1").style.display = "none"; document.getElementById("step2").style.display = ""; var stepnum = document.getElementById("regstep"); stepnum.removeChild(stepnum.firstChild); var newTxt = document.createTextNode(val); stepnum.appendChild(newTxt); document.getElementById("searchresults").style.display = "none"; } } else if (val == 1) { document.getElementById("step1").style.display = ""; document.getElementById("step2").style.display = "none"; var stepnum = document.getElementById("regstep"); stepnum.removeChild(stepnum.firstChild); var newTxt = document.createTextNode(val); stepnum.appendChild(newTxt); if (form.catseltype.value == 1) document.getElementById("searchresults").style.display = ""; } } function countChars() { var txt = document.getElementById('post').description; var cur_length = txt.value.length; var nbchars = document.getElementById("nbchars"); var charsleft = 250 - cur_length; if (charsleft <= 0) {charsleft = 0; txt.value = txt.value.substr(0,250);} if (charsleft < 10) {nbchars.style.color = "red";} else {nbchars.style.color = "";} if (charsleft > 1) {charsleft += " caract\350res maximum";} else {charsleft += " caract\350re maximum";} nbchars.removeChild(nbchars.firstChild); var newTxt = document.createTextNode(charsleft); nbchars.appendChild(newTxt); } function formSubmit() { var form = document.getElementById("post"); if (form.titre.value == '' || form.url.value.length < 8 || form.description.value == '' || form.email.value == '' || form.code.value.length < 7) {alert("Veuillez remplir tous les champs.");} else if (emailCheck() == false) {alert("Votre adresse e-mail n'est pas valide.");} else {form.submit();} } function emailCheck() { var email = document.getElementById("post").email.value; var reg = /[^@]{1,64}@[^@]{1,255}/; if (!reg.test(email)) {return false;} var email_array = email.split('@'); var local_array = email_array[0].split('.'); reg = /^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/; for (var i = 0; i < local_array.length; i++) {if (!reg.test(local_array[i])) {return false;}} reg = /^\[?[0-9\.]+\]?$/; if (!reg.test(email_array[1])) { var domain_array = email_array[1].split('.'); if (domain_array.length < 2) {return false;} reg = /^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/; for (i = 0; i < domain_array.length; i++) {if (!reg.test(domain_array[i])) {return false;}} } return true; }