/* Copyright (c) 2011 Smileweb co., Ltd.  All rights reserved.  www.smileweb.co.kr */
var mainAllCateList;
var mainAllSubCateArray = new Array();
var mainRealCnt = 0;
var mainTid;
var mainCnt = 0;
var mainCateTotalCode = "000000000000";
var mainSearchTagloaddatal;
var mainSearchTagTip;
var mainSearchCheckNum = 0;
var mainSearchField = 'all';

function ViewAllCate()
{
	var objStyle = _swid('mainAllCate').style.display;
	if (objStyle == 'none')
	{
		if (mainAllCateList == null)
			MainAllCateList();
			_swid('mainAllCate').style.display = '';
	}
	else
	{
		_swid('mainAllCate').style.display = 'none';
	}
}

function ViewAllCateClose()
{
	_swid('mainAllCate').style.display = 'none';
}

function MainAllCateList()
{
	new ajax.xhr.Request("/common/inc/cate_list.php", "stage=L", SetMainAllCateList, 'GET');
}

function SetMainAllCateList(xmlDoc)
{
	var code = getNodeValue(xmlDoc.getElementsByTagName('code'));
	if (code == 'success')
	{
		mainAllCateList = eval("(" + getNodeValue(xmlDoc.getElementsByTagName('data')) + ")");
		mainRealCnt = mainAllCateList.length - 1;

		for (var i = 1; i < mainAllCateList.length; i++)
		{
			$.ajax({
				url: "/common/inc/cate_list.php",
				type: 'POST',
				data : "stage=M&catenum="+mainAllCateList[i].num,
				dataType: 'text',
				success: function(xmlDoc){
					xmlDoc = $.getXmlDom(xmlDoc);
					var code = getNodeValue(xmlDoc.getElementsByTagName('code'));

					if (code == 'success')
					{
						mainAllSubCateArray[mainCnt] = eval("(" + getNodeValue(xmlDoc.getElementsByTagName('data')) + ")");
					}
					mainCnt = mainCnt + 1;
				}
			});
		}
		mainTid = setInterval('MainStartCheck()', 50);
	}
}

function MainAllSubCateList(xmlDoc)
{
	var code = getNodeValue(xmlDoc.getElementsByTagName('code'));

	if (code == 'success')
	{
		mainAllSubCateArray[mainCnt] = eval("(" + getNodeValue(xmlDoc.getElementsByTagName('data')) + ")");
	}
	mainCnt = mainCnt + 1;
}

function MainStartCheck()
{
	if (mainRealCnt == mainAllSubCateArray.length)
	{
		clearInterval(mainTid);
		MainMakeList();
	}
}

function MainMakeList()
{
	var obj = _swid('mainAllCateList');

	var mainCateListId = new Array('text1', 'text2', 'text3', 'text4', 'text5');

	for (var i = 0; i < mainCateListId.length; i++)
	{
		ChildNodesDel(mainCateListId[i]);
	}

	var mainRowNum = 0;

	for (var i = 1; i < mainAllCateList.length-1; i++)
	{
		if (mainRowNum % 5 == 0)
			mainRowNum = 0;

		var obj = _swid(mainCateListId[mainRowNum]);

		var topTotalCateCode = MainGetCateCode(mainAllCateList[i].catecode);

		var div = document.createElement("DIV");
		div.setAttribute("id", 'main_cate_' + i);

		var html = "<p class=\"h1_bg\"><a href='/product/all_cate_main.php?stage=L" +
			"&cateCode=" + mainAllCateList[i].catecode + "&cateNum=" + mainAllCateList[i].num +
			"&topNum=" + mainAllCateList[i].topnum + "&totalCateCode=" + topTotalCateCode +
			"'>" + mainAllCateList[i].catename +"</a></p>";

		for (var k = 0; k < mainAllSubCateArray.length; k++)
		{
			var tnum;
			try
			{
				tnum = mainAllSubCateArray[k][1].topnum;
			}
			catch(e)
			{
				tnum = 0;
			}
			if (tnum == mainAllCateList[i].num)
			{
				for (var j = 1; j < mainAllSubCateArray[k].length; j++)
				{
					var subTotalCateCode = MainGetSubCateCode(MainGetCateCode(mainAllCateList[i].catecode), mainAllSubCateArray[k][j].catecode);

					html += "<h2><a href='/product/all_cate_list.php?stage=M" +
					"&cateCode=" + mainAllSubCateArray[k][j].catecode + "&cateNum=" + mainAllSubCateArray[k][j].num +
					"&topNum=" + mainAllSubCateArray[k][j].topnum + "&totalCateCode=" + subTotalCateCode + "'>" +
					mainAllSubCateArray[k][j].catename + "</a></h2>";
				}
				break;
			}
		}
		div.innerHTML = html;
		mainRowNum++;
		obj.appendChild(div);
	}
}

