var types = {1:'Story', 2:'Blog'};

function editBlog(blogid) {
	openBlogEditor(blogid, 2);
}

function editStory(blogid) {
	openBlogEditor(blogid, 1);
}

function openBlogEditor(blogid, typeid) {
	
	var vars = {};
	
	vars['action'] = 'getBlogByID';
	vars['blogid'] = blogid;
	
	openModalWindow(500, 540);
	
	$.ajax({
	
        dataType: 'jsonp',
        url: '/blog.php',
        data: vars,
        type: 'POST', 
        
        success: function(json) {
			
			if (json['error_code']) {
				
				if (json['error_code'] == 1) {
					$('#divMessageDialog').html('Your login session has been expired.\nPlease login again.');
				} else {
					$('#divMessageDialog').html(json['error_message']);
				}
				
				setTimeout("closeBlogEditor(); window.location.reload();", 2000);
				return;				
			}
			
			setBlogEditor(json, typeid);
        },
        
        error: function(XMLHttpRequest, textStatus, errorThrown) {
			alert('Error:' + textStatus);
        }
	});	
}

function setBlogEditor(json, typeid) {

	var name 		= (json['NAME']) 		? json['NAME'] 			: '';
	var description = (json['DESCRIPTION']) ? json['DESCRIPTION'] 	: '';
	var content 	= (json['CONTENT']) 	? json['CONTENT'] 		: '';
	
	var cat = '';
	for (var p in json['CATEGORIES']) {
		
		var selected = (json['CATEGORIES'][p].selected == 1) ? ' checked' : '';
		cat += '<tr>';
		cat += '<td colspan="2"><input type="checkbox" id="categories" name="categories" value="' + json['CATEGORIES'][p].id + '"' + selected + '>' + json['CATEGORIES'][p].name + '</td></tr>';
		
		for (var c in json['CATEGORIES'][p].children) {
			
			if (c % 3 == 0) {
				
				if (c > 0) cat += '</td></tr>';
				
				cat += '<tr>';
				cat += '<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>';
				cat += '<td>';
			}
			
			var selected = (json['CATEGORIES'][p].children[c].selected == 1) ? ' checked' : '';
			
			cat += '<input type="checkbox" id="categories" name="categories" value="' + json['CATEGORIES'][p].children[c].id + '"' + selected + '>' + json['CATEGORIES'][p].children[c].name;
		}
		cat += '<br><br></td></tr>';
	}
	
	var dom = '';
	for (var p in json['DOMAINS']) {
		
		var selected = (json['DOMAINS'][p].selected == 1) ? ' checked' : '';
		
		dom += '<input type="checkbox" id="domains" name="domains" value="' + json['DOMAINS'][p].id + '"' + selected + '>' + json['DOMAINS'][p].name + '<br>';
	}
	
	var html = '';
	
	html += '<div id="divBlogEditor">'
	html += '<table width="540" border="0" cellspacing="2" cellpadding="0">';
	html += '<tr>';
	html += '<td align="center" colspan="2">' + types[typeid]+ '</td></tr>';
	html += '<tr>';
	html += '<td align="center" colspan="2"><span id="div_message" style="font-size:11px; font-weight:bold; background-color:#FFCD94; color:red"></span></td></tr>';
	html += '<tr>';
	html += '<td align="right">Title:</td>';
	html += '<td><input type="text" id="name" name="name" value="' + name + '" maxlength="80" style="width:420px"></td></tr>';
	html += '<tr>';
	html += '<td align="right">Headline:</td>';
	html += '<td><textarea id="description" name="description" wrap="hard" style="width:420px;height:80px">' + description + '</textarea></td></tr>';
	html += '<tr>';
	html += '<td align="right">Content:</td>';
	html += '<td><textarea id="content" name="content" wrap="hard" style="width:420px;height:100px">' + content + '</textarea></td></tr>';
	html += '<tr>';
	html += '<td align="right">Categories:</td>';
	html += '<td>';
	html += '	<div style="font-size:10px; height:100px; overflow-y:scroll; border:1px solid #cccccc">';
	html += '	<table width="100%" border="0" cellspacing="0" cellpadding="0">' + cat + '</table></div></td></tr>';
	html += '<tr>';
	html += '<td align="right">Domains:</td>';
	html += '<td>';
	html += '	<div style="font-size:10px; height:60px; overflow-y:scroll; border:1px solid #cccccc">' + dom + '</div></td></tr>';
	html += '<tr>';
	html += '<td align="center" colspan="2">';
	html += '<input type="button" value="Submit" onclick="saveBlog(' + json['blogid'] + ', ' + typeid + ');">&nbsp;&nbsp;';
	html += '<input type="button" value="Cancel" onclick="closeBlogEditor();">';
	html += '</table></div>';
	
	flipModalContent();
	
	$('#divModalContent').html(html);
	
	setTimeout("setHtmlEditor('#divBlogEditor #content');", 500);
}

