﻿// IE인지 아닌지를 판단합니다.
var isNotIE = (navigator.appName.indexOf("Netscape")!=-1);

// 컨트롤의 Client를 저장합니다.
var clientIDList =  new Array();

// 지정된 컨트롤에 Click()이벤트를 발생합니다.
function Global_RaiseClickEvent(controlName)
{   
    var temp = FindObject(controlName);
    
    if(temp != null)
    {   
        temp.click();
    }
}

// 메시지 박스를 엽니다.
function Global_ShowMessageBox()
{
    try
    {   
        // 메시지 파일을 만들려면 공통파일에 해당 객체를 넣어야 합니다.
       if(document.getElementById("paggingMessageBox") != null)
       {
            var message = document.getElementById("paggingMessageBox");
            
            message.style.setExpression("posLeft",(document.body.clientWidth - 400)/2);
            message.style.setExpression("posTop",((document.body.scrollHeight - 100)/2)-100);

            document.getElementById("paggingMessageBox").style.display = "block";
       }
    }
    catch(error)
    {
        alert(error.description);
        return false;
    }
}



// 달력을 불러옵니다.
function Global_ViewCalender( controlName )
{
	var result = showModalDialog('/Library/Modules/calendar.htm',window,"scroll:no; status:no; dialogLeft:100px; dialogTop:100px; dialogWidth:310px; dialogHeight:350px;");
	
	if(result != null || result == "")
	{
		FindObject(controlName).value = result;
	}
}

// 테이블을 숨기고 나타냅니다.
// 테이블의 아이디는 순차적으로 contentTable1~되어야 하며 Global_ViewContent()와 같이 호출합니다.
// 이미지명은 반드시 _off.gif, _on.gif로 끝나야 하며 id는 contentImage1~로 되어야 합니다.
function Global_ViewContent()
{
	try
	{
		var thisObject = window.event.srcElement;

		if(thisObject.id == "")
		{
			alert("해당 IMG에 id가 없습니다.");
			return false;
		}

		var index = thisObject.id.replace("contentImage","");

		for(var i=0;i<document.all.length;i++)
		{
			if(document.all[i].id.indexOf("contentTable") >= 0)
			{
				document.all[i].style.display = "none";
			}

			if(document.all[i].id.indexOf("contentImage") >= 0)
			{
				document.all[i].src = document.all[i].src.replace("_on.gif","_off.gif");
			}
		}

		document.getElementById("contentTable"+index).style.display = "block";	

		// 해당 이미지 변경
		thisObject.src = thisObject.src.replace("_off.gif","_on.gif");
	}
	catch(exception)
	{
		alert(exception.description);
		return false;
	}
	
}


// 이메일의 형식을 체크합니다. -------------------------------------------------------------------------------------
function Global_EmailCheck( controlName )
{				
    var emailObject = FindObject(controlName);
    
	if(emailObject != null)
	{	
		if(Global_TrimSpaces(emailObject.value) != "")
		{
			var chkEmail = emailObject.value.match(/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/);
			
			if (chkEmail == null) 
			{
				alert("메일 주소의 형식이 올바르지 않습니다.");
				emailObject.value = "";
				emailObject.focus();			
				return false;
			}
			else
			{   
			    return true;                  
			}
		}
		else
		{
			return true;
		}
	}
	else
	{
		return true;
	}
}

// Select 항목을 조정합니다. ----------------------------------------------------------------------------------------

//항목을 추가합니다.
function Global_AddOption( theForm, text, value)
{
	var newOpt = document.createElement("OPTION");
	newOpt.text = text;
	newOpt.value = value;
	theForm.add(newOpt);
}

// 항목을 제거 합니다.
function Global_ReMoveOption( theForm, selectedIndex )
{
	var selLength = theForm.length;

	if ( selLength > 0 )
	{
		theForm.remove( selectedIndex );
	}
}

// 쿠키에 입력된 값을 가지고 옵니다. --------------------------------------------------------------------------------

function Global_GetCookie( name )
{
    var nameOfCookie = name + "=";
    var x = 0;
    while ( x <= document.cookie.length )
    {
            var y = (x+nameOfCookie.length);
            if ( document.cookie.substring( x, y ) == nameOfCookie ) {
                    if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
                            endOfCookie = document.cookie.length;
                    return unescape( document.cookie.substring( y, endOfCookie ) );
            }
            x = document.cookie.indexOf( " ", x ) + 1;
            if ( x == 0 )
                    break;
    }
    
    return "";
}

