YackTrack.Blog = new YAHOO.widget.Dialog("ytBlog", { 
		effect: {effect: YAHOO.widget.ContainerEffect.FADE, duration: 0.25},
		postmethod: "async", 
		hideaftersubmit: false, 
		fixedcenter: true,
		modal: true,
		close: false,
		visible: false,
		draggable: false }
	);
YackTrack.Blog.blogData = {};
YackTrack.Blog.setId = function(id) {
	YackTrack.Blog.blogId = id;
}
YackTrack.Blog.setHeader("Edit Blog");
YackTrack.Blog.formId = 'ytBlogForm';
YackTrack.Blog.handleSubmit = function() {
	YackTrack.Util.removeAllErrors([
		'blog_name', 'notificationTiming', 'feedUrl', 'blogUrl' 
	]);
	YackTrack.Util.removeFormError(YackTrack.Blog.formId);
	this.submit();
};
YackTrack.Blog.handleCancel = function() {
	this.cancel();
};
YackTrack.Blog.validate = function() {
	var valid = true;
	var data = this.getData();
	if (!validations["required"](data.notificationTiming)) {
		YackTrack.Util.addError('notificationTiming', 'You must select a default notification timing.');
		valid = false;
	}
	if (!validations["required"](data.blogName)) {
		YackTrack.Util.addError('blogName', 'You must enter a blog name.');
		valid = false;
	}
	if (!validations["required"](data.feedUrl)) {
		YackTrack.Util.addError('feedUrl', 'You must enter a proper feed url.');
		valid = false;
	}
	if (!validations["url"](data.feedUrl)) {
		YackTrack.Util.addError('feedUrl', 'You must enter a proper feed url.');
		valid = false;
	}
	if (!validations["required"](data.blogUrl)) {
		YackTrack.Util.addError('blogUrl', 'You must enter a proper blog url.');
		valid = false;
	}
	if (!validations["url"](data.blogUrl)) {
		YackTrack.Util.addError('blogUrl', 'You must enter a proper blog url.');
		valid = false;
	}
	return valid;
};
YackTrack.Blog.callback.success = function(o) {
	var ok = false;
	var msg = "";
	try {
		var resp = YAHOO.lang.JSON.parse(o.responseText);
		ok = resp.success;
		msg = resp.message;
	} catch (e) { 
		YackTrack.Util.addFormError(YackTrack.Blog.formId, e);
	}
	if (ok) {
		YackTrack.Blog.destroy();
		// TODO: should this redirect to some other page?
		window.location.reload();
	} else {
		YackTrack.Util.addFormError(YackTrack.Blog.formId, msg);
	}
};
YackTrack.Blog.callback.failure = function(o) {
		YackTrack.Util.addFormError(YackTrack.Blog.formId, o.responseText);
};
YackTrack.Blog.cfg.queueProperty("buttons", [ 
			{ text: "Save", handler: YackTrack.Blog.handleSubmit, isDefault: true },
			{ text: "Cancel", handler: YackTrack.Blog.handleCancel } 
		]);
YackTrack.Blog.cfg.queueProperty("keylisteners", [
		new YAHOO.util.KeyListener(document, { keys:27 },  							
			{ fn: YackTrack.Blog.handleCancel,
			scope: YackTrack.Blog,
			correctScope: true } ),
		new YAHOO.util.KeyListener(document, { keys:13 },  							
			{ fn: YackTrack.Blog.handleSubmit,
			scope: YackTrack.Blog,
			correctScope: true } )
	]);
