ÿØÿà JFIF  ` ` ÿþš 403 WEBHELL REBORN
403 WEBHELL REBORN
Server : Apache
System : Linux ruga7-004.fmcity.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : tkt_travelbus ( 1137)
PHP Version : 7.0.0p1
Disable Function : mysql_pconnect
Directory :  /tkt_travelbus/www/Lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

Buat Folder Baru:
Buat File Baru:

Current File : /tkt_travelbus/www/Lib/to_common.lib.php
<?

/******************************************************************************
*
* 1. 기초 코드 (기초코드,대륙/국가/도시 코드)
*
******************************************************************************/


// 기초코드 정보를 배열로 가져옴
//
// @param $CodeID : 기초코드 ID
// @return : 배열
function TO_get_code($CodeID) {
	if (!$CodeID) return array();

	// 기초코드 정보를 가져옴
	$sql = "select * from TB_CodeB
	        where CodeID = '$CodeID'
			and DelFlag = 'N'
			order by OrderNum, Code";
	$rs = db_query($sql);

	// 배열로 저장
	$arr = array();
	while ($row = db_fetch_array($rs)) {
		$row = TO_stripslashes($row); // stripslashes 처리

		$arr[] = $row;
	}

	return $arr;
}

// 기초코드 정보를 <option> 으로 반환
//
// @param $CodeID : 기초코드 ID
// @param $select : 셀렉트값
// @param $select : 셀렉트 value 값에 코드명 사용여부 (name:코드명사용, 없음:코드사용) (20100625 )
// @return : 문자열
function TO_get_code_option($CodeID, $select="", $value="") {
	if (!$CodeID) return;

	// 기초코드 정보를 가져옴
	$TO_CODE = TO_get_code($CodeID);

	// <option> 설정
	$option = "";
	for ($i=0, $cnt=count($TO_CODE); $i<$cnt; $i++) {
		$v = (strtolower($value) == "name") ? $TO_CODE[$i][CdName] : $TO_CODE[$i][Code];
		$selected = ($v == $select) ? " selected" : "";
		$option .= "<option value='" . $v . "'{$selected}>" . $TO_CODE[$i][CdName] . "</option>";
	}

	return $option;
}


// 대륙코드 목록
// 
// @params Aidx : 대륙코드
// @params delflag : 
function to_area_a($Aidx="",$delflag="",$lang="")
{
	global $cf;

	$data = array();

	$sql = "select * from TB_AreaA where 1 {$sql_where} ";
	if ($Aidx) $sql .= " and Aidx='{$Aidx}' ";
	if ($delflag) $sql .= " and DelFlag='{$delflag}' ";
	if ($lang) $sql .= " and ConLang='{$lang}' ";

	$sql .= " order by OrderNum ";
	$rs = db_query($sql);
	for($i=0 ; $row = db_fetch_array($rs) ; $i++){
		$data[$i] = $row;

		// 사용 flag
		if ($row['DelFlag'] == "N") {
			$data[$i]['DelFlag_icon'] = $cf['icon']['start'];
			$data[$i]['DelFlag_opp'] = "Y";
		} else {
			$data[$i]['DelFlag_icon'] = $cf['icon']['stop'];
			$data[$i]['DelFlag_opp'] = "N";
		}
		
		// 해당 국가 개수
		$arr = db_fetch("select count(*) as cnt from TB_AreaB where Aidx='{$row[Aidx]}' ");
		$data[$i]['in_cnt'] = $arr['cnt'];
	
	}

	return $data;
}


// 국가코드 목록
// 
// @params Aidx : 대륙코드
// @params Bidx : 국가코드
// @params sql_where : 
function to_area_b($Aidx="",$Bidx="",$sql_where="",$lang="")
{
	global $cf;
	
	$data = array();

	if($lang)	$sql_lang = " and ConLang='".$lang."'";
	$sql = "select * from TB_AreaB where 1 {$sql_where} and Aidx in(select Aidx from TB_AreaA where DelFlag='N' {$sql_lang} ) ";
	//$sql = "select * from TB_AreaB where 1 {$sql_where} and Aidx in(select Aidx from TB_AreaA where DelFlag='N') ";
	if ($Aidx) $sql .= " and Aidx='{$Aidx}' ";
	if ($Bidx) $sql .= " and Bidx='{$Bidx}' ";

	$sql .= " order by OrderNum ";

	$rs = db_query($sql);
		
	for($i=0 ; $row = db_fetch_array($rs) ; $i++){
		$data[$i] = $row;

		// 대륙명
		$arr = to_area_a($row['Aidx']);
		$data[$i]['ContinentName'] = $arr[0]['ContinentName'];

		// 해당 도시 개수
		$arr = db_fetch("select count(*) as cnt from TB_AreaC where Aidx='{$row[Aidx]}' and Bidx='{$row[Bidx]}' ");
		$data[$i]['in_cnt'] = $arr['cnt'];
		
		if($cf['MODE']=="admin") { // 관리자용
			// 관광지 수
			$arr = db_fetch("select count(*) as place_cnt from TB_PLACE where  areaa_cd='{$row[Aidx]}' and areab_cd='{$row[Bidx]}'  ");
			$data[$i]['place_cnt'] = $arr['place_cnt'];
		}
	}

	return $data;
}

// 도시코드 목록
// 
// @params Aidx : 대륙코드
// @params Aidx : 국가코드
// @params delflag : 
function to_area_c($Aidx="",$Bidx,$Cidx="",$delflag="",$sql_where="")
{
	$data = array();

	if (!$Bidx) return $data;

	$sql = "select * from TB_AreaC where 1 {$sql_where} ";
	
	if ($Aidx) $sql .= " and Aidx='{$Aidx}' ";
	$sql .= " and Bidx='{$Bidx}' ";
	if ($Cidx) $sql .= " and Cidx='{$Cidx}' ";
	if ($delflag) $sql .= " and DelFlag='{$delflag}' ";

	$sql .= " order by OrderNum ";
	$rs = db_query($sql);
	for($i=0 ; $row = db_fetch_array($rs) ; $i++){
		$data[$i] = $row;

		// 대륙이름
		$arr = to_area_a($row['Aidx']);
		$data[$i]['ContinentName'] = $arr[0]['ContinentName'];
		
		// 국가이름
		$arr = to_area_b($row['Aidx'],$row['Bidx']);
		$data[$i]['NationName'] = $arr[0]['NationName'];

	}

	return $data;
}



//기초코드 조회(1차)
//
function base_codea($code_id="")
{
	if($code_id) $sql_where = " and CodeID='{$code_id}' ";
	$sql = "select * from TB_CODEA where DelFlag='N' {$sql_where} order by OrderNum ";
	
	$rs = db_query($sql);
	
	$data = array();
		
	if($code_id){
		$data = db_fetch($sql); //코드 검색
	}else{
		$data  =db_fetch_all($rs);
	}
	return $data;
}

//기초코드 조회(2차)
//
//@CodeID : 1차코드 ID
//@CiDX   : 시퀀스 번호 or @Code
function base_codeb($CodeID="",$CiDX="",$delflag="")
{
	global $MemberID,$lang;

	if($CiDX) $sql_where = " and ( CiDX='{$CiDX}' or Code='{$CiDX}' )";
	if($CodeID) $sql_where .= " and CodeID='{$CodeID}' ";
	if($delflag) $sql_where .= " and DelFlag='{$delflag}' ";

	$sql = "select *,
								(select count(seq) from TB_CODEC where TB_CODEB.Code=TB_CODEC.cd_b ) as cnt_b, 
								IF(delflag='N','Y','N') as DelFlag_opp, IF(delflag='N','btn_check.gif','btn_stop.gif') as DelFlag2 
					from TB_CODEB 
					where  0=0 {$sql_where} order by OrderNum,CiDX  ";
	
	$rs = db_query($sql);
	
	$i=0;
	$data = array();
	while($rows = db_fetch_array($rs))
	{
		$data[$i] = $rows;
		
		// 개발자 전용 항목
		/*if($MemberID != "click") {
			if($data[$i]['perm_write'] == "N") $data[$i]['perm_write_str'] = "alert('입력불가합니다.\\n개발사에 문의바랍니다.');return;";
			if($data[$i]['perm_edit'] == "N") $data[$i]['perm_edit_str'] = "alert('수정불가합니다.\\n개발사에 문의바랍니다.');return;";
			if($data[$i]['perm_delete'] == "N") $data[$i]['perm_delete_str'] = "alert('삭제불가합니다.\\n개발사에 문의바랍니다.');return;";
		}*/
		
		// 다국어 코드가 있으면 코드명을 바꿈.
		if ( $lang=="eng" or $lang=="cn" or $lang=="hk") {
			if ( $data[$i]['cd_nm_'.$lang] ) { 
				$data[$i]['CdName'] = $data[$i]['cd_nm_'.$lang];
			}
		}

		$i++;
	}

	return $data;
}

//기초코드 조회(3차)
//
//@cd_a:1차코드ID
//@cd_b:2차코드ID
//@seq : 시퀀스 번호 or @code
//@lang : 다국어적용,영어(eng),중국어(cn)(include/top_proc.html 에서 설정)
//
function base_codec($cd_a,$cd_b,$seq="",$delflag="")
{
	global $lang,$cf;
	
	if ($seq) $sql_where = " and ( seq='{$seq}' or code='{$seq}' )";
		
	if ($delflag) $sql_where .= " and delflag='{$delflag}' ";
	
	
	// 사용자모드일때 관리자전용항목 출력금지
	if ($cf['MODE']=="user") $sql_where .= " and ( cd_memo != 'admin' or cd_memo is null ) "; 
	
	// 관리자모드일때 사용자전용항목 출력금지
	if ($cf['MODE']=="admin" and $delflag=="N") $sql_where .= " and ( cd_memo != 'user' or cd_memo is null )  ";
	
	$sql = "select *, 
								IF(delflag='N','Y','N') as delflag_opp, IF(delflag='N','btn_check.gif','btn_stop.gif') as delflag2   
				from TB_CODEC  
				where cd_a='{$cd_a}' and cd_b='{$cd_b}' {$sql_where}  order by order_num,seq ";

	$rs = db_query($sql);
	
	$data = array();
	$data = db_fetch_all($rs);

	// 다국어 코드가 있으면 코드명을 바꿈.
	if ( $lang=="en" or $lang=="eng" or $lang=="cn" or $lang=="hk") {
		if($lang=="en") $lang="eng";
		for($i=0 ; $i<count($data) ; $i++){
			 if ( $data[$i]['cd_nm_'.$lang] ) { 
					$data[$i]['cd_nm'] = $data[$i]['cd_nm_'.$lang];
			 }
		}
	}

	return $data;
}

// 상품 네비게이션 가져옴
//
// @param $g_uid : 상품 uid
// @return : 문자열
function TO_get_good_navi($g_uid) {
	global $b_uid, $m_uid, $s_uid;

	// 상품 카테고리를 가져옴
	$sql = "select bc.b_name, mc.m_name, sc.s_name from (
				select
				if(b_uid = 0, '$b_uid', b_uid) as b_uid,
				if(m_uid = 0, '$m_uid', m_uid) as m_uid,
				if(s_uid = 0, '$s_uid', s_uid) as s_uid
				from good g
				where g_uid = '$g_uid'
			) g
			left join bc on g.b_uid = bc.b_uid
	        left join mc on g.m_uid = mc.m_uid
	        left join sc on g.s_uid = sc.s_uid
			";
	$row = db_fetch($sql);

	// 마지막 카테고리 설정
	$last = 0;
	if ($row[b_name]) $last += 1;
	if ($row[m_name]) $last += 1;
	if ($row[s_name]) $last += 1;

	$navi_array = array(1 => 'b_name','m_name','s_name');
	$str = "";
	for ($i=1; $i<=$last; $i++) {
		if ($row[$navi_array[$i]]) {
			$str .= " &gt ";
			if ($i == $last) $str .= "<strong class='navi_last'>" . trim($row[$navi_array[$i]]) . "</strong>";
			else $str .= trim($row[$navi_array[$i]]);
		}
	}

	return $str;
}

// 카테고리명을 가져옴
// 현재 카테고리 네비게이션 추가 (20101015 )
//
// @param $b_uid : 1차 카테고리
// @param $m_uid : 2차 카테고리
// @param $s_uid : 3차 카테고리
// @return : 배열 (0=>현재카테고리명, 1=>1차, 2=>2차, 3=>3차, 'navi'=>현재 카테고리 네비게이션)
function TO_get_category($b_uid, $m_uid="", $s_uid="") {
	$sql = "select bc.b_name, mc.m_name, sc.s_name from (
				select '$b_uid' as b_uid, '$m_uid' as m_uid, '$s_uid' as s_uid
			) c
			left join bc on c.b_uid = bc.b_uid
			left join mc on c.m_uid = mc.m_uid
			left join sc on c.s_uid = sc.s_uid
			";
	$row = db_fetch($sql);
	$list = TO_stripslashes($list); // stripslashes 처리

	// 현재 카테고리명 설정
	if ($row[s_name]) $cat = $row[s_name];
	else if ($row[m_name]) $cat = $row[m_name];
	else if ($row[b_name]) $cat = $row[b_name];

	// 마지막 카테고리 설정
	$last = 0;
	if ($row[b_name]) $last += 1;
	if ($row[m_name]) $last += 1;
	if ($row[s_name]) $last += 1;

	// 현재 카테고리 네비게이션 설정 (20101015 )
	$navi_array = array(1 => 'b_name', 'm_name', 's_name');
	$navi = "";
	for ($i=1; $i<=$last; $i++) {
		if ($row[$navi_array[$i]]) {
			if ($i > 1) $navi .= " > ";
			if ($i == $last) $navi .= "<span class='navi_last'>" . trim($row[$navi_array[$i]]) . "</span>";
			else $navi .= trim($row[$navi_array[$i]]);
		}
	}

	$arr = array($cat, $row[b_name], $row[m_name], $row[s_name], 'navi' => $navi);

	return $arr;
}

/***
 * b_uid 언어 정보 가져오기
 * @param $b_uid
 * @return array|false|null
 * @date 2022.09.06
 */
function getBcLang($b_uid){
	$b_uid = (int) $b_uid;
	if(!$b_uid){
		return false;
	}
	$sql = "SELECT b_lang FROM bc WHERE b_uid = {$b_uid}";
	return db_fetch($sql);
}

// 1차 카테고리 가져옴
//
// @params b_uid : 1차 카테고리
// @params delflag : 삭제 여부
//
// return array
function TO_get_bc($b_uid="",$delflag="",$sql_where="",$limit="")
{
	global $cf;

	$sql = "select *,(select count(*) from mc where mc.b_uid=bc.b_uid   ) as mc_cnt ";
	$sql .= " from bc  where 1 ";
	if ( $b_uid ) $sql .= " and b_uid='{$b_uid}' ";
	if ( $delflag ) $sql .= " and DelFlag='$delflag' ";
	$sql .= "  {$sql_where} ";
	$sql .= " order by b_no asc ";
	$sql .= " {$limit} ";

	/*if(devCookie()){
		echo $sql;
		exit;
	}*/


	$rs = db_query($sql);


	$data = array();

	for ( $i=0 ; $row = db_fetch_array($rs) ; $i++)
	{
		/*if(devCookie()){
			p($row);
		}*/

		//TOPMENU 링크값 2차카테고리 가져오기
		$sql2 = "select * from mc where b_uid='{$row['b_uid']}' and DelFlag='N' order by m_no limit 1";
		$rs2 = db_query($sql2);
		$row2 = db_fetch_array($rs2) ;
		$row['m_uid'] = $row2['m_uid'];

//		if(devCookie()){
//			p($row['tab']);
//		}
		// 사용자 카테고리 링크
		$row['href'] = "";
		switch($row['tab'])
		{
			case "P":
			case "D":
			case "T":
					if($cf['tab']['D']=="Y" or $cf['tab']['P']=="Y" or $cf['tab']['T']=="Y") {
						//$row['href'] = "../good/sub_main.html?b_uid_s=".$row['b_uid'];

                        //by taeyoung
                        //2022.06.14
                        //전체로 나오기 전 주소
                        //이전으로 돌릴시 아래 코드를 사용해야함
						$row['href'] = "../good/list.html?b_uid_s=".$row['b_uid']."&m_uid_s=".$row['m_uid'];
						$row['mhref'] = "../tmbi_good/list1.html?b_uid_s=".$row['b_uid'];


                        //by taeyoung
                        //2022.06.14
                        //href에 m_uid_s값 제거
                        $row['href'] = "/good/list.html?b_uid_s=".$row['b_uid'];
					}
				break;
			case "V":
					if($cf['tab']['V']=="Y") {
						$row['href'] = "../live/list.html?b_uid_s=".$row['b_uid']."&m_uid_s=".$row['m_uid'];
						$row['mhref'] = "../tmbi_live/list.html?b_uid_s=".$row['b_uid'];

                        //by taeyoung
                        //2022.06.14
                        //href에 m_uid_s값 제거
                        $row['href'] = "/live/list.html?b_uid_s=".$row['b_uid'];
					}
				break;
			case "S":
					if($cf['tab']['S']=="Y") $row['href'] = "#";
				break;
			case "L":
					if($cf['tab']['L']=="Y") {
						//$row['href'] = "../hotel/sub_main.html?b_uid_s=".$row['b_uid'];
						$row['href'] = "/hotel/list.html?b_uid_s=".$row['b_uid']."&m_uid_s=".$row['m_uid'];
						$row['mhref'] = "../tmbi_hotel/list1.html?b_uid_s=".$row['b_uid'];

                        //by taeyoung
                        //2022.06.14
                        //href에 m_uid_s값 제거
                        $row['href'] = "/hotel/list.html?b_uid_s=".$row['b_uid'];
					}
				break;
			case "R":
					if($cf['tab']['R']=="Y") $row['href'] = "#";
				break;
			case "A":
					if($cf['tab']['A']=="Y") $row['href'] = "#";
				break;
		}
		
		// 관리자모드 상품개수 
		$row['good_cnt'] = 0;
		if($cf['MODE']=="admin") {
			switch($row['tab']) {
				case "L":
						$r = db_fetch("select count(*) as  cnt from TB_HOTEL where b_uid='{$row[b_uid]}' ");
						$row['good_cnt'] = $r['cnt'];
					break;
				case "P":
				case "D":
				case "V":
				case "T":
						$r = db_fetch("select count(*) as cnt from good where b_uid='{$row[b_uid]}' ");
//						if(devCookie()){
//							p($r);
//						}
						$row['good_cnt'] = $r['cnt'];
				break;
			}
		}

		// 자료
		$data[$i] = $row;

		// 사용 flag
		if ($row['DelFlag'] == "N") {
			$data[$i]['DelFlag_icon'] = $cf['icon']['start'];
			$data[$i]['DelFlag_opp'] = "Y";
		} else {
			$data[$i]['DelFlag_icon'] = $cf['icon']['stop'];
			$data[$i]['DelFlag_opp'] = "N";
		}

		// 포맷팅
		$str = "";
		$len = 3 - strlen($row['b_uid']);
		for($j=0 ; $j<$len ; $j++) $str .= "&nbsp;";
		$data[$i]['space'] = $str;

	}

	return $data;
}



function TO_get_bc2($b_uid="",$delflag="",$sql_where="",$limit="")
{
	global $cf;

	$sql = "select *,(select count(*) from mc where mc.b_uid=bc.b_uid   ) as mc_cnt ";
	$sql .= " from bc  where 1 ";
//	if ( $b_uid ) $sql .= " and b_uid='{$b_uid}' ";
	if ( $delflag ) $sql .= " and DelFlag='$delflag' ";
//	$sql .= "  {$sql_where} ";
	$sql .= " order by b_no asc ";
	$sql .= " {$limit} ";

//	echo $sql;
//	exit;

	$rs = db_query($sql);


	$data = array();

	for ( $i=0 ; $row = db_fetch_array($rs) ; $i++)
	{
		/*if(devCookie()){
			p($row);
		}*/

		//TOPMENU 링크값 2차카테고리 가져오기
		$sql2 = "select * from mc where b_uid='{$row['b_uid']}' and DelFlag='N' order by m_no limit 1";
		$rs2 = db_query($sql2);
		$row2 = db_fetch_array($rs2) ;
		$row['m_uid'] = $row2['m_uid'];

//		if(devCookie()){
//			p($row['tab']);
//		}
		// 사용자 카테고리 링크
		$row['href'] = "";
		switch($row['tab'])
		{
			case "P":
			case "D":
			case "T":
				if($cf['tab']['D']=="Y" or $cf['tab']['P']=="Y" or $cf['tab']['T']=="Y") {
					//$row['href'] = "../good/sub_main.html?b_uid_s=".$row['b_uid'];

					//by taeyoung
					//2022.06.14
					//전체로 나오기 전 주소
					//이전으로 돌릴시 아래 코드를 사용해야함
					$row['href'] = "../good/list.html?b_uid_s=".$row['b_uid']."&m_uid_s=".$row['m_uid'];
					$row['mhref'] = "../tmbi_good/list1.html?b_uid_s=".$row['b_uid'];


					//by taeyoung
					//2022.06.14
					//href에 m_uid_s값 제거
					$row['href'] = "/good/list.html?b_uid_s=".$row['b_uid'];
				}
				break;
			case "V":
				if($cf['tab']['V']=="Y") {
					$row['href'] = "../live/list.html?b_uid_s=".$row['b_uid']."&m_uid_s=".$row['m_uid'];
					$row['mhref'] = "../tmbi_live/list.html?b_uid_s=".$row['b_uid'];

					//by taeyoung
					//2022.06.14
					//href에 m_uid_s값 제거
					$row['href'] = "/live/list.html?b_uid_s=".$row['b_uid'];
				}
				break;
			case "S":
				if($cf['tab']['S']=="Y") $row['href'] = "#";
				break;
			case "L":
				if($cf['tab']['L']=="Y") {
					//$row['href'] = "../hotel/sub_main.html?b_uid_s=".$row['b_uid'];
					$row['href'] = "/hotel/list.html?b_uid_s=".$row['b_uid']."&m_uid_s=".$row['m_uid'];
					$row['mhref'] = "../tmbi_hotel/list1.html?b_uid_s=".$row['b_uid'];

					//by taeyoung
					//2022.06.14
					//href에 m_uid_s값 제거
					$row['href'] = "/hotel/list.html?b_uid_s=".$row['b_uid'];
				}
				break;
			case "R":
				if($cf['tab']['R']=="Y") $row['href'] = "#";
				break;
			case "A":
				if($cf['tab']['A']=="Y") $row['href'] = "#";
				break;
		}

		// 관리자모드 상품개수
		$row['good_cnt'] = 0;
		if($cf['MODE']=="admin") {
			switch($row['tab']) {
				case "L":
					$r = db_fetch("select count(*) as  cnt from TB_HOTEL where b_uid='{$row[b_uid]}' ");
					$row['good_cnt'] = $r['cnt'];
					break;
				case "P":
				case "D":
				case "V":
				case "T":
					$r = db_fetch("select count(*) as cnt from good where b_uid='{$row[b_uid]}' ");
//						if(devCookie()){
//							p($r);
//						}
					$row['good_cnt'] = $r['cnt'];
					break;
			}
		}

		// 자료
		$data[$i] = $row;

		// 사용 flag
		if ($row['DelFlag'] == "N") {
			$data[$i]['DelFlag_icon'] = $cf['icon']['start'];
			$data[$i]['DelFlag_opp'] = "Y";
		} else {
			$data[$i]['DelFlag_icon'] = $cf['icon']['stop'];
			$data[$i]['DelFlag_opp'] = "N";
		}

		// 포맷팅
		$str = "";
		$len = 3 - strlen($row['b_uid']);
		for($j=0 ; $j<$len ; $j++) $str .= "&nbsp;";
		$data[$i]['space'] = $str;

	}

	return $data;
}




/**
 * 1차 카테고리 복지몰 전용
 * @author taeyoung
 * 2022.07.14
*/






// 2차 카테고리 가져옴
//
// @params b_uid : 1차 카테고리
// @params m_uid : 2차 카테고리
//
// return array
function TO_get_mc($b_uid,$m_uid="",$delflag="")
{
	global $cf;

	$data = array();


	if ( !$b_uid ) return $data; 

	$sql = "select *,(select count(*) from sc where sc.b_uid='{$b_uid}' and sc.m_uid = mc.m_uid  ) as sc_cnt ";
	$sql .= " ,(select tab from bc where bc.b_uid=mc.b_uid limit 1 ) as tab ";
	$sql .= " from mc  ";
	$sql .= " where b_uid='{$b_uid}' ";

	if ( $delflag ) $sql .= " and DelFlag='$delflag' ";
	if ( $m_uid ) $sql .= " and m_uid='{$m_uid}' "; 

	$sql .= " order by `m_no` asc";

    /*if(devCookie()){
		p('haro');
        p($sql);
	}*/

	$rs = db_query($sql);

	$data = array();

	for ( $i=0 ; $row = db_fetch_array($rs) ; $i++)
	{
		$data[$i] = $row;

		// 사용 flag
		if ($row['DelFlag'] == "N") {
			$data[$i]['DelFlag_icon'] = $cf['icon']['start'];
			$data[$i]['DelFlag_opp'] = "Y";
		} else {
			$data[$i]['DelFlag_icon'] = $cf['icon']['stop'];
			$data[$i]['DelFlag_opp'] = "N";
		}
		
		// 관리자모드 상품개수 
		$data[$i]['good_cnt'] = 0;
		if($cf['MODE']=="admin") {
			switch($row['tab']) {
				case "L":
						$r = db_fetch("select count(*) as  cnt from TB_HOTEL where tab='{$row[tab]}' and b_uid='{$b_uid}'  and  m_uid='{$row[m_uid]}' ");
						$data[$i]['good_cnt'] = $r['cnt'];
					break;
				case "P":
				case "D":
				case "T":
				case "T":
				case "R":
						$r = db_fetch("select count(*) as cnt from good where tab='{$row[tab]}' and b_uid='{$b_uid}'  and m_uid='{$row[m_uid]}' ");
						$data[$i]['good_cnt'] = $r['cnt'];		
					break;
			}
		}

		// 포맷팅
		$str = "";
		$len = 3 - strlen($row['m_uid']);
		for($j=0 ; $j<$len ; $j++) $str .= "&nbsp;";
		$data[$i]['space'] = $str;

	}

	return $data;
}


