

String.prototype.trim = function() { 
	return this.replace(/(^\s*)|(\s*$)/g, ""); 
}

String.prototype.str_replace = function(str1,str2) {
	return this.split(str1).join(str2);
}

String.prototype.josa = function(nm) {
	var nm1 = nm.trim().substring(0, nm.trim().indexOf("/"));
	var nm2 = nm.trim().substring(nm.trim().indexOf("/") + 1, nm.trim().length);
	var a = this.substring(this.length - 1, this.length).charCodeAt();
	a = a - 44032;
	var jongsung = a % 28;
	return (jongsung) ? nm1 : nm2;
}

function toNumber(str)
{
	if (str==null || str.length==0)
	{
		return 0;
	}
	if (typeof(str)=='number')
		return str;

	var n = 0;
	try
	{
		str = str.replace(/(,)*/g, "");
		n = parseInt(str, 10);
	}
	catch (e)
	{

	}
	return n;
}

function number_format(num)
{
	if (num==null)
	{
		return '0';
	}
	if (typeof(num)=='number')
	{
		num = String(num);
	}

	return num.replace(/(\d)(?=(?:\d{3})+(?!\d))/g,'$1,');
}

addLoadEvent(initPage);

function initPage()
{
	initNumberInput();
	initImageRotate();
	showTodaysView();
}

var _rotate_imgs = Array();

function initImageRotate()
{
	var imgs = getElementsByTagAndClassName('img', 'prd_img', null);

	for (var i=0; i<imgs.length; i++)
	{
		var rotate = getNodeAttribute(imgs[i], '_rotate');
		if (rotate==null || rotate.length==0)
		{
			continue;
		}
		var obj = {'node': imgs[i], 'n':0, 'imgs': rotate.split(',') };
		_rotate_imgs[_rotate_imgs.length] = obj;
	}
	if (_rotate_imgs.length)
		callLater(1, rotateImages);
}

function rotateImages() {
	for (var i=0; i<_rotate_imgs.length; i++) {
		var obj = _rotate_imgs[i];
		obj['n']++;
		if (obj['n']>=obj['imgs'].length) {
			obj['n'] = 0;
		}
		setNodeAttribute(obj['node'], 'src', obj['imgs'][obj['n']]);
	}
	callLater(1, rotateImages);
}

function initNumberInput()
{
	var inputs = getElementsByTagAndClassName('input', 'number', null);

	if (inputs==null || inputs.length==0)
	{
		return ;
	}

	for (var i=0; i<inputs.length; i++)
	{
		var c = connect(inputs[i], 'onkeydown', validateNumberFormat);
		var c = connect(inputs[i], 'onkeyup', convertNumberFormat);
	}
}

function convertNumberFormat(e)
{
	var k;
	
	if ('key' in e) {
		k = e.key().code;
	}
	else {
		k = e.keyCode;
	}

	if ( k==9 || k==109 || k==189 || k==107 || k==8  || k==37  || k==39  || k==46  || k==36 ) {
		return true;
	}

	if (e._src==null) {
		e.srcElement.value = number_format(toNumber(e.srcElement.value));
	}
	else {
		e._src.value = number_format(toNumber(e._src.value));
	}
	return true;
}

function validateNumberFormat(e)
{
	// 0=48(96), 9=57(105), 8=backspace, 37=left, 39=right, 46=del, 36=home, 9=tab, 109/189=-, 107=+
	var k;
	
	if ('key' in e) {
		k = e.key().code;
	}
	else {
		k = e.keyCode;
	}

	if ((k>=48 && k<=57) || (k>=96 && k<=105) || k==109 || k==107 || k==189 || k==8  || k==37  || k==39  || k==46  || k==36  || k==9 ) {
		return true;
	}

	if ('stop' in e) {
		e.stop();
	}
	return false;
}

function toggleSelectState(src, name, like /* optional */)
{
	var f = getFirstParentByTagAndClassName(src, 'form', null);

	if (typeof(like)=='undefined') {
		like = false;
	}

	var callback = null;
	if (typeof(toggleBgColor)=='function') {
		callback = toggleBgColor;
	}

	for (var i=0; i<f.elements.length; i++)
	{
		var eName = '';
		if (like==false)
		{
			eName = f.elements[i].name;
		}
		else 
		{
			eName = f.elements[i].name.substr(0,
					(f.elements[i].name.length > name.length ? name.length : f.elements[i].name.length)
				);
		}
		if (eName==name && 'checked' in f.elements[i])
		{
			f.elements[i].checked = f.elements[i].checked==true ? false : true;
			if (callback) {
				callback(f.elements[i]);
			}
		}
	}

	return false;
}

