/*************************************************
// 검색 서비스 관련 공용 자바스크립트 함수 모음 //
// 생성자 : 최진종 (cjj@hi.pe.kr)               //
// 상세 사용법 생략... 차후 정리...             //
*************************************************/

var HIPEKR_ajax;
var HIPEKR_is_request=false;

function HIPEKR_xml_http_request()
{
	var xmlreq = false;

	if(window.XMLHttpRequest)
	{
		xmlreq = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		try
		{
			xmlreq = new ActiveXObject('Msxml2.XMLHTTP');
		}
		catch(e1)
		{
			try
			{
				xmlreq = new ActiveXObject('Microsoft.XMLHTTP');
			}
			catch(e2)
			{
				xmlreq = null;
			}
		}
	}

	if(!xmlreq && window.XMLHttpRequest)
	{
		xmlreq = new XMLHttpRequest();
	}

	return xmlreq;
}

function HIPEKR_http_request(callback, url, param, method, async)
{
	if(url.length < 2)
	{
		alert('접속주소(URL)를 정확히 입력해 주세요!');
		return false;
	}

	if(!document.getElementById)
	{
		alert('브라우져가 "DOM"을 지원하지 않습니다!');
		return false;
	}

	if(typeof async == 'undefined')
		async = true;

	var req = HIPEKR_xml_http_request();

	req.onreadystatechange = function()
	{
		HIPEKR_is_request = false;

		if(req.readyState == 4)
		{
			if(req.status == 200)
			{
				callback(req);
			}
			else
			{
				alert('"XML" 통신 장애입니다. 잠시 후 시도해 주세요.');
			}
		}
	}

	req.open(method?method:'GET', url+'?ajax=ok'+(method=='POST'?'':'&'+param), async);

	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

	req.send(method=='POST'?param:null);
}

function HIPEKR_request_check()
{
	if(HIPEKR_is_request == true)
	{
		alert('로딩중입니다. 잠시만 기다려 주세요.');
		return false;
	}
	else
		HIPEKR_is_request = true;

	return true;
}

function delay_focus(obj)
{
	setTimeout(function() { obj.focus(); }, 200);
}

function area_req(box,code1,code2)
{
	if(HIPEKR_request_check() == false)
		return false;

	HIPEKR_http_request(area_res, '/search/lib/area_gugun_dong.xml.php', 'box='+box+'&code1='+code1+(code2?'&code2='+code2:''));
}

function area_res(req)
{
	var xml=req.responseXML.getElementsByTagName('xml')[0];

	if(xml.getAttribute('result') != 'ok')
	{
		if(xml.getAttribute('err_msg'))
			alert(xml.getAttribute('err_msg'));
		return false;
	}

	var box=document.getElementById(xml.getAttribute('box'));

	for(var i=box.length; i>1; i--)
		box.options[i-1] = null;
	box.options.selectedIndex = 0;

	var rows=xml.getElementsByTagName('row');

	for(var i=0; i<rows.length; i++)
	{
		var row=rows[i];

		try
		{
			var code=row.getElementsByTagName('code')[0].firstChild.nodeValue;
			var name=row.getElementsByTagName('name')[0].firstChild.nodeValue;
		}
		catch(e)
		{
			code = '';
			name = '';
		}

		box.options[box.length] = new Option(name, code);
	}

	try
	{
		box.reInitializeSelectBox();
	}
	catch(e) {}
}

function page_list(url, page, size, total)
{
	if(total < 1)
		return '';

	var html = '';
	var page_block = 10;
	var page_total = Math.floor((total-1)/size) + 1;

	var page_first = Math.floor((page-1)/page_block) * page_block + 1;
	if(page_first <= 0)
		page_first = 1;

	var page_last = page_first-1 + page_block;
	if(page_last > page_total)
		page_last = page_total;

	if(page_first > page_block)
	{
		html += page_anchor(url, 1, '<<처음') + '&nbsp;\n';
		html += page_anchor(url, page_first-1, '<이전') + '&nbsp;|&nbsp;\n';
	}

	for(i=page_first; i<=page_last; i++)
	{
		if(page == i)
			html += '<b>'+i+'</b>&nbsp;\n';
		else
			html += page_anchor(url, i, '['+i+']') + '&nbsp;\n';
	}

	if(page_last < page_total)
	{
		html += '|&nbsp;' + page_anchor(url, page_last+1, "다음>") + '\n';
//		html += '&nbsp;' + page_anchor(url, page_total, "끝>>") + '\n';
	}

	return html;
}

function page_anchor(url, page, text)
{
//	return '<a href="javascript:;" onclick="page_goto(\''+url+'\',\''+page+'\');">'+text+'</a>';
	return '<a href="'+url+'&page='+page+'">'+text+'</a>';
}

function page_goto(url, page)
{
	location.href = url + '&page=' + page;
}

function page_list2(url, page, size, total)
{
	if(total < 1)
		return '';

	var html = '';
	var page_block = 10;
	var page_total = Math.floor((total-1)/size) + 1;

	var page_first = Math.floor((page-1)/page_block) * page_block + 1;
	if(page_first <= 0)
		page_first = 1;

	var page_last = page_first-1 + page_block;
	if(page_last > page_total)
		page_last = page_total;

	if(page_first > page_block)
	{
		html += page_anchor2(url, 1, 'prev_end', '처음') + '\n';
		html += page_anchor2(url, page_first-1, 'prev', '이전') + '\n';
	}

	for(i=page_first; i<=page_last; i++)
	{
		if(page == i)
			html += '<strong>'+i+'</strong>\n';
		else
			html += page_anchor(url, i, i) + '\n';
	}

	if(page_last < page_total)
	{
		html += page_anchor2(url, page_last+1, 'next', "다음") + '\n';
//		html += page_anchor2(url, page_total, 'next_end', "끝") + '\n';
	}

	return html;
}

function page_anchor2(url, page, style, text)
{
//	return '<a href="javascript:;" onclick="page_goto(\''+url+'\',\''+page+'\');" class="'+style+'">'+text+'</a>';
	return '<a href="'+url+'&page='+page+'" class="'+style+'">'+text+'</a>';
}

function info_view_open(seq)
{
	var width=746;
	var height=710;

	var top=(screen.availHeight-height)/2-30;
	var left=(screen.availWidth-width)/2-50;

	if(!seq)
	{
		alert("정상적으로 등록된 정보가 없습니다.");
		return false;
	}
	else
	{
		var url='/search/info_view.php?seq='+seq;
		window.open(url,'info_view','scrollbars=yes,width='+width+',height='+height+',top='+top+',left='+left);
	}
}

