function SayAxAllowPopup(strurl)
{
  if( strurl == null || strurl == "" )
    return;

  AppletSession.allowpopup(strurl);
}
function SayAxSetCaption(strtitle)
{
  AppletSession.setcaption(strtitle);
}
function SayAxGetUsingStatus(clsid)
{
  return AppletSession.getusingstatus(clsid); // 1 : »ç¿ë, 0 : »ç¿ë¾ÈÇÔ, -1 : ¼³Ä¡¾ÈµÊ
}
function SayAxSetUsing(clsid)
{
  if( clsid == null || clsid == "" )
    return;

  if( SayAxIsRegistered(clsid) )
    AppletSession.setusing(clsid, getEncodedClsid(clsid));
//  else
//    alert("µî·ÏµÇÁö ¾ÊÀº clsid ÀÔ´Ï´Ù.");
}
function SayAxIsRegistered(clsid)
{
  if( clsid == null || clsid == "" )
    return;

  return AppletSession.isregistered(clsid);
}
function SayAxAllowNeoWiz()
{
  if( SayAxIsNeowizBaned() )
    AppletSession.allowneowiz();
//  else
//    alert("»ç¿ë¾ÈÇÔ »óÅÂ°¡ ¾Æ´Õ´Ï´Ù.");
}
function SayAxIsNeowizBaned()
{
  return AppletSession.isneowizbaned();
}

function SayAxIsOK(rtype, isPopup)
{ 
  var usingstatus;
  var retval = false;
  var rediecttype = '';

  if( 'undefined' == typeof(rtype))
    rediecttype = '';
  else
    rediecttype = rtype;

  if(!isPopup || 'undefined' == typeof(isPopup))
    var isPopup = 0;

  try {
    usingstatus = AppletSession.getusingstatus('A977FF0C-8757-4E76-8533-482F91946233');
    //if( 1 == usingstatus )
      retval = true;
  }catch(Exception){
    retval = false;
  }

  if( retval == false && rediecttype != '' )
  {
    var doneaction = new Array();
    doneaction["sayax"] = rediecttype;
    lastPageAction("sayax", doneaction, 'http://www.sayclub.com/install_control.nwz?isPopup='+isPopup+'&origin='+location);
  }

  return retval;
}

// class 
function ClsAxInfoData(essence, axclsid, axname, axdesc, axdate)
{
  this.essence = essence;
  this.axclsid = axclsid;
  this.axname = axname;
  this.axdesc = axdesc;
  this.axdate = axdate;
}
function ClsAxInfo()
{
  this.length = 0;
  this.arraxinfo = new Array();
  this.addInfo = AXI_AddInfo;
  this.addInfoWithClsid = AXI_AddInfoWithClsid;
  this.delInfoWithClsid = AXI_DelInfoWithClsid;
}
function AXI_AddInfo(essence, axclsid, axname, axdesc, axdate)
{
  this.arraxinfo[this.length] = new ClsAxInfoData(essence, axclsid, axname, axdesc, axdate);
  this.length++;
}
function AXI_AddInfoWithClsid(clsid, subtype)
{
  this.arraxinfo[this.length] = getClsInfo(clsid, subtype);
  this.length++;
}
function AXI_DelInfoWithClsid(clsid)
{
  var arrnewinfo = new Array();
  for(var i=0; i<this.length; i++)
  {
    if( this.arraxinfo[i].axclsid != clsid )
    {
      arrnewinfo[arrnewinfo.length] = this.arraxinfo[i];
    }
  }

  this.arraxinfo = arrnewinfo;
  this.length = arrnewinfo.length;
}

function _getNoConditionClsid(objaxinfo)
{
  var noconditionclsid = new Array();
  for(var i=0; i<objaxinfo.length; i++)
  {
    if( SayAxGetUsingStatus(objaxinfo.arraxinfo[i].axclsid) != 0 )
    {
      noconditionclsid[noconditionclsid.length] = objaxinfo.arraxinfo[i].axclsid;
    }
  }
  return noconditionclsid;
}

function getDontAskClsid(objaxinfo)
{
  var cktime = 0;
  var exp = new Date();
  var dontaskclsid = new Array();
  for(var i=0; i<objaxinfo.length; i++)
  {
    cktime = getCookie("dontaskax", objaxinfo.arraxinfo[i].axclsid); // need cookieutil.js
    if( cktime != null && cktime > 0 )
    {
      if( (cktime - exp.getTime()) > 0 )
        dontaskclsid[dontaskclsid.length] = objaxinfo.arraxinfo[i].axclsid;
    }
  }

  return dontaskclsid;
}

