﻿var brandObj = new Object();
var detailsObj = new Object();
var brandList = new Array();
var shopList = new Array();
var shopTotal = 0;
var t1Ready = false;
var t2Ready = false;
var spReady = false;

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

/*function genShopDetail(x, tid, sid)
{
	var root = x.responseXML.getElementsByTagName('shop').item(0).childNodes;
	var detailsObj = new Object();
	for (var i=0; i<root.length; i++)
	{
		var name = root.item(i).nodeName;
		if (root.item(i).firstChild)
		{
			detailsObj[name] = root.item(i).firstChild.data;
		}
		else
		{
			detailsObj[name] = '';
		}
	}
	var shopDiv = document.createElement("div");
	var tid2 = tid.toLowerCase();
	var str = '';
	str += '<div class="terminalHeaderContainer">';
	//alert(tid.toLowerCase() + '  :  ' + terminalID);
	if (tid2 == terminalID)	var tempStr = 'On';	else	var tempStr = '';
	str += '	<div class="terminalHeader'+tempStr+'">'+checkTitle(tid)+'</div>';
	str += '</div>';
	str += '<div class="shoppingDetailContainer">';
	str += '	<div class="shoppingDetailWrapper">';
	var itemArray = new Array('address', 'area', 'time', 'tel', 'email', 'url');
	for (var item in itemArray)
	{
		if (detailsObj[itemArray[item]] != '')
		{
		//alert(itemArray[item]);
		//alert(name);
			var subClass = itemArray[item];
			var detailTxt = detailsObj[itemArray[item]];
			if (subClass == 'email')
				{
					subClass = 'shopEmail';
					detailTxt = trim(detailTxt);
					var emailList = detailTxt.split('/');
					var tempDetailTxt = '';
					
					for (var i=0; i<emailList.length; i++)
						{
							tempDetailTxt += '<a href="mailto:'+emailList[i]+'">';
							tempDetailTxt += emailList[i];
							tempDetailTxt += '</a>';
							if (i<(emailList.length-1))
								{
									tempDetailTxt += ' / ';
								}
						}
					detailTxt = tempDetailTxt;					
				}
			if (subClass == 'url')
			{
					detailTxt = trim(detailTxt);
					var tempDetailTxt = '';
					if (detailsObj['target'])
					{
						tempDetailTxt += '<a href="'+detailTxt+'" target='+detailsObj['target']+'>'
					}
					else
					{
						tempDetailTxt += '<a href="'+detailTxt+'">'
					}
					tempDetailTxt += detailTxt;
					tempDetailTxt += '</a>';
					detailTxt = tempDetailTxt;
				}
			str += '<div class="shoppingDetail '+subClass+'">'+detailTxt+'</div>';
		}
	}
	if (brandID != 'nine')	str += '<div style="padding:5px 0px 0px 0px;"><a href="../../../interactive-map.html?shop='+sid+'"><img src="'+path+'img/shopping/btn_map.gif" alt="Map" width="49" height="15" border="0" /></a></div>';
	str += '	</div>';
	//str += '	<div class="shoppingMap"><img src="'+path+'img/shopping/insideshopping/all/audio/map.jpg" width="193" height="138" alt="" /></div>';
	str += '</div>';
	str += '<br class="clearer" />';
	shopDiv.innerHTML = str;
	shopList.push({tid:tid2, div:shopDiv});
	//alert(shopList[0].div);
	if (shopList.length >= shopTotal)
	{
		var tid = (terminalID == 'all')?'t1':terminalID;
		for (var i=0; i<shopList.length; i++)
		{
			if (shopList[i].tid == terminalID)
			{
				d.getElementById('shopDetails').appendChild(shopList[i].div);
			}
		}
		for (var i=0; i<shopList.length; i++)
		{
			if (shopList[i].tid != terminalID)
			{
				d.getElementById('shopDetails').appendChild(shopList[i].div);
			}
		}
		
		d.getElementById('content').style.visibility = 'visible';
	}
	d.getElementById('content').style.visibility = 'visible';
}
*/

/*function genBrandDetail(x)
{
	var root = x.responseXML.getElementsByTagName('brand').item(0).childNodes;
	var str = '';

	for (var i=0; i<root.length; i++)
	{
		var name = root.item(i).nodeName;
		if (root.item(i).firstChild)
		{
			brandObj[name] = root.item(i).firstChild.data;
		}
		else
		{
			brandObj[name] = '';
		}
		//alert(name);
	}
	
	d.getElementById('brandImg').src = path + 'img/' + level1+'/'+level2+'/photo/photo_'+brandID+'.jpg';
	d.getElementById('brandLogo').src = path + 'img/' + level1+'/'+level2+'/logo/logo_'+brandID+'.jpg';
	d.getElementById('brandTitle').innerHTML = brandObj["title"];
	if (brandObj["slogon"] != '')
	{
		str += brandObj["slogon"] + "<br /><br />";
	}
	str += brandObj["description"];
	d.getElementById('brandTxt').innerHTML = str;
}
*/

