1function createFlexitForms(selecteur) { 2 flexitForms = selecteur; 3 for(i = 0; i < flexitForms.length; i++) { 4 5 // Vérification d'un formulaire déjà traité, 6 // on break tout si c'est le cas. 7 if(flexitForms[i].getElements('.ffFieldParent').length > 0) { 8 //break; // joe 9 } 10 11 // Sinon je continue 12 var classForm = flexitForms[i].get('class'); 13 var regClassesForm = new RegExp("[ ]+", "g"); 14 var allClassesForm = classForm.split(regClassesForm); 15 16 for(h = 0; h < allClassesForm.length; h++) { 17 var regSkin = new RegExp("[ffSkin_]","g"); 18 if(allClassesForm[h].match(regSkin)) { 19 var idSkin = allClassesForm[h].substr(7, allClassesForm[h].length); 20 } 21 } 22 23 // Vérification si on est en mode bootstrap. 24 // Si c'est le cas, on ignore la création des champs personnalisés 25 if( flexitForms[i].hasClass('flexitform-bootstrap') /*&& !window.MooTools*/) { break; } 26 27 // Vérification que le formulaire possède bien une skin, 28 // on break si il y en a pas. 29 if(!idSkin) { 30 break; 31 } 32 33 // Puis je traite tous les champs récupérés 34 flexitFormFields = flexitForms[i].getElements('input, textarea, select'); 35 36 for(j = 0; j < flexitFormFields.length; j++) { 37 if(flexitFormFields[j].hasClass("flexitFormsOk") || flexitFormFields[j].getStyle('display')=='none' || (flexitFormFields[j].get('tag') == 'input' && flexitFormFields[j].get('type')=='file'))continue; 38 39 flexitFormFields[j].addClass("flexitFormsOk"); 40 41 var classElement = flexitFormFields[j].get('class'); 42 var isError = false; 43 if(flexitFormFields[j].hasClass('ffError')) { 44 isError = true; 45 } 46 var isRequired = false; 47 if(flexitFormFields[j].hasClass('ffRequired')) { 48 isRequired = true; 49 } 50 51 // R�cup�ration des param�tres du champs 52 var tagElement = flexitFormFields[j].get('tag'); 53 var typeElement = flexitFormFields[j].get('type'); 54 var valueElement = flexitFormFields[j].get('value'); 55 var nameElement = flexitFormFields[j].get('name'); 56 var idElement = flexitFormFields[j].get('id'); 57 var classElement = flexitFormFields[j].get("style"); 58 var widthElement = ""; 59 60 61 62 //if(classElement && classElement.contains("width")) { 63 if(Browser.Engine.trident && Browser.version < 9 && flexitFormFields[j].get('style')){ 64 if(ereg("WIDTH",flexitFormFields[j].get('style')))var widthElement = flexitFormFields[j].getStyle('width'); 65 } else if(classElement && classElement.contains("width")) { 66 var widthElement = flexitFormFields[j].getStyle('width'); 67 } 68 69 if(typeElement != "checkbox" && typeElement != "radio" && typeElement != "image" && typeElement != "hidden" ) { 70 // Coins ou pas 71 var cornerCheck = false; 72 if( window.MooTools ) { 73 cornerCheck = new Fx.CSS().search('.ffSkin_'+idSkin+' .hasCorners'); 74 } 75 76 // Création de la structure du code 77 var fieldParent = new Element("span", { "class": "ffFieldParent" }); 78 var fieldContent = new Element("span", { "class": "ffContent" }); 79 80 if(cornerCheck && cornerCheck.width) { 81 var fieldTop = new Element("span", { "class": "ffHeader", "html": "<span> </span>" }); 82 var fieldBottom = new Element("span", { "class": "ffFooter", "html": "<span> </span>" }); 83 var fieldContentWrapper = new Element("span"); 84 } 85 86 // Le champs est en erreur de saisie 87 if(isError) { 88 fieldParent.addClass("flexitFormError"); 89 } 90 91 // Le champs est requis 92 if(isRequired) { 93 fieldParent.addClass("flexitFormRequired"); 94 } 95 96 // Events, tous sauf IE, sinon problèmes sur les focus. 97 if(!Browser.Engine.trident) { 98 //flexitFormFields[j].set({"events": {"focus": function(){ $(this).getParent("span.ffFieldParent").addClass('flexitFormFocus'); }, "blur": function(){ $(this).getParent("span.ffFieldParent").removeClass('flexitFormFocus'); } }}); 99 if( window.MooTools ) { 100 flexitFormFields[j].addEvent('focus', function() { 101 fmoo.$(this).getParent("span.ffFieldParent").addClass('flexitFormFocus'); 102 }); 103 flexitFormFields[j].addEvent('blur', function() { 104 fmoo.$(this).getParent("span.ffFieldParent").removeClass('flexitFormFocus'); 105 }); 106 } 107 } 108 109 // Injection enfants => parents 110 if(cornerCheck && cornerCheck.width) { 111 112 fieldContentWrapper.wraps(flexitFormFields[j]); 113 fieldContent.wraps(fieldContentWrapper); 114 fieldParent.wraps(fieldContent); 115 fieldTop.inject(fieldContent,"before"); 116 fieldBottom.inject(fieldContent,"after"); 117 118 } else { 119 if( window.MooTools ) { 120 fieldContent.wraps(flexitFormFields[j]); 121 fieldParent.wraps(fieldContent); 122 } 123 124 } 125 126 // Je fixe les tailles ( pour IE, compatibilité quand tu nous tiens ). 127 if(widthElement && typeElement != "submit") { 128 if(fieldParent.getSize().x > widthElement.toInt()) { 129 130 if(cornerCheck && cornerCheck.width) { 131 paddingleftCW = fieldContentWrapper.getStyle("padding-left").toInt(); 132 paddingrightCW = fieldContentWrapper.getStyle("padding-right").toInt(); 133 134 difSizeParent = fieldParent.getSize().x - ( fieldContentWrapper.getSize().x - (paddingleftCW + paddingrightCW)); 135 finalSizeElement = widthElement.toInt() + difSizeParent; 136 fieldParent.setStyle("width",finalSizeElement+"px"); 137 } else { 138 if( window.MooTools ) { 139 paddingleftCW = fieldContent.getStyle("padding-left").toInt(); 140 paddingrightCW = fieldContent.getStyle("padding-right").toInt(); 141 142 difSizeParent = fieldParent.getSize().x - ( fieldContent.getSize().x - (paddingleftCW + paddingrightCW)); 143 finalSizeElement = widthElement.toInt() + difSizeParent; 144 fieldParent.setStyle("width",finalSizeElement+"px"); 145 } 146 } 147 148 } 149 150 } else if(typeElement != "submit") { 151 fieldParent.setStyle("width","100%"); 152 } else if(typeElement == "submit") { 153 flexitFormFields[j].setStyle("width","auto"); 154 flexitFormFields[j].addClass("ffBtnSubmit"); 155 if(cornerCheck && cornerCheck.width) { 156 paddingleftCW = fieldContentWrapper.getStyle("padding-left").toInt(); 157 paddingrightCW = fieldContentWrapper.getStyle("padding-right").toInt(); 158 159 difSizeParent = fieldParent.getSize().x - ( fieldContentWrapper.getSize().x - (paddingleftCW + paddingrightCW)); 160 finalSizeElement = flexitFormFields[j].getSize().x + difSizeParent; 161 162 if(flexitFormFields[j].getSize().x>0)fieldParent.setStyle("width",finalSizeElement+"px"); 163 } else { 164 if( window.MooTools ) { 165 paddingleftCW = fieldContent.getStyle("padding-left").toInt(); 166 paddingrightCW = fieldContent.getStyle("padding-right").toInt(); 167 168 difSizeParent = fieldParent.getSize().x - ( fieldContent.getSize().x - (paddingleftCW + paddingrightCW)); 169 finalSizeElement = flexitFormFields[j].getSize().x + difSizeParent; 170 fieldParent.setStyle("width",finalSizeElement+"px"); 171 } 172 } 173 174 } 175 176 } else if(typeElement == "checkbox") { 177 var fieldParent = new Element("span", { "class": "ffFieldParent ffFieldTypeCheckbox" }); 178 var fieldMask = new Element("div", { "class": "ffCheckBox" }); 179
180 // Le champs est-il déjà coché ? 181 if(flexitFormFields[j].getProperty("checked")) { 182 fieldMask.addClass("ffItemChecked"); 183 } 184 185 // On cache le champ original et on dégage bordure et fond du parent 186 if( idSkin != 5 ) { 187 flexitFormFields[j].setStyles({"width": "auto", "position":"absolute", "left":"0", "top":"2px", "opacity": 0.01, "z-index": 10, "cursor": "pointer"}); 188 } 189 if(Browser.Engine.trident) { 190 flexitFormFields[j].setStyle("filter","alpha(opacity=1)"); 191 } 192 fieldParent.setStyles({"background": "none", "border": "none" }); 193 194 // Le champs est en erreur de saisie 195 if(isError) { 196 fieldParent.addClass("flexitFormError"); 197 } 198 199 flexitFormFields[j].addEvent('click', function() { 200 if(fmoo.$(this).getProperty("checked")) { 201 fmoo.$(this).getNext("div.ffCheckBox").addClass("ffItemChecked"); 202 } else { 203 fmoo.$(this).getNext("div.ffCheckBox").removeClass("ffItemChecked"); 204 } 205 }); 206 207 fieldParent.wraps(flexitFormFields[j]); 208 fieldMask.inject(flexitFormFields[j], "after"); 209 210 } else if(typeElement == "radio") { 211 var fieldParent = new Element("span", { "class": "ffFieldParent ffFieldTypeCheckbox" }); 212 var fieldMask = new Element("div", { "class": "ffRadio" }); 213 214 // Le champs est-il déjà coché ? 215 if(flexitFormFields[j].getProperty("checked")) { 216 fieldMask.addClass("ffItemChecked"); 217 } 218 219 // On cache le champ original et on dégage bordure et fond du parent 220 flexitFormFields[j].setStyles({"width": "auto", "position":"absolute", "left":"0", "top":"2px", "opacity": 0.1, "z-index": 10, "cursor": "pointer"}); 221 if(Browser.Engine.trident) { 222 flexitFormFields[j].setStyle("filter","alpha(opacity=1)"); 223 } 224 fieldParent.setStyles({"background": "none", "border": "none" }); 225 226 // Le champs est en erreur de saisie 227 if(isError) { 228 fieldParent.addClass("flexitFormError"); 229 } 230 231 flexitFormFields[j].addEvent('click', function() { 232 this.getParent('table').getElements('div.ffRadio').removeClass("ffItemChecked"); 233 this.getParent('.ffFieldTypeCheckbox').getElement('div.ffRadio').addClass("ffItemChecked"); 234 }); 235 236 fieldParent.wraps(flexitFormFields[j]); 237 fieldMask.inject(flexitFormFields[j], "after"); 238 239 } 240 241 flexitFormFields[j].removeClass("ffSkin_"+idSkin); 242 } 243 } 244} 245 246function createFlexitFormNotes( parentElem ) { 247 // gestion des Etoile (notations) 248 if( !parentElem ) { 249 flexitFormFields = fmoo.$$('span.ffFieldetoile'); 250 } else { 251 flexitFormFields = fmoo.$$(parentElem + ' span.ffFieldetoile'); 252 } 253 254 for(j = 0; j < flexitFormFields.length; j++) { 255 flexitFormFields[j].getElements('a').addEvent('click', function() { 256 this.getParent('span.ffFieldetoile').getElement('input').set('value',this.get('rel')); 257 }); 258 259 flexitFormFields[j].getElements('a').addEvent('mouseover', function(elem) { 260 flexitform_roll_item(this,'span.ffFieldetoile','on'); 261 }); 262 263 flexitFormFields[j].getElements('a').addEvent('mouseout', function() { 264 flexitform_roll_item(this,'span.ffFieldetoile','out'); 265 }); 266 } 267} 268 269window.addEvent('domready', function() { 270 setTimeout("createFlexitForms(fmoo.$$('.flexitform')); createFlexitFormNotes();","500"); 271});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.