/*
 * switchPage.js v1.0 (2007/08/16)
 * 
 * Company: Statusfirm
 * Coded by: Chesley Brown
 * Contact: c.brown@statusfirm.com
 * 
 * ***Description***
 * Used for switching pages using effects (if wanted) and insuring the
 * effects don't screw up by using locks.
 * ******
 * 
 * *****Requires*****
 * jquery.js (tested with v1.2)
 * ******
 *
 */
function switchPageStart() { if (document.getElementById(this.displayPageID + this.IDExt).style.display != 'none') { if (this.useEffects == true) { $("#" + this.displayPageID + this.IDExt).slideUp(this.effectsSlideDuration); var curDate = new Date(); this.effectsTimeStamp = curDate.getTime();}
}
this.pageLoadingLock = true; if (this.useEffects == true) { $("#" + this.pageLoadingID + this.IDExt).fadeIn(this.effectsFadeDuration);} else { document.getElementById(this.pageLoadingID + this.IDExt).style.display = 'block';}
}
function switchPageMiddle(func) { if (this.useEffects == true) { var curDate = new Date(); var timeLeft = (this.effectsTimeStamp + (this.effectsSlideDuration)) - curDate.getTime(); if (timeLeft > -100) { setTimeout(func, timeLeft+100);} else { func();}
} else { func();}
}
function switchPageComplete() { if (this.useEffects == true) { var self = this; var curDate = new Date(); var timeLeft = (this.effectsTimeStamp + (this.effectsSlideDuration)) - curDate.getTime(); if (timeLeft > -175) { setTimeout( function() { $("#" + self.pageLoadingID + self.IDExt).fadeOut(self.effectsFadeDuration); $("#" + self.displayPageID + self.IDExt).slideDown(self.effectsSlideDuration);}, timeLeft+175);} else { setTimeout( function() { $("#" + self.pageLoadingID + self.IDExt).fadeOut(self.effectsFadeDuration); $("#" + self.displayPageID + self.IDExt).slideDown(self.effectsSlideDuration);}, 175);}
if (timeLeft > -300) { setTimeout( function() { self.pageLoadingLock = false;}, (this.effectsSlideDuration)+timeLeft+300);} else { setTimeout( function() { self.pageLoadingLock = false;}, (this.effectsSlideDuration)+300);}
} else { document.getElementById(this.displayPageID + this.IDExt).style.display = 'block'; document.getElementById(this.pageLoadingID + this.IDExt).style.display = 'none'; this.pageLoadingLock = false;}
}
function switchPage(itemID, pageNum) { this.switchPageStart(); var self = this; if (document.getElementById(this.displayPageID + this.IDExt).innerHTML != document.getElementById(itemID).innerHTML) { this.switchPageMiddle( function() { if (self.previousPageNum != '') { document.getElementById(self.pageContainerID + self.IDExt + "_page_" + self.previousPageNum).innerHTML = document.getElementById(self.displayPageID + self.IDExt).innerHTML;}
self.previousPageNum = pageNum; document.getElementById(self.displayPageID + self.IDExt).innerHTML = document.getElementById(itemID).innerHTML;} ); if (this.pageListNumPreviousID != '') { document.getElementById(this.pageListNumPreviousID).innerHTML = this.pageListNumPrevious;}
this.pageListNumPrevious = document.getElementById(this.pageListID + this.IDExt + '_page_' + pageNum).innerHTML; this.pageListNumPreviousID = this.pageListID + this.IDExt + '_page_' + pageNum; document.getElementById(this.pageListID + this.IDExt + '_page_' + pageNum).innerHTML = pageNum + this.pageListSeparator;}
document.getElementById(this.pageViewMsgID + this.IDExt).innerHTML = this.msgPageView + pageNum; this.switchPageComplete();}
function switchPageContent(itemID, pageNum) { var self = this; if (document.getElementById(this.displayPageID + this.IDExt).innerHTML != document.getElementById(itemID).innerHTML) { this.switchPageMiddle( function() { document.getElementById(self.displayPageID + self.IDExt).innerHTML = document.getElementById(itemID).innerHTML;} );}
this.pageListNumPreviousID = ''; this.previousPageNum = pageNum; if (this.pageListNumPreviousID != '') { document.getElementById(this.pageListNumPreviousID).innerHTML = this.pageListNumPrevious;}
this.pageListNumPrevious = document.getElementById(this.pageListID + this.IDExt + '_page_' + pageNum).innerHTML; this.pageListNumPreviousID = this.pageListID + this.IDExt + '_page_' + pageNum; document.getElementById(this.pageListID + this.IDExt + '_page_' + pageNum).innerHTML = pageNum + this.pageListSeparator; document.getElementById(this.pageViewMsgID + this.IDExt).innerHTML = this.msgPageView + pageNum;}