// 컨트롤을 찾습니다. ----------------------------------------------------------------------------------------------
function FindObject(objectName)
{   
    var tempObjectName = objectName;
    
    /*
    var selectedObject = null;
    
    for(var i=0;i<document.all.length;i++)
    {   
        if(document.all[i].id != "" && document.all[i].id.indexOf(objectName) >= 0) 
        {   
            if(selectedObject == null)
            {
                selectedObject = document.all[i];
            }
            else
            {
                alert("컨트롤 "+objectName+"이란 이름은 겹칩니다.");
                return null;
            }                
        }
    }
    
    return selectedObject;
    
    */
    
    // 검사대상 컨트롤을 찾습니다.
    // 정의된 clientID리스트를 돕니다.
    for(var i=0;i<clientIDList.length;i++)
    {   
        // 객체가 있다.
        if(document.getElementById(clientIDList[i]+"_"+objectName) != null)
        {
            // 아직 컨트롤의 이름이 설정되지 않았다면
            if(tempObjectName == objectName)
            {
                // 이름을 설정
                tempObjectName = clientIDList[i]+"_"+objectName;
            }
            else
            {
                alert("컨트롤 "+objectName+"이란 이름은 겹칩니다.");
                return null;
            }
        }
    }
    
    if(document.getElementById(tempObjectName) != null)
    {
        return document.getElementById(tempObjectName);
    }
    else
    {   
        return null;
    }
}

// Javascript로 QueryString 구하기 ---------------------------------------------------------------------------------------------
function Global_Request(valuename)
{
    var rtnval = "";
    var nowAddress = unescape(location.href);
    var parameters = (nowAddress.slice(nowAddress.indexOf("?")+1,nowAddress.length)).split("&");
    
    for(var i = 0 ; i < parameters.length ; i++){
        var varName = parameters[i].split("=")[0];
        if(varName.toUpperCase() == valuename.toUpperCase())
        {
            rtnval = parameters[i].split("=")[1];
            break;
        }
    }
        
    return rtnval;
}

// 필요한 이미지를 미리 로드 합니다. -------------------------------------------------------------------------------------------

function Global_PreloadImage()
{ 
	var img_list = Global_PreloadImage.arguments;
	if (document.preloadlist == null) 
		document.preloadlist = new Array();
	var top = document.preloadlist.length;
	for (var i=0; i < img_list.length; i++)
	{
		document.preloadlist[top+i]     = new Image;
		document.preloadlist[top+i].src = img_list[i+1];
	} 
}

// 두개의 컨트롤의 값을 비교해서 같은지를 반환합니다. --------------------------------------------------------------------------

function Globl_ControlToControlValueCheck(sourceControlName, targetControlName, message)
{
    var sourceControl = FindObject(sourceControlName);
    var targetControl = FindObject(targetControlName);
    
    if(sourceControl == null || targetControl == null)
    {
        alert("한개의 이상의 컨트롤이 없습니다.");
        return false;
    }
    else
    {
        if ( Global_TrimSpaces(sourceControl.value) != Global_TrimSpaces(targetControl.value) )
        {
            alert(message);
            return false;
        }
        else
        {
            return true;
        }
        
    }
}

// 해당 텍스트 컨트롤이 공백인지를 검사  ---------------------------------------------------------------------------------------
function Global_ControlValueCheck( controlName , message, enableBadWordCheck )
{   
    var control = FindObject(controlName);
    
	if(control != null)
	{		
		if ( Global_TrimSpaces(control.value) == '' )
		{
			alert( message );
			control.value = '';
			control.focus();
			return false;
		}
		else
		{			
			if(enableBadWordCheck)
			{
				// 불량단어 필터링이 걸릴경우 불량단어를 검사
				return Global_ChkeckBadWord( control );
			}
			else
			{
				return true;
			}
		}				
	}
	else
	{	
		return true;
	}
}

// 해당 문자열의 공백을 제거 ----------------------------------------------------------------------------------------------------
function Global_TrimSpaces( text )
{
	var temp = "";

	text = '' + text.toUpperCase();

	splitstring = text.split(" ");

	for(i = 0; i < splitstring.length; i++)

	temp += splitstring[i];

	return temp;
}

// 금지단어를 검사 --------------------------------------------------------------------------------------------------------------

// 금지단어 등록
var BadWords = "개새끼,소새끼,병신,지랄,씨팔,십팔,니기미,찌랄,지랄,쌍년,쌍놈,빙신,좆까,니기미,좆같은게,잡놈,벼엉신,바보새끼,씹새끼,씨발,씨팔,시벌,씨벌,떠그랄,좆밥,추천인,추천id,추천아이디,추천id,추천아이디,추/천/인,등신,싸가지,미친놈,미친넘,찌랄,죽습니다,님아,님들아,씨밸넘";

function Global_ChkeckBadWord( control )
{	
	//  이 함수를 사용하기 위해서는 불량 단어 변수 BadWord를 지정해야 합니다.
	var TempObj = control;
	
	if(BadWords == null)
	{	
		return;
	}
	
	var BadText = BadWords.split(",");
	
	if(BadText == "")
	{
		return false;
	}
	
	var swear_words_arr=new Array();
	
	for(var i=0;i < BadText.length;i++)
	{
		swear_words_arr = swear_words_arr.concat(BadText[i]);	
	}
	
	var swear_alert_arr=new Array;
	var swear_alert_count=0;	
	
	var compare_text=TempObj.value;
	
	for(var i=0; i<swear_words_arr.length; i++) 
	{
		for(var j=0; j<(compare_text.length); j++)  
		{
			if(swear_words_arr[i]==compare_text.substring(j,(j+swear_words_arr[i].length)).toLowerCase())
			{
				swear_alert_arr[swear_alert_count]=compare_text.substring(j,(j+swear_words_arr[i].length));
				swear_alert_count++;
			}
		}		
	}
	
	var alert_text="";
	
	for(var k=1; k<=swear_alert_count; k++) 
	{	
		alert_text+="\n" + "* " + swear_alert_arr[k-1];
	}
	
	if(swear_alert_count>0)
	{
		alert("금지된 단어를 사용하였습니다.\n_______________________________\n" + alert_text + "\n_______________________________");
		return false;
	}
	else 
	{
		return true;
	}
}

