var ANIM = new Array() ; var ANIMES = new Array() ; var anim_seqs = 25 ; var anim_speed = 30 ; var onlyOne = true ; var isFxed = false ; var newSize = true ; var oneSize = true ; var resize_time = 500 ; var totalized = 0 ; var secure_speed = 600 ; var chill_speed = 80 ; // pour MSIE var ALBUM_MAX = new Array() ; var ALBUM_DIAPO = new Array() ; // // // function animItem( _word , _mode ) { this.word = _word ; this.x = 0 ; this.y = 0 ; this.init = false ; this.exist = true ; // this.speed = 0.25 ; même pour tous ! this.seq = 100 + anim_seqs * _mode ; } // // // function still() { post(); } function first() { // exécution urgente avant boot() _helloFrame = 0 ; if( _frame == 1 ) { if( window.parent.helloFrame != 3) { move = new String( self.document.location ) ; if( move.substring(0,4) == 'http' ) { move = move.substring(7) ; } pos = move.indexOf("/") ; if( pos > 0 ) { move = move.substring(pos+1) ; } move = '/frame/' + move ; self.document.location = move ; } else { _helloFrame = 1 ; } } } // // // function fixPage() { // 22.04.2013 chrome + safari fix // futur : sur fixed uniquement probablement y0 = document.getElementById("site").offsetHeight ; y1 = document.getElementById("tdsite").offsetHeight ; // alert( y0 + " /" + y1 ) ; document.getElementById("site").style.height = y1 + 'px' ; // } // // // function boot0( fixedH , dynfont , mobile , anime , scroll , preview , still , dns , app ) { fixPage(); document.getElementById('layersite').style.opacity = 1 ; document.getElementById('layerloader').style.display = 'none' ; return true ; } // // // function boot( fixedH , dynfont , mobile , anime , scroll , preview , still , dns , app ) { _browser = navigator.userAgent.toLowerCase() ; _chrome = false ; _msie = false ; _webkit = false ; _firefox = false ; if( _browser.indexOf('chrome') != -1 ) { _chrome = true ; } if( _browser.indexOf('webkit') != -1 ) { _webkit = true ; // webkit + chrome } if( _browser.indexOf('msie') != -1 ) { _msie = true ; } if( _webkit ) { // anime = 0 ; // rame... tant pis pour Apple. } // // ---- Fixe taille contenu // _fixedH = fixedH ; _dynfont = dynfont ; _mobile = mobile ; _opacity = 0 ; _alphaPage = 0 ; _paged = 0 ; // contenu affiché -> on pourra faire alphaPage _alphaSite = 0 ; _alphaLoader = 1 ; _loading = 0 ; // fini _anime = anime ; _scroll = scroll ; _dateon = 0 ; _preview = preview ; _still = still ; _app = app ; // _mobile = 1 ; if( _app == 0 ) { if( _msie && top !== self && preview == 0 ) // && dns == 1 ) // impossible car en cas de redirection y'a justement pas de passage via dns { // frameset OVH @ Quirks Mode ? // if( parent.frames[0].name.toString() == 'ORT' ) // ^ accès refusé //top.document.location = self.document.location ; //top.reload( self.document.location ) ; if( _helloFrame == 0 ) { window.top.location.href = self.document.location ; } } resizing(); if( _mobile == 0 ) { window.onresize = function() { if( OneSize ) { OneSize = false ; setTimeout( "resizing();" , resize_time ) ; } } anim_speed *= 3 ; } setInterval( "fx()", anim_speed ) ; dateRoll() ; if( _anime == 0 ) { document.getElementById('layersite').style.opacity = 1 ; document.getElementById('layerloader').style.display = 'none' ; } setInterval( "secure()", secure_speed ) ; } else { post() ; } } // // // function cadrage() { run = true ; l = 0 ; while( run ) { l++ ; // débute à 1 run = false ; max = 32 ; // mini donc nnb = 0 ; // sur la ligne for( s=0 ; s<=1 ; s++ ) { for( c=1; c<=4 ; c++ ) { obj = 'bloc' + l + c ; OBJ = document.getElementById( obj ) ; if( OBJ ) { run = true ; // y'en faut 1 sur cette ligne nnb ++ ; if( s == 0 ) { // h = OBJ.offsetHeight - OBJ.style.paddingTop - OBJ.style.paddingBottom ; // parseInt( OBJ.height() ) ; // w/o padding // h = OBJ.offsetHeight ; // if( _msie ) h = OBJ.offsetHeight ; // else h = OBJ.scrollHeight ; if( _msie ) h = Math.min( OBJ.clientHeight , h ) ; // alert(obj + ' = ' + h) ; if( h > max ) { max = h ; } } else if( max > 0 ) // && nnb > 1 ) // inutile si 1 seul bloc { if( _webkit ) // OBJ.style.minHeight = max + 'px' ; OBJ.style.height = max + 'px' ; else OBJ.style.height = max + 'px' ; } } } // if( s == 0 ) { alert( l + ' = ' + max); } } } } // // // function secure() { // lag, + webkit if( _paged ) { a = totalize() ; fxed(); if( totalized != a ) { // alert("secure " + a + " ; " + totalized ); totalized = a ; cadrage(); } } } // // // function fx() { if( _mobile == 0 && _anime == 1 ) { if( _loading == 1 && _alphaLoader != 1 ) { _alphaLoader = 1 ; document.getElementById('layerloader').style.opacity = _alphaLoader ; } else if( _loading == 0 && _alphaLoader > 0 ) { _alphaLoader -= .25 ; document.getElementById('layerloader').style.opacity = _alphaLoader ; } else if( _paged ) { if( _alphaSite < 1 ) { _alphaSite += .2 ; document.getElementById('layersite').style.opacity = _alphaSite ; document.getElementById('livecontent').style.opacity = 0 ; } else if( _alphaPage < 1 ) { _alphaPage += .1 ; document.getElementById('livecontent').style.opacity = _alphaPage ; } } else { document.getElementById('livecontent').style.opacity = 0 ; } canvasAnime() ; } for( var i=0 ; i<99 ; i++ ) { if( ALBUM_DIAPO[i] ) // actuel, max, time { ALBUM_DIAPO[i][2] += anim_speed ; if( ALBUM_DIAPO[i][2] > 9000 ) { ALBUM_DIAPO[i][2] = 0 ; ALBUM_DIAPO[i][0] ++ ; if( ALBUM_DIAPO[i][0] >= ALBUM_DIAPO[i][1] ) { ALBUM_DIAPO[i][0] = 0 ; } // alert( ALBUM_DIAPO[i][0] ) ; album( i , ALBUM_DIAPO[i][0] ) ; } } } } // // // function updatehw() { if( typeof( window.innerWidth ) == 'number' ) { // Non-IE _h = window.innerHeight; _w = window.innerWidth; } else { // IE 6+ in 'standards compliant mode' _h = document.body.clientHeight; _w = document.body.clientWidth; } } function unsize() { for( l=0 ; l<=3 ; l++ ) { for( c=1; c<=4 ; c++ ) { obj = 'bloc' + l + c ; OBJ = document.getElementById( obj ) ; if( OBJ ) { delete OBJ.style.height ; if( ! _msie ) { OBJ.style.height = '0px' ; } } } } } function resizing() { newSize = ! newSize ; OneSize = false ; if( newSize == true ) { unsize() ; setTimeout( "resizing();" , resize_time) ; } else { updatehw() ; if( ! _webkit ) { // meilleur calcul en cas de redim // coupé 37 // document.getElementById("livecontent").style.display = 'none' ; } _paged = 0 ; _alphaPage = 0 ; if( document.getElementById("layerbg") ) { document.getElementById("layerbg").style.height = _h + 'px' ; document.getElementById("layerbg").style.width = _w + 'px' ; // document.getElementById('bg').style.width = _w + 'px' ; // image } if( _mobile == 0 && _dynfont == 1 ) { document.getElementById("layersite").style.height = _h + 'px' ; document.getElementById("layersite").style.width = _w + 'px' ; // ---- Scale fonts // // ratio = screen.width / 1440 ; ratio = _w / 1440 ; font = Math.round( ratio * 14 ) ; document.getElementById('body').style.fontSize = font + "px" ; } displaycontent() ; OneSize = true ; } } // // // function displaycontent() { // _scroll = 0 ; if( _mobile == 0 && _scroll == 1 ) { // // fixe & peuple la zone // fixPage(); } /* sub = 0 ; for(c=0;c<10;c++ ) { // calcule les insides de la zone page qu'il faudra retirer OBJ = document.getElementById("subzone"+c) ; if( OBJ ) { sub += OBJ.offsetHeight ; // alert("sub " + c + " = " +sub); } } y = document.getElementById("livezone").offsetHeight; // clientHeight document.getElementById("livecontent").style.height = ( y - sub ) + 'px' ; document.getElementById("livecontent").style.display = 'bloc' ; */ // else { // On laisse gérer le zoom // document.getElementById("layersite").style.overflowY = 'scroll' ; // page //document.getElementById("livezone").style.overflowY = 'visible' ; // content // hack pour scrool bar border 1px document.getElementById("livecontent").style.overflowY = 'hidden' ; // content document.getElementById("livecontent").style.display = 'bloc' ; } setTimeout( "displaycontent2()" , chill_speed ) ; } // // // function totalize() { total = 0 ; var IM = document.images ; for( var i = 0; i < IM.length; i++) { total += parseInt( IM[i].height ) ; } return parseInt( total ) ; } // // // function displaycontent2() { post(); totalized = totalize() ; cadrage(); if( onlyOne ) { waverize(); onlyOne = false ; } _paged = 1 ; } // // // function fxed() { if( _paged && isFxed == false ) { isFxed = true ; var items = document.getElementsByTagName("img"); for( var i = 0 ; i < items.length ; i++) { // if( items[i].id && items[i].id.substr(0,5) == 'image' ) { var item = items[i] ; userfx = parseInt( item.getAttribute('data-fx') ) ; if( userfx > 0 ) { var canvas = document.createElement("canvas"); canvas.className = item.className ; canvas.style.border = "1px" ; canvas.style.width = item.offsetWidth + 'px' ; canvas.style.height = item.offsetHeight + 'px' ; item.parentNode.insertBefore( canvas , item.nextSibling); item.style.display = 'none' ; var context = canvas.getContext('2d'); // context.drawImage( item, 0, 0 , item.width , item.height , 0 , 0 , canvas.width , canvas.height ); context.drawImage( item, 0, 0 , item.naturalWidth , item.naturalHeight , 0 , 0 , canvas.width , canvas.height ); // userfx=0; var imgData = context.getImageData(0,0,canvas.width,canvas.height); for( var p=0 ; pc) a=c ; return Math.round(a) ; } // // // function sized( obj , hratio ) { if( hratio > 0 ) // && app == 0 ) { OBJ = document.getElementById(obj) ; if( OBJ ) { OBJ.style.height = Math.round( hratio * OBJ.offsetWidth ) + 'px' ; } } } // // // function fitted( bloc ) { // alert("fitted"); // remplissage de zone (ex:video) x1 = document.getElementById( 'bloc' + bloc ).offsetWidth ; y1 = document.getElementById( 'bloc' + bloc ).offsetHeight ; // attention, il peut ne pas y avoir de titre if( document.getElementById( 'h2' + bloc ) ) y2 = document.getElementById( 'h2' + bloc ).offsetHeight ; else y2 = 0 ; y0 = parseInt( Math.max( x1 * .6 , (y1-y2) ) ) ; // 16/10 // alert( "fitted: " + y0 ); fit = 'fit' + bloc ; if( document.getElementById( fit ) ) { document.getElementById( 'fit' + bloc ).style.width = '100%' ; document.getElementById( 'fit' + bloc ).style.height = y0 + 'px' ; } else { alert( "! " + fit ) ; } } // // // function avert( _text ) { document.getElementById("layerpopup").style.display = "block" ; document.getElementById("popupcontent").innerHTML = '
' + _text + '
' ; } // // // function cart() { document.getElementById("layerpopup").style.display = "block" ; document.getElementById("popupcontent").innerHTML = '
' ; } // // // function zoom( image ) { // utilise fonction jpg/ pour compatibilité /shop/pic // a = window.open( "/data/" + image ) ; document.getElementById("layerpopup").style.display = "block" ; document.getElementById("popupcontent").innerHTML = '' ; } // // // function editmode( url ) { document.getElementById("layerpopup").style.display = "block" ; document.getElementById("popupcontent").innerHTML = '' ; } // // // function popupclose() { document.getElementById("layerpopup").style.display = "none" ; } // // // function refresh() { popupclose(); document.location = document.location ; } // // // function dateRoll() { if( typeof( _date) != "undefined" && _date > 0 ) { if( document.getElementById('date' + _dateon) ) { // peut disparaitre si page VIP if( _dateon != -1 ) { document.getElementById('date' + _dateon).className = 'dateoff' ; } _dateon ++ ; if( _dateon >= _date ) { _dateon = 0 ; } document.getElementById('date' + _dateon).className = 'dateon' ; } setTimeout("dateRoll()",5000); } else { // post() pas encore envoyé setTimeout("dateRoll()",1000); } } // // // function isset( a ) { return ( typeof( window[a] ) != "undefined" ) ; } // // // function waverize() { // appel après _drop_ var size = 256 ; var radx = size/2 ; var rady = size/6 ; var items = document.getElementsByTagName("canvas"); for( var i = 0 ; i < items.length ; i++) { var obj = items[i].id ; var cOBJ = document.getElementById( obj ); if( cOBJ.getContext ) { var wa = obj.substr( obj.indexOf('-')+1 ) ; var type = obj.substr(0,4) ; var ctx = cOBJ.getContext("2d"); if( type == 'anim' ) { // // initialise anim canvas // L = cOBJ.innerHTML.split(","); cOBJ.innerHTML = "" ; j = ANIMES.length ; ANIM[j] = new Array() ; for( c = 0 ; c < L.length ; c++ ) { ANIM[j][c] = new animItem( L[c] , c ) ; } ANIMES[j] = obj ; } else if( type == 'wave' ) { ctx.beginPath(); ctx.fillStyle = cOBJ.style.color ; switch(wa) { // ABCD 1/4 cercle (style F2) case 'a': ctx.moveTo(0,size); ctx.lineTo(0,0); ctx.lineTo(size,0); ctx.lineTo(size,rady); ctx.bezierCurveTo( radx , rady , rady, radx , 0, size); break; case 'b': ctx.moveTo(size,size); ctx.lineTo(size,0); ctx.lineTo(0,0); ctx.lineTo(0,rady); ctx.bezierCurveTo( size-radx , rady , size-rady, radx , size, size); break; case 'c': ctx.moveTo(size,0); ctx.lineTo(size,size); ctx.lineTo(0,size); ctx.lineTo(0,size-rady); ctx.bezierCurveTo( size-radx , size-rady , size-rady, size-radx , size, 0); break; case 'd': ctx.moveTo(0,0); ctx.lineTo(0,size); ctx.lineTo(size,size); ctx.lineTo(size,size-rady); ctx.bezierCurveTo( radx , size-rady , rady, size-radx , 0, 0); break; // EFGH 1/2 cercle case 'e': ctx.arc(size/2,0,size/2,0,2*Math.PI); break; case 'f': ctx.arc(size,size/2,size/2,0,2*Math.PI); break; case 'g': ctx.arc(size/2,size,size/2,0,2*Math.PI); break; case 'h': ctx.arc(0,size/2,size/2,0,2*Math.PI); break; // IJKL triangle case 'i': ctx.moveTo(0,0); ctx.lineTo(size,0); ctx.lineTo(0,size); ctx.lineTo(0,0); break; case 'j': ctx.moveTo(size,0); ctx.lineTo(0,0); ctx.lineTo(size,size); ctx.lineTo(size,0); break; case 'k': ctx.moveTo(size,size); ctx.lineTo(size,0); ctx.lineTo(0,size); ctx.lineTo(size,size); break; case 'l': ctx.moveTo(0,size); ctx.lineTo(0,0); ctx.lineTo(size,size); ctx.lineTo(0,size); break; } ctx.fill(); ctx.closePath(); cOBJ.style.display = "block" ; } } } } // // // function RGBaddA( _style , _alpha ) { _rgb = _style.substr( _style.indexOf('(')+1 ) ; _rgb = _rgb.substr( 0 , _rgb.indexOf(')') ) ; RGB = _rgb.split(',') ; for( c=0 ; c<3 ; c++ ) { RGB[c] = parseInt( RGB[c] ) ; } return ( "RGBA(" + RGB[0] + "," + RGB[1] + "," + RGB[2] + "," + _alpha + ")" ) ; } // // // function canvasAnime() { if( ANIMES.length > 0 ) { for( i = 0 ; i < ANIMES.length ; i ++ ) { obj = ANIMES[ i ] ; C = document.getElementById(obj) ; C.width = C.offsetWidth ; C.height = C.offsetHeight ; ctx = C.getContext("2d"); ctx.clearRect(0, 0, C.width, C.height); font = 50 *( C.width / 400 ) ; // alert( i ) ; // alert( ANIM[ i ].length ) ; for( j = 0 ; j < ANIM[ i ].length ; j++ ) { scale = ANIM[ i ][j].seq / 100 ; if( ANIM[ i ][j].seq < 1 ) { ANIM[ i ][j].seq = Math.max( 100 , anim_seqs*ANIM[ i ].length ) ; ANIM[ i ][j].init = false ; } else if( ANIM[ i ][j].seq < 100 ) { if( ! ANIM[ i ][j].init ) { // init mot ANIM[ i ][j].init = true ; ANIM[ i ][j].x = Math.round( Math.random() * C.width ) - C.width/2 ; ANIM[ i ][j].y = Math.round( Math.random() * C.height ) - C.height/2 ; } if( _webkit ) ctx.font = (font) + "px arial,verdana" ; else ctx.font = (font*scale) + "px arial,verdana,sans-serif" ; var metrics = ctx.measureText( ANIM[ i ][j].word ); x = ANIM[ i ][j].x*scale + (C.width -metrics.width)/2 ; y = ANIM[ i ][j].y*scale + C.height/2 ; ctx.fillStyle = "RGBA(0,0,0," + scale/2 + ")" ; ctx.fillText( ANIM[ i ][j].word , x+1 , y+1 ); ctx.fillStyle = RGBaddA( C.style.color , scale ) ; ctx.fillText( ANIM[ i ][j].word , x , y ); ctx.fillText( ANIM[ i ][j].word , ANIM[ i ][j].x*scale + (C.width -metrics.width)/2 , ANIM[ i ][j].y*scale + C.height/2 ); } ANIM[ i ][j].seq -= 0.5 ; } } } } // // // function prixupdate() { base = parseFloat( document.getElementById('prixbase').value ) ; // OPTS for( i=1 ; i<4 ; i++ ) { OBJ = document.getElementById('option'+i) ; if( OBJ ) { sel = OBJ.value ; if( sel != -1 ) { sele = OBJ.options[sel].text ; plus = sele.indexOf("+") ; if( plus > 0 ) { add = sele.substring( plus+2 ) ; add = parseFloat( add.substring( 0 , add.indexOf(" ") ).replace( ',' , '.' ) ) ; base += add ; } } } } // Q q = document.getElementById('prixq').value ; if( isNaN(q) || q<1 ) { q = 1; } q = Math.round( q ) ; prix = base * q ; document.getElementById("prixup").innerHTML = pricing( prix ) + " €" ; } // // // function pricing( _val ) { x = Math.round( _val * 100 ) ; xx = x.toString() ; l = xx.length ; x = xx.substring( 0 , l-2 ) + "," + xx.substring( l-2 ) ; return x ; } // // // function album( _bloc, _next ) { var obj = 'album' + _bloc + '_0' ; // + ALBUM_ALT[_bloc] ; var OBJ = document.getElementById(obj) ; OBJ.className = "albumoff" ; if( OBJ ) { if( ! _webkit ) { document.getElementById('album' + _bloc).style.backgroundImage = OBJ.style.backgroundImage ; // car webkit s'évertue à recharger à chaque fois, malgré le suffixe. } var OBJ2 = eval( 'ALBUM' + _bloc + '_DATA' ) ; if( OBJ2[_next] ) // album vide { var pic = OBJ2[_next][0] ; var leg = OBJ2[_next][1] ; OBJ.style.backgroundImage = 'none' ; OBJ.style.backgroundImage = 'url(/jpg/' + pic + ')' ; document.getElementById( obj + "_legende").innerHTML = leg ; setTimeout( obj + ".className = 'albumon';" , 500 ) ; } } }