/**
 * get request parameter from querystring
 * usage : getRequestParameter()["cmd"]
 */
function getRequestParameter(url)
{
	if(url == null || url == "")
	{
		url = location.href;
	}

	var queryString = (url.split("?"))[1];
	var request = Array();

	if(queryString != null)
	{
		var urlArray = queryString.split("&");
		for(var i = 0; i < urlArray.length; i ++)
		{
			var array = urlArray[i].split("=");
			request[array[0]] = array[1];
		}
	}

	return request;
}

function getRequestURI(url)
{
	if(url == null || url == "")
	{
		url = location.href;
	}

	var requestURI = (url.split("?"))[0];

	return requestURI;
}

function getScriptName(url)
{
	if(url == null || url == "")
	{
		url = getRequestURI();
	}

	var scriptNameArray = url.split("/");

	return scriptNameArray[scriptNameArray.length - 1];
}

//////////////////////////////////////////////////////
//checkbox functions
//////////////////////////////////////////////////////

/**
 * if any checkBox object is checked, return true
 */
function isChecked(checkBox)
{
	var result = false;
	
	if(checkBox == null)
	{
		result = false;
	}
	else if(checkBox.length == null)
	{
		result = checkBox.checked;
	}
	else
	{
		for(var i = 0; i < checkBox.length; i ++)
		{
			if(checkBox[i].checked == true)
			{
				result = true;
				break;
			}
		}
	}
	
	return result;
}

/**
 * check checkbox if value is "value"
 */
function checkCheckBox(object, value, flag)
{
	if(flag == null)
	{
		flag = true;
	}
	
	if(object.length == null)
	{
		if(object.value == value)
		{
			object.checked = flag;
		}
	}
	else
	{
		for(var i = 0; i < object.length; i ++)
		{
			if(object[i].value == value)
			{
				object[i].checked = flag;
				break;
			}
		}
	}

	return;
}

/**
 * get array checked values
 */
function getStringCheckBoxValues(object)
{
	var result = new Array();
	
	if(object.length == null)
	{
		if(object.checked == true)
		{
			result.push(object.value);
		}
	}
	else
	{
		for(var i = 0; i < object.length; i ++)
		{
			if(object[i].checked == true)
			{
				result.push(object[i].value);
			}
		}
	}
	
	return result;
}

/**
 * check checkbox if value is "value1,value2"("," splited string)
 */
function checkCheckBoxFromArrayString(object, value)
{
	var valueArray = value.toString().split(",");

	for(var i = 0; i < valueArray.length; i ++)
	{
		checkCheckBox(object, valueArray[i], true);
	}
	return;
}

function checkCheckBoxAll(checkBox, flag)
{
	if(checkBox.length == null)
	{
		checkBox.checked = flag;
	}
	else
	{
		for(var i = 0; i < checkBox.length; i ++)
		{
			checkBox[i].checked = flag;
		}
	}
	
	return;
}

function checkCheckBoxAllToggle(checkBox, targetCheckBox)
{
	
		
	if(targetCheckBox.length == null)
	{
		if(checkBox.checked == false){
			targetCheckBox.checked = '';
		}else{
			targetCheckBox.checked = 'check';
		}
	}
	else
	{		
		if(checkBox.checked == false){
			for(var i = 0; i < targetCheckBox.length; i ++)
			{
				
				targetCheckBox[i].checked = '';
			}
		}else{
			
			for(var i = 0; i < targetCheckBox.length; i ++)
			{
				targetCheckBox[i].checked = 'check';
			}
		}
	}
	
	return;
}
//////////////////////////////////////////////////////
//radio functions
//////////////////////////////////////////////////////

/**
 * set object checked
 */
function checkRadio(object, value)
{		
	for (var i = 0; i < object.length; i ++)
	{
		if (object[i].value == value)
		{
			object[i].checked = true;
			break;
		}
	}
	return;
}

/**
 * get checked value
 */
function getRadioCheckedValue(object)
{
	var result = "";
	if(object == null)
	{
		result = "";
	}
	else if(object.length == null)
	{
		if(object.checked == true)
		{
			result = object.value;
		}
		else
		{
			result = "";
		}
	}
	else
	{
		for(var i = 0; i < object.length; i ++)
		{
			if(object[i].checked == true)
			{
				result = object[i].value;
			}
		}
	}
	
	return result;
}

