function CheckAll(obj)
{
	var checkboxName = obj.value;
	
	if(!document.all[checkboxName]) return;
	
	document.all[checkboxName].checked = obj.checked;	

	for(var i=0; i<document.all[checkboxName].length; i++)
	{
		document.all[checkboxName][i].checked = obj.checked;
	}
}
//========================================================================================================
// Page Redirection
//========================================================================================================

//view just one image
function ViewBigImage(url)
{
	//var prefix = "/4corners";
	var prefix = "";
		
	//if( location.href.toLowerCase().indexOf("hanaimagingsystem") == -1)
	//{
	//	prefix = "";
	//}
		
	var win = window.open(prefix + "/board/GalleryView.htm?url=" + url, "GalleryView","top=0,left=0,menubar=0,statusbar=0,resizable=1,scrollbars=1");
	win.focus();
}

//view container's images
function ViewContainerImage(containerEID, index, isInvoice)
{
	var prefix = "/HanaImagingSystem";
		
	if( location.href.toLowerCase().indexOf("hanaimagingsystem") == -1)
	{
		prefix = "";
	}
		
	var win = window.open(prefix + "/ContainerImageViewer.aspx?ElementID=" + containerEID + "&ImageIndex=" + index + isInvoice, "GalleryView","top=0,left=0,menubar=0,statusbar=0,resizable=1,scrollbars=1");
	win.focus();
}

function get_queryVariable(variable)
{
	var _query = window.location.href.substring( window.location.href.indexOf("?")+1);

	var vars = _query.split("&");

	for (var i=0;i<vars.length;i++)
	{
		var pair = vars[i].split("=");
		
		if (pair[0] == variable)
		{
			return pair[1];      
		}
	} 
	return "";	
}

//========================================================================================================
// Swap Image
//========================================================================================================


var Suffix_OnImage = "_on";

function onImage(img)
{  // rollover on
	if( document.images[img] )
	{
		img = document.images[img];
	}
	
	if( img.src.indexOf(Suffix_OnImage + ".gif")<0 && img.src.indexOf(Suffix_OnImage + ".jpg")<0 )
	{
		img.src = img.src.replace(".gif", Suffix_OnImage + ".gif").replace(".jpg", Suffix_OnImage + ".jpg");
	}
}

function offImage(img)
{  // rollover off
	if( document.images[img] )
	{
		img = document.images[img];
	}
	
    img.src = img.src.replace(Suffix_OnImage + ".", ".");
}


//========================================================================================================
// Image Preload	//_on
//========================================================================================================
function MM_preloadImages()
{	//v3.0 from dreamweaver
	var d = document;
	if(d.images)
	{
  		if(!d.MM_p)
  		{
			d.MM_p=new Array();
		}
			
		var i;
		var j = d.MM_p.length
		var a = MM_preloadImages.arguments;
		
		for(i=0; i<a.length; i++)
		{
    		if (a[i].indexOf("#")!=0)
			{
				d.MM_p[j]=new Image;
				d.MM_p[j++].src=a[i];
			}
		}
	}
}

function ImagePreload_onImage()
{
	var d = document;
	if(d.images)
	{
  		for(var i=0; i< d.images.length; i++)
  		{
  			if(d.images[i].onmouseover != null )
  			{
  				var temp = new Image;
				temp.src = d.images[i].src.replace(".gif", Suffix_OnImage + ".gif").replace(".jpg", Suffix_OnImage + ".jpg");
				
				//d.images[i].src = temp.src;
			}
		}					
	}
}




function ViewDirDetail(id)
{
	//window.open( url, 'ViewBigImage', 'resizable=1');
	var win = window.open("DirDetail.aspx?UserID=" + id, "ViewDirDetail","top=0,left=0,width=500, height=500, menubar=0,statusbar=0, resizable=1,scrollbars=0");
	win.focus();
}

function ViewDirOtherDetail(id)
{
	//window.open( url, 'ViewBigImage', 'resizable=1');
	var win = window.open("DirOtherDetail.aspx?UserID=" + id, "ViewDirDetail","top=0,left=0,width=500, height=500, menubar=0,statusbar=0, resizable=1,scrollbars=0");
	win.focus();
}


