// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
function _post_fb_story(message,title,page_url,caption, description,img_src, catlink_text, catlink_url,submit_form_callback) {
	var attachment = {
		'message':message,
		'name':title,
		'href':page_url, 
		'caption':caption, 
		'description':description,
		'properties':[{'text':catlink_text, 'href':catlink_url}], 
		'media':[{
			'type':'image', 
			'src':img_src, 
			'href':page_url
		}]
	};
	
	FB.ensureInit(function() {
 		FB.Connect.streamPublish(message,attachment,null,null,"What do you think?",submit_form_callback);
	});

}

function submit_blogpost_edit_form(post_id,exception) {
	document.forms['blogpost_edit'].submit();	
}

function submit_blogpost_new_form(post_id,exception) {
	document.forms['blogpost_new'].submit();	
}

function fb_post_blogpost_edit() {
	return fb_post_blogpost('update')
}

function fb_post_blogpost_new() {
	return fb_post_blogpost('create')
}

function fb_post_blogpost(type) {

	var fb_share = document.getElementById('fb_share');

	if (fb_share.checked) {
		if (blogpost_valid()) {

			var message = ''
			if (type == 'update') {
				message = '{*actor*} just updated a post on the Comix Influx blog'
				form_submit_callback = submit_blogpost_edit_form
			} else if  (type == 'create') {
				message = '{*actor*} just wrote a new post on the Comix Influx Blog'
				form_submit_callback = submit_blogpost_new_form
			} else {
				message = '{*actor*} just updated a post on the Comix Influx blog'
				form_submit_callback = submit_blogpost_edit_form
			}

			var title = document.getElementById('blogpost_title').value

			var blogpost_url = document.getElementById('blogpost_url').value

			var blog_extract = document.getElementById('blogpost_summary').value.replace(/[!][<>=]?[^!]+[!](:.*)?/g,'').replace(/\n\n\n+/,'\n\n')

			var img_src =
			  img_from_txtl(document.getElementById('blogpost_summary').value) ||
				img_from_txtl(document.getElementById('blogpost_content').value) ||
				'http://comixinflux.com/i/ix_sm.png'

			_post_fb_story('',title,blogpost_url,message, blog_extract,img_src,'Comix Influx Blog','http://comixinflux.com/influx/mainblog',form_submit_callback);

		}

	} else {
		return true
	}


	return false

}

function submit_book_edit_form(post_id,exception) {
	document.forms['edit'].submit();	
}

function submit_book_new_form(post_id,exception) {
	document.forms['new'].submit();	
}

function fb_post_book_edit() {
	return fb_post_book('update')
}

function fb_post_book_new() {
	return fb_post_book('create')
}

function fb_post_book(type) {

	var fb_share = document.getElementById('fb_share');

	if (fb_share.checked) {
		if (book_valid()) {

			var message = ''
			if (type == 'update') {
				message = '{*actor*} just updated a translation on Comix Influx'
				form_submit_callback = submit_book_edit_form
				var img_src = document.getElementById('book_img').value
			} else if  (type == 'create') {
				message = '{*actor*} just started a new translation on Comix Influx!'
				form_submit_callback = submit_book_new_form
				var img_src = 'http://comixinflux.com/i/ix_sm.png'
			} else {
				message = '{*actor*} just updated a translation on Comix Influx'
				form_submit_callback = submit_book_edit_form
				var img_src = document.getElementById('book_img').value
			}

			//override if book just completed
			var now_complete = document.getElementById('book_complete').checked
			var was_complete = document.getElementById('book_was_complete').value

			if (now_complete && was_complete == 'false') {
				message = '{*actor*} just completed a translation on Comix Influx'
			}

			var title = document.getElementById('book_title').value

			var creators
			if (creators = document.getElementById('book_creators').value) {
				title = title + ' by ' + creators
			}
			
			var book_url = document.getElementById('book_url').value
			var book_creators = document.getElementById('book_creators').value
			var book_publisher = document.getElementById('book_publisher').value
			var book_introduction = document.getElementById('book_introduction').value.replace(/\n\n\n+/,'\n\n')

			var comment_body = document.getElementById('comment_body').value

			_post_fb_story(comment_body, title, book_url, message, book_introduction, img_src, 'Comix Influx Books', 'http://comixinflux.com/influx/browse', form_submit_callback);

		}

	} else {
		return true
	}

	return false

}

function fb_post_comment(type) {

	var fb_share = document.getElementById('fb_share')

	if (fb_share.checked) {
		if (comment_valid()) {
	
			var title
			var img_src
			var message
			
			if (type == 'Book') {
				
				title = document.getElementById('book_title').innerHTML

				var creators
				if (creators = document.getElementById('book_creators').innerHTML) {
					title = title + ' by ' + creators
				}

				img_src = document.getElementById('bk-cover').src
				
				message = '{*actor*} commented on a translation on Comix Influx:'
				
			} else if (type == 'Blogpost') {

				title = document.getElementById('blogpost_title').innerHTML
				img_src = img_from_blogpost()
				
				message = '{*actor*} commented on a post on the Comix Influx Blog:'

			} else {
				return true
			}

			var url = document.getElementById('page_url').value

			var comment_body = '"' + document.getElementById('comment_body').value + '"'
			var form_submit_callback = submit_comment

			_post_fb_story('', title, url, message, comment_body, img_src, 'Comix Influx', 'http://comixinflux.com/', form_submit_callback);

		}

	} else {
		return true
	}

	return false
}

function submit_comment(post_id,exception) {
	document.forms['comment'].submit();	
}

function comment_valid() {
	var error = ''	

	if (document.getElementById('comment_body').value == '') {
		error = error + '\nYou have to enter a comment!\n'
	}

	if (error.length > 0) {
		alert('Validation errors: \n' + error)
		return false
	}

	return true
}

function book_valid() {
	var error = ''	

	if (document.getElementById('comment_body').value == '') {
		error = error + '\nYou must enter a comment!\n'
	}
	if (document.getElementById('book_title').value == '') {
		error = error + '\nYou must enter a title!\n'
	}
	if (document.getElementById('book_introduction').value == '') {
		error = error + '\nYou must enter an introduction!\n'
	}

	var year = document.getElementById('book[published_on(1i)]').value
	if (!year.match(/\d+/) || year > 9999) {
		error = error + '\nYear must be an integer, less than 9999!\n'
	}

	if (error.length > 0) {
		alert('Validation errors: \n' + error)
		return false
	}

	return true

}

function blogpost_valid() {
	var error = ''
	if (document.getElementById('blogpost_title').value == '') {
		error = error + '\nYou must enter a title!\n'
	}
	if (document.getElementById('blogpost_content').value == '') {
		error = error + '\nYou must enter some content!\n'
	}

	if (error.length > 0) {
		alert('Validation errors: \n' + error)
		return false
	}

	return true
	
}


function img_from_txtl(text) {
	var img_ary = text.match(/[!][<>=]?([^!]+)[!]/)
	if (img_ary) {
		return img_ary[1]
	} else {
		return null
	}
}

function img_from_blogpost() {
	var img;
	if (img = document.getElementById('content').getElementsByTagName('img')[0]) {
		return img.src
	} else {
		return 'http://comixinflux.com/i/ix_sm.png'
	}
}



