Recently i did a interesting domino project. where i had to scroll the text automatically on a TV Screen and move to next page automatically. To execute the project i used JavaScript functions to scroll the page and Ajax domino agent to pause the screen before and after scrolling. Take a look of the code.
var counter = 0;
var z = 1;
function pageScroll() {
var y = f_scrollTop();
var scrollFlag = 0;
if(z == y){
if(scrollFlag == 1){
funA();
}else{
funB();
}
}else{
if(y < 50){
window.scrollBy(0,1); // horizontal and vertical scroll increments
scrolldelay = setTimeout('pageScroll()',500);
}else{
window.scrollBy(0,2); // horizontal and vertical scroll increments
scrolldelay = setTimeout('pageScroll()',100); // scrolls every 100 milliseconds
}
z = y;
scrollFlag = 1;
}
}
function funA(){
PostDelay();
}
function funB(){
PostDelay();
}
function f_scrollTop() {
return f_filterResults (
window.pageYOffset ? window.pageYOffset : 0,
document.documentElement ? document.documentElement.scrollTop : 0,
document.body ? document.body.scrollTop : 0
);
}
function f_filterResults(n_win, n_docel, n_body) {
var n_result = n_win ? n_win : 0;
if (n_docel && (!n_result || (n_result > n_docel)))
n_result = n_docel;
return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
var xmlHttp = null;
function initAJAX() {
return new ajaxRequest();
}
function ajaxRequest() {
var localXmlHttp = null;
try{
localXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
localXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
localXmlHttp = false;
}
}
//All the rest
if (!localXmlHttp && typeof XMLHttpRequest != 'undefined') {
localXmlHttp = new XMLHttpRequest();
}
return localXmlHttp;
}
function PostDelay(){
var pageURL=window.location;
var path=pageURL.pathname.toLowerCase( );
var nsfPos=path.indexOf(".nsf");
var path=path.substring(0, nsfPos+5);
sURL = path + '(delay)?OpenAgent';
try {
if (xmlHttp == null) {
xmlHttp = initAJAX();
}
var d = new Date();
xmlHttp.open("GET",sURL + '&dummy=' + d.getTime(),true);
xmlHttp.onreadystatechange = PostDelayComplete;
xmlHttp.send(null);
}
catch(e) {
alert(e.message);
}
}
function PostDelayComplete() {
if (typeof(xmlHttp) !='undefined') {
if (xmlHttp.readyState==4) {
if (xmlHttp.status!=200) {
// alert('Error checking for status : ' + xmlHttp.responseText);
} else {
var pageURL=window.location;
var path=pageURL.pathname.toLowerCase( );
var nsfPos=path.indexOf(".nsf");
var path=path.substring(0, nsfPos+5);
top.location.href = "[URL for Next Command]";
}
}
}
}
function preDelay() {
var pageURL=window.location;
var path=pageURL.pathname.toLowerCase( );
var nsfPos=path.indexOf(".nsf");
var path=path.substring(0, nsfPos+5);
sURL = path + '(preDelay)?OpenAgent';
try {
if (xmlHttp == null) {
xmlHttp = initAJAX();
}
var d = new Date();
xmlHttp.open("GET",sURL + '&dummy=' + d.getTime(),true);
xmlHttp.onreadystatechange = preDelayComplete;
xmlHttp.send(null);
}
catch(e) {
alert(e.message);
}
}
function preDelayComplete(){
if (typeof(xmlHttp) !='undefined') {
if (xmlHttp.readyState==4) {
if (xmlHttp.status!=200) {
// alert('Error checking for status : ' + xmlHttp.responseText);
}else {
pageScroll()
}
}
}
}
var counter = 0;
var z = 1;
function pageScroll() {
var y = f_scrollTop();
var scrollFlag = 0;
if(z == y){
if(scrollFlag == 1){
funA();
}else{
funB();
}
}else{
if(y < 50){
window.scrollBy(0,1); // horizontal and vertical scroll increments
scrolldelay = setTimeout('pageScroll()',500);
}else{
window.scrollBy(0,2); // horizontal and vertical scroll increments
scrolldelay = setTimeout('pageScroll()',100); // scrolls every 100 milliseconds
}
z = y;
scrollFlag = 1;
}
}
function funA(){
PostDelay();
}
function funB(){
PostDelay();
}
function f_scrollTop() {
return f_filterResults (
window.pageYOffset ? window.pageYOffset : 0,
document.documentElement ? document.documentElement.scrollTop : 0,
document.body ? document.body.scrollTop : 0
);
}
function f_filterResults(n_win, n_docel, n_body) {
var n_result = n_win ? n_win : 0;
if (n_docel && (!n_result || (n_result > n_docel)))
n_result = n_docel;
return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
var xmlHttp = null;
function initAJAX() {
return new ajaxRequest();
}
function ajaxRequest() {
var localXmlHttp = null;
try{
localXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
localXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
localXmlHttp = false;
}
}
//All the rest
if (!localXmlHttp && typeof XMLHttpRequest != 'undefined') {
localXmlHttp = new XMLHttpRequest();
}
return localXmlHttp;
}
function PostDelay(){
var pageURL=window.location;
var path=pageURL.pathname.toLowerCase( );
var nsfPos=path.indexOf(".nsf");
var path=path.substring(0, nsfPos+5);
sURL = path + '(delay)?OpenAgent';
try {
if (xmlHttp == null) {
xmlHttp = initAJAX();
}
var d = new Date();
xmlHttp.open("GET",sURL + '&dummy=' + d.getTime(),true);
xmlHttp.onreadystatechange = PostDelayComplete;
xmlHttp.send(null);
}
catch(e) {
alert(e.message);
}
}
function PostDelayComplete() {
if (typeof(xmlHttp) !='undefined') {
if (xmlHttp.readyState==4) {
if (xmlHttp.status!=200) {
// alert('Error checking for status : ' + xmlHttp.responseText);
} else {
var pageURL=window.location;
var path=pageURL.pathname.toLowerCase( );
var nsfPos=path.indexOf(".nsf");
var path=path.substring(0, nsfPos+5);
top.location.href = "[URL for Next Command]";
}
}
}
}
function preDelay() {
var pageURL=window.location;
var path=pageURL.pathname.toLowerCase( );
var nsfPos=path.indexOf(".nsf");
var path=path.substring(0, nsfPos+5);
sURL = path + '(preDelay)?OpenAgent';
try {
if (xmlHttp == null) {
xmlHttp = initAJAX();
}
var d = new Date();
xmlHttp.open("GET",sURL + '&dummy=' + d.getTime(),true);
xmlHttp.onreadystatechange = preDelayComplete;
xmlHttp.send(null);
}
catch(e) {
alert(e.message);
}
}
function preDelayComplete(){
if (typeof(xmlHttp) !='undefined') {
if (xmlHttp.readyState==4) {
if (xmlHttp.status!=200) {
// alert('Error checking for status : ' + xmlHttp.responseText);
}else {
pageScroll()
}
}
}
}