// 3차 카테고리 가져옴
//
// @params m_uid : 2차 카테고리
// @params s_uid : 3차 카테고리
//
// return array
function TO_get_sc($b_uid="",$m_uid="",$s_uid="",$delflag="")
{
	global $cf;


	$sql = "select * ";
	$sql .= " ,(select tab from bc where bc.b_uid=sc.b_uid limit 1 ) as tab ";
	$sql .= " from sc where 1 ";
	if ( $delflag ) $sql .= " and DelFlag='$delflag' ";
	if ( $b_uid ) $sql .= " and b_uid='{$b_uid}' "; 
	if ( $m_uid ) $sql .= " and m_uid='{$m_uid}' "; 
	if ( $s_uid ) $sql .= " and s_uid='{$s_uid}' "; 

	$sql .= " order by s_no asc";

	$rs = db_query($sql);

	$data = array();

	for ( $i=0 ; $row = db_fetch_array($rs) ; $i++)
	{
		$data[$i] = $row;

		// 사용 flag
		if ($row['DelFlag'] == "N") {
			$data[$i]['DelFlag_icon'] = $cf['icon']['start'];
			$data[$i]['DelFlag_opp'] = "Y";
		} else {
			$data[$i]['DelFlag_icon'] = $cf['icon']['stop'];
			$data[$i]['DelFlag_opp'] = "N";
		}

		// 관리자모드 상품개수
		$data[$i]['good_cnt'] = 0;
		if($cf['MODE']=="admin") {
			switch($row['tab']) {
				case "L":
					$r = db_fetch("select count(*) as  cnt from TB_HOTEL where s_uid='{$row[s_uid]}' ");
					$data[$i]['good_cnt'] = $r['cnt'];
					break;
				case "P":
				case "D":
				case "T":
				case "V":
					$r = db_fetch("select count(*) as cnt from good where s_uid='{$row[s_uid]}' ");
					$data[$i]['good_cnt'] = $r['cnt'];
					break;
			}
		}		
		
		// 포맷팅
		$str = "";
		$len = 4 - strlen($row['s_uid']);
		for($j=0 ; $j<$len ; $j++) $str .= "&nbsp;";
		$data[$i]['space'] = $str;

	}

	return $data;
}


/******************************************************************************
*
* 2. 게시판 관련
*
******************************************************************************/

// 게시판 설정을 반환
//
// @param $BD_CD : 게시판 코드
// @param GRP_CD : 게시판 그룹(왼쪽메뉴구성)
// @return : 배열
// @참고 : /cmm/index.html 파일에 컬럼 설명 있음
function TO_get_board_setup($BD_CD="",$GRP_CD="GRP01") {

	if ($BD_CD) {
		$TO_BD = db_fetch("select *,(select GRP_NM from TB_MDBD01 where TB_MDBD01.GRP_CD=TB_MDBD02.GRP_CD limit 1 ) as GRP_NM  from TB_MDBD02 where BD_CD='{$BD_CD}' ");
		/*if(devCookie()){
			echo "select *,(select GRP_NM from TB_MDBD01 where TB_MDBD01.GRP_CD=TB_MDBD02.GRP_CD limit 1 ) as GRP_NM  from TB_MDBD02 where BD_CD='{$BD_CD}' ";
			exit;
		}*/
		$TO_BD = TO_stripslashes($TO_BD); // stripslashes 처리
		if ($TO_BD['BD_CD']) {
				$TO_BD['TABLE'] = $BD_CD; // 게시판 테이블
				$TO_BD['TABLE_COMT'] = $BD_CD . "_COMT"; // 게시판 코멘트 테이블
		}
	}
	else {
		$sql = " select *,(select GRP_NM from TB_MDBD01 where TB_MDBD01.GRP_CD=TB_MDBD02.GRP_CD limit 1 ) as GRP_NM  from TB_MDBD02 where DELFLAG='N' and GRP_CD = '{$GRP_CD}'  order by OrderNum ";
		$rs = db_query($sql);
		$rows = db_fetch_all($rs);

		$TO_BD = $rows;
	}


	//QNA_VT 제거
	/*for($i = 0; $i < count($TO_BD); $i++){
		if($TO_BD[$i]['BD_CD'] == 'QNA_VT'){
			unset($TO_BD[$i]);
			break;
		}
	}*/


	return $TO_BD;
}

// 게시물 데이터를 일괄 정리후 배열로 반환
//
// @param $row : 게시물 데이터
// @param $TO_BD : 게시판 설정
// @param $title_len : 제목 자를 길이
// @return : 배열
// 게시물 데이터를 일괄 정리후 배열로 반환
function TO_get_board($row, $TO_BD, $title_len=50, $OPTION) {
	global $cf, $TO_CF, $TO_MB, $href, $page;
	global $lang; // 다국어 설정
	global $TO_ADMIN;

	$upload = "/FileData/logo/";

	// 영어 혹은 중국어 일때 경로변경 변수
	$lang_path = "";
	if ( $lang == "cn" or $lang =="eng" ) $lang_path = "/".$lang;

	// 디폴트 아이콘 설정 (관리자모드 > 설정관리 > 사이트 설정관리 에서 할 수 있음) (20100716 )
	if (!$TO_CF['shop_newiconlink'])	$TO_CF['shop_newiconlink']		= "/admin/image/board/new.gif";
	$TO_CF['shop_newiconlink_m']		= "/tmbi_images/cmm/new.png"; // 모바일용(20160913)
	
	if (!$TO_CF['shop_noticeiconlink'])	$TO_CF['shop_noticeiconlink']	= "/admin/image/board/notice.gif";
	if (!$TO_CF['shop_newsiconlink'])	$TO_CF['shop_newsiconlink']		= "/admin/image/board/icon_news.gif";
	if (!$TO_CF['shop_eventiconlink'])	$TO_CF['shop_eventiconlink']	= "/admin/image/board/icon_event.gif";
	if (!$TO_CF['shop_replyiconlink'])	   $TO_CF['shop_replyiconlink']	= "/admin/image/board/re.gif";
	$TO_CF['shop_replyiconlink_m']		= "/tmbi_images/cmm/re.png"; // 모바일용(20160913)
	
	if (!$TO_CF['shop_secreticonlink'])	{
		$TO_CF['shop_secreticonlink']	= "/admin/image/board/secret.gif";
		$TO_CF['shop_secreticonlink_m']	= "/tmbi_images/cmm/ico_lock.png";
	}
	if (!$TO_CF['shop_fileiconlink'])	$TO_CF['shop_fileiconlink']		= "/admin/image/board/bullet_disk.gif";

	// 배열전체를 복사
	$list = $row;
	unset($row);

	$list = TO_stripslashes($list); // stripslashes 처리

	$list['s_title'] = get_text(strip_tags($list['MTITLE']));

	// 작성일
	$list['date'] = mb_substr($list['INSDT'], 0, 10);
	$list['datetime'] = $list['INSDT'];
	$list['datetime2'] = conv_date($list['INSDT'], 2);
	$list['datetime3'] = str_replace("-",".",mb_substr($list['INSDT'], 5, 5));

	// 공지글인지 체크
	$list['is_notice'] = false;
	$list['icon_notice'] = "";
	if ($list['FIXED_YN'] == "Y") {
		$list['is_notice'] = true;
		$list['icon_notice'] = "<img src='" . $TO_CF['shop_noticeiconlink'] . "' align='absmiddle' alt='공지사항' title='공지사항' />";
	}

	// 뉴스/이벤트글인지 체크
	$list['is_news'] = false;
	$list['is_event'] = false;
	$list['icon_event'] = "";
	if ($list['MSORT_01'] == "NOTICE") { // 뉴스
		$list['is_news'] = true;
		$list['icon_event'] = "<img src='" . $TO_CF['shop_newsiconlink'] . "' align='absmiddle' alt='뉴스' title='뉴스' />";
	}
	else if ($list['MSORT_01'] == "EVENT") { // 이벤트
		$list['is_event'] = true;
		$list['icon_event'] = "<img src='" . $TO_CF['shop_eventiconlink'] . "' align='absmiddle' alt='이벤트' title='이벤트' />";
	}

	// 답변글 깊이 체크
	$list['reply'] = "";
	if (($list['MLEVEL']) > 0) {
		$list['reply'] = str_repeat("&nbsp;&nbsp;", $list['MLEVEL']);
		$title_len -= $list[MLEVEL] * 1;
	}

	// 답변글 아이콘
	$list['icon_reply'] = "";
	if ($list['reply']) {
		$list['icon_reply'] = $list['reply'] . "<img src='" . $TO_CF['shop_replyiconlink'] . "' align='absmiddle' alt='답변' title='답변' />";
		$list['icon_reply_m'] = $list['reply'] . "<img src='" . $TO_CF['shop_replyiconlink_m'] . "' align='absmiddle' alt='답변' title='답변' />"; // 모바일용
	}

	// 비밀글 아이콘
	$list['is_secret'] = false;
	$list['icon_secret'] = "";
	if ($list['SECRET'] == "Y") {
		$list['is_secret'] = true;
		$list['icon_secret'] = "<img src='" . $TO_CF['shop_secreticonlink'] . "' align='absmiddle' alt='비밀글' title='비밀글' />";
		$list['icon_secret_m'] = "<img src='" . $TO_CF['shop_secreticonlink_m'] . "' align='absmiddle' alt='비밀글' title='비밀글' style='width:12px;'/>"; // 모바일용
		$title_len -= 2;
	}


	// 코멘트
	$list['comment_str'] = "";
	if ($list['comment']) {
		$list['comment_str'] = "[" . $list['comment'] . "]";
		$title_len -= strlen($list['comment_str']) + 2;
	}

	// new 아이콘
	$list['icon_new'] = "";
	if (time() - strtotime($list['INSDT']) <= 3600 * (int)$TO_CF['shop_newicontime']) {
		$list['icon_new'] = "<img src='" . $TO_CF['shop_newiconlink'] . "' align='absmiddle' alt='새글' title='새글' />";
		$list['icon_new_m'] = "<img src='" . $TO_CF['shop_newiconlink_m'] . "' align='absmiddle' alt='새글모바일' title='새글모바일' />"; // 모바일용
		$title_len -= 2;
	}

	// 홈페이지
	$list['MEM_WWW_LINK'] = "";
	if ($list['MEM_WWW']) {
		$list['MEM_WWW'] = set_http($list['MEM_WWW']);
		$list['MEM_WWW_LINK'] = "<a href='" . $list['MEM_WWW'] . "' target='_blank'>" . $list['MEM_WWW'] . "</a>";
	}

	// 제목 자르기
	$list['title'] = cut_str($list['MTITLE'], $title_len, "...");
	$list['show_title'] = mb_substr($list['MTITLE'], 0, 23); //메인 표시용으로 생성 사유 글자깨짐 현상

//	$list['title'] = mb_substr($list['MTITLE'], 0, 23);
	$list['title_len'] = $title_len;

	// 작성자명 히든처리 (강*구)
	if(strtolower($OPTION) == 'secret'){
		$list['MEM_NM'] = setSecretString($list['MEM_NM']);
	}

	// 이름 설정 (관리자가 쓴 글일 경우 관리자 이미지 출력)
	$list['S_MEM_NM'] = get_text(strip_tags($list['MEM_NM']));

	// 관리자아이콘 사용일 경우 (20140717 )
	if ($TO_CF['shop_admin_icon']) {
		$sql = "select mb_id as me_id from TB_MEMBER where mb_id = '" . $list['MEM_ID'] . "' and mb_level < 10";

		$row = db_fetch($sql);
		if ($row['me_id']) {
			$list['MEM_NM'] = "<img src='" .$upload.$TO_CF['shop_admin_icon'] . "' align='absmiddle' style='height:16px; vertical-align:top;' alt='" . $list['S_MEM_NM'] . "' title='" . $list['S_MEM_NM'] . "' />";
		}
	}

	// 작성자 설정 (20100507 )
	$list['name'] = $list['MEM_NM'];

	// 제목 링크
	$list['href'] = $lang_path."/cmm/?MODE=view&BD_CD=$TO_BD[BD_CD]&MSEQ=$list[MSEQ]$href&page=$page";
	$list['s_href'] = $lang_path."/cmm/?MODE=view&BD_CD=$TO_BD[BD_CD]&MSEQ=$list[MSEQ]$href"; // 기본 링크 저장

	// 제목 링크 MOBILE
	$list['m_href'] = $lang_path."/tmbi_cmm/?MODE=view&BD_CD=$TO_BD[BD_CD]&MSEQ=$list[MSEQ]$href&page=$page";
	$list['m_s_href'] = $lang_path."/tmbi_cmm/?MODE=view&BD_CD=$TO_BD[BD_CD]&MSEQ=$list[MSEQ]$href"; // 기본 링크 저장

	// 비밀글일 경우 제목 링크 (20091209 )
	// 비밀글 체크 (자신의 글이거나 관리자라면 통과)
	if (($list['MEM_ID'] && $list['MEM_ID'] == $TO_MB['mb_id']) || $TO_ADMIN) {
		// 통과
	}
	else {
		// 비밀글일 경우
		$is_writer = false;
		if ($list['is_secret'] == true) {
			// 회원이 비밀글을 올리고 관리자가 답변글을 올렸을 경우
			// 회원이 관리자가 올린 답변글을 바로 볼 수 있도록 체크

			// 원글의 작성자와 비밀번호를 가져옴
			$sql = "select MEM_ID, MEM_PWD from {$TO_BD[TABLE]} where MREF = '{$list[MREF]}' and MSTEP = '0'";
			$row = db_fetch($sql);

			// 로그인을 했을 경우
			if ($TO_MB['mb_id']) {
				if ($row['MEM_ID'] == $TO_MB['mb_id']) $is_writer = true;
			}
			// 로그인을 안했을 경우 비밀번호 체크
			else {
				$is_writer = false;
			}

			// 비밀글을 볼 수 있는 권한이 없을 경우
			if (!$is_writer) {
				$list['href'] = "javascript:pop_password('./password.php?MODE=view&BD_CD=$TO_BD[BD_CD]&MSEQ=$list[MSEQ]$href&page=$page');";

				//관리자가 작성한 글인지 확인한다.
				$writer_id_ck = get_member($list['MEM_ID']);
				$writer_lv_ck = TO_admin($writer_id_ck);
				
				//관리자가 작성한 글은 비회원의 비번입력으로 볼수있도록 예외로 처리한다.
				if($writer_lv_ck == "super" || $writer_lv_ck == "admin"){

				} else {	
					//비밀글이면서 회원작성글이면서 비로그인상태는 로그인안내 메시지
					if($list['MEM_ID'] && !$TO_MB['mb_id']) $list['href']="javascript:alert('회원글 확인은 로그인이 필요합니다.');";
				}

			}
		}
	}

	// 분류명 링크
	$list['category_name'] = $list['MSORT_03']; // 분류명
	$list['category_href'] = $lang_path."/cmm/?BD_CD=$TO_BD[BD_CD]&scat=" . urlencode($list['category_name']);

	// 등록 파일 가져옴
	$list['file'] = TO_get_file($TO_BD['BD_CD'], $list['MSEQ']);
	if ($list['file']['count']) {
		$list['icon_file'] = "<img src='" . $TO_CF['shop_fileiconlink'] . "' align='absmiddle' alt='첨부파일' title='첨부파일' />";
	}

	return $list;
}








// 게시물의 등록파일을 가져옴 (배열로 반환)
//
// @param $BD_CD : 게시판 코드
// @param $MSEQ : 게시물 번호
// @return : 배열
// 게시물 데이터를 일괄 정리후 배열로 반환
function TO_get_file($BD_CD, $MSEQ) {
	global $cf, $TO_CF,$BOARD_INFO;

	// 게시판 설정 가져옴
	$TO_BD = TO_get_board_setup($BD_CD);

	// 등록파일 업로드 경로
	$upload = "$cf[path]/FileData/board/$BD_CD";
	$upload_url = "$cf[url]/FileData/board/$BD_CD";

	// 등록파일 컬럼 설정
	//$file_cnt = 10;
	$file_cnt = (int)$TO_BD[BD_FL]; // 추가컬럼으로 사용 위해 수정 (20100714 )
	if ($file_cnt == 0) $file_cnt = 1;
	$fields = "";
	for ($i=1; $i<=$file_cnt; $i++) {
		if ($i != 1) $fields .= ", ";
		$fields .= "MFILE".$i;
	}

	// 등록파일을 가져옴
	$sql = "select $fields from {$TO_BD[TABLE]} where MSEQ = '$MSEQ'";
	$row = db_fetch($sql);

	// 배열로 저장
	$file = array();
	$file[count] = 0;
	$file[image] = ""; // 대표 이미지
	$preg_image_ext = str_replace(",", "|", $TO_CF[image_ext]); // 대표 이미지 확장자
	for ($i=1; $i<=$file_cnt; $i++) {
		$no = $i;
		$MFILE = $row['MFILE'.$i];
		if ($MFILE) {
			// 파일정보 가져옴
			$file_size = @filesize("$upload/$MFILE");
			$file_info = @getimagesize("$upload/$MFILE");

			// 파일정보 배열로 저장
			$file[$no][href] = "./download.php?BD_CD=$BD_CD&MSEQ=$MSEQ&no=$no";
			$file[$no][name] = $MFILE;
			$file[$no][size] = get_filesize($file_size);
			$file[$no][save] = $MFILE;
			//$file[$no][download] = $row[download];
			//$file[$no][wday] = $row[wday];
			//$file[$no][content] = stripslashes($row[file_content]);
			$file[$no][width] = (int)$file_info[0];
			$file[$no][height] = (int)$file_info[1];
			$file[$no][type] = (int)$file_info[mime];

			// 이미지,동영상,플래쉬 보기 설정
			$file[$no][view] = TO_get_file_view($MFILE, $file[$no][width], $file[$no][height], $row[file_content]);

			// 대표 이미지 설정
			if (!$file[image]) {
				if (preg_match("/\.($preg_image_ext)$/i", $MFILE)) {
					$file[image] = "$upload_url/$MFILE";
				}
			}

			$file[count] = $no;
		}
	}

	// 대표 이미지가 없을 경우 (노이미지)
	if (!$file[image]) $file[image] = $cf['TO_IMG']['no_image_m'];

	return $file;
}

// 등록파일 이미지,동영상,플래쉬 보기 설정
//
// @param $file : 파일명
// @param $width : 너비
// @param $height : 높이
// @param $content : 내용 (사용안할듯...)
// @return : 문자열
function TO_get_file_view($file, $width, $height, $content="") {
	global $cf, $TO_CF, $TO_BD,$BOARD_INFO;
	static $obj_id;

	if (!$file) return;

	$obj_id++;

	// 너비 설정
	$view_width = $cf['image_width'];
	if ($width > $view_width) {
		$rate = $view_width / $width;
		$width = $view_width;
		$height = (int)($height * $rate);
	}

	// 경로 설정
	if($TO_BD){
	$path = "$cf[url]/FileData/board/$TO_BD[BD_CD]";
	}else{
	$path = "$cf[url]/FileData/board/$BOARD_INFO[BD_CD]";
	}
	$file = urlencode($file);
	$extension = get_extension($file);
	$image_ext = explode(",", $TO_CF[image_ext]);
	$movie_ext = explode(",", $TO_CF[movie_ext]);
	$flash_ext = explode(",", $TO_CF[flash_ext]);

	// 이미지 파일
	if (in_array($extension, $image_ext)) {
		// 이미지는 onload 후 리사이즈 위해 사이즈 주지 않음
		//return "<img src='$cf[bbs_path]/image_show.php?width=$view_width&image=".urlencode($file)."' onclick=\"image_window('$path/$file');\" style='cursor:pointer;'>";
		return "<img src='$path/$file' onclick=\"to_dialog.image(this.src);\" style='cursor:pointer;' id='_TO_{$obj_id}' />";
	}
	// 동영상 파일
	elseif (in_array($extension, $movie_ext)) {
		return "<script type='text/javascript'>mm('$path/$file', '$cf[movie_width]', '', '_TO_{$obj_id}', 1, 1);</script>";
	}
	// 플래쉬 파일
	elseif (in_array($extension, $flash_ext)) {
		return "<script type='text/javascript'>mf('$path/$file', '$width', '$height', '_TO_{$obj_id}', 'transparent');</script>";
	}
}

// 탭 분류 옵션을 배열로 가져옴 (20091207 )
//
// @param $BD_CD : 게시판 코드
// @param $val : 셀렉트 값
// @return : 배열
function TO_get_tab_array($BD_CD, $val="") {
	$sql = "select BD_TP from TB_MDBD02 where BD_CD = '$BD_CD'";
	$row = db_fetch($sql);
	$tmp = explode(",", $row[BD_TP]); // 구분자로 나눔
	$arr = array();
	for ($i=0; $i<count($tmp); $i++) {
		if (trim($tmp[$i])) {
			$arr[] = $tmp[$i];
		}
	}

	return $arr;
}

// 탭 분류 옵션을 가져옴
//
// @param $BD_CD : 게시판 코드
// @param $val : 셀렉트 값
// @return : 문자열
function TO_get_tab_option($BD_CD, $val="") {
	// 탭 분류 옵션을 배열로 가져옴 (20091207 )
	$arr = TO_get_tab_array($BD_CD);
	$str = "";
	for ($i=0; $i<count($arr); $i++) {
		$selected = ($arr[$i] == $val) ? " selected" : "";
		$str .= "<option value='$arr[$i]'{$selected}>$arr[$i]</option>\n";
	}

	return $str;
}

// 게시판 최신글을 배열로 가져옴
// 여러게시판에서 최신글을 가져올 수 있도록 수정 (20100722 )
//
// @param $BD_CD : 게시판 코드
//                 여러 게시판 코드 (예 : "NOTICE,QNA")
//                 prefix(접두사)가 같은 여러 게시판 (예 : "QNA*" => QNA1,QNA2,QNA3 등등 QNA로 시작하는 모든 게시판)
// @param $rows : 가져올 갯수
// @param $title_len : 제목 자를 길이
// @param $category : 카테고리
// @param $sql_query : 검색 조건 설정
// @return : 배열
function TO_get_latest($BD_CD, $rows=5, $title_len=30, $category="", $sql_query="") {
	// 여러게시판에서 최신글을 가져올 수 있도록 수정 (20100722 )

	$arr = array();
	if (strpos($BD_CD, "*") !== false) {
		$sql = "SELECT BD_CD FROM TB_MDBD02 WHERE BD_CD LIKE '" . str_replace("*", "%", $BD_CD) . "'";
		$rs = db_query($sql);
		while ($row = db_fetch_array($rs)) {
			$arr[] = $row[BD_CD];
		}
	}
	else {
		$arr = @explode(",", $BD_CD);
	}

	$list = array();

	// 검색 설정
	$sql_where = "";
	if ($category) $sql_where .= " where MSORT_03 = '$category' "; // 카테고리 검색 (20101222 )
	if ($sql_query) $sql_where .= (($sql_where) ? " and " : " where ") . $sql_query;

	// 게시판 설정 가져옴
	$TO_BD = array();
	for ($i=0; $i<count($arr); $i++) {
		$CD = trim($arr[$i]);
		$TO_BD[$CD] = TO_get_board_setup($CD);
	}

	// 게시물 쿼리 변경 (20100722 )
	$sql_arr = array();
	for ($i=0; $i<count($arr); $i++) {
		$CD = trim($arr[$i]);
		$table = $TO_BD[$CD][TABLE]; // 게시판 테이블명

		// 답변수 쿼리 추가 (20100722 )
		$sql_arr[] = " select a.*
		               , '$CD' AS MCD
		               , (select count(*) from {$table} where MREF = a.MREF and MSTEP > a.MSTEP) as MREPLY
		               from {$table} a {$sql_where} ";
	}
	$sql = @implode("\n UNION ALL \n", $sql_arr);
	if (count($arr) > 1) { // 여러 게시판일 경우 날짜로 정렬
		$sql.= "\n order by INSDT DESC limit 0, $rows ";
	}
	else { // 한개 게시판일 경우 기본 정렬
		if ($TO_BD[$BD_CD][BD_OD] == "Y") { // 순서조정 기능 게시판일 경우 (20101101 )
			$sql_order = " OrderNum, ";
		}
		$sql.= "\n order by {$sql_order} MRef DESC, MStep ASC, MSEQ DESC limit 0, $rows ";
	}

	//echo $sql; exit;
	$rs = db_query($sql);
	for ($i=0; $row = db_fetch_array($rs); $i++) {
		// 게시물 데이터를 일괄 정리후 배열로 저장
		$list[$i] = TO_get_board($row, $TO_BD[$row[MCD]], $title_len);

		// 최신글 링크는 기본링크로 변경 (20091209 )
		$list[$i][href] = $list[$i][s_href];
	}

	return $list;
}


// 게시판그룹
//
function board_group_list($GRP_CD='',$GRP_CD_NOT=""){
	
	$sql_where = " where 1 ";

	if ($GRP_CD) $sql_where .= " and GRP_CD='{$GRP_CD}' ";
	if ($GRP_CD_NOT) $sql_where .= " and GRP_CD <> '{$GRP_CD_NOT}' ";

	$sql ="SELECT \n";
	$sql.="	p1.*  \n";
	$sql.="	,(select count(p2.BD_CD) from TB_MDBD02 p2 where p2.GRP_CD=p1.GRP_CD) as 'BDCNT' \n";
	$sql.="FROM TB_MDBD01 p1 {$sql_where} order by OrderNum,GRP_CD asc \n";

//	print_r($sql);
	
	$rs = db_query($sql);
	
	$data = array();
	
	$i=0;
	while($rows = db_fetch_array($rs)){  
		$data[$i] = $rows;
		$i++;
	}

	return $data;
}
/**
 * @author taeyoung
 * 업무요청 리스트
 * 2022-07-28
 */