function saveBlog(blogid, typeid) {
	
	if ($('#divBlogEditor #name').val() == '') {
		alert('Please enter Title.');
		return;
	}
	
	var categories = [];
	$('#divBlogEditor [id=categories]:checked').each(function(){
	    categories.push(this.value);
	});

	var domains = [];
	$('#divBlogEditor [id=domains]:checked').each(function(){
	    domains.push(this.value);
	});
	
	var vars = {};
	
	vars['blogid'] 		= blogid;
	vars['action'] 		= 'saveBlog';
	vars['name'] 		= $('#divBlogEditor #name').val();
	vars['description'] = $('#divBlogEditor #description').val();
	vars['content'] 	= $('#divBlogEditor #content').val();
	vars['categories']  = categories.join(',');
	vars['domains']  	= domains.join(',');
	vars['mediatypeid'] = typeid;
	
	flipModalContent();
	
	$.ajax({
	
        dataType: 'jsonp',
        url: '/blog.php',
        data: vars,
        type: 'POST', 
        
        success: function(json) {
			
			if (!isNaN(json['blogid'])) {
				$('#divMessageDialog').html('Your entry has been submitted.');
			} else {
				$('#divMessageDialog').html('Error: Could not be submitted.');
			}
			
			setTimeout("closeBlogEditor(); window.location.reload();", 2000);
        },
        
        error: function(XMLHttpRequest, textStatus, errorThrown) {
			alert('Error:' + textStatus);
        }
	});	
}

function openCommentEditor(parentid, blogid) {
	
	openModalWindow(320, 540);
	getCommentEditor(parentid, blogid);
}

function getCommentEditor(parentid, blogid) {
	
	var vars = {};
	
	vars['action'] 	 = 'getCommentByID';
	vars['parentid'] = parentid;
	vars['blogid'] 	 = blogid;
	
	$.ajax({
	
        dataType: 'jsonp',
        url: '/blog.php',
        data: vars,
        type: 'POST', 
        
        success: function(json) {
			
			if (json['error_code']) {
				
				if (json['error_code'] == 1) {
					
					flipModalContent();
					openCommentLoginForm(parentid, blogid);
					return;
					
				} else if (json['error_code'] == 2) {
					$('#divMessageDialog').html('Only comments you posted can be modified.');
				} else {
					$('#divMessageDialog').html(json['error_message']);
				}
				
				setTimeout("closeBlogEditor(); window.location.reload();", 2000);
				return;				
			}
			
			setCommentEditor(json);
        },
        
        error: function(XMLHttpRequest, textStatus, errorThrown) {
			alert('Error:' + textStatus);
        }
	});	
}

function commentUserAuth(parentid, blogid, json) {
	
	if (json['error']) {
		flipModalContent();
		$('#divErrorDialog').html(json['error']);
		return;
	}
	
	getCommentEditor(parentid, blogid);
}

function openCommentLoginForm(parentid, blogid) {
	
	var html = '';
					
	html += '<div id="commentloginform">';
	html += '<table border="0" cellspacing="6" cellpadding="6">';
	html += '<tr>';
	html += '<td colspan="2">Please enter your email address and password.</td></tr>';
	html += '<tr>';
	html += '<td colspan="2" align="center"><span id="divErrorDialog" style="color:red"></span></td></tr>';
	html += '<tr>';
	html += '<td>Email Address:</td>';
	html += '<td><input type="text" id="username" name="username" style="width:200px"></td></tr>';
	html += '<tr>';
	html += '<td>Password:</td>';
	html += '<td><input type="password" id="password" name="password">&nbsp;&nbsp;&nbsp;&nbsp;';
	html += '<input type="button" value="Login" onclick="commentLogin(' + parentid + ', ' + blogid + ');">&nbsp;&nbsp;'
	html += '<input type="button" value="Cancel" onclick="closeBlogEditor()"></td></tr>';
	html += '<tr>';
	html += '<td colspan="2"><br><br>If you don\'t have an account to comment, <a href="#" onclick="openCommentRegistrationForm(' + parentid + ', ' + blogid + ')">Please signup here.</a></td></tr>';
	html += '</table>';
	html += '</div>';

	$('#divModalContent').html(html);
}

