$(function() {
	new VideoPlayerFactory('.item-video img');
	
	new MusicPlayerFactory('.item-music img');
	
	try {
		tb_init('a.item-image');
	} catch(e) {
		new LightBoxFactory('.item-image img');
	}
	
	$('.star.inactive').click(star);
	$('.star.active').click(destar);
	
	$('.ft .comment').click(comment);
	$('.ft .tag').click(tag_button_click);
	
	$('#tag-button').click(tag);
	
	$('#history-popular').click(popular_menu);
	
	$('.bookmarklet-link').click(function(){
		alert('右击此连接，选择"加入收藏夹"');
		return false;
	});
	
	
	$('#inviteBtn').click(function(){
		var text = $('#inviteUrl').val();
		
		try {
			window.clipboardData.setData("Text", text);
		} catch (e) {
			var flashcopier = 'flashcopier';
			if(!document.getElementById(flashcopier)) {
				var divholder = document.createElement('div');
				divholder.id = flashcopier;
				document.body.appendChild(divholder);
			}
			document.getElementById(flashcopier).innerHTML = '';
			
			var divinfo = '<embed src="' + clipboard_flash_url + '" FlashVars="clipboard='+encodeURIComponent(text)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
			document.getElementById(flashcopier).innerHTML = divinfo;
		}
		
		alert("复制成功，请粘贴到你的QQ/MSN上推荐给你的好友！\r\n\r\n内容如下：\r\n" + $('#inviteUrl').val());
	});
	//右侧点击直接修改文字
	setClickable();
});

function star() {
	var id = $(this).attr('id').substring(4);

	$.ajax({
		type: 'post',
		url: star_url,
		data: {
			item_id: id
		},
		success: function() { $('#star' + id).removeClass('inactive').addClass('active').show(); },
		error: function() {},
		complete: function() {}
	});
	
	$(this).unbind('click', star);
	$(this).click(destar);
	
	$(this).text('去星');
	return false;
}

function destar() {
	var id = $(this).attr('id').substring(4);

	$.ajax({
		type: 'post',
		url: destar_url,
		data: {
			item_id: id
		},
		success: function() { $('#star' + id).removeClass('active').addClass('inactive').show(); },
		error: function() {},
		complete: function() {}
	});
	$(this).unbind('click', destar);
	$(this).click(star);
	
	$(this).text('加星');
	return false;
}

function comment() {
	var parent = $(this).parent().parent();
	var form = $('form', parent);
	
	form.slideToggle('fast');
	
	$('input.text', form).val('');
	
	var sub_btn = $('input.button', form);
	
	var ready = sub_btn.attr('ready');
	
	if (ready == null) {
		ready = true;
		sub_btn.attr('ready', ready);
	} else {
		return false;
	}
	
	function submit_comment() {
		form.slideToggle('fast');
		
		item_id = $('input.hidden', form).val();
		comment = $('input.text', form).val();
		
		if(comment == ""){
			return false;
		}else{
		
			$.ajax({
				type: form.attr('method'),
				url: form.attr('action'),
				data: {
					item_id: item_id,
					comment: comment
				},
				success: function(data) { 
					var comment = JSON.parse(data);
					var new_comment = $('<div><span class="username">' + comment['username'] + '</span>\n<span class="content"><span>\n' + comment['comment'] + '  '+ comment['time_create'] + '</span></span></div>');
					
					var comment_div = $('.bd .comment', parent);
					comment_div.append(new_comment);
					new_comment.hide().fadeIn('slow');
				},
				error: function() {},
				complete: function() {}
			});
		}
		return false;
	}
	
	sub_btn.click(submit_comment);
	$('input.text', form).keypress(function (evt) {
		var ENTER = 13;
		if(evt.keyCode == ENTER) {
			submit_comment();
			return false;
		} else {
			return true;
		}
	});
}

var tag_initialized = false;

function tag() {
	var li = $(this);
	li.toggleClass('push');
	//alert(tag_url);
	var panel = $('#sub-tab-bar-panel');
	panel.slideToggle();
	panel.css('left', li.offset().left - (panel.width() - li.width()) / 2);
	
	if (!tag_initialized) {
		panel.mouseout(function() {
			//$(this).fadeOut();
		});
		panel.addClass('loading-lite');
		$.ajax({
			type: 'post',
			url: tag_url,
			data: {
				source: tag_url
			},
			success: function(data, testStatus) { 
				panel.html(data);
				tag_initialized = true;
			},
			error: function() { panel.removeClass('loading-lite'); },
			complete: function() { panel.removeClass('loading-lite'); }
		});
	}
	return false;
}