function getWorkRequestList($sql_where="",$sql_order="",$olds='',$line=10){
	$sql = "SELECT * FROM TB_WORK_REQUEST ";
	if($sql_where) $sql .=" $sql_where ";
	if($sql_order) $sql .= " order by ".$sql_order;
	if($olds!=='') $sql .= " limit $olds , $line ";

	$rs = db_query($sql);

	$returnData = array();
	while($row = db_fetch_array($rs)){
		array_push($returnData, $row);
	}
	return $returnData;
}
/**
 * @author taeyoung
 * 업무요청 업무구분
 */
function getWorkTypeList(){
	$workType = array(
		'design' => '디자인',
		'development' => '개발',
		'marketing' => '마케팅',
		'makingProduct' => '상품개발',
		'cs' => '고객응대',
		'calculate' => '정산',
		'etc' => '기타업무',
	);
	return $workType;
}

/**
 * @author taeyoung
 * 업무요청 처리구분
*/
function getProcessTypeList(){
	$processType = array(
		'' => '없음',
		'emergency' => '긴급',
		'today' => '당일처리',
		'notice' => '공지',
		'ceoCommand' => '대표지시',
		'coWorking' => '협업',
	);
	return $processType;
}





/**
 * @author taeyoung
 * @date 2022-08-01
 * @param $seq
 * @return array
 */
function getCowokerRequestWorkList($seq){

	$sql = "SELECT performer FROM TB_WORK_REQUEST WHERE PARENT_SEQ = {$seq} GROUP BY performer";
	$rs = db_query($sql);
	$returnData = array();
	while($row = db_fetch_array($rs)){
		array_push($returnData, $row['performer']);
	}

	return $returnData;

}

//업무 협조 데이터
function getSubWorkRequestData($SEQ){

	$sql = "SELECT * FROM TB_WORK_REQUEST WHERE PARENT_SEQ = {$SEQ}";
	$rs = db_query($sql);

	$returnData = array();
	while($row = db_fetch_array($rs)){
		array_push($returnData, $row);
	}

	return $returnData;
}

function getWorkRequestData($SEQ){
	$sql = "SELECT * FROM TB_WORK_REQUEST WHERE SEQ = {$SEQ}";
	$rs = db_query($sql);

	$returnData = array();
	while($row = db_fetch_array($rs)){
		array_push($returnData, $row);
	}

	return $returnData;
}
// 임직원 > 인트라넷 글 목록
function board_intra_list($sql_where="",$sql_order="",$olds='',$line=10){

	// 파일아이콘
	$intra_icon = array(
		'FILE' => "<img src='/admin/image/cal_file_icon.gif' width='25'>",
		'HOT' => "<img src='/admin/image/hot_icon.gif'>",
		'NEW' => "<img src='/admin/image/new_icon.gif'>",
		'DEPOSIT' => "<img src='/admin/image/deposit_icon.gif'>",
		'NODEPOSIT' => "<img src='/admin/image/nodeposit_icon.gif'>",
	);

	$sql="SELECT *,(select count(*) from TB_INTRA_DATA_COMT where TB_INTRA_DATA.MSEQ=MSEQ)COMT_CNT ";
	$sql.=" FROM TB_INTRA_DATA WHERE 1=1 ";
	if($sql_where) $sql .=" $sql_where ";
	if($sql_order) $sql .= " order by ".$sql_order;
	if($olds!=='') $sql .= " limit $olds , $line ";

	$data = array();

	$rs = db_query($sql);

	$i = 0;
	while($row = db_fetch_array($rs)){
		$data[$i] = $row;

		// 분류
		$data[$i]['CATE_NM'] = get_intra_cate($row['MCATE']);
		
		// 부서명 ( 또는 부서아이콘 )
		$member = member_fetch(sprintf(" and mb_level <= 20 and mb_id = '%s' ", $row[MEM_ID]),"emp_rank_cd, emp_incid_dt, mb_nm, emp_brench_cd, emp_depart_cd desc ");
		if($member[0]['emp_depart_img']){
			$data[$i]['DEPT_NM'] = "<img src='".$member[0]['emp_depart_img']."'>";
		} else {
			$data[$i]['DEPT_NM'] = $member[0]['emp_depart_nm'];
		}

		$member_biz = member_fetch(sprintf(" and mb_id = '%s' ", $row[AGENT_ID]));
		$data[$i]['CORP_NM'] = $member_biz[0]['bz_corp_nm'];

		// 상태
		$data[$i]['STATUS'] = get_intra_status($row, 'button');

		// NEW 아이콘
		$yesterday = date('Y-m-d H:i:s', strtotime("-1 day"));
		if($row['INSDT'] > $yesterday){
			$data[$i]['NEW_IMG'] = $intra_icon['NEW'];
		}

		// HOT 아이콘
		if($row['HOT_YN'] == 'Y'){
			$data[$i]['HOT_IMG'] = $intra_icon['HOT'];
		}

		// 입금 아이콘
		if($row['DEPOSIT_YN'] == 'Y'){
			$data[$i]['DEPOSIT_IMG'] = $intra_icon['DEPOSIT'];
		}

		// 미입금 아이콘
		if($row['NODEPOSIT_YN'] == 'Y'){
			$data[$i]['NODEPOSIT_IMG'] = $intra_icon['NODEPOSIT'];
		}

		$i++;
	}
	
	return $data;
}

// 임직원 > 인트라넷 분류 목록
function get_intra_cate($code){
	
	$cate = array(
		'LOG'	=> '업무일지',
		'MEET'	=> '미팅보고서',
		'CAL'	=> '거래처정산',
//		'IVQ'	=> '정산요청',
		'IVQ'	=> '공급처정산',
		'REF'	=> '환불내역서',
		'MEMO'	=> '중요메모',
		'DOC'	=> '대외공문',
		'NOTI'	=> '공지사항',
		'TRIP'	=> '출장보고',
		'VAC'	=> '휴가요청',
		'ROBI'	=> '계약서관리',
		'PRJ'	=> '프로젝트',
		'TAX'	=> '세무회계',

//		'IVA'	=> '정산답변',
	);

	if($code == 'ALL'){
		return $cate;
	} else if($code == 'B2B'){
		$cate = array(
//			'IVQ'	=> '정산요청',
			'IVQ'	=> '공급처정산',
//			'IVA'	=> '정산답변',
		);
		return $cate;
	} else {
		return $cate[$code];
	}

}

// 임직원 > 인트라넷 상태값
function get_intra_status($row, $type='button'){
	global $TO_MB;

	$mseq = $row['MSEQ'];
	$cate = $row['MCATE'];
	$confirm = $row['CONFIRM_YN'];


	// 상태별 버튼 문구
	$status_str['LOG'] = array('N'=>'미확인', 'Y'=>'확인완료'); // 업무일지
	$status_str['CAL'] = array('N'=>'입금요청', 'Y'=>'입금완료'); // 정산내역서
	$status_str['REF'] = array('N'=>'미입금', 'Y'=>'입금처리'); // 환불내역서
	$status_str['TRIP'] = array('N'=>'보고서제출', 'Y'=>'보고완료'); // 출장보고
	$status_str['MEET'] = array('N'=>'보고서제출', 'Y'=>'보고완료'); // 미팅보고
	$status_str['ROBI'] = array('N'=>'계약체결', 'Y'=>'계약완료'); // 품의보고


//	$status_str['ROBI'] = array('N'=>'계약완료', 'Y'=>'계약완료'); // 품의보고

	$status_str['VAC'] = array('N'=>'휴가요청', 'Y'=>'승인완료'); // 휴가보고
	$status_str['MEMO'] = array('T'=>'대외비'); // 중요메모
	$status_str['DOC'] = array('T'=>'접수&발송'); // 공문
	$status_str['PRJ'] = array('T'=>'중요업무'); // 프로젝트
	$status_str['IVQ'] = array('N'=>'입금요청', 'Y'=>'입금완료'); // 정산내역서

	if( $type == 'button' ) {
		if($status_str[$cate][$confirm]){
			if($TO_MB[mb_level] == 1){
				$return = "<span class='intra_btn_".strtolower($confirm)."' onClick=\"intra_change_status('{$mseq}');\">"._e($status_str[$cate][$confirm])."</span>";
			} else {
				$return = "<span class='intra_btn_".strtolower($confirm)."'>"._e($status_str[$cate][$confirm])."</span>";
			}
		} else if($status_str[$cate]['T']) {
			$return = "<p style='font-weight:bold; color:#B91A4D;'>[".$status_str[$cate]['T']."]</p>";
		}
	} else {
		if($status_str[$cate][$confirm]){
			$return = $status_str[$cate][$confirm];
		} else {
			$return = $status_str[$cate]['T'];
		}
	}

	return $return;
}


// 게시판
function board_info_list($GRP_CD='',$BD_CD=''){
	$sql_where = "";
	if($GRP_CD) $sql_where .= "and GRP_CD='{$GRP_CD}' ";
	if($BD_CD)  $sql_where .= "and BD_CD='{$BD_CD}' ";

	$sql="SELECT * ";
	$sql.=" ,(select cd_nm from TB_CODEC where code=TB_MDBD02.BD_SORT)BD_SORT_STR ";
	$sql.=" FROM TB_MDBD02 ";
	$sql.=" where GRP_CD<>'' {$sql_where} Order by GRP_CD,OrderNum,BD_SORT,BD_DT ";

	$rs = db_query($sql);
	
	$data = array();
	
	$i=0;
	while($rows = db_fetch_array($rs)){  
		$data[$i] = $rows;

		if($rows['DELFLAG']=="N"){
			$data[$i]['delflag2'] = "btn_check.gif";//사용
			$data[$i]['delflag_opp'] = "Y";
		}else{
			$data[$i]['delflag2'] = "btn_stop.gif";//중지
			$data[$i]['delflag_opp'] = "N";
		}

		$i++;
	}

	return $data;
}


function board_list($BD_CD,$sql_where="",$sql_order="",$olds='',$line=10){
	if(!$BD_CD) return false;

	$sql="SELECT *,
		(select count(*) from {$BD_CD}_COMT where {$BD_CD}.MSEQ=MSEQ) COMT_CNT 
	";
	$sql.=" FROM {$BD_CD} ";
	if($sql_where) $sql .=" $sql_where ";
	if($sql_order) $sql .= " order by ".$sql_order;
	//else $sql .= " order by seq desc ";
	if($olds!=='') $sql .= " limit $olds , $line ";

	$data = array();

	/*if(devCookie()){
		p($sql);
	}*/

	$rs = db_query($sql);

	$i = 0;
	while($row = db_fetch_array($rs)){
		if($row['b_uid']) {
			// 1차카테고리(2017-03-06.허종)
			$data_bc = TO_get_bc($row['b_uid'],"N");
			$row['b_name'] = $data_bc[0]['b_name'];
		}
		if($row['g_uid']) {

			if($row['b_uid']) {
				$row_tab = db_fetch("SELECT tab FROM bc WHERE b_uid='{$row['b_uid']}'");
				$row['tab'] = $row_tab['tab'];
			}

			// 상품명
			if($row['tab'] == 'L'){
				$arr = hotel_list(" and hseq='{$row['g_uid']}' ");
				$row['g_title'] = $arr[0]['hotel_nm'];
			} else {
				$arr = good_list(" and g_uid='{$row['g_uid']}' ");
				$row['g_title'] = $arr[0]['g_title'];
			}
		}
		
		$data[$i] = $row;
		
		if($row['COMT_CNT']>0){
			$data2 = board_comt_list($BD_CD,"WHERE MSEQ = '".$row['MSEQ']."' ",'INSDT');
			$data[$i]['COMT_LIST'] = $data2;	
		}
		$i++;
	}
	

	return $data;
}

function board_comt_list($BD_CD,$sql_where="",$sql_order="",$olds='',$line=10){
	if(!$BD_CD) return false;

	$sql="SELECT *,(select MTITLE from {$BD_CD} where {$BD_CD}_COMT.MSEQ=MSEQ)MTITLE ";
	$sql.=" FROM {$BD_CD}_COMT ";
	if($sql_where) $sql .=" $sql_where ";
	if($sql_order) $sql .= " order by ".$sql_order;
	//else $sql .= " order by seq desc ";
	if($olds!=='') $sql .= " limit $olds , $line ";

	$data = array();

	$rs = db_query($sql);

	$i=0;
	while($rows = db_fetch_array($rs)){  
		$data[$i] = $rows;
		$i++;
	}

	//$data = db_fetch_all($rs);

	return $data;
}


function FindTBNM($GetTB){//테이블존재여부
	if(!$GetTB) return '1';

	$sql = "SHOW TABLES LIKE '{$GetTB}'";

	$result = db_query($sql);

	$ReturnCnt = db_num($result);

	return $ReturnCnt;
}

function TBL_TOTAL($TableName,$sql_where=""){
	$sql = "select count(*) from {$TableName} {$sql_where}";
	$result = db_query($sql);
	$rs = db_fetch_row($result);
	$ReturnCnt = $rs[0];

	return $ReturnCnt;
}

///////////////////////////////////////////////////////////////////////////////

// 게시판 설정을 반환
//
// @param $BD_CD : 게시판 코드
// @param GRP_CD : 게시판 그룹(왼쪽메뉴구성)
// @return : 배열
// @참고 : /cmm/index.html 파일에 컬럼 설명 있음
function TO_get_info_setup($BD_CD="",$GRP_CD="GRP01") {

	if ($BD_CD) {
		$TO_BD = db_fetch("select *,(select GRP_NM from TB_INFO_GRP where TB_INFO_GRP.GRP_CD=TB_INFO_BD.GRP_CD limit 1 ) as GRP_NM  from TB_INFO_BD where BD_CD='{$BD_CD}' ");
		$TO_BD = TO_stripslashes($TO_BD); // stripslashes 처리
		if ($TO_BD['BD_CD']) {
				$TO_BD['TABLE'] = $BD_CD; // 게시판 테이블
				$TO_BD['TABLE_COMT'] = $BD_CD . "_COMT"; // 게시판 코멘트 테이블
		}
	}
	else {
		$sql = " select *,(select GRP_NM from TB_INFO_GRP where TB_INFO_GRP.GRP_CD=TB_INFO_BD.GRP_CD limit 1 ) as GRP_NM  from TB_INFO_BD where DELFLAG='N' and GRP_CD = '{$GRP_CD}'  order by OrderNum ";
		$rs = db_query($sql);
		$rows = db_fetch_all($rs);

		$TO_BD = $rows;

	}

	return $TO_BD;
}

// 인포 데이터를 일괄 정리후 배열로 반환
//
// @param $row : 게시물 데이터
// @param $TO_BD : 게시판 설정
// @param $title_len : 제목 자를 길이
// @return : 배열
// 게시물 데이터를 일괄 정리후 배열로 반환
function TO_get_info_board($row, $TO_BD, $title_len=50) {
	global $cf, $TO_CF, $TO_MB, $href, $page;
	global $lang; // 다국어 설정
	global $TO_ADMIN;

	$upload_logo = "/FileData/logo/";
	$upload ="/FileData/board/" . $row[BD_CD] . "/";

	// 영어 혹은 중국어 일때 경로변경 변수
	$lang_path = "";
	if ( $lang == "cn" or $lang =="eng" ) $lang_path = "/".$lang;

	// 디폴트 아이콘 설정 (관리자모드 > 설정관리 > 사이트 설정관리 에서 할 수 있음) (20100716 )
	if (!$TO_CF['shop_newiconlink'])	$TO_CF['shop_newiconlink']		= "/admin/image/board/new.gif";
	$TO_CF['shop_newiconlink_m']		= "/tmbi_images/cmm/new.png"; // 모바일용(20160913)
	
	if (!$TO_CF['shop_noticeiconlink'])	$TO_CF['shop_noticeiconlink']	= "/admin/image/board/notice.gif";
	if (!$TO_CF['shop_newsiconlink'])	$TO_CF['shop_newsiconlink']		= "/admin/image/board/icon_news.gif";
	if (!$TO_CF['shop_eventiconlink'])	$TO_CF['shop_eventiconlink']	= "/admin/image/board/icon_event.gif";
	if (!$TO_CF['shop_replyiconlink'])	   $TO_CF['shop_replyiconlink']	= "/admin/image/board/re.gif";
	$TO_CF['shop_replyiconlink_m']		= "/tmbi_images/cmm/re.png"; // 모바일용(20160913)
	
	if (!$TO_CF['shop_secreticonlink'])	{
		$TO_CF['shop_secreticonlink']	= "/admin/image/board/secret.gif";
		$TO_CF['shop_secreticonlink_m']	= "/tmbi_images/cmm/ico_lock.png";
	}
	if (!$TO_CF['shop_fileiconlink'])	$TO_CF['shop_fileiconlink']		= "/admin/image/board/bullet_disk.gif";

	// 배열전체를 복사
	$list = $row;
	unset($row);

	$list = TO_stripslashes($list); // stripslashes 처리

	// 대표이미지
	if ( $list['MIMAGE'] )  {
		$list['img_src'] = $upload.$list['MIMAGE'];
	}

	// 제목
	$list['s_title'] = get_text(strip_tags($list['MTITLE']));

	// 작성일
	$list['date'] = substr($list['INSDT'], 0, 10);
	$list['datetime'] = $list['INSDT'];
	$list['datetime2'] = conv_date($list['INSDT'], 2);
	$list['datetime3'] = str_replace("-",".",substr($list['INSDT'], 5, 5));

	// 코멘트
	$list['comment_str'] = "";
	if ($list['comment']) {
		$list['comment_str'] = "[" . $list['comment'] . "]";
		$title_len -= strlen($list['comment_str']) + 2;
	}

	// 조회수
	$list['read_cnt'] = number_format($list['READCNT']);

	// new 아이콘
	$list['icon_new'] = "";
	if (time() - strtotime($list['INSDT']) <= 3600 * (int)$TO_CF['shop_newicontime']) {
		$list['icon_new'] = "<img src='" . $TO_CF['shop_newiconlink'] . "' align='absmiddle' alt='새글' title='새글' />";
		$list['icon_new_m'] = "<img src='" . $TO_CF['shop_newiconlink_m'] . "' align='absmiddle' alt='새글모바일' title='새글모바일' />"; // 모바일용
		$title_len -= 2;
	}

	// 홈페이지
	$list['MEM_WWW_LINK'] = "";
	if ($list['MEM_WWW']) {
		$list['MEM_WWW'] = set_http($list['MEM_WWW']);
		$list['MEM_WWW_LINK'] = "<a href='" . $list['MEM_WWW'] . "' target='_blank'>" . $list['MEM_WWW'] . "</a>";
	}

	// 제목 자르기
	$list['title'] = cut_str($list['MTITLE'], $title_len, "...");
	$list['title_len'] = $title_len;

	// 간략설명
	$list['summary'] = cut_str($list['MSUMM'], $title_len, "...");

	// 이름 설정 (관리자가 쓴 글일 경우 관리자 이미지 출력)
	$list['S_MEM_NM'] = get_text(strip_tags($list['MEM_NM']));

	// 관리자아이콘 사용일 경우 (20140717 )
	if ($TO_CF['shop_admin_icon']) {
		$sql = "select mb_id as me_id from TB_MEMBER where mb_id = '" . $list['MEM_ID'] . "' and mb_level < 10";

		$row = db_fetch($sql);
		if ($row['me_id']) {
			$list['MEM_NM'] = "<img src='" .$upload_logo.$TO_CF['shop_admin_icon'] . "' align='absmiddle' style='height:18px' alt='" . $list['S_MEM_NM'] . "' title='" . $list['S_MEM_NM'] . "' />";
		}
	}

	// 작성자 설정 (20100507 )
	$list['name'] = $list['MEM_NM'];

	// 제목 링크
	$list['href'] = $lang_path."/info/?MODE=view&BD_CD=$TO_BD[BD_CD]&MSEQ=$list[MSEQ]$href&page=$page";
	$list['s_href'] = $lang_path."/info/?MODE=view&BD_CD=$TO_BD[BD_CD]&MSEQ=$list[MSEQ]$href"; // 기본 링크 저장

	// 제목 링크 MOBILE
	$list['m_href'] = $lang_path."/tmbi_info/?MODE=view&BD_CD=$TO_BD[BD_CD]&MSEQ=$list[MSEQ]$href&page=$page";
	$list['m_s_href'] = $lang_path."/tmbi_info/?MODE=view&BD_CD=$TO_BD[BD_CD]&MSEQ=$list[MSEQ]$href"; // 기본 링크 저장

	// 분류명 링크
	$list['category_name'] = $list['MSORT_03']; // 분류명
	$list['category_href'] = $lang_path."/info/?BD_CD=$TO_BD[BD_CD]&scat=" . urlencode($list['category_name']);

	// 등록 파일 가져옴
	/*
	$list['file'] = TO_get_file($TO_BD['BD_CD'], $list['MSEQ']);
	if ($list['file']['count']) {
		$list['icon_file'] = "<img src='" . $TO_CF['shop_fileiconlink'] . "' align='absmiddle' alt='첨부파일' title='첨부파일' />";
	}
	*/

	return $list;
}


function info_group_list($GRP_CD='',$GRP_CD_NOT=""){
	
	$sql_where = " where 1 ";

	if ($GRP_CD) $sql_where .= " and GRP_CD='{$GRP_CD}' ";
	if ($GRP_CD_NOT) $sql_where .= " and GRP_CD <> '{$GRP_CD_NOT}' ";

	$sql ="SELECT \n";
	$sql.="	p1.*  \n";
	$sql.="	,(select count(p2.BD_CD) from TB_INFO_BD p2 where p2.GRP_CD=p1.GRP_CD) as 'BDCNT' \n";
	$sql.="FROM TB_INFO_GRP p1 {$sql_where} order by OrderNum,GRP_CD asc \n";

	$rs = db_query($sql);
	
	$data = array();
	
	$i=0;
	while($rows = db_fetch_array($rs)){  
		$data[$i] = $rows;
		$i++;
	}

	return $data;
}

function info_board_list($GRP_CD='',$BD_CD=''){
	$sql_where = "";
	if($GRP_CD) $sql_where .= "and GRP_CD='{$GRP_CD}' ";
	if($BD_CD)  $sql_where .= "and BD_CD='{$BD_CD}' ";

	$sql="SELECT * ";
	$sql.=" ,(select cd_nm from TB_CODEC where code=TB_INFO_BD.BD_SORT)BD_SORT_STR ";
	$sql.=" FROM TB_INFO_BD ";
	$sql.=" where GRP_CD<>'' {$sql_where} Order by GRP_CD,OrderNum,BD_SORT ";

	$rs = db_query($sql);
	$data = array();
	
	$i=0;
	while($rows = db_fetch_array($rs)){  
		$data[$i] = $rows;

		if($rows['DELFLAG']=="N"){
			$data[$i]['delflag2'] = "btn_check.gif";//사용
			$data[$i]['delflag_opp'] = "Y";
		}else{
			$data[$i]['delflag2'] = "btn_stop.gif";//중지
			$data[$i]['delflag_opp'] = "N";
		}

		$i++;
	}

	return $data;
}

function info_data($BD_CD,$sql_where="",$sql_order="",$olds='',$line=10){
	if(!$BD_CD) return false;
	$sql="SELECT *,(select count(*) from TB_INFO_DATA_COMT where BD_CD='{$BD_CD}' AND TB_INFO_DATA.MSEQ=MSEQ)COMT_CNT ";
	$sql.=" FROM TB_INFO_DATA ";
	if($sql_where) $sql .=" $sql_where ";
	if($sql_order) $sql .= " order by ".$sql_order;
	if($olds!=='') $sql .= " limit $olds , $line ";

	$data = array();

	$rs = db_query($sql);

	$i = 0;
	while($row = db_fetch_array($rs)){
		if($row['b_uid']) {
			// 1차카테고리(2017-03-06.허종)
			$data_bc = TO_get_bc($row['b_uid'],"N");
			$row['b_name'] = $data_bc[0]['b_name'];
		}
		if($row['g_uid']) {
			// 상품명
			$arr = good_list(" and g_uid='{$row['g_uid']}' ");
			$row['g_title'] = $arr[0]['g_title'];
		}
		
		$data[$i] = $row;
		
		if($row['COMT_CNT']>0){
			$data2 = board_comt_list($BD_CD,"WHERE MSEQ = '".$row['MSEQ']."' ",'INSDT');
			$data[$i]['COMT_LIST'] = $data2;	
		}
		$i++;
	}
	

	return $data;
}

function info_comt_data($BD_CD,$sql_where="",$sql_order="",$olds='',$line=10){
	if(!$BD_CD) return false;

	$sql="SELECT *,(select MTITLE from {$BD_CD} where {$BD_CD}_COMT.MSEQ=MSEQ)MTITLE ";
	$sql.=" FROM {$BD_CD}_COMT ";
	if($sql_where) $sql .=" $sql_where ";
	if($sql_order) $sql .= " order by ".$sql_order;
	//else $sql .= " order by seq desc ";
	if($olds!=='') $sql .= " limit $olds , $line ";

	$data = array();

	$rs = db_query($sql);

	$i=0;
	while($rows = db_fetch_array($rs)){  
		$data[$i] = $rows;
		$i++;
	}

	//$data = db_fetch_all($rs);

	return $data;
}

// 탭 분류 옵션을 배열로 가져옴 (20091207 )
//
// @param $BD_CD : 게시판 코드
// @param $val : 셀렉트 값
// @return : 배열
function TO_get_info_tab_array($BD_CD, $val="") {
	$sql = "select BD_TP from TB_INFO_BD where BD_CD = '$BD_CD'";
	$row = db_fetch($sql);
	$tmp = explode(",", $row[BD_TP]); // 구분자로 나눔
	$arr = array();
	for ($i=0; $i<count($tmp); $i++) {
		if (trim($tmp[$i])) {
			$arr[] = $tmp[$i];
		}
	}

	return $arr;
}

// 탭 분류 옵션을 가져옴
//
// @param $BD_CD : 게시판 코드
// @param $val : 셀렉트 값
// @return : 문자열
function TO_get_info_tab_option($BD_CD, $val="") {
	// 탭 분류 옵션을 배열로 가져옴 (20091207 )
	$arr = TO_get_info_tab_array($BD_CD);
	$str = "";
	for ($i=0; $i<count($arr); $i++) {
		$selected = ($arr[$i] == $val) ? " selected" : "";
		$str .= "<option value='$arr[$i]'{$selected}>$arr[$i]</option>\n";
	}

	return $str;
}


