$(function(){
	$('#usermenu, #mainmenu, #content, .items .item').corner('5px');
	
	if( !$.browser.msie ) {
		$('input[type=submit]').corner('3px');
		$('input[type=button]').corner('3px');
	}
	
	$('a.print-link').attr('target','_blank');
	
	$('input.share-url').each(function(){
		var shareInput = $(this);
		var kopiolinkki = $('<a href="#">kopioi</a>').click(function(){
			shareInput[0].focus();
			shareInput[0].select();
			var txt = document.selection.createRange();
			txt.execCommand('Copy');
		});
	});
	
	$('a[rel=original-image]').fancybox();
	
	$('input[type=text][title]').defaultText({
		textStyle: {
			color: '#999',
			fontStyle: 'italic'
		}
	});
	
	$('.firstFocus').focus();
	
	$('textarea.htmleditor').ckeditor();
	
	$('form fieldset.collapsible').each(function(){
		var container = $(this);
		var collapsible = $('.collapsible-content',this);
		if( $(this).hasClass('collapsed') && $('.error',this).length == 0 ) {
			collapsible.toggle();
		}
		$('legend',this).css({
			cursor: 'pointer'
		}).addClass('collapsible-header').click(function(){
			container.toggleClass('collapsed');
			collapsible.toggle('blind');
		});
	});
	
	$('.flashmessages').fadeTo(5000,0.99,function(){
		$(this).fadeOut(2000,function(){
			$(this).remove();
		});
	});
	
	$('#mainmenu').each(function(){
		var valikko = $(this);
		var sisalto = $('#content');
		
		var piilota = $('<a href="#" class="piilota">&lt;</a>').click(function(){
			if( !valikko.hasClass('piilotettu') ) {
				$(this).attr('title','Näytä valikko').html('&gt');
				valikko.addClass('piilotettu',700);
				sisalto.addClass('laajennettu',700);
				$.post(hideMenuUrl,{hideMenu:true});
			} else {
				$(this).attr('title','Piilota valikko').html('&lt');
				valikko.removeClass('piilotettu',700);
				sisalto.removeClass('laajennettu',700);
				$.post(hideMenuUrl,{hideMenu:false});
			}
			return false;
		});
		
		if( valikko.hasClass('piilotettu') ) {
			piilota.attr('title','Näytä valikko').html('&gt');
		} else {
			piilota.attr('title','Piilota valikko').html('&lt');
		}
		
		//valikko.prepend(piilota);
	});
	
	$('.wordCount').each(function(){
		var text = $('#'+$(this).attr('rel'));
		var countText = $(this);
		var min = parseInt($(this).siblings('.min').text());
		var max = parseInt($(this).siblings('.max').text());
		var countWords = function(){
			var matches = $.trim(text.val().replace(/<[^>]+?>/gi,' ')).match(/\s+/g);
			var count = 0;
			if(matches) {
				count = matches.length+1;
			}
			countText.text(count);
			if( count < min ) {
				countText.addClass('underMin');
			} else {
				countText.removeClass('underMin');
			}
			if( count > max ) {
				countText.addClass('overMax');
			} else {
				countText.removeClass('overMax');
			}
		};
		setInterval(countWords,3000);
		countWords();
	});
	
	var lengthWarning = $('<p class="error lengthWarning">Huom! Yksittäinen avainsana voi olla enintään 32 merkkiä pitkä</p>');
	$('input.tags-autocomplete').keydown(function(event){
		if( $(this).val().split(/,\s?/).pop().length > 32 ) {
			if( $(this).closest('div.row').find('.lengthWarning').length == 0 ) {
				$(this).closest('div.row').append(lengthWarning);
			}
		} else {
			$(this).closest('div.row').find('.lengthWarning').remove();
		}
	}).autocomplete({
		autoFocus: true,
		source: function(request,response) {
			var currentTags = request.term.split(/,\s?/);
			$.getJSON(userAjaxUrl.tags,{
				term: currentTags.pop(),
				currentTags: currentTags.join(',')
			},response);
		},
		search: function(){
			var term = this.value.split(/,\s?/).pop();
			if( term.length < 2 ) {
				return false;
			}
		},
		focus: function() {
			return false;
		},
		select: function(event,ui){
			this.value = this.value.replace(/(.*,\s?)?(.+)/,'$1'+ui.item.value+', ');
			return false;
		},
		delay: 50
	});
	
	$('.Organization_name').each(function(){
		var self = this;
		$(this).autocomplete({
			source: function(request,response){
				var namePattern = new RegExp(request.term,'i');
				names = [];
				$.get(userAjaxUrl.organizations,{
					'Organization[name]': request.term,
					format: 'json'
				},function(data){
					names = [];
					for( var i in data ) {
						names.push(data[i]);
					}
					// Add organization names in the current form
					$('.organization').not(self).each(function(){
						if( namePattern.test($(this).val()) ) {
							if( $.inArray($(this).val(),names) == -1 ) {
								names.push($(this).val());
							}
						}
					});
					response(names);
				});
			},
			delay: 50
		});
	});
	
	$.fn.tweetChat('settings',{
		strings: {
			noComments: 'Ei vielä yhtään kommenttia',
			noMoreComments: 'Kommentteja ei ole enempää',
			sendError: 'Viestin lähettäminen epäonnistui.',
			reply: 'vastaa',
			cancelReply: 'peruuta',
			nicknameInput: 'Valitse nimimerkki',
			msgPlaceholder: 'Kirjoita uusi viesti',
			msgMaxLengthReached: 'Viestin maksimipituus on täynnä',
			admin: {
				removeMessage: 'Poista viesti',
				confirmRemoveTweet: 'Poistetaanko tämä viesti lopullisesti?',
				confirmRemoveMessage: 'Poistetaanko tämä viesti?',
				cannotRemoveTweet: 'Viestiä ei voi poistaa Twitteristä. Viesti pitää poistaa erikseen Twitterin kautta.',
				createPoll: 'Luo uusi äänestys',
				pollQuestion: 'Kysymys',
				pollChoices: 'Vastausvaihtoehdot',
				pollAddChoice: 'Lisää vaihtoehto',
				pollRemoveChoice: 'poista',
				pollCreated: 'Uusi äänestys luotiin',
				removePoll: 'Poista tämä äänestys',
				confirmRemovePoll: 'Poistetaanko tämä äänestys ja kaikki äänestystulokset lopullisesti?'
			}
		}
	});
	
	// Track social events with Analytics
	// Facebook Like
	FB.Event.subscribe('edge.create',function(targetUrl){
		_gaq.push(['_trackSocial','facebook','like',targetUrl]);
	});
	// Facebook Unlike (remove Like)
	FB.Event.subscribe('edge.remove',function(targetUrl){
		_gaq.push(['_trackSocial','facebook','unlike',targetUrl]);
	});
	// Twitter tweet
	twttr.events.bind('tweet',function(event){
		if( event ) {
			var targetUrl;
			if( event.target && event.target.nodeName == 'IFRAME' ) {
				targetUrl = extractParamFromUri(event.target.src,'url');
			}
			alert(targetUrl);
			_gaq.push(['_trackSocial','twitter','tweet',targetUrl]);
		}
	});
	
	function extractParamFromUri(uri, paramName) {
		paramName += '=';
		var params = decodeURI(uri).split('&');
		for (var i = 0, param; param = params[i]; ++i) {
			if (param.indexOf(paramName) === 0) {
				return unescape(param.split('=')[1]);
			}
		}
		return;
	}
});
