﻿// JScript 파일

var onAirUtilUrl = "/util/onairUtil.aspx";

onairAPI = function(utilUrl)
{
    this._utilUrl = utilUrl;
    this._listmode = "image";
    this._ordertype = "rank";
    this._categoryname = "drama";
    
    this._adamgenre = "";
    this._broadYear = "";
    this._filterChr = "";
    onairAPI.windowObj = this;    
}

onairAPI.windowObj = null;

onairAPI.prototype.setOrderType = function(ordertype)
{
    this._ordertype = ordertype;
}

onairAPI.prototype.getOrderType = function()
{
    return this._ordertype;
}

onairAPI.prototype.setCategoryName = function(ctgname)
{
    this._categoryname = ctgname;
}

onairAPI.prototype.getCategoryName = function()
{
    return this._categoryname;
}

onairAPI.prototype.setAdamGenreIDs = function(adamgenre)
{
    this._adamgenre = adamgenre;
}

onairAPI.prototype.getAdamGenreIDs = function()
{
    return this._adamgenre;
}

onairAPI.prototype.setBroadYear = function(broadYear)
{
    this._broadYear = broadYear;
}

onairAPI.prototype.getBroadYear = function()
{
    return this._broadYear;
}

onairAPI.prototype.setFilterChr = function(filterChr)
{
    this._filterChr = filterChr;
}

onairAPI.prototype.getFilterChr = function()
{
    return this._filterChr;
}
    
onairAPI.prototype.setListViewMode = function(vmode)
{
    this._listmode = vmode;
}

onairAPI.prototype.getListViewMode = function()
{
    return this._listmode;
}

onairAPI.prototype.writeOnAirProgram = function()
{
    var params = makeOnairParamArray(1, -1, "title");
	this.requestBusinessPage("getOnAirProgramListMenu", params, "OnAirProgramList_Write", false);
}

function makeOnairParamArray(pagenum, pagesize, ordertype, ctgname, adamgenreIds, broadYear, filterChr)
{
    var ArrParams = new Array();
    ArrParams[0] = pagenum;
    ArrParams[1] = pagesize;
    ArrParams[2] = ordertype!=undefined?ordertype:""; /* rank : 인기순, time : 최근방송순, title : 가나다순  */ 
    ArrParams[3] = ctgname!=undefined?ctgname:""; 
    ArrParams[4] = adamgenreIds!=undefined?adamgenreIds:""; 
    ArrParams[5] = broadYear!=undefined?broadYear:""; 
    ArrParams[6] = filterChr!=undefined?filterChr:"";
    
    return ArrParams;
}

function makeOnairParamsByArray(arrParams)
{
    var strParams = "";
    if (arrParams[0] != null) {
        if (strParams.length > 0)
            strParams += "&pagenum=" + arrParams[0];
        else
            strParams += "pagenum=" + arrParams[0];
    }    
    if (arrParams[1] != null) {
        if (strParams.length > 0)
            strParams += "&pagesize=" + arrParams[1];
        else
            strParams += "pagesize=" + arrParams[1];
    }
    if (arrParams[2] != null) {
        if (strParams.length > 0)
            strParams += "&orderType=" + arrParams[2];
        else
            strParams += "orderType=" + arrParams[2];
    }
    if (arrParams[3] != null) {
        if (strParams.length > 0)
            strParams += "&ctgname=" + arrParams[3];
        else
            strParams += "ctgname=" + arrParams[3];
    }
    if (arrParams[4] != null) {
        if (strParams.length > 0)
            strParams += "&adamgenreIds=" + arrParams[4];
        else
            strParams += "adamgenreIds=" + arrParams[4];
    }
    if (arrParams[5] != null) {
        if (strParams.length > 0)
            strParams += "&broadYear=" + arrParams[5];
        else
            strParams += "broadYear=" + arrParams[5];
    }        
    if (arrParams[6] != null) {
        if (strParams.length > 0)
            strParams += "&filterChr=" + escape(arrParams[6]);
        else
            strParams += "filterChr=" + escape(arrParams[6]);
    }        

    return strParams;    
}