/******************************************************************************
*
* 3. 약관정보, 코드생성, 우편번호, 로그인, 카테고리, 날짜, 환율조회, 페이징
*
******************************************************************************/

// 투어오피스 관리자인가?
//
// @param $mb : 회원정보 배열
// @return : 문자열
function TO_admin($mb) {
	if (!$mb[mb_level]) return "";
	if ($mb[mb_level] == 1) return "super"; // 전체관리자
	if ($mb[mb_level] == 2) return "admin"; // 준관리자
	return "";
}

// 문자열로 배열 원소를 결합 (implode 와 기능은 같지만 빈값은 결합하지 않음)
// 사용예 : 전화번호 합칠 많이 쓰일듯(--;), 주민번호 등등..
//
// @param $div : 결합문자
// @param $arr : 배열
// @return : 문자열
function TO_implode($div="-", $arr) {
	if (!is_array($arr)) return "";

	$tmp = array();
	for ($i=0, $cnt=count($arr); $i<$cnt; $i++) {
		if ($arr[$i]) $tmp[] = $arr[$i];
	}
	$str = @implode($div, $tmp);

	return $str;
}

// 금액을 숫자로 반환
//
// @param $price : 금액
// @return : 숫자
function TO_number($price) {
	$price = str_replace(",", "", $price);

	return $price;
}

// 약관정보 가져옴
//
// @param $code : 코드 (관리자모드 > 정보관리 > 약관관리 > 코드번호)
// @return : 배열
function TO_get_rule($rule_type="0",$ridx="",$RCD="") {
	
	global $lang , $TO_CF, $cf;

	$column_nm = "RuleText"; 

	if ( $cf['lang']=="en" or $cf['lang']=="cn" or $cf['lang']=="hk" ) $column_nm = "RuleText_".$cf['lang'];

	if ($ridx) $sql_where = " and Ridx='{$ridx}' ";
	if ($RCD) $sql_where .= " and RCD='{$RCD}' ";

	if($cf['MODE']=="admin") { 
		$sql = "select Ridx,RCD,RuleTitle, RuleText, RuleText_en, RuleText_cn, RuleText_hk ,date_format(RegDate,'%Y.%m.%d %H:%i:%s') as RegDate2,DelFlag from TB_RULE 
				where RuleType = '{$rule_type}' 
				  {$sql_where} ";
	} else {
		$sql = "select Ridx,RCD,RuleTitle,{$column_nm} as RuleText,date_format(RegDate,'%Y.%m.%d %H:%i:%s') as RegDate2,DelFlag from TB_RULE 
				where RuleType = '{$rule_type}' 
				  {$sql_where} ";
	}

	$rs = db_query($sql);

	$i=0;
	
	while($rows = db_fetch_array($rs)){
		$data[$i] = $rows;
		if($rows['DelFlag']=='N') {
			$data[$i]['DelFlag2']="btn_check.gif";
			$data[$i]['changeDelFlag'] = "Y";
		}else{
			$data[$i]['DelFlag2']="btn_stop.gif";
			$data[$i]['changeDelFlag'] = "N";
		}

		$data[$i]['RuleText2'] = str_replace("{SHOP_COMPANY}",$TO_CF['shop_company'],$data[$i]['RuleText']);

		$i++;
	}
	return $data;
}

// 우편번호 검색 리스트 가져옴
//
// @param $dong : 지역(읍/면/동)명
// @return : 배열
function TO_get_zipcode($dong) {
	$arr = array();

	if ($dong) {
		$sql = "SELECT CODE as ZIPCODE, SIDO, GUGUN, DONG, BUNJI, BUILDING, ADDRESS,
		        LEFT(CODE, 3) AS ZIP1, RIGHT(CODE, 3) AS ZIP2
				FROM zipcode
				WHERE ADDRESS LIKE '%{$dong}%';";
		$rs = db_query($sql);

		// 배열로 저장
		while ($row = db_fetch_array($rs)) {
			$row = TO_stripslashes($row); // stripslashes 처리

			$arr[] = $row;
		}
	}

	return $arr;
}

// 로그인 체크 함수
//
// @param $url : 이동 URL
// @param $login : true(로그인했을경우처리), false(로그인안했을경우처리)
// @param $msg : 이동전 알림 메세지
// @return : 없음
function TO_check_login($url="/", $login=true, $msg="") {
	global $TO_MB;

	// 처리 판단 변수
	$is_check = false;

	// 로그인 했을 경우 처리
	if ($login == true && $TO_MB[mb_id]) $is_check = true;

	// 로그인 안했을 경우 처리
	if ($login == false && !$TO_MB[mb_id]) $is_check = true;

	// 처리
	if ($is_check == true) {
		if ($msg) error_msg($msg, $url);
		else movepage($url);
	}
}

// 날짜 형태 변환함수
//
// @param $datetime : 날짜[시간]
// @param $type : 타입번호
// @return : 배열
function TO_date_type($datetime, $type="", $yoil=false) {
	global $cf;

	$str = "";
	switch($type) {
		case 1: // 2009.09.24
			$str = @date("Y.m.d", @strtotime($datetime));
			break;
		case 2: // 2009.09.24 09:15
			$str = @date("Y.m.d H:i", @strtotime($datetime));
			break;
		case 3: // 2009/09/24 09:15
			$str = @date("Y/m/d H:i", @strtotime($datetime));
			break;
		default: // 2009-09-24
			$str = @date("Y-m-d", @strtotime($datetime));
	}

	// 요일 추가일 경우
	if ($yoil == true) {
		//$yoil_array = array('일', '월', '화', '수', '목', '금', '토');

		if($cf['lang']=="ko") {
			$yoil_array = array('일', '월', '화', '수', '목', '금', '토');
		} else {
			$yoil_array = array('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT');
		}

		$yoil_num = @date("w", @strtotime($datetime)); // 'w' 숫자반환 : 0(일)~6(토)
		$str .= " (" . $yoil_array[$yoil_num] . ")";
	}

	return $str;
}

// 선택페이지일 경우 해당문자열을 출력하는 함수
//
// @param $page : 페이지명 or 게시판코드(BD_CD) (여러개일 경우 '|' 로 구분해서 입력)
// @param $str : 출력할 문자열
// @param $equal : 페이지명이 완전일치할 경우(true), 일부일치(false) (20101105 )
// @return : 없음
function TO_page_on($page, $str=" class='on'", $equal=false) {
	global $BD_CD;

	if (!$page) return;

	$page_array = @explode("|", $page);
	for ($i=0; $i<count($page_array); $i++) {
		// 게시판코드가 같을 경우 출력
		if ($BD_CD == $page_array[$i]) {
			echo $str;
			return;
		}
		else {
			if ($equal == true) { // 완전일치 (20101105 )
				$filename = basename($_SERVER[PHP_SELF]);
				if (preg_match("/^$filename$/", $page_array[$i])) {
					echo $str;
					return;
				}
			}
			else { // 일부일치
				// 페이지명이 같을 경우 출력
				if (strpos($_SERVER[PHP_SELF], $page_array[$i]) !== false) {
					echo $str;
					return;
				}
			}
		}
	}
}


//현재폴더명 일치할 경우 문자열 출력
function TO_folder_on($page, $str="class='on'", $add1="") {
	if (!$page) return;

	$dir = getcwd(); // 현재 디렉토리명을 반환하는 PHP 함수이다.
	$temp = explode("/", $dir);
	$dirname = $temp[sizeof($temp)-1];

	$page_array = @explode("|", $page);
	for ($i=0; $i<count($page_array); $i++) {
		// 페이지명이 같을 경우 출력
		if ($dirname==$page_array[$i]) {
			return $str;
		}
	}
}


//카테고리 on
//str을 리턴
function TO_cate_on($b, $m="", $s="", $str="class='on'") {
	global $b_uid, $m_uid, $s_uid;

	if (!$b) return "";
	
	if($b && $m && $c){
		if($b==$b_uid && $m==$m_uid && $s==$s_uid) return $str;
	}else if($b && $m){
		if($b==$b_uid && $m==$m_uid) return $str;
	}else if($b){
		if($b==$b_uid) return $str;
	}
	
	return "";
}

// 선택페이지일 경우 해당문자열을 출력하는 함수2 (20150414 박건호)
//
// @param $page : 페이지명 (여러개일 경우 '|' 로 구분해서 입력)
// @param $str : 출력할 문자열
// @param $equal : 페이지명이 완전일치할 경우(true), 일부일치(false) (20101105 )
// @return : 없음
// @var 변수명 (20150414)
// @value 변수값 (20150414)
// ex) TO_page_on2('/hotel/list.html','<=$b_uid_s>', '2');   =  리스트파일에서 카테고리번호가 2인것에만 class=on

function TO_page_on2($page, $para="", $value="", $str="class='on'", $equal=false){
	if (!$page) return;

	$page_array = @explode("|", $page);
	for ($i=0; $i<count($page_array); $i++) {
		// 게시판코드가 같을 경우 출력
		if ($equal == true) { // 완전일치 (20101105 )
			$filename = basename($_SERVER[PHP_SELF]);
			if (preg_match("/^$filename$/", $page_array[$i])) {
				if($para==$value){
					echo $str;
					return;
				}
			}
		}else{ // 일부일치
			// 페이지명이 같을 경우 출력
			if (strpos($_SERVER[PHP_SELF], $page_array[$i]) !== false) {
				if($para==$value){
					echo $str;
					return;
				}
			}
		}
	}
}



// 코드 생성
//
// params head : 접두어
// params @limit : 자르기
// params @disp_dt : 접두어다음에 날짜시간 표시
// params @disp_upper : 대소문자 표시
// params @rand_cut : 랜덥 출력 자르기
function auto_create_code($head="", $limit=0, $disp_dt="Y", $disp_upper="Y", $rand_cut=7)
{
	$str = "";
	$d = time();

	$random  = strtolower(md5(uniqid(microtime())));

	$cut2 = intval(rand(0,strlen($random)-$rand_cut));

	if ($disp_dt=="Y") {
		$str = $head.$d."".substr($random,$cut2,$rand_cut);
	}
	else $str = $head."".$random;

	if ($disp_upper=="Y")  $str = strtoupper($str);

	if($limit>0) $str = substr($str,0,$limit);

	return $str;
}

//2019-11-26 실무용 바우처번호 생성
//생성규칙 TK+tab(한자리)+년도(두자리)+날짜(네자리)+숫자(두자리)+알파벳(한자리) = 12자리
//오늘 첫 예약이 들어온 예약일 경우 2019년 11월 25일
//TKP19112501A
//01A는 당일 첫 바우처 번호이고 99번이 넘어갈경우 100으로 가는게 아니고 01B로
function auto_create_voucher($tab, $ins_date="")
{
	if (!$tab) return;

	//당일 여행상품 총갯수
	if(!$ins_date)	{
		$ins_date = date("Y-m-d");
	}
	$ins_date2 = date("ymd", strtotime($ins_date));

	if($tab=="L") {
		$TABLE = "TB_RES_HOTEL";
		$order_by = "seq";
	} else {
		$TABLE = "TB_RES_GOOD";
		$order_by = "res_seq";
	}

	//$sql_res = "select * from $TABLE where left(ins_dt,10)='$ins_date' and  (rsv_no IS NOT NULL && rsv_no!='') order by ins_dt desc limit 1";
	$sql_res = "select * from $TABLE where left(ins_dt,10)='$ins_date' order by $order_by desc limit 1";
	$row_res = db_fetch($sql_res);

	//가장 최근 rsv_no
	if(!$row_res['rsv_no'])	{
		$total_res = '0';
		$checktext = 'A';
	}
	else {
		$checktext = substr($row_res['rsv_no'],11,1);	//A, B,...
		$checknum = substr($row_res['rsv_no'],9,1);
		if($checknum=='0')	{
			$total_res = substr($row_res['rsv_no'],10,1);
		} else {
			$total_res = substr($row_res['rsv_no'],9,2);
		}
	}
	
	//숫자(두자리)+알파벳(한자리)
	if($total_res < 9)	{
		$vnumber = '0'.intval($total_res +1);
		$vtext = $checktext;
	}elseif($total_res >= 9 && $total_res < 99)	{
		$vnumber = intval($total_res +1);
		$vtext = $checktext;
	}elseif($total_res == 99)	{
		$vnumber = "01";
		if($checktext=='A')	$vtext = 'B';
		if($checktext=='B')	$vtext = 'C';

	}

	$rsv_no = 'TK' . $tab . $ins_date2 . $vnumber . $vtext;

	//중복체크
	$originalRsvNo = $rsv_no;
	
	$isWhileCnt = 0;

	$ipAddress = $_SERVER['REMOTE_ADDR'];

	while(true){

		$isDuplicated = false;

		$sql = "SELECT count(*) AS cnt FROM TB_RES_GOOD WHERE rsv_no = '{$rsv_no}'";
		$isDulicateCheck = db_fetch($sql);

		if($isDulicateCheck['cnt'] == 0){
			break;
		}else{
			$isDuplicated = true;
			$vnumber = (int) $vnumber;
			if($vnumber == 99){
				$vnumber = '01';
				$vTextIdx =  array_search($vtext, $abcList);
				$vTextIdx += 1;
				$vtext = $abcList[$vTextIdx];
			}else {
				$vnumber = (int) $vnumber;
				$vnumber += 1;
				if(strlen($vnumber) == 1){
					$vnumber = '0'.$vnumber;
				}
			}

			$rsv_no = 'TK' . $tab . $ins_date2 . $vnumber . $vtext;

			$sql3 = "INSERT INTO voucher_no_duplicate_check SET original_rsv_no = '{$originalRsvNo}'";
			$sql3 .= ", new_rsv_no = '{$rsv_no}'";
			$sql3 .= ", ins_ip = '{$ipAddress}'";
			$sql3 .= ", ins_dt = now()";
			db_query($sql3);

		}
		$isWhileCnt++;

		if($isWhileCnt == 50){
			$rsv_no = $rsv_no.time();
			break;
		}
	}

	return $rsv_no;
}





//바우처번호 중복체크
function isExistsCheckVoucherNo($tab, $rsvNo){

	if(!$rsvNo){
		return false;
	}
	if($tab=="L") {
		$table = "TB_RES_HOTEL";
	} else {
		$table = "TB_RES_GOOD";
	}

	$sql = "SELECT count(rsv_no) AS cnt FROM {$table} WHERE rsv_no = '{$rsvNo}'";
	$cntInfo = db_fetch($sql);
	$cnt = (int) $cntInfo['cnt'];

	if($cnt > 0){
		return true;
	}else{
		return false;
	}

}

// 배열 데이터 stripslashes 처리
//
// @param $arr : 배열
// @return : 배열
function TO_stripslashes($arr) {
	if (!is_array($arr)) return $arr;

	if (get_magic_quotes_gpc()) {
		$arr = array_map('stripslashes', $arr);
	}

	return $arr;
}


// 페이징 출력 함수
//
// @param $total_page : 총페이지수
// @param $now_page : 현재페이지
// @param $block_page : 블럭페이지수
// @param $url : URL
// @param $add : 추가 파라메터
// @return : 문자열
function TO_get_paging($total_page, $now_page, $block_page, $url, $add="") {

	$paging .= "<div class='paging mt20'>\n";

	$start_page = (int)(($now_page - 1) / $block_page) * $block_page + 1; // 시작 페이지
	$end_page = $start_page + $block_page - 1; // 끝 페이지
	if ($end_page >= $total_page) $end_page = $total_page;

	// 페이지 링크 설정
	if (strpos($url, "{PAGE}") === false) {
		$url .= "{PAGE}";
	}

	// 맨앞
	if ($now_page > 1) {
		$_url = str_replace("{PAGE}", 1, $url);
		$paging .= "<a href=\"" . $_url . "{$add}\" class='pre'><img src='/images/btn/btn_first.gif' alt='처음목록보기' /></a>\n";
	}
	else {
		$paging .= "<a nohref='#' class='pre'><img src='/images/btn/btn_first.gif' alt='처음목록보기'/></a>\n";
	}

	// 이전블럭
	if ($start_page > $block_page) {
		//$prev_page = $start_page - $block_page;
		$prev_page = $start_page - 1;
		$_url = str_replace("{PAGE}", $prev_page, $url);
		$paging .= "<a href=\"". $_url . "{$add}\" class='pre'><img src='/images/btn/btn_prev.gif' alt='앞목록보기' /></a>\n";
	}
	else {
		$paging .= "<a nohref='#' class='pre'><img src='/images/btn/btn_prev.gif' alt='앞목록보기' /></a>\n";
	}

	// 페이지
	if ($total_page >= 1) {
		for ($p=$start_page; $p<=$end_page; $p++) {
			// 페이지 번호 사이에 구분자 넣기
			if ($p != $start_page) $paging .= "";

			$_url = str_replace("{PAGE}", $p, $url);
			if ($p == $now_page) $paging .= "<strong>{$p}</strong>\n";
			else $paging .= "<a href=\"" . $_url . "{$add}\">{$p}</a>\n";
		}
	}

	// 다음블럭
	if ($total_page > $end_page) {
		$next_page = $end_page + 1;
		$_url = str_replace("{PAGE}", $next_page, $url);
		$paging .= "<a href=\"" . $_url . "{$add}\" class='next' ><img src='/images/btn/btn_next.gif' alt='뒤목록보기' /></a>\n";
	}
	else {
		$paging .= "<a nohref='#' class='next'><img src='/images/btn/btn_next.gif' alt='뒤목록보기' /></a>\n";
	}

	// 맨뒤
	if ($now_page < $total_page) {
		$_url = str_replace("{PAGE}", $total_page, $url);
		$paging .= "<a href=\"". $_url . "{$add}\" class='next'><img src='/images/btn/btn_last.gif' alt='마지막목록보기' /></a>\n";
	}
	else {
		$paging .= "<a nohref='#' class='next'><img src='/images/btn/btn_last.gif' alt='마지막목록보기' /></a>\n";
	}

	$paging .= "</div>\n";

	return $paging;
}

//2019-07-05 ajax paging
function get_paging_ajax($total_page, $now_page, $block_page, $url, $add="", $sort=1)
	{

       // if  ($('#lowrank').hasClass("fontweightbold")) {

    //    }
     //   var lowrank = document.getElementById("lowrank");
       // if (myElement.classList.contains("fontweightbold"))
       // {
       //     $sort = 4;
      //  }


			$url = preg_replace('#&amp;page=[0-9]*#', '', $url) . '&amp;page=';

			$paging .= "<div class='paging mt20'>\n";
			$start_page = (int)(($now_page - 1) / $block_page) * $block_page + 1; // 시작 페이지
			$end_page = $start_page + $block_page - 1; // 끝 페이지
            //$sort = 1;

			if ($end_page >= $total_page) $end_page = $total_page;

			// 페이지 링크 설정
			if (strpos($url, "{PAGE}") === false) {
				$url .= "{PAGE}";
			}

			// 맨앞

			if ($now_page > 1) {
				$_url = str_replace("{PAGE}", 1, $url);
				$paging .= "<a href='javascript:;' onclick='listAjax(".$sort.",1)' class='pre'><img src='/images/btn/btn_first.gif' alt='처음목록보기' /></a>\n";
			}
			else {
				$paging .= "<a nohref='#' class='pre' ><img src='/images/btn/btn_first.gif' alt='처음목록보기'/></a>\n";
			}

			// 이전블럭
			if ($start_page > $block_page) {
				//$prev_page = $start_page - $block_page;
				$prev_page = $start_page - 1;
				$_url = str_replace("{PAGE}", $prev_page, $url);
				$paging .= "<a href='javascript:;' onclick='listAjax(".$sort.",".($start_page-1).")' class='pre'><img src='/images/btn/btn_prev.gif' alt='앞목록보기' /></a>\n";
			}
			else {
				$paging .= "<a nohref='#' class='pre'><img src='/images/btn/btn_prev.gif' alt='앞목록보기' /></a>\n";
			}

			// 페이지
			if ($total_page >= 1) {
				for ($p=$start_page; $p<=$end_page; $p++) {
				// 페이지 번호 사이에 구분자 넣기
					if ($p != $start_page) $paging .= "";

						$_url = str_replace("{PAGE}", $p, $url);
						if ($p == $now_page) $paging .= "<strong>{$p}</strong>\n";
						else $paging .= "<a 22 href='javascript:;' class='pager' onclick='listAjax(".$sort.",".$p.")' >{$p}</a>\n";
					}
			}

			// 다음블럭
			if ($total_page > $end_page) {
				$next_page = $end_page + 1;
				$_url = str_replace("{PAGE}", $next_page, $url);
				$paging .= "<a href='javascript:;'  onclick='listAjax(".$sort.",".($end_page-1).")' class='next' ><img src='/images/btn/btn_next.gif' alt='뒤목록보기' /></a>\n";
			}
			else {
				$paging .= "<a nohref='#' class='next'><img src='/images/btn/btn_next.gif' alt='뒤목록보기' /></a>\n";
			}

			// 맨뒤
			if ($now_page < $total_page) {
				$_url = str_replace("{PAGE}", $total_page, $url);
				$paging .= "<a href='javascript:;' onclick='listAjax(".$sort.",".$total_page.")' class='next'><img src='/images/btn/btn_last.gif' alt='마지막목록보기' /></a>\n";
			}
			else {
				$paging .= "<a nohref='#' class='next'><img src='/images/btn/btn_last.gif' alt='마지막목록보기' /></a>\n";
			}

			$paging .= "</div>\n";

			return $paging;
		}




// 페이징 출력 함수[모바일용]
//
// @param $total_page : 총페이지수
// @param $now_page : 현재페이지
// @param $block_page : 블럭페이지수
// @param $url : URL
// @param $add : 추가 파라메터
// @return : 문자열
function TO_get_paging_m($total_page, $now_page, $block_page, $url, $add="") {

	$paging .= "<div class='paging mt20'>\n";

	$start_page = (int)(($now_page - 1) / $block_page) * $block_page + 1; // 시작 페이지
	$end_page = $start_page + $block_page - 1; // 끝 페이지
	if ($end_page >= $total_page) $end_page = $total_page;

	// 페이지 링크 설정
	if (strpos($url, "{PAGE}") === false) {
		$url .= "{PAGE}";
	}

	// 맨앞
/*	if ($now_page > 1) {
		$_url = str_replace("{PAGE}", 1, $url);
		$paging .= "<a href=\"" . $_url . "{$add}\" class='pre'><img src='/images/btn/btn_first.gif' alt='처음목록보기' /></a>\n";
	}
	else {
		$paging .= "<a nohref='#' class='pre'><img src='/images/btn/btn_first.gif' alt='처음목록보기'/></a>\n";
	}*/

	// 이전블럭
	if ($start_page > $block_page) {
		//$prev_page = $start_page - $block_page;
		$prev_page = $start_page - 1;
		$_url = str_replace("{PAGE}", $prev_page, $url);
		$paging .= "<a href=\"". $_url . "{$add}\" class='pre'><img src='/tmbi_images/cmm/btn_prev.png' alt='앞목록보기' /></a>\n";
	}
	else {
		$paging .= "<a nohref='#' class='pre'><img src='/tmbi_images/cmm/btn_prev.png' alt='앞목록보기' /></a>\n";
	}

	// 페이지
	if ($total_page >= 1) {
		for ($p=$start_page; $p<=$end_page; $p++) {
			// 페이지 번호 사이에 구분자 넣기
			if ($p != $start_page) $paging .= "";

			$_url = str_replace("{PAGE}", $p, $url);
			if ($p == $now_page) $paging .= "<strong>{$p}</strong>\n";
			else $paging .= "<a href=\"" . $_url . "{$add}\">{$p}</a>\n";
		}
	}

	// 다음블럭
	if ($total_page > $end_page) {
		$next_page = $end_page + 1;
		$_url = str_replace("{PAGE}", $next_page, $url);
		$paging .= "<a href=\"" . $_url . "{$add}\"><img src='/tmbi_images/cmm/btn_next.png' alt='뒤목록보기' class='next' /></a>\n";
	}
	else {
		$paging .= "<a nohref='#' class='next'><img src='/tmbi_images/cmm/btn_next.png' alt='뒤목록보기' /></a>\n";
	}

	// 맨뒤
	/*if ($now_page < $total_page) {
		$_url = str_replace("{PAGE}", $total_page, $url);
		$paging .= "<a href=\"". $_url . "{$add}\" class='next'><img src='/images/btn/btn_last.gif' alt='마지막목록보기' /></a>\n";
	}
	else {
		$paging .= "<a nohref='#' class='next'><img src='/images/btn/btn_last.gif' alt='마지막목록보기' /></a>\n";
	}*/

	$paging .= "</div>\n";

	return $paging;
}

/******************************************************************************
*
* 4. 고객현황, 방문카운트, 회원, 근태, 관리자페이징, 관리자 접근권한, 배너관리
*
******************************************************************************/

