$('html').addClass('js');

DD_roundies.addRule('.r', '10px');
DD_roundies.addRule('.r-t', '10px 10px 0 0');
DD_roundies.addRule('.r-b', '0 0 10px 10px');
DD_roundies.addRule('.r-tr', '0 10px 0 0');
DD_roundies.addRule('.r-bl', '0 0 0 10px');
DD_roundies.addRule('.r-l', '10px 0 0 10px');
DD_roundies.addRule('.r-r', '0 10px 10px 0');
DD_roundies.addRule('.r-d', '0 10px');


DD_roundies.addRule('.r-l-5', '5px 0 0 5px');
DD_roundies.addRule('.r-r-5', '0px 5px 5px 0');
DD_roundies.addRule('.r-5', '5px');

$(document).ready(function() {
	var arrSuburbs = new Array();
	var onPostPage = $('#post-form').length > 0;
	var onIE6 = $.browser.msie && $.browser.version.substr(0,1) == 6;
	
	/* Select Dropdown
	---------------------------------------------------------*/
	$('#state').sSelect();

	var zIndexNumber = 1000;
    $("#title-wrap div, #nav div").each(function() {
            $(this).css('zIndex', zIndexNumber);
            zIndexNumber -= 10;
    });
    

	// Configs
	var defaultGMapZoom = 16;
	var defaultOverviewGmapZoom = 13;
	var defaultLat = -33.89000;
	var defaultLng = 151.190000;
	var infoWindowWidth = 400;

	
	/* ========== POST FORM ============ */

	// Validate post form
	$('#post-form').validate({
		errorClass: "validation-message",
		success: function(label) {
			label.addClass("valid").text("Good!");
		}
	});
	
	$('#join-form,#login-form,#contact-form,#contact-poster').validate({
		errorClass: 'invalid-input',
		highlight: function(element, errorClass) {
			$(element).addClass(errorClass);
		},
		unhighlight: function(element, errorClass) {
			$(element).removeClass(errorClass);
		}
	});
	
				
	// Is there google map?
	if (typeof(GClientGeocoder) != 'undefined')
	{
		//Display ad google map
		$('#gmap').each(function(){
			var $gmapDiv = $(this);
			var address = $gmapDiv.next().text();
			var geocoder = new GClientGeocoder();
			var defaultCenter = new GLatLng(defaultLat, defaultLng);

			geocoder.getLatLng(address, function(point){
				if (!point){
					$gmapDiv.height(50).append('<p>This address is not found on google map</p>');
				}
				else{
					// Display map
					var map = new GMap2(document.getElementById('gmap'));
					map.setCenter(point, defaultGMapZoom);
	
					// Create marker
					var marker = new GMarker(point);
					map.addOverlay(marker);
					// marker.openInfoWindowHtml(address);
					
					map.addControl(new GSmallZoomControl3D());
					map.addControl(new GMapTypeControl());
					map.removeMapType(G_SATELLITE_MAP);
					map.removeMapType(G_PHYSICAL_MAP);
				}
			});
		})
		
		// Display overview google map
		$('#overviewgmap').each(function(){
			// Get the list of markers
			$.get(baseURL + '/map/getmarkers', function(data){
				var $gmapDiv = $('#overviewgmap');
				var geocoder = new GClientGeocoder();
				var map = new GMap2(document.getElementById('overviewgmap'));
				var defaultCenter = new GLatLng(defaultLat, defaultLng);

				// Configure map
				map.setCenter(defaultCenter, defaultOverviewGmapZoom);
				map.addControl(new GSmallZoomControl3D());
				map.addControl(new GMapTypeControl());
				map.removeMapType(G_SATELLITE_MAP);
				map.removeMapType(G_PHYSICAL_MAP);

				// Plot markers
				$(data).find('marker').each(function(){
					var address = $(this).find('map').text();
					var description = $(this).find('description').text();
					var title = $(this).find('title').text();
						
					// Insert marker to map
					geocoder.getLatLng(address, function(point){
						if (point){
							// Create marker
							var marker = new GMarker(point, {
								"clickable" : true,
								"description" : description
							});
							
							// Add marker to the map
							map.addOverlay(marker);

							// Add click event for the marker
							GEvent.addListener(marker, "click", function(){
								var thisPoint = marker.getLatLng();
								
								map.panTo(thisPoint);
								map.openInfoWindowHtml(thisPoint, marker.description, {maxWidth: infoWindowWidth});
							})
						}
					});
				})						
			})
		})
		
		// Unload google events
		$(document).bind("unload", GUnload);
	}
	
	// Auto update user URL when joining (doesn't work when the text is selected from the hint list or copied and pasted into the text field =()
	if ($('.login #username').val() != '') { 
		$('.login #username-wrap span em').text($('.login #username').val());
	}
	
	$('.login #username').keyup(function() {
		var name = $('.login #username').val();
		$('.login #username-wrap span em').text(name);
		
		if ($('.login #username').val() == '') { 
			$('.login #username-wrap span em').text('your-username');
		}
	})
	
	var tab = $.url.param('tab');
	switch(tab)
	{
		case 'ads': tabNo = 0; break;
		case 'watchlist': tabNo = 1; break;
		case 'comments': tabNo = 3; break;
		default: tabNo = 0; break;
	}
	$('.tabber').tabs({ selected: tabNo });
	$('.tabber .tab-content').show();
	
	/* Infield Labels
	---------------------------------------------------------*/
 	$("#home-filter-search label").inFieldLabels();

	/* Photos
	---------------------------------------------------------*/
	$('.photos li').hover(function() {
		$(this).find('img').addClass('hover').stop();
	}, function() {
		$(this).find('img').removeClass('hover').stop();	
	});
	
	/* Using custom settings */ 
	$(".photos a").fancybox({ 
		'overlayShow': true, 
		'overlayOpacity': .8,
		'overlayColor': '#000',
		'padding': 8
	}); 
	
	// fade in message bar
	if ($('#message').length > 0)
	{
		$('#message').bar({
			color 			 : '#222',
			background_color : '#AEEF19',
			removebutton     : false,
			message			 : $('#message').html(),
			time			 : 4000
		});
		
		// Add in a bit of delay before fading in the message
		$('#message').animate({opacity: 1}, 100, function(){
			$(this).trigger('click');
		});
	}
	
	// Update images of an ad
	$('.removeAdImage').click(function(e){
		e.preventDefault();
		var $this = $(this);
		var $li = $this.parent();
		var $adImageName = $('.adImageName', $li);
		var imgId = $li.attr('id').substr(-1,1);
		var imgName = $adImageName.text();
		
		// Image name being shown?
		if ($adImageName.is(':visible'))
		{
			$adImageName.hide();
			$li.prepend('<input type="file" name="imageFile' + imgId + '" class="post-image" value="Add an image" />')
			   .prepend('<input type="hidden" name="removeImageFile' + imgId + '" class="remove-image" value="' + imgName + '" />');
			$this.text('Keep old image (' + imgName + ')');
		}
		else
		{
			$adImageName.show();
			$('.post-image,.remove-image', $li).remove();
			$this.text('Remove');
		}
	})
	
	// Options for fancy box popup
	var fancyOptions = {
		'overlayShow': true, 
		'overlayOpacity': .8,
		'overlayColor': '#222',
		'padding': 0,
		'frameHeight': 400
	}
	
	/* Send to Friend
	---------------------------------------------------------*/
	$('#send-to-friend').fancybox(fancyOptions);


	/* Admin Nav
	---------------------------------------------------------*/
	$(".admin-nav").hover(function() {
        $(this).addClass("hover");
        $('ul:first', this).css('display', 'block');
    }, function() {
        $(this).removeClass("hover");
        $('ul:first',this).css('display', 'none');
    });
    
    $("ul.dropdown li ul li:has(ul)").find("a:first").append(" &raquo; ");
	
	// Pop up login page
	$('.requirelogin').each(function(){
		var newURL = (baseURL + '/login?popup=1&redirectURL=' + $(this).attr('href')).replace('#', '*') + '&redirectBackURL=' + currentPage;
		
		$(this).attr('href', newURL).addClass('iframe').fancybox({
		'overlayShow': true, 
		'overlayOpacity': .8,
		'overlayColor': '#222',
		'padding': 0,
		'frameHeight': 400
		});
	});
	
	// Get the list of all suburbs
	if (onPostPage && !onIE6)
	{
		$.get(baseURL + '/getsuburbs', function(data){
			$(data).find('suburbs').each(function(){
				var stateId = $(this).attr('stateId');
				var suburbList = $.trim($(this).text());
				arrSuburbs[stateId] = suburbList.split(',');
				
				updateSuburbAutocomplete();
			})
		});
	
		// Set suburb autocomplete
		var updateSuburbAutocomplete = function(){
			var stateId = $('select#post-state').val();
			
			// Selected a state?
			if (stateId != '')
			{
				$('#post-suburb').flushCache().autocomplete(arrSuburbs[stateId]);
			}
		};
		$('select#post-state').bind('change', updateSuburbAutocomplete);
		
		// Prefill the state and suburb based on user location on post form
		// Information provided by: http://www.maxmind.com/app/javascript_city
		var clientCountryCode = geoip_country_code();
		var clientState = geoip_region_name();
		var clientSuburb = geoip_city();
		
		if (clientCountryCode == 'AU' && clientState != '' && clientSuburb != '')
		{
			// Preselect state
			if ($('select#post-state').val() == '')
			{
				$('select#post-state > option').each(function(){
					if ($(this).text() == clientState)
					{
						$(this).attr('selected', 'selected');
					}
				})
				
				$('.maxmindDisclaimer').show();
			}
			
			// Prefill suburb
			if ($('#post-suburb').val() == '')
			{
				$('#post-suburb').val(clientSuburb);
				$('.maxmindDisclaimer').show();
			}
		}
	}
	
	// Open new window links
	$('.newWindow').click(function(e){
		e.preventDefault();
		window.open($(this).attr('href'), $(this).attr('title'), 'width=800,height=600,scrollbars=yes,resizable=yes');
	})
	
	// User list sortability
	$('.userlist').tablesorter({
		sortList: [[1,0]],
		headers: {
			0: { sorter: false },
			4: { sorter: false }
		},
		widgets: ['zebra']
	});
	
	// Sort options dropdown
	$('.sort-options > a:first').click(function() {
		$('.sort-options ul').toggle();
		return false;
	})
})

// Home slider
$(window).load(function() {
	$('#slider').nivoSlider({
		animSpeed:1000,
		pauseTime:5000	
	});
});

// Do not show user voice for print page
if (currentPage.indexOf(baseURL + "/ad/print/") == -1)
{
	// User Voice Feedback
	var uservoiceOptions = {
	  /* required */
	  key: 'treegr',
	  host: 'treegr.uservoice.com', 
	  forum: '35008',
	  showTab: true,  
	  /* optional */
	  alignment: 'left',
	  background_color:'#222', 
	  text_color: 'white',
	  hover_color: '#aeef19',
	  lang: 'en'
	};
	
	function _loadUserVoice() {
	  var s = document.createElement('script');
	  s.setAttribute('type', 'text/javascript');
	  s.setAttribute('src', ("https:" == document.location.protocol ? "https://" : "http://") + "cdn.uservoice.com/javascripts/widgets/tab.js");
	  document.getElementsByTagName('head')[0].appendChild(s);
	}

	_loadSuper = window.onload;
	window.onload = (typeof window.onload != 'function') ? _loadUserVoice : function() { _loadSuper(); _loadUserVoice(); };
}


