<HTML> <head> <TITLE>La peinture de la renaissance italienne : l'amour</TITLE> <BODY TEXT="#800000" LINK="#800000" VLINK="#CC6666" ALINK="#23FB0F" background="marble.jpg" BGCOLOR="ffffff" onLoad="SetIt(0)"> <SCRIPT> <!-- // BLURING MENU by Attila Goz   email: gasys@isys.hu  // This is an example html page. // Browser checking not included.  // Use Netscape 3.0 or greater  ////////////// Object declaration for the buttons ///////////////////////////  function buttontype(oname,name,width,height,frames,delay) {   // General preferences for the images   this.Name = name;      		// image name in html code   this.ObjName = oname;           	// referring name in script   this.Width = width;            	// Image width in pixels   this.Height = height;          	// Image height in pixels   this.Frames = frames;                 // Number of frames   this.Images = new Array(frames);      // Array of images for the frames    // Parameters for the motion (sharpening, bluring)   this.Status = 1;              	// active frame   this.Destination = 1;         	// destinaton frame   this.Incr = 1;                	// while(Stat!=Dest)Stat+=Incr;   this.Set = set_button;                // Functions to set the parameters   this.Set2 = set_button_now;                    // Each button has its own timer function to increase the sensibility.   // While the active frame (which is displayed) is not the required one,   // button.Go() will be called to walk the steps between the two frames.   // (For example: Status=frame5; Destination=frame2; Incr=2.   // in this case frame 5,3,2 will be displayed in this order.   // Just need to call the button.Set(). Timer will be called and images   // will be displayed automatically.)   this.ID = null;			// Timer ID   this.Running = false;         	// Shows if timer runs   this.Delay = delay;           	// delay time for setTimeout   this.Start = timer_start;          	// starts the 'interrupt',   this.Stop = timer_stop;            	// stops it   this.tGo = timer_recall;             	// recalls the timer   this.Go = button_step;                // .go() will be the called function  					// this will make the steps between 					// two frames }   // TIMER FUNCTIONS /////////////  // Starting the timer: function timer_start() {   if(this.Running == true)           	// First checks if it has been    { clearTimeout(this.ID); } else       // turned on already.   { this.Running = true; };             // Sets activity flag flag   this.ID = setTimeout(this.ObjName,this.Delay); } // Sets the timer   // Terminating the timer: function timer_stop() {   if(this.Running == true)              // if active   { clearTimeout(this.ID); this.Running = false; } } // terminates   // This recalls the timer at the and of the function called by setTimeout function timer_recall() {   this.Running = true; this.ID = setTimeout(this.ObjName, this.Delay); }   // FUNCTIONS TO ANIMATE /////////////  // To set the parameters of the animation // while(button.Status != dest) button.Status+=incr function set_button(dest, incr){   //this.Delay=delay;   this.Incr = incr;  			//   this.Destination = dest;              // first let's set the new dest. and incr.   if(this.Running==false) {             // checks if butti is already in action     eval(this.ObjName);                 // if not, let's make the first step by hand     this.Start(); } }			// then start the loop  // This other version ansvers faster, 'cos it restarts the timer at startup // Works better when faster reaction required: ex. mouse is focused to a button // The previous one is smoother, 'cos that won't interrupt the movement. function set_button_now(dest, incr) {   this.Incr = incr;  this.Destination = dest;   this.Stop();                          // This version won't wait for the   eval(this.ObjName);                   // timeout. Stops it and restarts   this.Start();                         // it immediately. }  // This is the only function in the object which does something. // The timer will call it and this will recall the timer while // the you don't see the required frame function button_step() {   this.Running=false;				// Timeout happened   if(this.Destination > this.Status)                {                                             // Simple check if to add or sub      this.Status += this.Incr;                   // the increment from the active frame     if(this.Status > this.Destination)          // Checks if function still need to be recalled           { this.Status = this.Destination;             document.images[this.Name].src = this.Images[this.Status].src; } // Draw out     else { document.images[this.Name].src = this.Images[this.Status].src;   // Draw out            this.tGo(); };   } else   {                                                  this.Status -= this.Incr;     if(this.Status < this.Destination)          { this.Status = this.Destination;  	   document.images[this.Name].src = this.Images[this.Status].src; } // Draw out     else { document.images[this.Name].src = this.Images[this.Status].src;   // Draw out            this.tGo(); };   } }  ///////////////////////////////////////////////////////////////////////// //////// Object declaration for managing the unfocused buttons //////////  // walktype simply runs a value between two numbers. // This will help to control the buttons in the inactive time // The code is so primitive, but useful.  function walktype(stat,dir,min,max,inc,data) {  this.Status=stat; 		// stat: is the starting frame		  this.Direction=dir;            // Direction of movement (up-down)  this.Incr=inc;                 // increment, speed  this.Min=min;                  // min value  this.Max=max;                  // max value  this.Set = walk_set;		// call to (re)inicialize the object  this.Step = walk_step;         // call to step one  this.Data = data;		// a value, used later } function walk_step() {   if(this.Direction == 0)   {     this.Status += this.Incr;     if(this.Status >= this.Max)     {       this.Direction = 1     }   } else   {     this.Status -= this.Incr;     if(this.Status <= this.Min)     {       this.Direction = 0     }   } } function walk_set(stat,dir,min,max,inc,data) {  this.Status=stat;  this.Direction=dir;  this.Incr=inc;  this.Min=min;  this.Max=max;  this.Data=data; } ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// // Enough type definition. Now comes what you'll have to change only:  BUTTONS=5              // The number of buttons. I have 5 ones. BUTTON_FRAMES=5;	// No of frames for each button  MIN_FRAME=1;           		 // In focus MAX_FRAME=BUTTON_FRAMES;         // Blur  Button = new Array(BUTTONS+1);  // Now we have a Button Array  // Buttons are 1-5. 0 is used to handle the interrupt for the // unfocused times, when a walk_type will walk.  Button[0] = new buttontype("Sleep()","sleeping",200,35,BUTTON_FRAMES,70); Button[1] = new buttontype("Button[1].Go()","news",200,35,BUTTON_FRAMES,110); Button[2] = new buttontype("Button[2].Go()","djs",200,35,BUTTON_FRAMES,110); Button[3] = new buttontype("Button[3].Go()","discos",200,35,BUTTON_FRAMES,110); Button[4] = new buttontype("Button[4].Go()","programs",200,35,BUTTON_FRAMES,110); Button[5] = new buttontype("Button[5].Go()","issues",200,35,BUTTON_FRAMES,110);   for(i = 1; i < BUTTONS+1; i++)     	// Now let's load the images {    Button[i].Status = MAX_FRAME;        // 5. is the starting frame    Button[i].Destination = MAX_FRAME;   // dest is the same - no movement    for(j = 1; j < BUTTON_FRAMES+1; j++)    {      Button[i].Images[j] = new Image(Button[i].Width,Button[i].Height);      Button[i].Images[j].src = "a"+ i + j + ".gif";    } }                       	// the 25 frames's load in progress  				// Here's some global variable: ActiveButton=0;			// This gives the focused buttom's number PrevActiveButton=1;             // And the previous one too. Set to 0  		                // if there are no buttons in focus.  Walk= new Array(2); Walk[1] = new walktype(5,0,4,BUTTONS+11,1,MIN_FRAME+1); Walk[2] = new walktype(6,0,4,BUTTONS+11,1,MAX_FRAME); SLEEPS=0;  // Code to be called when mouse inactiv and not in focus function Sleep() {   if(SLEEPS==1)   {     Button[0].Running = false;     Walk[1].Step();     Walk[2].Step();     if((Walk[1].Status>7) && (Walk[1].Status<(BUTTONS+8)))  Button[Walk[1].Status-7].Set2(Walk[1].Data,3);     if((Walk[2].Status>7) && (Walk[2].Status<(BUTTONS+8)))  Button[Walk[2].Status-7].Set(Walk[2].Data,1);     Button[0].Delay=70;     Button[0].tGo();   }  }  			// Procedure called by the event handlers. function SetIt(butt)  	// butt shows which is in focus. Equals to 0 when looses focus {   ActiveButton=butt;   if(PrevActiveButton != ActiveButton)  	// Something happened, focus moving   {     if(SLEEPS > 0)                   	// Check if there'was inactivity-activity     {                                	       Button[0].Stop();		     	// button[0]'s timer stop       SLEEPS = 0;       for(f=1;f<(BUTTONS+1);f++)        if(Button[f].Status!=MAX_FRAME)        { Button[f].Set(MAX_FRAME,1); };	// Set the start position      }                                              if(PrevActiveButton>0)              // Prev active button need to be blured slowly         Button[PrevActiveButton].Set(MAX_FRAME,1);     if(ActiveButton    >0)              // New active button need to sharpen quikly         Button[ActiveButton   ].Set2(MIN_FRAME,2);     PrevActiveButton = ActiveButton;      if(ActiveButton==0)     {       if(SLEEPS == 0)     		// If there's no button focused       {                                 // Start the play with the inactive buttons         SLEEPS=1;                		// Flag is on         Walk[1].Set(7,0,4,BUTTONS+11,1,MIN_FRAME+1);      // Inicialize two different counters         Walk[2].Set(5,0,4,BUTTONS+11,1,MAX_FRAME);      // One is for sharpen, the other is for blur         Button[0].Delay=1000;           	// Wait a bit         Button[0].Start();              // Start the 0. timer. Sleep() will be called       }     }    } }  { var pic1=new Image ();          pic1.src="amour.gif";          var pic2=new Image ();          pic2.src="petit_bartolo_amour.jpg";          var pic3=new Image ();          pic3.src="petit_lippi_amour.jpg";          var pic4=new Image ();          pic4.src="petit_titien_amour.jpg";          var pic5=new Image ();          pic5.src="petit_m-ange_amour.jpg";          var pic6=new Image ();          pic6.src="petit_cosimo.jpg";    } function rep(what,withwhat) {  if(navigator.appName.indexOf('Exp')==-1 && navigator.appVersion.substring(0,1)>=3)   {                 what.src=withwhat.src;  } }   function nullFunc() {}   // --> </SCRIPT> </head> <table width=600> <td width=55></td> <td width=545> <CENTER><IMG SRC="titre.gif" ALT="La peinture de la renaissance italienne"></CENTER> </td> </table>  <TABLE width=600> <td width=55></td> <td width=155 valign=top><IMG SRC="ange.gif" BORDER=0 WIDTH=153 HEIGHT=114></td> <TD align=left width=205> <A HREF="amour_bartolo.html" "javascript:void(0)" onmouseout="SetIt(0);rep(document.pic,pic1)" onmouseover="SetIt(1);rep(document.pic,pic2)"><IMG NAME="news" SRC="a15.gif" width="200" height="35" border=0 alt="Par ici la souris..."></A><BR>  	<A HREF="amour_lippi.html" "javascript:void(0)" onmouseout="SetIt(0);rep(document.pic,pic1)" onmouseover="SetIt(2);rep(document.pic,pic3)"><IMG NAME="djs" SRC="a25.gif" width="200" height="35" border=0 alt="Par ici la souris..."></A><BR>  	<A HREF="amour_titien.html" "javascript:void(0)" onmouseout="SetIt(0);rep(document.pic,pic1)" onmouseover="SetIt(3);rep(document.pic,pic4)"><IMG NAME="discos" SRC="a35.gif" width="200" height="35" border=0 alt="Par ici la souris..."></A><BR>  	<A HREF="amour_michelange.html" "javascript:void(0)" onmouseout="SetIt(0);rep(document.pic,pic1)" onmouseover="SetIt(4);rep(document.pic,pic5)"><IMG NAME="programs" SRC="a45.gif" width="200" height="35" border=0 alt="Par ici la souris..."></A><BR>  	<A HREF="amour_cosimo.html" "javascript:void(0)" onmouseout="SetIt(0);rep(document.pic,pic1)" onmouseover="SetIt(5);rep(document.pic,pic6)"><IMG NAME="issues" SRC="a55.gif" width="200" height="35" border=0 alt="Par ici la souris..."></A><BR>     	</TD> <td align=right width=130> <table> <td> <IMG SRC="haut.gif" BORDER=0 WIDTH=122 HEIGHT=15><br> <IMG SRC="gauche.gif" BORDER=0 WIDTH=11 HEIGHT=115><IMG name="pic" SRC="amour.gif" BORDER=0 WIDTH=100 HEIGHT=115><IMG SRC="droit.gif" BORDER=0 WIDTH=11 HEIGHT=115><br> <IMG SRC="bas.gif" BORDER=0 WIDTH=122 HEIGHT=15> </table> </td> <td width=55></td> </table> </table> </table> </CENTER> <TABLE WIDTH=600> <td width=55></td> <td width=545> <CENTER><table width="398" BGCOLOR="C0C0C0" ALIGN=MIDDLE VALIGN=MIDDLE HEIGHT=25 NOWRAP noshade BORDER=0 bordercolor="#800000"><td><CENTER><FONT size=-1 FACE="libra BT"><B><A  HREF="menu.html"><A HREF="menu.html">D&eacute;but</A> <IMG WIDTH=10 HEIGHT=9 HSPACE=15 BORDER=0 SRC="bouton.gif">Index <IMG WIDTH=10 HEIGHT=9 HSPACE=15 BORDER=0 SRC="bouton.gif"><A HREF="mailto:sergero@mlink.net">@</A></center></td> </table> </td> </TABLE>   <CENTER><EMBED SRC="amour.mid" HEIGHT="2" WIDTH="2" AUTOSTART="true" HIDDEN="true"     LOOP="true" > </CENTER>    </BODY>  </HTML>                           
