$(document).ready(function() { 
	// enable model tooltips
	initModelTooltips();
	// init validation of forms
	var errorContainer = $('div.validation-error-container');
	$(errorContainer).hide();
	$('form.validatable').validate({
		errorContainer: errorContainer,
		errorLabelContainer: $('ol', errorContainer),
		meta: 'validate',
		onsubmit: true,
		onblur: false,
		onkeyup: false,
		wrapper: 'li'
	});
	// init google maps
	if (document.getElementById('city-map') && GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById('city-map'));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(53.549005, 9.931976), 15);
		var point = new GLatLng(53.549005,9.931976);
  		map.addOverlay(createMarker(point));
	}
	// init measure switch
	$('div#measures-inch').hide();
	$('a#switch-to-cm').click(function() {
		$('div#measures-inch').fadeOut('slow', function() {
			$('div#measures-cm').fadeIn();
		});
		return false;
	});
	$('a#switch-to-inch').click(function() {
		$('div#measures-cm').fadeOut('slow', function() {
			$('div#measures-inch').fadeIn();
		});
		return false;
	});
	// image viewing options
	$('div#polaroid-gallery').hide();
	$('div#video-gallery').hide();
	$('a#switch-to-photos').addClass('active');
	$('a#switch-to-photos').click(function() {
		$('div#polaroid-gallery:visible').slideUp('slow', function() {
			$('div#photo-gallery').slideDown();
		});
		$('div#video-gallery:visible').slideUp('slow', function() {
			$('div#photo-gallery').slideDown();
		});
		$('a#switch-to-polaroids').removeClass('active');
		$('a#switch-to-videos').removeClass('active');
		$('a#switch-to-photos').addClass('active');
		return false;
	});
	$('a#switch-to-polaroids').click(function() {
		$('div#photo-gallery:visible').slideUp('slow', function() {
			$('div#polaroid-gallery').slideDown();
		});
		$('div#video-gallery:visible').slideUp('slow', function() {
			$('div#polaroid-gallery').slideDown();
		});
		$('a#switch-to-photos').removeClass('active');
		$('a#switch-to-videos').removeClass('active');
		$('a#switch-to-polaroids').addClass('active');
		return false;
	});
	$('a#switch-to-videos').click(function() {
		$('div#photo-gallery:visible').slideUp('slow', function() {
			$('div#video-gallery').slideDown();
		});
		$('div#polaroid-gallery:visible').slideUp('slow', function() {
			$('div#video-gallery').slideDown();
		});
		$('a#switch-to-polaroids').removeClass('active');
		$('a#switch-to-photos').removeClass('active');
		$('a#switch-to-videos').addClass('active');
		return false;
	});
	// handle model search
	$('div#search-result-container').hide();
	var options = { 
        target: '#search-result-container',
        beforeSubmit: beforeModelSearch,
        success: resultModelSearch
    };
    $('form#model-search').submit(function() {
        $(this).ajaxSubmit(options);
        return false; 
    }); 
	// news ajax view
	$('div.news-item a').click(function() {
		$('div#news-detail-inner').fadeOut();
		var newsId = $(this).attr('rel') || 0;
		$('div#news-detail-inner').load('/news/entry/' + newsId, null, function() {
			$('div#news-detail-inner').fadeIn();
		});
		return false;
	});
	// toggle search field
	$('div#model-list-search').hide();
	$('li#search-link a').click(function() {
		
		$('div#model-list-search').slideToggle('slow', function() {
			$('#model-browse-results').toggle('slow', function() {			
				initModelTooltips();
			});
			$('li#search-link a').text('hide search');
			$('li#search-link.active a').text('search a model');
			$('li#search-link').toggleClass('active');
		});
		return false;
	});
	// enablemodel back link
	$('a#model-detail-backlink').click(function() {
		history.back(-1);
		return false;
	});
});

// create gmaps marker
function createMarker(point) {
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml('<div style="color: #000; font-size: 1.2em;"><strong>place models hamburg</strong><br>Am Felde 29<br>22765 Hamburg</div>');
	});
	return marker;
}

// model search pre-submit callback 
function beforeModelSearch(formData, jqForm, options) {
	$('#model-search-submit').attr('value', 'searching...');
	$('#model-search-submit').attr('disabled', 'disabled');
	$('#search-result-container:visible').slideUp();
    return true; 
} 
 
// model search post-submit callback 
function resultModelSearch(responseText, statusText)  {
	$('#search-result-container:hidden').slideDown();
	$('#model-search-submit').attr('value', 'search');
	$('#model-search-submit').attr('disabled', '');
	initModelTooltips();
} 

// init model tooltips after ajax mod
function initModelTooltips() {
	$('.model-item img').Tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - "
	});
}