function MainGetCateCode(cateCode)
{
	var mainCateCode = new Array(4);
	mainCateCode[0] = mainCateTotalCode.substring(0, 3);
	mainCateCode[1] = mainCateTotalCode.substring(3, 6);
	mainCateCode[2] = mainCateTotalCode.substring(6, 9);
	mainCateCode[3] = mainCateTotalCode.substring(9, 12);

	for (var i = 0; i < mainCateCode.length; i++)
	{
		if (parseInt(mainCateCode[i]) == 0)
		{
			mainCateCode[i] = cateCode;
			break;
		}
	}

	var returnValue = "";
	for (var i = 0; i < mainCateCode.length; i++)
	{
		returnValue += mainCateCode[i].toString();
	}
	return returnValue;
}

function MainGetSubCateCode(topTotal, cateCode)
{
	var mainCateCode = new Array(4);
	mainCateCode[0] = topTotal.substring(0, 3);
	mainCateCode[1] = topTotal.substring(3, 6);
	mainCateCode[2] = topTotal.substring(6, 9);
	mainCateCode[3] = topTotal.substring(9, 12);

	for (var i = 0; i < mainCateCode.length; i++)
	{
		if (mainCateCode[i] == "000")
		{
			mainCateCode[i] = cateCode;
			break;
		}
	}

	var returnValue = "";
	for (var i = 0; i < mainCateCode.length; i++)
	{
		returnValue += mainCateCode[i].toString();
	}
	return returnValue;
}

function MainGetHotSearchTag()
{
	new ajax.xhr.Request("/common/inc/hot_searchtag.php", "num=2", MainSetHotSearchTag, 'GET');
}

function MainSetHotSearchTag(xmlDoc)
{
	var code = getNodeValue(xmlDoc.getElementsByTagName('code'));

	if (code == 'success')
	{
		mainSearchTagloaddata = eval("(" + getNodeValue(xmlDoc.getElementsByTagName ('data')) + ")");
		mainSearchTagTip = setInterval('MainLoaddataCheck()', 50);
	}
}

function MainMakeHotSearchTag(action, name, gubun, eId)
{
	var tempAction = "";
	if (mainSearchTagloaddata == null)
		_swid(eId).innerHTML = '등록된 인기 검색어가 없습니다.';
	for (var i = 0; i < mainSearchTagloaddata.length; i++)
	{
		if (tempAction.length > 0) 	tempAction += gubun;
		tempAction += action.replaceAll(':ACTION:', name + "(\'" + mainSearchTagloaddata[i].tag + "\')").replaceAll(':TAG:', mainSearchTagloaddata[i].tag);
	}
	_swid(eId).innerHTML = _swid(eId).innerHTML + tempAction;
}

function MainLoaddataCheck()
{
	if (mainSearchTagloaddata != null)
	{
		clearInterval(mainSearchTagTip);
		MainMakeHotSearchTag('<li><a href="javascript:void(0)" onclick=":ACTION:">:TAG:&nbsp;</a></li>', 'MainHotSearchTag', '<li>,</li> ', 'mainHotSearchTag');
	}
}

function ViewSearchField()
{
	var objStyle = _swid('mainSearchFieldLayer').style.display;
	if (objStyle == 'none')	_swid('mainSearchFieldLayer').style.display = '';
	else	_swid('mainSearchFieldLayer').style.display = 'none';
}

function SFChange(str, field)
{
	mainSearchField = field;

	_swid('mainSearchField').innerHTML = str;
	_swid('mainSearchFieldLayer').style.display = 'none';
}

function MainHotSearchTag(tag)
{
	_swid('mainSearchText').value = tag;
	mainSearchCheckNum++;
	new ajax.xhr.Request("/common/inc/hot_searchtag.php", "mode=write&table=sws_hot_search&tag="+tag, MainCheckHotSearchTag, 'GET');
}