/*
- »ç¿ë¾ÈÇÔÀ¸·Î ¼³Á¤µÈ°Ô ¾ø°Å³ª ¸ðµÎ »ç¿ëÇÔÀ¸·Î ¼±ÅÃÇÑ °æ¿ì return 1
- SayAX°¡ »ç¿ë ºÒ°¡´É ÇÑ °æ¿ìµî ¿¹¿Ü »óÈ² return -1
- Confirm Popup¿¡¼­ ¸ðµÎ »ç¿ëÇÔÀ¸·Î ¼±ÅÃÇÏÁö ¾Ê°í ÇÏ³ª¶óµµ »ç¿ë¾ÈÇÔÀ¸·Î ¼±ÅÃÇßÀ¸¸é return 0
*/
function SayAxUsingConfirm(objaxinfo, daction, moduleID, isPopup)
{
  var dontaskclsid = getDontAskClsid(objaxinfo);

// deleteCookie("dontaskax"); // DEBUG
  for(var i=0; i<dontaskclsid.length; i++) // 1ÁÖÀÏ°£ ¸Þ½ÃÁö º¸Áö ¾ÊÀ½ ¼±ÅÃÇÑ clsid
    objaxinfo.delInfoWithClsid(dontaskclsid[i]);

  if( objaxinfo.length == 0 )
    return 1;

  // ¿Ï·áÈÄ action ¼³Á¤
  var doneaction = new Array();
  doneaction["sayax"] = "tredirect";
  doneaction["alluse"] = "treload";
  doneaction["essence"] = "tback";
  doneaction["choice"] = "tback";

  if( typeof(daction) == 'object' || typeof(daction) == 'array' )
  {
    if(typeof(daction["sayax"]) != 'undefined')
      doneaction["sayax"] = daction["sayax"];
    if(typeof(daction["alluse"]) != 'undefined')
      doneaction["alluse"] = daction["alluse"];
    if(typeof(daction["essence"]) != 'undefined')
      doneaction["essence"] = daction["essence"];
    if(typeof(daction["choice"]) != 'undefined')
      doneaction["choice"] = daction["choice"];
  }

  if(!isPopup || 'undefined' == typeof(isPopup))
    var isPopup = 0;
  if(!moduleID || 'undefined' == typeof(moduleID))
    var moduleID = "www";


  // First, Check SayAX
  if( SayAxIsOK(doneaction["sayax"], isPopup) == false )
    return -1;

  var noconditionclsid = _getNoConditionClsid(objaxinfo);
  for(var i=0; i<noconditionclsid.length; i++) // »ç¿ë¾ÈÇÔÀÌ ¾Æ´Ñ ´Ù¸¥ °æ¿ì
    objaxinfo.delInfoWithClsid(noconditionclsid[i]);

  if( objaxinfo.length == 0 )
    return 1;

  var args = new Array();
  args["objaxinfo"] = objaxinfo;
  args["daction"]  = daction;

  var winRetVal = '';
  var winWidth = 470;
  var winHeight = 220;

  winRetVal = window.showModalDialog("http://www.sayclub.com/global/SayUsingConfirm.nwz?moduleID="+moduleID, args,
                  "dialogWidth:"+winWidth+"px; dialogHeight:"+winHeight+"px; edge:sunken; center:yes; resizable:no; status:no; help:no; scroll:no;");

  if( typeof(winRetVal) == 'undefined' || typeof(winRetVal) == 'unknown' )
    winRetVal = '';

  var arrYesIdx = new Array();
  var arrNoIdx1 = new Array(); // ÇÊ¼ö
  var arrNoIdx2 = new Array(); // ¼±ÅÃ
  // set using
  if(winRetVal != '')
  {
    var arrYesIdx = winRetVal.split(',');
    for(var i=0; i<arrYesIdx.length; i++)
      SayAxSetUsing(objaxinfo.arraxinfo[arrYesIdx[i]].axclsid);
  }

  // find no idx
  if( winRetVal == '' )
  {
    for(i=0; i<objaxinfo.length; i++)
    {
      if( objaxinfo.arraxinfo[i].essence )
        arrNoIdx1[arrNoIdx1.length] = i;
      else
        arrNoIdx2[arrNoIdx2.length] = i;
    }
  }
  else
  {
    for(var i=0,j=0; i<objaxinfo.length; i++)
    {
      if( i == arrYesIdx[j]) // Ã³À½ºÎÅÍ ¼ø¼­´ë·Î Ã£¾Æ°¡±â
      {
        j++;
      }
      else
      {
        if( objaxinfo.arraxinfo[i].essence )
          arrNoIdx1[arrNoIdx1.length] = i;
        else
          arrNoIdx2[arrNoIdx2.length] = i;
      }
    }
  }

  var existLastPageAction;
  if( arrNoIdx1.length > 0 )
  {
    args["isessence"]  = true;
    args["arrnoidx"]  = arrNoIdx1;
    winRetVal = window.showModalDialog("http://www.sayclub.com/global/SayUsingPopup.nwz?moduleID="+moduleID, args,
                  "dialogWidth:"+winWidth+"px; dialogHeight:"+winHeight+"px; edge:sunken; center:yes; resizable:no; status:no; help:no; scroll:no;");

    existLastPageAction = lastPageAction("essence", doneaction)
    return 0;
  }
  else if( arrNoIdx2.length > 0 )
  {
    args["isessence"]  = false;
    args["arrnoidx"]  = arrNoIdx2;
    winRetVal = window.showModalDialog("http://www.sayclub.com/global/SayUsingPopup.nwz?moduleID="+moduleID, args,
                  "dialogWidth:"+winWidth+"px; dialogHeight:"+winHeight+"px; edge:sunken; center:yes; resizable:no; status:no; help:no; scroll:no;");

    existLastPageAction = lastPageAction("choice", doneaction);
    return 0;
  }
  else
  {
    existLastPageAction = lastPageAction("alluse", doneaction);
    return 1;
  }
}