YackTrack.Blog.handleSuccess = function(o) {
	var resp = YAHOO.lang.JSON.parse(o.responseText);
	if (resp.success) {
		YackTrack.Blog.blogData = resp.blogData;
	} else {
		YackTrack.Util.addFormError(YackTrack.Blog.formId, resp.message);
	}
	YackTrack.dataReady.fire(); 
	YackTrack.dataReady.unsubscribeAll();
};
YackTrack.Blog.handleFailure = function(o) {
	YackTrack.Util.addFormError(YackTrack.Blog.formId, o.responseText);
}
YackTrack.Blog.getDialogData = function() {
	if (YackTrack.Blog.blogId == 0) {
		YackTrack.Blog.blogData = {};
		YackTrack.Blog.blogData.id = 0;
		YackTrack.Blog.blogData.refreshInterval = 6;
		YackTrack.Blog.blogData.nextUpdateDate = "";
		YackTrack.Blog.blogData.blogName = "";
		YackTrack.Blog.blogData.blogUrl = "";
		YackTrack.Blog.blogData.feedUrl = "";
		YackTrack.Blog.blogData.notificationTiming = 'NONE';
		YackTrack.dataReady.fire(); 
		YackTrack.dataReady.unsubscribeAll();
	} else {
		var callback = { 
			success: this.handleSuccess, 
			failure: this.handleFailure, 
			scope: this
		}; 
		var url = "ajaxPanel?panel=editblog&mode=data&id=" + YackTrack.Blog.blogId;
		YAHOO.util.Connect.asyncRequest('GET', url, callback, null);
	}
};
YackTrack.Blog.getForm = function() {
	var html = "<form id='" + YackTrack.Blog.formId + "' name='" + YackTrack.Blog.formId + "' action='ajaxPanel' method='post'>\n" +
		"<input id='id' name='id' value='" + YackTrack.Blog.blogData.id + "' type='hidden' />\n" +
		"<input id='refreshInterval' name='refreshInterval' value='" + YackTrack.Blog.blogData.refreshInterval + "' type='hidden' />\n" +
		"<input id='nextUpdateDate' name='nextUpdateDate' value='" + YackTrack.Blog.blogData.nextUpdateDate + "' type='hidden' />\n" +
		"<label for='blogName' class='ytLabel'>Blog Name*</label>\n" +
		"<br />\n" +
		"<input id='blogName' name='blogName' value='" + YackTrack.Blog.blogData.blogName + "' class='txt' type='text' size='30' />\n" +
		"<br /><br />\n" +
		"<label for='blogUrl' class='ytLabel'>Blog Url*</label>\n" +
		"<br />\n" +
		"<input id='blogUrl' name='blogUrl' value='" + YackTrack.Blog.blogData.blogUrl + "' class='txt' type='text' size='60' />\n" +
		"<br /><br />\n" +
		"<label for='feedUrl' class='ytLabel'>Feed Url*</label>\n" +
		"<br />\n" +
		"<input id='feedUrl' name='feedUrl' value='" + YackTrack.Blog.blogData.feedUrl + "' class='txt' type='text' size='60' />\n" +
		"<br /><br />\n" +
		"<label for='notificationTiming' class='ytLabel'>Notification Timing*</label>\n" +
		"<br />\n" +
		"<select id='notificationTiming' name='notificationTiming' class='required'>\n";
	if (YackTrack.Blog.blogData.notificationTiming == 'NONE') {
		html += "<option selected='selected' value='NONE'>\nNONE\n</option>\n";
	} else {
		html += "<option value='NONE'>\nNONE\n</option>\n";
	}
	if (YackTrack.Blog.blogData.notificationTiming == 'DAILY') {
		html += "<option selected='selected' value='DAILY'>\nDAILY\n</option>\n";
	} else {
		html += "<option value='DAILY'>\nDAILY\n</option>\n";
	}
	if (YackTrack.Blog.blogData.notificationTiming == 'INSTANT') {
		html += "<option selected='selected' value='INSTANT'>\nINSTANT\n</option>\n";
	} else {
		html += "<option value='INSTANT'>\nINSTANT\n</option>\n";
	}
	html += "\n</select>\n" +
		"<br /><br />\n" +
		"<input id='mode' name='mode' value='exec' type='hidden' />\n" +
		"<input id='fromUrl' name='fromUrl' value='blogList' type='hidden' />\n" +
		"<input id='panel' name='panel' value='editblog' type='hidden' />\n" +
		"</form>\n";
	return html;
}
