/*
* Changelog
*
* 2009-11-18
*  Code to manage content for 960-based site - UB
*
* 2010-01-13
*   Load whats on script
*
* 2010-02-10
*   Reorganization and test for dev or stg 
*   Remove the loadscript function and put into coa-site
*/

/***********************************************************
*  Data Section
***********************************************************/
var g_home_twitter_reload_ctr = 0; /* track number of twitter reloads */
var PG_HOME_DATA = {
	'footer_sites_other' : {
		'Test Site 1 Test Site A' : 'http://cityadelaidecitycouncil.com','Test Site 2 Test Site B' : 'http://cityadelaidecitycouncil.com','Test Site 3 Test Site C' : 'http://cityadelaidecitycouncil.com'
	},
	'footer_sites_acc' : {
		'Test ACC Site 1' : 'http://cityadelaidecitycouncil.com','Test ACC Site 2' : 'http://cityadelaidecitycouncil.com','Test ACC Site 3' : 'http://cityadelaidecitycouncil.com','Test ACC Site 4' : 'http://cityadelaidecitycouncil.com','Test ACC Site 5' : 'http://cityadelaidecitycouncil.com','Test ACC Site 6' : 'http://cityadelaidecitycouncil.com' },
	'dflt_home_img' : '/ADCCBRANDWR/StaticAssets/images/home_banner_default.jpg',
	'url_twitter_coa' : 'http://twitter.com/CityofAdelaide/coa'
}

/***********************************************************
*  Code Section
***********************************************************/

/**************************************************************
*  Dummy functions for old parts of site - please do not remove 
***************************************************************/
if (typeof COA_Home_Categories == "undefined"){ var COA_Home_Categories = null; };
if (typeof COA_Event_Calendar == "undefined"){ var COA_Event_Calendar = null; };
COA_Home_Categories = function(){ this.init = function() { } }
COA_Event_Calendar = function(){ this.init = function() { } }

/***********************************************************
* Global Functions 
***********************************************************/
var is_home_page = function(){ return (!/EventHighLights/gim.test(location.href) && !/EventSearchResult/gim.test(location.href) && jQuery('body#section-home').length); }