//////////////////////////////////////////////////////
//select box functions
//////////////////////////////////////////////////////

/**
 * add options from source selectbox selected to target selectbox
 */
function addSelectBoxFromSelectBox(sourceSelectBox, targetSelectBox, max)
{
	if(max == null)
	{
		max = 99999999;
	}
	for(var i = 0; i < sourceSelectBox.length; i ++)
	{
		if(sourceSelectBox[i].selected == true && sourceSelectBox[i].value != "")
		{
			if(targetSelectBox.length > max)
			{
				return false;
			}
			
			setSelectBox(targetSelectBox, sourceSelectBox[i].text, sourceSelectBox[i].value);
		}
	}

	return true;
}

/**
 * add option from name, value
 */
function setSelectBox(object, name, value)
{
	if(isExistSelectBox(object, value) == false)
	{
		var i = object.length;
	
		var option = new Option(name, value);
		object.options[i] = option;
	}

	return;
}

/**
 * add options from array
 * isIndexToValue : set array index to option value
 */
function setSelectBoxFromArray(object, array, isIndexToValue)
{
	var len = object.length;
	
	if(isIndexToValue == true)
	{
		for(var i in array)
		{
			var option = new Option(array[i], i);
			object.options[len++] = option;
		}
	}
	else
	{
		for(var i in array)
		{
			var option = new Option(array[i], array[i]);
			object.options[len++] = option;
		}
	}
	
	return;
}

/**
 * delete selected options
 */
function deleteSelectBoxFormSelectBox(selectBox)
{
	for(var i = selectBox.length - 1; i >= 0; i --)
	{
		if(selectBox[i].selected == true && selectBox[i].value != "")
		{
			deleteSelectedSelectBox(selectBox, i)
		}
	}

	return;
}

/**
 * delete option from option index
 */
function deleteSelectedSelectBox(selectBox, index)
{
	if(index.length != null)
	{
		for(var i = 0; i < index.length; i ++)
		{
			selectBox[index[i]] = null;
		}
	}
	else
	{
		selectBox[index] = null;
	}

	return;
}

/**
 * select ?? options[i].value ? value ? options? selected ???
 */
function selectSelectBox(object, value)
{
	for (var i = 0; i < object.length; i ++)
	{
		if (object[i].value == value)
		{
			object[i].selected = true;
			break;
		}
	}
	return;
}
/**
 * get text value from text value
 */
function getText(object, value)
{
	var returnValue =object.text
	return returnValue;
}
 
 
/**
 * get selectbox text from selectbox value
 */
function getSelectBoxText(object, value)
{
	var returnValue = null;

	for(var i = 0; i < object.length; i ++)
	{
		if(object[i].value == value)
		{
			returnValue = object[i].text;
			break;
		}
	}
	return returnValue;
}

/**
 * get selectbox text from selectbox selected value
 */
function getSelectBoxSelectedText(object)
{
	return getSelectBoxText(object, getSelectBoxValue(object));
}

/**
 * get selectbox value
 */
function getSelectBoxValue(object)
{
	if(object.options == null)
	{
		return ""
	}
	else if(object.options.length < 1)
	{
		return ""
	}
	else
	{
		return object.options[object.selectedIndex].value;
	}
}

/**
 * return true if selectbox has a option of "value"
 */
function isExistSelectBox(selectbox, value)
{
	var result = false;
	
	for(var i = 0; i < selectbox.length; i ++)
	{
		if(selectbox[i].value == value)
		{
			result = true;
			break;
		}
	}
	
	return result;
}

/**
 * select all options
 */
function setSelectBoxSelectedAll(selectbox, value)
{
	for(var i = 0; i < selectbox.length; i ++)
	{
		selectbox[i].selected = value;
	}
	
	return;
}

/**
 * add option from name, value
 */
function setSelectBox2(object, name, value)
{
	try
	{
		var i = object.length;
	
		var option = new Option(name, value);
		object.options[i] = option;
	}
	catch(e)
	{
		alert(e);
	}

	return;
}

//////////////////////////////////////////////////////
//date functions
//////////////////////////////////////////////////////