function getEncodedClsid(clsid)
{
  var upperclsid = clsid.toUpperCase();
  switch(upperclsid)
  {
    case "8DC4B755-BC06-475C-B518-AFE162F5B10A" :
      encclsid = '6989b09dfc028493df5371f1cb5075f8';
      break;
    case "111433C4-3447-462E-99D0-D40328345C18" :
      encclsid = '9b1796dec3a03471260c6cb05930dc73';
      break;
    case "A977FF0C-8757-4E76-8533-482F91946233" :
      encclsid = '4f7023e2c0a26b70dbe07ced539d29bc';
      break;
    case "B0A02AAB-94AB-4190-92E2-429B5AC75F50" :
      encclsid = '0846e7fb72686fc3f04615caf7d35364';
      break;
    case "14B0C13D-497B-4E6A-8E39-596CD9434F30" :
      encclsid = 'b45ae625f03730ef05a2130eccfc1f5a';
      break;
    case "81971ED4-B0E9-4130-A3C6-A29F86FE7AAE" :
      encclsid = '421a7f4d551a25a1eac66d00ea8cb750';
      break;
    case "76BB4CB2-536A-413A-A25C-D60B1B5061C6" :
      encclsid = 'cad8d3094c6cddf53cb532306cc63d96';
      break;
    case "F39BA07C-C70B-4DBE-A9CD-E6CE3353B158" :
      encclsid = '795783c4cb86453d161d5efa46012b2b';
      break;
    case "2EFE6C2A-1EFF-4DB8-870C-24127426183B" :
      encclsid = 'db15834e2088212cd0b146542085332b';
      break;
    case "43C5B905-62A9-454E-BD73-4E68ECFF52F4" :
      encclsid = '1cd7a825953f96354d5ca77ee425dfe3';
      break;
    case "814F8226-7A77-4651-8026-B56F4DF13D2C" :
      encclsid = 'f71d6c0ae76c747bf007940a9f1a8c57';
      break;
    case "8DE79080-8535-4F7B-A2A0-5492A89EC18E" :
      encclsid = 'adbff25f02e3c3056def1515412f5a69';
      break;
    case "44FA875D-34B3-4148-8487-0F915B0C8F56" :
      encclsid = 'd3e0a9f2bd10d1d7b9825f2bb06d41cb';
      break;
    case "453996D3-16FA-4DEC-87B7-D2C643FCEE56" :
      encclsid = '20bf950b39c3fa4c623f8f9f9cc4bc88';
      break;
    case "EACD6BE5-C0EE-4909-9B71-B2807C8A245C" :
      encclsid = 'bbe33bf3b040c2e9b56d81d3edbb97b3';
      break;
    case "55E1C23C-0D34-4A71-BCBC-DBAB6920C2DC" :
      encclsid = 'cb992daea0c7082ac910fce38310a185';
      break;
    case "D27CDB6E-AE6D-11CF-96B8-444553540000" :
      encclsid = '9d3a5800358d261554bc61a8b45eef17';
      break;
    case "BE8C0D1F-3658-449E-B562-48258DCA8B95" :
      encclsid = '7d5230d86bd7a61d7693be4833ac5e0a';
      break;
    case "ABF524F6-CE8C-4F4A-BFE8-A3B89366986B" :
      encclsid = '7a2b1ea0b9a7f2fa9dc786455519a024';
      break;
    case "1B7357EC-6FE1-4F27-92E7-65A11BBD9F1E" :
      encclsid = 'b7d0f6f08b2897c3ba044a00e5604e76';
      break;
    case "F90EB935-A6C0-42E5-8A06-575885275D62" :
      encclsid = 'aef9280b70893bd25e5b57ccb32e177f';
      break;
    case "1D1A82E5-E373-4D6A-9D8F-F3149AEE5688" :
      encclsid = '660504a22f65a368141fea236562ab1d';
      break;
    case "D161093F-2DD6-4F80-BA7E-6097407E356C" :
      encclsid = '6c56a8b4c3b47522f32a91c748b535ff';
      break;
    case "7D38293E-C2B0-4336-B85F-F94F5F61ED23" :
      encclsid = 'd02cbdcf5e7366f514097e516e2ff150';
      break;
    // insert here
    default :
      encclsid = '';
  }

  return encclsid;
}

