﻿ProductPage.formComment = 
{
	fromPopup : null,
	oldUrl : utilObj.getQueryStringByCharSharp(),
	listSmiles : [],
	
	show : function()
	{
		var url = utilObj.getQueryStringByCharSharp();
		if (this.oldUrl != url)
		{
			this.clear();
			this.oldUrl = url;
		}
		if (this.fromPopup == null)
			this.fromPopup = new ModalPopup("displayformComment", "ProductPage.formComment.fromPopup");
		
		this.fromPopup.display();
	},
	
	hide : function()
	{
		if (this.fromPopup) this.fromPopup.hide();
	},
	
	clear : function()
	{
		if (this.fromPopup)
		{
			this.fromPopup.clear();
			this.fromPopup = null;
		}
	},
	
	insertSmile : function(smile)
	{
		var key = "[::" + smile + "::]";
		this.listSmiles[key] = smile;
		utilObj.insertTextAtCursor(utilObj.getElById("formComment").elements["textCommentContent"], key);
	},
	
	replaceCharToImgSmile : function(content)
	{
		for (var i in this.listSmiles)
		{
			if (i.indexOf("[::") != -1)
			{
				while (content.indexOf(i) != -1)
				{
					content = content.replace(i, "<img src='Images/Smiles/" + this.listSmiles[i] + ".gif' border='0' />");
				}
			}
		}
		return content;
	},
	
	submit : function()
	{
		var o = utilObj.getElById("formComment");
		
		o.elements["btnCommentSubmit"].disabled = true;
		var email = o.elements["textCommentEmail"].value.trim();
		if (!utilObj.isEmail(email) || email.toLowerCase().indexOf("bkc.vn") != -1)
		{
			alert(GetTextLang(2));
			o.elements["textCommentEmail"].select();
			o.elements["textCommentEmail"].focus();
			o.elements["btnCommentSubmit"].disabled = false;
			return;
		}
		
		var content = utilObj.stripHtmlTags(o.elements["textCommentContent"].value.trim());
		if (content == "")
		{
			alert(GetTextLang(4));
			o.elements["textCommentContent"].focus();
			o.elements["btnCommentSubmit"].disabled = false;
			return;
		}
		
		content = this.replaceCharToImgSmile(content);
		
		oAjax.postComment(content, email, o.elements["proID"].value);
		this.listSmiles = [];
		this.insertNewComment.insert(content, new Date().toVNString(), email);
		o.reset();
		o.elements["btnCommentSubmit"].disabled = false;
		this.hide();
	}
};

ProductPage.formComment.insertNewComment =
{
	isNew : false,
	
	insert : function(content, date, email)
	{
		var oContainer = utilObj.getElById("DataListComment");
		if (oContainer == null)
		{
			oContainer = utilObj.createEl("TABLE");
			oContainer.cellSpacing = 0;
			oContainer.cellPadding = 0;
			oContainer.border = 0;
			oContainer.style.width = "100%";
			var oChild = utilObj.getElById("displayProductReviews").firstChild;
			var time = 0;
			while (time < 2)
			{
				if (oChild.tagName && oChild.tagName.toLowerCase() == "div")
				{
					time++;
				}
				if (time < 2) oChild = oChild.nextSibling;
			}
			
			utilObj.getElById("displayProductReviews").insertBefore(oContainer, oChild);
			this.isNew = true;
		};
		var r = oContainer.insertRow(oContainer.rows.length);
		var c = r.insertCell(0);
		c.appendChild(this.createComment(content, date, email));
	},
	
	createComment : function(content, date, email)
	{
		var oTable = utilObj.createEl("TABLE");
		oTable.cellSpacing = 0;
		oTable.cellPadding = 0;
		oTable.border = 0;
		oTable.style.margin = "5px 0px";
		oTable.style.textAlign = "left";
		oTable.style.width = "100%";
		if (!this.isNew)
		{
			this.createLine(oTable);
			this.isNew = false;
		}
		this.createTitle(oTable, email);
		this.createContent(oTable, content);
		this.createDate(oTable, date);
		return oTable;
	},
	
	createLine : function(oTable)
	{
		var r = oTable.insertRow(oTable.rows.length);
		var c = r.insertCell(0);
		c.colSpan = 2;
		var oDiv = utilObj.createEl("DIV");
		oDiv.className = "sepHorizontalPro";
		c.appendChild(oDiv);
	},
	
	createTitle : function(oTable, email)
	{
		var r = oTable.insertRow(oTable.rows.length);
		var c = r.insertCell(0);
		c.style.paddingTop = "5px";
		c.colSpan = 2;
		var o = utilObj.createEl("SPAN");
		o.className = "titleDetail";
		o.innerHTML = email;
		c.appendChild(o);
	},
	
	createContent : function(oTable, content)
	{
		var r = oTable.insertRow(oTable.rows.length);
		var c = r.insertCell(0);
		c.colSpan = 2;
		var o = utilObj.createEl("SPAN");
		o.innerHTML = content;
		c.appendChild(o);
	},
	
	createDate : function(oTable, date)
	{
		var r = oTable.insertRow(oTable.rows.length);
		var c = r.insertCell(0);
		c.style.textAlign = "left";
		c.style.width = "70%";
		c = r.insertCell(1);
		c.style.textAlign = "left";
		c.innerHTML = "<b>Ngày gửi: </b> <span>" + date + "</span>";
	}
};