function getDateTimeString(date)
{
	var dateString = "";

	var c = null;
	if(date == null)
	{
		c = new Date();
	}
	else
	{
		c = date;
	}
	dateString += c.getFullYear();
	dateString += zeroPadding(c.getMonth() + 1, 2);
	dateString += zeroPadding(c.getDate(), 2);
	dateString += zeroPadding(c.getHours(), 2);
	dateString += zeroPadding(c.getMinutes(), 2);
	dateString += zeroPadding(c.getSeconds(), 2);
	
	return dateString;
}

function getDateString(date)
{
	return getDateTimeString(date).substring(0, 8);
}

/**
 * get date object from date string
 */
function getDateObject(dateString)
{
	var result = null;
	
	try
	{
		var d = new Date();
		d.setFullYear(dateString.substring(0, 4));
		d.setMonth(dateString.substring(4, 6) - 1);
		d.setDate(dateString.substring(6, 8));
		try
		{
			d.setHours(dateString.substring(8, 10));
		}
		catch(e1)
		{
			d.setHours(0);
		}
		try
		{
			d.setMinutes(dateString.substring(10, 12));
		}
		catch(e1)
		{
			d.setMinutes(0);
		}
		try
		{
			d.setSeconds(dateString.substring(12, 14));
		}
		catch(e1)
		{
			d.setSeconds(0);
		}
		result = d;
	}
	catch(e)
	{
		alert(e);
		result = null;
	}
	return result;
}

function setDateSelectBoxString(yyyy, mm, dd, dateString)
{
	selectSelectBox(yyyy, dateString.substring(0, 4));
	selectSelectBox(mm, dateString.substring(4, 6));
	selectSelectBox(dd, dateString.substring(6, 8));
	
	return;
}

function setDateSelectBoxObject(yyyy, mm, dd, dateObject)
{
	selectSelectBox(yyyy, dateObject.getFullYear());
	selectSelectBox(mm, zeroPadding(dateObject.getMonth() + 1, 2));
	selectSelectBox(dd, zeroPadding(dateObject.getDate(), 2));
	
	return;
}

function getDateDiff(yy, mm, dd)
{
	var current = new Date();
	var c = new Date(current.getFullYear(), current.getMonth(), current.getDate());
	var t = new Date(yy, mm - 1, dd);
	var diff = (t - c).valueOf();

	return diff / (24 * 60 * 60 * 1000);
}

function getNewImageTag(imageTag, yy, mm, dd, date)
{
	var result = "";
	if((getDateDiff(yy, mm, dd) * -1) <= date)
	{
		result = imageTag;
	}
	else
	{
		result = "";
	}
	
	return result;
}

function getNewImageTag2(imageTag, yyyymmdd, diff)
{
	return getNewImageTag(imageTag, yyyymmdd.substring(0, 4), yyyymmdd.substring(4, 6), yyyymmdd.substring(6, 8), diff);
}

function setDateOptions(object, startYear, endYear)
{
	try
	{
		var start = null;
		if(startYear != null)
		{
			start = startYear;
		}
		else
		{
			start = 1;
		}
		
		var end = null;
		if(endYear != null)
		{
			end = endYear;
		}
		else
		{
			end = start + 31;
		}
		
		for(var i = start; i <= end; i ++)
		{
			setSelectBox(object, zeroPadding(i, 2), zeroPadding(i, 2));
		}
	}
	catch(e)
	{
		alert(e);
	}
}
//-------------------------------------------------------------------
//   ""   
//-------------------------------------------------------------------
function getCurrentDate(currentDate)
{
	if(currentDate == null || currentDate == "null" || currentDate == "")
	{
		var today = new Date();
		return today.getDate();
	}
	else
	{
		return currentDate;
	}
}
//-------------------------------------------------------------------
//   ""   
//-------------------------------------------------------------------
function getCurrentMonth(currentDate)
{
	if(currentDate == null || currentDate == "null" || currentDate == "")
	{
		var today = new Date();
		return today.getMonth() + 1;
	}
	else
	{
		return currentDate;
	}
}
//-------------------------------------------------------------------
//   ""   
//-------------------------------------------------------------------
function getCurrentYear(currentDate)
{
	if(currentDate == null || currentDate == "null" || currentDate == "")
	{
		var today = new Date();
		return today.getFullYear();
	}
	else
	{
		return currentDate;
	}
}

/**
 * add year options
 */
