| | function ordre (a,b){return a-b}
function sudoku(){
var l=new Array();
var c=new Array();
var zon=new Array();
for(i=0;i<9;i++){
l[i]=new Array();
c[i]=new Array();
zon[i]=new Array();
}
var tour=0;
for(i=0;i<9;i++){
for(j=0;j<9;j++){
if(i<3 && j<3){cas=0}
if(i<3 && j>2 && j<6){cas=1}
if(i<3 && j>5){cas=2}
if(i>2 && i<6 && j<3){cas=3}
if(i>2 && i<6 && j>2 && j<6){cas=4}
if(i>2 && i<6 && j>5){cas=5}
if(i>5 && j<3){cas=6}
if(i>5 && j>2 && j<6){cas=7}
if(i>5 && j>5){cas=8}
var choix="123456789";
var chainel=l[i].join('');
var chainec=c[j].join('');
var chainez=zon[cas].join('');
var choix2=chainel+chainec;
choix2=choix2.split('');
choix2.sort(ordre);
choix2=choix2.join('');
for(k=1;k<choix2.length;k++){
if(choix2.charAt(k)==choix2.charAt(k-1)){
choix2=choix2.replace(choix2.charAt(k),"");
}
};
var choix3=choix2+chainez;
choix3=choix3.split('');
choix3.sort(ordre);
choix3=choix3.join('');
for(k=1;k<choix3.length;k++){
if(choix3.charAt(k)==choix3.charAt(k-1)){
choix3=choix3.replace(choix3.charAt(k),"");
}
};
var lng=choix.length;
for(k=0;k<lng;k++){
for(z=0;z<choix3.length;z++){
if(choix.charAt(k)==choix3.charAt(z)){
choix=choix.replace(choix3.charAt(z),"");
}
};
};
var h=Math.floor(Math.random()*choix.length);
l[i].push(choix.charAt(h));
c[j].push(choix.charAt(h));
zon[cas].push(choix.charAt(h));
}
if(!/^\d{9}$/.test(l[i].join(''))){
if(tour<20){
tour++
}
else{
break
};
l[i].splice(0,9);
for(w=0;w<9;w++){
c[w].pop();
};
for(w=0;w<3;w++){
zon[cas].pop();
zon[cas-1].pop();
zon[cas-2].pop();
};
i--;
}
};
if(zon[8].length==9){
alert(l.join().replace(/,/g,"").replace(/(\d{9})/g,"$1\n"))
}
else{
sudoku()
}
}
sudoku() |
|
Auteur : siddh
| Version : 04/01/2006 | | |
| |
Ce script permet de gérer des "pages".
Quand vous avez une page avec du scroll, ca va calculer combien de pages vous pouvez afficher dans la partie visible de votre browser et mettre des liens ainsi que le Page x/y.
Ca fonctionne sur ie et firefox, j'ai pas testé les autres.
<html>
<head>
<title> Multipages </title>
<style type='text/css' media="screen">
#menuPages{
position: fixed !important;
position: absolute;
z-index: 1000;
}
#menuPages ul{
display: inline;
}
#menuPages li{
list-style-type: none;
display: inline;
margin: 10px;
}
#menuPages a{
text-decoration: none;
}
.numPages{
}
</style>
<script type='text/javascript'>
window.onload = function(){
var vis,wid
d = document.getElementById('toto');
if(self.innerHeight){
wid =self.innerWidth;
vis =self.innerHeight;
}
else if (document.documentElement && document.documentElement.clientHeight){
wid = document.documentElement.clientWidth;
vis = document.documentElement.clientHeight;
}
else if (document.body){
wid = document.documentElement.scrollWidth;
vis = document.documentElement.scrollHeight;
}
haut = document.body.scrollHeight;
nbPages = Math.round(haut/vis);
menu = document.createElement("ul");
thediv = document.createElement("div");
thediv.id = "menuPages";
thediv.style.top = "0px";
thediv.style.left = "0px";
for(i=0;i<nbPages;i++){
pos = 0+i*vis;
page = i+1;
sp = document.createElement("span");
sp.appendChild(document.createTextNode("Page "+page+"/"+nbPages));
sp.style.position = "absolute";
sp.style.top = String(pos+vis-25)+"px";
sp.style.left= String(wid-100)+"px";
sp.className = "numPages";
document.body.appendChild(sp);
mitem = document.createElement("li");
lien = document.createElement("a");
lien.href="#";
lien.name= String(pos);
lien.onclick = function(){
document.body.scrollTop = parseInt(this.name);
return false;
}
lien.appendChild(document.createTextNode(String(page)));
mitem.appendChild(lien);
menu.appendChild(mitem);
}
thediv.appendChild(document.createTextNode("Pages : "));
thediv.appendChild(menu);
document.body.appendChild(thediv);
window.onscroll = function(){
document.getElementById('menuPages').style.top = document.body.scrollTop + "px";
}
}
</script>
</head>
<body>
<div id='toto' style='height: 2500px'></div>
</body>
</html> |
|
| | <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Calendrier</title>
<style type="text/css">
body {margin:0px}
#af {margin-left:auto;margin-right:auto;text-align:center}
#af1, #af2 {clear:left;text-align:center;font-weight:bold;font-size:15px}
strong {color:#ffff00;margin-left:auto;margin-right:auto;
width:100px;background-color:#000000;font-size:25px;border:2px solid white}
h1 {padding:0px;margin:0px;width:100px;color:#000000;background-color:#ff0000;font-size:20px}
.mois {margin-top:15px;padding:0px;border:1px solid #ffffff;width:100px;float:left;}
</style>
<script type="text/javascript">
var s=['dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi'];
var moi=['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];
var aff, aff1, aff2, an, mois, jour, boucle, mo, d1, it, sem;
var today=new Date();
var a=today.getUTCFullYear();
var today2=Date.UTC(a,today.getUTCMonth(),today.getUTCDate());
function calendrier(){
if(a>=1970 && a<=2030){
document.getElementById("af3").firstChild.data=a
}
else{
alert("année invalide");document.getElementById("choix").value="";return false;
};
document.getElementById("af1").style.marginLeft=(screen.availWidth - 612) /2;
document.getElementById("af2").style.marginLeft=(screen.availWidth - 612) /2;
while(document.getElementById("af1").lastChild){
document.getElementById("af1").removeChild(document.getElementById("af1").lastChild)
};
while(document.getElementById("af2").lastChild){
document.getElementById("af2").removeChild(document.getElementById("af2").lastChild)
};
for(k=0;k!=12;k++){
sem=0;
mois=document.createElement("div");mois.className="mois";
mo=document.createElement("h1");mo.appendChild(document.createTextNode(moi[k]));
mois.appendChild(mo);
d1=Date.UTC(a,k,1);
for(i=0;i!=31;i++){
it=document.createElement("div");it.style.backgroundColor="gray";it.style.width="100px";
boucle=new Date(d1+1000*3600*24*i);
if(Date.parse(boucle)==today2){it.style.backgroundColor="#ffff00"};
it.prop=s[boucle.getUTCDay()]+" "+boucle.getUTCDate()+" "+moi[k]+" "+a;
it.bckg=it.style.backgroundColor;
if(boucle.getUTCMonth()==k){
jour=document.createTextNode(s[boucle.getUTCDay()].substring(0,3)+' '+boucle.getUTCDate());
it.onmouseover=function(){this.style.backgroundColor="#ffffff";this.title=this.prop};
it.onmouseout=function(){this.style.backgroundColor=this.bckg};
}
else {
it.style.color="gray";jour=document.createTextNode(".")
};
it.appendChild(jour);
if(it.firstChild.data.substring(0,3)=="dim"){sem++;it.style.borderBottom="2px solid #ffff00"};
mois.appendChild(it);
};
if(sem==4){
plus=document.createElement("div");
plus.style.cssText="font-size:0px;background-color:gray;height:2px;width:100px";
mois.appendChild(plus);
};
if(k<6){document.getElementById("af1").appendChild(mois)}else{document.getElementById("af2").appendChild(mois)}
}
}
</script>
</head>
<body onload="calendrier()">
<div>
<div id="af">
<p style="padding-top:20px">
<input type="button" value="année précédente" onclick="if(a>1970){a-=1;calendrier()}" />
<strong id="af3">?</strong>
<input type="button" value="année suivante" onclick="if(a<2030){a++;calendrier()}" />
</p>
<p>
<label for="choix" style="font-weight:bold">saisir directement une année, entre 1970 et 2030</label><br />
<input type="text" size="2" maxlength="4" id="choix" />
<input type="button" value="ok" onclick="a=this.previousSibling.value;calendrier()" />
<div id="af1"></div>
<div id="af2"></div>
</div>
</div>
</body>
</html> |
|
Auteur : siddh
| Version : 11/01/2006 | | |
| | Ce script permet de faire défiler les colonnes d'une Table.
Ici elle est générée en PHP pour que le script soit moins long.
<script type='text/javascript'>
var nbCols = 10;
var startPos = 0;
var maxCols = 0;
function decoupeTable(idtable){
var tble = document.getElementById(idtable);
var nav = document.createElement("div");
var tb = tble.getElementsByTagName("tbody")[0];
var lig = tble.getElementsByTagName("tr");
var next = document.createElement("input");
var prev = document.createElement("input");
next.type = "button";
next.value = ">";
next.onclick = function(){
if(startPos+nbCols != maxCols){
for(var i=0;i<lig.length;i++){
lig[i].childNodes[startPos].style.display = "none";
lig[i].childNodes[startPos+nbCols].style.display = "";
}
startPos++;
}
}
prev.type = "button";
prev.value = "<";
prev.onclick = function(){
if(startPos != 0){
startPos--;
for(var i=0;i<lig.length;i++){
lig[i].childNodes[startPos].style.display = "";
lig[i].childNodes[startPos+nbCols].style.display = "none";
}
}
}
nav.appendChild(prev);
nav.appendChild(next);
tble.parentNode.insertBefore(nav,tble);
maxCols = lig[0].childNodes.length;
for(var i=0;i<lig.length;i++){
var cells = lig[i].childNodes;
for(var j=nbCols;j<maxCols;j++){
cells[j].style.display = "none";
}
}
}
window.onload = function(){
decoupeTable('matable');
}
</script>
<div id='stpos'></div>
<?
echo "<table id='matable' border='1'>
<tbody>";
for($i=0;$i<5;$i++){
echo "<tr>";
for($j=0;$j<50;$j++)
echo "<td>",$i," ",$j,"</td>";
echo "</tr>";
}
echo "</tbody>
</table>";
?> |
|
Auteur : siddh
| Version : 13/01/2006 | | |
| | html>
<head>
<title>typewriter</title>
<script type='text/javascript'>
var letexte = 'Du texte a écrire';
var montimer;
var cmpt = 0;
function typewriter(){
lelien = document.getElementById('lien');
if(cmpt < letexte.length){
courant = lelien.innerHTML.substring(0, lelien.innerHTML.length -1);
courant += letexte.charAt(cmpt)+"_";
lelien.innerHTML = courant;
}
else{
lelien.innerHTML = "";
cmpt = -1;
}
cmpt++;
setTimeout("typewriter()",100);
}
window.onload = function(){
typewriter();
}
</script>
</head>
<body>
<a href="#" id="lien" style="text-decoration: none;"></a>
</body>
</html> |
|
Auteur : siddh
| Version : 15/01/2006 | | |
| |
Pour pouvoir tester si on est connecté, il faut utiliser un fichier à mettre quelque part sur internet dans un endroit dont on es sûr qu'il sera toujours accessible.
Voici le contenu du fichier :
<html>
<head>
<title> mon titre </title>
</head>
<body>
<script type='text/javascript'>
if(window.parent)
window.parent.connTester.connectedStatuts = true;
</script>
</body>
</html> |
Ensuite, dans la page où vous voulez tester la connection :
<html>
<head>
<title> mon titre </title>
<script type='text/javascript'>
var connectStatus = false;
function TestConnect(){
this.adresse = "http://localhost/tests/connectOk.html";
this.connectedStatuts = false;
this.test = function(){
this.ifr = document.createElement("iframe");
this.ifr.id = 'moniframe';
this.ifr.style.display = 'none';
document.body.appendChild(this.ifr);
this.ifr.src = this.adresse;
this.ifr.onload = function() {
if(!window.connTester.connectedStatuts)
window.connTester.notConnected();
else
window.connTester.connected();
setTimeout("window.connTester.removeFrame()",1000);
}
}
this.removeFrame = function(){
document.body.removeChild(this.ifr);
}
}
TestConnect.prototype = {
notConnected:
function(){
/**
* Cette fonction ne sera exécuté que
* si il n'accède pas à l'autre page
*/
alert('pas connecté');
}
,
connected:
function(){
/**
* Cette fonction ne sera exécuté que
* si il accède à l'autre page
*/
alert('connecté');
}
}
window.connTester = new TestConnect();
</script>
</head>
<body>
<input type='button' name='' id='a' value='test' onclick='window.connTester.test()' />
</body>
</html> |
|
Auteur : siddh
| Version : 15/01/2006 | | |
| | <style type='text/css'>
#mondiv{
background: red;
}
</style>
<script type='text/javascript'>
function getRuleIndex(name){
var cmpt = 0;
var index = 0;
var tab = null;
var good = false;
while(index<document.styleSheets.length && !good){
tab = document.all ? document.styleSheets[index].rules : document.styleSheets[index].cssRules;
while(cmpt<tab.length && !good){
if(tab[cmpt].selectorText.toLowerCase() != name)
good = true;
cmpt++;
}
index++;
}
return {sheetIndex:index-1,ruleIndex:cmpt-1};
}
function changeRule(selector,cssText){
infos = getRuleIndex(selector);
sheet = document.styleSheets[infos.sheetIndex];
if(document.all){
sheet.removeRule(infos.ruleIndex);
sheet.addRule(selector,cssText);
}
else{
sheet.deleteRule(infos.ruleIndex);
sheet.insertRule(selector+"{"+cssText+"}", sheet.cssRules.length);
}
}
</script>
<div id='mondiv'>
bla bla
</div>
<input type='button' onclick='changeRule("#mondiv","background-color:green")' value='changer' /> |
|
|