jQuery.fn.picasa = function(opt){
var picasa_user_loged = false;
var picasa_photos_loaded = false;
var $picasa_panza; var $picasa_container;var $import; var curr_opt = opt;
var $self = $(this);
var show_login = function(){
	$(document.body).append('<div class="picasa-panza"></div>');
	$picasa_panza = $('div.picasa-panza',document.body);
	$(document.body).append('<div id="picasa-container" class="login"><div id="picasa-box" class="login"><h2>Import images from <span>Picasa</span></h2><hr /><h3>Please login to your Picasa account <p class="error">The username or password you entered is invalid. Please try again:</p></h3><form method="post" action="/"><fieldset><label><strong>Picasa username</strong> <input type="text" name="username" id="username" /></label><label><strong>Picasa password</strong> <input type="password" name="password" id="password" /></label><button type="button">Login to Picasa</button></fieldset></form></div></div>');
	$picasa_container = $('div#picasa-container.login');
	$error_container = $('p.error',$picasa_container);
	$picasa_panza.click(function(){$(this).remove();$picasa_container.remove()});
	w = $picasa_container.width();
	h = $picasa_container.height();
	$picasa_container.css('margin-left',-parseInt((w)/2));
	$picasa_container.css('margin-top',-parseInt((h)/2));
	$buton = $('button', $picasa_container);
	var can_click = true;
	$buton.click(function(){
		if(!can_click)
			return;
		can_click = false;
		$.post(
			opt.login_url,
			{
				user: $('input#username',$picasa_container).val(),
				pass: $('input#password',$picasa_container).val()
			},
			function(data,status){
				if(data == 'user invalid')
				{
					$error_container.show();
					can_click = true;
				}
				if(data == 'success')
				{
					$picasa_container.remove();
					$picasa_panza.remove();
					picasa_user_loged = true;
					show_content();
				}
			},
			'json'
		);
	});
};
var show_content = function(){
	$(document.body).append('<div class="picasa-panza"></div>');
	$picasa_panza = $('div.picasa-panza');
	$(document.body).append('<div id="picasa-container" class="images"><div id="picasa-box"><h2>Import images from <span>Picasa</span></h2><a href="#" class="close">Close window</a><hr /><h3>Select the images you wish to import into your TrippyDoo post and hit the Import button</h3><p class="crumbs" id="1"><a id="albums">Picasa Albums</a><p class="crumbs" id="2"> / Album name</p><form><ul class="photos"></ul><ul class="albums"></ul></form><hr /><a class="import">Import to TrippyDoo</a><a class="select-all">Check all</a><a class="unselect-all">Uncheck all</a><div class="importing-photos"></div><a class="logout">Logout</a></div></div>');
	$picasa_container = $('div#picasa-container.images');
	$logout = $('a.logout',$picasa_container);
	$select_all = $('a.select-all',$picasa_container);
	$unselect_all = $('a.unselect-all',$picasa_container);
	$import = $('a.import',$picasa_container);
	$importing = $('div.importing-photos',$picasa_container);
	$crumbs_1 = $('p.crumbs#1',$picasa_container);
	$crumbs_2 = $('p.crumbs#2',$picasa_container);
	$picasa_panza.click(function(){$picasa_container.hide(); $(this).hide()});
	$('a.close',$picasa_container).click(function(){$picasa_container.hide();  $picasa_panza.hide()});
	$photo_container = $('ul.photos',$picasa_container);
	$album_container = $('ul.albums',$picasa_container);
	w = $picasa_container.width();
	h = $picasa_container.height();
	$picasa_container.css('margin-left',-parseInt((w)/2));
	$picasa_container.css('margin-top',-parseInt((h)/2));
	var album;
	function show_albums(){
		if(!picasa_photos_loaded) return;
		$photo_container.hide();$album_container.show();$select_all.hide();$unselect_all.hide();$import.css('display','none');
		$crumbs_1.hide();$crumbs_2.html('Picasa Albums');$crumbs_2.show();
	}
	function show_photos(){
		if(!picasa_photos_loaded) return;
		$photo_container.show();$album_container.hide();$select_all.show();$unselect_all.show();$import.css('display','block');
		$crumbs_1.show();
	}
	$.post(
		opt.photos_url,
		{},
		function(data){
			if(data.status == "success")
			{
				$(data.albums).each(function(album_key,album){
					$(album.photos).each(function(photo_key,src){
						$($photo_container).append('<li album="'+album_key+'" style="display:none"><label for="'+album_key+'_'+photo_key+'"><img src="'+src+'" /> <input type="checkbox" id="'+album_key+'_'+photo_key+'" value="'+src+'" /> <em>Select this</em></label></li>');
					})
					$album_container.append('<li album="'+album_key+'" title="'+album.name+'"><a><img src="'+album.photos[0]+'" /><strong>'+album.name+'</strong></a></li>');
				});
				$('li a',$album_container).click(function(){
					id = $(this).parent().attr('album');
					$('li[album!='+id+']',$photo_container).hide();
					$('li[album='+id+']',$photo_container).show();
					album = id;
					$crumbs_2.html(' / ' + $(this).parent().attr('title'));
					show_photos();
				});
				picasa_photos_loaded = true;
				show_albums();
				var can_click = true;
				$import.click(function(){
					if(!can_click)
						return;
					can_click = false;
					post_string = '';
					$checkboxes = $(':checked',$photo_container);
					$checkboxes.each(function(key,item){
						post_string += 'src['+key+']='+$(item).val()+'&';
					});
					//post_string = post_string.substr(0,post_string.length-1);
					post_string += "trip=";
					post_string = post_string + curr_opt.trip;
					$importing.show();
					$.post(
						curr_opt.import_url,
						post_string,
						function(data){
							//$self.refresh_photos();
							//$self.data('edit_button').data('refresh_photos')();
							//$.post($self.data('photos_get_url'),{post: $self.data('post')},function(resp){
							//	$self.data('update_area').html(resp);
							//});
							curr_opt.refresh_function();
							$checkboxes.each(function(key,item){
								$(item).next().html('uploaded');
								$(item).remove();
							})
							$importing.hide();
							can_click = true;
						}
					);
				});
			}
			else
			{
				$photo_container.remove();
				show_login();
			}
		},
		'json'
	)
	logout_can_click = true;
	$logout.click(function(){
		if(!logout_can_click) return;
		logout_can_click = false;
		$.post(
			opt.logout_url,
			{},
			function(){
				$picasa_container.remove(); $picasa_panza.remove();picasa_user_loged = false; picasa_photos_loaded = false;
				show_login();
			}
		)
	})	
	$select_all.click(function(){
		if(!picasa_photos_loaded) return;
		$('li[album='+album+'] :checkbox',$photo_container).attr('checked', true);
	})
	$unselect_all.click(function(){
		if(!picasa_photos_loaded) return;
		id = $('a.on',$album_container).parent().attr('album');
		$('li[album='+id+'] :checkbox',$photo_container).attr('checked', false);
	})
	$('a#albums',$crumbs_1).click(show_albums);
}
var can_click=true;
this.click(function(){
	if(picasa_photos_loaded)
		{
		curr_opt = opt;
		//$self = $(this); 
		$picasa_panza.show();
		$picasa_container.show();
		return;
		}
	if(!can_click)
		return;
	can_click=false;
	$.post(
		opt.verify_url,
		{},
		function(data){
			can_click = true;
			if(data == 'user inexistent' || data == 'user invalid')
				show_login();
			if(data == 'success')
			{
				curr_opt = opt;
				show_content();
			}
		},
		'json'
	);
});
};
