Link to home
Start Free TrialLog in
Avatar of CCFD1Bill
CCFD1Bill

asked on

JavaScript Conflict

Have two scripts on a webpage...one that changes the header image depending on the time of day and the other is a slideshow of several images.  They work fine on different pages but the "time of day" script does not work (but the slideshow does) when on the same page.  Any suggestions to get them working together on the same page?

Here are the scripts....


HEAD---------->

//SCRIPT ONE - Time Of Day

<script type="text/javascript">
function onInit()
{
var date = new Date();
var time = date.getHours();

//image for dawn
if (time >= 6 && time < 10 ){
document.getElementById("picture").src = "http://www.domain.com/images/dawn.jpg";
}

//image for dusk
else if (time >= 18 && time < 22 ){
document.getElementById("picture").src = "http://www.domain.com/images/dusk.jpg";
}

//image for night
else if (time >= 22 || time < 6){
document.getElementById("picture").src = "http://www.domain.com/images/night.jpg";
}

//image for day
else {
document.getElementById("picture").src = "http://www.domain.com/images/day.jpg";
}
}
</script>

=============================

BODY---------->

//SCRIPT ONE - Time Of Day

<body onload='onInit()'>

<td colspan="2"><img src="http://www.domain.com/images/day.jpg" width="700" height="100" border="0" id="picture" class="picture"/></td>


//SCRIPT TWO - Slideshow

