if (typeof GE === "undefined") GE = {}

GE.feeds = {

    // A regex for stripping the time part of a datetime string.
    // Assigned to a variable for performance.
    dateOnlyRegex: /^(.*) [0-9]{2}:[0-9]{2}.*/,

    // For some reason IE6 and 7 were making whitespace significant in
    // an entry that had an odd run of whitespace between two
    // words. It may have been a fluke, but we'll regex that from
    // happening anyway.
    whitespaceRegex: /[ \t\n\r]+/g,


    // Used when converting month number indexes from the getDate()
    // method of JS date objects
    monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
	
	//pr_url:"a",

    /**
     * Display entry publish dates in a consistent format
     */
    formatDate: function(date_string) {
        var date = new Date(date_string);
        return GE.feeds.monthNames[date.getMonth()] + " " + date.getDate() + ", " + date.getFullYear();
    },

    /**
     * Display an unavailability message in case anything goes wrong.
     */
    failGracefully: function(node) {
        node.append("<p class='error'>The news feed is temporarily unavailable.<br/>Please try again in a few minutes.</p>");
    },


    /**
     * Populate the Press Releases and GE Reports sections of the homepage.
     *
     * Separate requests are used for each module. Google's
     * FeedControl class could have been used to collapse that down to
     * one request, but the price for that is reduced flexibility when
     * formatting the results. In particular, we need to put the
     * publishedDate above the title.
     */
	
	 /*renderHomepageFeeds1: function(pr_url) {
	 GE.feeds.pr_url=pr_url;
	 GE.feeds.renderHomepageFeeds();
	 },*/
    renderPressRelease: function(pfeedurl,pfeedNum,ptype) {

        // feed urls are pulled from the page, not hard coded in this file
        //var pr_url = jQuery("#media .press-release-container .media-icons A.rss").attr("href");
		//var pr_url="http://feeds.feedburner.com/gereports/feed";
		//var pr_url=GE.feeds.pr_url;
		var pr_url=pfeedurl;
		//alert(pr_url);
        var pr_feed = new google.feeds.Feed(pr_url);
		//var report_url=rfeedurl;
		//var report_url = jQuery("#media .report-container .media-icons A.rss").attr("href");
		//alert(report_url);
       //var report_feed = new google.feeds.Feed(report_url);
	  // alert(pfeedNum);
	 //  alert(ptype);
		var entry, title, formatted_date, author, li, h6, a, span;

        // A formatting fuction for processing feed results. Used for
        // both feeds.
        var onLoadCallback = function(result) {
			
       //     if (result.feed.feedUrl === pr_url) {
                var receiving_node = jQuery("#"+ptype+" .Feed-container .Feed-feed");
				var class_to_show = 's_trackpv2';
         //   } else if (result.feed.feedUrl === report_url) {
          //      var receiving_node = jQuery("#media .report-container .report-feed");
		//		var class_to_show = 's_trackpv3';
         //   }

            if (result.error) {
                GE.feeds.failGracefully(receiving_node);
            } else {
                try{
                    var entry_list = jQuery(document.createElement('ul'));

                    for (var i = 0; i < result.feed.entries.length; i++) {
                        entry = result.feed.entries[i];
                        title = entry["title"].replace(GE.feeds.whitespaceRegex, " ");
						formatted_date = GE.feeds.formatDate(entry["publishedDate"]);
                        li = jQuery(document.createElement('li'));
                        h6 = jQuery(document.createElement('h6'));
                        h6.html(formatted_date);
                        a = jQuery(document.createElement('a')).html(title).attr({'href': entry.link,
																				  'class': class_to_show,
																				  'target': '_blank'});
																				  
                        author = (entry["author"] === "")? "": " by " + entry["author"];
                        span = jQuery(document.createElement('span')).html(author);
                        li.append(h6, a, span);
                        entry_list.append(li);
                    }
                    receiving_node.html(entry_list);
/*					var js = document.createElement('script');
					js.type = 'text/javascript';  
					js.text = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
					document.getElementsByTagName("head")[0].appendChild(js);
*/					
					/*var script_to_add = document.createElement('script');
					script_to_add.innerHTML = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_sbu','','',oMyWA);";
					document.getElementById('footer').appendChild(script_to_add);*/
			
                }  catch(e) {
                    GE.feeds.failGracefully(receiving_node);
                }
            }

            // Keep the height of each div equal
            //jQuery("#media > DIV").setAllToMaxHeight();
        }

        pr_feed.setNumEntries(pfeedNum);
        pr_feed.load(onLoadCallback);

     //   report_feed.setNumEntries(feedNum);
      //  report_feed.load(onLoadCallback);
    },
	
 renderReport: function(rfeedurl,rfeedNum,rtype) {

        // feed urls are pulled from the page, not hard coded in this file
        //var pr_url = jQuery("#media .press-release-container .media-icons A.rss").attr("href");
		//var pr_url="http://feeds.feedburner.com/gereports/feed";
		//var pr_url=GE.feeds.pr_url;
		//var pr_url=pfeedurl;
		//alert(pr_url);
        //var pr_feed = new google.feeds.Feed(pr_url);
		var report_url=rfeedurl;
		//var report_url = jQuery("#media .report-container .media-icons A.rss").attr("href");
	//	alert(report_url);
       var report_feed = new google.feeds.Feed(report_url);
//	   alert(rfeedNum);
	  // alert(rtype);
		var entry, title, formatted_date, author, li, h6, a, span;

        // A formatting fuction for processing feed results. Used for
        // both feeds.
        var onLoadCallback = function(result) {
			
       //     if (result.feed.feedUrl === pr_url) {
       //         var receiving_node = jQuery("#media .press-release-container .press-release-feed");
	//			var class_to_show = 's_trackpv2';
         //   } else if (result.feed.feedUrl === report_url) {
                var receiving_node = jQuery("#"+rtype+" .Feed-container .Feed-feed");
				var class_to_show = 's_trackpv3';
         //   }

            if (result.error) {
                GE.feeds.failGracefully(receiving_node);
            } else {
                try{
                    var entry_list = jQuery(document.createElement('ul'));

                    for (var i = 0; i < result.feed.entries.length; i++) {
                        entry = result.feed.entries[i];
                        title = entry["title"].replace(GE.feeds.whitespaceRegex, " ");
                        formatted_date = GE.feeds.formatDate(entry["publishedDate"]);
                        li = jQuery(document.createElement('li'));
                        h6 = jQuery(document.createElement('h6'));
                        h6.html(formatted_date);
                        a = jQuery(document.createElement('a')).html(title).attr({'href': entry.link,
																				  'class': class_to_show,
																				  'target': '_blank'});
                        author = (entry["author"] === "")? "": " by " + entry["author"];
                        span = jQuery(document.createElement('span')).html(author);
                        li.append(h6, a, span);
                        entry_list.append(li);
                    }
                    receiving_node.html(entry_list);
/*					var js = document.createElement('script');
					js.type = 'text/javascript';  
					js.text = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
					document.getElementsByTagName("head")[0].appendChild(js);
*/
					/*var script_to_add = document.createElement('script');
					script_to_add.innerHTML = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_sbu','','',oMyWA);";
					document.getElementById('footer').appendChild(script_to_add);*/
			
                }  catch(e) {
                    GE.feeds.failGracefully(receiving_node);
                }
            }

            // Keep the height of each div equal
            //jQuery("#media > DIV").setAllToMaxHeight();
        }

       // pr_feed.setNumEntries(feedNum);
        //pr_feed.load(onLoadCallback);

        report_feed.setNumEntries(rfeedNum);
        report_feed.load(onLoadCallback);
    },

    renderPressReleaseSubscribe: function(pnfeedurl,pnfeednum,pntype) {
          // The feed url is taken from the page, not included in this file.
        //var feed_url = jQuery("#news-feed-rss-link").attr("href");
		var feed_url= pnfeedurl;
	//	alert(feed_url);
	//	alert(nfeednum);
        var feed = new google.feeds.Feed(feed_url);
        feed.setNumEntries(pnfeednum);

        var entry, formatted_date, dt, dd, title, a, link_attribs;

        var onLoadCallback = function(result) {
            if (result.error) {
                jQuery("#"+pntype+"-newsfeed-container").append("<p>The news feed is temporarily unavailable. Please try again in a few minutes.</p>");
            } else {
                var entry_list = jQuery(document.createElement('dl'));
				var class_to_show = 's_trackpv2';
                for (var i = 0; i < result.feed.entries.length; i++) {
                    entry = result.feed.entries[i];

                    formatted_date = GE.feeds.formatDate(entry["publishedDate"]);

                    dt = jQuery(document.createElement('dt')).html(formatted_date);
                    dd = jQuery(document.createElement('dd'));

                    title = entry["title"].replace(GE.feeds.whitespaceRegex, " ") ;

                    link_attribs = {
                        'target': '_blank',
                        'class': class_to_show,
                        'href': entry.link
                    };

                    a = jQuery(document.createElement('a')).attr(link_attribs).html(title);
                    entry_list.append(dt);
                    entry_list.append(dd.append(a));
                }

                jQuery("#"+pntype+"-newsfeed-container").html(entry_list);
/*				var js = document.createElement('script');
				js.type = 'text/javascript';  
				js.text = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
				document.getElementsByTagName("head")[0].appendChild(js);
*/
				/*var script_to_add = document.createElement('script');
				script_to_add.innerHTML = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
				document.getElementById('footer').appendChild(script_to_add);*/
            }
        }

        feed.load(onLoadCallback);
    },
    renderReportSubscribe: function(rnfeedurl,rnfeednum,rntype) {
          // The feed url is taken from the page, not included in this file.
        //var feed_url = jQuery("#news-feed-rss-link").attr("href");
		var feed_url= rnfeedurl;
	//	alert(feed_url);
	//	alert(nfeednum);
        var feed = new google.feeds.Feed(feed_url);
        feed.setNumEntries(rnfeednum);

        var entry, formatted_date, dt, dd, title, a, link_attribs;

        var onLoadCallback = function(result) {
            if (result.error) {
                jQuery("#"+rntype+"-newsfeed-container").append("<p>The news feed is temporarily unavailable. Please try again in a few minutes.</p>");
            } else {
                var entry_list = jQuery(document.createElement('dl'));
				var class_to_show = 's_trackpv2';
                for (var i = 0; i < result.feed.entries.length; i++) {
                    entry = result.feed.entries[i];

                    formatted_date = GE.feeds.formatDate(entry["publishedDate"]);

                    dt = jQuery(document.createElement('dt')).html(formatted_date);
                    dd = jQuery(document.createElement('dd'));

                    title = entry["title"].replace(GE.feeds.whitespaceRegex, " ") ;

                    link_attribs = {
                        'target': '_blank',
                        'class': class_to_show,
                        'href': entry.link
                    };

                    a = jQuery(document.createElement('a')).attr(link_attribs).html(title);
                    entry_list.append(dt);
                    entry_list.append(dd.append(a));
                }

                jQuery("#"+rntype+"-newsfeed-container").html(entry_list);
/*				var js = document.createElement('script');
				js.type = 'text/javascript';  
				js.text = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
				document.getElementsByTagName("head")[0].appendChild(js);
*/				
				/*var script_to_add = document.createElement('script');
				script_to_add.innerHTML = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
				document.getElementById('footer').appendChild(script_to_add);*/
            }
        }

        feed.load(onLoadCallback);
    },
	renderLatestNewsSubscribe: function(lnsfeedurl,lnsfeednum,lnstype) {
          // The feed url is taken from the page, not included in this file.
        //var feed_url = jQuery("#news-feed-rss-link").attr("href");
		var feed_url= lnsfeedurl;
	//	alert(feed_url);
	//	alert(nfeednum);
        var feed = new google.feeds.Feed(feed_url);
        feed.setNumEntries(lnsfeednum);

        var entry, formatted_date, dt, dd, title, a, link_attribs;

        var onLoadCallback = function(result) {
            if (result.error) {
                jQuery("#"+lnstype+"-newsfeed-container").append("<p>The news feed is temporarily unavailable. Please try again in a few minutes.</p>");
            } else {
                var entry_list = jQuery(document.createElement('dl'));
				var class_to_show = 's_trackpv2';
                for (var i = 0; i < result.feed.entries.length; i++) {
                    entry = result.feed.entries[i];

                    formatted_date = GE.feeds.formatDate(entry["publishedDate"]);

                    dt = jQuery(document.createElement('dt')).html(formatted_date);
                    dd = jQuery(document.createElement('dd'));

                    title = entry["title"].replace(GE.feeds.whitespaceRegex, " ") ;

                    link_attribs = {
                        'target': '_blank',
                        'class': class_to_show,
                        'href': entry.link
                    };

                    a = jQuery(document.createElement('a')).attr(link_attribs).html(title);
                    entry_list.append(dt);
                    entry_list.append(dd.append(a));
                }

                jQuery("#"+lnstype+"-newsfeed-container").html(entry_list);
/*				var js = document.createElement('script');
				js.type = 'text/javascript';  
				js.text = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
				document.getElementsByTagName("head")[0].appendChild(js);
*/
				/*var script_to_add = document.createElement('script');
				script_to_add.innerHTML = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
				document.getElementById('footer').appendChild(script_to_add);*/
            }
        }

        feed.load(onLoadCallback);
    },
	    renderTweetsSubscribe: function(tnfeedurl,tnfeednum,tntype) {
          // The feed url is taken from the page, not included in this file.
        //var feed_url = jQuery("#news-feed-rss-link").attr("href");
		var feed_url= tnfeedurl;
	//	alert(feed_url);
	//	alert(nfeednum);
        var feed = new google.feeds.Feed(feed_url);
        feed.setNumEntries(tnfeednum);

        var entry, formatted_date, dt, dd, title, a, link_attribs;

        var onLoadCallback = function(result) {
            if (result.error) {
                jQuery("#"+tntype+"-newsfeed-container").append("<p>The news feed is temporarily unavailable. Please try again in a few minutes.</p>");
            } else {
                var entry_list = jQuery(document.createElement('dl'));
				var class_to_show = 's_trackpv2';
                for (var i = 0; i < result.feed.entries.length; i++) {
                    entry = result.feed.entries[i];

                    formatted_date = GE.feeds.formatDate(entry["publishedDate"]);

                    dt = jQuery(document.createElement('dt')).html(formatted_date);
                    dd = jQuery(document.createElement('dd'));

                    title = entry["title"].replace(GE.feeds.whitespaceRegex, " ") ;

                    link_attribs = {
                        'target': '_blank',
                        'class': class_to_show,
                        'href': entry.link
                    };

                    a = jQuery(document.createElement('a')).attr(link_attribs).html(title);
                    entry_list.append(dt);
                    entry_list.append(dd.append(a));
                }

                jQuery("#"+tntype+"-newsfeed-container").html(entry_list);
/*				var js = document.createElement('script');
				js.type = 'text/javascript';  
				js.text = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
				document.getElementsByTagName("head")[0].appendChild(js);
*/
				/*var script_to_add = document.createElement('script');
				script_to_add.innerHTML = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
				document.getElementById('footer').appendChild(script_to_add);*/
            }
        }

        feed.load(onLoadCallback);
    },
    renderCareersModule: function() {
        var feed_node  = jQuery("DIV.module A.careers-feed-source");
        var module_body = feed_node.closest("DIV.module-body");
		var class_to_show = 's_trackpv4';
        GE.feeds.renderGenericModule(feed_node.attr("href"), module_body, 6, false, class_to_show);
    },

    renderReportsModule: function() {
        var feed_node  = jQuery("DIV.module A.reports-feed-source");
        var module_body = feed_node.closest("DIV.module-body");
		var class_to_show = 's_trackpv3';
        GE.feeds.renderGenericModule(feed_node.attr("href"), module_body, 3, true, class_to_show);
    },

    renderPressModule: function() {
        var feed_node  = jQuery("DIV.module A.press-release-feed-source");
        var module_body = feed_node.closest("DIV.module-body");
		var class_to_show = 's_trackpv2';
        GE.feeds.renderGenericModule(feed_node.attr("href"), module_body, 3, false, class_to_show);
    },

    renderGenericModule: function(feed_url, destination_node, num_entries, include_author, class_to_show) {
        var feed = new google.feeds.Feed(feed_url);

        var dt, dd, a, span, entry_list;
        
        feed.setNumEntries(num_entries);
        
        var onLoadCallback = function(result) {
            if (!result.error) {
                var entry_list = jQuery(document.createElement('dl'));

                for (var i = 0; i < result.feed.entries.length; i++) {
                    entry = result.feed.entries[i];

                    var formatted_date = GE.feeds.formatDate(entry["publishedDate"]);

                    dt = jQuery(document.createElement('dt')).html(formatted_date);
                    dd = jQuery(document.createElement('dd'));

                    title = entry["title"].replace(GE.feeds.whitespaceRegex, " ") ;

					a = jQuery(document.createElement('a')).html(title).attr({'href': entry.link, 'target': '_blank', 'class': class_to_show});
                    entry_list.append(dt);

                    if (include_author === true) {
                        author = (entry["author"] === "")? "": " by " + entry["author"];
                        span = jQuery(document.createElement('span')).html(author);
                        entry_list.append(dd.append(a, span));
                    } else {
                        entry_list.append(dd.append(a));
                    }
                }

                destination_node.append(entry_list);
/*				var js = document.createElement('script');
				js.type = 'text/javascript';  
				js.text = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
				document.getElementsByTagName("head")[0].appendChild(js);
*/
				/*var script_to_add = document.createElement('script');
				script_to_add.innerHTML = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_sbu','','',oMyWA);";
				document.getElementById('footer').appendChild(script_to_add);*/
            }
        }

        feed.load(onLoadCallback);
    },
	
	// Code Added for Feed-Enhancement-Start //
	
	renderLatestNews: function(lnfeedurl,lnfeedNum,lntype) {

        // feed urls are pulled from the page, not hard coded in this file
       	var pr_url=lnfeedurl;
		//alert(pr_url);
        var pr_feed = new google.feeds.Feed(pr_url);
	
	   //alert(t3feedNum);
	 //alert(t3type);
		var entry, title, formatted_date, author, li, h6, a, span;

        // A formatting fuction for processing feed results. Used for
        // both feeds.
        var onLoadCallback = function(result) {
			
    
                var receiving_node = jQuery("#"+lntype+" .Feed-container .Feed-feed");
				var class_to_show = 's_trackpv2';
       

            if (result.error) {
                GE.feeds.failGracefully(receiving_node);
            } else {
                try{
                    var entry_list = jQuery(document.createElement('ul'));

                    for (var i = 0; i < result.feed.entries.length; i++) {
                        entry = result.feed.entries[i];
                        title = entry["title"].replace(GE.feeds.whitespaceRegex, " ");
						formatted_date = GE.feeds.formatDate(entry["publishedDate"]);
                        li = jQuery(document.createElement('li'));
                        h6 = jQuery(document.createElement('h6'));
                        h6.html(formatted_date);
                        a = jQuery(document.createElement('a')).html(title).attr({'href': entry.link,
																				  'class': class_to_show,
																				  'target': '_blank'});
																				  
                        author = (entry["author"] === "")? "": " by " + entry["author"];
                        span = jQuery(document.createElement('span')).html(author);
                        li.append(h6, a, span);
                        entry_list.append(li);
                    }
                    receiving_node.html(entry_list);
/*					var js = document.createElement('script');
					js.type = 'text/javascript';  
					js.text = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
					document.getElementsByTagName("head")[0].appendChild(js);
*/
					/*var script_to_add = document.createElement('script');
					script_to_add.innerHTML = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_sbu','','',oMyWA);";
					document.getElementById('footer').appendChild(script_to_add);*/
			
                }  catch(e) {
                    GE.feeds.failGracefully(receiving_node);
                }
            }

            // Keep the height of each div equal
            //jQuery("#media > DIV").setAllToMaxHeight();
        }

        pr_feed.setNumEntries(lnfeedNum);
        pr_feed.load(onLoadCallback);

         },
		
	renderTweets: function(tfeedurl,tfeedNum,ttype) {

        // feed urls are pulled from the page, not hard coded in this file
   		var report_url=tfeedurl;
		//alert(report_url);
       var report_feed = new google.feeds.Feed(report_url);
	  // alert(t4feedNum);
	  // alert(t4type);
		var entry, title, formatted_date, author, li, h6, a, span;

        // A formatting fuction for processing feed results. Used for
        // both feeds.
        var onLoadCallback = function(result) {
			
   
                var receiving_node = jQuery("#"+ttype+" .Feed-container .Feed-feed");
				var class_to_show = 's_trackpv3';
     

            if (result.error) {
                GE.feeds.failGracefully(receiving_node);
            } else {
                try{
                    var entry_list = jQuery(document.createElement('ul'));

                    for (var i = 0; i < result.feed.entries.length; i++) {
                        entry = result.feed.entries[i];
                        title = entry["title"].replace(GE.feeds.whitespaceRegex, " ");
                        formatted_date = GE.feeds.formatDate(entry["publishedDate"]);
                        li = jQuery(document.createElement('li'));
                        h6 = jQuery(document.createElement('h6'));
                        h6.html(formatted_date);
                        a = jQuery(document.createElement('a')).html(title).attr({'href': entry.link,
																				  'class': class_to_show,
																				  'target': '_blank'});
                        author = (entry["author"] === "")? "": " by " + entry["author"];
                        span = jQuery(document.createElement('span')).html(author);
                        li.append(h6, a, span);
                        entry_list.append(li);
                    }
                    receiving_node.html(entry_list);
/*					var js = document.createElement('script');
					js.type = 'text/javascript';  
					js.text = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_gecapital','','',oMyWA);";
					document.getElementsByTagName("head")[0].appendChild(js);
*/
					/*var script_to_add = document.createElement('script');
					script_to_add.innerHTML = "oMyWA.s.initClasses('"+ class_to_show +"','click',false,oMyWA.track,'s_trackpv_sbu','','',oMyWA);";
					document.getElementById('footer').appendChild(script_to_add);*/
			
                }  catch(e) {
                    GE.feeds.failGracefully(receiving_node);
                }
            }

            // Keep the height of each div equal
            //jQuery("#media > DIV").setAllToMaxHeight();
        }

        report_feed.setNumEntries(tfeedNum);
        report_feed.load(onLoadCallback);
    }
	
// Code Added for Feed Enhancement - END //
}