// 회원 테이블 조회
//
// @mb_level : 호텔관리자(11),대리점(12),거래처(13),총관리자(1),부관리자(2),예약관리자(3)
//
function member_fetch($sql_where="",$sql_order="",$olds=0,$line=0)
{
	global $cf,$TO_MB;

	$sql = "
					 select * ,RPAD(LEFT(mb_pwd,3),7,'*') as mb_pwd2 , 
								date_format(last_login_dt,'%Y.%m.%d') as last_login_dt2 ,   
								date_format(last_login_dt,'%Y.%m.%d %H:%i:%s') as last_login_dt3 ,
								date_format(ins_dt,'%Y.%m.%d') as ins_dt2, date_format(ins_dt,'%Y.%m.%d %H:%i:%s') as ins_dt3,
								date_format(ins_dt,'%Y-%m-%d') as ins_dt_new,
								(select cd_nm from TB_CODEC where TB_MEMBER.mb_nat_cd=TB_CODEC.code limit 1 ) as mb_nat_cd2, 
								(select cd_nm from TB_CODEC where TB_MEMBER.bz_cd=TB_CODEC.code limit 1 ) as bz_cd2,
								(select count(seq) from TB_RES_HOTEL where res_cust_id=mb_id) as resv_cnt /*예약건수*/,
								IF(mb_email_yn='Y','N','Y') as mb_email_yn_opp,IF(mb_email_yn='Y','btn_check.gif','btn_stop.gif') as mb_email_yn2,
								IF(mb_sms_yn='Y','N','Y') as mb_sms_yn_opp,IF(mb_sms_yn='Y','btn_check.gif','btn_stop.gif') as mb_sms_yn2, 
								IF(mb_gend='M','남','여') as mb_gend2,
								(case mb_level when 11 then '호텔회원' when 12 then '대리점회원' when 21 then '일반회원' end ) as mb_level_str  
					 from TB_MEMBER   
					 where 0=0 
	";

	if($sql_where) $sql .= " ".$sql_where ;
	if($sql_order) $sql .= " order by ".$sql_order;
	else $sql .= " order by seq desc ";
	if($olds>=0 and $line>0) $sql .= " limit $olds , $line";

	$data = array();

	$rs = db_query($sql);

	for ($i=0 ; $row = db_fetch_array($rs) ; $i++ ){
		
		// 사원 퇴사
		$row['emp_ret_str'] = "";
		if($row['del_flag']=="Y" and $row['mb_level'] < $cf['toadmin_level'] ) {
			$row['emp_ret_str'] = "퇴사";
		}

		// 본지점
		$row['emp_brench_nm'] = "";
		if ($row['emp_brench_cd']) {
			$arr = base_codec("CRP","BRCH",$row['emp_brench_cd']);
			$row['emp_brench_nm'] = $arr[0]['cd_nm'];
		}

		// 부서
		$row['emp_depart_nm'] = "";
		if ($row['emp_depart_cd']) {
			$arr = base_codec("CRP","DEPT",$row['emp_depart_cd']);
			$row['emp_depart_nm'] = $arr[0]['cd_nm'];
			$row['emp_depart_img'] = $arr[0]['cd_img'];
		}

		// 이름 + 직급
		$row['emp_rank_nm'] = "";
		$row['emp_mb_nm'] = "";
		if ($row['emp_rank_cd']) {
			$arr = base_codec("CRP","RANK",$row['emp_rank_cd']);
			$row['emp_rank_nm'] = $arr[0]['cd_nm'];
		}
		$row['emp_mb_nm'] = $row['mb_nm'] . " " . $row['emp_rank_nm'];

		// 대리점
		if($row['mb_level']==12) {
			$row['bz_agent_comm_price'] = 0;
			$row['bz_agent_comm_percent'] = 0;
			switch($row['bz_agent_comm_type']) {
				case "A": // 정액제
						$row['bz_agent_comm_price'] = $row['bz_agent_comm'];
						$row['bz_agent_comm2'] = number_format($row['bz_agent_comm']);
						$row['bz_agent_comm_unit'] = "원";
					break;
				case "B": // 정율제
						$row['bz_agent_comm_percent'] = $row['bz_agent_comm'];
						$row['bz_agent_comm2'] = $row['bz_agent_comm'];
						$row['bz_agent_comm_unit'] = "%";
					break;
			}
		}

		// 입력일
		$row['last_login_dt2'] = str_replace("-","/",substr($row['last_login_dt'],5));

		$data[] = $row;
	}

	return $data;
}



// 방문수 카운트
//
function visit_count()
{
	global $TO_CF;
	
	$data = array();
	
	//============================== 전체 방문수 =============================================
	$query = "select sum(hit) as hit from nalog3_data where counter='{$TO_CF[shop_code]}'";
	$hit_temp = db_fetch($query);
	$total_hit = $hit_temp["hit"];

	//============================== 오늘 방문수 =============================================
	if($set[time_zone2]){
	if($set[time_zone1]){$time_zone=$set[time_zone2]*3600;}
	else{$time_zone=$set[time_zone2]*3600*(-1);}
	}else{
		$time_zone=0;
	}
	
	$time=time()+$time_zone;
	
	if(!$all && (!$yy || !$mm)){
		$yy=date('Y',time()+$time_zone);
		$mm=date('m',time()+$time_zone);
		$mm=ereg_replace("^0","",$mm);
		$dd=date('d',time()+$time_zone);
		$week=date('w',time()+$time_zone);
		$its_today=" [$lang[counter_main_2_this_month]]";
	}
	else{$show_this_day=1;}

	if(!$all){
		$today_info=date($lang[counter_main_2_date_format],strtotime("$yy-$mm-1",time()+$time_zone))."$its_today";
	}
	else{
		$today_info=$lang[counter_main_2_sum];
	}

	$sub="and yy='$yy' and mm='$mm' and dd='$dd'";
	if($all){
		$sub="";
	}

	$now=date('d',time()+$time_zone);
	$now_month_end=date("U",mktime(1,1,1,$mm,1,$yy));
	$to=date('t',$now_month_end);

	$query="select sum(hit) as hit from nalog3_data where counter='{$TO_CF[shop_code]}' $sub";
	$today_hit_temp=db_fetch($query);
	$today_hit = $today_hit_temp["hit"];

	//============================== 금월 방문수 =============================================
	$time=time()+$time_zone;

	if(!$all && (!$yy))
	{
	$yy=date('Y',time()+$time_zone);
	$mm=date('m',time()+$time_zone);
	$its_today=" [$lang[counter_main_4_this_year]]";
	}

	if(!$all){
		$today_info="$yy$its_today";
	}
	else{
		$today_info="$lang[counter_main_4_sum]";
	}


	$sub="and yy='$yy'";

	if($all){
		$sub="";
	}

	$now=date('m',time()+$time_zone);

	$query="select sum(hit) as hit from nalog3_data where counter='{$TO_CF[shop_code]}' $sub and mm='$mm'";
	$month_hit_temp=db_fetch($query);
	$i_hit=$month_hit_temp["hit"];
	
	$data['mm'] = $mm;
	$data['total_hit'] = $total_hit;
	$data['i_hit'] = $i_hit;
	$data['today_hit'] =  $today_hit;
	
	return $data;
}

// 고객현황 집계
//
function member_count()
{
	$data = array();

	//============================== 총고객수 ================================================
	$query4 = "select count(*) as total from TB_MEMBER Where mb_id <>'click' AND mb_level='21' ";
	$result4 = db_fetch( $query4 );
	$total4 = $result4['total'];

	//============================== 오늘 가입한 고객수 ======================================
	$today = date("Y-m-d");
	$today2 = date("Y-m");
	$query5 = "select count(*) as cnt from TB_MEMBER Where mb_id <>'click' AND mb_level='21' AND  LEFT(ins_dt,10) >= '".$today."' ";
	
	$result5 = db_fetch($query5);
	$total5 = $result5['cnt'];
	// 월별 가입고객
	$query6 = "select count(*) as cnt from TB_MEMBER WHERE mb_id <>'click' AND mb_level='21' AND  LEFT(ins_dt,7) = '".$today2."' ";
	$result6 = db_fetch($query6);
	$total6 = $result6['cnt'];

	$data['total4'] = $total4;
	$data['total5'] = $total5;
	$data['total6'] = $total6;

	return $data;
}



// 근태,연장근무,휴가월차 조회
// 
//
// params sql_table : 테이블명(TB_MEMBER_S01,TB_MEMBER_S02,TB_MEMBER_S03)
// params sql_where :
// params sql_order :
// params sql_limit :
function toad_menager_state($sql_table,$sql_where="",$sql_order="",$sql_limit="")
{
	
	$data = array();

	$sql = "select * from {$sql_table} where 1 ";
	
	if (!$sql_where and !$sql_limit ) return $data;

	$sql .= " {$sql_where} ";

	if ( $sql_order )
	{
		$sql .= " order by {$sql_order}";
	}
	else
	{
		$sql .= " order by mb_date desc,ins_dt desc ";
	}

	if ( $sql_limit )
	{
		$sql .= " limit {$sql_limit} ";
	}
	else
	{
		$sql .= " limit 20 ";
	}
	
	$rs = db_query($sql);

	for($i=0 ; $row = db_fetch_array($rs) ; $i++)
	{
		// 각테이블의 컬럼면에 맞는 작업.
		switch($sql_table)
		{
			case "TB_MEMBER_S01":
					
				// 구분
				$row['gubun2'] = "출근"; // A
				if($row['gubun']=="AA") $row['gubun2'] = "지각";
				if($row['gubun']=="B") $row['gubun2']  = "퇴근";
				if($row['gubun']=="BB") $row['gubun2'] = "조퇴";
				break;
			case "TB_MEMBER_S02":
				$tmp_arr = explode(":",$row['start_tm']);
				$row['start_tm_1'] = $tmp_arr[0];
				$row['start_tm_2'] = $tmp_arr[1];
				
				$tmp_arr = explode(":",$row['end_tm']);
				$row['end_tm_1'] = $tmp_arr[0];
				$row['end_tm_2'] = $tmp_arr[1];
				break;
			case "TB_MEMBER_S03":
				// 구분
				$row['gubun2'] = "휴가"; // A
				if($row['gubun']=="B") $row['gubun2'] = "반차";
				break;
		}
		
		// 근태,연장근무,휴가월차 입력일
		$row['mb_date2'] = str_replace("-","/",$row['mb_date']);

		// 입력일
		$row['ins_dt2'] = str_replace("-","/",$row['ins_dt']);

		// 입력자
		$arr_t = get_member($row['ins_admin']);
		$row['ins_nm'] = $arr_t['mb_nm'];

		// 수정일
		$row['edit_dt2'] = str_replace("-","/",$row['edit_dt']);

		// 수정자
		$arr_t = get_member($row['edit_admin']);
		$row['edit_nm'] = $arr_t['mb_nm'];

		$data[] = $row;
	}


	return $data;
}



// 페이징 출력 함수
//
// @param $total_page : 총페이지수
// @param $now_page : 현재페이지
// @param $block_page : 블럭페이지수
// @param $url : URL
// @param $add : 추가 파라메터
// @return : 문자열
function adm_get_paging($total_page, $now_page, $block_page, $url, $add="") {

	$paging .= "<div class='c_paging'>\n";
	$paging .= "	<ul class='c_paging_wrap'>\n";
	$paging .= "		<ul class='list_no01'>\n";

	$start_page = (int)(($now_page - 1) / $block_page) * $block_page + 1; // 시작 페이지
	$end_page = $start_page + $block_page - 1; // 끝 페이지
	if ($end_page >= $total_page) $end_page = $total_page;

	// 페이지 링크 설정
	if (strpos($url, "{PAGE}") === false) {
		$url .= "{PAGE}";
	}

	// 맨앞
	if ($now_page > 1) {
		$_url = str_replace("{PAGE}", 1, $url);
		$paging .= "<li><a href=\"" . $_url . "{$add}\"><img src='/images/btn/btn_first.gif' alt='처음목록보기' /></a></li>\n";
	}
	else {
		$paging .= "<li><img src='/images/btn/btn_first.gif' alt='처음목록보기' /></li>\n";
	}

	// 이전블럭
	if ($start_page > $block_page) {
		//$prev_page = $start_page - $block_page;
		$prev_page = $start_page - 1;
		$_url = str_replace("{PAGE}", $prev_page, $url);
		$paging .= "<li><a href=\"". $_url . "{$add}\"><img src='/images/btn/btn_prev.gif' alt='앞목록보기' /></a></li>\n";
	}
	else {
		$paging .= "<li><img src='/images/btn/btn_prev.gif' alt='앞목록보기' /></li>\n";
	}

	// 페이지
	$paging .= "<li class='list_no02'><ul>";
	if ($total_page >= 1) {
		for ($p=$start_page; $p<=$end_page; $p++) {
			// 페이지 번호 사이에 구분자 넣기
			if ($p != $start_page) $paging .= "";

			$_url = str_replace("{PAGE}", $p, $url);
			if ($p == $now_page) $paging .= "<li class='on'><span>$p</span></li>\n";
			else $paging .= "<li><a href=\"" . $_url . "{$add}\"><span>$p</span></a></li>\n";
		}
	}
	$paging .= "</ul></li>";

	// 다음블럭
	if ($total_page > $end_page) {
		$next_page = $end_page + 1;
		$_url = str_replace("{PAGE}", $next_page, $url);
		$paging .= "<li><a href=\"" . $_url . "{$add}\"><img src='/images/btn/btn_next.gif' alt='뒤목록보기' /></a></li>\n";
	}
	else {
		$paging .= "<li><img src='/images/btn/btn_next.gif' alt='뒤목록보기' /></li>\n";
	}

	// 맨뒤
	if ($now_page < $total_page) {
		$_url = str_replace("{PAGE}", $total_page, $url);
		$paging .= "<li><a href=\"". $_url . "{$add}\"><img src='/images/btn/btn_last.gif' alt='마지막목록보기' /></a></li>\n";
	}
	else {
		$paging .= "<li><img src='/images/btn/btn_last.gif' alt='마지막목록보기' /></li>\n";
	}

	$paging .= "		</ul>\n";
	$paging .= "	</ul>\n";
	$paging .= "</div>\n";

	return $paging;
}

// 관리자 접근 권한
// 
function to_access_menu($menu_id="",$smenu_id="")
{
	global $TO_CF,$TO_MB;

	$menu_arr = $TO_CF['toadmin_menu']; // 시스템에 세팅된 메뉴목록
	
	$emp_menu_arr = explode(",",$TO_MB['emp_menu']); // 사용자의 메뉴 목록

	if (!$menu_id) error_msg("접근권한이 없습니다.(사유:0000)");

	if ( $TO_MB['mb_level'] == 1  ) return true; // 최고 관리자는 모든 메뉴에 접근 가능
	else if ( $TO_MB['mb_level'] == 2 and  $menu_id != "setting" and $menu_id != "insa" and $menu_id != "guntae"  ){
		return true; // 부관리자는 모든 메뉴에 접근 가능. 단, 사이트설정에 접근 불가능
	}
	else
	{
		// 관리자(사원) 
		// 주메뉴 접근관리 
		for ($i=0 ; $i<count($emp_menu_arr) ; $i++)
		{
			$id = $emp_menu_arr[$i];
			if ( $id == $menu_id ) return true;
		}
	}
}

//20150326 박건호수정 -> 상품번호를 넣으면 상품의 정보로 대체, limit 추가
//상품번호를 넣고도 상품이미지를 변경할수 있도록.
function homepage_banner($pos="",$idx="",$disp_yn="",$limit="",$sql_where="")
{
	global $cf;

	$data = array();
	$table = "TB_HOMEPAGE_BANNER";
	$upload = "/FileData/hotel/";//이미지업로드경로
	$upload_thum = "/FileData/hotel_thum/";//썸네일 이미지업로드경로

	//$sql_where = "";
	if ($pos) $sql_where .= " and pos='{$pos}' ";
	if ($idx) $sql_where .= " and idx='{$idx}' ";
	if ($disp_yn) $sql_where .= " and disp_yn='{$disp_yn}' ";

	$sql = "select * from {$table} where 1 {$sql_where} order by pos,order_num ,idx desc ";
	if($limit) $sql.="limit ".$limit;

	$rs = db_query($sql);

	for ($i=0 ; $row = db_fetch_array($rs) ; $i++)
	{
		// 아이콘
		if($row['disp_yn']=="Y") 
		{
			$row['icon'] =  $cf['icon']['start'];
			$row['poo'] = "N";
		}
		else
		{ 
			$row['icon'] =  $cf['icon']['stop'];
			$row['opp'] = "Y";
		}

		// 이미지
		/*
		$row['img_big'] = $upload.$row['img'];
		$row['img_thum'] = $upload_thum.$row['img'];
		*/
		$img_ok = false;//등록된 이미지가 있는지 여부
		if($row['img']){
			if ( file_exists($_SERVER['DOCUMENT_ROOT'].$upload.$row['img']) ){
				$row['img_thum'] = $upload_thum.$row['img'];
				$row['img_big'] = $upload.$row['img'];
				$img_ok = true;
			}else{
				$row['img_thum'] = $cf['TO_IMG']['no_image'];
				$row['img_big'] = $cf['TO_IMG']['no_image'];
			}
		}else{
			$row['img_thum'] = $cf['TO_IMG']['no_image'];
			$row['img_big'] = $cf['TO_IMG']['no_image'];
		}

		if($row['goodidx'] && $row['goodtab']){//상품번호가 들어가있으면
			
			$tab = $row['goodtab'];
			$goodidx = $row['goodidx'];
			$gtype = "";//종류구분(상품,게시판)

			switch($tab){
				case "L": // 호텔 숙박
					$sql_where = "and hseq='{$goodidx}' ";
					$sql_order = " order_num ";
					break;
				case "P": // 패키지
				case "D": // 데이투어
					$sql_where = "and g_uid='{$goodidx}' ";
					$sql_order = " g_no ";
					break;
				case "R": // 렌트카
					$sql_where = "and carid='{$goodidx}' ";
					$sql_order = " order_num ";
					break;
				case "A": // 항공권
					$sql_where = "and ti_uid='{$goodidx}' ";
					$sql_order = " order_num ";
					break;
				case "BOARD"://게시판
					$info = base_codec("CMM","TMSS",$row['pos'],"N");
					$info = $info[0];

					$sql = "select cd_memo2 from TB_CODEC where code='".$row['pos']."' ";
					$info = db_fetch($sql);
					$BD_CD = $info['cd_memo2'];

					if($BD_CD){
						$TO_BD = TO_get_board_setup($BD_CD);
						$cmm = board_list($BD_CD,"where MSEQ='{$goodidx}' ");
						$cmm = TO_get_board($cmm[0], $TO_BD,20);

						if($cmm['MSEQ']){
							$row['link_url'] = $cmm['href'];
							$row['title']  = $cmm['MTITLE'];
							$row['cont'] = $cmm['MCONT'];

							if(!$img_ok && $cmm['file']['image']){
								$row['img_thum'] = $cmm['file']['image'];
								$row['img_big'] = $cmm['file']['image'];
							}
							$row['detail'] = $cmm;
						}
					}

					break;
			}

			if($tab!='' && $tab!='BOARD'){
				$good = tour_recomm($tab,$sql_where,$sql_order,$max_items="1", $title_len="", $content_len="");
				$good = $good[0];

				if($good){
					$row['link_url'] = $good['href'];
					$row['title']  = $good['good_nm'];
					$row['cont'] = $good['brief'];

					$row['price'] = $good['price'];//원화없이
					$row['price_low'] = $good['price_low'];//숫자
					//$row['price_str'] = ($good['price_low']=='0')?"요금문의":"₩".number_format($good['price_low'])." ~";//원화있는거
					$row['price_str'] = ($good['price_low']=='0')?_e("요금문의"):"₩".number_format($good['price_low']) ;//원화있는거

					if(!$img_ok){
						$row['img_thum'] = $good['src_thum'];
						$row['img_big'] = $good['src'];
					}
					$row['areac_cd_nm']		= $good['areac_cd_nm'];
					$row['aread_cd_nm']		= $good['aread_cd_nm'];
					$row['b_name'] = $good['b_name'];

					$row['area'] = ($good['aread_cd_nm'])?$row['areac_cd_nm']." > ".$good['aread_cd_nm']:$row['areac_cd_nm'];
				}
			}
		}

		if($row['link_url']==''){
			$row['cursor'] = "style='cursor:default;' ";
			$row['cursor_ns'] = "default";

			$row['link_url2'] = "javascript:void(0)";
		}else{
			$row['cursor'] = "style='cursor:pointer;' ";
			$row['cursor_ns'] = "pointer";
			$row['link_url2'] = $row['link_url'];
		}
			
		$data[] = $row;
	}

	return $data;
}


/******************************************************************************
*
* 5. 장바구니, 지불통합요약, 추천상품, 도움말, 담당자, 입금대기타이머, 입금대기목록, 무통장입금 정보, 
*    문자 보내기,문자/메일발송 히스토리저장/목록, 행사달력, 연령가이드
*
******************************************************************************/

// 여행상품예약,호텔예약,렌트카예약 장바구니
// 
function tour_basket($sql_where="")
{
	global $TO_MB;

	$table = "TB_MEMBER_BASKET";
	
	$data = array();

    $sql = "select * from {$table} where mb_id='{$TO_MB[mb_id]}' {$sql_where} order by ins_dt desc ";
	$rs = db_query($sql);

	/*if(devCookie()){
		p($sql);
	}*/

	for($i=0 ; $row=db_fetch_array($rs) ; $i++)
	{

		$arr_t = reserv_tab($row['tab'],$row['res_no']);
		$row['pay_yn']					= $arr_t['pay_yn'];
		$row['pre_money']				= $arr_t['pre_money']; // 미입금액
		$row['res_stat_cd']				= $arr_t['res_stat_cd']; // 예약상태
		$row['res_stat_cd_str']			= $arr_t['res_stat_cd_str'];// 예약상태
		$row['res_stat_cd_color'] 		= $arr_t['res_stat_cd_color'];// 예약상태
		$row['d_start']					= $arr_t['d_start']; // 입실일 (대여일)
		$row['price_sell_total']		= $arr_t['price_sell_total']; // 상품금액
		$row['point_yn']				= $arr_t['point_yn']; // 포인트사용YN
		$row['point_buy1']				= $arr_t['point_buy1']; // 구매액
		$row['point_buy2']				= $arr_t['point_buy2']; // 구매적립금
		$row['res_sns_id']				= $arr_t['res_sns_id']; // sns id
		$row['b2b_sns_id']				= $arr_t['b2b_sns_id']; // sns id
		$row['res_cust_nat_cd']			= $arr_t['res_cust_nat_cd']; // 국적
		$row['res_cust_hp']				= $arr_t['res_cust_hp']; // 휴대폰
		$row['res_cust_nm']				= $arr_t['res_cust_nm']; // 이름
		$row['res_cust_email']			= $arr_t['res_cust_email']; // 메일
		//2019-10-18 외화표시
		$row['pre_money_fr']			= $arr_t['pre_money_fr']; // 미입금액
		$row['price_sell_total_fr']		= $arr_t['price_sell_total_fr']; // 상품금액

		$row['rsv_no']					= $arr_t['rsv_no']; // 실무용바우처번호
		$row['producer_id']				= $arr_t['producer_id']; // 공급처 ID

		$row['g_uid']					= $arr_t['g_uid']; // 상품코드
		$row['ins_dt']					= $arr_t['ins_dt']; // 상품주문시간

		// 예약 타입 문구변환 20200416
		switch($arr_t['tab']){
			case 'T':
				$row['tab_nm'] = _e("티켓패스");
				break;
			case 'D';
				$row['tab_nm'] = _e("당일투어");
				break;
			case 'P';
				$row['tab_nm'] = _e("패키지투어");
				break;
			case 'L';
				$row['tab_nm'] = _e("호텔");
				break;
			case 'R';
				$row['tab_nm'] = _e("렌터카");
				break;
			case 'A';
				$row['tab_nm'] = _e("항공권");
				break;
		}

		$data[] = $row;

	}

	return $data;
}


//상품명 가져오기

function getGoodsName($resNo)
{
	global $TO_MB;

	if(!$resNo){

	}

	$table = "TB_RES_GOOD";

	$sql = "SELECT g_title FROM {$table} WHERE res_no = '{$resNo}' LIMIT 1";
	$rs = db_query($sql);

	$row = db_fetch_array($rs);

//	if(devCookie()){
//		p($row);
//	}

	return $row['g_title'];
}




