var IE  = (navigator.appName == 'Microsoft Internet Explorer') ? true : false
var monthes = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');

if (!window.console) {
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
                 "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
    window.console = {};
    for (var i = 0; i < names.length; ++i)
        window.console[names[i]] = function() {};
}

/*
(function(){
    var live = $.fn.live;
    $.fn.live = function() {
        if ($.inArray(arguments[0], ['click', 'mouseover', 'mouseout']) == -1) { 
	    console.log('live', ' ', this.selector, ' ', arguments[0]);
        }
        return live.apply(this, arguments);
    }
})();
*/


$(function(){
      
	//cornerz
	$('.supporters').cornerz({ radius : 4, background : '#fff' })
	
	//lurk
	$('#site-search input[type=text]').lurk(gettext('Search PlaceForPeople'));

	//drodown widget
	$('.select').dropDown();

	$('.submit-link').live('click', function(){
        if (! $(this).hasClass('disabled')) {
            $(this).parents('form').submit();
        }
		return false;
	})
	
	/* campaign all places */
	$('#show-all-places a').live('click', function(){
		$(this).parent().next('span').removeClass('hidden');
		$(this).parent().hide();
		return false
	})
	
	$('#show-less-places a').live('click', function(){
		$(this).parent().parent('span').addClass('hidden');
		$('#show-all-places').show();
		return false
	})
	
	// another places swither (call editor, leaders list)
	$('.switch-places-list a').live('click', function(){
		var shortList = $(this).parents('.communities, .communities-list').find('.short-places'),
		fullList = $(this).parents('.communities, .communities-list').find('.long-places');
		
		if (shortList.is(':visible')) {
			shortList.hide();
			fullList.show()
		} else {
			shortList.show();
			fullList.hide()
		}
		
		return false
	})

	//issue label hide
	$('.issue-container textarea').scroll(function(){
		var parent = $(this).parent(),
		issue = parent.find('span'),
		scrollTop = parseInt($(this).scrollTop());
		
		if (scrollTop > 0) {
			issue.fadeOut(50);
		} else {
			issue.fadeIn(50);
		}
	})

	
	/* campaign all places */
	$('.show-all-places a').live('click', function(){
		$(this).parent().next('span').removeClass('hidden');
		$(this).parent().hide();
		return false
	})
	
	$('.show-less-places a').live('click', function(){
		$(this).parent().parent('span').addClass('hidden');
		$('.show-all-places').show();
		return false
	})
	
	
	// from page_home.js, used on other pages as well
	// click on a campaign header -- opens up campaign details
      $('.campaign-header').live('click', function() {
	if ($(this).parent('ul').hasClass('non-expandable')) return;
        var campaign_pk = $(this).attr('campaign_pk');
		
		$('.campaign-header').show();
        $(this).hide();
        
		$('.campaign-body').hide()
		$('.campaign-body[campaign_pk='+campaign_pk+']').show();
      });
	  
      // click on a call header -- opens up call details
      $('.call-header').live('click', function() {
        var call_pk = $(this).attr('call_pk');
		
		$('.call-header').show();
        $(this).hide();
		
		$('.call-body').hide();
        $('.call-body[call_pk='+call_pk+']').show();
      });
      
	//disabling share
	$('.share.disabled a').live('click', function(){
		var title = ($(this).parents('.share').attr('type') == 'campaign') ? gettext('Your campaign has to be launched to be shared') :  gettext('Your call has to be sent to be shared');
		$('<div />').append('<a href="#" class="button dialog-close"><span class="l"></span><span class="r"></span>' + gettext('Close') + '</a>').dialog({
			title : title
		})
		return false
	})
	
	
	//disabling share
	$('.share.ended a').live('click', function(){
		var title = ($(this).parents('.share').attr('type') == 'campaign') ? gettext('The campaign has ended. It can no longer be shared.') :  gettext('The Request for Solution has ended. It can no longer be shared.');
		$('<div />').append('<a href="#" class="button dialog-close"><span class="l"></span><span class="r"></span>' + gettext('Close') + '</a>').dialog({
			title : title
		})
		return false
	})
	
	
	$('.tooltip-container').live('mouseover', function(){
		var tooltip = $(this).children('.tooltip');
		if (tooltip.length && tooltip.is(':hidden') && ! tooltip.is(':animated')) {
			tooltip.fadeIn(300)
		}
	})
	
	$('.tooltip-container').live('mouseleave', function(event){
		var tooltip = $(this).children('.tooltip');
		if (tooltip.length && tooltip.is(':visible')) {
			if (tooltip.is(':animated')) {
				var timer = setInterval(function(){
					if (! tooltip.is(':animated')) {
						tooltip.fadeOut(300);
						clearInterval(timer)
					}
				}, 50)
			} else {
				tooltip.fadeOut(300)
			}
		}
	})
	
	$('.campaign-excerpt a.delete-campaign, .campaign-excerpt a.delete-call').live('click', function(){
		if ($(this).hasClass('delete-call')) {
			var type = 'Request for Solution';
		} else {
			var type = 'Campaign';
		}
		var form = $(this).parents('form');
		$('<div />').append('<a href="#" class="button dialog-close cancel red"><span class="l"></span><span class="r"></span>' + gettext('No, don\'t delete') + '</a><a href="#" class="action button" id="delete-campaign-approve"><span class="l"></span><span class="r"></span>' + gettext('Yes, delete it') + '</a>').dialog({
			title : gettext('Do you really want to delete this ' + type + '?')
		})
		$('#delete-campaign-approve').unbind('click').click(function(){
			form.submit();
			return false
		})
		return false
	})
	
    $('.not-member').live('click', function(){
        var name = $(this).attr('title')
        $('<div />').append('<a href="#" class="dialog-close button"><span class="l"></span><span class="r"></span>' + gettext('Close') + '</a>').dialog({
            title : interpolate('<span>%s</span>  is a leader nominated by a citizen', [name])
        })
        return false
    })
    
    /* links for expanded version of campaigns and calls */
    $('.campaign-body, .call-body').live('click', function(){
        if ($(this).attr('data-url') && $(this).attr('data-url').length) {
            window.location.href = $(this).attr('data-url');
        }
    })
    
    $('.campaign-body a, .call-body a').live('click', function(event){
        event.stopPropagation();
    })
    
})


