/* 
	Title:		Gumtree Show Posting JS
	Copyright:	2009 Gumtree.com
	Date:		31 July 2009
	Authours:	Antonio Lulic
	Email:		anlulic@ebay.com
*/

if ($.browser.msie && $.browser.version < 8) {
	if ($('body > ignore').length == 0) {
		DD_roundies.addRule('span.play-video');
		DD_roundies.addRule('div#posting', '8px');
		DD_roundies.addRule('div#posting h1', '8px 8px 0 0;');
		DD_roundies.addRule('div#sidebar-ad', '0 0 8px 0');
		DD_roundies.addRule('span.button', '5px');
		DD_roundies.addRule('span.button input, span.button button, span.button a', '4px');

		DD_roundies.addRule('ul.adsense', '8px');
		DD_roundies.addRule('ul.adsense li.titlebar', '8px 8px 0 0');
		DD_roundies.addRule('strong.urgent', '3px');
	} else {
		$('body > ignore').show();
		$('body > ignore').css('left', leftOffset+'px');
		$('body > ignore').css('top', topOffset+'px');
	}
}

/* Image/thumbnail swapping */

var site_id;
var posting_id;

/* DEPREACTED - WE NOW DO THIS IN THE TEMPLATE
function displaySearchTerms() {
	var ref = document.referrer;
	if (ref.indexOf('?') == -1) return;
	var qs = ref.substr(ref.indexOf('?')+1);
	var qsa = qs.split('&');
	for (var i=0;i<qsa.length;i++) {
		var qsip = qsa[i].split('=');
		if (qsip.length == 1) continue;
		if (qsip[0] == 'q' || qsip[0] == 'p') { // q= for Google, p= for Yahoo
			var wordstring = unescape(qsip[1].replace(/\+/g,' '));
			$('div#container').after('<div id="search-greeting"><p><span>Looking for <strong>"' + wordstring + '"</strong>? If this isn\'t what you\'re after, we\'ve got more. <a href=\"' + postingCategory + '\" title=\"More ' + wordstring + ' Ads\">See more ads here</a></span></p></div>');
			$('p#posting-category').css({paddingBottom:'60px'});
		}
	}
}
*/

/*
function saveAd() {
	if (Starred[posting_id]) {
		unSaveAd();
	} else {
		$('label[for="ad-saved"').html('Saving&hellip;');
		addToStarred(posting_id, function(posting_id) {
			$('label[for="ad-saved"]').html('<span>Saved</span>');
		});
	}
}

function unSaveAd() {
	$('label[for="ad-saved"').html('Unsaving&hellip;');
   		removeFromStarred(posting_id, function(posting_id) {
			$('label[for="ad-saved"]').html('<span>Save</span>&nbsp;&nbsp;');
	});
}
*/

function setSavedAdsCount () {
	var posting_ids = getCookie('posting_ids');
	if  (posting_ids) {
		var savedAds = posting_ids.split(' ');
		$('#my-saved-ads-link span').text('('+savedAds.length+')');
	}
}

function updateSavedAdsCount (modifyBy) {
	if ($('#my-saved-ads-link span').text() != '') {
		var currCount = parseInt($('#my-saved-ads-link span').text().match(/\(([0-9]+)\)/)[1]);
	} else {
		var currCount = 0;
	}
	var newCount = currCount + modifyBy;
	if (newCount < 0) {
		newCount = 0;
	}
	$('#my-saved-ads-link span').text('('+newCount+')');
}

function initGoogleMap() {
	if (GBrowserIsCompatible()) {
		var thismap = new GMap2(document.getElementById('map_canvas'));
		var point = new google.maps.LatLng(thislat, thislon);
		thismap.setCenter(point, 14);
		thismap.addControl(new google.maps.SmallMapControl());
		thismap.addControl(new google.maps.MapTypeControl());
		thismap.addOverlay(new google.maps.Marker(thismap.getCenter()));
	}
}

function showposting_view_counter() {
	if ($('div#posting').hasClass('preview')) {
		return;
	} else {
		$.getJSON(
			'http://vc.gumtree.com/?ps=' + posting_id + '&jsonp=?',
			function( json ){
				if( json.total !== undefined ) {
					$('dl.secondary.attributes dt.ugh').text('Ad viewed:');
					$('dl.secondary.attributes dd.ugh').text(json.total + ' times');
					clearAttributes();
				}
			}
		);
	}
}
	
function clearAttributes() {
	$('dl.secondary.attributes dt').removeClass('clear');
	$('dl.secondary.attributes dt:even').addClass('clear');
}

