/* Changelog
 *  27/11/09
 *		UB - set title case
 *  04/12/09
 *		UB - add a bg to the VST page
 *  16/12/09
 *		UB - add ajax script to read banner ads
 *  29/01/10
 *		UB - pull out .file-attribute class elements from parents
 *  12/02/10
 *		UB - try to fix the PDF/file attr issue on livesite 
 *  9/03/10
 *		UB - modify homepage rhs ads 
 *  
 */
 
/***********************************************************************
* Global data
***********************************************************************/ 
var __HTML_CONTACT_US = '<div class="number">8203 7203</div><div class="desc">Including After Hours<br />and Public Holidays</div>' ;
var __ACC_CURRENT_DATE = new Date();
var _STATIC_ASSETS_BASEURL = '/ADCCWR/Static%20Assets/' ;
var __ADS_SRC_URL = '/ADCCWR/Static%20Assets/home_ads.js';
var __CAPITALIZER_JS = _STATIC_ASSETS_BASEURL + 'javascript/capitalizer.js';
var __AUTOPOS_FOOTER_OFFSET_Y = 10;
var __AUTOPOS_FOOTER_HEIGHT = 210;
var __FOOTER_TOP_PAGES = {
	'payments' : { 'title' : 'Payments', 'url' : '/services/payments.html' },
	'employment' : { 'title' : 'Positions Vacant', 'url' : '/recruitment/employment.html' },
	'search-my-library' : { 'title' : 'Search My Library', 'url' : '/library/search-my-library.html' },
	'parking-and-regulations' : { 'title' : 'Parking &amp; Regulations', 'url' : '/services/parking-and-regulations.html' },
	'rubbish-collection.html' : { 'title' : 'Rubbish Collection', 'url' : '/services/rubbish-collection.html' },
	'planning-and-building' : { 'title' : 'Planning &amp; Building', 'url' : '/development/planning-and-building.html' },
	'3d-city-model' : { 'title' : '3D City Model', 'url' : '/development/3d-city-model.html' },
	'permits-and-licences' : { 'title' : 'Permits &amp; Licences', 'url' : '/services/permits-and-licences.html' },
	'community-centres' : { 'title' : 'Community Centres', 'url' : '/community/community-centres.html' },
	'arts' : { 'title' : 'Arts & Culture', 'url' : '/community/arts.html' }
};
var _FOOTER_CONTACT_HTML  = '<div class="contact-info"><div class="footer-list-item first">Colonel Light Centre, 25 Pirie Street, Adelaide</div><div class="footer-list-item">Monday&thinsp;&ndash;&thinsp;Friday, 8:30am&thinsp;&ndash;&thinsp;5:30pm</div><div class="footer-list-item">T. (08) 8203 7203</div><div class="footer-list-item">F. (08) 8203 7575</div><div class="footer-list-item">E. <a href="mailto:city@adelaidecitycouncil.com?subject=Website%20Enquiry">City@Adelaidecitycouncil.com</a></div></div>';

var _FOOTER_OUR_PAGES_HTML = '<div class="footer-our-pages"><div class="footer-list-item first"><a href="http://www.adelaideaquaticcentre.com.au">Adelaide Aquatic Centre</a></div><div class="footer-list-item"><a href="http://www.cityofadelaide.com.au">City of Adelaide</a></div><div class="footer-list-item"><a href="http://www.adelaidecentralmarket.com.au">Central Market</a></div><div class="footer-list-item"><a href="http://www.enterpriseadelaide.com.au">Enterprise Adelaide</a></div><div class="footer-list-item"><a href="http://www.rundlemall.com.au">Rundle Mall</a></div></div>';

var __ACC_MENU_ROLLOVERS = ['/ADCCWR/Static Assets/images/menu/m-council.gif','/ADCCWR/Static Assets/images/menu/m-services.gif','/ADCCWR/Static Assets/images/menu/m-community.gif','/ADCCWR/Static Assets/images/menu/m-development.gif','/ADCCWR/Static Assets/images/menu/m-recruitment.gif','/ADCCWR/Static Assets/images/menu/m-business.gif', '/ADCCWR/Static Assets/images/menu/m-library.gif', '/ADCCWR/Static Assets/images/menu/m-environment.gif', '/ADCCWR/Static Assets/images/menu/m-visit.gif' ];
var __ACC_MENU_IMAGES = new Array();

/***********************************************************************
* Global code
***********************************************************************/  

/***********************************************************************
* Start netcat safe block
***********************************************************************/ 