function popular_menu() {
	var li = $(this);
	//li.toggleClass('push');
	
	var menu = $('.menu');
	menu.slideToggle();
	
	menu.css('left', li.offset().left - (menu.width() - li.width()) / 2);
	
	return false;
}

function setClickable() {
	$('div.click-edit').click(function() {
		
		var textarea = '<div><input type="text" value="'+$(this).html()+'" size = "25"/>';
		var button	 = '<div><input type="button" value="保存" class="saveButton" /> 或 <input type="button" value="取消" class="cancelButton" /></div></div>';
		var revert = $(this).html();
		var editid = $(this).attr('id');
		
		$(this).after(textarea+button).remove();
		
		$('.saveButton').click(function(){saveChanges(this, false, editid) });
		$('.cancelButton').click(function(){saveChanges(this, revert, editid) });
	})
	.mouseover(function() {
		$(this).addClass("editable");
	})
	.mouseout(function() {
		$(this).removeClass("editable");
	});
};

function saveChanges(obj, cancel, id) {
	var s = 27;
	
	if(id == 'editInPlaceAddr')
		s = 29;
	else if (id == 'editInPlaceMonthTarget')
		s = 28;
	else if (id == 'editInPlaceSign')
		s = 27;
		
	if(!cancel) {
		var t = $(obj).parent().siblings(0).val();
		
		$.post(status_url,{
		  	title : t,
		  	source : s
		},function(txt){
			//alert( txt);
		});
	}else {
		var t = cancel;
	}
	if(t=='') t='点击修改';
	$(obj).parent().parent().after('<div class="click-edit" id="'+id+'">'+t+'</div>').remove();
	setClickable();
}	

function page_view(item_id) {
	var url = page_view_url + '/' + item_id;
	$.ajax({
		url: url,
		type: 'get'
	});
}

var tag_window = null;
function tag_button_click() {
	if (tag_window == null) {
		var submit_handler = function() {
			var form = tag_window.contentEl;
			form.addClass('loading');
						
			var input = $('input[@name=tag]', form);
						
			var tags = input.val();
						
			var hidden = $('input[@name=item_id]', form);
			var item_id = hidden.val();
						
			var url = form.attr('action');
			var method = form.attr('method') || 'post';
						
			$.ajax({
				url: url,
				type: method,
				data: {
					item_id: item_id,
					tags: tags
				},
				success: function(data) {
					var result = JSON.parse(data);
					if (result.status == 'ok') {
						tag_window.hide();
									
						var html = '<span>标签</span>\n';
						for(var i = 0; i < result.tags.length; i++) {
							html += '<span class="gray">' + result.tags[i].tag + '</span>\n';
						}
									
						$('#tag' + result.item_id).html(html);
									
					}
				},
				complete: function() {
					form.removeClass('loading');
				}
			});
			
			return false;
		};
					
		tag_window = new Fx.Window({
				id: 'tag-window',
				title: '添加标签',
				applyId: 'tag-form',
				buttons: [{
					id: 'inner-tag-button',
					text: '添加',
					handler: submit_handler
				}, {
					text: '关闭',
					handler: function() {
						tag_window.hide();
					}
				}]
		});
		
		$('#tag-form').bind('submit', submit_handler);
	}
	
	tag_window.show();
	
	var id = $(this).attr('id').substring(3);
	
	var form = $('#tag-form');
	var hidden = $('input[@name=item_id]', form);
	hidden.val(id);
	
	var input = $('input[@name=tag]', form);
	input.val('');

	return false;
}

(function() {
	function tab_panel(sel) {
		var tab_array = $(sel);
		var len = tab_array.length;
		for (var i = 0; i < len; i++) {
			var tab = $(tab_array[i]);
			var tab_button_array = $('li a', tab);
		
			var inner_len = tab_button_array.length;
			var active_tab = null;
			var active_content = null;
			
			for (var j = 0; j < inner_len; j++) {
				var tab_button = tab_button_array[j];
				var content = $('#' + $(tab_button).attr('name'));
				
				tab_button.content = content;
				
				if (j == 0) {
					active_tab = tab_button;
					active_content = content;
				} else {
					content.hide();
				}
				
				function button_click() {
					if (active_tab != null) {
						$(active_tab).parent().removeClass('current');
					}
					
					if (active_content != null) {
						$(active_content).hide();
					}
					
					$(this).parent().addClass('current').show();
					$(this.content).show();
					
					active_tab = this;
					active_content = this.content;
				}
				
				$(tab_button).click(button_click);
			}
		}
	}
	
	$(function () {
		tab_panel('.tab-panel');
	});
})();
