	// ============================================================================================================
	// Function  : RssTicker
	// Decription: RSS Ticker Object Function (i.e. Constructor).
	// ============================================================================================================
	function RssTicker(cachetime, titleDivId, tickerDivId, listDivId, delay, logicswitch){
		// ========================================================================================================
		// - Public Properties.
		// ========================================================================================================
		//this.http_url		 	=  'http://www.webstrait.com'; // To set the http url.
		//this.http_url		 	=  'http://redhat/webstrait'; // To set the http url.
		this.http_url		 	=  'http://www.webstrait.com'; // To set the http url.
		this.pic_url		 	=	this.http_url + '/pictures'; // To set the pictures url.
		this.rss_url		 	=	this.http_url + '/rss/bridge.php'; // To set the rss url.
		this.cachetime		 	=	cachetime;   // Time to cache feed, in minutes. 0=no cache.
		this.tickerid		 	=	tickerDivId; // ID of ticker div to display information
		this.listid		     	=	listDivId;   // ID of list div to display rss list
		this.titleid	     	=	titleDivId;  // ID of title div
		this.loadingid	     	=	'loading';   // ID of loading... Element
		this.rightnav	     	=	'rightnav_layer';	// ID of rightnav layer... Element
		this.delay			 	=	delay;       // Delay between msg change, in miliseconds.
		this.logicswitch	 	=	(typeof logicswitch != "undefined")? logicswitch : "";
		this.pointer 		 	=	0;
		this.opacitysetting	 	=	0.2; // Opacity value when reset. Internal use.
		this.title			 	=	[];
		this.link	 		 	=	[]; 
		this.description	 	=	[];
		this.content	     	=	[];
		this.pubdate		 	=	[];  // Arrays to hold each component of an RSS item
		this.processing		 	= 	false;
		this.objHttpRequest		=	createAjaxObject();
		
		if (window.getComputedStyle) {
			this.mozopacityisdefined = 1;
		}
		else {
			this.mozopacityisdefined = 0;
		} // - end: if
		
		// ========================================================================================================
		// - Private Properties.
		// ========================================================================================================
		// var objHttpRequest	=	createAjaxObject();
		
		// ========================================================================================================
		// Accessibity : Private
		// Function    : createAjaxObject
		// Decription  : To create A Ajax Object.
		// ========================================================================================================
		function createAjaxObject() {
	
			var objHttpRequest = false;
	
				if (window.XMLHttpRequest){ // if Mozilla, Safari etc
	
					objHttpRequest = new XMLHttpRequest();
	
					if (objHttpRequest.overrideMimeType) {
						objHttpRequest.overrideMimeType('text/xml');
					} // - end: if
				} // - end: if else
				else if (window.ActiveXObject) { // if IE
					try {
						objHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
					}
					catch (e){
						try {
							objHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
						}
						catch (e){}
					} // - end: try catch
				} // - end: if else
			return objHttpRequest;
		} // - end: function
	} // - end: function

	// ============================================================================================================
	// Function  : getContent
	// Decription: Makes asynchronous GET request of RSS to Bridge through Ajax.
	//             When the parameter 'id' = null, that means we will use the url during object initiation.
	//             But, if 'rss_url' != null and != empty, that means the new rss url has been provided 
	//             for getting a new and different rss content.
	// ============================================================================================================
	RssTicker.prototype.getContent = function(id, bolShow) {
		// - Halt the HTTP request associated with an XMLHttpRequest object
		// - to reset the object to the uninitialized state.
		// - this.objHttpRequest.abort();
		
		if(id != '' && id != null) {
			// - To refresh the properties of RssTicker object.
			// - In case, we want to get the new Rss Content by providing a new rss url.
			this.rss_url		 = this.rss_url.split('?');
			this.rss_url 		 = this.rss_url[0]+'?id='+id;
			this.title			 =	[];
			this.link	 		 =	[]; 
			this.description	 =	[];
			this.content	     =	[];
			this.pubdate		 =	[];
			this.pointer 		 =	0;
		} // - end: if

		if (this.objHttpRequest) {
			var instanceOfTicker = this;
			var parameters		 = "&cachetime="+this.cachetime+"&random="+new Date().getTime();
			
			this.objHttpRequest.open('GET', this.rss_url+parameters, true);
			
			if(bolShow == 'yes') {
				this.objHttpRequest.onreadystatechange = function() { instanceOfTicker.initialize(); }
			}
			else {
				this.objHttpRequest.onreadystatechange = function() { instanceOfTicker.initialize2(); }
			} // - end: if else
			
			this.objHttpRequest.send(null);
		} // - end: if
	} // - end: function

	// ============================================================================================================
	// Function  : initialize
	// Decription: Gets contents of RSS and parse it using JavaScript DOM methods.
	// ============================================================================================================
	RssTicker.prototype.initialize = function() { 

		if (this.objHttpRequest.readyState == 4) { //if request of file completed

			if (this.objHttpRequest.status == 200) { //if request was successful

				var xmldata = this.objHttpRequest.responseXML;
				
				// Check again the state(As the prev request may be aborted by user during processing)
				if(this.objHttpRequest.readyState == 4) {
				
					if(xmldata.getElementsByTagName("item").length == 0){ //if no <item> elements found in returned content
						document.getElementById(this.tickerid).innerHTML = "<center><div style='color:#FF0000;'>So Sorry! The RSS Content Are Temporary Unavailable.</div></center>";
						// - To Set the "Loading..." Signal to none.
						document.getElementById(this.loadingid).style.display = 'none';
						return;
					} // - end: if
					
	
					this.feedtitle = xmldata.getElementsByTagName("title")[0].firstChild.nodeValue;
					this.feedlink  = xmldata.getElementsByTagName("link")[0].firstChild.nodeValue;
					this.feeddesc  = xmldata.getElementsByTagName("description")[0].firstChild.nodeValue;
					this.feeditems = xmldata.getElementsByTagName("item");
	
					// Cycle through RSS XML object and store each peice of an item inside a corresponding array
					for (var i = 0; i < this.feeditems.length; i++) {
						this.title[i]       = this.feeditems[i].getElementsByTagName("title")[0].firstChild.nodeValue;
						this.link[i]        = this.feeditems[i].getElementsByTagName("link")[0].firstChild.nodeValue;
						this.description[i] = this.feeditems[i].getElementsByTagName("description")[0].firstChild.nodeValue;
						this.content[i]     = this.feeditems[i].getElementsByTagName("content")[0].firstChild.nodeValue;
						this.pubdate[i]     = this.feeditems[i].getElementsByTagName("pubDate")[0].firstChild.nodeValue.substring(0, 16);
					} // - end: for
	
					this.setRssTitle();
					this.setMainRss();
					this.setRssList();
					
					// - To Set the "Loading..." Signal to none.
					document.getElementById(this.loadingid).style.display = 'none';
					
					// - To enable the rightnav links
					document.getElementById(this.rightnav).style.display = 'none';
				} // - end:if
			} // - end: if

		}
		else {
			// - To display the "Loading..." Signal.
			document.getElementById(this.loadingid).style.display = 'block';
			
			// - To disable the rightnav links
			document.getElementById(this.rightnav).style.display = 'block';
		} // - end: if
	} // - end: function
	
	// ============================================================================================================
	// Function  : initialize2
	// Decription: Gets contents of RSS and parse it using JavaScript DOM methods.
	// ============================================================================================================
	RssTicker.prototype.initialize2 = function() { 

		if (this.objHttpRequest.readyState == 4) { //if request of file completed

			if (this.objHttpRequest.status == 200) { //if request was successful

				var xmldata    = this.objHttpRequest.responseXML;

				// Check again the state(As the prev request may be aborted by user during processing)
				if(this.objHttpRequest.readyState == 4) {
					
					this.feeditems = xmldata.getElementsByTagName("item");
					
					// Cycle through RSS XML object and store each piece of an item inside a corresponding array
					for (var i = 0; i < this.feeditems.length; i++) {
						this.title[i]       = this.feeditems[i].getElementsByTagName("title")[0].firstChild.nodeValue;
						this.link[i]        = this.feeditems[i].getElementsByTagName("link")[0].firstChild.nodeValue;
						this.description[i] = this.feeditems[i].getElementsByTagName("description")[0].firstChild.nodeValue;
						this.content[i]     = this.feeditems[i].getElementsByTagName("content")[0].firstChild.nodeValue;
						this.pubdate[i]     = this.feeditems[i].getElementsByTagName("pubDate")[0].firstChild.nodeValue;
					} // - end: for
				} // - end: if				
			} // - end: if
		} // - end: if
	} // - end: function

	// ============================================================================================================
	// Function  : setRssTitle
	// Decription: To set the Rss Title.
	// ============================================================================================================
	RssTicker.prototype.setRssTitle = function() {
		var instanceOfTicker = this;
		
		var titleDiv = document.getElementById(this.titleid);
		var title    = '<div style="float:left; padding:5px 10px 5px 10px; font-weight:bold; color:#666666;">';
			title   += '<a title="' + this.feedtitle + '" class="rssDescText" href="' + this.feedlink + '">';
			title	+= '<img src="' + this.pic_url + '/online.gif" border="0" title="' + this.feedtitle + '">';
			title	+= '<u>Site: ' + this.feedtitle + '</u></a></div>';
		var desc	 = '<div class="rssDescText" style="float:left; padding:5px 10px 5px 10px; color:#666666;">';	
 			desc	+= '<img src="' + this.pic_url + '/note.gif" border="0"> ' + this.feeddesc + '</div>';	

		titleDiv.innerHTML = title+desc;			
	} // - end: function

	// ============================================================================================================
	// Function  : setMainRss
	// Decription: Rotate through RSS messages and displays it.
	// ============================================================================================================
	RssTicker.prototype.setMainRss = function(strPlayType) {

		var instanceOfTicker = this;

		if(strPlayType == 'prev') {
			this.pointer = (this.pointer > 0) ? this.pointer - 1 : (this.feeditems.length - 1);
		}
		else if(strPlayType == 'next'){
			this.pointer = (this.pointer < this.feeditems.length - 1) ? this.pointer + 1 : 0;
		} // - end: if else
		
		var tickerDiv   = document.getElementById(this.tickerid);
		var linktitle   = '<div class="rssTitleLink"><img src="'+this.pic_url+'/content.gif" border="0"> <a href="'+this.link[this.pointer]+'">'+this.title[this.pointer]+'</a></div>';
		var description = '<div class="rssDescription">'+this.description[this.pointer]+'</div>';
		var feeddate    = '<div class="rssDate">'+this.pubdate[this.pointer]+'</div>';
		var content     = '<div class="rssContent">'+this.content[this.pointer]+'</div>';

		if (this.logicswitch.indexOf("description") == -1) {
			description = "";
		} // - end: if

		if (this.logicswitch.indexOf("content") == -1) {
			content = "";
		} // - end: if

		if (this.logicswitch.indexOf("date")== -1) { 
			feeddate = "";
		} // - end: if

		var tickercontent   = linktitle+feeddate+description+content; // STRING FOR FEED CONTENTS 
		this.fadeTransition("reset"); // FADE EFFECT - RESET OPACITY
		tickerDiv.innerHTML = tickercontent;
		this.fadetimer1		= setInterval(function() { instanceOfTicker.fadeTransition('up', 'fadetimer1') }, 105); // FADE EFFECT- PLAY IT		
	} // - end: function

	// ============================================================================================================
	// Function  : setRssList
	// Decription: Display and list the RSS.
	// ============================================================================================================
	RssTicker.prototype.setRssList = function() {
		// Cycle through RSS XML object and store each peice of an item inside a corresponding array
		var intUBound 	 = this.feeditems.length - 1;
		var strRssList	 = '<p class="rssListTitle" style="text-decoration:none;">Other Topics:</p>';
		var rssListTitle = '';
		var rssListDesc  = '';
		var rssListHr 	 = '';

		for (var i = 0; i < this.feeditems.length; i++) {
			rssListTitle = '<div class="rssTitleLink"><a href="' + this.link[i] + '"><img src="'+this.pic_url+'/e04.gif" width="16" height="9" border="0"> ' + this.title[i] + ' [' + this.pubdate[i] + ']</a></div>';
			rssListDesc  = '<div style="padding:0px 10px 5px 10px; text-align:justify;"><a class="rssDescText" href="' + this.link[i] + '">' + this.description[i] + '</a></div>';

			if(i < intUBound) {
				rssListHr = '<hr style="width:650px; border:1px dotted #CCCCCC;"/>';
			} 
			else {
				rssListHr = '';
			} // - end: if else

			//strRssList += rssListTitle+rssListDesc+rssListHr;
			strRssList += rssListTitle+rssListHr;
		} // - end: for				

		var listDiv   = document.getElementById(this.listid);

		listDiv.innerHTML = strRssList;			
	} // - end: function

	// ============================================================================================================
	// Function  : fadeTransition
	// Decription: To generate cross browser fade method for IE5.5+ and Mozilla/Firefox
	// ============================================================================================================
	RssTicker.prototype.fadeTransition = function(fadetype, timerid) {

		var tickerDiv = document.getElementById(this.tickerid);

		if (fadetype=="reset") {
			this.opacitysetting = 0.2;
		} // - end: if

		if (tickerDiv.filters && tickerDiv.filters[0]) {
			if (typeof tickerDiv.filters[0].opacity == "number") { 
				//IE6+
				tickerDiv.filters[0].opacity = this.opacitysetting * 100;
			}
			else {
				//IE 5.5
				tickerDiv.style.filter = "alpha(opacity = " + this.opacitysetting * 100 + ")";
			} // - end: if else
		}
		else if (typeof tickerDiv.style.MozOpacity != "undefined" && this.mozopacityisdefined) {
			tickerDiv.style.MozOpacity = this.opacitysetting;
		} // - end: if else
		
		if (fadetype == "up") {
			this.opacitysetting += 0.2;
		} // - end: if

		if (fadetype == "up" && this.opacitysetting >= 1.2) {
			clearInterval(this[timerid]);
		} // - end: if
	} // - end: function
	
	// ============================================================================================================
	// Initialize
	// ============================================================================================================
	var strRssChacheTime = "6h";
	var objRssTicker = new RssTicker(strRssChacheTime, 'rsstitle', 'rssbox', 'rsslist', 10000, 'date+content');
	objRssTicker.getContent('finance', 'no');