onairAPI.prototype.requestBusinessPage = function(methodName, params, identifier, basync)
{
    if (basync == undefined)
        basync = false;
        
    var strParams = "?identifier=" + methodName + "&";
    strParams += makeOnairParamsByArray(params); 

    try
    {
        var szUrl = this._utilUrl + strParams;
        var objHttp = CreateXmlHttp();
        objHttp.open("GET", szUrl, basync);
        objHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        objHttp.onreadystatechange = function(){
            if (basync && objHttp.readyState == 4)
            {
                processOnairResponse(objHttp.responseText, identifier, methodName, params);
            }
        }
        objHttp.send(null);
          
        if(objHttp.status == 200 && basync == false) {
          processOnairResponse(objHttp.responseText, identifier, methodName, params);
        }
    }
    catch(e) 
    {
        alert(e.number + ":" + e.description);
    }
}

function requestOnAirWebService_Navigation(methodName, identifier, pagenum, pagesize, ordertype, ctgname,
    adadmgenreId, broadyear, filterChr)
{
    var params = makeOnairParamArray(pagenum, pagesize, ordertype, ctgname, adadmgenreId, broadyear, filterChr);
    onairAPI.windowObj.requestBusinessPage(methodName, params, identifier);
}

function processOnairResponse(xmlresponse, identifier, methodName, params)
{
    var objXmlDoc = LoadXmlDocument(xmlresponse);
    	
//	if (objXmlDoc.parseError.errorCode != 0) {
//		var xmlErr =	objXmlDoc.parseError;
//		alert("'onair.js' - You have error " + xmlErr.reason + " methodName=" + methodName + "identifier=" + identifier);
//	}
//	else	
	{
        var objXsl = CreateXmlDom();
        objXsl.async = false ;
        
        if (identifier == "OnAirProgramList")
        {
            var btnDiv = document.getElementById("nav_buttons");
            onairAPI.windowObj.setListPageNav(objXmlDoc, params, methodName, identifier, btnDiv);
        
            if (onairAPI.windowObj.getListViewMode() == "text") {
                objXsl.load("/xslt/onair/onair_list_txt.xsl") ;
            }
            else {
                objXsl.load("/xslt/onair/onair_list_img.xsl") ;
            }
        
            document.getElementById("onair_content").innerHTML = TransformXmlByXsl(objXmlDoc, objXsl); 
        }        
        else if (identifier == "OnAirProgramList_Write")
        {
            objXsl.load("/xslt/menu/onair.xsl") ;
            document.write(TransformXmlByXsl(objXmlDoc, objXsl)); 
        }
        else if (identifier == "OnAirProgramList_Main")
        {
            objXsl.load("/xslt/main_onair_best.xsl") ;
            document.getElementById("onair_best_programlist").innerHTML = TransformXmlByXsl(objXmlDoc, objXsl); 
        }
        else if (identifier == "OffAirProgramList")
        {
            var btnDiv = document.getElementById("nav_buttons");
            onairAPI.windowObj.setListPageNav(objXmlDoc, params, methodName, identifier, btnDiv);
        
            if (onairAPI.windowObj.getListViewMode() == "text") {
                objXsl.load("/xslt/onair/offair_list_txt.xsl") ;
            }
            else {
                objXsl.load("/xslt/onair/offair_list_img.xsl") ;
            }
        
            document.getElementById("offair_content").innerHTML = TransformXmlByXsl(objXmlDoc, objXsl); 
        }
                
    }
}

