﻿// ****************************************************************************************************
//
// Filename  : weblog.js
// Create Date : 2006-09-05
// Modify Date  :   
// Description : Web Log 처리를 위한 함수들을 모아 놓은 파일
// Reference : 
//
// ****************************************************************************************************



// ****************************************************************************************************
//
// Create Date : 2006-09-05
// Modify Date :   
//
//  1. Description : Web Log를 생성한다.
//  2. Parameters : 없음
//        - strDate : 요청 날짜
//        - strTime : 요청 시간
//        - strServerIP : 서버 IP
//        - strServerName : 서버명
//        - strClientIP : 클라이언트 IP
//  3. Return Value : 없음 
//
//  CreateLog("<%=Replace(Date(), "-", ")%>", "<%=LPad(Hour(Now()), 2, "0) & LPad(Minute(Now()), 2, "0") & LPad(Second(Now()), 2, "0")%>", "<%=Request.Servervariables("LOCAL_ADDR")%>", "<%=Request.Servervariables("SERVER_NAME")%>", "<%=Request.ServerVariables("REMOTE_ADDR")%>");  
//
// ****************************************************************************************************

function CreateLog(strDate, strTime, strServerIP, strServerName, strClientIP) {
	var strURL, strRefererURL;
	var strCookie;
	var strUserAgent, strScreen, strScreenbit, strlanguage, strIsJava, strFlashVer;
	var strResult;


	strURL = document.location;
	strRefererURL = document.referrer;
	strCookie = document.cookie;
	strUserAgent = window.navigator.userAgent;
	strScreen = window.screen.width + "*" + window.screen.height;
	strScreenbit = window.screen.colorDepth;
	strlanguage = window.navigator.userLanguage;
	strIsJava = window.navigator.javaEnabled();
	//	strFlashVer = FlashInfo();
	strOsInfo = GetOsInfo();
	strBrowserInfo = GetBrowserInfo();

	//날짜,시간,서버IP,서버명,요청 URL,참조 URL,클라이언트IP,쿠키값,USERAGENT,해상도,색상,언어,JAVA 활성화,플래쉬 버전,OS,Browser
	//	strResult = strDate + "," + strTime + "," + strServerIP + "," + strServerName + "," + strURL + "," + strRefererURL;
	//	strResult = strResult + "," + strClientIP + "," + strCookie + "," + strUserAgent + "," + strScreen + "," + strScreenbit;
	//	strResult = strResult + "," + strlanguage + "," + strIsJava + "," + strFlashVer + "," + strOsInfo + "," + strBrowserInfo;
	strResult = strURL + "," + strRefererURL;
	strResult = strResult + "," + strCookie + "," + strUserAgent + "," + strScreen + "," + strScreenbit;
	strResult = strResult + "," + strlanguage + "," + strIsJava + "," + strOsInfo + "," + strBrowserInfo;

	doLogSubmit(strResult);
}



// ****************************************************************************************************
//
// Create Date : 2006-09-05
// Modify Date :   
//
//  1. Description : Web Log를 파일로 생성하는 asp 페이지를 XMLHttpRequest 객체를 이용하여 호출한다.
//  2. Parameters
//        - strResult : POST 할 Log 스트링
//  3. Return Value : 없음 
//
// ****************************************************************************************************

function doLogSubmit(strResult) {
	var url = "http://www.coza.kr/cozaboard/common/weblog.asp";
	var formstr = "strResult=" + escape(strResult);

	$.ajax({
		type: "POST",
		url: url,
		data: formstr
		//		success: function(msg) {
		//			alert(msg);
		//		}
	});
	//	AJAX.create();
	//	AJAX.openXML("POST", url, true);
	//	AJAX.setRequestHeader("content-Type", "application/x-www-form-urlencoded;");
	//	AJAX.send(formstr);
}



// ****************************************************************************************************
//
// Create Date : 2006-09-07
// Modify Date :   
//
//  1. Description : 클라이언트의 OS 종류를 얻는다.
//  2. Parameters : 없음
//  3. Return Value : 없음 
//
// ****************************************************************************************************

function GetOsInfo() {
	var osinfo;

	var sUserAgent = navigator.userAgent;
	var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
	var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh");
	var isUnix = (navigator.platform == "X11") && !isWin && !isMac;

	if (isWin) {
		if (sUserAgent.indexOf("Win95") > -1 || sUserAgent.indexOf("Windows 95") > -1)
			osinfo = "Windows 95";
		else if (sUserAgent.indexOf("Win98") > -1 || sUserAgent.indexOf("Windows 98") > -1)
			osinfo = "Windows 98";
		else if (sUserAgent.indexOf("Win 9x 4.90") > -1 || sUserAgent.indexOf("Windows ME") > -1)
			osinfo = "Windows ME";
		else if (sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1)
			osinfo = "Windows 2000";
		else if (sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1)
			osinfo = "Windows XP";
		else if (sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1)
			osinfo = "Windows 2003";
		else if (sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1)
			osinfo = "Windows Vista";
		else if (sUserAgent.indexOf("WinNT") > -1 || sUserAgent.indexOf("Windows NT") > -1 || sUserAgent.indexOf("WinNT4.0") > -1 || sUserAgent.indexOf("Windows NT 4.0") > -1)
			osinfo = "Windows NT4";

	}

	if (isMac) {
		if (sUserAgent.indexOf("Mac_68000") > -1 || sUserAgent.indexOf("68K") > -1)
			osinfo = "Mac_68000";
		else if (sUserAgent.indexOf("Mac_PowerPC") > -1 || sUserAgent.indexOf("PPC") > -1)
			osinfo = "Mac_PowerPC";
	}

	if (isUnix) {
		var isSunOS = sUserAgent.indexOf("SunOS") > -1;

		if (isSunOS) {
			var reSunOS = new RegExp("SunOS (\\d+\\.\\d+(?:\\.\\d+)?)");
			reSunOS.test(sUserAgent);

			if (compareVersions(RegExp["$1"], "4.0") >= 0)
				osinfo = "SunOS 4.0";
			if (compareVersions(RegExp["$1"], "5.0") >= 0)
				osinfo = "SunOS 5.0";
			if (compareVersions(RegExp["$1"], "5.5") >= 0)
				osinfo = "SunOS 5.5";
		}
	}



	return osinfo;
}