//========================================================================================================
// Public Functions - Validations
//========================================================================================================
function ConfirmSubmit(msg)
{
	if ( confirm(msg) == true)
		return event.returnValue = true;
	else
		return event.returnValue = false;
}

function ConfirmSubmitReadonly(obj, msg)
{
	if( obj.readOnly == true )
	{
		return event.returnValue = false;	
	}
	else if ( confirm(msg) == true)
	{
		obj.readOnly = true;
		return event.returnValue = true;
	}
	else
		return event.returnValue = false;
}

function ReturnObj(obj)
{
	if(	document.all[obj] )
	{
		return document.all[obj];
	}
	else
	{
		return obj;
	}
}

function CheckReqField(txtObj, msg)
{
	txtObj = ReturnObj(txtObj);
	
	if(	txtObj.value == "" )
	{
		alert(msg);
		txtObj.focus();
		return false;
	}
	else
		return true;
}

function CheckReqFieldOR(txtObj, txtObj2, msg)
{
	txtObj = ReturnObj(txtObj);
	txtObj2 = ReturnObj(txtObj2);
	
	if(	txtObj.value == "" && txtObj2.value == "")
	{
		alert(msg);
		txtObj.focus();
		return false;
	}
	else
		return true;
}

function CheckChkField(chkObj, _flag, msg)
{
	chkObj = ReturnObj(chkObj);
	
	if(	chkObj.checked != _flag )
	{
		alert(msg);
		chkObj.focus();
		return false;
	}
	else
		return true;
}

function EventCheckReqField(txtObj,  msg)
{
	txtObj = ReturnObj(txtObj);
	
	if( !CheckReqField(txtObj, msg) ) return event.returnValue = false;
}

function CheckSelectedIndex(ddlObj, minIndex, msg)
{
	ddlObj = ReturnObj(ddlObj);	
	
	if( ddlObj.selectedIndex <= minIndex )
	{
		alert(msg);
		ddlObj.focus();
		return false;
	}
	else
		return true;
}

function CheckMaxLength(txtObj, max, msg)
{
	txtObj = ReturnObj(txtObj);
	
	if(	txtObj.value.length > max )
	{
		alert(msg);
		txtObj.focus();
		return false;
	}
	else
		return true;
}

function CheckMinLength(txtObj, min, msg)
{
	txtObj = ReturnObj(txtObj);
	
	if(	txtObj.value.length < min )
	{
		alert(msg);
		txtObj.focus();
		return false;
	}
	else
		return true;
}

function CheckMinLength_AllowNull(txtObj, min, msg)
{
	txtObj = ReturnObj(txtObj);
	
	if( txtObj.value == "")
	{
		return true;
	}	
	if(	txtObj.value.length < min )
	{
		alert(msg);
		txtObj.focus();
		return false;
	}
	else
		return true;
}

function CheckMaxValue(txtObj, max, msg)
{
	txtObj = ReturnObj(txtObj);
	
	if(	eval(txtObj.value) > max )
	{
		alert(msg);
		txtObj.focus();
		return false;
	}
	else
		return true;
}

function CheckMinValue(txtObj, min, msg)
{
	txtObj = ReturnObj(txtObj);
	
	if(	eval(txtObj.value) < min )
	{
		alert(msg);
		txtObj.focus();
		return false;
	}
	else
		return true;
}

function CheckRegEx(txtObj, regEx, msg)
{
	txtObj = ReturnObj(txtObj);
	
	if(	regEx.test(txtObj.value) == false)
	{
		alert(msg);
		txtObj.focus();
		return false;
	}
	else
		return true;
}

function CheckEmailEx(txtObj, msg)
{
	if( msg == "")
		msg = "Please write right email format";
	
	if( CheckRegEx(txtObj, /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, msg) ) 
		return true;
	else
		return false;
}

function CheckEmailEx_AllowNull(txtObj, msg)
{
	if( document.all[txtObj].value == '')
		return true;

	return CheckEmailEx(txtObj, msg);
}

function CheckInteger(txtObj)
{
	if(	/^\d*$/.test(txtObj.value) == false)
	{
		txtObj.value = "";
		txtObj.focus();
	}
}

