à tous !

j'essaye de faire un double slider en javascript et n'ayant pas pu adapté les scripts tout fait que j'ai trouvé je me suis lancé dans le codage à la main de ce petit slider...

j'utilise prototype pour me facilité la tache :

Tout fonctionne parfaitement sous Firefox ainsi que sous Safari, mais sous IE j'obtiens une erreur (très bien décrite par le navigateur ...)
qui me dit : Demande d'acces à la méthode ou à la propriété inattendue...
et je ne vois pas trop ou est le bug, parce qu'il me semble que le code que j'ai fait est compatible...

Bref je vous met le code, si quelqu'un à une idée...

code php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
	<div id="price"><h1><?php echo tep_image(DIR_WS_IMAGES.'moteur_recherche_autre4_07.jpg'); ?>Prix</h1>
			<input type="text" name="prixmin" id="prixmin"  size="3" maxlength="3">
			<input type="text" name="prixmax" id="prixmax"  size="3" maxlength="3">
			<div id="slide" class="slide">
				<?php echo tep_image(DIR_WS_IMAGES.'buttons/trianglehaut.gif',null,'20','20','id="min" class="knob"'); ?>
				<?php echo tep_image(DIR_WS_IMAGES.'buttons/barre.gif',null,'180','','id="barreslide"'); ?>
				<?php echo tep_image(DIR_WS_IMAGES.'buttons/trianglebas.gif',null,'20','20','id="max" class="knob"'); ?>
			</div>
		</div>
le code javascript :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
 
var domain = 'localhost/www';
	var domain2 = getDomain(document.location.href);
	var cible = '/try.php';//'/advanced_ajax_result.php';
	var slidearrow = 0; //le curseur sélectionner
	var width = 180;//largeur du la barre
	var mininitpos = getOffsetPosition('min', "Left"); //position initiale du curseur min
	var maxinitpos = getOffsetPosition('max', "Left");//position initiale du curseur max
	var arrow_deplacee_difx = 0;
	var maxprice = 4.00;
 
 
 
	window.onload = function()
	{
		if(LireCookie('javas')==null) // JAVASCRIPT DETECTION
			{EcrireCookie('javas','ok');}
		$('min').observe('mousedown', function (event){commencer_deplacement(event,$('min'))});
		$('min').observe('mouseup', arreter_deplacement);
		$('max').observe('mousedown', function (event){commencer_deplacement(event,$('max'))});
		$('max').observe('mouseup', arreter_deplacement);
		document.observe('mousemove', function(event){deplacer_arrow(event)});
		document.observe('click',function(event){if (slidearrow!= 0 )arreter_deplacement;});
 
	}
 
	/*
	Récupère la position réelle d'un objet dans la page (en tenant compte de tous ses parents)
	IN 	: Obj => id de l'element ; Prop => Offset voulu (Top,Left,Bottom,Right)
	OUT	: Numérique => position réelle d'un objet sur la page.
	*/
	 function getOffsetPosition(id, side){
		 element = document.getElementById(id);
 
		 newNode = document.createElement("div");
		 newNode.innerHTML = "<div style=\"height: 12px;\"></div>";
		 element.insertBefore(newNode, element.firstChild);
 
		 iVal = 0;
		 oObj = element;
		 var sType = "oObj.offset"+side;
		 while (oObj && oObj.tagName != "html") {
			 iVal += eval(sType);
			 oObj = oObj.offsetParent;
		 }
		 element.removeChild(newNode);
		 return iVal;
	 }
 
	/**
	*	fonction appellé quand on clique sur l'un des 2 curseurs
	**/
	function commencer_deplacement(ev,arrow) {
	        slidearrow = arrow; //la variable pointe désormais sur la fleche à déplacer
	        old_mouseCoords=mouseCoords(ev); //On récupère la position de la souris
    		old_windowCoords=getPosition(arrow); //Et la position de notre fleche
    		arrow_deplacee_difx=old_mouseCoords.x-old_windowCoords.x;
 
	}
 
	/**
	* detache le curseur actuel en affectant la var slidearrow
	**/
	function arreter_deplacement() {
	         slidearrow = 0; //La variable vaut 0
	}
 
	/**
	* Renvoie l'abscisse de la souris
	**/
	function mouseCoords(ev)
	{
        if(ev.pageX)
		{
				return {x:ev.pageX};
        }
        return
		{
                x:ev.clientX + document.body.scrollLeft - document.body.clientLeft
        };
	}
 
 
	function getPosition(e)
	{
	        var left = 0;
	        while (e.offsetParent)
			{
	                left += e.offsetLeft;
	                e     = e.offsetParent;
	        }
	        left += e.offsetLeft;
	        return {x:left};
	}
 
	/**
	 *retourne la valeur numérique d'un champ contenant un nombre et une unité
	 * example 125px retourne 125
	 * @access public
	 * @return void
	 **/
	function getleftstyleValue(champ,unite){
		return champ.substr(0,champ.length-unite.length);
	}
 
	/**
	* fonction qui deplace le curseur attaché, gère la largeur de la barre ainsi
	* que la collision (comme j'ai pu)...
	**/
	function deplacer_arrow(ev)
	{
        if(slidearrow!=0)
		{
        	if (slidearrow==$('min')) // si on bouge la fleche du minimum
			{
        		var souris=mouseCoords(ev);
                        if (souris.x>=mininitpos && souris.x<=(mininitpos+width)) {
                	var nouvelle_position = souris.x-arrow_deplacee_difx-mininitpos;
                	slidearrow.style.left=(nouvelle_position)+'px';
                	if (getleftstyleValue($('max').style.left,'px')>nouvelle_position) {
                		document.search_tools.prixmin.value = Math.abs((nouvelle_position*maxprice)/(width));
                	}
                	else
                	{
                		document.search_tools.prixmax.value = Math.abs((nouvelle_position*maxprice)/(width));
                	}
 
				}
        	}
			else if (slidearrow==$('max')) // si on bouge la fleche du maximum
			{
        		var souris=mouseCoords(ev);
                if (souris.x>=maxinitpos && souris.x<=(maxinitpos+width)) {
                	var nouvelle_position = souris.x-arrow_deplacee_difx-maxinitpos;
                	slidearrow.style.left=(nouvelle_position)+'px';
                	if (getleftstyleValue($('min').style.left,'px')>nouvelle_position) // si on est au dessous de l'autre curseur
					{
						//on modifie le champ prix minimum
						document.search_tools.prixmin.value = Math.abs((nouvelle_position*maxprice)/(width));
                	}
                	else // si on est au dessus c'est le champ prix max que l'on modifie
                	{
 
                		document.search_tools.prixmax.value = Math.abs((nouvelle_position*maxprice)/(width));
                	}
				}
        	}
    	}
	}

De plus, je n'arrive pas à obtenir un Drag n Drop , lorsqu'on clique sur le curseur et qu'on essaye de le déplacer en restant "clické" j'ai l'impression que le navigateur pense que l'on veut déplacer l'image et du coup il affiche le signe sens interdit... (peut etre me suis-je trompé au niveau des évenement)

Merci d'avance pour votre aide