document.extend = function(destination, source) { for (property in source) destination[property] = source[property]; return destination; }; document.getElement = function (name){return document.getElementById ? document.getElementById(name) : document.all ? document.all(name) : null;}; document.getObject = document.getElement; var $ = function (element){ if (typeof element == 'string') return document.getElement(element); else if (typeof element == 'object') return element; else return null; }; var Try = { these: function() { var returnValue; for (var i = 0, length = arguments.length; i < length; i++) { var lambda = arguments[i]; try { returnValue = lambda(); break; } catch (e) {} }; return returnValue; } }; document.getDocumentElement = function () { return this.documentElement; }; document.selectDropMenuByVal = function(dropmenu,value){ if( typeof(dropmenu) == 'object' ) dropObject = dropmenu; else dropObject = document.getElement(dropmenu); try{ dropLength = dropObject.options.length; }catch(e){ alert('selectDropMenuByVal:\ninvalid target control \'' + dropmenu + '\''); return; } for( counter = 0; counter < dropLength; ++counter ){ if(dropObject.options[counter].value == value){ dropObject.selectedIndex = counter; return; } } }; document.writeCss = function(src){ lnk = '<l'+'ink type="text/css" rel="stylesheet" href="'+src+'" /'+'>'; document.write(lnk); }; document.resizeToContent = function(move) { pSize = document.getPageSize(); window.resizeBy(pSize[0]-pSize[2], pSize[1]-pSize[3]); if(move!==undefined){ x = parseInt(screen.width / 2.0) - (pSize[0] / 2.0); y = parseInt(screen.height / 2.0) - (pSize[1] / 2.0); window.moveTo(x, y); } }; document.getPageSize = function() { var xScroll, yScroll; if (window.innerHeight && window.scrollMaxY) { xScroll = document.body.scrollWidth; yScroll = window.innerHeight + window.scrollMaxY; } else if (document.body.scrollHeight > document.body.offsetHeight){ xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; } else { xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; } var windowWidth, windowHeight; if (self.innerHeight) { windowWidth = self.innerWidth; windowHeight = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight; } else if (document.body) { windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight; } if(yScroll < windowHeight){ pageHeight = windowHeight; } else { pageHeight = yScroll; } if(xScroll < windowWidth){ pageWidth = windowWidth; } else { pageWidth = xScroll; } arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) ; return arrayPageSize; }; if (!window.Event) var Event = new Object(); document.extend(Event, { KEY_BACKSPACE: 8, KEY_TAB: 9, KEY_RETURN: 13, KEY_ESC: 27, KEY_LEFT: 37, KEY_UP: 38, KEY_RIGHT: 39, KEY_DOWN: 40, KEY_DELETE: 46, KEY_HOME: 36, KEY_END: 35, KEY_PAGEUP: 33, KEY_PAGEDOWN: 34, observers: false, element: function(event) { return event.target || event.srcElement; }, isLeftClick: function(event) { return (((event.which) && (event.which == 1)) || ((event.button) && (event.button == 1))); }, pointerX: function(event) { return event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)); }, pointerY: function(event) { return event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)); }, stop: function(event) { if (event.preventDefault) { event.preventDefault(); event.stopPropagation(); } else { event.returnValue = false; event.cancelBubble = true; } }, findElement: function(event, tagName) { var element = Event.element(event); while (element.parentNode && (!element.tagName || (element.tagName.toUpperCase() != tagName.toUpperCase()))) element = element.parentNode; return element; }, _observeAndCache: function(element, name, observer, useCapture) { if (!this.observers) this.observers = []; if (element.addEventListener) { this.observers.push([element, name, observer, useCapture]); element.addEventListener(name, observer, useCapture); } else if (element.attachEvent) { this.observers.push([element, name, observer, useCapture]); element.attachEvent('on' + name, observer); } }, unloadCache: function() { if (!Event.observers) return; for (var i = 0, length = Event.observers.length; i < length; i++) { Event.stopObserving.apply(this, Event.observers[i]); Event.observers[i][0] = null; } Event.observers = false; }, observe: function(element, name, observer, useCapture) { element = $(element); useCapture = useCapture || false; if (name == 'keypress' && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || element.detachEvent)) name = 'keydown'; Event._observeAndCache(element, name, observer, useCapture); }, stopObserving: function(element, name, observer, useCapture) { element = $(element); useCapture = useCapture || false; if (name == 'keypress' && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || element.detachEvent)) name = 'keydown'; if (element.removeEventListener) { element.removeEventListener(name, observer, useCapture); } else if (element.detachEvent) { try { element.detachEvent('on' + name, observer); } catch (e) {} } } }); Event.observe(window, 'unload', Event.unloadCache, false); Number.prototype.toColorPart = function(){ var digits = this.toString(16); if (this < 16) return '0' + digits; return digits; }; Number.prototype.getRandom = function(){ randomNum = ''; for (i=0; i<2; ++i) { tmp = Math.random()*8; randomNum += tmp.toString().replace(".",""); } return randomNum; }; String.prototype.strPad = function(side, len, chr) { if (!chr) chr = ' '; var s = this; var left = side.toLowerCase()=='left'; while (s.length<len) s = left ? chr + s : s + chr; return s; }; String.prototype.strPadLeft = function(len, chr) { return this.strPad('left',len,chr); }; String.prototype.strPadRight = function(len, chr) { return this.strPad('right',len,chr); }; String.prototype.zeroFill = function(len) { return this.strPadLeft(len,'0'); }; String.prototype.truncate = function(length, truncation) { length = length || 30; truncation = truncation === undefined ? ' ...' : truncation; return this.length > length ? this.slice(0, length - truncation.length) + truncation : this; }; String.prototype.trim = function(mask) { tmp = this.rtrim(mask); return tmp.ltrim(mask); }; String.prototype.ltrim = function(mask) { if( mask === undefined ) re = new RegExp("^\\s+"); else re = new RegExp("^("+mask+")+"); return this.replace(re, ''); }; String.prototype.rtrim = function(mask) { if( mask === undefined ) re = new RegExp("\\s+$"); else re = new RegExp("("+mask+")+$"); return this.replace(re, ''); }; String.prototype.stripTags = function() { return this.replace(/<\/?[^>]+>/gi, ''); }; String.prototype.toArray = function() { return this.split(''); }; String.prototype.dumpExtended = function(){ for(key in this){ if(key.inPrototype(this)) document.write("\/\/ String."+key+"\n<br>"); } }; String.prototype.inPrototype = function(obj){ try{ proto=obj.constructor.prototype; if( proto!=null && proto!=undefined ) return proto[this] && proto[this] == obj[this]; else return false; }catch(e){ return false; } }; function foreach(arr, callback) { for(key in arr){ callback(key, arr[key]); } }; function inArray(arr, value){ for(key in arr){ if(value==arr[key]) return true; } return false; }; function arrayKeys(arr, needle){ found = []; for ( key in arr ) { if( typeof needle != 'undefined' ){ if( arr[key] == needle ) found.push(key); } else { found.push(key); } } return found; }; function arrayKeyExists(arr, needle){ for ( key in arr ) { if( key == needle ) return true; } return false; }; function arrayValues(arr){ values = []; for ( key in arr ) { values.push(arr[key]); } return values; }; function first(arr){ first=null; for(key in arr) { first = arr[key]; break; } return first; }; function last(arr){ last=null; for(key in arr){ last = arr[key]; } return last; }; function count(arr){ i=0; for(key in arr) ++i; return i; }; function clear(arr){ return []; }; function hasNegative(arr){ for(key in arr){ if(arr[key]<0) return true; } return false; }; var msgWindow; function aller(url){ if (url!='') parent.window.location=url; } function openWindow(url, _w, _h, scroll){ posX = (screen.width) ? (screen.width - _w)/ 2 : 0; posY = (screen.height) ? (screen.height - _h)/ 2 : 0; window.focus(); try{if( typeof(msgWindow)=='object') msgWindow.close();}catch(e){} msgWindow = open('','window1','top='+posY+', left='+posX+', width='+_w+', height='+_h+', menubar=no, status=yes, location=no, toolbar=no, scrollbars='+scroll); msgWindow.location.href = url; if(msgWindow.opener==null) msgWindow.opener=self; msgWindow.focus(); }; function popup(url,width,height) { alert("location=0,status=0,scrollbars=0,width="+width+",height="+height); mywindow = window.open (url,"etam","location=0,status=0,scrollbars=0,width="+width+",height="+height); mywindow.moveTo(300,180); }; function tooltip(o,m){ f = getOffset(o); reBr = /<br \/>/i; return reBr.test(m) ? overlib( m, FIXX,f.x + 2, FIXY,f.y - 32, WRAP ) : overlib( m, FIXX,f.x + 2, FIXY,f.y - 20, WRAP ); }; function getOffset(o){ f={}; f.x=o.offsetLeft; f.y=o.offsetTop; p=o.offsetParent; while(p !=null){ f.y+=p.offsetTop; f.x+=p.offsetLeft; p=p.offsetParent; } return f; }; function strmaxlen(sender,len){ if(sender.value.length>len) sender.value = sender.value.substr(0, len); }; function addOption(target, option){ tlength = target.options.length - 1; for(toc=tlength;toc>=0;--toc) if(target.options[toc].value==option.value) return false; target.options[target.options.length] = new Option(option.text, option.value); return true; }; function hlinfoshow(ref){ $('hlinfo_'+ref).style.display = 'block'; $('hlinfohide_'+ref).style.display = 'block'; $('hlinfoshow_'+ref).style.display = 'none'; } function hlinfohide(ref){ $('hlinfo_'+ref).style.display = 'none'; $('hlinfohide_'+ref).style.display = 'none'; $('hlinfoshow_'+ref).style.display = 'block'; } var imgStack = [], imgPath = '/images/dyn/catalog/', imgRe = /[0-9]{7}_[0-9]{2}_1\.jpg/g; function preloadProducts(){ matches = document.body.innerHTML.match(imgRe); try{ for(i=0; i<matches.length; ++i){ imgStack[i] = new Image(); imgStack[i].src = imgPath + matches[i].replace('_1.jpg', '_D1.jpg'); } }catch(e){} } var swapStack = [], swapTimeout = 100; function swapProduct(sender, param){ if(param){ try{ clearTimeout(swapStack[sender.id]); } catch(e) {}; sender.style.backgroundImage = sender.style.backgroundImage.replace('_1.jpg', '_D1.jpg'); swapTailes(sender, param); } else { swapStack[sender.id] = setTimeout( function(){ sender.style.backgroundImage = sender.style.backgroundImage.replace('_D1.jpg', '_1.jpg'); swapTailes(sender, param); }, swapTimeout ); } }; function swapTailes(sender, param){ var hauteur = 23; if(jQuery.browser.msie && jQuery.browser.version == "6.0") hauteur = 23; try{ iobj = sender.childNodes.item(1); iobj.style.display = param ? 'block' : 'none'; iobjY = iobj.childNodes.item(0).offsetHeight; if(iobjY > hauteur){ iobj.style.height = iobjY + 'px'; iobj.style.marginTop = 63 - (iobjY - hauteur) + 'px'; } } catch(e){ iobj = sender.childNodes.item(0); iobj.style.display = param ? 'block' : 'none'; iobjY = iobj.childNodes.item(0).offsetHeight; if(iobjY > hauteur){ iobj.style.height = iobjY + 'px'; iobj.style.marginTop = 144 - (iobjY - hauteur) + 'px'; } }; }; function swapProductsSD(sender){ lnk_delook = $('lnk-delook'); lnk_substitution = $('lnk-substitution'); cnt_delook = $('cnt-delook'); cnt_substitution = $('cnt-substitution'); if( sender.id=='lnk-delook'&&lnk_delook.className=='delook' ){ lnk_substitution.className = 'substitution'; cnt_substitution.style.display = 'none'; lnk_delook.className = 'delook-on'; cnt_delook.style.display = 'block'; } else if(sender.id=='lnk-substitution'&&lnk_substitution.className=='substitution'){ lnk_delook.className = 'delook'; cnt_delook.style.display = 'none'; lnk_substitution.className = 'substitution-on'; cnt_substitution.style.display = 'block'; } sender.blur(); return false; }; function addToBasket(sender, ref){ try{ taille = $('tailledisponible_'+ref).value; quantite = $('quantite_'+ref).value; prix = document.getElementById('prixtest_'+ref).innerHTML; prix = prix.substring(0,prix.length-2); prix= prix.replace(",","."); }catch(e){} if(taille&&quantite&&prix){ xajax_addBasketLine(ref, taille, quantite, prix); } else { alert("Merci de choisir une taille et enfin une quantité."); } }; function setDetailsQuantite(target_id, items){ if(target = $(target_id)){ clearDetailsQuantite(target); if(items){ for(i=1; i<items; ++i){ addOption(target,{text:i,value:i}); } if(items >= 1) { target.options[1].selected = "selected"; } } } }; function clearDetailsQuantite(target){ tlength = target.options.length - 1; for(toc=tlength;toc>=1;--toc) target.options[toc] = null; return true; }; function productDetail(sender, param){ settToNormal(); sender.className = sender.className+'_on'; $('productimg').src = '/images/dyn/catalog/'+param; }; function settToNormal(){ for(i=1;i<10;i++){ if(document.getElementById('d'+i)){ document.getElementById('d'+i).className='d'+i; } } }; function swapCategory(frm, loc){ frm.action = loc; frm.submit(); }; Event.observe(window, 'load', preloadProducts, false); function validateStrSearch(str){ if(!str){alert('Veuillez entrer un mot-clé');return false;} }; function validateRefSearch(frm){ if( ! frm.elements.reference.value.match(/^\d{1,}$/) ){alert('La Recherche n\'accepte que des chiffres');return false;} }; function validateContacts(sender){ var reEmail = /^[a-zA-Z0-9][a-zA-Z0-9.\-\_]*@[a-zA-Z0-9][a-zA-Z0-9.\-\_]*\.[a-zA-Z0-9][a-zA-Z0-9.]*/; if(!parseInt(sender.elements[0].value)){alert("veuillez choisir votre thème");return false;} if(!sender.elements.prenom.value){alert("veuillez entrer votre prénom");return false;} if(!sender.elements.nom.value){alert("veuillez entrer votre nom");return false;} if(!sender.elements.email.value||!reEmail.test(sender.elements.email.value)){alert("veuillez entrer une adresse email correcte");return false;} if(!sender.elements.message.value){alert("veuillez entrer votre message");return false;} sender.submit(); return false; }; function qsearch(){ val = document.forms.qsearchFrm.qsquery.value; if( !val || val=='Recherche' ){ alert('Veuillez entrer un mot-clé'); return false; } document.forms.qsearchFrm.submit(); return false; };