function getChecked(f, name, like /* optional */)
{
	var r = Array();

	if (typeof(like)=='undefined') {
		like = false;
	}

	for (var i=0; i<f.elements.length; i++)
	{
		var eName = '';
		if (like==false)
		{
			eName = f.elements[i].name;
		}
		else 
		{
			eName = f.elements[i].name.substr(0,
					(f.elements[i].name.length > name.length ? name.length : f.elements[i].name.length)
				);
		}

		if (eName==name && 'checked' in f.elements[i] && f.elements[i].checked==true)
		{
			r[r.length] = f.elements[i];
		}
	}

	return r;
}

function getSelected(f, name, like /* optional */)
{
	var r = Array();

	if (typeof(like)=='undefined') {
		like = false;
	}

	for (var i=0; i<f.elements.length; i++)
	{
		var eName = '';
		if (like==false)
		{
			eName = f.elements[i].name;
		}
		else 
		{
			eName = f.elements[i].name.substr(0,
					(f.elements[i].name.length > name.length ? name.length : f.elements[i].name.length)
				);
		}

		
		if (eName==name && 'value' in f.elements[i] && f.elements[i].value != null && f.elements[i].value.length > 0)
		{
			r[r.length] = f.elements[i];
		}
	}

	return r;

}

function getElementsByNames(f, name, like /* optional */)
{
	var r = Array();

	if (typeof(like)=='undefined') {
		like = false;
	}

	for (var i=0; i<f.elements.length; i++)
	{
		var eName = '';
		if (like==false)
		{
			eName = f.elements[i].name;
		}
		else 
		{
			eName = f.elements[i].name.substr(0,
					(f.elements[i].name.length > name.length ? name.length : f.elements[i].name.length)
				);
		}

		if (eName==name)
		{
			r[r.length] = f.elements[i];
		}
	}

	return r;
}

extraOption = {};


function getElementLeft(obj)
{

	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
};

function getElementTop(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
};

function getElementHeight(elem) {

	yPos = elem.offsetHeight;

	return parseInt(yPos);

};

function getElementWidth(elem) {

	xPos = elem.offsetWidth;

	return parseInt(xPos);

};

function setInputValues(json) {
	for ( id in json )
	{
		var elm = $(id);
		if (elm==null)
		{
			continue;
		}

		elm.value = json[id];
	}
	return false;
}

function beautifyTable(tbl)
{
	if (tbl==null)
	{
		return ;
	}
	if (tbl.rows.length==1)
	{
		return ;
	}
	var nRows = tbl.rows.length;
	for (var i=1; i<nRows; i++)
	{
		var nCells = tbl.rows[i].cells.length;
		var maxRows = nRows;
		for (var j=0; j<nCells; j++)
		{
			var n=0;
			for (var k=i+1; k<maxRows; k++)
			{
				if (tbl.rows[i].cells[j].innerHTML!=tbl.rows[k].cells[j].innerHTML)
				{
					break;
				}
				tbl.rows[k].cells[j].innerHTML = '';
				n++;
			}
			if (n==0)
			{
				break;
			}

			tbl.rows[i].cells[j].rowSpan = n+1;
			maxRows = k;
		}
	}
	removeEmptyCell(tbl);
}

function removeEmptyCell(tbl)
{
	if (tbl==null)
	{
		return ;
	}

	var nRows = tbl.rows.length;
	for (var i=0; i<nRows; i++)
	{
		var nCells = tbl.rows[i].cells.length;
		var maxRows = nRows;
		for (var j=0; j<nCells; j++)
		{
			if (tbl.rows[i].cells[j].innerHTML=='')
			{
				tbl.rows[i].deleteCell(j);
				j--;
				nCells = tbl.rows[i].cells.length;
			}
		}
	}
}

function setImageSrc(url, dst)
{
	if (dst==null) {
		return true;
	}
	dst.src = url;

	return true;
}


function setSize(width,height) {
	if (window.outerWidth) {
		window.outerWidth = width;
		window.outerHeight = height;
	}
	else if (window.resizeTo) {
		window.resizeTo(width,height);
	}
}