function genPulldown()
{
	if (natureID == 'entertainment')
	{
		d.getElementById('shopSelect').style.display = 'none';
		return;
	}
	//brandList.sort();
	brandList.sort(
		function(a, b)
		{
		if (a.name < b.name) {return -1}
		  if (a.name > b.name) {return 1}
		  return 0; 
		}
	);
	for (var i in brandList)
	{
		//alert(brandList[i] + " : " + typeof(brandList[i]));
		var url = path + level1 + '/' + level2 + '/' + level3 + '/' + catID + '/' + brandList[i].brand + '.html';
		d.getElementById('shopSelect').options[i] = new Option(checkTitle(brandList[i].brand), url);
		if (brandList[i].brand == brandID)	var index = i;
	}
	d.getElementById('shopSelect').selectedIndex = index;
}

function goLoc(target)
{
	window.location.href = target;
}

function genObj(x)
{
	var root = x.responseXML.getElementsByTagName('shopGroup').item(0);
	var shops = root.getElementsByTagName('shop');	
	var str = '';
	var str2 = '';
	var str3 = '';

	var brandDetail = '';
	for (var i=0; i<shops.length; i++)
	{
		var id = shops.item(i).attributes.getNamedItem("id").value;
		//shopObj[id] = new Object();
		//var shops1 = shops.item(i).childNodes;
		//modified on 2009 02
		//if (natureID != shops.item(i).getElementsByTagName('nature').item(0).attributes.getNamedItem("id").value)
		if (!(shops.item(i).getElementsByTagName('nature').item(0).attributes.getNamedItem("id").value).match(natureID))
		{
			continue;
		}
		/* modified on 2008 12 23*/
		//if (catID != shops.item(i).getElementsByTagName('category').item(0).attributes.getNamedItem("id").value)
		if (!(shops.item(i).getElementsByTagName('category').item(0).attributes.getNamedItem("id").value).match(catID))
		{
			continue;
		}

		var brand = shops.item(i).getElementsByTagName('brand').item(0).attributes.getNamedItem("id").value;
		var brandName = shops.item(i).getElementsByTagName('brand').item(0).attributes.getNamedItem("name").value.toLowerCase();
		var tid = shops.item(i).getElementsByTagName('terminal').item(0).attributes.getNamedItem("id").value;

		if ((brandID == brand) && (brandDetail==''))
		{
			brandDetail = brand;
			//loadXML(path+'xml/brand_detail/'+brandID+'.xml', brandXMLHandler); //modified on 2009 01 - disable generate details function
		}

		if ((brandID == brand))
		{
			shopTotal ++;
			//loadShopXML(path+'xml/shop_detail/'+id+'.xml', shopXMLHandler, tid, id); //modified on 2009 01 - disable generate details function
			if (tid == 't1')	t1Ready = true;
			if (tid == 't2')	t2Ready = true;
			if (tid == 'sp')	spReady = true;
		}
		if (terminalID != 'all' && terminalID != tid)
		{
			continue;
		}

		var brandOK = true;
		for (var j=0; j<brandList.length; j++)
		{
			if (brand == brandList[j].brand)
			{
				brandOK = false;
				break;
			}
		}
		if (brandOK)	brandList.push({brand:brand, name:brandName});
	}
	genPulldown();
	genShopBreadcrumbs();

	if (!t1Ready)
	{
		var tBtn = d.getElementById((level2 + '_t1'));
		if (tBtn != null)
		{
			tBtn.className = 'buildingDim';
		}
	}
	if (!t2Ready)
	{
		var tBtn = d.getElementById((level2 + '_t2'));
		if (tBtn != null)
		{
			tBtn.className = 'buildingDim';
		}
	}
	if (!spReady)
	{
		var tBtn = d.getElementById((level2 + '_sp'));
		if (tBtn != null)
		{
			tBtn.className = 'buildingDim';
		}
	}
	//alert("t1Ready: "+t1Ready+"   t2Ready: "+t2Ready);
}

function genShopBreadcrumbs()
{
	var spanCode = d.createElement("span");
	var tempHtml = '';
	function genA(name, link, target)
	{
		return '<a href="'+link+'" target="'+target+'">' + name + '</a>';
	};
	tempHtml += ' > ';
	tempHtml += genA(checkTitle(brandID), (brandID+'.html'), "_self");
	spanCode.innerHTML = tempHtml;
	d.getElementById('breadcrumbs').appendChild(spanCode);
}

