///////////////////////////////// // File Name: mBanner.js // // Version: 2.1 // // By: Manish Kumar Namdeo // // http://www.mysticalm.com // ///////////////////////////////// // BANNER OBJECT function Banner(objName){ this.obj = objName; this.aNodes = []; this.currentBanner = 0; this.changeOnRefresh = false; }; // ADD NEW BANNER Banner.prototype.add = function(bannerType, bannerPath, bannerDuration, height, width, hyperlink, target) { this.aNodes[this.aNodes.length] = new Node(this.obj +"_"+ this.aNodes.length, bannerType, bannerPath, bannerDuration, height, width, hyperlink, target); }; // Node object function Node(name, bannerType, bannerPath, bannerDuration, height, width, hyperlink, target) { this.name = name; this.bannerType = bannerType; this.bannerPath = bannerPath; this.bannerDuration = bannerDuration; this.height = height this.width = width; this.hyperlink= hyperlink; this.target= target; }; // Outputs the banner to the page Banner.prototype.toString = function() { var str = ""; var iBannerIndex = 0; if(this.changeOnRefresh == true){ // Read the cookie var BannerName = this.obj; var lastBannerIndex = readCookie(BannerName); if(isNaN(lastBannerIndex) == true || lastBannerIndex == null){ iBannerIndex = 0; }else if(lastBannerIndex == '' || parseInt(lastBannerIndex) >= this.aNodes.length - 1){ iBannerIndex = 0; }else{ iBannerIndex = parseInt(lastBannerIndex) + 1; } // Set the new value createCookie(BannerName,iBannerIndex,7); } for (var iCtr=0; iCtr < this.aNodes.length; iCtr++){ if(this.changeOnRefresh == true && iBannerIndex != iCtr){ continue; } str = str + '\n'; if ( this.aNodes[iCtr].bannerType == "FLASH" ){ str = str + ''; str = str + ''; str = str + ''; str = str + ''; if (this.aNodes[iCtr].hyperlink != ""){ str = str + ''; } str = str + ''; str = str + '' str = str + '' }else if ( this.aNodes[iCtr].bannerType == "IMAGE" ){ if (this.aNodes[iCtr].hyperlink != ""){ str = str + ''; } str = str + ''; if (this.aNodes[iCtr].hyperlink != ""){ str = str + ''; } } str += ''; } return str; }; // START THE BANNER ROTATION Banner.prototype.start = function(){ if(this.changeOnRefresh == false){ this.changeBanner(); var thisBannerObj = this.obj; // CURRENT BANNER IS ALREADY INCREMENTED IN cahngeBanner() FUNCTION setTimeout(thisBannerObj+".start()", this.aNodes[this.currentBanner].bannerDuration * 1000); } } // CHANGE BANNER Banner.prototype.changeBanner = function(){ var thisBanner; var prevBanner = -1; if (this.currentBanner < this.aNodes.length ){ thisBanner = this.currentBanner; if (this.aNodes.length > 1){ if ( thisBanner > 0 ){ prevBanner = thisBanner - 1; }else{ prevBanner = this.aNodes.length-1; } } if (this.currentBanner < this.aNodes.length - 1){ this.currentBanner = this.currentBanner + 1; }else{ this.currentBanner = 0; } } if (prevBanner >= 0){ document.getElementById(this.aNodes[prevBanner].name).className = "m_banner_hide"; } document.getElementById(this.aNodes[thisBanner].name).className = "m_banner_show"; } // Following Cookie Code taken from http://www.quirksmode.org function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; }