function getAttrsTextNode(type, attrArr, textStr) {
    var sfNode = document.createElement(type);
    if(attrArr!=null) {
        var attrList = attrArr.split('::');
        //alert(attrList.length);
        for(var i=0; i<attrList.length; i++) {
            //alert(attrList[i]);
            var attr = attrList[i];
            var attType = attr.substring(0, attr.indexOf('='));
            var attValue = attr.substring(attr.indexOf('=')+1);

            if(attType!=null && attType!='' && attValue!=null && attValue!=''){
                //alert('att('+attType+') = value('+attValue+')');
                sfNode.setAttribute(attType, attValue);
            }
        }
    }
    if(textStr!=null) {
        sfNode.appendChild(document.createTextNode(textStr));
    }
    return sfNode;
}
function buildXHTMLWithLink( pObj, pSeriesFl )
{
  if(!schedules || schedules.length == 0)
  {
    return;
  }
  var aid = schedules[0].callSign.toLowerCase();
  var divSeriesObj = document.createElement('div');
  var seriesId = schedules[0].seriesId || "";
  divSeriesObj.className="zcc-prog-view " + seriesId;

  var stationId = schedules[0].station || "";
  var divStatObj = document.createElement('div');
  divStatObj.className="zcc-station " + stationId;

  // call sign
  var spanCSObj = document.createElement('span');
  spanCSObj.className="zcc-callsign";
  var callSignTxtObj = document.createTextNode( schedules[0].callSign + "," );
  spanCSObj.appendChild( callSignTxtObj );
  divStatObj.appendChild( spanCSObj );

  // affiliate
  var spanAffObj = document.createElement('span');
  spanAffObj.className="zcc-aff";
  var affTxtObj = document.createTextNode( schedules[0].affiliate );
  spanAffObj.appendChild(affTxtObj);
  divStatObj.appendChild(spanAffObj);

  divSeriesObj.appendChild( divStatObj );
  if(pSeriesFl && pSeriesFl == "true")
  {
    // program div
    var divProgObj = document.createElement('div');
    divProgObj.className="zcc-prog";

    // program title
    var spanProgTitle=document.createElement('span');
    spanProgTitle.className="zcc-prog-title";
    var progTxtObj = document.createTextNode( schedules[0].title );
    spanProgTitle.appendChild( progTxtObj );
    divProgObj.appendChild( spanProgTitle );
    divSeriesObj.appendChild( divProgObj );
  }

  // create elements for clone for faster processing thru loop
  var divSchedObj = document.createElement("div");
  divSchedObj.className= "zcc-sked";

  // main schedule info
  var divSkedMainObj = document.createElement("div");
  divSkedMainObj.className="zcc-sked-main";

  var spanSkedDateObj = document.createElement("span");
  spanSkedDateObj.className="zcc-sked-date";

  var spanSkedDayObj = document.createElement("span");
  spanSkedDayObj.className="zcc-sked-day";

  var spanSkedTimeObj = document.createElement("span");
  spanSkedTimeObj.className="zcc-sked-time";

  // episode title
  var spanSkedTitleObj = document.createElement("span");
  spanSkedTitleObj.className="zcc-sked-title";

  var spanSkedMoreObj = document.createElement("span");
  spanSkedMoreObj.className="zcc-sked-more";

  // details for schedule
  var divSkedDetObj = document.createElement("div");
  divSkedDetObj.className="zcc-sked-detail";

  var spanSkedDescObj = document.createElement("span");
  spanSkedDescObj.className="zcc-sked-desc";

  var spanSkedAttrObj = document.createElement("span");
  spanSkedAttrObj.className="zcc-sked-attributes";

  // hd
  var spanSkedHDObj = document.createElement("span");
  spanSkedHDObj.className="zcc-sked-hd";

  // new
  var spanSkedNewObj = document.createElement("span");
  spanSkedNewObj.className="zcc-sked-new";

  // CC
  var spanSkedCCObj = document.createElement("span");
  spanSkedCCObj.className="zcc-sked-cc";

  // new
  var spanSkedStereoObj = document.createElement("span");
  spanSkedStereoObj.className="zcc-sked-stereo";

  // loop thru schedule array
  for( var i=0; i<schedules.length; i++)
  {
    var divSchedClone = divSchedObj.cloneNode(true); // captures attribute and element type

    // if showAllTitle is false, display title once
    if(!pSeriesFl || pSeriesFl == "false")
    {
      // program div
      var divProgObj = document.createElement('div');
      divProgObj.className="zcc-prog";

      // program title
      var spanProgTitle=document.createElement('span');
      spanProgTitle.className="zcc-prog-title";
	  var progTxtObj = document.createTextNode(schedules[i].title);
	  var sid = schedules[i].seriesID || "";
	  if (sid != "") {
		progTxtObj = getAttrsTextNode('a', ('class=zcc-prog-title::href=http://affiliate.zap2it.com/tvlistings/ZCProgram.do?method=getDetail&aid='+aid+'&sId='+schedules[i].seriesID+'&stn='+stationId), schedules[i].title);
	  }
	  spanProgTitle.appendChild( progTxtObj );
      divProgObj.appendChild( spanProgTitle );

      divSchedClone.appendChild( divProgObj );
    }
    
    var divSkedMainClone = divSkedMainObj.cloneNode(true);

    <!-- add day -->
    var spanSkedDayClone = spanSkedDayObj.cloneNode(true);
    var dayTxtObj = document.createTextNode( schedules[i].day + " ");
    spanSkedDayClone.appendChild(dayTxtObj);
    divSkedMainClone.appendChild( spanSkedDayClone);

    <!-- add date -->
    var spanSkedDateClone = spanSkedDateObj.cloneNode(true);
    var dateTxtObj = document.createTextNode( schedules[i].date + ", ");
    spanSkedDateClone.appendChild( dateTxtObj );
    divSkedMainClone.appendChild( spanSkedDateClone );

    <!-- add time -->
    var spanSkedTimeClone = spanSkedTimeObj.cloneNode(true);
    var timeTxtObj = document.createTextNode( schedules[i].start_time);
    spanSkedTimeClone.appendChild( timeTxtObj );
    divSkedMainClone.appendChild( spanSkedTimeClone );

    <!-- add episode title -->
    var spanSkedTitleClone = spanSkedTitleObj.cloneNode(true);

    var titleTxtObj = document.createTextNode( "" );
	var tmpEpisodeTitle = schedules[i].episodeTitle || "";
	if (tmpEpisodeTitle != "") {
		titleTxtObj = document.createTextNode( ": "+tmpEpisodeTitle );
	}
    spanSkedTitleClone.appendChild( titleTxtObj );
    divSkedMainClone.appendChild( spanSkedTitleClone );

    <!-- add more link -->
    /*
    var spanSkedMoreClone = spanSkedMoreObj.cloneNode(true);
    var mainMoreTxtObj=document.createTextNode("more");
    var mainMoreLink=document.createElement("a");
    mainMoreLink.setAttribute("href", "#");
    mainMoreLink.appendChild(mainMoreTxtObj);
    spanSkedMoreClone.appendChild( mainMoreLink );

    <!-- add all to main div -->
    divSkedMainClone.appendChild( spanSkedMoreClone );
    */
    <!-- collect details div -->
    var divSkedDetClone = divSkedDetObj.cloneNode(true);

    var spanSkedDescClone = spanSkedDescObj.cloneNode(true);
    var descTxtObj = document.createTextNode( schedules[i].description);
    spanSkedDescClone.appendChild( descTxtObj );
    divSkedDetClone.appendChild( spanSkedDescClone );

    var spanSkedAttrClone = spanSkedAttrObj.cloneNode(true);

    var spanSkedHDClone = spanSkedHDObj.cloneNode(true);
    var tmpHdtvTxt = schedules[i].availableInHdtv ? "[HD]" : "" ;
    var hdTxtObj = document.createTextNode(tmpHdtvTxt);
    spanSkedHDClone.appendChild( hdTxtObj );
    spanSkedAttrClone.appendChild( spanSkedHDClone );

    var tmpNewTxt = schedules[i].isNew ? "[NEW]" : "";
    var spanSkedNewClone = spanSkedNewObj.cloneNode(true);
    var newTxtObj = document.createTextNode(tmpNewTxt );
    spanSkedNewClone.appendChild(newTxtObj);
    spanSkedAttrClone.appendChild( spanSkedNewClone );

    var tmpCCTxt = schedules[i].closeCaptioned ? "[CC]" : "";
    var spanSkedCCClone = spanSkedCCObj.cloneNode(true);
    var ccTxtObj = document.createTextNode( tmpCCTxt );
    spanSkedCCClone.appendChild( ccTxtObj );
    spanSkedAttrClone.appendChild( spanSkedCCClone );

    var tmpStereoTxt = schedules[i].stereo ? "[Stereo]" : "";
    var spanSkedStereoClone = spanSkedStereoObj.cloneNode(true);
    var stereoTxtObj = document.createTextNode( tmpStereoTxt );
    spanSkedStereoClone.appendChild( stereoTxtObj );
    spanSkedAttrClone.appendChild( spanSkedStereoClone );

    divSkedDetClone.appendChild( spanSkedAttrClone );

    <!-- add main div to schedule div -->
    divSchedClone.appendChild(divSkedMainClone);
    divSchedClone.appendChild(divSkedDetClone);

    divSeriesObj.appendChild( divSchedClone );
  }

   // alert(divSeriesObj.innerHTML);

   var divObj = document.getElementById(pObj);
   divObj.appendChild( divSeriesObj );
}