// subtypeÀº °°Àº clsidÀÌ³ª ¼³¸íÀ» ´Ù¸£°Ô º¸¿©Áà¾ßÇÒ¶§ »ç¿ë°¡´É
function getClsInfo(clsid, subtype)
{
  var upperclsid = clsid.toUpperCase();
  var clsdata;
  if(typeof(subtype) == 'undefined')
    subtype = 0;

  switch(upperclsid)
  {
    case "8DC4B755-BC06-475C-B518-AFE162F5B10A" :
      clsdata = new ClsAxInfoData(1, clsid, 'Pmang & SayClub Chat Control', 'Ã¤ÆÃ/´ëÈ­ ±â´É', '04.08.24');
      break;
    case "111433C4-3447-462E-99D0-D40328345C18" :
      clsdata = new ClsAxInfoData(1, clsid, 'Pmang & SayClub Menu Control', '´Ù¾çÇÑ ÆË¾÷ ¸Þ´º ±â´É', '04.08.24');
      break;
    case "A977FF0C-8757-4E76-8533-482F91946233" :
      clsdata = new ClsAxInfoData(1, clsid, 'Pmang & SayClub Login Control', '-', '04.08.24');
      break;
    case "B0A02AAB-94AB-4190-92E2-429B5AC75F50" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Tachy Download Control', 'Å¸Å° ÀÚµ¿ ¼³Ä¡ ±â´É', '04.08.24');
      break;
    case "14B0C13D-497B-4E6A-8E39-596CD9434F30" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Karaoke Control', '³ë·¡ÆÃ ±â´É', '04.08.24');
      break;
    case "9C23D13E-E310-4E25-A8FC-D704B833BB57" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Playroom Control', 'È¨ÇÇ ÇÃ·¹ÀÌ·ë ±â´É', '04.08.24');
      break;
    case "76BB4CB2-536A-413A-A25C-D60B1B5061C6" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Image Paint Control', 'È¨ÇÇ ±×¸²ÆÇ ±â´É', '04.08.24');
      break;
    case "F39BA07C-C70B-4DBE-A9CD-E6CE3353B158" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Image Tool Control', 'È¨ÇÇ ±×¸²ÆÇ ºê·¯½¬ ±â´É', '04.08.24');
      break;
    case "2EFE6C2A-1EFF-4DB8-870C-24127426183B" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Image Re-Touch Control', 'ÀÌ¹ÌÁö ÆíÁý ±â´É', '04.08.24');
      break;
    case "43C5B905-62A9-454E-BD73-4E68ECFF52F4" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Image Upload Control', '°Ô½ÃÆÇ ÀÌ¹ÌÁö ¿Ã¸®±â ±â´É', '04.08.24');
      break;
    case "814F8226-7A77-4651-8026-B56F4DF13D2C" :
      clsdata = new ClsAxInfoData(0, clsid, 'SayClub & JukeOn Music Player Control', 'À½¾Ç Àç»ý ±â´É', '04.08.24');
      break;
    case "8DE79080-8535-4F7B-A2A0-5492A89EC18E" :
      clsdata = new ClsAxInfoData(0, clsid, 'SayClub & JukeOn Music Control', 'À½¾Ç Àç»ý ÃÖÀûÈ­ ±â´É', '04.08.24');
      break;
    case "44FA875D-34B3-4148-8487-0F915B0C8F56" :
      clsdata = new ClsAxInfoData(1, clsid, 'JukeOn VOD Player Control', '¹ÂÁ÷ºñµð¿À Àç»ý ±â´É', '04.08.24');
      break;
    case "453996D3-16FA-4DEC-87B7-D2C643FCEE56" :
      clsdata = new ClsAxInfoData(1, clsid, 'JukeOn VOD Control', '¹ÂÁ÷ºñµð¿À Àç»ý ÃÖÀûÈ­ ±â´É', '04.08.24');
      break;
    case "EACD6BE5-C0EE-4909-9B71-B2807C8A245C" :
      clsdata = new ClsAxInfoData(1, clsid, 'JukeOn Login Control', '-', '04.08.24');
      break;
    case "55E1C23C-0D34-4A71-BCBC-DBAB6920C2DC" :
      clsdata = new ClsAxInfoData(0, clsid, 'Pmang Customer Support Control', 'PC »ç¾ç Á¶»ç ±â´É', '04.08.24');
      break;
    case "D27CDB6E-AE6D-11CF-96B8-444553540000" :
      clsdata = new ClsAxInfoData(1, clsid, 'MM Flash', 'ÇÃ·¡½Ã ¸Þ´º º¸ÀÌ´Â ±â´É', '04.08.24');
      break;
    case "BE8C0D1F-3658-449E-B562-48258DCA8B95" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Hompy Map Control', 'È¨ÇÇ Áöµµ ±â´É', '04.08.24');
      break;
    case "ABF524F6-CE8C-4F4A-BFE8-A3B89366986B" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Image Preview Control', 'ÀÌ¹ÌÁö ¹Ì¸®º¸±â ±â´É', '04.08.24');
      break;
    case "1B7357EC-6FE1-4F27-92E7-65A11BBD9F1E" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub MySkin Control', '¸¶ÀÌ½ºÅ² ÇÁ·¹ÀÓ Á¶Á¤ ±â´É', '04.08.24');
      break;
    case "F90EB935-A6C0-42E5-8A06-575885275D62" :
      clsdata = new ClsAxInfoData(0, clsid, 'SayClub Chat Save Control', 'Ã¤ÆÃ ³»¿ë ÀúÀå ±â´É', '04.08.24');
      break;
    case "1D1A82E5-E373-4D6A-9D8F-F3149AEE5688" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Club Image Upload Control', '°Ô½ÃÆÇ ÀÌ¹ÌÁö ¿Ã¸®±â ±â´É', '04.08.24');
      break;
    case "D161093F-2DD6-4F80-BA7E-6097407E356C" :
      clsdata = new ClsAxInfoData(1, clsid, 'SayClub Music Cast Control', 'ÀÚµ¿ ¹æ¼ÛÇÏ±â ±â´É', '04.08.24');
      break;
    case "7D38293E-C2B0-4336-B85F-F94F5F61ED23" :
      clsdata = new ClsAxInfoData(0, clsid, 'SayClub PC Room Icon Control', '¹ÙÅÁÈ­¸é ¹Ù·Î°¡±â ¸¸µé±â ±â´É', '04.08.24');
      break;
 
    // insert here
    //case "" :
    //  break;
    default :
      clsdata = undefined;
  }

  return clsdata;
}

function lastPageAction(curact, arract, etcinfo)
{
  switch( arract[curact] )
  {
    case "sclose" :
      self.close();
      break;
    case "tclose" :
      top.close();
      break;
    case "tback" :
      if( history.length > 0 )
        top.history.back();
      else
        top.close();
      break;
    case "sback" :
      if( history.length > 0 )
        self.history.back();
      else
        top.close();
      break;
    case "treload" :
      top.document.location.reload();
      break;
    case "sreload" :
      self.document.location.reload();
      break;
    case "tredirect" :
      top.document.location = etcinfo;
      break;
    case "sredirect" :
      self.document.location = etcinfo;
      break;
    case "oredirect" :
      try{
        opener.top.document.location = etcinfo;
      }catch(Exception){
        window.open(etcinfo, '', '');
      }
      break;
    case "winopen" :
      window.open(etcinfo, '', '');
      break;
    default :
      // no action
      return 0;
  }
  return 1;
}