/* image preloader */
var __menu_image_preload = function(a){
	for (var i = 0; i < a.length; ++i){
		(function(){
			var img = new Image();	
			img.src = a[i];
			__ACC_MENU_IMAGES[i] = img;
		})();
	}
}
__menu_image_preload(__ACC_MENU_ROLLOVERS);

if (typeof ncBPFramework == "undefined" && self == top){
	jQuery.noConflict();

	/***********************************************************************
	* Global slideshow function 
	***********************************************************************/ 
	var __slideshow_init = function(c,d,t){
		var ilist = Array();
		var _t = null; 
		var cur = 0;
		try {
			if (jQuery(c).length && (d.length > 1)){
				/* show loader */	
				jQuery(c).html('');
				for (var i = 0 ; i < d.length; ++i){
					(function(){
						var s = d[i]['image_url'];
						var l = d[i]['image_linkto'];
						var im = new Image();
						var cl = 'slideshow-image ';
						im.src = s;
						if (l.length){ 
							cl += 'linkable'; 
							jQuery(im).bind('click', function() { location.href = l; });
						}
						jQuery(im).css('display', ((i > 0) ? 'block' : 'none')).attr('class', cl);
						jQuery(c).append(jQuery(im));
						ilist[ilist.length] = im; 
					})();
				}
				if (ilist.length){
					jQuery(c).css('height', jQuery(ilist[0]).height().toString() + 'px');
					var f = function(){
						jQuery(ilist[cur]).fadeOut();
						++cur; if (cur >= ilist.length) { cur = 0; }
						jQuery(ilist[cur]).fadeIn();
						
					};
					if (ilist.length > 1) { cur = 0; f(); _t = setInterval(f, t); } }
				}
		} catch(ex) { alert(ex.message); };
	}

	/***********************************************************************
	* load and process the home ads .js array 
	***********************************************************************/  
	var __home_ads_json_handler = function(data) {
		var fi = true;
		jQuery('.banner-space-a').html('<div id="ad_list"><div class="title" onclick="javascript:location.href=' + "'http://www.cityofadelaide.com.au/action/EventHighlights?pc=WHATSON'" + ';"><h5>What&rsquo;s On</h5></div></div><div style="clear: both"></div>');
		jQuery('#ad_list').ready(
			function(){
				jQuery.each(data.items, 
					function(i, item){
						var ni = '';
						if (typeof item.visible != "undefined" && item.visible == "false") { return false; }
						if (item.link_url != null && item.link_url.length){
							ni = "<div class=\"ad linkable " + ((fi) ? ' first' : '') + "\" onclick=\"javascript:location.href='" + item.link_url + "';\" >";
						} else {
							ni = '<div class="ad' + ((fi) ? ' first' : '') + '">';
						}
						ni += '<span class="item">' + item.title + '</span></div>';
						jQuery('#ad_list').append(ni);
						fi = false;
					}
				);	
			}
		);
	}
	
	/***********************************************************************
	* reposition footer 
	***********************************************************************/  
	var __autopos_footer  = function(){
		try {
			var body_h = jQuery('body').attr('offsetHeight');
			var main_wrapper_h = jQuery('body .main-wrapper').attr('offsetHeight');
			var footer_y = jQuery('#footer').offset().top;
			var h = body_h - footer_y;
			var new_h = ((footer_y + __AUTOPOS_FOOTER_HEIGHT) < body_h) ? h : __AUTOPOS_FOOTER_HEIGHT;		
			jQuery('#footer').css('height', ((new_h).toString() + 'px'));			
		} catch(ex){
		
		}
	}

	/***********************************************************************
	* Pattern list function 
	***********************************************************************/ 
	var __pat_list_proc = function(s, pats){
		for (var i = 0; i < pats.length; ++i){
			pats[i].func(s, pats[i]);
		}
	}

	/***********************************************************************
	* Main code for pages
	***********************************************************************/ 
	var __get_friendly_date = function(d){
		var s = 'date placeholder';	
		var days_of_week = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
		var months_of_year = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
		s = days_of_week[d.getDay()] + ', ';
		s += d.getDate() + ' ';
		s += months_of_year[d.getMonth()];
		return s;
	}

	/**********************************************************************
	* Movie container
	**********************************************************************/
	var __movie_container_init = function(v, vt){
		var s ='';
		var b = '';
		var sb = {};
		var vid_hide_all = function(){
			for (var k in v){
				(function() { jQuery('#vid-container-' + k).remove(); })();
			}
		}
		for (var k in v){
			(function(){
			s += (sb[k] = '<div class="vid-container" style="display: none" id="vid-container-' + k + '"><object id="vid-id-' + k + '-obj" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" height="380" width="640" align="left" ><param name="Movie" value="/adccwr/Static%20Assets/swf/' + v[k] + '" /><param name="Src" value="/adccwr/Static%20Assets/swf/' + v[k] + '" /><param name="WMode" value="transparent" /><param name="AllowScriptAccess" value="always" /><param name="SeamlessTabbing" value="1" /><param name="ProfileAddress" value /><param name="AllowNetworking" value="all" /> <param name="AllowFullScreen" value="false" /><embed src="/adccwr/Static%20Assets/swf/' + v[k] + '" quality="high" name="" wmode="transparent" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" allownetworking="all" pluginspage="http://www.adobe.com/go/getflashplayer" align="left" width="640" height="380" /></object></div>');
			b = '<div class="vid-link" id="vid-link-' + k + '">' + vt[k] + '</div>';
			jQuery('#movie-container').append(b);
			var q = '#vid-link-' + k; 
			var _k =k;
			jQuery(q).ready(
				function(){
					if (jQuery(q).length) {
						jQuery(q).bind('click',
							function(){
								vid_hide_all();
								jQuery('#movie-container').append(sb[_k]);
								jQuery('#vid-container-' + _k).css('display', 'block');
							}
						);
					}
				}
			);
			})();
		}
		jQuery('#movie-container').append('<div style="clear: both"></div>');
	}


	var __page_handlers = function(p){
		switch (p){
			case 'home' :
				(function(){
					jQuery('body#section-home .main-wrapper').ready(					
						function(){					
							if (!jQuery('body#section-home .main-wrapper').length) return;
							
							/* display current info bar */
							jQuery('body#section-home .main-wrapper').append('<div class="current-info"></div>');
							jQuery('body#section-home .current-info').ready(
								function(){
									var parts = (jQuery('body#section-home #report-weather .date').html().split(' ')); 
									var __format_weather = function(w){
										var p = /[0-9]+?.*?C/im;
										var r = w;
										var m = r.match(p);
										if (m != null && typeof m != "undefined" && m.length){
											var m2 = m[0].match(/\d{1,3}/im);
											if (m2.length){ r = r.replace(m[0], m2[0] + '&#176; C '); }
										}
										return r;
									}

									jQuery('.weather').ready(
										function(){
											jQuery('body#section-home .current-info').append('<div class="current-weather">' + __format_weather(jQuery('.weather').text()) + '</div><div class="current-date">' +  __get_friendly_date(__ACC_CURRENT_DATE) + '</div>');
											jQuery('#report-weather').html('');
										}
									);
								}
							);
							/* display road closures */
							jQuery('body#section-home #i-want-to-list .title').ready(
								function(){
									jQuery('body#section-home #i-want-to-list .title').html('<h5>Quick Links</h5>');
								}
							);
							/* display the roadworks list */
							jQuery('body#section-home #report-list').ready(
								function(){
									jQuery("#report-list .item.title:first").attr('id', 'road-closure-title');
									jQuery("#road-closure-title").ready(
										function(){
											jQuery("#report-list .item.title a:[title='Media']").html('');
											jQuery("#road-closure-title").html('<h5 id="head-road-closures">Road Closures</h5>');
											jQuery("#report-list").css('display', 'block');
										}
									);
								}
							);
							
							jQuery('body#section-home .column-c').ready(
								function(){ jQuery('body#section-home .column-c').append('<div id="banner-1" onclick="javascript:'  + "location.href='/council/contact-us.html'" + ';"><h5>Contact Us</h5></div><div id="banner-2">' + __HTML_CONTACT_US + '</div>'); }
							);
							
							/* load the list of ads */
							jQuery.getScript(__ADS_SRC_URL);
						}
					);				
				})();
			break;
			
			
			case 'vst' :
				(function(){						
					if (jQuery('body#section-development #vst_flash_container').length){
						var styles = [	'vst/css/960.css',	'vst/css/text.css',	'vst/css/htmlstyles.css'];
						jQuery('#vst_flash_container').css("margin-top", "0px").css('display', 'block');
						jQuery('#keywords').remove();
						jQuery('#search-submit').remove();
						jQuery('#page-footer').css('display', 'block');
						jQuery('#breadcrumbs').remove();
						jQuery('#toolbox').remove();
						jQuery('#secondary-menu').remove();
						jQuery('#footer').css('display', 'none');
						jQuery('#main-menu').css('margin-bottom', '0px');
						jQuery('#vst_flash_container_background').css('display', 'block');	
						jQuery('body').append(jQuery('#vst_flash_container_background'));
						jQuery('#vst_flash_container').append('<embed pluginspage="http://www.macromedia.com/go/getflashplayer" src="/ADCCWR/Static%20Assets/vst/flash/vst.swf" width="960" height="600" type="application/x-shockwave-flash" play="true" allowscriptaccess="always" allownetworking="all" base="/ADCCWR/Static%20Assets/" wmode="transparent" flashvars="baseHref=/ADCCWR/Static%20Assets/vst/&amp;weather=d_fcast_city_4day.xml&amp;startDay=7&amp;endDay=19" />');

						jQuery('#flash').attr("wmode", "transparent");
						if (jQuery('head').length){					
							for (var i = 0; i < styles.length; ++i){
								styles[i] = _STATIC_ASSETS_BASEURL+ styles[i];						
								jQuery('head').append('<link rel="stylesheet" href="' + styles[i] + '" type="text/css" />');						
							}
						}
					}
				})();
			break;
			
			case 'library/kids' :
				(function(){
					if (jQuery('body#section-library object#kidslibrary').length){ jQuery('.search-bar').css('display' , 'none'); }
				})();
			break;
			
			case 'non-home' :
				(function(){jQuery('#toolbox').ready(
					function(){
						jQuery('#toolbox').append('<div id="banner-1" onclick="javascript:'  + "location.href='/council/contact-us.html'" + ';"><h5>Contact Us</h5></div><div id="banner-2">' + __HTML_CONTACT_US + '</div>'); 

						/***********************************************************************
						* Initialize any slideshows 
						***********************************************************************/  
						if (jQuery('#landing-slideshow-container a').length){
							jQuery('#landing-slideshow-container a').each(
								function(){
									if (jQuery('img', this).length){ jQuery('img', this).data('linkto', jQuery(this).attr('href')); } 
								}
							);	
						}
						if (jQuery('#landing-slideshow-container img').length){
							var ilist = new Array();
							jQuery('#landing-slideshow-container img').each(
								function(){ 
									ilist[ilist.length] = { 
										'image_url' : jQuery(this).attr('src'),
										'image_linkto' : (typeof jQuery(this).data('linkto') != "undefined") ? jQuery(this).data('linkto') : ''
									}; 
								}
							);
							__slideshow_init('#landing-slideshow-container', ilist, 3500);
						}
					}
				);})();
			break;

			case 'environment/park-lands' :
				(function(){					
					if (jQuery('#movie-container').length){								
						var v = {
							'vid-1' : 'parklands_2010_02_17.swf'
							};
						var vt = {
							'vid-1' : 'The Flying Footbridge'
						};
						__movie_container_init(v, vt);	
					}
				})();
			break;
	
			case 'environment/energy' :
				(function(){					
					if (jQuery('#movie-container').length){								
						var v = {
							'vid-1' : 'solar_vid_2010_01_21_1.swf',
							'vid-2' : 'solar_vid_2010_01_21_2.swf'
							};
						var vt = {
							'vid-1' : 'Solar Powered Tindo Bus',
							'vid-2' : 'Rundle Lantern'
						};
						__movie_container_init(v, vt);	
					}
				})();
			break;
			
			case 'site' :
				(function(){
					/* text patterns related callbacks */
					var pat_list =  [
						{ 
							'pat' : /\s*?<span.*?\(PDF,\s*?[0-9]*\s*?\w*?\).*?span>/gim,
							'func' : function(s, p){
								jQuery('#main-container a').each(
									function(){
										var h = jQuery(this).html();
										var m = h.match(p.pat);	
										if (typeof m != "undefined" && m != null && m.length){
											for (var i = 0 ; i < m.length; ++i){
												jQuery(this).html(h.replace(p.pat, ''));
												jQuery(m[i]).insertAfter(jQuery(this));
												jQuery('<b style="width: 1em">&nbsp;</b>').insertAfter(jQuery(this));
											}	
										}
									}
								);
							}
						},
						{ 
							'pat' : /\s*?\(PDF,\s*?[0-9]*\s*?\w*?\)/gim,
							'func' : function(s, p){
								jQuery('#main-container a').each(
									function(){
										var h = jQuery(this).html();
										var m = h.match(p.pat);	
										if (typeof m != "undefined" && m != null && m.length){
											for (var i = 0 ; i < m.length; ++i){
												jQuery(this).html(h.replace(p.pat, ''));
												if (jQuery.browser.msie) {
													jQuery('<span class="file-attribute">&nbsp;' + m[i] + '</span>').insertAfter(jQuery(this));
												} else {
													jQuery('<span class="file-attribute">' + m[i] + '</span>').insertAfter(jQuery(this));
												}
												/*jQuery('<b style="width: 1em">&nbsp;</b>').insertAfter(jQuery(this));*/
											}	
										}
									}
								);
							}
						}
					];
					__pat_list_proc(jQuery('#main-container').html(), pat_list);

					/* Set a default text for input boxes */
					var __input_box_default = function(s, t){
						jQuery(s).ready(
							function(){
								jQuery(s).val(t);
								jQuery(s).click(
									function(){
										if(jQuery(s).val().toLowerCase() == t.toLowerCase()){
											jQuery(s).val('').css('font-style', 'normal'); 
										}
									}
								);
								jQuery(s).blur(
									function(){
										if(!jQuery(s).val().toLowerCase().length){
											jQuery(s).css('font-style', 'italic').val(t);
										}
									}
								);			
							}
						);
					}
				
					/* override styles */	
					jQuery('label:[for=svattrfbEMAIL_TEXT]').remove();
					jQuery('label:[for=svattrfbEMAIL_ADDRESS]').remove();
					jQuery('#footer .nav').css('margin-top', '180px'); 
				
					/* load external scripts */
					jQuery.getScript(__CAPITALIZER_JS);
					
					/* call site-wide functions */
					__input_box_default('input#keywords', 'Search...');
					__input_box_default('input#svattrfbEMAIL_ADDRESS', 'Email Address');
					__input_box_default('#svattrfbEMAIL_TEXT', 'Question');
					
					/* initialize and reposition footer */
					jQuery('#footer').ready(
						function(){ 
							/* reattach footer and children */
							jQuery('body').append(jQuery('#footer'));
							jQuery('#footer').append('<div class="footer-inner-wrapper"></div>');
							jQuery('.footer-inner-wrapper').ready(
								function(){
									jQuery('.footer-inner-wrapper').append(jQuery('#footer ul.nav'));						
									
									/* create footer content */

									/* top pages */
									jQuery('.footer-inner-wrapper').append('<div class="footer-heading-top-pages">Popular Pages</div>');
									var n = 0;
									for (var k in __FOOTER_TOP_PAGES) {
										(function(){
											var item = __FOOTER_TOP_PAGES[k];
											jQuery('.footer-inner-wrapper').append('<div class="footer-list-item' + ((n < 5) ? ' col-1' : ' col-2') + (' row-' + ((n % 5) + 1).toString()) + '" class="footer-list-item-' + n.toString() + '"><a href="' + item.url + '">' + item.title + '</a></div>');
											++n;
										})();	
									}
									
									jQuery('.footer-inner-wrapper').append(
										'<div class="contact-box">' + _FOOTER_CONTACT_HTML + '</div>' + 
										'<div class="our-pages-box">' + _FOOTER_OUR_PAGES_HTML + '</div>' +
										'<div class="footer-heading-our-pages">Our Websites</div>' +
										'<div class="footer-heading-contact">Customer Centre</div>');
								}
							);

							/* reposition */
							jQuery(window).resize(function () { __autopos_footer(); });
							__autopos_footer();
						}
					);
				})();
			break;
			
			default:
		}
	}

	/* main net-cat safe event handler for body */
	jQuery('body').ready(
		function() {
			/* run on all pages */
			__page_handlers('site');

			/* page specific section */
			if (jQuery('body#section-development').length){ __page_handlers('vst');	}
			else if (jQuery('body#section-library').length){ __page_handlers('library/kids'); }
			else if (jQuery('body#section-home').length){ __page_handlers('home'); }
			else if (jQuery('body#section-environment').length && /environment\/energy.html/.test(location.href)){  __page_handlers('environment/energy'); }
			else if (jQuery('body#section-environment').length && /environment\/park-lands.html/.test(location.href)){  __page_handlers('environment/park-lands'); }

			/* all pages except for home */
			if (!jQuery('body#section-home').length){ __page_handlers('non-home'); }
		}
	);	

} /* end ACC_SITE_JS */
/***********************************************************************
* End netcat-safe block
***********************************************************************/  

/***********************************************************************
* Main start block
***********************************************************************/  
var __main_menu_init=function(){jQuery('#main-menu').jdMenu({onShow:loadMenu,onHide:onHideMenu});};
var loadMenu = function(){};
var onHideMenu = function(){jQuery(this).css('display','none');};
var onHideCheckMenu = function(){return!jQuery(this).parent().is('.LOCKED');};
var addLoadEvent = function(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){if(oldonload){oldonload();}
func();};}} /* add handlers to the onload event */

jQuery('body').ready( function(){ addLoadEvent(__main_menu_init); });
/***********************************************************************
* End main start block
***********************************************************************/  

/***********************************************************************
* End Global code
***********************************************************************/  