function pluralize(i){
	if (i != 1) {
		return 's'
	} else {
		return ''
	}
}

function outerHTML(node){
    return node.outerHTML || new XMLSerializer().serializeToString(node);
}

function openYouTube(opener) {
	var returnValue;

	// Safari Mobile doesn't have Flash, so we just let the device use the built-in
	// YouTube viewer.
	hs.outlineType = 'rounded-white';
	hs.outlineWhileAnimating = true;
	hs.allowSizeReduction = false;
	hs.preserveContent = false;

	if (/(iPhone|iPod|iPad)/.test(navigator.userAgent)) {
		opener.href = opener.href.replace('/v/', '/watch?v=');
		returnValue = true;
	}

	else returnValue = hs.htmlExpand(opener, {
		objectType: 'swf',
		objectWidth: 480,
		objectHeight: 385,
		width: 480,
		swfOptions: {
			params: {
				allowfullscreen: 'true'
			}
		},
		maincontentText: 'You need to upgrade your Flash player'
	});

	return returnValue;
}

function validateEmail(email)  {
	var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
	return email.match(re)
}

function recalculateMedia () {
	var imagesAmmount = 0,
	videosAmmount = 0,
	documentsAmmount = 0;
	
	$('.media-items > li > p > span').each(function(){
		if ($(this).text() == 'Photo') {
			imagesAmmount ++;
		} else if ($(this).text() == 'Video') {
			videosAmmount ++;
		} else {
			documentsAmmount ++;
		}
	})
	
	if (imagesAmmount != 0 || videosAmmount != 0 || documentsAmmount != 0) {
		if ((imagesAmmount == 1  && videosAmmount == 0 && documentsAmmount == 0) || (imagesAmmount == 0  && videosAmmount == 1 && documentsAmmount == 0) || (imagesAmmount == 0  && videosAmmount == 0 && documentsAmmount == 1)) {
			var isAre = 'is';
		} else {
			var isAre = 'are';
		}
		var text = '<span>' + gettext('Media Center') + ':</span> There '+ isAre +' <a id="media-slider-run" href="#">';
		if (videosAmmount > 0) {
			text += videosAmmount + ' ' + ngettext('video', 'videos', videosAmmount);
		}
		if (imagesAmmount > 0) {
			if (videosAmmount > 0) {
				if (documentsAmmount > 0) {
					text += ', '
				} else {
					text += ' and '
				}
			}
			text += imagesAmmount + ' ' + ngettext('photo', 'photos', imagesAmmount);
		}
		if (documentsAmmount > 0) {
			if (videosAmmount > 0 || imagesAmmount > 0) {
				text += ' ' + gettext('and') + ' ';
			}
			text += documentsAmmount + ' ' + ngettext('document', 'documents', documentsAmmount);
		}
		text += '</a> to check out';
		$('#media-items-ammount').html(text);
	} else {
		$('#media-items-ammount').html(gettext('<span>Media Center:</span> No videos, pictures or documents have been uploaded'));
	}	
}

$.fn.switchProfile = function(options){
	var opts = $.extend({}, options),
	form = $(this);
	
	if (opts.type == 'citizen') {
		form.bind('submit', function(event, passthrough){
			if (passthrough) {
				return
			}
			$.get(opts.becomeLeaderUrl, function(data){
				$('<div />').append(data).dialog({
					title : gettext('You are about to become a leader'),
					width : 600,
					open : function(){
						$('#become-leader').unbind('click').click(function(){
							form.trigger('submit', [true]);
							return false
						});
						var dialog = $(this);
						dialog.find('.dialog-close:not(.direct-link)').click(function(){
							dialog.dialog('close');
							return false
						})
					}
				})
			})
			return false
		})
	} else {
		form.bind('submit', function(event, passthrough){
			if (passthrough) {
				return
			}
			$('<div />').append('<a href="#" class="button dialog-close cancel red"><span class="l"></span><span class="r"></span>' + gettext('No, stay as a leader') + '</a><a href="#" class="button action" id="become-citizen"><span class="l"></span><span class="r"></span>' + gettext('Yes, become a citizen') + '</a>').dialog({
				title : gettext('All the campaigns you are leading will be automatically ended. Proceed?'),
				open : function(){
					$('#become-citizen').unbind('click').click(function(){
						form.trigger('submit', [true]);
						return false
					});
					var dialog = $(this);
					dialog.find('.dialog-close:not(.direct-link)').click(function(){
						dialog.dialog('close');
						return false
					})
				}
			})
			return false
		})
	}
}