$(document).ready( function(){

	site_id = parseInt($('meta[name="DCSext.site_id"]').attr('content'));
	posting_id = parseInt($('meta[name="DCSext.posting_id"]').attr('content'));

/*	DEPREACTED - WE NOW DO THIS IN THE TEMPLATE
	displaySearchTerms();
*/

	if ($('div#similar-ads').length > 0) {
		$('div#similar-ads').css({'position':'absolute'});
		$('ul#posting-actions').css({'margin-bottom':$('div#similar-ads').height() + 80 + 'px'});
	}

	showposting_view_counter();
	setSavedAdsCount();	// Add saved ads count

	clearAttributes();

	var dateNow = new Date();
	var timeNow = Math.round((dateNow.getTime()) / 1000);
	var timeStartToday = Math.round((new Date(dateNow.getFullYear(), dateNow.getMonth(), dateNow.getDate(), 0, 0, 0).getTime()) / 1000);
	// alert(timeNow);
	$('strong#date-posted').each(function(){
		var timestamp = parseInt($(this).attr('class').match(/ts-([0-9]+)/)[1]);
		// alert(timeNow + ' : ' + timestamp);
		var timeElapsed = timeNow - timestamp;
		var timeElapsedInMinutes = Math.round(timeElapsed / 60);
		
		switch(true) {
			case (timeElapsed < 60):
				var timeAgo = timeElapsed + ' seconds ago';
				break;
			case timeElapsedInMinutes == 1:
				var timeAgo = 'A minute ago';
				break;
			case timeElapsedInMinutes < 45:
				var timeAgo = timeElapsedInMinutes + ' minutes ago';
				break;
			case timeElapsedInMinutes < 90:
				var timeAgo = 'About an hour ago';
				break;
			case timeElapsedInMinutes < 300 || timestamp >= timeStartToday:
				var timeAgo = 'About ' + Math.round(timeElapsedInMinutes / 60) + ' hours ago';
				break;
			case timestamp >= (timeStartToday - 86400):
				var timeAgo = 'Yesterday';
				break;
			case timeElapsedInMinutes < 43200:
				var timeAgo = Math.round(timeElapsedInMinutes / 1440) + ' days ago';
				break;
			case timeElapsedInMinutes < 86400:
				var timeAgo = 'About a month ago';
				break;
			case timeElapsedInMinutes < 525600:
				var timeAgo = Math.round(timeElapsedInMinutes / 43200) + ' months ago';
				break;
			case timeElapsedInMinutes < 1051200:
				var timeAgo = 'About a year ago';
				break;
			default:
				var timeAgo = Math.round(timeElapsedInMinutes / 525600) + ' years ago';
				break;
		}
		$(this).children('span.time-ago').text(timeAgo);
	});

	$('div#similar-ads ul li img').click(function() {
		window.location = $(this).attr('title');
	});

	$('ul.striped').each(function(){
		$(this).children('li:even').addClass('odd');
		$(this).children('li:odd').addClass('even');
	});

	if ($('div#map_canvas').length > 0) {
		if ($.browser.msie && $.browser.version < 7) {
			$('div#map_canvas').html('<img src=\"http://maps.google.com/staticmap?key=' + mapskey + '&center=' + thislat + ',' + thislon + '&size=358x358&zoom=13&markers=' + thislat + ',' + thislon + '\" />');
		} else {
			google.load('maps', '2', {'callback':initGoogleMap});
		}
	}

	if ($.browser.msie && $.browser.version < 7) {
		$('ul.adsense li a span.adtitle, ul.adsense li a span.adlink').hover(
			function () {
				$(this).css({'text-decoration':'underline'});
			}, 
			function () {
				$(this).css({'text-decoration':'none'});
			}
	    );
	}

	showposting_load(posting_id);
	
	$('input#ad-saved').click(function() {
		$('ul#posting-actions li.save').width($('ul#posting-actions li.save').width());
		if ($(this).attr('checked') == true) {
			saveAd();
		} else {
			unSaveAd();
		}
	});

	$('ul#media li.picture a').click(function(event) {
		event.preventDefault();
		$('div#video').hide();
		$('div#main-picture').hide();
		var url = $(this).attr('href');
		$('div#main-picture img').attr('src',url);
		$('div#main-picture').show();
	});

	$('ul#media li.video a').click(function(event) {
		event.preventDefault();
		$('div#main-picture').hide();
		$('div#video').show();
	});

	$('a#show-large-map').click(function(event) {

		event.preventDefault();
		// if modal div hasn't been created yet, create it
		if ($('#map-modal').size() == 0) {
			$('body').append('<div id="map-modal" class="modal"><h3>'+$('#location-map-title').text()+'</h3><p class="close"><a href="#">Close</a></p></div>');
		}

		targetDiv = $('#map-modal');
		targetDivId = '#map-modal';

		if (targetDiv.hasClass('show')) {
			hideLightbox();
			targetDiv.removeClass('show');
		} else {
			$('#map_canvas').appendTo('#map-modal');
			google.load('maps', '2', {'callback':initGoogleMap});
			$('body').append('<div id="lightbox-bg"></div>');
			$('#lightbox-bg')
				.css('height', $(document).height()+'px')
				.animate({'opacity':'0.5'}, 200);
			targetDiv.addClass('show');
			//		work out offset to the document
			var leftOffset = parseInt($(window).width()/2) - parseInt(targetDiv.width()/2) + $(window).scrollLeft();
			var topOffset = parseInt($(window).height()/2) - parseInt(targetDiv.height()/2) + $(window).scrollTop();
			targetDiv
				.css({'left':leftOffset+'px','top':topOffset+'px'})
			//		move to end of body tag to sort out z-index issues
				.appendTo('body');
			if ($.browser.msie && $.browser.version < 8) {
				if ($('body > ignore').length == 0) {
					DD_roundies.addRule(targetDivId, '8px');
					DD_roundies.addRule(targetDivId+' h3', '8px 8px 0 0');
					if ($.browser.msie && $.browser.version < 7) {
						DD_roundies.addRule(targetDivId+' p.close a');
					}
				} else {
					$('body > ignore')
						.show()
						.css({'left':leftOffset+'px','top':topOffset+'px'});
				}
			}
		}
	  
		$('div#map-modal p.close a').click(function(event) {
			event.preventDefault();
			$('#lightbox-bg')
				.animate({'opacity':'0'}, 200, function () {
					$(this).remove();
				});
			if ($.browser.msie && $.browser.version < 8) {
				$('body > ignore').hide();
			}
			var targetDiv = $(this).parents('div.modal');
			targetDiv.removeClass('show');
			$('#map_canvas').insertAfter('p#location-map-title');
			google.load('maps', '2', {'callback':initGoogleMap});
		});

	});

	activateAdPlacements();

});