/***********************************************************************
* Start netcat safe block
***********************************************************************/  
if (typeof ncBPFramework == "undefined" && self == top){

	/***********************************************************************
	* June 2010 Updates 
	***********************************************************************/  
	jQuery(document).ready( function(){ 
		if (is_home_page()) {
			var page_init = function(){
				jQuery('div.column-b div.banner-container').html('').attr('id', 'flickr-banner').addClass('plugin_flickr_slideshow').append('<img class="default" src="' + PG_HOME_DATA.dflt_home_img + '"/>');
				jQuery('#home-categories').remove();
				var scr = "location.href='http://twitter.com/CityofAdelaide/coa'";
				jQuery('div.column-b').append('<ul id="home-cat-cols"><li id="col-1" class="col-1"><h1 id="head-adelaide-tweets-btn" onclick="javascript:' + scr + ';"><span>Adelaide Tweets</span></h1><div id="tweet-widget"></div></li><li class="col-2"><h1><span>Our Top Picks</span></h1><ul id="top_picks"></ul></li></ul><div style="clear: both"></div>');
				jQuery('body#section-home div.main-wrapper').prepend('<div class="bg-pat"></div>');
			}
			var flickr_init = function(){ jQuery.getScript('/ADCCBRANDWR/StaticAssets/javascript/plugin-flickr-slideshow.js'); }
			var our_picks_init = function(){
				var url = '/ADCCBRANDWR/StaticAssets/xml/our_top_picks.xml';
				jQuery.ajax(
					{
						'url' : url,
						'dataType' : 'xml',
						'success' : function(data){
							var f = 0;
							jQuery(data).find('item').each(
								function(){
									try { 
										var title = jQuery(this).find('title').text();	
										var url = jQuery(this).find('url').text();	
										var s = '<li class="' + ((++f == 1) ? 'first' : '') + '">' + '<a href="' + url + '">' + title + '</a>' + '</li>';
										jQuery('#top_picks').append(s);
									} catch (ex){
										jQuery('#top_picks' + c_id).append('<li class="error">Error reading item data</li>');
									}
								}
							);
							autopos_footer('footer-sub', 40);
						},
						'error' : function(){
							jQuery('#top_picks').append('<li class="error">There was an error loading the top picks, please try again later</li>');
						}
					}
				);
			}
			var twitter_friendly_date = function(s, utc_offset){
				var cd = new Date();
				var r = s;
				var p = s.split(' ');
				utc_offset = -cd.getTimezoneOffset() * 60;
				var mo = { 'jan': 0, 'feb': 1, 'mar': 2, 'apr': 3, 'may': 4, 'jun': 5, 'jul': 6, 'aug': 7, 'sep': 8, 'oct': 9, 'nov': 10, 'dec': 11 };
				try {
					var t = p[3].split(':'); 
					var d = new Date(parseInt(p[5],10), mo[p[1].toLowerCase()], parseInt(p[2],10), parseInt(t[0], 10), parseInt(t[1], 10), parseInt(t[2], 10));
					var ms = d.getTime() + (utc_offset * 1000); 
					d.setTime(ms);
					var da =  Math.round((cd.getTime() - d.getTime()) / (86400000));
					var h = d.getHours();
					var m = d.getMinutes();
					/* if more than a day old */
					if (da >= 30) {
						var delta = Math.abs(cd.getMonth() - d.getMonth());
						r = 'about ' + ((delta > 0) ? delta.toString() : '1') + ' month' + ((delta > 1) ? 's': '') + ' ago';
					} if (da >= 1) {
						r = 'about ' + da.toString() + ' day' + ((da == 1) ? '': 's') + ' ago';
					} else { /* if today */
						if (cd.getMinutes() == m && cd.getHours() == h  && cd.getDate() == d.getDate() && cd.getMonth() == d.getMonth() && cd.getYear() == d.getYear()){
							var delta = (cd.getSeconds() - d.getSeconds()); 
							r = 'about ' + delta.toString() + ' second' + ((delta > 1)? 's' :'')+ ' ago';
						} else if (cd.getHours() == h  && cd.getDate() == d.getDate() && cd.getMonth() == d.getMonth() && cd.getYear() == d.getYear()){
							var delta = (cd.getMinutes() - m); 
							if (delta <= 2){
								r = "a few minutes ago";
							} else {
								r = ((delta == 0) ? '1' : delta.toString()) + ' minute' + ((delta > 1)? 's' :'')+ ' ago';
							}
						} else if (cd.getDate() == d.getDate() && cd.getMonth() == d.getMonth() && cd.getYear() == d.getYear()){
							var delta = (cd.getHours() - h); 
							r = 'about ' + delta.toString() + ' hour' + ((delta > 1) ? 's' : '') + ' ago';
						}
					}
				} catch(ex){ r = s; }
				return r;
			}
			/* backup twitter script */
			var twitter2_init = function(){
				if (jQuery('#section-home #tweet-widget').length){
					jQuery.getScript('http://widgets.twimg.com/j/2/widget.js', function(){
						var embed = '<scr' + 'ipt>' + "new TWTR.Widget({ id: 'tweet-widget', version: 2, type: 'list', rpp: 5, interval: (5 * 60 * 1000), title: 'City of Adelaide', subject: '', width: 340, height: 340, theme: { shell: { }, tweets: { background: '#ffffff', color: '#444444', links: '#b740c2' } }, features: { scrollbar: false, loop: true, live: true, hashtags: true, timestamp: true, avatars: true, behavior: 'all' } }).render().setList('cityofadelaide', 'coa').start(); </scr" + 'ipt>';
						jQuery('#tweet-widget').append(embed);
						jQuery('#tweet-widget').after('<div class="tweet-fg"></div>');
					});
				}
			}
			var make_links = function(s, link_name){
				var result = s;
				var m;
				m = s.match(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/gim);
				if (typeof m != "undefined" && m != null && m.length){
					for (var i = 0; i < m.length; ++i){
						(function(){
						result = result.replace(m[i], '<a href="mailto:' + m[i] + '?subject=Enquiry%20From%20ACC%20Website">' +  m[i] + '</a>');
						})();
					}	
				}
				m = s.match(/((http:\/\/)|(www)|(https:\/\/))[\/A-Z0-9._%+-@]+/gim);
				if (typeof m != "undefined" && m != null && m.length){
					for (var i = 0; i < m.length; ++i){
						(function(){
							if (/^http/.test(m[i]) || /^https/.test(m[i])){
								result = result.replace(m[i], '<a href="' + m[i] + '">' +  ((typeof link_name == "undefined") ? m[i] : link_name)+ '</a>');
							} else {
								result = result.replace(m[i], '<a href="http://' + m[i] + '">' +  ((typeof link_name == "undefined") ? m[i] : link_name) + '</a>');
							}
						})();
					}	
				}
				return result;
			}
			var twitter4_init = function(){
				var url = "/ADCCBRANDWR/StaticAssets/asp/twitter_cityofadelaide_coa.xml";
				var cfg_twit_refresh_interval = 1000 * 60 * 1;
				var cfg_twit_max_items = 6;
				var last_rcnt = null;
				var _tt;
				var _f = function(){
 					var url_rand = url + '?r=' + Math.random().toString();
					jQuery.ajax( {
						'url' : url_rand, 
						'dataType' : 'xml',
						'success' : function(data){
							var _ctr = 0;
							if (jQuery('#tweet-widget ul').length == 0){
								jQuery('#tweet-widget').append('<ul></ul>');
								jQuery(data).find('status').each(function(){
									if (++_ctr >= cfg_twit_max_items) return;
									var st = jQuery(this);
									var usr = st.find('user');
									var u_screen_name = usr.find('screen_name').text();
									var u_profile_img_url = usr.find('profile_image_url').text();
									var utc_offs = usr.find('utc_offset').text();
									var created_at = st.find('> created_at').text();
									var url = 'http://www.twitter.com/' + u_screen_name;
									var st_text = st.find('text').text();
									st_text = make_links(st_text);
									var h = '<li class="tweet"><a href="' + url +'"><img class="icon" src="' + u_profile_img_url + '" /></a><div class="text"><span class="user"><a href="' + url + '">' + u_screen_name + '</a></span>&nbsp;' + st_text + '<br /><span class="createdAt">' + twitter_friendly_date(created_at, parseInt(utc_offs, 10)) + '</span></div><div style="clear:both"></div></li>';
									var id = st.find('id').text();
									if (last_rcnt == null){ last_rcnt = id; }
									jQuery('#tweet-widget ul').append(h);
								});
								jQuery('#tweet-widget').append('<div class="tweet-fg"></div>');
							} else if (last_rcnt != null) {
								jQuery(data).find('status').each(function(){
									if (++_ctr > 1) return;
									var st = jQuery(this);
									var usr = st.find('user');
									var u_screen_name = usr.find('screen_name').text();
									var u_profile_img_url = usr.find('profile_image_url').text();
									var utc_offs = usr.find('utc_offset').text();
									var created_at = st.find('> created_at').text();
									var url = 'http://www.twitter.com/' + u_screen_name;
									var st_text = st.find('text').text();
									st_text = make_links(st_text);
									var id = st.find('id').text();
									if (id.toString() != last_rcnt.toString()) {
										var h = '<li class="tweet" id="tweet_item_' + id.toString() +'"><a href="' + url +'"><img class="icon" src="' + u_profile_img_url + '" /></a><div class="text"><span class="user"><a href="' + url + '">' + u_screen_name + '</a></span>&nbsp;' + st_text + '<br /><span class="createdAt">' + twitter_friendly_date(created_at, parseInt(utc_offs, 10)) + '</span></div><div style="clear:both"></div></li>';
										jQuery('#tweet-widget ul').prepend(h);
										jQuery('#tweet_item_' + id.toString()).show();
										last_rcnt = id; 
									}
								});

							}
						},	
						'error' : function(data){
							jQuery('#tweet-widget').append('<p class="error"></p>');
						}
					});
				};
				_f();
				var _ttt = setInterval(function(){
					if (last_rcnt != null){
						_tt = setInterval(_f, cfg_twit_refresh_interval);
						clearInterval(_ttt);
					}
				}, 50);
			}
			page_init();
			twitter4_init();
			our_picks_init();
			flickr_init();
		}
		autopos_footer('footer-sub', 40);
	});
}
/***********************************************************************
* End netcat safe block
***********************************************************************/  