function in_array(value, array) {
	for (var i=0; i<array.length; i++) {
		if (array[i]==value) {
			return true;
		}
	}
	return false;
}

function openPopupWindow(name, url, left, top, width, height) {
	window.open(url, name, 'resizable=no,scrollbars=no,status=no, '+(left==null ? '' : 'left='+left)+', '+(top==null ? '':'top='+top)+', width='+width+', height='+height);
}


function addDelConfirm(classname) {
	var hrefLinks = getElementsByTagAndClassName('a', classname);

	for (var i=0; i<hrefLinks.length; i++)
	{
		var c = connect(hrefLinks[i], 'onclick', openConfirmAlert);
	}
}

function openConfirmAlert(e) {
	var r = confirm('Á¤¸» »èÁ¦ÇÏ½Ã°Ú½À´Ï±î?');

	if (r==null || r==false)
	{
		if ('stop' in e) {
			e.stop();
		}

		return false;
	}
	return true;
}

function getMouseXY(e) {
	if (typeof(e)=='undefined' /* checkIE()*/ ) { // grab the x-y pos.s if browser is IE
		tempX = window.event.clientX + document.body.scrollLeft;
		tempY = window.event.clientY + document.body.scrollTop;
	} else {  // grab the x-y pos.s if browser is NS
		var m = e.mouse();
		tempX = m.page.x;
		tempY = m.page.y;
	}  
	// catch possible negative values in NS4
	if (tempX < 0){tempX = 0};
	if (tempY < 0){tempY = 0} ; 
	// show the position values in the form named Show
	// in the text fields named MouseX and MouseY
	return {'x':tempX, 'y':tempY};
};

function showTodaysView() {
	var d = $('todays_view');
	if (d==null)
		return ;
	var tbl = $('b_table');
	if (tbl==null)
		return ;

	var left = getElementLeft(tbl);
	var width = getElementWidth(tbl);

	setStyle(d, {'left': left+width} );
	showElement(d);
	AtScroll.init();
	AtScroll.add('todays_view', 50);
	callLater(0.5, adjustTodaysView); 
}

function adjustTodaysView() {
	var d = $('todays_view');
	if (d==null)
		return ;
	var tbl = $('b_table');
	if (tbl==null)
		return ;

	var left = getElementLeft(tbl);
	var width = getElementWidth(tbl);

	setStyle(d, {'left': left+width} );
	AtScroll.ids['todays_view']['left'] = left+width;
	callLater(0.5, adjustTodaysView); 
}

function downTodaysView() {
	var d = $('todays_view');
	if (d==null)
		return ;
	var tbls = getElementsByTagAndClassName('table', null, d);
	if (tbls.length<1) {
		return ;
	}

	var tbls = getElementsByTagAndClassName('table', null, tbls[0]);
	if (tbls.length<1) {
		return ;
	}

	var tbl = tbls[0];
	var h = false;
	if (tbl.rows.length<5) {
		return false;
	}
	for (var i=0; i<tbl.rows.length; i++) {
		var s = getStyle(tbl.rows[i], 'display');
		if (s=='block' && h==false) {
			if (i+5>=tbl.rows.length) {
				break;
			}
			hideElement(tbl.rows[i]);
			h = true;
		}
		if (s=='none' && h==true) {
			showElement(tbl.rows[i]);
			break;
		}
	}
	return false;
}

function upTodaysView() {
	var d = $('todays_view');
	if (d==null)
		return ;
	var tbls = getElementsByTagAndClassName('table', null, d);
	if (tbls.length<1) {
		return ;
	}

	var tbls = getElementsByTagAndClassName('table', null, tbls[0]);
	if (tbls.length<1) {
		return ;
	}

	var tbl = tbls[0];
	var h = false;
	if (tbl.rows.length<5) {
		return false;
	}
	for (var i=tbl.rows.length-1; i>=0; i--) {
		var s = getStyle(tbl.rows[i], 'display');
		if (s=='block' && h==false) {
			if (i-5<0) {
				break;
			}
			hideElement(tbl.rows[i]);
			h = true;
		}
		if (s=='none' && h==true) {
			showElement(tbl.rows[i]);
			break;
		}
	}
	return false;
}

function goAnchor(src) {
	var uri = parseUri (src.href);
	var id = uri['anchor'];

	if ($(id))
	{
		var top = getElementTop($(id));

		window.scrollTo(0, top-20);
	}
	else {
		window.scrollTo(0, 0);
	}

	return false;

}