// 여행상품별 예약,지불 통합요약 정보
//
function reserv_tab($tab,$res_no="")
{
		$data = array();

		if (!$tab and !$res_no) return $data;

		// 마이페이지 > 예약목록
		if ($tab)
		{
			switch($tab)
			{
				case "L": // 호텔 숙박
					$data['res_list'] = "/mypage/hotel_res.html"; // 예약목록(사용자)
					break;
				case "P": // 패키지
					$data['res_list'] = "/mypage/good_res.html"; // 예약목록(사용자)
					break;
				case "T": // 패스/티켓
				case "V": // 라이브투어
					$data['res_list'] = "/mypage/ticket_res.html"; // 예약목록(사용자)
					break;					
				case "D": // 데이투어
					$data['res_list'] = "/mypage/daytour_res.html"; // 예약목록(사용자)
					break;
				case "R": // 렌트카
					$data['res_list'] = "/mypage/rentcar_res.html"; // 예약목록(사용자)
					break;
				case "A": // 항공권
					$data['res_list'] = "/mypage/air_res.html"; // 예약목록(사용자)
					break;
			}
		}

		if( !$res_no ) return $data;
			
		switch($tab)
		{
			case "L": // 호텔 숙박
							$class_HotelReserv = new HotelReserv();
								
							$arr_t = $class_HotelReserv->res_hotel_master(" and res_no='{$res_no}' ");
							$arr = $class_HotelReserv->res_hotel_master_replace($arr_t[0]);

							$data['pay_yn']				= $arr['pay_yn'];
							$data['pre_money']			= $arr['account']['pre_money'];
							$data['res_stat_cd']			= $arr['res_stat_cd']; // 예약상태
							$data['res_stat_cd_str']	= $arr['res_stat_str'];// 예약상태
							$data['res_stat_cd_color']	= $arr['res_stat_color'];// 예약상태
							$data['d_start']				= $arr['room_date']; // 입실일
							$data['price_sell_total']		= $arr['price_sell_total']; // 상품금액
							$data['tab_nm']				= "호텔/숙박";
							$data['res_good_nm']		= $arr['hnm']."(".$arr['rnm'].")"; // 상품명
							$data['res_page']				= "../res_hotel/hotel_res_edit.html?res_no={$res_no}"; // 예약조회 페이지
							$data['res_view']				= "../mypage/hotel_res_view.html?res_no={$res_no}"; // 예약조회 페이지(사용자)
							$data['res_cust_nm']		= $arr['res_cust_nm'];
							$data['res_cust_email']		= $arr['res_cust_email'];
							$data['res_cust_hp']			= $arr['res_cust_hp'];
							$data['point_yn']				= $arr['point_yn']; // 포인트사용YN
							$data['point_buy1']			= $arr['point_buy1']; // 구매액
							$data['point_buy2']			= $arr['point_buy2']; // 구매적립금	
							$data['res_sns_id']				= $arr['res_sns_id']; // sns id
							$data['b2b_sns_id']				= $arr['b2b_sns_id']; // sns id
							$data['res_cust_nat_cd']				= $arr['res_cust_nat_cd']; // 국적
							//2019-10-18 외화
							$data['pre_money_fr']			= $arr['sales_total_fr'];
							$data['price_sell_total_fr']		= $arr['price_sell_total_fr']; // 상품금액

							if($arr['rsv_no'])			$data['rsv_no']	= $arr['rsv_no'];	//실무용바우처번호						
							else						$data['rsv_no']	= $arr['res_no'];	//실무용바우처번호

							$data['hseq']			= $arr['hseq']; // 호텔번호
							$data['producer_id']			= $arr['producer_id']; // 공급처ID
							
				break;
			case "P":
			case "D":
			case "T":
			case "V": // 데이투어(현지투어) & 패키지 & 티켓(패스)
							$arr_t = res_good_master(" and res_no='{$res_no}' ");
							$arr = res_good_master_replace($arr_t[0]);

							$data['pay_yn']					= $arr['pay_yn'];
							$data['pre_money']				= $arr['account']['pre_money'];
							$data['res_stat_cd']				= $arr['res_stat_cd']; // 예약상태
							$data['res_stat_cd_str']		= $arr['res_stat_str'];// 예약상태
							$data['res_stat_cd_color']		= $arr['res_stat_color'];// 예약상태
							$data['d_start']					= $arr['ev_start']; // 입실일(행사일)
							$data['price_sell_total']			= $arr['sales_total']; // 상품금액
							$data['tab_nm']					= ($tab=="D") ? "Day Tour" : "Package Tour";
							$data['res_good_nm']			= $arr['ev_title']; // 상품명
							$data['res_page']					= "../res_good/good_res_edit.html?res_no={$res_no}";// 예약조회 페이지
							$data['res_view']					= ($tab=="D") ? "../mypage/daytour_view.html?res_no={$res_no}":"../mypage/good_view.html?res_no={$res_no}";//  예약조회 페이지(사용자)
							$data['res_cust_nm']			= $arr['res_cust_nm'];
							$data['res_cust_email']			= $arr['res_cust_email'];
							$data['res_cust_hp']			= $arr['res_cust_hp'];
							$data['point_yn']					= $arr['date']['point_yn']; // 포인트사용YN
							$data['point_buy1']				= $arr['date']['point_buy1']; // 구매액
							$data['point_buy2']				= $arr['date']['point_buy2']; // 구매적립금
							$data['res_sns_id']				= $arr['res_sns_id']; // sns id
							$data['b2b_sns_id']				= $arr['b2b_sns_id']; // sns id
							$data['res_cust_nat_cd']				= $arr['res_cust_nat_cd']; // 국적
							//2019-10-18
							$data['pre_money_fr']			= $arr['account']['pre_money_fr'];	//외화
							$data['price_sell_total_fr']			= $arr['sales_total_fr']; // 상품금액 외화

							if($arr['rsv_no'])			$data['rsv_no']	= $arr['rsv_no'];	//실무용바우처번호						
							else						$data['rsv_no']	= $arr['res_no'];	//실무용바우처번호

							$data['g_uid']			= $arr['g_uid']; // 상품번호
							$data['producer_id']			= $arr['producer_id']; // 공급처ID

							$data['adult_inwon']			= $arr['adult_inwon']; // 성인인원
							$data['child_inwon']			= $arr['child_inwon']; // 소인인원

				break;
			case "R": // 렌트카
							$arr_t = res_rentcar_master(" and res_no='{$res_no}' ");
							$arr = $arr_t[0];

							$data['pay_yn']							= $arr['pay_yn'];
							$data['pre_money']					= $arr['account']['pre_money'];
							$data['res_stat_cd']				= $arr['res_stat_cd']; // 예약상태
							$data['res_stat_cd_str']		= $arr['res_stat_str'];// 예약상태
							$data['res_stat_cd_color']	= $arr['res_stat_color'];// 예약상태
							$data['d_start']						= $arr['rental_dt']; // 입실일 (대여일)
							$data['price_sell_total']		= $arr['sales_total']; // 상품금액
							$data['tab_nm']							= "렌트카";
							$data['res_good_nm']				= $arr['car_nm']; // 상품명
							$data['res_page']						= "../res_rentcar/rentcar_res_edit.html?res_no={$res_no}";// 예약조회 페이지
							$data['res_view']						= "../mypage/rentcar_view.html?res_no={$res_no}";// 예약조회 페이지(사용자)
							$data['res_cust_nm']				= $arr['res_cust_nm'];
							$data['res_cust_email']			= $arr['res_cust_email'];
							$data['res_cust_hp']			= $arr['res_cust_hp'];

							$data['producer_id']			= $arr['producer_id']; // 공급처ID
				break;
			case "A": // 항공권
							$arr_t = res_air_master(" and res_no='{$res_no}' ");
							$arr = $arr_t[0];

							$tab_arr = TO_good_module("all","A");
							$tab_nm  = $tab_arr['name'];

							$data['pay_yn']							= $arr['pay_yn'];
							$data['pre_money']					= $arr['account']['pre_money'];
							$data['res_stat_cd']				= $arr['res_stat_cd']; // 예약상태
							$data['res_stat_cd_str']		= $arr['res_stat_str'];// 예약상태
							$data['res_stat_cd_color']	= $arr['res_stat_color'];// 예약상태
							$data['d_start']						= $arr['rental_dt']; // 입실일 (대여일)
							$data['price_sell_total']		= $arr['sales_total']; // 상품금액
							$data['tab_nm']							= $tab_nm;
							$data['res_good_nm']				= $arr['s_bidx_nm']."→".$arr['bidx_nm']."(".$arr['air_nm']." ".$arr['plane_nm'].")"; // 상품명
							$data['res_page']						= "../res_air/air_res_edit.html?res_no={$res_no}";// 예약조회 페이지(관리자)
							$data['res_view']						= "../mypage/air_view.html?res_no={$res_no}";// 예약조회 페이지(사용자)
							$data['res_cust_nm']				= $arr['res_cust_nm'];
							$data['res_cust_email']			= $arr['res_cust_email'];
							$data['res_cust_hp']			= $arr['res_cust_hp'];

							$data['producer_id']			= $arr['producer_id']; // 공급처ID
				break;

		}
		$data['tab'] = $tab;
		$data['res_no'] = $res_no;

		return $data;
}


function tour_recomm_anyway($fieldName){

	$sql = "SELECT * FROM good WHERE {$fieldName} = 1 ORDER BY g_no ASC";
//	$sql = "SELECT * FROM good WHERE {$fieldName} = 1 ";
	$rs = db_query($sql);

	$returnData = array();
	for($i=0 ; $row = db_fetch_array($rs) ; $i++){
		array_push($returnData, $row);
	}

	return $returnData;
}

// 추천상품 ,메인추천, 메인Best
// 
// params @tab : to_good.lib.php > TO_good_module 참조
// @sql_where : 조건
// @sql_order : 순서지정
// @max_items : 최대개수
function tour_recomm($tab="PD",$sql_where="",$sql_order="",$max_items="4")
{
	global $cf;

	$data = array();

	if (!$tab or !$sql_where) return $data;

	switch($tab)
	{
		case "L": // 호텔
			
				// 사용하는 카테고리만 반영(20161216)
				$sql_where .= " and b_uid in (select b_uid from bc where DelFlag='N' and b_lang='{$cf[lang]}'  and tab in('L') )";
				
				$data_arr = hotel_list($sql_where,$sql_order,0,$max_items);
				for($i=0 ; $i<$max_items ; $i++)
				{
					$row = $data_arr[$i];
					$r = hotel_list_replace($row); 
					$arr = array();

					$arr['href']				= "#";
					$arr['good_nm']				= "";
					$arr['brief']				= "";
					$arr['price']				= "";
					$arr['src_thum']			= $cf['TO_IMG']['no_image_s'];
					
					if($row['hseq'])
					{

						// 공통항목으로 매핑
						$arr['href']				= "../hotel/hotel_view.html?b_uid_s={$row[b_uid]}&m_uid_s={$row[m_uid]}&s_uid_s={$row[s_uid]}&hseq={$row[hseq]}";
						$arr['good_nm']				= $row['hotel_nm'];
						$arr['good_nm_short']		= mb_substr($row['hotel_nm'],$cf['main_recom']['title']);
						$arr['brief']				= $row['hotel_brief'];
						$arr['brief_short']			= mb_substr($row['hotel_brief'],$cf['main_recom']['brief']);
						$arr['price']				= ($row['price_low']) ? _eunit($row['price_low']):_e("요금문의");
						$arr['price2']				= ($row['price_sell']) ? _eunit($row['price_sell']):_e("요금문의");
						$arr['src_thum']			= $row['img1_thum'];
						$arr['src']					= $row['img1_path'];
						$arr['area_nm']				= $r['area_nm'];
						$arr['areaa_cd_nm']			= $r['areaa_cd_nm'];
						$arr['areab_cd_nm']			= $r['areab_cd_nm'];
						$arr['areac_cd_nm']			= $r['areac_cd_nm'];
						$arr['b_uid_nm']			= $r['b_name'];
						$arr['special_nm']			= $r['special_nm'];
						$arr['level_cd_img']		= $r['level_cd_img'];
						$arr['level_cd_nm']			= $r['level_cd_nm'];
						$arr['g_select_num']		= $r['g_select_num'];
						$arr['min_price_sell']		= $row['price_ori'];
						$arr['review_total']		= $row['review_total'];	//후기카운트
						$arr['star_avg']			= $row['star_avg'];	//별점 평균
						$arr['special_icon']		= $row['special_icon'];	//상품특징 아이콘

						$arr['NationName']			= $r['areab_cd_nm'];
						$arr['CityName']			= $r['areac_cd_nm'];
						$arr['order_num']			= $row['order_num'];
						$arr['purchase_cnt']			= $row['purchase_cnt'];
					}
					$data[] = $arr;
				}
			break;
		case ($tab=="D" or $tab=="P"or $tab=="T" or $tab=="V" or $tab=="PDT" or $tab=="PD"  ): // 데이투어 or 패키지 or 패스
				
				if(!$sql_order){
					$sql_order = " g_no ";
				}

				// 사용하는 카테고리만 반영(20161216)
				$sql_where .= " and b_uid in (select b_uid from bc where DelFlag='N' and b_lang='{$cf[lang]}' and tab in('P','D','T','V') )";
		
				$data_arr = good_list($sql_where,$sql_order,0,$max_items);


				for($i=0 ; $i<$max_items ; $i++)
				{
					$row = $data_arr[$i];
					$arr = array();

					$arr['href']				= "#";
					$arr['good_nm']				= "";
					$arr['brief']				= "";
					$arr['price']				= "";
					$arr['cityname']			= "";
					$arr['src_thum']			= $cf['TO_IMG']['no_image_s'];
					$arr['NationName']			= $row['NationName']; //[son]국가
					$arr['CityName']			= $row['CityName']; //[son]도시

					if ($row['g_uid'])
					{
						// 공통항목으로 매핑
						if($row['tab']=="V") {
							$href="../live/live_view.html";
						} else {
							$href="../good/info_main.html";
						}

						$href .= "?b_uid_s={$row[b_uid]}&m_uid_s={$row[m_uid]}&s_uid_s={$row[s_uid]}&g_uid={$row[g_uid]}";
						$arr['href']				= $href;
						$arr['good_nm']				= $row['g_title'];
						$arr['good_nm_short']		= mb_substr($row['g_title'],$cf['main_recom']['title']);
						$arr['brief']				= $row['g_brief'];
						$arr['brief_short']			= mb_substr($row['g_brief'],$cf['main_recom']['brief']);
						$arr['price']				= $row['main_to_max_price'];
						$arr['price2']				= $row['main_to_max_price2'];
						$arr['cityname']			= $row['CityName'];
						$arr['src_thum']			= $row['img_src2_thum'];
						$arr['src']					= $row['img_src2'];
						$arr['area_nm']				= $row['CityName'];
						$arr['areaa_cd_nm']			= $row['areaa_cd_nm'];
						$arr['areab_cd_nm']			= $row['areab_cd_nm'];
						$arr['areac_cd_nm']			= $row['areac_cd_nm'];
						$arr['b_uid_nm']			= $row['b_uid_nm'];
						$arr['special_nm']			= $row['special_nm'];
						$arr['g_select_num']		= $row['g_select_num'];
						$arr['min_price_sell']		= $row['min_price_sell'];
						$arr['review_total']		= $row['review_total'];	//후기카운트
						$arr['star_avg']			= $row['star_avg'];	//별점 평균
						$arr['special_icon']		= $row['special_icon'];	//상품특징 아이콘
						$arr['order_num']			= $row['g_no'];
						$arr['purchase_cnt']			= $row['purchase_cnt'];
					}
					$data[] = $arr;
				}
			break;
		case "R": // 렌트카
				//$data_arr = to_rentcar($sql_where,$sql_order,"","0,{$max_items}");
				$data_arr = array(); 
				
				for($i=0 ; $i<$max_items ; $i++)
				{
					$row = $data_arr[$i];
					$arr = array();

					$arr['href']				= "#";
					$arr['good_nm']			= "";
					$arr['brief']				= "";
					$arr['price']				= "";
					$arr['src_thum']		= "";

					if ($row[carid])
					{
						// 공통항목으로 매핑
						$arr['href']					= "../rentcar/rentcar_view.html?b_uid_s={$row[b_uid]}&m_uid_s={$row[m_uid]}&s_uid_s={$row[s_uid]}&carid={$row[carid]}";
						$arr['good_nm']				= $row['car_nm'];
						$arr['good_nm_short']	= mb_substr($row['car_nm'],$cf['main_recom']['title']);
						$arr['brief']					= $row['spec'];
						$arr['brief_short']		= mb_substr($row['spec'],$cf['main_recom']['brief']);
						//$arr['price']					= ($row['price_low']) ? "₩".number_format($row['price_low'])." ~":"문의";
						$arr['price']					= ($row['price_low']) ? _eunit($row['price_low']):_e("요금문의");
						$arr['src_thum']			= $row['img_thum'];
						$arr['src']						= $row['img_src'];
						$arr['area_nm']				= $row['area_nm'];
						$arr['areaa_cd_nm']		= $row['areaa_cd_nm'];
						$arr['areab_cd_nm']		= $row['areab_cd_nm'];
						$arr['areac_cd_nm']		= $row['areac_cd_nm'];
						$arr['purchase_cnt']			= $row['purchase_cnt'];
					}
					$data[] = $arr;
				}
			break;
	}

	return $data;
}


// 관리자 페이지 도움말
// 
function toad_help($sql_where="",$sql_order="",$limit="")
{
	$table = "TB_SHOP_HELP";
	$data = array();

	$sql = "select * from {$table} where 1 {$sql_where} ";

	if ( $sql_order ) $sql .= " order by {$sql_order}";
	else $sql .= " order by scr_id , help_seq  ";

	if ( $limit ) $sql .= " limit {$limit} ";

	$rs = db_query($sql);
	
	for($i=0 ; $row = db_fetch_array($rs) ; $i++){
		// 입력일
		$row['ins_dt2'] = str_replace("-",".",substr($row['ins_dt'],0,10));

		// 내용에 br 처리
		$row['help_cont2'] = nl2br($row['help_cont']);

		$data[] = $row;
	}


	return $data;
}

// 담당자
// 
function to_get_officer($admin_id){
	global $cf;

	if(!$admin_id) return false;

	$officer = member_fetch(" and mb_level<11 and mb_id='{$admin_id}' and del_flag='N' ");
	$officer = $officer[0];

	$row = false;

	if($officer[mb_nm]){
		$row[mb_nm] = $officer[mb_nm];
		if($officer[emp_img] && is_file("..".$cf['img_path']['admin'].$officer[emp_img])){
			$row[emp_img] = $cf['img_path']['admin'].$officer[emp_img];
		}else{
			$row[emp_img] = "/image/common/charge_logo.jpg";
		}
		$row[emp_memo] = $officer[emp_memo];
		$row[mb_tel] = $officer[mb_tel];
	}

	return $row;
}



// 입금대기타이머 입력
//
function insert_deposit($tab, $res_no, $mb_id="", $mb_nm=""){
	if($tab=='' or $res_no=='') return false;

	$sql = "select count(*) as 'cnt' from TB_RES_DEPOSIT where res_no='{$res_no}' ";
	$rs = db_fetch($sql);

	if((int)$rs['cnt'] > 0) return false;//입력된적 있으면 리턴

	$sql = "insert TB_RES_DEPOSIT set ";
	$sql.= "res_no='{$res_no}' ";
	$sql.= ",tab='{$tab}' ";
	$sql.= ",mb_id='{$mb_id}' ";
	$sql.= ",mb_nm='{$mb_nm}' ";
	$sql.= ",start_dt=NOW() ";
	$sql.= ",end_dt=DATE_ADD(NOW(), INTERVAL 3 HOUR) ";

	$rs = db_query($sql);
	
	if($rs) return true;
	else return false;
}

// 입금대기목록
//
function deposit_list($res_no='', $sql_where="", $sql_order="", $status="Y"){
	$ref = Array();
	if($res_no=='' && $sql_where=='') return $ref;

	if($res_no) $sql_where = "and res_no='{$res_no}' ".$sql_where;
	
	//남은분(minute)을 구하며 쿼리
	$sql = "select *, 
	TIMESTAMPDIFF(MINUTE,NOW(),end_dt) AS 'count_min' 
	,SEC_TO_TIME(TIMESTAMPDIFF(MINUTE,NOW(),end_dt)) as 'count_min2' 
	from TB_RES_DEPOSIT where 1=1 ".$sql_where." ".$sql_order." ";

	$result = db_query($sql);

	while($row = db_fetch_array($result)){

		$row['count_min_str'] = '';
		$row['status'] = '';

		//예약입금정보
		$res_arr = reserv_tab($row['tab'], $row['res_no']);

		$row['res_good_nm'] = $res_arr['res_good_nm'];
		$row['tab_nm'] = $res_arr['tab_nm'];
		$row['res_page'] = $res_arr['res_page'];
		$row['pre_money'] = $res_arr['pre_money'];
		$row['order_state_str'] = $res_arr['order_state_str'];
		$row['order_state_color'] = $res_arr['order_state_color'];

		if($res_arr['pre_money']>0){//미입금일때
			$count_min = (int)$row['count_min'];
			$abs_min = abs($count_min);//나눗셈을 위한 절대값

			list($day, $hour, $min) = explode(':',$row['count_min2']);

			//시간과 분으로 쪼개기
			//$day = floor($count_min/60/24);
			//$hour = floor($count_min/60);
			//$hour = floor($count_min/60%24);
			//$min = $count_min % 60;

			if($day<>0) $row['count_min_str'].= (int)$day."일 ";
			if($hour<>0) $row['count_min_str'].= $hour."시간 ";
			$row['count_min_str'].=$min."분";

			if($count_min<0){
				$row['status'] = '입금대기초과';
				$row['count_str'] = "초과시간";
			}else{
				$row['status'] = '입금대기';
				$row['count_str'] = "남은시간";
			}
		}else{
			$row['status'] = "입금완료";
		}

		if($status=='N'){//Y일경우 모두, N일경우 입금완료데이터는 제외
			if($row['status']!='입금완료'){
				$ref[] = $row;
			}
		}else{
			$ref[] = $row;
		}
	}

	return $ref;
}

/*-------------------------------------------------------------------------------
@brief : 무통장입금 정보 가져오기
@parameters : 
@return :
-------------------------------------------------------------------------------*/
function GetBankInfo($res_no){
	if(!$res_no) return;
	
	$data = array();
	$table = "TB_RES_BANK";
	
	$sql = "SELECT * FROM {$table} WHERE 1 AND res_no='{$res_no}' ";
	$rs = db_query($sql);
	while($row = db_fetch_assoc($rs)) {
			$res_arr = explode(",",$row['res_info']);
			foreach ($res_arr as $k){
				$arr = explode("||",$k);
				$tab = $arr[0];
				$res_no = $arr[1];
					
				$res_no_in .=  ",{$res_no}";
			}
			$row['res_no_in'] = substr($res_no_in,1);
		
		array_push($data, $row); //$data배열에 담김
	}
	@db_free_result($rs);
	
	return $data;
}


// (주)클릭커뮤니케이션 SMS/LMS 문자 보내기
//
// @params msg_type: 메시지타입(단문:S/장문:L)
// @params call_back: 회사전화
// @params dest_no: 고객전화
// @params msg_contents: 메시지
function send_new_send($msg_type="S",$call_back="",$dest_no="",$msg_contents="")
{
	global $cf,$TO_CF;

	if(!$msg_type) $msg_type="S";

	// 변수 초기화
	$data_res = array();// 전송결과
	$data_sms = array(); // 보낼SMS정보
	$data_send = ""; // 보낼정보
	$header = ""; // 헤더
	$boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
	$data_recv ="";

	// 보낼호스트가 없으면 중지
	if(!$cf['sms_host'] or $cf['sms_host']=="") return $data_res;

	// 보낼 파라메터
	$data_sms['sms_id'] = base64_encode($cf['sms_id']);
	$data_sms['approval_sms'] = base64_encode($cf['approval_sms']);
	$data_sms['msg_type'] = base64_encode($msg_type);
	if($msg_contents) {
	$data_sms['dest_no'] = base64_encode($dest_no);
	}
	$data_sms['call_back'] = base64_encode($call_back);
	$data_sms['msg_contents'] = base64_encode(stripslashes($msg_contents));

	// 전송할 DATA STRING
	foreach($data_sms AS $key => $val){
		$data_send .="--$boundary\r\n";
		$data_send .= "Content-Disposition: form-data; name=\"".$key."\"\r\n";
		$data_send .= "\r\n".$val."\r\n";
		$data_send .="--$boundary\r\n";
	}
	
	// HTTP1.1 헤더
	$header = "POST " . $cf['sms_path'] . " HTTP/1.0\r\n";
	$header .= "Host: " . $cf['sms_host'] . "\r\n";
	$header .= "Content-type: multipart/form-data, boundary=" . $boundary . "\r\n";
	$header .= "Content-length: " . strlen($data_send) . "\r\n\r\n";

	// 소켓생성
	$fp = @fsockopen($cf['sms_host'], 80 , $errno, $errstr, 5 );

	if ($fp) {
		fputs($fp, $header.$data_send);
		$data_recv = '';
		while(!feof($fp)) {
			$data_recv .= fgets($fp,8192);
		}
		fclose($fp);

		$arr = explode("\r\n\r\n",$data_recv);
		$arr_t = explode(",",$arr[1]);

		// 결과값
		$data_res['result'] = $arr_t[0];

		// 잔여통수
		$data_res['sms_count'] = $arr_t[1]; // SMS 잔여통수
		$data_res['mms_count'] = $arr_t[2]; // MMS 잔여통수
	}

	return $data_res;
}

//
// 문자 전송 사용법
//
// config.php >  SMS 설정정보 부터 확인
//
// return array: result->성공여부 , sms_count->SMS잔여통수 , mms_count->MMS잔여통수
//$data = send_new_send("S","051-246-1111","010-6558-0300","레알마드리드222 U "); // 단문
//$data = send_new_send("L","051-246-1111","010-6558-0300","레알마드리드222 UEFA FC바르셀로나 "); // 장문
//$data = send_new_send();// 잔여통수
//

// (주)클릭커뮤니케이션 메일 보내기
//
// @params rdata: array()
function send_new_mail($rdata="")
{
	global $cf;

	// 변수 초기화
	$data_res = array();// 전송결과
	$pdata = array(); // 보낼 params정보
	$data_send = ""; // 보낼정보
	$header = ""; // 헤더
	$boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
	$data_recv ="";

	// 보낼호스트가 없으면 중지
	if(!$cf['mail_host'] or
			$cf['mail_host']=="" or !$rdata['cust_nm'] or !$rdata['cust_email'] or
			!$rdata['title'] or !$rdata['from_nm'] or !$rdata['from_email'] or
			!$rdata['cont'] ) {
				return false; }

				// 보낼 파라메터
				$pdata['sms_id']          = base64_encode($cf['sms_id']);
				$pdata['approval_sms'] = base64_encode($cf['approval_sms']);
				$pdata['cust_nm']       = base64_encode($rdata['cust_nm']); // 고객명
				$pdata['cust_email']    = base64_encode($rdata['cust_email']); // 고객이메일
				$pdata['title']             = base64_encode($rdata['title']); // 메일제목
				$pdata['from_nm']       = base64_encode($rdata['from_nm']); // 보내는사람(회사명)
				$pdata['from_email']    = base64_encode($rdata['from_email']); // 보내는이메일(회사메일)
				$pdata['cont']            = base64_encode($rdata['cont']); // 메일내용
				//$pdata['cont']            = chunk_split(base64_encode($rdata['cont'])); // 메일내용

				$pdata['mail_attach_file_max']=($cf['mail_attach_file_max']) ? $cf['mail_attach_file_max']:5;
				$pdata['file1']						= $rdata['file1'];// 첨부파일1 (2018-06-29.허종)
				$pdata['file2']						= $rdata['file2'];// 첨부파일2
				$pdata['file3']						= $rdata['file3'];// 첨부파일3				
				
				// 전송할 DATA STRING
				foreach($pdata AS $key => $val){
					$data_send .="--$boundary\r\n";
					$data_send .= "Content-Disposition: form-data; name=\"".$key."\"\r\n";
					$data_send .= "\r\n".$val."\r\n";
					$data_send .="--$boundary\r\n";
				}

				// HTTP1.1 헤더
				$header = "POST " . $cf['mail_path'] . " HTTP/1.0\r\n";
				$header .= "Host: " . $cf['mail_host'] . "\r\n";
				$header .= "Content-type: multipart/form-data, boundary=" . $boundary . "\r\n";
				//$header .= "Content-type: text/html; charset=utf-8, boundary=" . $boundary . "\r\n";
				$header .= "Content-length: " . strlen($data_send) . "\r\n\r\n";

				// 소켓생성
				$fp = @fsockopen($cf['mail_host'], 80 , $errno, $errstr, 5 );

				if ($fp) {
					fputs($fp, $header.$data_send);
					$data_recv = '';
					while(!feof($fp)) {
						$data_recv .= fgets($fp,8192);
					}
					fclose($fp);
				}

				return true;
}