function initSortTable(objId)
{

	if(!document.getElementById(objId))
		return;

	var obj = document.getElementById(objId);
	var tags = obj.getElementsByTagName("*");
	var shopDetailArray = new Array();
	var shopDetailList = new Array();
	var shopDetailListSp = new Array();
	var count = 0;
	var countSp = 0;
	var name = '';
			
	for(var i=0;i<tags.length;i++)
	{
		var tagsName = obj.getElementsByTagName("*").item(i).nodeName;
		
		if(tagsName.toLowerCase() == 'div')
		{
			var attr = tags[i].attributes.getNamedItem("class");
			var attr2 = tags[i].attributes.getNamedItem("style");

			try
			{
				name = attr.value;
				if(name=='')
					name = 'shopId';
			}catch(e)
			{
				
				if(attr){
					name = attr.value;
				}else{
					name = 'shopId';
				}
			}

			switch (name)
			{
				case 'terminalHeader':
					var termName = '';
					shopDetailArray[0] = tags[i].childNodes[0].nodeValue;
					//if(shopDetailArray[0] == '一號客運大樓')
					//	shopDetailArray[0] = '1'+shopDetailArray[0];
					//else
					//	shopDetailArray[0] = '2'+shopDetailArray[0];
					break;
				case 'shoppingDetail address':
					shopDetailArray[1] = tags[i].childNodes[0].nodeValue;
					break;
				case 'shoppingDetail area':
					shopDetailArray[2] = tags[i].childNodes[0].nodeValue;
					break;
				case 'shoppingDetail time':
					shopDetailArray[3] = tags[i].childNodes[0].nodeValue;
					break;
				case 'shoppingDetail shopEmail':
					shopDetailArray[4] = tags[i].getElementsByTagName('a')[0].childNodes[0].nodeValue;
					break;
				case 'shoppingDetail url':
					shopDetailArray[5] = tags[i].getElementsByTagName('a')[0].childNodes[0].nodeValue;
					break;
				case 'shoppingDetail tel':
					shopDetailArray[7] = tags[i].childNodes[0].nodeValue;
					break;
				case 'shopId':
					var href = tags[i].getElementsByTagName('a')[0].attributes.getNamedItem("href").value;
					href = href.split("=");
					shopDetailArray[6] = href[1];
					break;
				default:
					name = '';
			}
		}else if(tagsName.toLowerCase() == 'br')
		{
			if(shopDetailArray[0]=='海天客運碼頭')
			{
				shopDetailListSp[countSp++] = shopDetailArray;
			}else
			{
				shopDetailList[count++] = shopDetailArray;
			}
			shopDetailArray = new Array();
		}
	}

	if(level3.toLowerCase() == 't2')
	{
		shopDetailList.sort(
			function(a, b)
			{
			  if (a[0] > b[0]) {return -1}
			  if (a[0] < b[0]) {return 1}
			  return 0; 
			}
		);
	}else
	{
		shopDetailList.sort(
			function(a, b)
			{
			  if (a[0] < b[0]) {return -1}
			  if (a[0] > b[0]) {return 1}
			  return 0; 
			}
		);		
	}
	if(level3.toLowerCase() == 'sp')
	{
		shopDetailList = shopDetailListSp.concat(shopDetailList);
	}else
	{
		shopDetailList = shopDetailList.concat(shopDetailListSp);
	}
	
	var str = "";
	
	obj.innerHTML = "";
	
	for(var k=0; k<shopDetailList.length;k++)
	{
		if(shopDetailList[k][0])
		{
			var testVal = '';
			if((shopDetailList[k][0]) == "一號客運大樓"){
				testVal = 't1';
			}else if((shopDetailList[k][0]) == "二號客運大樓"){
				testVal = 't2';
			}else if((shopDetailList[k][0]) == "海天客運碼頭"){
				testVal = 'sp';
			}
			if (level3 == testVal)
				var tempStr = 'On';	
			else
				var tempStr = '';
			
			str += '<div class="terminalHeaderContainer">';
			str += '<div class="terminalHeader'+tempStr+'">'+shopDetailList[k][0]+'</div>'
			str += '</div>';
		}
		str += '<div class="shoppingDetailContainer">';
		str += '<div class="shoppingDetailWrapper">';
		if(shopDetailList[k][1])
			str += '<div class="shoppingDetail address">'+shopDetailList[k][1]+'</div>';
		if(shopDetailList[k][2])
			str += '<div class="shoppingDetail area">'+shopDetailList[k][2]+'</div>';
		if(shopDetailList[k][3])
			str += '<div class="shoppingDetail time">'+shopDetailList[k][3]+'</div>';
		if(shopDetailList[k][7])
			str += '<div class="shoppingDetail tel">'+shopDetailList[k][7]+'</div>';
		if(shopDetailList[k][4])
			str += '<div class="shoppingDetail shopEmail"><a href="mailto:'+shopDetailList[k][4]+'">'+shopDetailList[k][4]+'</a></div>';
		if(shopDetailList[k][5])
			str += '<div class="shoppingDetail url"><a href="http://'+shopDetailList[k][5]+'" target="_blank">'+shopDetailList[k][5]+'</a></div>';
		if(shopDetailList[k][6])
			str += '<div style="padding:5px 0px 0px 0px;"><a href="../../../../interactive-map.html?shop='+shopDetailList[k][6]+'"><img src="../../../../img/shopping/btn_map.gif" alt="Map" width="49" height="15" border="0" /></a></div>';
		str += '</div>';
		str += '</div>';
		str += '<br class="clearer" />';
	}
	obj.innerHTML = str;
}