function commentLogin(parentid, blogid) {
	
	var vars = {};
	
	vars['username'] = $('#commentloginform #username').val();
	vars['password'] = $('#commentloginform #password').val();
	
	if (vars['username'] == '') {
		alert('Please enter Username.');
		return;
	}
	
	if (vars['password'] == '') {
		alert('Please enter Password.');
		return;
	}
	
	flipModalContent();
	authenticate('login', vars, 'commentUserAuth(' + parentid + ',' + blogid + ', json);');
}

function openCommentRegistrationForm(parentid, blogid) {
	
	var html = '';
					
	html += '<div id="registrationform">';
	html += '<table border="0" cellspacing="6" cellpadding="6">';
	html += '<tr>';
	html += '<td colspan="2">To create your account, please enter your information below.</td></tr>';
	html += '<tr>';
	html += '<td colspan="2" align="center"><span id="divErrorDialog" style="color:red"></span></td></tr>';
	html += '<tr>';
	html += '<td valign="top">Nick Name:</td>';
	html += '<td><input type="text" id="nickname" name="nickname" maxlength="20" style="width:200px"><br><span style="font-size:9px">(will be appeared in public)</span></td></tr>';
	html += '<tr>';
	html += '<td>Email Address:</td>';
	html += '<td><input type="text" id="username" name="username" maxlength="60" style="width:200px"></td></tr>';
	html += '<tr>';
	html += '<td>Password:</td>';
	html += '<td><input type="password" id="password" name="password" maxlength="20"><span style="font-size:9px">(Mininum 6 characters required)</span></td></tr>';
	html += '<tr>';
	html += '<td nowrap>Re-enter Password:</td>';
	html += '<td><input type="password" id="password2" name="password2" maxlength="20">&nbsp;&nbsp;&nbsp;&nbsp;';
	html += '<input type="button" value="Submit" onclick="commentRegistration(' + parentid + ', ' + blogid + ');">&nbsp;&nbsp;';
	html += '<input type="button" value="Cancel" onclick="closeBlogEditor()"></td></tr>';
	html += '<tr>';
	html += '<td colspan="2"><br><br>If you already have an account to comment, <a href="#" onclick="openCommentLoginForm(' + parentid + ', ' + blogid + ')">Please login here.</a></td></tr>';
	html += '</table>';
	html += '</div>';

	$('#divModalContent').html(html);
}

function commentRegistration(parentid, blogid) {
	
	var vars = {};
	
	vars['nickname']  = $('#registrationform #nickname').val();
	vars['username']  = $('#registrationform #username').val();
	vars['password']  = $('#registrationform #password').val();
	vars['password2'] = $('#registrationform #password2').val();
	
	if (vars['nickname'] == '') {
		alert('Please enter Nickname.');
		return;
	}
	
	if (!isemail(vars['username'])) {
		alert('Please enter your email address.');
		return;
	}
	
	if (vars['password'] == '') {
		alert('Please enter Password.');
		return;
	}
	
	if (vars['password'].length < 6) {
		alert('Minimum 6 characters required for Password.');
		return;
	}
	
	if (vars['password'] != vars['password2']) {
		alert('Password and Re-enter Password are not same.');
		return;
	}
	
	flipModalContent();
	authenticate('register', vars, 'commentUserAuth(' + parentid + ',' + blogid + ', json);');
}