// 알림톡 발송 (비즈뿌리오)
//
// @params type: 조건 where문 (mtype, tab, res_cd)
// @params recever: 고객전화
// @params keyword: 키워드
function send_auto_alimtalk($mtype, $tab='T', $recever="", $keyword, $onlyAdminSend = false)
{
    global $cf, $TO_CF, $ppurio;

	Log::save(sprintf("%s(%d) send_auto_alimtalk %s %s %s", __FILE__, __LINE__, $mtype, $tab, $recever), '', 'ppurio/'.date('Ym'));

	Log::save(sprintf("%s(%d) KEYWORD %s", __FILE__, __LINE__, json_encode($keyword)), '', 'ppurio/'.date('Ym'));


	if(!$onlyAdminSend){
		if(!$mtype) return;
		if(!$recever) return;
	}



    //취소 메세지 보낼 곳이 여러개인 경우에 대한 처리
    $receverPhoneNumber = $recever;

    $receverPhoneNumberList = array();

    if(strpos($receverPhoneNumber, "|") !== false){
        $receverPhoneNumberListEx = explode("|",$receverPhoneNumber);
        foreach($receverPhoneNumberListEx as $phoneNum){
            $phoneNum = trim(str_replace("-", "", $phoneNum));
            array_push($receverPhoneNumberList, $phoneNum);
        }
    }else{
        $recever = trim(str_replace("-", "", $recever));
        array_push($receverPhoneNumberList, $recever);
    }



    foreach($receverPhoneNumberList as $recever){


        // 분류 처리
        if($tab == 'D') $tab = 'P';


        // Macro data
        $data = to_macro_list(array('mtype'=>$mtype,'tab'=>$tab,'disp_yn'=>'Y'));
        $macro = $data[0];

        if(!$onlyAdminSend){
            if(!$macro) return;
        }

        Log::save(sprintf("%s(%d) MACRO %s", __FILE__, __LINE__, json_encode($macro)), '', 'ppurio/'.date('Ym'));


        // 자동발송여부
        if($macro['auto_send'] == 'N') return;

        // Ppurio Module
        if(!$ppurio) {
            include PARTNER_DIR . "/ppurio/class.Ppurio.php";
            $ppurio = new Ppurio();
        }

        if($recever){
            $result = $ppurio->sendAT($recever, $macro['midx'], $keyword);
        }


        // 발송 완료
        // 예약알림톡 관리자 발송
        if(in_array($mtype, array('TP_B2B_BUS_RESERVE_V5','TP_B2B_BUS_CANCEL_V2','TKTBOOK_EN','TKTOURPAID_EN','RES', 'BUY')) == true){
            if($cf['lang']=='ko') {
                foreach($cf['at_admin_tb'] as $k => $v){
                    // TP_B2B_BUS_RESERVE_V5 -> 64
                    // TP_B2B_BUS_RESERVE_V4 -> 62 //어드민용 공급가가 포함됨.

//                if(devCookie()){

//                    p($macro);
//                    p($keyword);
//                    exit;
                    if($macro['midx'] == 64){
//                        $macro['midx'] == 62;
                        if(strpos($keyword['스케줄'], '공급가') !== false){

                        }else{
                            $keyword['스케줄'] = '(공급가 : '.$keyword['공급가'].')
'.$keyword['스케줄'];
                        }

                    }

                    // TP_B2B_BUS_CANCEL_V3 -> 65
                    // TP_B2B_BUS_CANCEL_V2 -> 63 //어드민용 공급가가 포함됨.
                    if($macro['midx'] == 65){
//                        $macro['midx'] == 63;
                        if(strpos($keyword['스케줄'], '공급가') !== false){

                        }else{
                            $keyword['스케줄'] = '(공급가 : '.$keyword['공급가'].')
'.$keyword['스케줄'];
                        }
                    }
//                }

                    $ppurio->sendAT($v, $macro['midx'], $keyword, 'N');
                }
            } else {
                foreach($cf['at_admin_tk'] as $k => $v){
                    $ppurio->sendAT($v, $macro['midx'], $keyword, 'N');
                }
            }
        }
    }














	return $result;
}

// 알림톡 발송 (관리자 전용)
//
// @params mtype: 템플릿 타입
// @params keyword: 키워드
function send_admin_alimtalk($mtype, $keyword)
{

	/*if(devCookie()){
		p('aa');
		exit;
	}*/


	global $cf, $TO_CF, $ppurio;

	Log::save(sprintf("%s(%d) send_admin_alimtalk %s %s %s", __FILE__, __LINE__, $mtype), '', 'ppurio/'.date('Ym'));

	Log::save(sprintf("%s(%d) KEYWORD %s", __FILE__, __LINE__, json_encode($keyword)), '', 'ppurio/'.date('Ym'));

	if(!$mtype) return;

	// Macro data
	$data = to_macro_list(array('mtype'=>$mtype, 'disp_yn'=>'Y'));
	$macro = $data[0];
	if(!$macro) return;

	Log::save(sprintf("%s(%d) MACRO %s", __FILE__, __LINE__, json_encode($macro)), '', 'ppurio/'.date('Ym'));

	// Ppurio Module
	if(!$ppurio) {
		include PARTNER_DIR . "/ppurio/class.Ppurio.php";
		$ppurio = new Ppurio();
	}

	if($cf['lang']=='ko') {
		foreach($cf['at_admin_tb'] as $k => $v){
			$result = $ppurio->sendAT($v, $macro['midx'], $keyword);
		}
	} else if($mtype=='TB_NAVER_MECRO') {
		foreach($cf['at_admin_macro'] as $k => $v){
			$result = $ppurio->sendAT($v, $macro['midx'], $keyword);
		}
	} else {
		foreach($cf['at_admin_tk'] as $k => $v){
			$result = $ppurio->sendAT($v, $macro['midx'], $keyword);
		}
	}

	if($result['code'] == '1000'){
		// 발송 완료

	} else {
		// 발송 오류
	}

	return $result;

}

// 알림톡 발송 (대표님 전용)
//
// @params mtype: 템플릿 타입
// @params keyword: 키워드
function send_master_alimtalk($mtype, $keyword)
{
	global $cf, $TO_CF, $ppurio;

	Log::save(sprintf("%s(%d) send_master_alimtalk %s %s %s", __FILE__, __LINE__, $mtype), '', 'ppurio/'.date('Ym'));

	Log::save(sprintf("%s(%d) KEYWORD %s", __FILE__, __LINE__, json_encode($keyword)), '', 'ppurio/'.date('Ym'));

	if(!$mtype) return;

	// Macro data
	$data = to_macro_list(array('mtype'=>$mtype, 'disp_yn'=>'Y'));
	$macro = $data[0];
	if(!$macro) return;

	Log::save(sprintf("%s(%d) MACRO %s", __FILE__, __LINE__, json_encode($macro)), '', 'ppurio/'.date('Ym'));

	// Ppurio Module
	if(!$ppurio) {
		include PARTNER_DIR . "/ppurio/class.Ppurio.php";
		$ppurio = new Ppurio();
	}

	foreach($cf['at_master'] as $k => $v){
		$result = $ppurio->sendAT($v, $macro['midx'], $keyword);
	}

	if($result['code'] == '1000'){
		// 발송 완료

	} else {
		// 발송 오류
	}

	return $result;

}

// 예약확정안내 알림톡 발송
function TO_send_confirm_alimtalk($res_no, $isSmartStore = false)
{
	global $ppurio;

	Log::save(sprintf("%s(%d) ADMIN TO_send_confirm_alimtalk res_no=%s", __FILE__, __LINE__, $res_no), '', 'ppurio/'.date('Ym'));

	if(!$res_no) {
		$error_msg = "예약번호가 없습니다.";
	}

	// 예약정보
	$res_data = res_good_master(" and res_no='{$res_no}' ");
	$res_row = res_good_master_replace($res_data[0]);
	if(!$res_row) {
		$error_msg = "예약정보가 없습니다.";
	}

	// 상품정보
	$good_data = good_list(" and g_uid='{$res_row['g_uid']}' ");
	$res_good = $good_data[0];

	if($isSmartStore){
		if(!$res_good || $res_good['api_smart_store_reserve_type'] != 'AFTER'){
			$error_msg = "상품정보가 없거나 예약 후 일정확정 상품이 아닙니다";
		}
	}else{
		if(!$res_good || $res_good['api_reserve_type'] != 'AFTER'){
			$error_msg = "상품정보가 없거나 예약 후 일정확정 상품이 아닙니다";
		}
	}



	if(!$error_msg){

		switch($res_row['g_uid']){
			default : 
				$templete = "CONFIRM";
				break;
		}

		$recever = str_replace("-", "", $res_row['res_cust_hp']); // 수신핸드폰
		$keyword = array(
			'접수번호'		=> $res_no
		);

		// Macro data
		$data = to_macro_list(array('mtype'=>$templete,'disp_yn'=>'Y'));
		$macro = $data[0];

		// 알림톡 발송
		if(!$ppurio) {
			include PARTNER_DIR . "/ppurio/class.Ppurio.php";
			$ppurio = new Ppurio();
		}

		$result = $ppurio->sendAT($recever, $macro['midx'], $keyword);

	}

	Log::save(sprintf("%s(%d) at_result : %s", __FILE__, __LINE__, json_encode($result)), '', date('Ym'));
	Log::save(sprintf("%s(%d) error_msg : %s", __FILE__, __LINE__, $error_msg), '', date('Ym'));

	return $result;
}

// 문자 발송 history 저장
//
// params rdata : array
function to_send_history_ins($rdata=array())
{
	global $TO_MB;
		
	$table = "TB_SMS_HISTORY";

	// 필수값
	if(!$rdata['type']) $rdata['type'] = "S"; // S문자 M메일 AT 알림톡 LMS MMS

	// 파라메터 체크
	if(!$rdata['messsage']) return $data;

	// 히스 토리저장
	$sql = "insert into {$table} set 
					admin_id='{$rdata[admin_id]}', 
					res_no='{$rdata[res_no]}', 
					type='{$rdata[type]}', 
					cust_nm='{$rdata[cust_nm]}', 
					recv_mail='{$rdata[recv_mail]}', 
					send_mail='{$rdata[send_mail]}',
					recv_tel='{$rdata[recv_tel]}', 
					send_tel='{$rdata[send_tel]}',
					message='{$rdata[message]}', 
					mail_cont='{$rdata[mail_cont]}', 
					msg_key='{$rdata[msg_key]}', 
					ins_dt=now();";
					
	return db_query($sql);
}

// 문자 history 목록
//
// params rdata : array
function to_send_history_list($rdata=array())
{
	global $TO_MB;
	
	$data = array();

	$table = "TB_SMS_HISTORY";

	// where
	$sql_where = "";
	if($rdata['mb_id']) $sql_where .= " and mb_id='{$rdata[mb_id]}' ";
	if($rdata['res_no']) $sql_where .= " and res_no='{$rdata[res_no]}' ";
	if($rdata['recv_tel']) $sql_where .= " and recv_tel='{$rdata[recv_tel]}' ";
	if($rdata['type']) $sql_where .= " and type='{$rdata[type]}' ";
	if($rdata['seq']) $sql_where .= " and seq='{$rdata[seq]}' ";
	
	// limit 
	if(!$rdata['limit']) $rdata['limit'] = 10;;

	// 히스 토리저장
	$sql = "select * from {$table} where 1 {$sql_where} ";
	$sql .= "order by ins_dt desc, seq desc ";
	$sql .= "limit {$rdata[limit]}";

	$rs = db_query($sql);

	while($row=db_fetch_array($rs)) {
		$data[] = $row;
	}

	return $data;
}

function to_send_mail_history_list($resNo = 0, $isAutoManual = ''){

	if(!$resNo){
		return false;
	}

	$isAutoManualWhereSql = "";
	if($isAutoManual != ''){
		$isAutoManualWhereSql = " AND send_auto_manual_type ='{$isAutoManual}'";
	}

	$data = array();

	// 히스 토리저장
	$sql = "select * from TB_MAIL_HISTORY where res_no = '{$resNo}' AND recv_mail != 'web@tktravelkorea.com' {$isAutoManualWhereSql} ORDER BY ins_dt DESC ";
	$rs = db_query($sql);

	while($row=db_fetch_array($rs)) {
		$data[] = $row;
	}

	return $data;
}

// 메일 발송 history 저장
//
// params rdata : array
function to_mail_history_ins($rdata=array())
{
	global $TO_MB;


	$table = "TB_MAIL_HISTORY";

	if(is_array($rdata[recv_mail])){
		$to_history = implode(",", $rdata[recv_mail]);
	} else {
		$to_history = $rdata[recv_mail];
	}
	$to_count = count($rdata[recv_mail]);

	// 히스토리저장
	$sql = "insert into {$table} set 
					mb_id='{$rdata[mb_id]}', 
					admin_id='{$rdata[admin_id]}', 
					res_no='{$rdata[res_no]}', 
					cust_nm='{$rdata[cust_nm]}', 
					recv_mail='{$to_history}', 
					recv_count='{$to_count}', 
					send_mail='{$rdata[send_mail]}',
					message='{$rdata[message]}', 
					mail_cont='{$rdata[mail_cont]}', 
					api_msg_key='{$rdata[msg_key]}',
					send_auto_manual_type = '{$rdata[send_auto_manual_type]}', 
					ins_dt=now();";

	return db_query($sql);
}

// 
// 행사달력
//
if(!function_exists(to_calendar)) {
	function to_calendar($cal_y,$cal_m)
	{
		global $cal_startday , $cal_endday;
		global $cal_now_yy , $cal_now_mm , $cal_num , $cal_now_dd;
		global $cal_py , $cal_pm , $cal_ny , $cal_nm;
		global $cal_mon;

		// 마지막 날,요일 설정
		$cal_lastday = array(1=>31,28,31,30,31,30,31,31,30,31,30,31); // 각 달의 마지막 날 지정
		$cal_yoil = array("일","월","화","수","목","금","토"); // 요일명 지정


		// 오늘
		$cal_now_yy = (int)date("Y");
		$cal_now_mm = (int)date("m");
		$cal_now_dd = (int)date("d");

		// 년,월 설정
		if (!$cal_y) $cal_y = $cal_now_yy;
		if (!$cal_m) $cal_m = $cal_now_mm;
		$cal_y = (int)$cal_y;
		$cal_m = (int)$cal_m;

		// 윤년 계산을 통해 2월의 마지막 날 계산
		if ($cal_y % 4 == 0 && $cal_y % 100 != 0 || $cal_y % 400 == 0) {
			$cal_lastday[2] = 29;
		}

		// 전해까지 평년 기준으로 날짜수 계산 및 윤년의 횟수를 더함
		$cal_total = ($cal_y-1)*365+(int)(($cal_y-1)/4) - (int)(($cal_y-1)/100) + (int)(($cal_y-1)/400);

		// 해당월의 1일
		for ($i=1; $i<$cal_m; $i++) {
			$cal_total += $cal_lastday[$i]; // 전달까지의 날짜수 더함
		}
		$cal_total++; // 그 달의 1일
		$cal_startday = $cal_total % 7; // 시작 요일을 구함 (0:일요일,...,6:토요일)
		//mktime() 함수는 1970 ~ 2038년까지만 계산되므로 사용하지 않음
		//$mktime = mktime(0, 0, 0, $cal_m, 1, $cal_y); // time
		//$startday = date("w", $mktime); // 첫날 요일

		// 해당월의 마지막 날짜
		$cal_endday = $cal_lastday[$cal_m];


		// 다음달 
		if ($cal_m == 12) {
			$cal_ny = $cal_y + 1;
			$cal_nm = 1;
		}
		elseif ($cal_m == 1) {
			$cal_ny = $cal_y;
			$cal_nm = $cal_m + 1;
		}
		else {
			$cal_ny = $cal_y;
			$cal_nm = $cal_m + 1;
		}

		// 이전달 
		$cal_py = $cal_y; // 전년
		$cal_pm = $cal_m-$cal_mon; // 전달

		if ( $cal_pm<1 ) {
			$cal_pm = (12 + $cal_m) - $cal_mon;
			--$cal_py;
		}
	}
}

//
// 출발일 기준 연령가이드
// 
// params @start_dt : 여행 출발일
function agePerCurYear($start_dt="")
{
	global $cf;

	if(!$start_dt) $start_dt = date("Y-m-d");

	$start_dt = date("Y-m-d",strtotime($start_dt));

	$adult = $cf['dw']['adult'];

	// 소인 만3세이상 12세미만
	$child = $cf['dw']['child'];

	// 유아 만2세이상 6세미만-> 3세미만 으로 변경
	$baby = $cf['dw']['baby'];

	// 24개월미만
	$infant = $cf['dw']['infant'];

	// 리턴 데이터
	$ret_data = array();

	// 성인
	//$ret_data['adult_txt'] = ($adult[1]=="+") ? $adult[0]."세 이상":$adult[0]."세 초과";
	$ret_data['adult_txt'] = ($adult[1]=="+") ? $adult[0]. _e("세 이상"):$adult[0]. _e("세 초과");
	$t_str = "-".$adult[0]." year ";
	if($adult[1]=="-") $t_str .= " +1 day";
	$ret_data['adult'] = date("Y.m.d",strtotime($start_dt.$t_str))._e("이전출생");

	// 소인
	$ret_data['child_txt'] = ($child[1]=="+") ? $child[0]._e("세 이상"):$child[0]._e("세 미만");
	$ret_data['child_txt'] .= ($child[3]=="+") ? $child[2]._e("세 이상"):$child[2]._e("세 미만");
	$l_str = "-".$child[2]." year ";
	if($child[3]=="-") $l_str .= " +1 day";
	$f_str = "-".$child[0]." year ";
	if($child[1]=="-") $f_str .= " +1 day";
	$ret_data['child'] = date("Y.m.d",strtotime($start_dt.$l_str)); 
	$ret_data['child'] .= " ~ ";
	$ret_data['child'] .= date("Y.m.d",strtotime($start_dt.$f_str));

	// 유아
	$ret_data['baby_txt'] = ($baby[1]=="+") ? $baby[0]._e("세 이상"):$baby[0]._e("세 미만");
	//$ret_data['baby_txt'] .= ($baby[3]=="+") ? $baby[2]."세 이상 ":$baby[2]."세 미만";
	$ret_data['baby_txt'] .= ($baby[3]=="+") ? $baby[2]._e("세 이상"):"";

	//$l_str = "-".$baby[2]." year ";
	//if($baby[3]=="-") $l_str .= " +1 day";
	$f_str = "-".$baby[0]." year ";
	if($baby[1]=="-") $f_str .= " +1 day";
	//$ret_data['baby'] = date("Y.m.d",strtotime($start_dt.$l_str));
	//$ret_data['baby'] .= " ~ ";
	$ret_data['baby'] .= date("Y.m.d",strtotime($start_dt.$f_str));

	// 영아
	$ret_data['infant_txt'] = ($infant[1]=="+") ? $infant[0]._e("개월 이상"):$infant[0]._e("개월 미만");
	$t_str = "-".$infant[0]." month ";
	if($infant[1]=="-") $t_str .= " +1 day";
	$ret_data['infant'] = date("Y.m.d",strtotime($start_dt.$t_str));
	$ret_data['infant'] .= " ~ ";
	$ret_data['infant'] .= date("Y.m.d",strtotime($start_dt." -1 day"));

	return $ret_data;
}

// 통합예약조회
// 
// @params rdata: array
function to_res_all($rdata="")
{
	global $cf;

	$table = "TB_RES_ALL";
	
	$data = array();
	$sql_where = "";
	$sql_order = "";
	$sql_limit = "";

	if(!is_array($rdata)) return $data;

	// where
	if($rdata['sql_where']) $sql_where = $rdata['sql_where'];

	// order
	if($rdata['sql_order']) $sql_order = " {$rdata['sql_order']} ";
	else $sql_order = " ins_dt ";

	// limit
	if($rdata['limit']) $sql_limit = " limit " . $rdata['limit'];

	$sql = "select *,
	(case tab when 'P' then 'Package Tour'
	when 'D' then 'Day Tour'
	when 'T' then 'Ticket Pass'
	when 'L' then 'Hotel'
	end) as tab_nm,
	(case tab when 'P' then '../res_good/good_res_edit.html'
	when 'T' then '../res_good/good_res_edit.html'
	when 'D' then '../res_good/good_res_edit.html'
	when 'L' then '../res_hotel/hotel_res_edit.html'
	end) as res_url
	from {$table}
	where 1 {$sql_where}
	order by {$sql_order} 
	{$sql_limit} ";
	$rs = db_query($sql);

	while($row=db_fetch_array($rs)){
		$row['ins_dt2'] = substr($row['ins_dt'],0,10);
		$arr_tmp = explode("^",$row['res_cust_tel']);
		$row['res_cust_tel2'] = $arr_tmp[0];

		//실무용 바우처번호
		if($row['tab']=="L")	$TABLE = "TB_RES_HOTEL";
		else					$TABLE = "TB_RES_GOOD";
		$sqlv = "select rsv_no from $TABLE  where res_no='{$row[res_no]}'";
		$rowv = db_fetch($sqlv);
		if($rowv['rsv_no'])		$row['rsv_no'] = $rowv['rsv_no'];
		else					$row['rsv_no'] =$row['res_no'];


		$data[] = $row;
	}

	// 리턴 array
	return $data;
}

// 상용구 조회 - SMS,Email
//
// @params $rdata ; array
function to_macro_list($rdata="")
{
	global $cf;

	$table = "TB_MACRO";
	$data = array();
	$sql_where = "";
	$sql_order = "";
		
	if(!is_array($rdata)){
		return $data;
	}

	// where
	if($rdata['type']) $sql_where .= " and type='{$rdata[type]}' ";
	if($rdata['mtype']) $sql_where .= " and mtype='{$rdata[mtype]}' ";
	if($rdata['midx']) $sql_where .= " and midx='{$rdata[midx]}' ";
	if($rdata['resp']) $sql_where .= " and resp='{$rdata[resp]}' ";
	if($rdata['res_cd']) $sql_where .= " and ( res_cd='{$rdata[res_cd]}' or res_cd2='{$rdata[res_cd]}' )";
	if($rdata['disp_yn']) $sql_where .= " and disp_yn='{$rdata[disp_yn]}' ";
	if($rdata['tab']) $sql_where .= " and tab='{$rdata[tab]}' ";

	// order
	if($rdata['order']) $sql_order .= " {$rdata['order']} ";
	else $sql_order .= " tab desc, res_cd ";

	$sql = "select *  
						from {$table} 
						where 1 {$sql_where} 
						order by {$sql_order}";

	$rs = db_query($sql);

	while($row=db_fetch_array($rs)){
		// 전시
		if ($row['disp_yn']=="Y"){ 
			$row['disp_opp'] = "N";
			$row['disp_img'] = $cf['icon']['start'];
		}else{
			$row['disp_opp'] = "Y";
			$row['disp_img'] = $cf['icon']['stop'];
		}

		// 분류
		switch($row['tab']) {
			case 'L' :
				$row['tab_nm'] = "호텔";
				break;
			case 'T' :
				$row['tab_nm'] = "티켓";
				break;
			case 'P' :
				$row['tab_nm'] = "투어";
				break;
			default :
				$row['tab_nm'] = "기타";
				break;
		}

		// 타입
		switch($row['type']) {
			case 'S' : 
				$row['type_nm'] = "SMS";
				break;
			case 'M' : 
				$row['type_nm'] = "E-mail";
				break;
			case 'AT' : 
				$row['type_nm'] = "알림톡";
				break;
		}

		// 코드
		$arr_tmp = base_codec("PRD",$row['resp'],$row['res_cd']);
		$row['res_cd_nm'] = $arr_tmp[0]['cd_nm'];

		if($row['res_cd2']) {
			$arr_tmp = base_codec("PRD",$row['resp'],$row['res_cd2']);
			$row['res_cd2_nm'] = $arr_tmp[0]['cd_nm'];
		}

		$data[] = $row;

	}

	// 리턴 array
	return $data;
}

function to_get_info_gallery($item_type,$item_code){
	if(!$item_type) return;

	switch($item_type){
		case "hotel" :
			$table = "TB_HOTEL_GALLERY";
			$upload = "/FileData/hotel/";
			$upload_thum = "/FileData/hotel_thum/";
			$sql_where = " and hotel_seq='{$item_code}' ";
		break;
		case "info" :
			$table = "TB_PLACE_GALLERY";
			$upload = "/FileData/tourplace/";
			$upload_thum = "/FileData/tourplace_thum/";
			$sql_where = " and place_seq='{$item_code}' ";
		break;
	}

	$sql = "select img from {$table} where 1=1  {$sql_where} ";
	$rs = db_query($sql);
	$data = array();
	for($i=0 ; $row=db_fetch_array($rs) ; $i++){
		$row[img_src] = $upload.$row['img'];
		$row[img_thum_src] = $upload_thum.$row['img'];
		$data[] = $row;
	}
	return $data;
}

//
// 메일첨부용 스트링으로 변환
//
// params @file : $_FILES['name']
// params @mode : pre 기존 폴더에서 읽어몸,new 새로 읽음
//
// return : ctype|#|message4.txt|#|chunk_split(base64_encode($part['message']))
if(!function_exists('mail_file_base64_encode')) {
	function mail_file_base64_encode($file="",$mode="new",$upload="../../FileData/mailattachfile/")
	{
		global $cf;

		$data=array();
		$maxfilesize=($cf['mail_attach_file_max']) ? $cf['mail_attach_file_max']:5; // 5메가

		if(!is_array($file)) return false;

		// 새로운 파일 읽어서 저장
		if($file['size']>0 and $mode=="new") {
			$size=floor($file['size']/1000000);

			// 파일용량 체크
			if($size>$maxfilesize) return false;

			// 파일업로드
			$fn=FileUploadName("", $upload, $file['tmp_name'], $file['name'] ,"");

			// 파일읽기 & base64_encode변환
			$fp = fopen($upload.$fn, "r");
			$message = fread($fp, filesize($upload.$fn));
			fclose($fp);
				
			$ctype			= base64_encode($file['type']);
			$name				= base64_encode($file['name']);
			$message		= base64_encode($message);

			$data['pdata']				= $ctype."|#|".$name."|#|".$message; // 전송할 data
			$data['name_chg']			= $fn; // 변환후 파일명
			$data['name_org']			= $file['name']; // 원본파일명

			// 파일삭제
			// @unlink($upload.$fn);
		}

		// 기존파일을 읽어서 변환
		else if($file['name_chg'] and $file['name_org'] and $mode=="pre") {
			// 파일읽기 & base64_encode변환
			$fn=$file['name_chg'];

			$fp = fopen($upload.$fn, "r");
			$message = fread($fp, filesize($upload.$fn));
			fclose($fp);

			$type=mime_content_type($upload.$file['name_chg']);

			$ctype			= base64_encode($type);
			$name				= base64_encode($file['name_org']);
			$message		= base64_encode($message);

			$data['pdata']				= $ctype."|#|".$name."|#|".$message; // 전송할 data
			$data['name_chg']			= $file['name_chg']; // 변환후 파일명
			$data['name_org']			= $file['name_org']; // 원본파일명
		}

		return $data;
}}