// ****************************************************************************************************
//
// Create Date : 2006-09-07
// Modify Date :   
//
//  1. Description : 클라이언트의 Browser 종류를 얻는다.
//  2. Parameters : 없음
//  3. Return Value : 없음 
//
// ****************************************************************************************************

function GetBrowserInfo() {
	var browserinfo;
	var sUserAgent = navigator.userAgent;

	var fAppVersion = parseFloat(navigator.appVersion);

	var isOpera = sUserAgent.indexOf("Opera") > -1;
	var isKHTML = sUserAgent.indexOf("KHTML") > -1 || sUserAgent.indexOf("Konqueror") > -1 || sUserAgent.indexOf("AppleWebKit") > -1;
	var isIE = sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1 && !isOpera;
	var isMoz = sUserAgent.indexOf("Gecko") > -1 && !isKHTML;
	var isNS4 = !isIE && !isOpera && !isMoz && !isKHTML && (sUserAgent.indexOf("Mozilla") == 0) && (navigator.appName == "Netscape") && (fAppVersion >= 4.0 && fAppVersion < 5.0);


	if (isOpera) {
		var fOperaVersion;

		if (navigator.appName == "Opera") {
			fOperaVersion = fAppVersion;
		}
		else {
			var reOperaVersion = new RegExp("Opera (\\d+\\.\\d+)");

			reOperaVersion.test(sUserAgent);
			fOperaVersion = parseFloat(RegExp["$1"]);
		}



		if (fOperaVersion >= 4)
			browserinfo = "Opera 4.0";
		if (fOperaVersion >= 5)
			browserinfo = "Opera 5.0";
		if (fOperaVersion >= 6)
			browserinfo = "Opera 6.0";
		if (fOperaVersion >= 7)
			browserinfo = "Opera 7.0";
		if (fOperaVersion >= 7.5)
			browserinfo = "Opera 7.5";

	}


	if (isKHTML) {
		var isSafari = sUserAgent.indexOf("AppleWebKit") > -1;
		var isKonq = sUserAgent.indexOf("Konqueror") > -1;



		if (isSafari) {
			var reAppleWebKit = new RegExp("AppleWebKit\\/(\\d+(?:\\.\\d*)?)");

			reAppleWebKit.test(sUserAgent);
			var fAppleWebKitVersion = parseFloat(RegExp["$1"]);



			if (fAppleWebKitVersion >= 85)
				browserinfo = "Safari 1.0";
			if (fAppleWebKitVersion >= 124)
				browserinfo = "Safari 1.2";
		}
		else if (isKonq) {
			var reKonq = new RegExp("Konqueror\\/(\\d+(?:\\.\\d+(?:\\.\\d)?)?)");

			reKonq.test(sUserAgent);

			if (compareVersions(RegExp["$1"], "2.2") >= 0)
				browserinfo = "Konq 2.2";
			if (compareVersions(RegExp["$1"], "3.0") >= 0)
				browserinfo = "Konq 3.0";
			if (compareVersions(RegExp["$1"], "3.1") >= 0)
				browserinfo = "Konq 3.1";
			if (compareVersions(RegExp["$1"], "3.2") >= 0)
				browserinfo = "Konq 3.2";
		}

	}

	if (isIE) {
		var reIE = new RegExp("MSIE (\\d+\\.\\d+);");


		reIE.test(sUserAgent);
		var fIEVersion = parseFloat(RegExp["$1"]);



		if (fIEVersion >= 4)
			browserinfo = "IE 4.0";
		if (fIEVersion >= 5)
			browserinfo = "IE 5.0";
		if (fIEVersion >= 5.5)
			browserinfo = "IE 5.5";
		if (fIEVersion >= 6.0)
			browserinfo = "IE 6.0";
		if (fIEVersion >= 7.0)
			browserinfo = "IE 7.0";
	}



	if (isMoz) {
		var reMoz = new RegExp("rv:(\\d+\\.\\d+(?:\\.\\d+)?)");

		reMoz.test(sUserAgent);

		if (compareVersions(RegExp["$1"], "1.0") >= 0)
			browserinfo = "Moz 1.0";
		if (compareVersions(RegExp["$1"], "1.4") >= 0)
			browserinfo = "Moz 1.4";
		if (compareVersions(RegExp["$1"], "1.5") >= 0)
			browserinfo = "Moz 1.5";
	}



	if (isNS4) {
		browserinfo = "NS 4.0";
		if (fAppVersion >= 4.5)
			browserinfo = "NS 4.5";
		if (fAppVersion >= 4.7)
			browserinfo = "NS 4.7";
		if (fAppVersion >= 4.8)
			browserinfo = "NS 4.8";
	}



	return browserinfo;
}