function setCommentEditor(json) {
	
	var content = (json['CONTENT']) ? json['CONTENT'] : '';
	
	var html = '';
	
	html += '<div id="divCommentEditor">';
	html += '<table width="540" border="0" cellspacing="2" cellpadding="0">';
	html += '<tr>';
	html += '<td align="center" style="padding:4px">Comment</td></tr>';
	html += '<tr>';
	html += '<td align="center"><span id="div_message" style="font-size:11px; font-weight:bold; background-color:#FFCD94; color:red"></span></td></tr>';
	html += '<tr>';
	html += '<td align="center"><textarea id="content" name="content" wrap="hard" style="width:420px;height:200px;">' + content + '</textarea></td></tr>';
	html += '<tr>';
	html += '<td align="center" style="padding:4px">';
	html += '<input type="button" value="Submit" onclick="saveComment(' + json['parentid'] + ', ' + json['blogid'] + ');">&nbsp;&nbsp;';
	
	if (json['blogid'] != 0) {
		html += '<input type="button" value="Delete" onclick="deleteComment(' + json['blogid'] + ');">&nbsp;&nbsp;';
	}
	
	html += '<input type="button" value="Cancel" onclick="closeBlogEditor();">';
	html += '</table></div>';
	
	flipModalContent();
	
	$('#divModalContent').html(html);
	
	setTimeout("setHtmlEditor('#divCommentEditor #content');", 500);
}

function saveComment(parentid, blogid) {
	
	if ($('#divCommentEditor #content').val() == '') {
		alert('Please enter your comment.');
		return;
	}
	
	var vars = {};
	
	vars['parentid'] 	= parentid;
	vars['blogid'] 		= blogid;
	vars['action'] 		= 'saveComment';
	vars['content'] 	= $('#divCommentEditor #content').val();
	
	flipModalContent();
	
	$.ajax({
	
        dataType: 'jsonp',
        url: '/blog.php',
        data: vars,
        type: 'POST', 
        
        success: function(json) {
			
			if (json['error_code']) {
				
				$('#divMessageDialog').html(json['error_message']);
				
			} else {
			
				if (!isNaN(json['blogid'])) {
					$('#divMessageDialog').html('Comment has been submitted.');
				} else {
					$('#divMessageDialog').html('Error:Comment could not be submitted.');
				}
			}
			
			setTimeout("closeBlogEditor(); window.location.reload();", 2000);
        },
        
        error: function(XMLHttpRequest, textStatus, errorThrown) {
			alert('Error:' + textStatus);
        }
	});	
}

function deleteComment(blogid) {
	
	if (!window.confirm('Are you sure to delete the comment?')) {
		return;
	}
	
	var vars = {};
	
	vars['action'] 	 = 'deleteComment';
	vars['blogid'] 	 = blogid;
	
	if($('#description').length) {
		vars['password'] = $('#description').val();
	}
	
	openModalWindow(320, 540);
	
	$.ajax({
	
        dataType: 'jsonp',
        url: '/blog.php',
        data: vars,
        type: 'POST', 
        
        success: function(json) {
			
			if (json['error_code']) {
				$('#divMessageDialog').html(json['error_message']);
			} else {
				$('#divMessageDialog').html('Comment has been deleted.');
			}
			
			setTimeout("closeBlogEditor(); window.location.reload();", 2000);
			return;
        },
        
        error: function(XMLHttpRequest, textStatus, errorThrown) {
			alert('Error:' + textStatus);
        }
	});	
}

function setHtmlEditor(element) {

	$(element).htmlarea({
		toolbar: [
	        ["html", "|", "increasefontsize", "decreasefontsize", "|", "bold", "italic", "underline", "|", "forecolor", "|", "indent", "outdent", "|", "orderedlist", "unorderedlist", "|", "justifyleft", "justifycenter", "justifyright", "|", "link", "unlink", "|", "image"]
		],
		css: '/library/css/jHtmlEditor.css'
	});
}

function openModalWindow(h, w) {
	
	var html = '';
	
	html += '<span id="divOpenModal">';
	html += '	<span id="divLoadModal" class="nyroModalLoad" style="display:block;">';
	html += '		<span id="divMessageDialog" style="position:absolute; width:100%; text-align:center; top:' + ((h/2)-60) + 'px; color:#D56400; font-site:12px; font-weight:bold"></span>';
	html += '	</span>';
	html += '	<span id="divModalContent" style="display:none;"></span>';
	html += '</span>';
	
	$.nmData(html, {
		closeOnClick:false,
		sizes: {
			minH:h,
			minW:w
		}
	});
}

function flipModalContent() {
	
	if ($('#divLoadModal').css('display') == 'none') {
		$('#divLoadModal').css('display', 'block');
		$('#divModalContent').css('display', 'none');
	} else {
		$('#divLoadModal').css('display', 'none');
		$('#divModalContent').css('display', 'block');
	}
}

function closeBlogEditor() {
	$.nmTop().close();
}

function isemail(val){
   return (val.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1);
}

