/*
# (C) 2008 BAYLEAF CO., LTD. All Rights Reserved.
# This code cannot be redistributed without permission from www.bayleaf.jp
*/

var CustomKeywords =
{
	initCustomKeywords: function()
	{
		var keywords	= CustomKeywords.getByID("keywords");
		if (keywords)
		{
			var arr	= keywords.value.split("\t");
			for (i=0; i<arr.length; i++)
			{
				var fld	= CustomKeywords.getByID(arr[i].substr(0,arr[i].indexOf("=>")));
				var val	= arr[i].substr(arr[i].indexOf("=>")+2);
				if (fld)
				{
					if (fld.tagName == "INPUT")
					{
						if ((fld.type == "radio")||(fld.type == "checkbox"))
						{
							if (fld.value == val) { fld.checked = true; }
						}else{
							fld.value = val;
						}
					}else if (fld.tagName == "SELECT")
					{
						for (j=0; j<fld.length; j++)
						{
							if (fld.options[j].value == val) { fld.options[j].selected = 'selected'; }
						}
					}else{
						fld.value = val;
					}
				}
			}
			var ck	= CustomKeywords.getByID("custom_keywords");
			if (ck)
			{
				var obj	= ck.getElementsByTagName("INPUT");
				for (i=0; i<obj.length; i++)
				{
					if ((obj[i].type == "radio")||(obj[i].type == "checkbox"))
					{
						obj[i].onclick  = function() { CustomKeywords.setCustomKeywords(); };
					}else{
						if (CustomKeywords.hasClassName(obj[i], 'ck_num'))
						{
							obj[i].onfocus  = function() { this.parentNode.style.backgroundColor = '#e8f3fe'; this.style.backgroundColor = '#e8f3fe'; this.value = this.value.replace(/,/g, ""); };
							obj[i].onblur   = function() { this.parentNode.style.backgroundColor = '#fff'; this.style.backgroundColor = '#fff'; this.value = CustomKeywords.commaNumericFormat(this.value); CustomKeywords.setCustomKeywords(); };
						}else{
							obj[i].onchange = function() { CustomKeywords.setCustomKeywords(); };
							obj[i].onfocus  = function() { this.parentNode.style.backgroundColor = '#e8f3fe'; this.style.backgroundColor = '#e8f3fe'; };
							obj[i].onblur   = function() { this.parentNode.style.backgroundColor = '#fff'; this.style.backgroundColor = '#fff'; };
						}
					}
				}
				var obj	= ck.getElementsByTagName("TEXTAREA");
				for (i=0; i<obj.length; i++)
				{
					obj[i].onchange = function() { CustomKeywords.setCustomKeywords(); };
					obj[i].onfocus  = function() { this.parentNode.style.backgroundColor = '#e8f3fe'; this.style.backgroundColor = '#e8f3fe'; };
					obj[i].onblur   = function() { this.parentNode.style.backgroundColor = '#fff'; this.style.backgroundColor = '#fff'; };
				}
				var obj	= ck.getElementsByTagName("SELECT");
				for (i=0; i<obj.length; i++)
				{
					obj[i].onchange = function() { CustomKeywords.setCustomKeywords(); };
				}
			}
		}
	},
	setCustomKeywords: function()
	{
		var val	= '';
		var ttl	= '';
		var flg	= false;
	
		var ck	= CustomKeywords.getByID("custom_keywords");
		var obj	= ck.getElementsByTagName("INPUT");
		for (i=0; i<obj.length; i++)
		{
			if ((obj[i].type == "radio")||(obj[i].type == "checkbox"))
			{
				if (obj[i].checked == true)
				{
					val += obj[i].id + "=>" + obj[i].value.replace(/\t/g, " ") + "\t";
				}else{
					val += obj[i].id + "=>\t";
				}
				if (obj[i].value) flg = true;
			}else{
				val += obj[i].id + "=>" + obj[i].value.replace(/\t/g, " ") + "\t";
				if (CustomKeywords.hasClassName(obj[i], 'ck_title'))
				{
					ttl += obj[i].value.replace(/\t/g, " ") + " ";
				}
				if (obj[i].value) flg = true;
			}
		}
		var obj	= ck.getElementsByTagName("TEXTAREA");
		for (i=0; i<obj.length; i++)
		{
			val += obj[i].id + "=>" + obj[i].value.replace(/\t/g, " ") + "\t";
			if (obj[i].value) flg = true;
		}
		var obj	= ck.getElementsByTagName("SELECT");
		for (i=0; i<obj.length; i++)
		{
			val += obj[i].id + "=>" + obj[i].options[obj[i].selectedIndex].value.replace(/\t/g, " ") + "\t";
			if (obj[i].options[obj[i].selectedIndex].value) flg = true;
		}
		var keywords	= CustomKeywords.getByID("keywords");
		keywords.value	= (flg) ? val : '';
	},
	getByID: function(n, d)
	{
		if (!d) d = document;
		if (d.getElementById)
		{
			return d.getElementById(n);
		}else if (d.all){
			return d.all[n];
		}
	},
	hasClassName: function(e, className)
	{
		var elementClassName = e.className;
		return (elementClassName.length > 0 && (elementClassName == className ||
		new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
	},
	commaNumericFormat: function(val)
	{
		var num	= new String(val).replace(/,/g, "");
		while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
		return num;
	}
};
window.onload = CustomKeywords.initCustomKeywords;
