Click to See Complete Forum and Search --> : Simple javascript problem


GeordieLee
05-11-2003, 01:54 PM
Hi, I'm new to this forum and to javascript so please be gentle! :)

Basicaly, I'm trying to get the below javascript into a js file so I can use it on multiple pages. However, I don't seem to be able to work out what to include/take out. Can anyone help?

<html>
<head>
<SCRIPT LANGUAGE="javascript">
/* **********************************************************************************
* This code was created by Jim Young of www.requestcode.com . *
* You may use this code at no charge. All I ask is that you give me *
* credit. Please visit my site for more scripts like this one. *
**********************************************************************************
Enter your links or text in the array below that you want to scroll. Mak sure that you use single quotes within
the double quotes
*/
var msg=new Array()
msg[0]="<FONT FACE='Arial'><B><I><A HREF='http://www.requestcode.com'>Visit Request Code for more great scripts like this one!</A><I></B></FONT>"
msg[1]="<FONT FACE='Arial'><B><I><A HREF='http://www.wsabstract.com'>Visit Website Abstraction for great JavaScripts, Tutorials and Forums!</A><I></B></FONT>"
msg[2]="<FONT FACE='Arial'><B><I><A HREF='http://www.dynamicdrive.com'>Visit Dynamic Drive for the excellent DHTML scripts!</A><I></B></FONT>"
msg[3]="<FONT FACE='Arial'><B><I><A HREF='http://www.htmlgoodies.com'>Visit HTML Goodies for great JavaScript and HTML Tutorials!</A><I></B></FONT>"

/* The variables below are the ones you want to change */

speed=150 // Sets the speed in milliseconds at which the link or text scrolls.
var divwidth=600 // Sets the width of the div or layer in pixels. You will have to play with this to get it set correctly.
var divheight=20 // Sets the height of the div or layer in pixels. Same as above.

/*
The variables divincbt, divinctb, divincrl and divinclr set the increment in pixels that the div that contains the text
or links is moved. Which one is used is determined by the direction that you pick in the variable whichscroll.
The variable divinctb would be used if you set whichscroll to 1, divinctb if you set whichscroll to 2, divincrl if
you set whichscroll to 3 and divinclr if you set whichscroll to 4. You can change these variables to speed up
or slow down the movement of the scroll.
*/

var divincbt=1
var divinctb=-1
var divincrl=10
var divinclr=-10

var divpause=3000 // Sets how long to pause in milliseconds before scrolling the next link or text.

var divtop="50" // divtop and divleft set the top and left positions of the container div or layer in pixels.
var divleft="10"

var divcolor="white" // Sets the background color of the div or layer

var divname1="scroll2" // Sets the name of your div or layer for the first link or text that is displayed
var divname2="scroll3" // Sets the name of your div or layer for the next link or text to be displayed

/*
The variable whichscroll is used to set the direction of the scrolling. It is currently set to 1.
1 = Bottom to Top
2 = Top to Bottom
3 = Right to Left
4 = Left to Right
*/
var whichscroll="1"

/* END OF CONFIGURATION VARIABLES */

/* THERE IS NO NEED TO CHANGE THE VARIABLES OR SCRIPTS BELOW */

var divinc
var stopposa
var stopposb
var scrollmsga
var scrollmsgb
var thediva
var thedivb
var posa
var posb
var i=msg.length
var firsttime="y"
var divprop
var whichdiv=divname1
if(whichscroll=="1")
{
stopposa=0
stopposb=divheight*-1
divprop="top"
divinc=divincbt
}
if(whichscroll=="2")
{
stopposa=0
stopposb=divheight
divprop="top"
divinc=divinctb
}
if(whichscroll=="3")
{
stopposa=0
stopposb=divwidth*-1
divprop="left"
divinc=divincrl
}
if(whichscroll=="4")
{
stopposa=1
stopposb=divwidth+2
divprop="left"
divinc=divinclr
}

