// Utility file.
var undefined;
function SetCookie(sName, sValue)
{
	document.cookie = sName + "=" + escape(sValue) + ";";
}

function GetCookie(sName)
{
	// cookies are separated by semicolons
	var aCookie = document.cookie.split(";");
	for (var i=0; i < aCookie.length; i++)
	{
		// a name/value pair (a crumb) is separated by an equal sign
		var aCrumb = aCookie[i].split("=");
		if (sName == aCrumb[0])
			return unescape(aCrumb[1]);
	}

	// a cookie with the requested name does not exist
	return null;
}

function removeRow(obj) {
	var thisObj = obj;
	var rowIndex;
	// find rowIndex
	while(thisObj.tagName != "TR") {
		thisObj = thisObj.parentElement;
	}
	rowIndex = thisObj.rowIndex;
	// find table object
	while(thisObj.tagName != "TABLE") {
		thisObj = thisObj.parentElement;
	}
	thisObj.deleteRow(rowIndex);
}

function isEmptyObject(obj)
{
	if (obj !== undefined && obj !== null)
	{
		return false;
	}

	return true;
}
function isEmptyString(value)
{
	if (value !== undefined && value !== null)
	{
		if (trim(value) == '')
			return true;
		return false;
	}

	return true;
}
function getShortMonthString(month)
{
	switch (month)
	{
		case 0:	return "Jan";
		case 1:	return "Feb";
		case 2:	return "Mar";
		case 3:	return "Apr";
		case 4:	return "May";
		case 5:	return "Jun";
		case 6:	return "Jul";
		case 7:	return "Aug";
		case 8:	return "Sep";
		case 9:	return "Oct";
		case 10: return "Nov";
		case 11: return "Dec";
	}
	return "";
}

function getLongMonthString(month)
{
	switch (month)
	{
		case 0:	return "January";
		case 1:	return "February";
		case 2:	return "March";
		case 3:	return "April";
		case 4:	return "May";
		case 5:	return "June";
		case 6:	return "July";
		case 7:	return "August";
		case 8:	return "September";
		case 9:	return "October";
		case 10: return "November";
		case 11: return "December";
	}
	return "";
}
function parseBoolean(value, _default)
{
	if (_default === undefined) _default = true;
	if (value == false || value == "false" || value == "no")
		return false;
	else if (value == true || value == "true" || value == "yes")
		return true;
	else
		return _default;
}

function dateBefore(date1, date2) //date1 < date2
{
	if (date1.getFullYear() > date2.getFullYear())
		return false;
	if (date1.getFullYear() < date2.getFullYear())
		return true;
	if (date1.getMonth() > date2.getMonth())
		return false;
	if (date1.getMonth() < date2.getMonth())
		return true;
	if (date1.getDate() >= date2.getDate())
		return false;
	return true;
}

function dateAfter(date1, date2) //date1 > date2
{
	if (date1.getFullYear() < date2.getFullYear())
		return false;
	if (date1.getFullYear() > date2.getFullYear())
		return true;
	if (date1.getMonth() < date2.getMonth())
		return false;
	if (date1.getMonth() > date2.getMonth())
		return true;
	if (date1.getDate() <= date2.getDate())
		return false;
	return true;
}

function dateBetween(date, date1, date2) //date >= date1 && date <= date2
{
	return !(dateBefore(date, date1) || dateAfter(date, date2));
}

function trimLeft(text, trimChar)
{
	var undefined;
	if (trimChar === undefined) trimChar = ' ';
	returnText = "";
	var i;
	for(i=0;i<text.length;i++)
	{
		if(text.charAt(i) != trimChar)
		{
			returnText = text.substr(i,text.length-i);
			break;
		}
	}
	return returnText;
}

function trimRight(text, trimChar)
{
	var undefined;
	if (trimChar === undefined) trimChar = ' ';
	returnText = "";
	var i;
	for(i=text.length-1;i>=0;i--)
	{
		if(text.charAt(i) != trimChar)
		{
			returnText = text.substr(0,i+1);
			break;
		}
	}
	return returnText;
}

function trim(text)
{
	return trimRight(trimLeft(text));
}
function noAnyKey(){
	window.event.keyCode = 0;
	return false;
}
//for check only number and space
function checkPhoneKey()
{
    var _ret = false;
    if (/*window.event.keyCode == 46 ||  window.event.keyCode == 44 ||  window.event.keyCode == 40 ||  window.event.keyCode == 41 || 
		window.event.keyCode == 45 || */window.event.keyCode == 32 || (window.event.keyCode > 47 && window.event.keyCode < 58)
		|| window.event.keyCode == 13 )
    {
        _ret = true;
    }
    else
    {
        window.event.keyCode = 0;
        _ret = false;
    }
    return (_ret);
}
//for check only number
function checkNumberKey()
{
    var _ret = true;
    if ((window.event.keyCode < 48 || window.event.keyCode > 57) && window.event.keyCode != 13 ) {
        window.event.keyCode = 0;
        _ret = false;
    }
    return (_ret);
}
//for check only number,dot and comma
function checkMoneyKey()
{
    var _ret = true;
    if (window.event.keyCode != 46  &&  window.event.keyCode != 44 && (window.event.keyCode < 48 || window.event.keyCode > 57)) {
        window.event.keyCode = 0;
        _ret = false;
    }
    return (_ret);
}
// correct date
var reg_date = /^\d\d?\s((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))\s\d\d\d\d$/i;
//var reg_date = /\d\d?\s[A-Z][a-z][a-z]\s\d\d\d\d$/i;

//incorrect string
var reg_space = /^\s*$/;


//return true when string is date format "dd mmm yyyy" for example: 01 Jul 2004 (ignore case)
function checkDate(str)
{
	return (str.search(reg_date)  != -1);
}
//return true when string doesn't include of only full of space
function checkString(str)
{
	return (str.search(reg_space) == -1);
}
//return true when string include of only full number
function checkNumerical(str)
{
	str  = trim(str);
	str  = removeComma(str);
		return (str.search(/^\d*$/) !=-1);

}
//return true when string include of only full number and dot ( . ) for checking float
function checkNumericalExt(str)
{
	str  = trim(str);
    str  = removeComma(str);
        return !isNaN(str);
}
//return true when string include of only full number
function checkMoney(str)
{
	str  = trim(str);
		return (str.search(/^(((\d{1,3})(,\d\d\d)*)|(\d*))(.\d+)?$/) !=-1);

}
//return new value not incluing comma
function removeComma(str)
{
	   var reg=/\,/g;
        return str.replace(reg,'');
}
//return true if email format is valid
function checkEmail(str){
	var emailPattern = /^(\s)*(.+)@(.+)\.(.+)(\s)*$/;

	var CCEmailArray = 	str.split(",");
	for(var i = 0 ; i < CCEmailArray.length ; i++ ){
		if (CCEmailArray[i].search(emailPattern) == -1){
			alert('Please Enter Email Correctly\nError: at "' + CCEmailArray[i]) +'"';
			return false ;
		}
	}
	return true;
}

//group phone number and phone number To with "-" ex. 66 7127000-10
function concatPhoneNumber(objPhoneNumber, objPhoneNumberTo)
{
	if ((objPhoneNumber.value != "") && (objPhoneNumberTo.value != ""))
	{
		objPhoneNumber.value += "-"+objPhoneNumberTo.value;
	}
}