// --------------- SSL 인증 ----------------

function Global_SendMemberSSLForm(SSLUrl)
{
    try
	{   
	    var newForm = document.createElement("FORM");
	    
        for(var i=0;i<document.all.length;i++)
        {
            var obj = document.all[i];
            
            if(obj.tagName == "INPUT" || obj.tagName == "SELECT")
            {   
                if(obj.type.toUpperCase() != "IMAGE" && obj.id.indexOf("__") < 0)
                {
                    if(obj.type.toUpperCase() != "CHECKBOX")
                    {
                        var newInput = document.createElement("INPUT");
                        newInput.type = "hidden";
                        newInput.name = obj.id.replace(clientIDList[0]+"_","");	
                        newInput.value = obj.value;
                        newForm.appendChild(newInput);
                    }
                    else if(obj.checked)
                    {
                        var newInput = document.createElement("INPUT");
                        newInput.type = "hidden";
                        newInput.name = obj.id.replace(clientIDList[0]+"_","");	
                        newInput.value = "Y";
                        newForm.appendChild(newInput);
                    }
                }
            }
        }
        
        document.appendChild(newForm);
        
        var lastFormIndex = 1;
	   
        // 돌아올 페이지 설정 ---------------------------------------------------------------------- 
               
        var newObj = document.createElement("INPUT");

        newObj.type = "hidden";
        newObj.name = "RedirectURL";	
        	
        newObj.value = "http://"+location.host+"/Member/Login.aspx";
        
        document.forms[lastFormIndex].appendChild(newObj);
        
        // ------------------------------------------------------------------------------------------
        
        // 로그인 후 돌아갈 URL 설정        
        var returnObject = document.createElement("INPUT");

        returnObject.type = "hidden";
        returnObject.name = "ReturnUrl";
        	
        returnObject.value = ReturnUrl;
        
        document.forms[lastFormIndex].appendChild(returnObject);
        
        // ------------------------------------------------------------------------------------------

        document.forms[lastFormIndex].action = "https://Login.mcircle.co.kr"+SSLUrl;

        document.forms[lastFormIndex].method = "post";

        document.forms[lastFormIndex].submit();
	    
	}
	catch(exception)
	{
		alert(exception.description);
	}
	
	return false;
}

function Global_SendSSLForm(SSLUrl, ReturnUrl)
{  	
    try
	{  
	    var newForm = document.createElement("FORM");
	    
        for(var i=0;i<document.all.length;i++)
        {
            var obj = document.all[i];
            
            if(obj.tagName == "INPUT" || obj.tagName == "SELECT")
            {   
                if(obj.type.toUpperCase() != "IMAGE" && obj.id.indexOf("__") < 0)
                {
                    if(obj.type.toUpperCase() != "CHECKBOX")
                    {
                        var newInput = document.createElement("INPUT");
                        newInput.type = "hidden";
                        newInput.name = obj.id.replace(clientIDList[0]+"_","");	
                        newInput.value = obj.value;
                        newForm.appendChild(newInput);
                    }
                    else if(obj.checked)
                    {
                        var newInput = document.createElement("INPUT");
                        newInput.type = "hidden";
                        newInput.name = obj.id.replace(clientIDList[0]+"_","");	
                        newInput.value = "Y";
                        newForm.appendChild(newInput);
                    }
                }
            }
        }
        
        document.appendChild(newForm);
	   
        var newObj = document.createElement("INPUT");

        newObj.type = "hidden";
        newObj.name = "RedirectURL";	

        if(ReturnUrl == "")
            ReturnUrl = location.href;
        else
            ReturnUrl = "http://"+location.host+ReturnUrl;
        	
        newObj.value = ReturnUrl;
        
        var lastFormIndex = 1;

        document.forms[lastFormIndex].appendChild(newObj);

        document.forms[lastFormIndex].action = "https://Login.mcircle.co.kr"+SSLUrl;

        document.forms[lastFormIndex].method = "post";

        document.forms[lastFormIndex].submit();
	    
	}
	catch(exception)
	{
		alert(exception.description);
	}
	
	return false;
	
}

// 해당 텍스트 값에서 확장자를 추출합니다.

function Global_GetFileExtension( controlObject )
{
	var contolValue = controlObject.value;

	var index = contolValue.lastIndexOf(".")

	if ( ( Global_TrimSpaces(contolValue) != "" ) && ( contolValue.length != 0 ) )
	{
		return contolValue.substring(index+1).toLowerCase();
	}
	else
	{
		return '';
	}
}
