//<![CDATA[
var PATTERN_Num =/^[0-9]+$/; 
var PATTERN_Phone =/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/; 
var PATTERN_Htel =/^[0-9]{3}-[0-9]{3,4}-[0-9]{4}$/; 
var PATTERN_Mail =/^[_a-zA-Z0-9-.]+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/; 
var PATTERN_Domain =/^[.a-zA-Z0-9-]+.[a-zA-Z]+$/; 
var PATTERN_Alpha =/^[a-zA-Z]+$/; 
var PATTERN_Host =/^[a-zA-Z-]+$/; 
var PATTERN_Hangul =/[가-힣]/; 
var PATTERN_AlphaNum = PATTERN_AlphaNum + PATTERN_Num;
var PATTERN_HangulEng =/[가-힣a-zA-Z]/; 
var PATTERN_HangulOnly =/^[가-힣]*$/; 
var PATTERN_ID = /^[a-zA-Z]{1}[a-zA-Z0-9]{5,15}$/; 
var PATTERN_illegalStr = "~`!@#$%^&*()_-+=\|]}[{'\";:/?.><,";
var PATTERN_AlphaNum = "abcdefghijklmnopqrstuvwxyz0123456789"
var PATTERN_Same = /^(.)(\1)*$/;
var PATTERN_BadKeyword = /`|~|!|@|#|\$|%|\^|&|\*|\(|\)|\-|\_|\+|\=|\|\||<|>|\,|\.|\?|\/|:|;|'|"|\[|\]|\{|\}/gi;
var PATTERN_Date = /^[0-9]{4}\-[0-9]{2}-[0-9]{2}$/

Array.prototype.remove = function(idx){
	var temp = new Array();
	var i = this.length;

	while(i > idx){
		var kk = this.pop();
		temp.push(kk);

		i--;
	}

	for(var i=temp.length - 2; i>=0; i--){
		this.push(temp[i]);
	}
}

Array.prototype.swap = function(idx1, idx2){
	var temp = this[idx1];
	this[idx1] = this[idx2];
	this[idx2] = temp;
}

Array.prototype.find = function(obj){
	for(i = 0; i < this.length; i++) {
		if(this[i] == obj) {
			return i;
		}
	}

	return -1;
}


String.prototype.comma=function(){
    var str=new Array();
    var v=this.replace(/,/gi,''); //콤마를 빈문자열로 대체
    for(var i=0;i<=v.length;i++){ //문자열만큼 루프를 돈다.
        str[str.length]=v.charAt(v.length-i); //스트링에 거꾸로 담음
        if(i%3==0&&i!=0&&i!=v.length){ //첫부분이나, 끝부분에는 콤마가 안들어감
            str[str.length]='.'; //세자리마다 점을 찍음 - 배열을 핸들링할때 쉼표가 들어가면 헛갈리므로
        }
    }
    
    str=str.reverse().join('').replace(/\./gi,','); //배열을 거꾸로된 스트링으로 바꾼후에, 점을 콤마로 치환
    
    return str;
}

String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/gi, "");
}

String.prototype.getByteLength = function() {
	return calculateBytes(this);
}

String.prototype.splitRemoveBlank = function(pattern) {
	var temp = new Array;
	var data = this.split(pattern);

	for(var i = 0; i < data.length; i++) {
		if(data[i].trim().length > 0) {
			temp.push(data[i]);
		}
	}
	
	return temp;
}

String.prototype.cutByte = function (vn_maxlength)
{
	var vn_sumlength=0;
	var vn_restr='';
	for(var i= 0;i < this.length; i++)
	{
		if( escape(this.charAt(i)).length > 3 ) { vn_length = 2; }
		else if (this.charAt(i) == '<' || this.charAt(i) == '>') { vn_length = 4; }
		else { vn_length = 1 ; }

		if ( vn_maxlength < (vn_sumlength + vn_length) ) { break; }
		vn_sumlength += vn_length;
		vn_restr += this.charAt(i);
	}
	return (vn_restr);
}

function CheckId(str) {
	patten = eval(PATTERN_ID); 
	if(!patten.test(str))
	{  
		return false; 
	} 

	return true;
}

function CheckEmail(str) {
	patten = eval(PATTERN_Mail); 
	if(!patten.test(str))
	{  
		return false; 
	} 

	return true;
}

function CheckDate(str) {
	patten = eval(PATTERN_Date); 

	if(!patten.test(str))
	{  
		return false; 
	}

	var day = new Date(str.split("-")[0], str.split("-")[1] - 1, str.split("-")[2], 0, 0, 0);

	if(str != day.toString()) {
		return false; 
	}

	return true;
}

function CheckNumber(str) {
	var patten = eval(PATTERN_Num); 
	if(!patten.test(str))
	{  
		return false; 
	} 

	return true;
}

Date.prototype.toString = function() {
	var strDay = this.getFullYear() + "-" + (this.getMonth() + 1 + "").zf(2) + "-" + (this.getDate() + "").zf(2);
	return strDay;
}

function NumericOnlyInput(e) {
	var keynum;
	var keychar;
	var numcheck;

	if(Ext.isIE) // IE
	{
		keynum = e.keyCode;
	}
	else // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	
	if(keynum == 8 || keynum == 0) {
		return true;
	}

	keychar = String.fromCharCode(keynum);
	
	var patten = eval(PATTERN_Num); 
	if(!patten.test(keychar))
	{  
		return false; 
	} 

	return true;
}

// Zero-Fill
String.prototype.zf = function(l) { return '0'.string(l - this.length) + this; }

String.prototype.string = function(l) { var s = '', i = 0; while (i++ < l) { s += this; } return s; }

function calculateBytes( szValue)
{
	var tcount = 0;

	var tmpStr = new String(szValue);
	var temp = tmpStr.length;

	var onechar;
	for ( k=0; k<temp; k++ )
	{
		onechar = tmpStr.charAt(k);

		if (escape(onechar).length > 4)
		{
			tcount += 2;
		}
		else
		{
			tcount += 1;
		}
	}

	return tcount;
}


/* ie6 - png 투명지원 */

function setPng24(obj) {
    obj.width=obj.height=1;
    obj.className=obj.className.replace(/\bpng24\b/i,'');
    obj.style.filter =
    "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ obj.src +"',sizingMethod='image');"
    obj.src='';
    return '';
}

/* flash삽입 플래쉬 */
function insertFlash(swf, width, height, bgcolor, id, flashvars)
{
	var strFlashTag = new String();

	if (navigator.appName.indexOf("Microsoft") != -1)
	{
		strFlashTag += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';
		strFlashTag += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=version=8,0,0,0" ';
		strFlashTag += 'id="' + id + '" width="' + width + '" height="' + height + '">';
		strFlashTag += '<param name="movie" value="' + swf + '"/>';

		if(flashvars != null) {strFlashTag += '<param name="flashvars" value="' + flashvars + '"/>'};
		strFlashTag += '<param name="quality" value="best"/>';
		strFlashTag += '<param name="bgcolor" value="' + bgcolor + '"/>';
		strFlashTag += '<param name="menu" value="false"/>';
		strFlashTag += '<param name="salign" value="LT"/>';
		strFlashTag += '<param name="scale" value="noscale"/>';
		strFlashTag += '<param name="wmode" value="transparent"/>';
		strFlashTag += '<param name="allowScriptAccess" value="sameDomain"/>';
		strFlashTag += '</object>';
	}
	else
	{
		strFlashTag += '<embed src="' + swf + '" ';
		strFlashTag += 'quality="best" ';
		strFlashTag += 'bgcolor="' + bgcolor + '" ';
		strFlashTag += 'width="' + width + '" ';
		strFlashTag += 'height="' + height + '" ';
		strFlashTag += 'menu="false" ';
		strFlashTag += 'scale="noscale" ';
		strFlashTag += 'id="' + id + '" ';
		strFlashTag += 'salign="LT" ';
		strFlashTag += 'wmode="transparent" ';
		strFlashTag += 'allowScriptAccess="sameDomain" ';
		if(flashvars != null) {strFlashTag += 'flashvars="' + flashvars + '" '};
		strFlashTag += 'type="application/x-shockwave-flash" ';
		strFlashTag += 'pluginspage="http://www.macromedia.com/go/getflashplayer">';
		strFlashTag += '</embed>';
	}

	document.write(strFlashTag);
}

/// Flex
var requiredMajorVersion = 9;	// Major version of Flash required
var requiredMinorVersion = 0;	// Minor version of Flash required
var requiredRevision = 28;		// Minor version of Flash required


function insertFlex(flex, width, height, bgcolor, id, flashvars) {
	var hasProductInstall = DetectFlashVer(6, 0, 65);

	var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);	// Version check based upon the values defined in globals

	if ( hasProductInstall && !hasRequestedVersion ) {
		// DO NOT MODIFY THE FOLLOWING FOUR LINES
		// Location visited after installation is complete if installation is required
		var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
		var MMredirectURL = window.location;
		document.title = document.title.slice(0, 47) + " - Flash Player Installation";
		var MMdoctitle = document.title;

		AC_FL_RunContent(
			"src", "playerProductInstall",
			"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
			"width", width,
			"height", height,
			"align", "middle",
			"id", id,
			"quality", "high",
			"bgcolor", bgcolor,
			"name", id,
			"allowScriptAccess","sameDomain",
			"type", "application/x-shockwave-flash",
			"pluginspage", "http://www.adobe.com/go/getflashplayer"
		);
	} else if (hasRequestedVersion) {
		// if we've detected an acceptable version
		// embed the Flash Content SWF when all tests are passed
		AC_FL_RunContent(
				"src", flex,
				"FlashVars", flashvars,
				"width", width,
				"height", height,
				"align", "middle",
				"id", id,
				"quality", "high",
				"bgcolor", bgcolor,
				"name", ids,
				"allowScriptAccess","sameDomain",
				"type", "application/x-shockwave-flash",
				"pluginspage", "http://www.adobe.com/go/getflashplayer"
		);
	  } else {  // flash is too old or we can't detect the plugin
		var alternateContent = 'Alternate HTML content should be placed here. '
		+ 'This content requires the Adobe Flash Player. '
		+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
		document.write(alternateContent);  // insert non-flash content
	  }
}
/// Flex


/// Editor
function GetEditor(id){
	return FCKeditorAPI.GetInstance( id );
}

function CreateEditor(id) {
	var sBasePath = '/fckeditor/';

	var oFCKeditor = new FCKeditor( id ) ;
	oFCKeditor.BasePath	= sBasePath ;
	oFCKeditor.Height = "220px";
	oFCKeditor.ToolbarSet	= 'Yulchon' ;
	oFCKeditor.ReplaceTextarea() ;
}
/// Editor

/// Ajax
function SuccessAjax(xhr) {
	var data = Ext.util.JSON.decode(xhr.responseText.replace("\n", ""));
	
	eval(data.BEFORE_SCRIPT);

	if(data.RETURN_MSG.trim().length > 0) {
		alert(data.RETURN_MSG);
	}
	
	eval(data.AFTER_SCRIPT);
}

function FailAjax() {
	alert("서버와의 통신에서 에러가 발생하였습니다.\n해당 서버 파일을 확인해주세요.");
}


var PrintWindow = null;

function PrintContent(language, contentId) {
	if(PrintWindow == null) {
		PrintWindow = window.open("/" + language + "/PrintPreview.asp?C="+contentId ,'print_page','width=615,height=842,scrollbars=yes'); 
	}
	else {
		try
		{
			PrintWindow.focus();
			PrintWindow.document.location.href = "/" + language + "/PrintPreview.asp?C="+contentId;
		}
		catch (ex)
		{
			PrintWindow = window.open("/" + language + "/PrintPreview.asp?C="+contentId ,'print_page','width=615,height=842,scrollbars=yes'); 
		}
	}	
}
/// Ajax
//]]>


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,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 MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