<script language="" type="text/javascript">
/***********************************************
* Fade-in image slideshow script- &copy; Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var slideshow_width='500px' //SET IMAGE WIDTH
var slideshow_height='100px' //SET IMAGE HEIGHT
var pause=6000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)

var fadeimages=new Array()
//SET 1) IMAGE PATHS, 2) optional link, 3), optional link target:
//SET 1) IMAGE PATHS, 2) optional link, 3), optional link target:
fadeimages[0]=["images/main01.jpg", "", ""] //plain image syntax
fadeimages[1]=["images/main02.jpg", "", ""] //plain image syntax
fadeimages[2]=["images/main03.jpg", "", ""] //plain image syntax

////NO need to edit beyond here/////////////

var preloadedimages=new Array()
for (p=0;p<fadeimages.length;p++){
preloadedimages[p]=new Image()
preloadedimages[p].src=fadeimages[p][0]
}

var ie4=document.all
var dom=document.getElementById

if (ie4||dom)
document.write('<div style="position:relative;width:'+slideshow_width+';height:'+slideshow_height+';overflow:hidden"><div  id="canvas0" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity=10);-moz-opacity:10"></div><div id="canvas1" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity=10);-moz-opacity:10;visibility: hidden"></div></div>')
else
document.write('<img name="defaultslide" src="'+fadeimages[0][0]+'">')

var curpos=10
var degree=10
var curcanvas="canvas0"
var curimageindex=0
var nextimageindex=1

function fadepic(){
if (curpos<100){
curpos+=10
if (tempobj.filters)
tempobj.filters.alpha.opacity=curpos
else if (tempobj.style.MozOpacity)
tempobj.style.MozOpacity=curpos/101
}
else{
clearInterval(dropslide)
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj.innerHTML=insertimage(nextimageindex)
nextimageindex=(nextimageindex<fadeimages.length-1)? nextimageindex+1 : 0
var tempobj2=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj2.style.visibility="hidden"
setTimeout("rotateimage()",pause)
}
}

function insertimage(e){
var tempcontainer=fadeimages[e][1]!=""? '<a href="'+fadeimages[e][1]+'" target="'+fadeimages[e][2]+'">' : ""
tempcontainer+='<img src="'+fadeimages[e][0]+'" border="0">'
tempcontainer=fadeimages[e][1]!=""? tempcontainer+'</a>' : tempcontainer
return tempcontainer
}

function rotateimage(){
if (ie4||dom){
resetit(curcanvas)
var crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.style.zIndex++
tempobj.style.visibility="visible"
var temp='setInterval("fadepic()",50)'
dropslide=eval(temp)
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
}
else
document.images.defaultslide.src=fadeimages[curimageindex][0]
curimageindex=(curimageindex<fadeimages.length-1)? curimageindex+1 : 0
}

function resetit(what){
curpos=10
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
if (crossobj.filters)
crossobj.filters.alpha.opacity=curpos
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=curpos/101
}

function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.innerHTML=insertimage(curimageindex)
rotateimage()
}

if (ie4||dom)
window.onload=startit
else
setInterval("rotateimage()",pause)
     
</script>
Avatar of Justin Mathews
Justin Mathews

Your <body onload='onInit()'> is getting overridden by window.onload=startit

Change <body onload='onInit()'> to <body>
and modify startit() as:

function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.innerHTML=insertimage(curimageindex)
rotateimage()
onInit();
}
Avatar of CCFD1Bill

ASKER

Changed function onInit() to...

function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.innerHTML=insertimage(curimageindex)
rotateimage()
onInit();
}

and changed <body onload='onInit()'> to <body>

Is that correct?  The slideshow script still works but the time-of-day script does not...even when it is on its own page.
SOLUTION
Avatar of Justin Mathews
Justin Mathews

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Here is what I have now- although the time-of-day script is still not working.

HEAD---------->

//SCRIPT ONE - Time Of Day

<script type="text/javascript">
function onInit()
{
var date = new Date();
var time = date.getHours();

//image for dawn
if (time >= 6 && time < 10 ){
document.getElementById("picture").src = "http://www.domain.com/images/dawn.jpg";
}

//image for dusk
else if (time >= 18 && time < 22 ){
document.getElementById("picture").src = "http://www.domain.com/images/dusk.jpg";
}

//image for night
else if (time >= 22 || time < 6){
document.getElementById("picture").src = "http://www.domain.com/images/night.jpg";
}

//image for day
else {
document.getElementById("picture").src = "http://www.domain.com/images/day.jpg";
}
}
</script>

=============================

BODY---------->

//SCRIPT ONE - Time Of Day

<body>

<td colspan="2"><img src="http://www.domain.com/images/day.jpg" width="700" height="100" border="0" id="picture" class="picture"/></td>


//SCRIPT TWO - Slideshow

<script language="" type="text/javascript">
/***********************************************
* Fade-in image slideshow script- &copy; Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var slideshow_width='500px' //SET IMAGE WIDTH
var slideshow_height='100px' //SET IMAGE HEIGHT
var pause=6000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)

var fadeimages=new Array()
//SET 1) IMAGE PATHS, 2) optional link, 3), optional link target:
//SET 1) IMAGE PATHS, 2) optional link, 3), optional link target:
fadeimages[0]=["images/main01.jpg", "", ""] //plain image syntax
fadeimages[1]=["images/main02.jpg", "", ""] //plain image syntax
fadeimages[2]=["images/main03.jpg", "", ""] //plain image syntax

////NO need to edit beyond here/////////////

var preloadedimages=new Array()
for (p=0;p<fadeimages.length;p++){
preloadedimages[p]=new Image()
preloadedimages[p].src=fadeimages[p][0]
}

var ie4=document.all
var dom=document.getElementById

if (ie4||dom)
document.write('<div style="position:relative;width:'+slideshow_width+';height:'+slideshow_height+';overflow:hidden"><div  id="canvas0" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity=10);-moz-opacity:10"></div><div id="canvas1" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity=10);-moz-opacity:10;visibility: hidden"></div></div>')
else
document.write('<img name="defaultslide" src="'+fadeimages[0][0]+'">')

var curpos=10
var degree=10
var curcanvas="canvas0"
var curimageindex=0
var nextimageindex=1

function fadepic(){
if (curpos<100){
curpos+=10
if (tempobj.filters)
tempobj.filters.alpha.opacity=curpos
else if (tempobj.style.MozOpacity)
tempobj.style.MozOpacity=curpos/101
}
else{
clearInterval(dropslide)
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj.innerHTML=insertimage(nextimageindex)
nextimageindex=(nextimageindex<fadeimages.length-1)? nextimageindex+1 : 0
var tempobj2=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj2.style.visibility="hidden"
setTimeout("rotateimage()",pause)
}
}

function insertimage(e){
var tempcontainer=fadeimages[e][1]!=""? '<a href="'+fadeimages[e][1]+'" target="'+fadeimages[e][2]+'">' : ""
tempcontainer+='<img src="'+fadeimages[e][0]+'" border="0">'
tempcontainer=fadeimages[e][1]!=""? tempcontainer+'</a>' : tempcontainer
return tempcontainer
}

function rotateimage(){
if (ie4||dom){
resetit(curcanvas)
var crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.style.zIndex++
tempobj.style.visibility="visible"
var temp='setInterval("fadepic()",50)'
dropslide=eval(temp)
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
}
else
document.images.defaultslide.src=fadeimages[curimageindex][0]
curimageindex=(curimageindex<fadeimages.length-1)? curimageindex+1 : 0
}

function resetit(what){
curpos=10
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
if (crossobj.filters)
crossobj.filters.alpha.opacity=curpos
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=curpos/101
}

function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.innerHTML=insertimage(curimageindex)
rotateimage()
onInit();
}

if (ie4||dom)
window.onload=startit
else
setInterval("rotateimage()",pause)
     
</script>
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Problem solved.