function setYearOptions3(object)
{
	for(var i = 1900; i < 2020; i ++)
	{
		setSelectBox2(object, i, i);
	}
	
	return;
}
function setYearOptions3Reverse(object)
{
	for(var i = 2020; i > 1900; i --)
	{
		setSelectBox2(object, i, i);
	}
	
	return;
}

//////////////////////////////////////////////////////
//String functions
//////////////////////////////////////////////////////
function splitString(s, len)
{
	//return escape(s);
	return s;
	/*
	var sArray = s.toString().replace(/[\>\t]/g, " ").split(" ");

	for(var i = 0; i < sArray.length; i ++)
	{
		sArray[i] = subString(sArray[i], len);
	}

	return sArray.join(" ");
	*/
}

function subString(s, len)
{
	var reg = /[-\/]/g;
	
	var sArray = s.toString().split("");
	var sReplaced = s.toString().replace(reg, "");
	var result2 = null;

	if(sReplaced.length <= len)
	{
		result2 = s;
	}
	else
	{
		var j = 0;
		var result = new Array();
		for(var i = 0; i < sArray.length; i ++)
		{
			if(i == 0)
			{
			}
			else if(sReplaced.length % len == 1 && j == sReplaced.length - 1)
			{
			}
			else if(sReplaced.length % len == 1 && j == sReplaced.length - 2)
			{
				result.push(" ");
			}
			else if(j % len == 0)
			{
				result.push(" ");
			}
			result.push(sArray[i]);

			if(sArray[i].toString().search(reg) < 0)
			{
				j ++;
			}
		}
		result2 = result.join("");
	}
	
	return result2;
}
//////////////////////////////////////////////////////
//file object functions
//////////////////////////////////////////////////////
function fileCheckExt(obj, ext)
{
	var result = false;
	try
	{
		if(obj.value.substring(obj.value.lastIndexOf(".") + 1).toUpperCase() == ext.toUpperCase())
		{
			result = true;
		}
	}
	catch(e)
	{
		result = false;
	}
	
	return result;
}

//////////////////////////////////////////////////////
//etc functions
//////////////////////////////////////////////////////

/**
 * "0" padding
 */
function zeroPadding(string, order)
{
	var result = string;

	for(var i = order - string.toString().length; i > 0; i --)
	{
		result = "0" + result.toString();
	}

	return result;
}

/**
 * check digit
 */
function isOnlyNumber(string)
{
	if(string == null)
	{
		return false;
	}
	else if(string == "")
	{
		return false;
	}
	else
	{
		return string.search(/[^0-9]/g) < 0;
	}
}

function goBack()
{
	var cmd = getRequestParameter(document.referrer)["cmd"];
	if(cmd == "login")
	{
		history.go(-2);
	}
	else
	{
		history.go(-1);
	}
}

/**
 * send message to aol
 */
function sendAol(person)
{
	try
	{
		self.location.href="aim:goim?screenname=" + person;
		return;
	}
	catch(e)
	{
		alert(e.name);
		return;
	}
}

/**
 * send message to yahoo
 */
function sendYahoo(person)
{
	try
	{
		self.location.href="ymsgr:sendIM?" + person;
		return;
	}
	catch(e)
	{
		alert(e.name);
		return;
	}
}
/**
 * send message to msn 
 */
function sendMSN(person)
{
	try
	{
		if(document.getElementById("MsgrObj").classid != null)
		{
	        //Check if person has messenger installed
	        
	        try{MsgrObj.classid="clsid:B69003B3-C55E-4B48-836C-BC5946FC3B28";}
	        catch(e){if(!(e.number && 2148139390) == 2148139390)return;}
	 
	        //Check if you are logged in
	        if(MsgrObj.MyStatus == 1)
	        {
	            alert("You are not logged into Messenger.");
	            return;
	        }
	        MsgrObj.InstantMessage(person);
		}
		else
		{
			return;
		}
	}
	catch(e)
	{
		alert(e.name + " " + e.message);
		return;
	}
}

/**
 * make blink tag to blink
 */
function blinkToggle()
{
	var objBlink = document.all.tags("BLINK")
	for (var i=0; i < objBlink.length; i++)
	{
		objBlink[i].style.visibility = objBlink[i].style.visibility == "" ? "hidden" : ""
	}
}

/**
 * blink
 */
function blink(interval)
{
	if(interval == null || interval == "")
	{
		interval = 500;
	}
	
	if (document.all)
	{
		setInterval("blinkToggle()", interval);
	}
}