function CheckNagInt(txtObj)
{
	if(	/^\-?\d*$/.test(txtObj.value) == false)
	{
		txtObj.value = "";
		txtObj.focus();
	}
}

function CheckKoreanCharacter(txtObj, msg)
{
	txtObj = ReturnObj(txtObj);
	str = ExtractFileName(txtObj.value);
	
	var ch;

	for (var i=0;i<str.length; i++)
	{
		ch = escape(str.charAt(i)); //change to "ISO-Latin-1" characterset
		//GA	==> %uAC00
		//HING	==> %uD79D
		//£¿	==> %uD7A3
		if( IsKoreanCharacter(ch) )
		{
			alert(msg);
			txtObj.focus();
			return false;
		}		
	}
	
	return true;
}

function IsKoreanCharacter(chStr)
{
	if (chStr.substring(0, 2) == '%u')
	{
		if (chStr.substring(2,4) == '00')
			return false;
		else
			return true;
	}
	else if (chStr.substring(0,1) == '%')
	{
		if (parseInt(chStr.substring(1,3), 16) > 127)
			return true;
		else
			return false;
	}
	else
	{
		return false;
	}
}




function onkeyup_CheckNaN(txtObj)
{
	if(	isNaN(txtObj.value) == true)
	{
		txtObj.value = "";
		txtObj.focus();
	}
}

function CheckNumber(txtObj, msg)
{
	if( msg == "")
		msg = "Please write numeric value only";
		
	if(	isNaN(document.all[txtObj].value) == true)
	{
		alert(msg);
		document.all[txtObj].value = "";
		document.all[txtObj].focus();
		return false;
	}
	else
		return true;
}

function CheckDate(txtObj, msg)
{
	if( msg == "")
		msg = "Please write date & time value only";
		
	date = new Date(document.all[txtObj].value);
	
	date2 = new Date();
	date2 = Date.parse(date.getFullYear() + '/' + date.getMonth() + '/' + date.getDate())
	
	
	if(	isNaN(date) == true | isNaN(date2) == true)
	{
		alert(msg);
		document.all[txtObj].value = "";
		document.all[txtObj].focus();
		return false;
	}
	else
		return true;
}

function CheckDate_AllowNull(txtObj, msg)
{
	if( document.all[txtObj].value == '')
	{
		return true;
	}
	
	return CheckDate(txtObj, msg);
}

function ExtractFileExtension(fileName)
{
	//extract extension from filename
	var limit = 0;	
	while( fileName.indexOf('.') >= 0 || limit < 10)
	{
		fileName = fileName.substring( fileName.indexOf('.')+1, fileName.length);
		limit++;
	}
	return fileName;
}
function ExtractFileName(fileName)
{
	//extract extension from filename
	var limit = 0;	
	while( fileName.indexOf('\\') >= 0 || limit < 50)
	{
		fileName = fileName.substring( fileName.indexOf('\\')+1, fileName.length);
		limit++;
	}
	return fileName;
}
function ExtractFileNameHREF(fileName)
{
	//extract extension from filename
	var limit = 0;	
	while( fileName.indexOf('/') >= 0 || limit < 50)
	{
		fileName = fileName.substring( fileName.indexOf('/')+1, fileName.length);
		limit++;
	}

	while( fileName.indexOf('.') >= 0 || limit < 10)
	{
		fileName = fileName.substring( 0, fileName.indexOf('.'));
		limit++;
	}
	
	return fileName;
}

function CheckAllowedFileExtension(txtObj, arrExtension, msg)
{
	//extract extension
	var extension = ExtractFileExtension(document.all[txtObj].value);
	if(	extension == "")
	{
		return true;
	}	
	
	//make msg
	if( msg == "")
	{
		msg = "  ";
		for(var i=0; i<arrExtension.length; i++)
		{
			msg += arrExtension[i] + ", ";
		}
		
		msg = msg.substring(0, msg.length-2);
		
		msg = "You can upload only" + msg + " files";
	}
	
	//compare extension
	for(var i=0; i< arrExtension.length; i++)
	{
		if( arrExtension[i].toUpperCase() == extension.toUpperCase() )
		{
			return true;
		}
	}	
	
	alert(msg);
	document.all[txtObj].value = "";
	document.all[txtObj].focus();
	return false;
}

