var GnxSystemInfoHelper = function () {
	
	this.Object				= null;
	this.QueryString		= {};
	this.isAutoInstall		= false;
	
	this.iFrameUniqueID		= "g_mySystemInfo_w";
	
	//Common Æú´õ °æ·Î¿¡ µû¶ó ¼³Á¤ÇÏÁö¸é µË´Ï´Ù.
	this.systemInfoFileUrl	= "../../Common/SystemInfo/SysInfo_Common.html";
	
	this.nType_Const_NotInstalled		= -1;
	this.nType_Const_ExecuteCallback	= 1;
	this.nType_Const_AutoActivexInstall	= 2;
	
	this.GetString = function () {
		return "<iframe name='" + this.iFrameUniqueID + "' id='" + this.iFrameUniqueID + "' src='" + this.systemInfoFileUrl + "?" + this.GetQueryString()  + "' style='width:0;height:0'></iframe>";
	};
	
	this.FindFrameElement = function () {
		
		return window.frames[ this.iFrameUniqueID ];
	};
	
	this.FindActivexObject = function () {
	
		var _object = this.FindFrameElement().NxActiveX;
		
		if ( ( typeof _object ).equals( "object" ) )
			this.Object = _object;
		else
			this.Object = null;
	};
	
	this.GetSysInfoString = function () {
		
		this.FindActivexObject();
		
		if ( this.Object != null )
			return this.Object.GetSysInfoString();
		else
			return null;
	};
	
	this.GetIsInstall = function () {
	
		this.FindActivexObject();
		
		if ( this.Object != null )
			return this.Object.GetIsInstall();
		else
			return null;
	};
	
	this.GetQueryString = function () {
		
		var _value = null;
		var _query = [];
		
		if ( this.isAutoInstall )
			this.AddQueryString( "codeState", this.nType_Const_AutoActivexInstall );
		
		for ( key in this.QueryString )
			_query[ _query.length ] = key + "=" + this.QueryString[ key ];
		
		return ( _query.length > 0 ) ? _query.join( "&" ) : "";
	};
	
	this.AddQueryString = function ( key, value ) {
	
		this.QueryString[ key ] = value;
	};
	
	this.CreateCallback = function ( src ) {
	
		return function () {
		
			src.apply( this, arguments );
		};
	};	
};
