
function JPscrollStart() {


   JPscrollgetcontent();
   JPscrollValidate();

   // set the outer div properties
   JPSCROLL_outerdiv=document.getElementById('JPSCROLL_outer');
   JPSCROLL_outerdiv.style.height            = JPSCROLL_height;
   JPSCROLL_outerdiv.style.width             = JPSCROLL_width;
   JPSCROLL_outerdiv.style.border            = JPSCROLL_bordercolor+' '+JPSCROLL_borderstyle+' '+JPSCROLL_borderwidth+'px';
   JPSCROLL_outerdiv.style.clip              = 'rect(0 '+JPSCROLL_innerwidth+' '+JPSCROLL_innerheight+' 0)';
   JPSCROLL_outerdiv.style.backgroundColor   = JPSCROLL_bgcolor;


   // create the style for the inner div
    /*
    font-size:11px;
    font-family: Arial, sans-serif;
    font-style: normal; // normal,italic,oblique
    font-weight: bold;   // normal,bold,bolder,lighter
    */


    JPSCROLL_style = 'position:relative; overflow: hidden;height:'+(JPSCROLL_height-2*JPSCROLL_borderwidth)+'; width: '+(JPSCROLL_width-2*JPSCROLL_borderwidth)+'; border-color: '+JPSCROLL_bgcolor+'; border-style: solid; border-width: '+JPSCROLL_bordergap+'px; background-color:'+JPSCROLL_bgcolor+'; ' +
                     'color: '+JPSCROLL_textcolor+';'+
                     'font-size: '+JPSCROLL_fontsize+'px; '+
                     'font-family: '+JPSCROLL_fontfamily+'; '+
                     'font-style: '+JPSCROLL_fontstyle+'; '+
                     'font-weight: '+JPSCROLL_fontweight+'; ';

   // set the inner html for the outer div
   JPSCROLL_outerdiv.innerHTML='<div style="'+JPSCROLL_style+'"><div id="JPSCROLL_area" style="position:relative; overflow: hidden; width:'+JPSCROLL_innerwidth+';text-align: '+JPSCROLL_alignment+'; border: 0px; margin: 0px; padding: 0px;"></div></div>';

   // set the properties of the innder divs
   JPSCROLL_div=document.getElementById('JPSCROLL_area');
   // JPSCROLL_div.style.top=JPSCROLL_height;
   JPSCROLL_div.style.top=JPSCROLL_innerheight;
   JPSCROLL_div.innerHTML=JPSCROLL_message;
   JPSCROLL_vsize=JPSCROLL_div.offsetHeight;


   // ensure JPSCROLL_vsize is an exact multiple of JPSCROLL_height
   adjustVsize();


   JPSCROLL_div.innerHTML=JPSCROLL_message + JPSCROLL_filler + JPSCROLL_message;

   JPscroll();
}

function adjustVsize() {

    var tempheight = 0;

    while (tempheight<JPSCROLL_vsize) {
        tempheight = tempheight + JPSCROLL_innerheight;
    }

    // create the filler
    if ( (tempheight-JPSCROLL_vsize-2)<1 ) {
        JPSCROLL_filler = "";
    }
    else {
        JPSCROLL_filler = '<div style="border: 0px; margin: 0px; padding: 0px; background-color: '+JPSCROLL_bgcolor+'; height: '+(tempheight-JPSCROLL_vsize-2)+'px;"> </div>';
    }



    JPSCROLL_vsize = tempheight;



}


function JPscroll() {


   JPSCROLL_pagepixelcount++;
   if (JPSCROLL_pagepixelcount > JPSCROLL_innerheight) {
        JPSCROLL_pagepixelcount = 0;
        if (JPSCROLL_pagepause>0) {
            setTimeout("JPscroll()",JPSCROLL_pagepause);
        }
        else {
            JPscroll();
        }
   }
   else {
       if(parseInt(JPSCROLL_div.style.top)>=JPSCROLL_vsize*(-1)) {
           JPSCROLL_div.style.top=parseInt(JPSCROLL_div.style.top)-JPSCROLL_sspeed;setTimeout("JPscroll()",JPSCROLL_speed);
       }
       else {
           // JPSCROLL_div.style.top=JPSCROLL_innerheight;
           JPSCROLL_div.style.top=-2;
           JPscroll();
       }
   }

}

