// Ver 1.1
// # 2009. 01. 08  15:57:30  ***modify by joy***
// 이재욱
// 2009. 08. 04  16:53:34
// 2010-09-03 오현섭 수정 
var panLoadInfo = {
	ProgID : "FirstLoad.PanLoader.1",
	ID : "Loader",
	NAME : "Loader",
	CLASSID : "clsid:8218BB3D-2D62-4719-B6EC-FEBE7A079CBD",
	CODEBASE : "http://imgcdn.pandora.tv/pan_img/app/FirstLoad1.0.0.3.cab#version=1,0,0,3",
	Installer_CLASS : '{92A60D3C-E725-4C2E-AE49-BD90103A9369}',
	Installer_IID : '{E6787D69-D5FB-49AA-815A-D6ACE45035AB}'
};

var miniAxInfo = {
	ID : "MiniAX",
	NAME : "MiniAX",
	CLASSID : "clsid:4D28696D-65D6-4C2F-9471-545CE7B61624",
	Installer_HOST : 'imgcdn.pandora.tv',
	Installer_File : '/pan_img/app/MiniAX_1.0.0.141.zip',
	CODEBASE : "MiniAX.ocx#version=1.0.0.141",
	Installer_Version : "MiniAX.ocx#1.0.0.141"
//*/
};


var browser = function () {
	var agent = navigator.userAgent.toLowerCase();
	return (agent.indexOf("msie") != -1 && agent.indexOf("opera") == -1 ? "IE" : (agent.indexOf("opera") != -1 ? "OP" : (agent.indexOf("chrome") != -1 ? "CR" : (agent.indexOf("safari") != -1 ? "SF" : (agent.indexOf("firefox") != -1 ? "FF" : "ETC")))));
}


var loadActiveX = {
	installCheck : [],
	_construct : function (loadPan) {
		this.installCheck["PanLoader"] = this.setLoad(panLoadInfo);
		if (this.installCheck["PanLoader"]) {
			this.setActiveX(panLoadInfo); //판로더 로더
			this.setActiveXInstall(miniAxInfo, 0); //MiniAX 업데이트 OR 설치
			this.setActiveX(miniAxInfo); //MiniAX 로더
			this.runStreamer();
			return false;
		} else {
			return true;//if (loadPan) this.setActiveX(panLoadInfo);
		}
	},

	setLoad : function(loadObj) {
		try {
			var obj = new ActiveXObject(loadObj.ProgID);
			if (obj)
				return true;
		} catch(e) {
			return false;
		}
	},

	isInstalled : function (Exename) {
		var k = 0;
		try {
			k = MiniAX.rtnEventSetupState(Exename);
		} catch (e) { }
		return k;
		// 0 : 설치 안된
		// 1 : 설치 되어 있슴
	},

	miniAxInstall : function (Exename) {
		var k = '';
		k = MiniAX.EventSetupRun(Exename);
		return k;
		// 0 : 설치 오류
		// 1 : 설치 완료
	},

	setActiveXInstall : function(installAX, perm) {
		var ret;
		var Installer;
		if (this.isInstalled["PanLoader"]==false) this.setActiveX(panLoadInfo);

		if( perm == 0 ) Installer = Loader.CreateInstanceNormal(panLoadInfo.Installer_CLASS,panLoadInfo.Installer_IID);
		else Installer = Loader.CreateInstance(panLoadInfo.Installer_CLASS,panLoadInfo.Installer_IID);

		Installer.Host = installAX.Installer_HOST;
		Installer.File = installAX.Installer_File;
		Installer.Level = perm;
		Installer.Version = installAX.Installer_Version;

		ret = Installer.Install();
		//alert(ret);
		// 기타 에러 0
		// 성공 1
		// 파일 다운 실패 2
		// 파일 다운 실패 3
		// 파일 다운 실패 4
		// 파일 다운 실패 5
		// 파일읽기 실패 6
		// 인터페이스 얻기 실패 7
		// 잘못된 URL 8
		// 시스템 폴더 구하기 실패 9
		// 잘못된 파라미터 10
		// 파일 생성 실패 11
		// 파일 쓰기 실패 12
		// 파일 등록 실패 13
		// 설치 취소 14
		// 압축풀기 에러 15
		// 브라우져 종료 16
		// 설치 안해도 됨 17
		// 버전 정보 잘못됨 18
		// OCX 사용중 19
		// admin 권한이 필요하다 20
		switch( ret ) {
		case 1:
			case 17:
//				this.setActiveX(installAX);
			break;
			case 20:
				this.setActiveXInstall(installAX, 1);
			break;
			default: 
			break;
		}
	},

	setActiveX : function(loadObj) {
		This= this;
		if (document.getElementById('activeXLauncher')) {
			var objLoad = '<OBJECT';
			if (loadObj.ID)			objLoad += ' id="' + loadObj.ID + '"';
			if (loadObj.NAME)		objLoad += ' name="' + loadObj.NAME + '"';
			if (loadObj.CLASSID)	objLoad += ' classid="' + loadObj.CLASSID + '"';
			if (loadObj.CODEBASE)	objLoad += ' codebase="' + loadObj.CODEBASE + '"';
									objLoad += ' width="0" height="0"></OBJECT>';
			document.getElementById('activeXLauncher').innerHTML = document.getElementById('activeXLauncher').innerHTML+objLoad;
		}
		else
			setTimeout(function () {This.setActiveX(loadObj);}, 500);
	},

	runStreamer : function () {
		try {
			MiniAX.ReturnLiteSetup("OnlyLite", "KR");
		} catch (e) {}
	}
}