function MainCheckHotSearchTag(xmlDoc)
{
	var code = getNodeValue(xmlDoc.getElementsByTagName('code'));

	if (code == 'success')
	{
		mainSearchCheckNum = 0;
		MainAllSearchMove();
	}
	else
	{
		if (mainSearchCheckNum > 1 ) MainAllSearchMove();
		else MainSearchTag();
	}
}

function MainAllSearchMove()
{
	document.location.href = "/product/search_all.php?searchField="+ mainSearchField + "&tag=" + encodeURIComponent(_swid('mainSearchText').value);
}

function MainSearchTag()
{
	if(trim($('#mainSearchText').val()).length == 0 ){
		alert('검색어를 입력해 주세요');
		return;
	}
	var pattern = /[^(가-힣ㄱ-ㅎㅏ-ㅣa-zA-Z0-9)]/gi;
	if(pattern.test(trim($('#mainSearchText').val()))){
		$('#mainSearchText').val(trim($('#mainSearchText').val()).replace(pattern, ""));
		alert('특수 문자는 사용할수 없습니다.');
		return;
    }

	MainHotSearchTag(_swid('mainSearchText').value);
}

var gnbCateListAdd = new Array(4);
var gnbCateCodeNum = new Array(4);
var gnbCateCode = new Array(4);
var gnbCateStage = new Array("L", "M", "S", "SS");
var gnbCateEName = new Array("gnbCate1", "gnbCate2", "gnbCate3", "gnbCate4");
var gnbCateNum = 0;

function GnbCateList(cateNum)
{
	gnbCateListAdd[0] = cateNum.substring(0,3);
	gnbCateListAdd[1] = cateNum.substring(3,6);
	gnbCateListAdd[2] = cateNum.substring(6,9);
	gnbCateListAdd[3] = cateNum.substring(9,12);

	GnbCateListSend();
}

function GnbCateListSend()
{
	new ajax.xhr.Request("/common/inc/cate_list.php", "stage="+gnbCateStage[gnbCateNum]+"&catenum="+gnbCateCodeNum[gnbCateNum-1], GnbMainCateSetList, 'GET');
}

function GnbMainCateSetList(xmlDoc)
{
	var code = getNodeValue(xmlDoc.getElementsByTagName('code'));

	if (code == 'success')
	{
		var loaddata = eval("(" + getNodeValue(xmlDoc.getElementsByTagName('data')) + ")");

		SelectBoxChildNodesDel(gnbCateEName[gnbCateNum]);

		var obj = _swid(gnbCateEName[gnbCateNum]);
		if (obj == null) return;
		obj.setAttribute("onchange", "GnbCateListChange(this.value)");
		obj.onchange = function() {
			GnbCateListChange(this.value);
		};

		for (var i = 1; i < loaddata.length; i++)
		{
			var option = document.createElement("option");
			var text = document.createTextNode(loaddata[i].catename);
			option.appendChild(text);
			option.setAttribute("value", "stage="+gnbCateStage[gnbCateNum]+"&cateNum="+loaddata[i].num+"&cateCode="+loaddata[i].catecode+"&topNum="+loaddata[i].topnum+"&totalCateCode="+GnbCateListSetCateCode(loaddata[i].catecode));
			if (gnbCateListAdd[gnbCateNum] == loaddata[i].catecode )
			{
				gnbCateCode[gnbCateNum] = loaddata[i].catecode;
				gnbCateCodeNum[gnbCateNum] = loaddata[i].num;
				option.selected = true;
			}
			obj.appendChild(option);
		}

		_swid(gnbCateEName[gnbCateNum]).style.display = "";

		if(gnbCateNum <= 3 && parseInt(gnbCateListAdd[gnbCateNum+1], 10) > 0)
		{
			gnbCateNum++;
			GnbCateListSend();
		}
	}
	else
	{
		_swid(gnbCateEName[gnbCateNum]).style.display = "none";
	}
	_swid('pageName').style.display = "none";
	_swid('gnbCateCode').style.display = "";
}

function GnbCateListChange(cateVar)
{
	location.href="/product/all_cate_list.php?"+cateVar;
}

function GnbCateListSetCateCode(code)
{
	switch (gnbCateNum)
	{
		case 0:	return code+"000000000"; break;
		case 1:	return gnbCateCode[0]+code+"000000"; break;
		case 2:	return gnbCateCode[0]+gnbCateCode[1]+code+"000"; break;
		case 3:	return gnbCateCode[0]+gnbCateCode[1]+gnbCateCode[2]+code; break;
	}
}