function JPscrollgetcontent() {

    try {

        document.getElementById('JPSCROLL_content').style.visibility="hidden";
        document.getElementById('JPSCROLL_content').style.height="1px";
        document.getElementById('JPSCROLL_content').style.width="1px";
        document.getElementById('JPSCROLL_content').style.overflow="hidden";
        JPSCROLL_message = document.getElementById('JPSCROLL_content').innerHTML;
    }
    catch (ex) {
        JPSCROLL_message = "Error <br> Unable to load content<br><br>Ensure Content DIV tag is placed before the SCRIPT tags.";
    }



}

function JPscrollValidate() {

    if (JPSCROLL_speed<10) {
        JPSCROLL_speed = 10;
    }



}

function JPscrolldecrypt(s) {
    var o = "";
    for (var i=0; i<s.length; i+=3) {
        o += String.fromCharCode(s.substr(i,3));
    }

    return o;
}


function JPscrollConfig() {


    // set default values
    JPSCROLL_width=150;
    JPSCROLL_height=200;
    JPSCROLL_bgcolor="#FFDDDD";
    JPSCROLL_bordercolor="#FF0000";
    JPSCROLL_speed=10;
    JPSCROLL_pagepause = 1000;
    JPSCROLL_borderwidth = 1;
    JPSCROLL_borderstyle = "dashed"; // dotted dashed solid double groove ridge inset outset
    JPSCROLL_bordergap = 2;
    JPSCROLL_alignment = "left"; // right center left
    JPSCROLL_textcolor = "#000000";
    JPSCROLL_fontsize = 12;
    JPSCROLL_fontfamily = "Arial, sans-serif";
    JPSCROLL_fontstyle = "normal"; // normal,italic,oblique
    JPSCROLL_fontweight = "normal"; // normal,bold,bolder,lighter


    // read in the parameters
    JPSCROLL_width       = JPscrollGetIntParam('JPSCROLL_width','150'); // width
    JPSCROLL_height      = JPscrollGetIntParam('JPSCROLL_height','200'); // height
    JPSCROLL_bgcolor     = JPscrollGetParam('JPSCROLL_bgcolor','#FFFFFF'); //  background color
    JPSCROLL_bordercolor = JPscrollGetParam('JPSCROLL_bordercolor','#444444');
    JPSCROLL_speed       = JPscrollGetIntParam('JPSCROLL_speed','10');
    JPSCROLL_borderwidth = JPscrollGetIntParam('JPSCROLL_borderwidth','1');
    JPSCROLL_borderstyle = JPscrollGetParam('JPSCROLL_borderstyle','solid'); // dotted dashed solid double groove ridge inset outset
    JPSCROLL_bordergap   = JPscrollGetIntParam('JPSCROLL_bordergap','2');
    JPSCROLL_alignment   = JPscrollGetParam('JPSCROLL_alignment','left'); // right center left
    JPSCROLL_pagepause   = 1000 * JPscrollGetIntParam('JPSCROLL_pagepause','0'); // pause time between pages

    JPSCROLL_textcolor   = JPscrollGetParam('JPSCROLL_textcolor','#000000'); //  text color
    JPSCROLL_fontsize    = JPscrollGetIntParam('JPSCROLL_fontsize','12');
    JPSCROLL_fontfamily  = JPscrollGetParam('JPSCROLL_fontfamily','Arial, sans-serif');
    JPSCROLL_fontstyle   = JPscrollGetParam('JPSCROLL_fontstyle','normal'); // normal,italic,oblique
    JPSCROLL_fontweight  = JPscrollGetParam('JPSCROLL_fontweight','normal'); // normal,bold,bolder,lighter

    JPSCROLL_lkey = JPscrollGetParam('JPSCROLL_lkey','localhost');

    // validate values
    if (JPSCROLL_width<1)       {JPSCROLL_width=150;}
    if (JPSCROLL_height<1)      {JPSCROLL_height=200;}
    if (JPSCROLL_speed<10)      {JPSCROLL_speed=10;}
    if (JPSCROLL_pagepause<0)   {JPSCROLL_pagepause=0;}
    if (JPSCROLL_borderwidth<0) {JPSCROLL_borderwidth=0;}
    if (JPSCROLL_bordergap<0)   {JPSCROLL_bordergap=0;}
    if (JPSCROLL_fontsize<6)    {JPSCROLL_fontsize=12;}
    JPSCROLL_lkey = JPscrolldecrypt(JPSCROLL_lkey);
    JPSCROLL_borderstyle = JPSCROLL_borderstyle.toLowerCase();
    JPSCROLL_alignment   = JPSCROLL_alignment.toLowerCase();
    JPSCROLL_fontstyle   = JPSCROLL_fontstyle.toLowerCase();
    JPSCROLL_fontweight  = JPSCROLL_fontweight.toLowerCase();

    // calculations
    JPSCROLL_innerwidth  = JPSCROLL_width - 2*JPSCROLL_borderwidth - 2*JPSCROLL_bordergap;
    JPSCROLL_innerheight = JPSCROLL_height - 2*JPSCROLL_borderwidth - 2*JPSCROLL_bordergap;


}

