/*	½ÃÅ¥¾ÆÀÌ´åÄÄ Å¬¶óÀÌ¾ðÆ® ¿ë º¸¾È ¸ðµâ 		*/
/*			2002.11.06 ÀÛ¼ºÀÚ À±¼±Èñ ¿¡¹ö·£µå happyna site */


var pluginURL = "http://home.happyna.com/secure/SecuiBohumIE.cab"; //ÇÃ·¯±× ÀÎ URL
var cabVersion = "#Version=1,6,0,2";   //Plug_IN ¹öÀü

var EncALGO = "SEED"; //´ëÄªÅ° ¾ÏÈ£È­ ¾Ë°í¸®Áò
var signALGO = "SHA1"; // ¼­¸í¿ë ÇØ½¬ ¾Ë°í¸®Áò
var signcert = null; //»ç¿ëÀÚ ÀÎÁõ¼­
var signValue = null; 

var serverCert = "-----BEGIN CERTIFICATE-----|MIICWzCCAcSgAwIBAgICAiEwDQYJKoZIhvcNAQEFBQAwSzEQMA4GA1UEChMHc2Ft|c3VuZzEPMA0GA1UECxMGcGVvcGxlMQ4wDAYDVQQLEwVhZG1pbjEWMBQGCgmSJomT|8ixkAQETBkNMQVNTMTAeFw0wMjExMDYwNzM4MjFaFw0wMzExMDUwNzM4MjFaMEgx|EDAOBgNVBAoTB3NhbXN1bmcxDzANBgNVBAsTBnBlb3BsZTEjMCEGCgmSJomT8ixk|AQETE0V2ZXJMYW5kSGFwcHlOYTAwMjAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ|AoGBAMN0Ev9N3Ec8j07OkbnfYZxPU8vpeffuYNaf4Bz/PJ+Z2niV9jjkiLFkIV3K|EJnIgh73LEz3KCglHl1H4bSnnXzKFb48rlT8PrQcvZiWJG8jrO4uxmMGeHjlPSqn|XILAWJKU0Ebbbu1rXZFnTiRUtdjowLU58lTBld8LMNes8K/BAgMBAAGjUTBPMB8G|A1UdIwQYMBaAFEY5gBl/UamlGak2vyDsi4d7arvnMAsGA1UdDwQEAwIDODAMBgNV|HRMBAf8EAjAAMBEGCWCGSAGG+EIBAQQEAwIHgDANBgkqhkiG9w0BAQUFAAOBgQA/|Ea4cGS27uQcypeCG65Lgo48ioSEbnAehgtfAC3ChhwnrXA2ST9ymOCP5LcOVDT/M|aN/72j9Uep2R5KRZDGKeZiJmFe+/HL1xYcTg1bjXxwM4R/X5uhTKv74pg8rAucCm|6cu0M25/nAiTpi7kr5s4nxNQDRl9z76d5kb4XiCxlw==|-----END CERTIFICATE-----"

//ÇÃ·¯±× ÀÎ ·Îµå 
document.writeln('<OBJECT ID="SecuiSS" CLASSID="clsid:1514EB38-3F47-4DB9-B295-21209446CC1A" width=0 height=0 ');
document.writeln('CODEBASE='+ pluginURL + cabVersion + '>');
document.writeln('</OBJECT>');

document.writeln('<OBJECT ID="SecuiTS" CLASSID="clsid:C1802073-3112-43EE-88D4-D959242DDF5D" width=0 height=0 ');
document.writeln('CODEBASE='+ pluginURL + cabVersion + '>');
document.writeln('</OBJECT>');


//¾ÏÈ£È­µÈ µ¥ÀÌÅÍ Àü¼ÛÀ» À§ÇÑ hidden Form Á¤ÀÇ
document.writeln('<form name=secuiform METHOD=POST>');
document.writeln( '<input name=ENCSYMM type=hidden>'); //¾ÏÈ£È­µÈ ´ëÄªÅ°
document.writeln( '<input name=SIGNCERT type=hidden>'); //»ç¿ëÀÚ ÀÎÁõ¼­
document.writeln( '<input name=ENCDATA type=hidden>'); //¾ÏÈ£È­µÈ µ¥ÀÌÅÍ
document.writeln( '<input name=ENCALGO type=hidden>'); //´ëÄªÅ° ¾Ë°í¸®Áò
document.writeln( '<input name=SIGNALGO type=hidden>'); //ÀüÀÚ¼­¸í ÇØ½¬ ¾Ë°í¸®Áò
document.writeln( '<input name=SIGNVALUE type=hidden>'); //ÀüÀÚ¼­¸í°ª
document.writeln('</form>');