function CheckBannedFileExtension(txtObj, arrExtension, msg)
{
	//extract extension
	var extension = ExtractFileExtension(document.all[txtObj].value);
	if(	extension == "")
	{
		return true;
	}
	
	//make msg
	if( msg == "")
	{
		msg = "  ";
		for(var i=0; i<arrExtension.length; i++)
		{
			msg += arrExtension[i] + ", ";
		}
		msg = msg.substring(0, msg.length-2);
		msg = "You cannot upload" + msg + " files.\nPlease upload after making this file to \'Zip\' file.";
	}	
	
	//compare extension
	for(var i=0; i< arrExtension.length; i++)
	{
		if( arrExtension[i].toUpperCase() == extension.toUpperCase() )
		{
			alert(msg);
			document.all[txtObj].value = "";
			document.all[txtObj].focus();
			return false;
		}
	}
	return true;
	
}

//=========================================================================================================
// Public Functions - Date
//=========================================================================================================

function MakeFullYear(txtDate)
{
	if( txtDate == "" )
	{
		return txtDate;
	}

	if( txtDate.substring(txtDate.length-3,txtDate.length-2) == "/" )
	{
		return txtDate.substring(0,txtDate.length-2)  + "20" +  txtDate.substring(txtDate.length-2,txtDate.length) ;
	}
	else if( txtDate.substring(txtDate.length-5,txtDate.length-4) == "/" )
	{
		return txtDate;
	}
}

function DaysOfTerm(from, to)
{
	var fromDate = new Date(from);
	var toDate = new Date(to);
	var direction = 1;

	if( fromDate > toDate)
	{
		direction = -1;
		var temp = fromDate;
		fromDate = toDate;
		toDate = temp;
	}

	var dayDiff = -fromDate.getDate();
	fromDate.setDate(0);

	while( fromDate < toDate)
	{
		dayDiff += toDate.getDate();
		toDate.setDate(0);
	}

	return dayDiff;
}


//=========================================================================================================
// Public Functions - Utility
//=========================================================================================================
function Round(value, n)
{
	dec = 1;

	for(var i=0; i<n; i++)
	{
		dec *= 10;
	}
	value *= dec;
	value =  Math.round(value);
	return value/dec;
}

function CurrencyFormat(value)
{
	value = Round(value, 2);

	if(	/\./.test(value) == false )
	{
		value = value + '.00';
	}
	else if(	/\.\d{1}$/.test(value) )
	{
		value = value + '0';
	}	
	
	return '$ ' +  value;
}

function RedFont(str)
{
	return "<Font color=red>" + str + "</font>";
}

function AlertJSError(e)
{
	alert(e + 'This page will malfunction. Don\'t try anything. Please contact to Polystars manager.')
}

function Split(txtArr)
{
	return Split2(txtArr, ',');
}

function Split2(txtArr, flag)
{
	var arrResult = new Array();
	
	//extract extension from filename
	var currPos = 0;	
	while( txtArr.indexOf(flag) >= 0)
	{
		arrResult[currPos] = txtArr.substring( 0, txtArr.indexOf(flag));
		txtArr = txtArr.substring( txtArr.indexOf(flag) + flag.length, txtArr.length);		
		currPos++;
	}
	
	if(txtArr!="")
	{
		arrResult[currPos] = txtArr;
	}
		
	return arrResult;
}

function StringReplace(strSource, oldWord, newWord)
{
	//alert(strSource.indexOf(oldWord));
	
	//extract extension from filename
	var limit = 0;	
	while( strSource.indexOf(oldWord) >= 0 || limit < 50)
	{
		strSource = strSource.replace( oldWord, newWord );
		limit++;
	}
	
	
	return strSource;
}




//======================================================================================================
// event raise = button click
//======================================================================================================
function ButtonClick(evt, btnObj)
{
	
	btnObj = ReturnObj(btnObj);
	
	//when enter, click btnSearchAgent
	if(evt.keyCode==13)
	{
		btnObj.click();				
		return event.returnValue = false;
	}
}