onairAPI.prototype.setListPageNav = function(XMLDoc, params, methodName, identifier, btndiv)
{
    try
    {
      if (btndiv == null || btndiv == undefined) 
        return;

      var rootnode = XmlSelectSingleNode( XMLDoc, "/Results");
      var totCnt = XmlNodeAttribute(rootnode, "TOTCNT");
      if (totCnt == 0) {
        btndiv.style.display = "none";
      }
      else {
        btndiv.style.display = "block";
      }
      
      var objCntNode = document.getElementById("span_results_cnt");
      if (objCntNode != null)
      {
        objCntNode.innerHTML = totCnt + "개";
      }
      
      var curPage = params[0]; 
      var pageSize = params[1];

      var navCount = Math.ceil(totCnt / pageSize);
	  var blockPage = (parseInt((curPage - 1)/10)) * 10 + 1;
      var prevPage = (parseInt((blockPage - 10)/10)) * 10 + 1;
      if (prevPage <= 0)    prevPage = 1;
      //curPage-1<=0?1:curPage-1;
      var nextPage = (parseInt((blockPage + 10)/10)) * 10 + 1;
      if (nextPage >= navCount) nextPage = navCount;
      //curPage+1>=navCount?navCount:curPage+1;
      
      var btnHTML = "";
      btnHTML = "<table border='0' cellpadding='0' cellspacing='0' align='center' class='list_nav'>";
      btnHTML += "<tr>"; 
      params[0] = 1;
      
      btnHTML += "<td width='17'>";
      if (curPage != 1) 
          btnHTML += "<a href='javascript:requestOnAirWebService_Navigation(\"" + methodName + "\", \"" + identifier + "\", \"" + params[0] + "\",\"" + params[1] + "\",\"" + params[2] + "\",\"" + params[3] + "\",\"" + params[4] + "\",\"" + params[5] + "\",\"" + params[6] + "\")'>";
      btnHTML += "<img src='http://vodmallimg.imbc.com/image/sub/gen_btn_first.jpg' border='0'></a></td>"
      params[0] = prevPage;
      btnHTML += "<td width='17'>";
      if (curPage != prevPage) 
          btnHTML += "<a href='javascript:requestOnAirWebService_Navigation(\"" + methodName + "\", \"" + identifier + "\", \"" + params[0] + "\",\"" + params[1] + "\",\"" + params[2] + "\",\"" + params[3]  + "\",\"" + params[4] + "\",\"" + params[5] + "\",\"" + params[6] + "\")'>";
      btnHTML += "<img src='http://vodmallimg.imbc.com/image/sub/gen_btn_pre.jpg' border='0'></a>";   
        
	  var pagetag = "";
	  var endPage = navCount >= blockPage + 10 ? blockPage + 10 : navCount + 1;
      for (var i = blockPage; i < endPage; i++) {
          if (curPage == i)   btnHTML += "<td width='17' align='center' class='on'>" + i + "</td>";
          else {
              pagetag = i;
              params[0] = i;
              btnHTML += "<td width='17' align='center'><a style='cursor:hand;' onClick='javascript:requestOnAirWebService_Navigation(\""
                + methodName + "\", \"" + identifier + "\", \"" + params[0] + "\",\"" + params[1] + "\",\"" + params[2] + "\",\"" + params[3] + "\",\"" + params[4] + "\",\"" + params[5] + "\",\"" + params[6] + "\")'>"
                + pagetag + " </a></td>";
          }
          if (i != endPage - 1)
          {
              btnHTML += "<td><img src='http://vodmallimg.imbc.com/image/sub/bar_navi.jpg' align='absmiddle'></td>";
          }
      }
      params[0] = nextPage;
      btnHTML += "<td width='17' align='right'>";
      if (curPage != nextPage) 
          btnHTML += "<a href='javascript:requestOnAirWebService_Navigation(\"" + methodName + "\", \"" + identifier + "\", \"" + params[0] + "\",\"" + params[1] + "\",\"" + params[2] + "\",\"" + params[3] + "\",\"" + params[4] + "\",\"" + params[5] + "\",\"" + params[6] + "\")'>";
      btnHTML += "<img src='http://vodmallimg.imbc.com/image/sub/gen_btn_next.jpg' border=0 ></a></td>";   
      params[0] = navCount;
      btnHTML += "<td width='17' align='right'>";
      if (curPage != navCount) 
          btnHTML += "<a href='javascript:requestOnAirWebService_Navigation(\"" + methodName + "\", \"" + identifier + "\", \"" + params[0] + "\",\"" + params[1] + "\",\"" + params[2] + "\",\"" + params[3] + "\",\"" + params[4] + "\",\"" + params[5] + "\",\"" + params[6] + "\")'>"; 
      btnHTML += "<img src='http://vodmallimg.imbc.com/image/sub/gen_btn_end.jpg' border=0 /></a></td>";       
      btnHTML += "</tr>"; 
      btnHTML += "</table>"; 
      btndiv.innerHTML = btnHTML;
    }
    catch(e) {}
}