// If you would like to see this in action please go to
//
http://buggedcom.50megs.com/protogallery.html
//
MovieClip.prototype.photoGallery = function(path, trgt, seed, maxSeed, format, fIn, thumbX, thumbY, thumbOutline, maskHeight, arrowSize, scrollSpeed, w, h, lbH, dist, jpgLoadTxt, txtXPos, txtYPos, txtStyle, fontName, txtSize, txtClr, html, bold, Italic, boxWidth, boxHeight, imageX, imageY, boxCentred, imageCentred, trgtImage) {
_global.maxSeed = maxSeed;
_global.seed = seed;
_global.path = path;
_global.thumbX = thumbX;
_global.thumbY = thumbY;
_global.format = format;
_global.trgtImage = trgtImage;
_global.imageCentred = imageCentred;
_global.dist = dist;
_global.boxWidth = boxWidth;
_global.imageX = imageX;
_global.imageY = imageY;
_global.fIn = fIn;
_global.scrollSpeed = scrollSpeed;
seedOrig = seed;
path._x = thumbX;
path._y = thumbY;
imageBox(boxHeight, imageY, boxCentred);
thumbBox(thumbOutline, maskHeight);
howManyNails(txtStyle, jpgLoadTxt, txtXPos, txtYPos, fontName, txtSize, txtClr, bdr, bdrClr, html, bold, italic);
path.createEmptyMovieClip("thumbs", 1);
path.thumbs._x = -dist;
scrollMask(maskHeight, thumbX, thumbY);
loadThumbnails(trgt, format, dist, prev_x, prev_w);
drawBar(w, h, lbH, dist);
onEnterFrame = function () {
imageProgressBarRun();
removeImageBar();
imageSquash();
imageCentre();
loadIn(path.imageStuff.image);
needArrows(arrowSize, dist, h);
path.thumbs["thumb"+seed].onPress = Press;
path.thumbs["thumb"+seed].onRelease = Release;
path.thumbs["thumb"+seed].onEnterFrame = EnterFrame;
if (allFadedIn != true) {
loadingBarRun(txtStyle);
if (seed){
prev_x = path.thumbs["thumb"+seed]._x;
prev_w = path.thumbs["thumb"+seed]._width;
if (path.thumbs["thumb"+seed]._width>0) {
removeBars();
if (path.thumbs["thumb"+seed]._alpha>=100) {
_global.seed = seed += 1;
drawBar(w, h, lbH, dist, prev_x, prev_w);
loadThumbnails(trgt, format, dist, prev_x, prev_w);
} else {
loadIn(path.thumbs["thumb"+seed]);
}
}
} else if (seed == maxSeed && path.thumbs["thumb"+seed]._width>0) {
loadOut(path.totalLB);
loadOut(path.totalLBB);
path[jpgLoadTxt].removeTextField();
removeBars();
loadIn(path.thumbs["thumb"+maxSeed]);
if (path.thumbs["thumb"+seed]._alpha>100) {
allFadedIn = true;
}
}
}
};
};
//
// Fading functions
//
function loadIn(mc) {
if (mc.getBytesLoaded() == mc.getBytesTotal() && mc._alpha<100 && mc._width>0) {
if (mc._alpha<100) {
mc._alpha += fIn;
}
}
}
function loadOut(mc) {
mc._alpha -= fIn;
}
//
// Thumbnail loading, masking and scrolling functions
//
function thumbAlign() {
if (alignThumbs == true) {
_global.thumbX = thumbX=boxWidth-2*thumbX;
}
}
function loadThumbnails(trgt, format, dist, prev_x, prev_w) {
path.thumbs.createEmptyMovieClip("thumb"+seed, seed).loadMovie(trgt+seed+format+"?nocache="+getDa te(), path.thumbs["thumb"+seed]);
path.thumbs["thumb"+seed]._alpha = 0;
path.thumbs["thumb"+seed]._x = prev_x+prev_w+dist;
}
function scrollMask(maskHeight, thumbX, thumbY) {
path.createEmptyMovieClip("scrollMask", maxSeed+5);
path.thumbs.setMask(path.scrollMask);
path.scrollMask.lineStyle(.25, 0x999999, 100);
path.scrollMask.beginFill(0xFF0000, 40);
path.scrollMask.moveTo(0, 0);
path.scrollMask.lineTo(Stage.width-2*thumbX, 0);
path.scrollMask.lineTo(Stage.width-2*thumbX, maskHeight);
path.scrollMask.lineTo(0, maskHeight);
path.scrollMask.lineTo(0, 0);
path.scrollMask.endFill();
}
function thumbBox(thumbOutline, maskHeight) {
if (thumbOutline == true) {
path.createEmptyMovieClip("thumbBox", 2);
path.thumbBox.lineStyle(.25, 0x999999, 100);
path.thumbBox.moveTo(-2, -2);
path.thumbBox.lineTo(Stage.width-2*thumbX+2, -2);
path.thumbBox.lineTo(Stage.width-2*thumbX+2, maskHeight+2);
path.thumbBox.lineTo(-2, maskHeight+2);
path.thumbBox.lineTo(-2, -2);
}
}
function needArrows(arrowSize, dist, h) {
if (path.scrollMask._width) {
if (runMeOnce != true) {
drawArrows(arrowSize);
placeArrows(arrowSize, dist, h);
runMeOnce == true;
path.arrows.arrowLeft._alpha = path.arrows.arrowRight._alpha=100;
}
path.arrows.arrowLeft.onPress = pAL;
path.arrows.arrowRight.onPress = pAR;
path.arrows.onMouseUp = rA;
path.thumbs.onEnterFrame = scrollDirection;
}
}
function drawArrows(arrowSize) {
path.createEmptyMovieClip("arrows", 3);
path.arrows.createEmptyMovieClip("arrowLeft", 1);
path.arrows.arrowLeft.lineStyle(.25, 0x999999, 100);
path.arrows.arrowLeft.beginFill(0x666666, 40);
path.arrows.arrowLeft.moveTo(0, 0);
path.arrows.arrowLeft.lineTo(0, 3*arrowSize/5);
path.arrows.arrowLeft.lineTo(-arrowSize/2, 3*arrowSize/5);
path.arrows.arrowLeft.lineTo(-arrowSize/2, 4*arrowSize/5);
path.arrows.arrowLeft.lineTo(-arrowSize, 3*arrowSize/10);
path.arrows.arrowLeft.lineTo(-arrowSize/2, -arrowSize/5);
path.arrows.arrowLeft.lineTo(-arrowSize/2, 0);
path.arrows.arrowLeft.lineTo(0, 0);
path.arrows.arrowLeft.endFill();
path.arrows.createEmptyMovieClip("arrowRight", 2);
path.arrows.arrowRight.lineStyle(.25, 0x999999, 100);
path.arrows.arrowRight.beginFill(0x666666, 40);
path.arrows.arrowRight.moveTo(0, 0);
path.arrows.arrowRight.lineTo(arrowSize/2, 0);
path.arrows.arrowRight.lineTo(arrowSize/2, -arrowSize/5);
path.arrows.arrowRight.lineTo(arrowSize, 3*arrowSize/10);
path.arrows.arrowRight.lineTo(arrowSize/2, 4*arrowSize/5);
path.arrows.arrowRight.lineTo(arrowSize/2, 3*arrowSize/5);
path.arrows.arrowRight.lineTo(0, 3*arrowSize/5);
path.arrows.arrowRight.lineTo(0, 0);
path.arrows.arrowRight.endFill();
}
function placeArrows(arrowSize, dist, h) {
if (thumbX+5>arrowSize) {
path.arrows.arrowLeft._x = -1.2*dist-5;
path.arrows.arrowRight._x = Stage.width-2*thumbX+dist+5;
path.arrows.arrowRight._y = path.arrows.arrowLeft._y=arrowSize/5;
} else {
path.arrows.arrowLeft._x = arrowSize+5;
path.arrows.arrowRight._x = 2*arrowSize;
path.arrows.arrowRight._y = path.arrows.arrowLeft._y=-arrowSize-2*h;
}
}
function pAL() {
path.thumbs.thumbsMove = -1;
path.thumbs.thumbsSlowDown=0;
}
function pAR() {
path.thumbs.thumbsMove = 1;
path.thumbs.thumbsSlowDown=0;
}
function rA() {
path.thumbs.thumbsSlowDown=1;
}
function scrollDirection() {
if (path.thumbs.thumbsMove == 1) {
if(runOncei!=true){
path.thumbs.scrollSpeed= scrollSpeed;
runOncei=true;
}
if(path.thumbs.thumbsSlowDown==0){
runOncei=false;
}
path.thumbs._x -= path.thumbs.scrollSpeed;
if (path.thumbs._x<-(path.thumbs._width)+(Stage.width-(2*thumbX))){
path.thumbs._x = -(path.thumbs._width)+(Stage.width-(2*thumbX));
}
} else if (path.thumbs.thumbsMove == -1) {
if(runOncei!=true){
path.thumbs.scrollSpeed= scrollSpeed;
runOncei=true;
}
if(path.thumbs.thumbsSlowDown==0){
runOncei=false;
}
path.thumbs._x += path.thumbs.scrollSpeed
if (path.thumbs._x>-dist) {
path.thumbs._x = -dist;
}
}
if (path.thumbs.thumbsSlowDown==1 && path.thumbs.thumbsMove == 1){
path.thumbs.scrollSpeed=0.85*path.thumbs.scrollSpe ed;
if(path.thumbs.scrollSpeed<=0.05 ){
path.thumbs.thumbsMove=0;
path.thumbs.thumbsSlowDown=0;
runOncei=false;
}
} else if (path.thumbs.thumbsSlowDown==1 && path.thumbs.thumbsMove == -1){
path.thumbs.scrollSpeed=0.85*path.thumbs.scrollSpe ed;
if(path.thumbs.scrollSpeed<=-0.05 ){
path.thumbs.thumbsMove=0;
path.thumbs.thumbsSlowDown=0;
runOncei=false;
}
}
}
function drawBar(w, h, lbH, dist, prev_x, prev_w) {
path.thumbs.createEmptyMovieClip("loadingBarBox"+s eed, 2*maxSeed+seed);
path.thumbs["loadingBarBox"+seed]._x = prev_x+prev_w+dist;
path.thumbs["loadingBarBox"+seed].lineStyle(.25, 0x999999, 100);
path.thumbs["loadingBarBox"+seed].moveTo(0, h);
path.thumbs["loadingBarBox"+seed].lineTo(w, h);
path.thumbs["loadingBarBox"+seed].lineTo(w, h-lbH);
path.thumbs["loadingBarBox"+seed].lineTo(0, h-lbH);
path.thumbs["loadingBarBox"+seed].lineTo(0, h);
path.thumbs.createEmptyMovieClip("loadingBar"+seed , maxSeed+seed);
path.thumbs["loadingBar"+seed]._xscale = 0;
path.thumbs["loadingBar"+seed]._x = prev_x+prev_w+dist;
path.thumbs["loadingBar"+seed].lineStyle(.25, 0x999999, 0);
path.thumbs["loadingBar"+seed].beginFill(0x999999, 100);
path.thumbs["loadingBar"+seed].moveTo(0, h);
path.thumbs["loadingBar"+seed].lineTo(w, h);
path.thumbs["loadingBar"+seed].lineTo(w, h-lbH);
path.thumbs["loadingBar"+seed].lineTo(0, h-lbH);
path.thumbs["loadingBar"+seed].lineTo(0, h);
path.thumbs["loadingBar"+seed].endFill();
}
function loadingBarRun(txtStyle) {
path.thumbs.byteL = path.thumbs["thumb"+seed].getBytesLoaded();
path.thumbs["loadingBar"+seed]._xscale = (path.thumbs.byteL/path.thumbs["thumb"+seed].getBytesTotal())*100;
loadingTxt(txtStyle);
path.totalLB._xscale = (seed/maxSeed)*100;
}
function removeBars() {
path.thumbs["loadingBar"+seed].removeMovieClip();
path.thumbs["loadingBarBox"+seed].removeMovieClip();
if (path.totalLB._alpha<0) {
path.totalLB.removeMovieClip();
path.totalLBB.removeMovieClip();
}
}
//
// Thumbnail loading progress functions
//
function howManyNails(txtStyle, jpgLoadTxt, txtXPos, txtYPos, fontName, txtSize, txtClr, bdr, bdrClr, html, bold, italic) {
path.createTextField(jpgLoadTxt, maxSeed, txtXPos, txtYPos, 200, 10);
path[jpgLoadTxt].autosize = true;
path[jpgLoadTxt].html = html;
path[jpgLoadTxt].type = "dynamic";
path[jpgLoadTxt].wordWrap = true;
path[jpgLoadTxt].selectable = false;
textFormat = new TextFormat();
textFormat.font = fontName;
textFormat.size = txtSize;
textFormat.color = "0x"+txtClr;
textFormat.bold = bold;
textFormat.italic = italic;
path[jpgLoadTxt].setNewTextFormat(textFormat);
loadingTxt(txtStyle);
xWidth = path[jpgLoadTxt].textWidth+10;
yHeight = path[jpgLoadTxt].textHeight/2;
path.createEmptyMovieClip("totalLBB", maxSeed+4);
path.totalLBB._x = xWidth;
path.totalLBB._y = txtYPos;
path.totalLBB.lineStyle(.25, 0x999999, 100);
path.totalLBB.moveTo(0, yHeight);
path.totalLBB.lineTo(60, yHeight);
path.totalLBB.lineTo(60, yHeight+(yHeight/2));
path.totalLBB.lineTo(0, yHeight+(yHeight/2));
path.totalLBB.lineTo(0, yHeight);
path.createEmptyMovieClip("totalLB", maxSeed+3);
path.totalLB._x = xWidth;
path.totalLB._y = txtYPos;
path.totalLB.lineStyle(.25, 0x999999, 0);
path.totalLB.beginFill(0x999999, 100);
path.totalLB.moveTo(0, yHeight);
path.totalLB.lineTo(60, yHeight);
path.totalLB.lineTo(60, yHeight+(yHeight/2));
path.totalLB.lineTo(0, yHeight+(yHeight/2));
path.totalLB.lineTo(0, yHeight);
path.totalLB.endFill();
path.totalLB._xscale = 0;
}
function loadingTxt(txtStyle) {
if (txtStyle == 1) {
path[jpgLoadTxt].text = maxSeed-seed+" thumbnails left to load. ";
} else if (txtStyle == 2) {
path[jpgLoadTxt].text = seed+" out of "+maxSeed+" thumbnails have loaded. ";
} else if (txtStyle == 3) {
if (maxSeed<10) {
addSpace = " ";
} else if (maxSeed<100) {
addSpace = " ";
} else if (maxSeed<1000) {
addSpace = " ";
}
path[jpgLoadTxt].text = " "+seed+" / "+maxSeed+addSpace;
} else if (txtStyle == 4) {
path[jpgLoadTxt].text = "There are "+(maxSeed-seed)+" more thumbnails to load. ";
}
}
//
// Main image box, loading, progress, positioning and size control functions
//
function imageBox(boxHeight, imageY, boxCentred) {
path.createEmptyMovieClip("imageStuff", -10);
if (boxCentred == true) {
_global.imageX = imageX=((Stage.width/2)-(boxWidth/2));
}
path.imageStuff.createEmptyMovieClip("imageBox", -10);
path.imageStuff.imageBox._x = -thumbX;
path.imageStuff.imageBox._y = -thumbY;
path.imageStuff.imageBox.lineStyle(.25, 0x999999, 100);
path.imageStuff.imageBox.beginFill(0xffffff, 100);
path.imageStuff.imageBox.moveTo(imageX, imageY);
path.imageStuff.imageBox.lineTo(imageX+boxWidth, imageY);
path.imageStuff.imageBox.lineTo(imageX+boxWidth, imageY+boxHeight);
path.imageStuff.imageBox.lineTo(imageX, imageY+boxHeight);
path.imageStuff.imageBox.lineTo(imageX, imageY);
path.imageStuff.imageBox.endFill();
path.imageStuff.createEmptyMovieClip("image", -9);
path.imageStuff.image._x = -thumbX+imageX;
path.imageStuff.image._y = -thumbY+imageY;
}
function imageLoad() {
path.imageStuff.image._alpha = 0;
path.imageStuff.image.loadMovie(trgtImage+path.iLo adNumber+format+"?nocache="+getDate(), 1);
}
function imageProgressBar() {
barWidth = boxWidth/2;
barHeight = barWidth/30;
if (barHeight<5) {
barHeight = 5;
}
path.imageStuff.createEmptyMovieClip("imageLoading BarBox", maxSeed+2);
path.imageStuff.imageLoadingBarBox.lineStyle(.25, 0x999999, 100);
path.imageStuff.imageLoadingBarBox.moveTo(0, 0);
path.imageStuff.imageLoadingBarBox.lineTo(barWidth , 0);
path.imageStuff.imageLoadingBarBox.lineTo(barWidth , barHeight);
path.imageStuff.imageLoadingBarBox.lineTo(0, barHeight);
path.imageStuff.imageLoadingBarBox.lineTo(0, 0);
path.imageStuff.createEmptyMovieClip("imageLoading Bar", maxSeed+1);
path.imageStuff.imageLoadingBar.lineStyle(.25, 0x999999, 0);
path.imageStuff.imageLoadingBar.beginFill(0x666666 , 100);
path.imageStuff.imageLoadingBar.moveTo(0, 0);
path.imageStuff.imageLoadingBar.lineTo(barWidth, 0);
path.imageStuff.imageLoadingBar.lineTo(barWidth, barHeight);
path.imageStuff.imageLoadingBar.lineTo(0, barHeight);
path.imageStuff.imageLoadingBar.lineTo(0, 0);
path.imageStuff.imageLoadingBar.endFill();
path.imageStuff.imageLoadingBar._xscale = 0;
path.imageStuff.imageLoadingBarBox._x = path.imageStuff.imageLoadingBar._x=-thumbX+imageX+boxWidth/4;
path.imageStuff.imageLoadingBarBox._y = path.imageStuff.imageLoadingBar._y=-thumbY+imageY+(2*path.imageStuff.imageBox._height/3);
}
function imageProgressBarRun() {
path.imageStuff.imageLoadingBar._xscale = (path.imageStuff.image.getBytesLoaded()/path.imageStuff.image.getBytesTotal())*100;
}
function removeImageBar() {
if (path.imageStuff.imageLoadingBar._xscale>=100) {
path.imageStuff.imageLoadingBar.removeMovieClip();
path.imageStuff.imageLoadingBarBox.removeMovieClip ();
}
}
function imageCentre() {
if (imageCentred == true && path.imageStuff.image._width>0) {
if (r1 != true) {
pIX = path.imageStuff.image._x;
pIY = path.imageStuff.image._y;
r1 = true;
}
path.imageStuff.image._x = pIX+(path.imageStuff.imageBox._width-path.imageStuff.image._width)/2;
path.imageStuff.image._y = pIY+(path.imageStuff.imageBox._height-path.imageStuff.image._height)/2;
}
}
function imageSquash() {
if (path.imageStuff.image._width>path.imageStuff.imag eBox._width && path.imageStuff.image._height0) {
path.imageStuff.image._xscale = (path.imageStuff.imageBox._width/path.imageStuff.image._width)*100;
path.imageStuff.image._yscale = path.imageStuff.image._xscale;
} else if (path.imageStuff.image._height>path.imageStuff.ima geBox._height && path.imageStuff.image._width0) {
path.imageStuff.image._yscale = (path.imageStuff.imageBox._height/path.imageStuff.image._height)*100;
path.imageStuff.image._xscale = path.imageStuff.image._yscale;
} else if (path.imageStuff.image._height>path.imageStuff.ima geBox._height && path.imageStuff.image._width>path.imageStuff.image Box._width && path.imageStuff.image._width>0) {
xS = (path.imageStuff.imageBox._width/path.imageStuff.image._width)*100;
yS = (path.imageStuff.imageBox._height/path.imageStuff.image._height)*100;
if (xS){
path.imageStuff.image._xscale = path.imageStuff.image._yscale=xS;
} else if (xS>yS) {
path.imageStuff.image._xscale = path.imageStuff.image._yscale=yS;
}
}
}
function squashReset() {
path.imageStuff.image._xscale = path.imageStuff.image._yscale=100;
}
//
// Image selection functions
//
function Release() {
if (path.iLoadNumber != this.iNumber) {
this.b = true;
path.iLoadNumber = this.iNumber;
squashReset();
imageLoad();
imageProgressBar();
}
}
function ReleaseOutside() {
this.b = false;
}
function EnterFrame() {
if (this.runOnce != true) {
this.iNumber = seed;
this.runOnce = true;
}
if (this.b == true) {
this.blink();
}
}
MovieClip.prototype.blink = function() {
(this.blinkTimer == null) ? this.blinkTimer=getTimer()+40 : null;
if (getTimer()>=this.blinkTimer) {
this.times += 0.5;
if (this.times == .5 || this.times == 1.5) {
this._alpha = 30;
} else if (this.times == 1 || this.times == 2) {
this._alpha = 100;
}
this.blinkTimer = null;
}
if (this.times>=2) {
this._alpha = 100;
this.blinkTimer = null;
this.b = false;
this.times = 0;
}
};
//
//
//usage
//
//
_root.createEmptyMovieClip("empty", 1);
photoGallery(_root.empty/*path*/, "thumbnails/DCP_"/*target*/, 1/*seed*/, 15/*maxSeed*/, ".jpg"/*format*/, 10/*fIn*/, 254/*thumbX*/, Stage.height-100/*thumbY*/, false/*thumbOutline*/, 80/*maskHeight*/, 15/*arrowSize*/, 10/*scrollSpeed*/, 50/*w*/, 10/*h*/, 3/*lBh*/, 5/*dist*/, jpgCount/*jpgLoadTxt*/, 0/*txtXPos*/, -20/*txtYPos*/, 2/*txtStyle*/, "Arial"/*fontName*/, 11/*txtSize*/, 999999/*txtClr*/, false/*html*/, false/*bold*/, false/*italic*/, 300/*boxWidth*/, 300/*boxHeight*/, 0/*imageX*/, 50/*imageY*/, true/*boxCentred*/, true/*imageCentred*/, "images/DCP_"/*trgtImage*/);
//
//
//
// This prototype assumes that the thumbnails and images are labeled in a consecutive order
// for example, the thumbnails go th_1, th_2, th_3 etc and the corresponding pictures have to
// go im_1, im_2, im_3 etc etc.
//
// Explaination of variables below:
// path is the target path to the empty mc that the gallery will load into.
// trgt is the directory to the thumbnails including the name beginner (ie thumbnails/DCP_45, the trgt = thumbnails/DCP_)
// seed is the begining thumnail that you want to load.
// maxSeed is the final image in the series, or the final image that you want loaded in.
// format is either ".jpg" or ".swf" depending on the type of file you are using.
// fIn is the fading in and out rate of the thumbails and other stuff.
// thumbX is the starting x position of the thumbnails.
// thumbY is the starting y position of the thumbnails.
// thumbOutline is either true or false depending on if you want a border around the thumbnail scroller.
// maskHeight is the height of the mask that hides the other thumbs in the scroller.
// arrowSize is the size of the arrows in the scroller.
// scrollSpeed is the rate in which you can scroll through the thumbs.
// w is the width of the thumbnail loading bar.
// h is the y position of the thumbnail loading bar.
// lbH is the height of the thumbnail loading bar.
// dist is the distance apart you want the thumnails from each other.
// jpgLoadTxt is what you want to name the created txt box ( in " " ) to see how many thumbs are left to load.
// txtXPos is the x position of the how many left to load txt box.
// txtYPos is the y position of the how many left to load txt box.
// txtStyle is the syle in which you will count down the loading thumbnails ( 1,2,3,4 ) .
// // // 1 = 241 thumbnails left to load.
// // // 2 = 9 out of 250 thumbnails have loaded.
// // // 3 = 9 / 250
// // // 4 = There are 241 more thumnails left to load.
// fontName is the name of the system font you want to use for the how many left to load txt box ( ie "Arial").
// txtSize is the size of the font for the how many left to load txt box.
// txtClr is the text colour of the how many left to load txt box ( in hex form, ie for white FFFFFF ).
// html is true or false depending if you want the html format switched on or of for the how many left to load txt box.
// bold is true or false for the how many left to load txt box.
// italic is true or false for the how many left to load txt box.
// boxWidth is the width of the image box.
// boxHeight is the height of the image box.
// imageX is the x position of the image box.
// imageY is the y position of the image box.
// boxCentred is true or false depending on if you want the image box centred to the stage along the x-axis. If true, it overides imageX but not imageY.
// imageCentred is true or false depending if you want to centre the loaded photo to the middle of the image box.
// trgtImage is the target directory that you images are stored in including the name beginner (ie images/DCP_45, the trgtImage = images/DCP_)
//
// That's about all i can be arsed to explain. It is a long code and it is my first major piece of programming so although I think it's top notch
// I'm sure it could be narrowed down somewhat. If you have any additions or changes to the script please post them, it'll be great feedback
// for me.
//
// ta ta
// buggedcom
// (aka OliverLillie)
// courteously debugged by d-lee