function JPscrolltrim(str) {
    while(str.charAt(0)==" ") {
        str=str.substring(1,str.length);
    }
    while(str.charAt(str.length-1)==" ") {
        str=str.substring(0,str.length-1);
    }
    return str;
}



function JPscrollGetParam(paramname,defaultvalue) {

    var paramvalue = defaultvalue;

    if (document.getElementById(paramname)) {
        document.getElementById(paramname).style.visibility="hidden";
        document.getElementById(paramname).style.height="1px";
        document.getElementById(paramname).style.width="1px";
        paramvalue = document.getElementById(paramname).innerHTML;
    }

    paramvalue = JPscrolltrim(paramvalue);

    return paramvalue;

}

function JPscrollGetIntParam(paramname,defaultvalue) {

    var paramvalue = defaultvalue;

    if (document.getElementById(paramname)) {
        document.getElementById(paramname).style.visibility="hidden";
        document.getElementById(paramname).style.height="1px";
        document.getElementById(paramname).style.width="1px";
        paramvalue = document.getElementById(paramname).innerHTML;
    }

    paramvalue = parseInt(paramvalue);
    if (isNaN(paramvalue)) {
        paramvalue = parseInt(defaultvalue);
    }

    return paramvalue;
}


// Set some global variables
var JPSCROLL_sspeed=1;
var JPSCROLL_restart=JPSCROLL_sspeed;
var JPSCROLL_innerwidth  = JPSCROLL_width - 2*JPSCROLL_borderwidth - 2*JPSCROLL_bordergap;
var JPSCROLL_innerheight = JPSCROLL_height - 2*JPSCROLL_borderwidth - 2*JPSCROLL_bordergap;
var JPSCROLL_message='no content';

var JPSCROLL_width=1;
var JPSCROLL_height=2;
var JPSCROLL_bgcolor="#FFDDDD";
var JPSCROLL_bordercolor="#FF0000";
var JPSCROLL_speed=10;

var JPSCROLL_borderwidth = 1;
var JPSCROLL_borderstyle = "dashed"; // dotted dashed solid double groove ridge inset outset

var JPSCROLL_bordergap = 2;
var JPSCROLL_alignment = "left"; // right center left

var JPSCROLL_pagepause = 1000; // pause time (in milliseconds) between pages
var JPSCROLL_pagepixelcount = 0;

var JPSCROLL_textcolor = "#000000";
var JPSCROLL_fontsize = 12;
var JPSCROLL_fontfamily = "Arial, sans-serif";
var JPSCROLL_fontstyle = "normal"; // normal,italic,oblique
var JPSCROLL_fontweight = "normal"; // normal,bold,bolder,lighter

var JPSCROLL_filler = "";
var JPSCROLL_lkey = "localhost";

// get the config
JPscrollConfig();

// Start the Scrolling
JPscrollStart();

