
  function eBookOpener() {
	this.winLimitWidth   = 1024;
	this.winLimitHeight  = 768;
	this.winWidth        = 0;
	this.winHeight       = 0;
	this.winStyle        = null;
	this.winStyleName    = null;

	this.Port="80";
	this.eBookHost       = "http://ebook.zyyx.jp"
	this.eBookUrl        = this.eBookHost + ":" + this.Port + "/engine/isapi/frame.dll?";

	this.ParameterList   = new Array("bc", "co", "gp", "sbp", "sep", "ui", "ct");
	this.ViewerStyleList = new Array("eBookFull", "eBookCustomer", "eBookDefault", "FullScreen");

	this.SetLaunchHTML   = SetLaunchHTML;
    
	this.GetQuery        = GetQuery;
	this.GetWinStyle     = GetWinStyle;
	this.SetBorderSize   = SetBorderSize;
	this.IsWinXP         = IsWinXP;
	this.OpenBook        = OpenBook;
	this.SelfOpen        = SelfOpen;
  }

  function SetLaunchHTML(arg_URL) {  //  open window in HTML
    var OpenHTML  = "<html>" + "\n" 
                  + "<body onload=\"oLaunch.click()\">" + "\n" 
                  + "<a id=\"oLaunch\" style=\"visibility:hidden\" href=\"" + this.eBookUrl  + arg_URL + "\">OpenEBook</a>" + "\n"     
                  + "</body>" + "\n"  
                  + "</html>" ;
    return OpenHTML;
  }

  function GetQuery(arg_Param) {
    var sParam    = "";
    if(arg_Param.length) {
      for(var i=0;i<arg_Param.length;i++) {
        if(arg_Param[i] != "") {  sParam += this.ParameterList[i] + "=" + arg_Param[i] + "&"; }
      }
		
	if(navigator.appName.indexOf("Microsoft") > -1){
		sParam += "ul=" + navigator.browserLanguage;
	} else {
		sParam += "ul=ja";
	}
      return sParam;
    }  else {
      return false;
    }
  }
  
  function IsWin2k3() {
    if ( navigator.userAgent.indexOf("Windows NT 5.2") > 1 ) { return true ; }
    return false // WinMe, Win9x, Win2k  
  }      
  
  function GetWinStyle() {  
    var tmpFullScreen = ""  ;   
    if ( this.winStyle = "null" ) {this.winStyle = 2 ; }
    if( (IsWin2k3() != true ) &&  ( screen.width <= this.winLimitWidth || screen.height <= this.winLimitHeight) ) {  this.winStyle = 0 ; }
    
    switch ( this.winStyle ) {              
      case 0  : // full screen window 
                this.winStyleName  = this.ViewerStyleList[0]; 
                this.winTop     = 0 ;                                   
                this.winLeft    = 0 ;
                this.winWidth   =  screen.width  ;
                this.winHeight  =  screen.height ;
                break;
      
      case 1  : // corporation customer window 
                this.winStyleName  = this.ViewerStyleList[1]; 
                if(this.winWidth < this.winLimitWidth)    {  this.winWidth  = this.winLimitWidth; }
                if(this.winHeight < this.winLimitHeight)  {  this.winHeight  = this.winLimitHeight; }
                this.winLeft    = (screen.width  - this.winWidth) / 2;
                this.winTop     = (screen.height - this.winHeight) / 2;
                break;
    
      case 2 : // user customer window environemnt
                this.winStyleName  = this.ViewerStyleList[2]; 
                this.winWidth      = this.winLimitWidth;  
                this.winHeight     = this.winLimitHeight;  
                this.winLeft       = (screen.width  - this.winWidth) / 2;
                this.winTop        = (screen.height - this.winHeight) / 2;
                break;
      case 3 : 
                this.winStyleName  = this.ViewerStyleList[3]; 
                this.winWidth      = screen.width;  
                this.winHeight     = screen.height;  
                this.winLeft       = 0;
                this.winTop        = 0;
                // Windows 2003
                if( IsWin2k3() ){ tmpFullScreen  = ", fullscreen=yes";    }
                break; 
      default : ;                            
    }
    this.winStyle    = "top=" + this.winTop + ", left=" + this.winLeft + ", width=" + this.winWidth + ", height=" + this.winHeight + ", directories=no, location=no, menubar=no, resizable=no, scrollbars=no, status=no, toolbar=no" + tmpFullScreen ;
  }


  //  Book open function : bc, co, gp, sbp, sep, ct, ui
  function OpenBook() {
 	var osname = navigator.userAgent.toUpperCase();
	if(osname.indexOf("WIN") >= 0){
		if(navigator.appName.indexOf("Microsoft") > -1){
		} else {
			var eBookClient = window.open( );
			eBookClient.document.location.href = this.eBookHost + "/engine/help/ebook_err.html" ; 
			return false;
		}
	} else if(osname.indexOf("MAC") >= 0){
		if(osname.indexOf("SAFARI") >= 0){
		} else {
			var eBookClient = window.open( );
			eBookClient.document.location.href = this.eBookHost + "/engine/help/ebook_err.html" ; 
			return false;
		}
	} else {
		var eBookClient = window.open( );
		eBookClient.document.location.href = this.eBookHost + "/engine/help/ebook_err.html" ; 
		return false;
	}

    if (navigator.appName != "Microsoft Internet Explorer") {
//      var eBookClient = window.open( );
//      eBookClient.document.location.href = this.eBookHost + "/site/Error/InvalildBrowser.html" ; 
//      return false;
    }
    
    // NOTE : process v1.6 , v1.8 param type for naver 
    if(arguments.length > 7){
      if(arguments.length >= 11) //We should call Open_eBook() with arg_bc, arg_ml, arg_vr. Because, Open_eBook() uses those parameter directly.
      Open_eBook(arguments[0], "", "", "", "", arguments[5], "", "fromv20", arguments, "tov16", arguments[10]);
      else Open_eBook(arguments[0], "", "", "", "", arguments[5], "", "fromv20", arguments, "tov16", "");
      return;
    }

    var sQuery = this.GetQuery(arguments);
  
    if(!sQuery) {
      alert("service fail!!");
      return false;
    }
    this.GetWinStyle();
    var eBookClient = window.open("about:blank", this.winStyleName +"_"+ Math.round(Math.random() * 100), this.winStyle);
    eBookClient.location.replace(this.eBookUrl + sQuery);

//    eBookClient.document.write(this.SetLaunchHTML(sQuery));
//    eBookClient.document.close();
  }

  function SelfOpen() {
    var sQuery = this.GetQuery(arguments);

    if(!sQuery) {
      alert("service fail!!");
      return false;
    }

    this.GetWinStyle();
    var aBorderInfo = this.SetBorderSize();
    this.winWidth   += 2 * aBorderInfo[0];
    this.winHeight  += aBorderInfo[0] + aBorderInfo[1];

    var iRemovePosLeft  = (screen.width - this.winWidth) / 2;
    var iRemovePosTop   = (screen.height - this.winHeight) / 2;
    if(iRemovePosLeft < 0)  {  iRemovePosLeft = 0;  }
    if(iRemovePosTop < 0)   {  iRemovePosTop = 0;   }
    moveTo(iRemovePosLeft, iRemovePosTop);

    document.write(this.SetLaunchHTML(sQuery));
    document.close();
    window.name = this.winStyleName;
    resizeTo(this.winWidth, this.winHeight);
  }


  function SetBorderSize () {
    var aBorderInfo = new Array();
    if (this.IsWinXP() ) {
      aBorderInfo[0]  = 6 ;
      aBorderInfo[1]  = 32 ;
    } else {
      aBorderInfo[0]  = 5 ;
      aBorderInfo[1]  = 25 ;
    }
    return aBorderInfo;
  }  
  
  function IsWinXP() {
    if ( navigator.userAgent.indexOf("Windows NT 5.1") > 1 ) { return true ; }
    return false ; // WinMe, Win9x, Win2k, Win2k  
  }     

  OpenEBook = new eBookOpener();