function Scrollboxa(obja)
{
savobja=obja
posa=posa-divinc
if(((whichscroll=="1" || whichscroll=="3")&&(posa<=stopposa))||
((whichscroll=="2" || whichscroll=="4")&&(posa>=stopposa)))
{
clearTimeout(scrollmsga)
setTimeout("scrollit()",divpause)
}
else
{
if(document.getElementById) // IE5 and NS6
{
eval("elma.style."+divprop+"=posa")
elma.style.visibility="visible"
}
if(document.layers) // NS4+
{
eval("obja."+divprop+"=posa")
document.main.visibility="show"
}
scrollmsga=setTimeout("Scrollboxa(savobja)",speed)
}
}
function Scrollboxb(objb)
{
savobjb=objb
posb=posb-divinc
if(((whichscroll=="1" || whichscroll=="3")&&(posb<=stopposb))||
((whichscroll=="2" || whichscroll=="4")&&(posb>=stopposb)))
{
clearTimeout(scrollmsgb)
}
else
{
if(document.getElementById) // IE5 and NS6
{
eval("elmb.style."+divprop+"=posb")
}
if(document.layers) // NS4+
{
eval("objb."+divprop+"=posb")
objb.visibility="show"
}
scrollmsgb=setTimeout("Scrollboxb(savobjb)",speed)
}
}
function scrollit()
{
i++
if(i>=msg.length)
{i=0}
posa=stopposb*-1
posb=0
if(firsttime=="y")
{
firsttime= "n"
if(document.getElementById) // IE5 and NS6
{
elma=document.getElementById(divname1)
elma.innerHTML=msg[i]
}
if(document.layers) // NS4+
{
thediva=eval("document.main.document."+divname1)
thediva.document.write(msg[i])
thediva.document.close()
}
Scrollboxa(thediva)
}
else
{
if(whichdiv==divname1)
{
if(document.getElementById) // IE5 and NS6
{
elmb=document.getElementById(divname1)
elma=document.getElementById(divname2)
elma.innerHTML=msg[i]
}
if(document.layers) // NS4+
{
thedivb=eval("document.main.document."+divname1)
thediva=eval("document.main.document."+divname2)
thediva.document.write(msg[i])
thediva.document.close()
}
Scrollboxb(thedivb)
whichdiv=divname2
Scrollboxa(thediva)
}
else
{
if(document.getElementById) // IE5 and NS6
{
elmb=document.getElementById(divname2)
elma=document.getElementById(divname1)
elma.innerHTML=msg[i]
}
if(document.layers) // NS4+
{
thedivb=eval("document.main.document."+divname2)
thediva=eval("document.main.document."+divname1)
thediva.document.write(msg[i])
thediva.document.close()
}
Scrollboxb(thedivb)
whichdiv=divname1
Scrollboxa(thediva)
}
}
}
</SCRIPT>
<STYLE>
A{text-decoration:none}
a:link {color:blue}
a:visited{color:00CC00}
a:active{color:blue}
a:hover{color:red}
</STYLE>
</head>
<body onLoad="scrollit()">
<CENTER><FONT FACE="Arial"><B> Scroll Along</B></FONT></CENTER>
<SCRIPT LANGUAGE="JavaScript">
/* You should no have to change the scripts below */
if(document.getElementById) // IE5 and NS6
{
document.write('<DIV STYLE="position:relative;top:'+divtop+';left:'+divleft+';width:'+divwidth+';height:'+divheight+';visibility :visible;background-color:'+divcolor+';overflow:hidden;clip:rect(0,'+divwidth+','+divheight+',0)">')
document.write('<DIV STYLE="position:relative;top:0;left:0;width:'+divwidth+';height:'+divheight+'">')
document.write('<DIV ID='+divname1+' STYLE="position:absolute;top:0;left:0;width:'+divwidth+';height:'+divheight+'"></DIV>')
document.write('<DIV ID='+divname2+' STYLE="position:absolute;top:0;left:0;width:'+divwidth+';height:'+divheight+';visibility:hidden"></DIV>')
document.write('</DIV></DIV>')
}
if(document.layers) // NS4+
{
document.write('<ILAYER ID="main" TOP='+divtop+' LEFT='+divleft+' WIDTH='+divwidth+' HEIGHT='+divheight+' BGCOLOR='+divcolor+' VISIBILITY=hide>')
document.write('<LAYER ID='+divname1+' LEFT=0 TOP=0 WIDTH='+divwidth+'></LAYER>')
document.write('<LAYER ID='+divname2+' LEFT=0 TOP='+divheight+' WIDTH='+divwidth+'>')
document.write('</LAYER></ILAYER>')
}
</SCRIPT>
</body>
</html>

GeordieLee
05-11-2003, 01:56 PM
Alternatively, if u know of a simpler code that does the same thing cud u point me to it. Cheers! :D

David Harrison
05-11-2003, 02:18 PM
Hi, I started reading your code but there's just so much of it, I'm gonna take it home and have a look at it but could you just give me a general idea of what it does in case I mis-interpret some of the code.

GeordieLee
05-11-2003, 02:24 PM
Basically it just scrolls text upwards. I don't even need that particular code, just something that does the same thing. I'm trying to find an alternative now.

Thanks for the help tho.

David Harrison
05-11-2003, 02:35 PM
Well, actually now that I thing about it you could just put everything WITHIN the script tags in the head of the source inside a separate .js file and then in the head put <script language="javascript" src="whatever.js"></script>
and the script tags further down the page have on every page (or lump them together into a big function in the .js file and then instead of all of those document.write's you coule just have <script language="javascript">writestuff();</script>, you wouldn't need to put the source of the .js file because you've already done that in the head.)

If you want I could do it for ya seein as how you're new, it'd only take two ticks.

GeordieLee
05-11-2003, 03:22 PM
Originally posted by lavalamp
Well, actually now that I thing about it you could just put everything WITHIN the script tags in the head of the source inside a separate .js file and then in the head put <script language="javascript" src="whatever.js"></script>
and the script tags further down the page have on every page (or lump them together into a big function in the .js file and then instead of all of those document.write's you coule just have <script language="javascript">writestuff();</script>, you wouldn't need to put the source of the .js file because you've already done that in the head.)

If you want I could do it for ya seein as how you're new, it'd only take two ticks.

If you wouldn't mind, that'd be great. Thanks mate. :)

GeordieLee
05-12-2003, 04:17 PM
Anyone else got an alternative/advice????

khalidali63
05-12-2003, 04:50 PM
Is this what you want...
http://68.145.35.86/temp/geordielee/geordielee_scroller.html

GeordieLee
05-12-2003, 04:57 PM
Yeah. I'm not exactly sure on how to put it on every page tho.

lakshman
05-12-2003, 08:07 PM
Hi,

if I have understood you correctly, then you have to do the following.

Step 1. extract all code within your multiple deceleration of
<SCRIPT LANGUAGE="javascript">
</SCRIPT>

and put them in one file (myFile.js) with only ONE
<SCRIPT LANGUAGE="javascript">
.
.
.
.
</SCRIPT>


Step 2. Include this file in all your other files.

<html >
<head>
<%@ include file="/myFile.js"%>
.
.
.
.

GeordieLee
05-13-2003, 10:15 AM
Sorry, wasn't thinking straight last night.

Thanks everyone for ur help. It works fine. :D