
var CKKeyPro_CLSID="clsid:6CE20149-ABE3-462E-A1B4-5B549971AA38";	

var CKKeyPro_CODEBASE_x86= "http://ck.softforum.co.kr/keypro/3.0.0.11/CKKeyPro30011_32k.cab";
var CKKeyPro_CODEBASE_x64= "http://ck.softforum.co.kr/keypro/3.0.0.11/CKKeyPro30011_64.cab";

var CKKeyPro_VERSION="version=3,0,0,11";

//var USING_CKKeyPro = "1";

var USING_CUSTOM_IMAGE = 0;

var CUSTOM_IMAGE_URL = "";


if (USING_CKKeyPro == "Y")
{
		{
			var Str="";

			Str+= '<object classid="' + CKKeyPro_CLSID + '"';
			if(navigator.cpuClass.toLowerCase() == "x64")
			{
				CKKeyPro_VERSION="version=3,0,0,4";
				Str+= '\n\t codebase="' + CKKeyPro_CODEBASE_x64 + '#' + CKKeyPro_VERSION + '"';
			}
				else
			{
				Str+= '\n\t codebase="' + CKKeyPro_CODEBASE_x86 + '#' + CKKeyPro_VERSION + '"';
			}
			//Str+= '\n\t codebase="' + CKKeyPro_CODEBASE + '#' + CKKeyPro_VERSION + '"';
			Str+= '\n\tvspace="0" hspace="0" width="0" id="CKKeyPro" style="display:none;">';

			Str+= '\n\t <PARAM name="PKI" value="IniSafeV7">';
			Str+= '\n\t <PARAM name="ClearBufferOnEmpty" value="true">';
			Str+= '\n\t <PARAM name="DefaultEnc" value="Off">';
			Str+= '\n\t <PARAM name="AllowDuplicates" value="True">';


			if(USING_CUSTOM_IMAGE)
				Str+= '\n\t <PARAM name="ImageURL" value="' + CUSTOM_IMAGE_URL + '">';

			//Str+= '\n\tNo CKKeyPro Plugin';
			Str+= '\n</object>';
			
			//alert(Str);			
			document.write(Str);
		}
} 
/*else if (navigator.appName.indexOf("Netscape")!=-1) {
		USING_CKKeyPro = "0";
		alert("ÇöÀç °í°´´Ô²²¼­´Â ¼³Ä¡ ºÒ°¡´ÉÇÑ ½Ã½ºÅÛÀ» »ç¿ëÇÏ°í °è½Ê´Ï´Ù.\n\nCKKeyPro¸¦ »ç¿ëÇÏ½Ã·Á¸é Windows 95ÀÌ»ó \n\nInternet Explorer 5.5ÀÌ»óÀÌ¾î¾ß ÇÕ´Ï´Ù.");
}

*/

function XecureCK_UIEevents(frm,ele,event,keycode)
{
	var obj;
	var eventObj;

	try{
		obj=document.forms[frm].elements[ele];
		if( document.createEventObject )
		{
			eventObj = document.createEventObject();
			eventObj.keyCode=keycode;
			if(obj)
			{
				obj.fireEvent(event,eventObj);
			}
		}
	}
	catch(e) {}
}

/*
	Rescan the current HTML Document & protects newly added elements.
	Call this function if you are adding Input Elements through JavaScript.
*/

function XecureCK_ReScan()
{
	if(document.CKKeyPro==null || typeof(document.CKKeyPro) == "undefined" || document.CKKeyPro.object==null)
	{
		//CKKeyPro is not running in current document.
		return;
	}
	document.CKKeyPro.ReScanDocument();
}

function HaveControl_CK()
{
	if(document.CKKeyPro==null || typeof(document.CKKeyPro) == "undefined" ||document.CKKeyPro.object==null)
	{
		alert("Å°º¸µå º¸¾È ÇÁ·Î±×·¥ÀÌ ¼³Ä¡µÇÁö ¾Ê¾Ò½À´Ï´Ù.");
		return false;
	}
	else
		return true;
}

function CKKeyPro_Clear(frmName,eleName)
{
 	if(document.CKKeyPro==null || typeof(document.CKKeyPro) == "undefined" || document.CKKeyPro.object==null)
        {
                //XecureCK is not running in current document.
                return;
        }
	document.CKKeyPro.Clear(frmName,eleName,0);
}


/*
	return value must be string, even if the value is a valid numeric.
*/
function CKKeyPro_GetVariable(name)
{
	if(name == "CustomerCode")
		return "302";
	else
	if(name == "PartnerCode")
		return "1149106893"; //initech test site partner code only.
	else
	if(name == "IssueSeed")
		return "s-http://sign.gmarket.co.kr:8080/shttp/handshake/e2e/req_seed";
	else
	if(name == "Cert")
	{
			var TempCert = SCert.replace("-----BEGIN CERTIFICATE-----","");
			TempCert = TempCert.replace("\n-----END CERTIFICATE-----","");

			TempCert = TempCert.replace(/\n/g,"");
			return TempCert;
	}

	return "";
}


function CKKeyPro_GetPrefix(type)
{
	if(type == "text")
		return "_ExtE2E123_";
	else if(type == "password")
		return  "_E2E123_";
	else
		return "_E2E123_"; 	//we will use replacement e2e algorithm for hidden element.
}


function CKKeyPro_IsArray(elementName, formName) 
{
	try
	{
		var elements = document.getElementsByName(elementName);

		//TODO check the form name also.

		if(elements.length <= 1)
			return false;

		return true;
	}
	catch (e)
	{
	}

	return false;
}


/*
	CKKeyPro_SetElementValue: Helper function for Initech PKI.
*/
function CKKeyPro_SetElementValue(frm,ele,value,type,index)
{
	var count=0,isArry=false;

	try
	{
		ele  = ele.replace("CKKeyPro_","");
		isArry = CKKeyPro_IsArray(ele);
		ele  = CKKeyPro_GetPrefix(type) + ele;
		
		var frmObj = document.forms[frm];
		var len = frmObj.elements.length;

		for(var i=0; i<len; i++)
		{
			if(frmObj.elements[i].name == ele)
			{
				if(isArry == false || (index == count))
				{
					frmObj.elements[i].value = value;
					break;
				}
				count++;
			}
		}
	}
	catch (e)
	{
		alert("CKKeyPro_SetElementValue:\n" + e);
		//alert("CKKeyPro_SetElementValue:\n" + e + "\n" + ele + "\n" +  obj.name + "\n" + index);
	}
}


function CKKeyPro_CheckTextE2E(frm)
{
	var bResult = true;

	for(var i=0; i<frm.elements.length; i++)
	{
		if(frm.elements[i].type == "text" && frm.elements[i].enc=="on")
		{
			var bRet = document.CKKeyPro.IsElementValueMatched(frm.name, frm.elements[i].name, 0, frm.elements[i].value);
			if(bRet == false)
			{
				bResult = bRet;
			}
		}
	}


	return bResult;
}


function CKKeyPro_OnError(code, arg1,arg2)
{
 if(code == "IssueSeedDownloadError")
 {
  //alert("IssueSeedDownloadError");
 }
 else
 {
  //alert('JavaScript Got an Error\nError Code:' + code + '\n Driver Name' + arg1);
 }  
}