//Æû¾ÈÀÇ ¾ÏÈ£È­ÇÒ µ¥ÀÌÅ¸ ÃëÇÕ ´ÜÀÏ ½ºÆ®¸µÀ¸·Î ¸¸µë.
function makeSerialForm(objForm)
{
	var strSerialForm = ""
 	var startFlag = false // '&' ºÐ¸®ÀÚ¸¦ »ðÀÔÇÏ´Â ½Ã±â¸¦ ¾Ë·ÁÁÜ.
 	//alert(objForm.elements.length)
	for(i = 0; i < objForm.elements.length; i++) 
	{
		//alert(objForm.elements[i].name + " ^@^ " + objForm.elements[i].value )
		if((objForm.elements[i].type != "submit") && (objForm.elements[i].type != "reset") && (objForm.elements[i].type != "button"))
		{
			if(objForm.elements[i].type == "radio" || objForm.elements[i].type == "checkbox")
		        {
				if (objForm.elements[i].checked == true)
				{
					if(startFlag)
					{
						strSerialForm += "&";
					}
					else
						startFlag = true;
						
					strSerialForm += objForm.elements[i].name; 
					strSerialForm += "=";
					if (objForm.elements[i].value.length > 0)
					{
						strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].value);
					}
					//strSerialForm += objForm.elements[i].value;	
				}
			}
			else
			{
				if (startFlag )
				{
					strSerialForm += "&";
				}
				else
					startFlag = true;
						
				strSerialForm += objForm.elements[i].name; 
				strSerialForm += "=";
				
				if (objForm.elements[i].type == "select-one") 
				{
					if (objForm.elements[i].options[objForm.elements[i].selectedIndex].value != '')
						strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].options[objForm.elements[i].selectedIndex].value);
						//strSerialForm += objForm.elements[i].options[objForm.elements[i].selectedIndex].value;
					else
						strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].options[objForm.elements[i].selectedIndex].text);
						//strSerialForm += objForm.elements[i].options[objForm.elements[i].selectedIndex].text;
						
				}
				else 
				{
					//strSerialForm += objForm.elements[i].value;
					//strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].value);
					if (objForm.elements[i].value.length > 0)
					{
						strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].value);
					}
				}
			}
		}
	}
	//alert(strSerialForm);
	return strSerialForm;
}
 
//¾ÏÈ£È­
function SecuiEncrypt(plainData)
{
	SecuiSS.GenerateEx(EncALGO, serverCert)
	
	return SecuiSS.EncipherEx(plainData)
}

//º¹È£È­
function SecuiDecrypt(EncData)
{	
	return SecuiSS.DecipherEx(EncData)
}

//ÀüÀÚ¼­¸í
function SecuiSign(oriMesg)
{
	var signVal = SecuiTS.Sign(signALGO, oriMesg, "", "")
	signcert = SecuiTS.getCert()
	
	return signVal
}

//ÀüÀÚ¼­¸í °ËÁõ
/*
function SecuiVerifySign(oriMesg, signVal, opCert, opCAPUBS, opSignALGO)
{

}
*/

//¾ÏÈ£È­µÈ µ¥ÀÌÅ¸ÀÇ ¼­¹ö Àü¼Û
function SecuiSubmit(form, srvAction)
{
	//form: ´ë»ó Æû
	//srvAction : ¼­¹ö ¾×¼Ç 
	//
	var plainText
	var encText
	var encSymmKey
	var signValue

	plainText = makeSerialForm(form)
	
	encText = SecuiEncrypt(plainText)
	if (encText == null || encText == "")
	{
		alert("¾ÏÈ£È­ ½ÇÆÐ!!!");
		return;
	}
	encSymmKey = SecuiSS.getKEYIV()
/*	
	alert("¾ÏÈ£¹® : " + encText)
	alert("¾ÏÈ£È­µÈ ´ëÄªÅ° : " + encSymmKey)
	

	document.writeln(encText)
	document.writeln(encSymmKey)
	document.writeln(signcert)
*/	
	secuiform.ENCDATA.value = encText
	secuiform.ENCSYMM.value = encSymmKey
	secuiform.ENCALGO.value = EncALGO
//alert("t : " + encText);
//alert("t : " + encSymmKey);
//alert("t : " + EncALGO);
//alert("t : " + srvAction);
	
	secuiform.action = srvAction
	secuiform.submit()
}

//¾ÏÈ£È­µÈ µ¥ÀÌÅ¸¿Í ÀüÀÚ¼­¸í ¼­¹ö Àü¼Û
function SecuiSignSubmit(form, srvAction)
{
	//form: ´ë»ó Æû
	//srvAction : ¼­¹ö ¾×¼Ç 
	
	var plainText //½Ã¸®¾óÈ­µÈ Æò¹®ÀÇ Æû µ¥ÀÌÅÍ
	var encText // ¾ÏÈ£È­µ¥ÀÌÅÍ(Æò¹® + ÀüÀÚ¼­¸í)
	var encSymmKey // ¾ÏÈ£È­µÈ ´ëÄªÅ°
	var signValue // ÀüÀÚ¼­¸í °ª


	plainText = makeSerialForm(form)
//document.writeln(plainText)
	signValue = SecuiSign(plainText)
//document.writeln(signValue)

	if (signValue == null || signValue == "")
		return;
	
	encText = SecuiEncrypt(plainText)
	encSymmKey = SecuiSS.getKEYIV()
	signcert = SecuiTS.getCert()
	
//	alert(encText)
	alert("¾ÏÈ£¹® : " + encText)
//	alert(encSymmKey)
	alert("¾ÏÈ£È­µÈ ´ëÄªÅ° : " + encSymmKey)
//	alert(signValue)
	alert("¼­¸í°ª : " + signValue)
/*	
	document.writeln(encText)
	document.writeln(encSymmKey)
	document.writeln(signcert)
*/
//	document.writeln(signValue)
	
	secuiform.ENCDATA.value = encText
	secuiform.ENCSYMM.value = encSymmKey
	secuiform.SIGNCERT.value = signcert
	secuiform.ENCALGO.value = EncALGO
	secuiform.SIGNALGO.value = signALGO
	secuiform.SIGNVALUE.value = signValue
	
	secuiform.action = srvAction
	secuiform.submit()
}


    