//tour_order.html 금액을 USD로 변환
function hwanyull($foreign_money="",$lang="",$gubun="")
{

	global $cf;

	$data=array();

		$sql = "select * from TB_HWANYULL order by ins_dt desc limit 1";
		$data = db_fetch($sql);

		if($gubun=="tw") {
			$data['ex_tw'] = $data['price_tw_hk'];	//1HKD당 TWD
			$data['seq'] = $data['seq'];	//번호
		} else {
			$ex_money = $data['price_usd_'.$lang];

			if($foreign_money) {
				// 외국환 => USD
				$usd_price = @round($foreign_money*$ex_money);
				$data['usd_price'] = $usd_price;	//각 통화를 USD로 환산한 금액 
			}

			$data['ex_money'] = $ex_money;	//1통화당(CYD,HKD) USD
			$data['seq'] = $data['seq'];	//번호
		}


	return $data;
	
}

function to_per_krw($exid_no="",$lang="")
{

	global $cf;

	if(!$exid_no)	{
		if($cf['lang']=='en' || $lang=='en')	$exid_no = "1";
		elseif($cf['lang']=='cn' || $lang=='cn')	$exid_no = "4";
		elseif($cf['lang']=='hk' || $lang=='hk')	$exid_no = "3";
	}
	$rs = db_fetch("select * from TB_EXCHANGE where exid='{$exid_no}'");
	$data =$rs[ext_to_krw];

	return $data;
	
}


// 관련상품
// 
// @sql_where : 조건
// @g_uid : 상품번호
function tour_related($g_uid)
{
	global $cf;

	$data = array();

	if (!$g_uid) return $data;

		//최대5개까지
		$sql = "select * from TB_GOOD_RELATED where g_uid='{$g_uid}' order by ordernum limit 5";
		$rs = db_query($sql);
				
		while($rows = db_fetch_array($rs)) {

		if($rows[r_uid] && $rows[g_uid]) {	//상품이 있다면

			if($rows[tab]== "L") {	//호텔

					$data_arr = hotel_list(" and hseq='{$rows[r_uid]}'","",0,1);
					$row = $data_arr[0];
					$r = hotel_list_replace($row); 
					$arr = array();

					$arr['href']				= "#";
					$arr['good_nm']			= "";
					$arr['brief']				= "";
					$arr['price']				= "";
					$arr['src_thum']		= $cf['TO_IMG']['no_image_s'];

					if($row[hseq]) {
						// 공통항목으로 매핑
						$arr['href']					= "../hotel/hotel_view.html?b_uid_s={$row[b_uid]}&m_uid_s={$row[m_uid]}&s_uid_s={$row[s_uid]}&hseq={$row[hseq]}";
						$arr['mhref']					= "../tmbi_hotel/hotel_view.html?b_uid_s={$row[b_uid]}&m_uid_s={$row[m_uid]}&s_uid_s={$row[s_uid]}&hseq={$row[hseq]}";

						$arr['good_nm']			= $row['hotel_nm'];
						$arr['good_nm_short'] 	= mb_substr($row['hotel_nm'],$cf['main_recom']['title']);
						$arr['brief']					= $row['hotel_brief'];
						$arr['brief_short']			= mb_substr($row['hotel_brief'],$cf['main_recom']['brief']);
						//$arr['price']					= ($row['price_low']) ? "₩".number_format($row['price_low'])." ~":"문의";
						//$arr['price2']				= ($row['price_low']) ? number_format($row['price_low'])."원":"문의";
						$arr['price']					= ($row['price_low']) ? _eunit($row['price_low']):_e("요금문의");
						$arr['price2']				= ($row['price_low']) ? _eunit($row['price_low']):_e("요금문의");
						$arr['src_thum']			= $row['img1_thum'];
						$arr['src']					= $row['img1_path'];
						$arr['area_nm']			= $r['area_nm'];
						$arr['areaa_cd_nm']		= $r['areaa_cd_nm'];
						$arr['areab_cd_nm']		= $r['areab_cd_nm'];
						$arr['areac_cd_nm']		= $r['areac_cd_nm'];
						$arr['b_uid_nm']           = $r['b_name'];
						$arr['special_nm']         = $r['special_nm'];
						$arr['level_cd_img']       = $r['level_cd_img'];
						$arr['level_cd_nm']       = $r['level_cd_nm'];
						$arr['g_select_num']       = $r['g_select_num'];
						$arr['min_price_sell'] = $row['price_ori'];
						$arr['review_total'] = $row['review_total'];	//후기카운트
						$arr['star_avg'] = $row['star_avg'];	//별점 평균
						$arr['special_icon']         = $row['special_icon'];

						$data[] = $arr;
					}


			}	//호텔

			else {	//상품

					$data_arr = good_list(" and g_uid='{$rows[r_uid]}'",$sql_order,0,1);
					$row = $data_arr[0];


					$arr['href']				= "#";
					$arr['good_nm']			= "";
					$arr['price']				= "";
					$arr['src']		= $cf['TO_IMG']['no_image_l'];
					$arr['src_thum']		= $cf['TO_IMG']['no_image_s'];

					if($row[g_uid]) {

						// 공통항목으로 매핑
						$href="../good/info_main.html";
						$mhref="../tmbi_good/info_main.html";

						$href .= "?b_uid_s={$row[b_uid]}&m_uid_s={$row[m_uid]}&s_uid_s={$row[s_uid]}&g_uid={$row[g_uid]}";
						$mhref .= "?b_uid_s={$row[b_uid]}&m_uid_s={$row[m_uid]}&s_uid_s={$row[s_uid]}&g_uid={$row[g_uid]}";

						$arr['href']					= $href;
						$arr['mhref']					= $mhref;
						$arr['good_nm']				= $row['g_title'];
						$arr['good_nm_short']	= mb_substr($row['g_title'],$cf['main_recom']['title']);
						$arr['brief']					= $row['g_brief'];
						$arr['brief_short']		= mb_substr($row['g_brief'],$cf['main_recom']['brief']);
						$arr['price']					= $row['main_to_max_price'];
						$arr['price2']				= $row['main_to_max_price2'];
						$arr['cityname']			= $row['CityName'];
						$arr['src_thum']			= $row['img_src2_thum'];
						$arr['src']						= $row['img_src2'];
						$arr['area_nm']				= $row['area_nm'];
						$arr['areaa_cd_nm']		= $row['areaa_cd_nm'];
						$arr['areab_cd_nm']		= $row['areab_cd_nm'];
						$arr['areac_cd_nm']		= $row['areac_cd_nm'];
						$arr['b_uid_nm']           = $row['b_uid_nm'];
						$arr['special_nm']         = $row['special_nm'];
						$arr['g_select_num']         = $row['g_select_num'];
						$arr['min_price_sell'] = $row['min_price_sell'];
						$arr['total'] = $row[total];	//후기카운트
						$arr['star_avg'] = $row[star_avg];	//별점 평균
						$arr['special_icon']         = $row['special_icon'];

						$data[] = $arr;
					}



			}	//상품

		}	//상품유무

		}	//while



	return $data;
}

function to_yoil($date, $chlang="") {
	if($chlang=="en") {
		$weekday = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
	} else {
		$weekday = array('일', '월', '화', '수', '목', '금', '토');
	}

	$weeknum = date("w", strtotime($date));
	$week_str = $weekday[$weeknum];
	return $week_str;

}

//[son]DB LOG
function logCheck($memo){	
	if(is_array($memo) || is_object($memo)) $memo = print_r($memo,true);
	$memo = addslashes($memo);
	$sql = "insert TB_LOG set ";
	$sql.= "memo='{$memo}' ";
	$sql.= ",wdate=NOW() ";
	$rs = db_query($sql);
}

//[son]
function prePrint($arr) {
	if($_SERVER['REMOTE_ADDR']!='115.94.73.157') return;
	echo '<pre>';
	print_r($arr);
	echo '</pre>';
}

//[son]기간 날짜 리턴
function getDatesFromRange($start, $end, $format = 'Y-m-d') {
	$array = array();
	$interval = new DateInterval('P1D');

	$realEnd = new DateTime($end);
	$realEnd->add($interval);

	$period = new DatePeriod(new DateTime($start), $interval, $realEnd);

	foreach($period as $date) {
		$array[] = $date->format($format);
	}

	return $array;
}

// 티켓 이력관리 (변경 후 호출)
function TO_ticket_history_ins($ticket_seq, $history_nm){
	global $TO_MB;

	// 기존 티켓 정보
	$sql = "select * from TB_TICKET where seq = '{$ticket_seq}'";
	$data = db_fetch($sql);

	foreach($data as $k => $v){
		if($v == NULL){
			$data[$k] = "";
		}
	}

	// 데이터
	$history_data = json_encode($data, JSON_UNESCAPED_UNICODE);

	$sql = "insert into TB_TICKET_HISTORY set ";
	$sql .= " ticket_seq='{$ticket_seq}'";
	$sql .= " ,ti_history_nm='{$history_nm}'";
	$sql .= " ,ti_history_data='{$history_data}'";
	$sql .= " ,ins_id='{$TO_MB[mb_id]}'";
	$sql .= " ,ins_dt=now()";

	Log::save(sprintf("%s(%d) 티켓 HISTORY 등록 : %s %s ", __FILE__, __LINE__, $ticket_seq, $history_nm), '', date('Ym'));

	db_query($sql);
}

// 티켓 이력관리 (상태별로 기록 - 야놀자 연동)
function TO_ticket_history_status_ins($ticket_seq, $ticket_status, $orderCd = ""){
	global $TO_MB;

	// 기존 티켓 정보
	$sql = "select * from TB_TICKET where seq = '{$ticket_seq}'";
	$dataTicket = db_fetch($sql);
	foreach($dataTicket as $k => $v){
		if($v == NULL){
			$dataTicket[$k] = "";
		}
	}

	// 예약 정보
	if($dataTicket['rsv_no']){
		$sql = "select * from TB_RES_GOOD where rsv_no = '{$dataTicket['rsv_no']}'";
		$dataRes = db_fetch($sql);

		// 티켓 가격
		switch($dataTicket['ti_generation']){
			case 'A' :
				$ticket_price = $dataRes['adult_price'];
				break;
			case 'C' :
				$ticket_price = $dataRes['child_price'];
				break;
			case 'B' :
				$ticket_price = $dataRes['baby_price'];
				break;
			default : 
				$ticket_price = $dataRes['adult_price'];
				break;
		}


		/*$orderCd = "";
		if($dataRes['agent_id'] == 'yanolja'){
			include_once PARTNER_DIR."/yanolja/class.Yanolja.php";

			$b2b_api_data = $dataRes['b2b_api_data'];
			$b2b_voucher = $dataRes['b2b_voucher'];
			$b2b_api_data_arr = json_decode($b2b_api_data,true);
			$orderCd = $b2b_api_data_arr[$b2b_voucher]['passengers'][0]['orderCd'];
		}*/

		$today = date('Y-m-d');

		// 데이터
		$sql = "insert into TB_TICKET_HISTORY_STATUS set ";
		$sql .= " ticket_seq='{$ticket_seq}'";
		$sql .= " ,rsv_no='{$dataTicket['rsv_no']}'";
		$sql .= " ,pin='{$orderCd}'";
		$sql .= " ,g_uid='{$dataRes['g_uid']}'";
		$sql .= " ,ticket_number='{$dataTicket['ticket_number']}'";
		$sql .= " ,ticket_price='{$ticket_price}'";
		$sql .= " ,ticket_status='{$ticket_status}'";
		$sql .= " ,history_date='{$today}'";
		$sql .= " ,b2b_voucher='{$dataRes['b2b_voucher']}'";
		$sql .= " ,producer_id='{$dataTicket['producer_id']}'";
		$sql .= " ,agent_id='{$dataRes['agent_id']}'";
		$sql .= " ,ins_id='{$TO_MB[mb_id]}'";
		$sql .= " ,ins_dt=now()";

		db_query($sql);

		Log::save(sprintf("%s(%d) 티켓 HISTORY2 - 등록 : %s %s ", __FILE__, __LINE__, $ticket_seq, $ticket_status), '', date('Ym'));

	} else {

		Log::save(sprintf("%s(%d) 티켓 HISTORY2 - 예약없음 : %s %s ", __FILE__, __LINE__, $ticket_seq, $ticket_status), '', date('Ym'));

	}
}




// 공급처에 예약 알림톡 발송
function TO_reserve_agent_alarm($producer_id, $res_no, $tpl = 'B2B_RESERVE'){

	if($producer_id == '' || $res_no == '') return false;

	Log::save(sprintf("%s(%d) 공급처 알람톡 발송 : %s %s", __FILE__, __LINE__, $producer_id, $res_no), '', date('Ym'));

	$producer_data = db_fetch("select ag_alarm_phone from TB_MEMBER where mb_id='{$producer_id}'");
	$ag_alarm_phone = explode("|", $producer_data['ag_alarm_phone']);

	Log::save(sprintf("%s(%d) 공급처 수신 번호 : %s ", __FILE__, __LINE__, $producer_data['ag_alarm_phone']), '', date('Ym'));

	if($ag_alarm_phone){
		// 상용구
		$keyword = array(
			'접수번호'		=> $res_no
		);

		// 발송
		foreach($ag_alarm_phone as $k => $to_phone){
			send_auto_alimtalk($tpl, "", $to_phone, $keyword);
		}

	}
}

// 메일 함수 (다이렉트샌드)
function TO_sendmail($from, $to, $subject, $content, $file_list, $param) {

	global $TO_MB;

	Log::save(sprintf("%s(%d) 메일 발송 : %s => %s [%s]", __FILE__, __LINE__, $from, json_encode($to), $subject), '', 'directsend/'.date('Ym'));

	// 보내는사람 주소에 이름 있는 경우 인코딩 처리
	if (preg_match('/.*\<.*\>.*/', $from)) {
		$tmp = explode("<", $from);
		$from_name = trim($tmp[0]);
		$from_email = trim(str_replace(">","",$tmp[1]));
	} else {
		$from_name = 'TK TRAVEL';
		$from_email = $from;
	}

	# 마무리 공통작업
	$content = preg_replace("/\r?\n\.\r?\n/", "\n .\n", $content);

	// 메일 발송
	$server_root_path = $_SERVER['DOCUMENT_ROOT'];
	include_once $server_root_path."/partner/directsend/class.DirectSend.php";

	$DS = new DirectSend;
	$send_result = $DS->mailSend($to, $subject, $content, $from_name, $from_email, $param['file']);

	Log::save(sprintf("%s(%d) 메일 발송 결과 : %", __FILE__, __LINE__, json_encode($send_result)), '', 'directsend/'.date('Ym'));

	// 히스토리저장
	$to_history = implode(",", $to);
	$to_count = count($to);
	$sql = "insert into TB_MAIL_HISTORY set 
					admin_id='{$TO_MB[mb_id]}', 
					res_no='{$param[res_no]}', 
					cust_nm='{$param[cust_nm]}', 
					recv_mail='{$to_history}', 
					recv_count='{$to_count}', 
					send_mail='{$from}',
					message='{$subject}', 
					mail_cont='{$content}', 
					api_msg_key='', 
					ins_dt=now()";
	db_query($sql);

	if($send_result['status'] == '0'){
		$success = true;
	} else {
		$success = false;
	}

	return $success;
}

// 월별 예약 리스트(정산용)
function TO_get_reserv_data($start_ym, $end_ym){

	/* RETURN DATA */
	/*
		tab				구분
		res_no			예약번호
		ins_date		예약일
		start_date		행사일
		nat_cd			국적
		admin_id		관리자
		sales_total		판매금액(고객)
		agent_total		판매금액(판매처)
		buy_total		공급가
		agent_id		판매처 id
	*/

	/* TAB LIST */
	// T 티켓 D 투어 P 패키지 L 호텔 B 버스  E 견적서

	// 시작월
	if(!$start_ym) $start_ym = date('Y-m');
	$month_s = $start_ym . "-01";

	// 종료월
	if(!$end_ym) $end_ym = $start_ym;
	$month_e = $end_ym . "-31";

	// 티켓/투어 예약 데이터
	$sql = "SELECT tab, res_no, agent_id, g_uid, g_title, ev_start as start_date, LEFT(ins_dt, 10) as ins_date, admin_id, sales_total, agent_total, buy_total, agent_id, res_cust_nat_cd as nat_cd, (SELECT COUNT(*) FROM TB_RES_GOOD_PERSON P WHERE P.res_no = R.res_no) AS person
	FROM TB_RES_GOOD R WHERE order_state in('B', 'F') AND ev_start >= '{$month_s}' AND ev_start <= '{$month_e}'";
	$rs = db_query($sql);

	while($row=db_fetch_array($rs)) {
		$res_data[] = $row;
	}

	// 호텔 예약 데이터
	$sql = "SELECT 'L' as tab, res_no, agent_id, room_date as start_date, LEFT(ins_dt, 10) as ins_date, admin_id, sales_total, agent_total, buy_total, agent_id, res_cust_nat_cd as nat_cd, (SELECT COUNT(*) FROM TB_RES_HOTEL_PERSON P WHERE P.res_no = R.res_no) AS person
	FROM TB_RES_HOTEL R WHERE order_state in('E', 'G') AND room_date >= '{$month_s}' AND room_date <= '{$month_e}'";
	$rs = db_query($sql);

	while($row=db_fetch_array($rs)) {
		$res_data[] = $row;
	}

	// 버스 예약 데이터
	$sql = "SELECT 'B' as tab, b_idx as res_no, LEFT(start_date, 10) as start_date, LEFT(ins_dt, 10) as ins_date, total_sell_price as sales_total, total_buy_price as buy_total FROM TB_ERP_BUS WHERE start_date >= '{$month_s}' and start_date <= '{$month_e}'";
	$rs = db_query($sql);

	while($row=db_fetch_array($rs)) {
		$res_data[] = $row;
	}

	// 견적서 데이터
	$sql = "SELECT 'E' as tab, (num_adult+num_child+num_foc) as person, start_date, erp1.regdate as ins_date, total_sell_price as sales_total, total_buy_price as buy_total FROM TB_ERP_ALL erp1 LEFT JOIN TB_ERP_ESTIMATE esti on(erp1.a_idx=esti.a_idx) where state in('B', 'D', 'F', 'C', 'E') AND start_date >= '{$month_s}' AND start_date <= '{$month_e}'";
	$rs = db_query($sql);


	while($row=db_fetch_array($rs)) {
		$res_data[] = $row;
	}

	return $res_data;

}



// 월별 예약 리스트(정산용)
function TO_get_reserv_data_b2b($start_ym, $end_ym){

    /* RETURN DATA */
    /*
        tab				구분
        res_no			예약번호
        ins_date		예약일
        start_date		행사일
        nat_cd			국적
        admin_id		관리자
        sales_total		판매금액(고객)
        agent_total		판매금액(판매처)
        buy_total		공급가
        agent_id		판매처 id
    */

    /* TAB LIST */
    // T 티켓 D 투어 P 패키지 L 호텔 B 버스  E 견적서

    // 시작월
    if(!$start_ym) $start_ym = date('Y-m');
    $month_s = $start_ym . "-01";

    // 종료월
    if(!$end_ym) $end_ym = $start_ym;
    $month_e = $end_ym . "-31";

    // 티켓/투어 예약 데이터
    $sql = "SELECT tab, res_no, gdt_pe_daesu, agent_id, adult_price, child_price, baby_price, adult_buy, child_buy, baby_buy, adult_agent, child_agent, baby_agent,  g_uid, g_title, ev_start as start_date, LEFT(ins_dt, 10) as ins_date, admin_id, sales_total, agent_total, buy_total, agent_id, res_cust_nat_cd as nat_cd, 
        (SELECT COUNT(*) FROM TB_RES_GOOD_PERSON P WHERE P.res_no = R.res_no AND P.generation = 'A') AS personAdult,
        (SELECT COUNT(*) FROM TB_RES_GOOD_PERSON P WHERE P.res_no = R.res_no AND P.generation = 'C') AS personChild, 
        (SELECT COUNT(*) FROM TB_RES_GOOD_PERSON P WHERE P.res_no = R.res_no AND P.generation = 'B') AS personBaby 
	FROM TB_RES_GOOD R WHERE order_state in('B', 'F') AND ev_start >= '{$month_s}' AND ev_start <= '{$month_e}' ORDER BY ev_start ASC";
    $rs = db_query($sql);

    while($row=db_fetch_array($rs)) {
        $res_data[] = $row;
    }
/*
    // 호텔 예약 데이터
    $sql = "SELECT 'L' as tab, res_no, agent_id, room_date as start_date, LEFT(ins_dt, 10) as ins_date, admin_id, sales_total, agent_total, buy_total, agent_id, res_cust_nat_cd as nat_cd, (SELECT COUNT(*) FROM TB_RES_HOTEL_PERSON P WHERE P.res_no = R.res_no) AS person
	FROM TB_RES_HOTEL R WHERE order_state in('E', 'G') AND room_date >= '{$month_s}' AND room_date <= '{$month_e}'";
    $rs = db_query($sql);

    while($row=db_fetch_array($rs)) {
        $res_data[] = $row;
    }

    // 버스 예약 데이터
    $sql = "SELECT 'B' as tab, b_idx as res_no, LEFT(start_date, 10) as start_date, LEFT(ins_dt, 10) as ins_date, total_sell_price as sales_total, total_buy_price as buy_total FROM TB_ERP_BUS WHERE start_date >= '{$month_s}' and start_date <= '{$month_e}'";
    $rs = db_query($sql);

    while($row=db_fetch_array($rs)) {
        $res_data[] = $row;
    }

    // 견적서 데이터
    $sql = "SELECT 'E' as tab, (num_adult+num_child+num_foc) as person, start_date, erp1.regdate as ins_date, total_sell_price as sales_total, total_buy_price as buy_total FROM TB_ERP_ALL erp1 LEFT JOIN TB_ERP_ESTIMATE esti on(erp1.a_idx=esti.a_idx) where state in('B', 'D', 'F', 'C', 'E') AND start_date >= '{$month_s}' AND start_date <= '{$month_e}'";
    $rs = db_query($sql);
*/

    while($row=db_fetch_array($rs)) {
        $res_data[] = $row;
    }

    return $res_data;

}



/**
 * @author taeyoung
 * @date 2022-07-06
 * 메인페이지 유튜브 데이터 불러오기
 * @return array
 */
function get_main_youtube(){
	$sql = "SELECT * FROM youtube_link WHERE disp_yn ='Y' ORDER BY seq ASC";
	$rs = db_query($sql);

	while($row=db_fetch_array($rs)) {
		$res_data[] = $row;
	}

	return $res_data;
}

/**
 * @author taeyoung
 * @date 2022-07-06
 * 관리자페이지 유튜브 정보 수정용
 * @return array
 */
function getYoutubeData($ytid){
	$sql = "SELECT * FROM youtube_link WHERE ytid = '{$ytid}'";
	$rs = db_query($sql);

	$data=db_fetch_array($rs);
	return $data;
}


/**
 * @author taeyoung
 * @date 2023-02-16
 * @param $footerIconLinkID
 * @return array|false|null
 */
function getFooterIconData($footerIconLinkID){
    $sql = "SELECT * FROM footerIconLink WHERE footerIconLinkID = {$footerIconLinkID}";
    $data = db_fetch($sql);
    return $data;
}


/**
 * @author taeyoung
 * @date 2022-07-08
 * 단체예약 미리보기 정보
 * @return array
 */
function getGroupResInfo($con_id){
	$sql = "SELECT * FROM group_consult WHERE con_id = {$con_id}";
	$rs = db_query($sql);

	$data=db_fetch_array($rs);
	return $data;
}


/**
 * 단체예약 읽었을 때 확인 체크
 * @param $con_id
 * @return bool
 */
function setConfirmGroupResInfo($con_id){

    if(!$con_id){
        return false;
    }

    $sql = "UPDATE group_consult SET con_confirm = 'Y' WHERE con_id = {$con_id}";
    db_query($sql);
    return true;
}






/**
 * 통화 데이터
 * @return array
 */
function getCurrencyData(){
	$date = date("Y-m-d", time());
	$sql = "SELECT * FROM API_EXCHANGE_DATA WHERE ins_dt = '{$date}' ORDER BY ID DESC LIMIT 1";
	$rs = db_query($sql);

	$data =db_fetch_array($rs);

	return $data;
}

function getFooterIconAllData($lang){
    $sql = "SELECT * FROM footerIconLink WHERE lang = '{$lang}' ORDER BY seq ASC";
    $res = db_query($sql);
    $data = array();

    while($row = db_fetch_array($res)){
        array_push($data, $row);
    }

    return $data;
}

function getDepositWithoutBankBookInfo($res_no){

	//T||T168240717475BDF81

	$tabInfo = substr($res_no,0,1);
	$res_info = $tabInfo.'||'.$res_no;

	$sql = "SELECT count(*) AS cnt FROM `TB_RES_BANK` WHERE res_info = '{$res_info}'";
//	p($sql);
	$data = db_fetch($sql);
	return (int) $data['cnt'];
}
?>

Anon7 - 2021