/**
*
* @author <Bodo (Hugo) Barwich>
* @version
* @module JavaScript Function Library for the "canal.juegos.tv" Project
*/

/**
* The is the JavaScript Function Library for the project.
*/



function getIDObject(sobjectid)
{
  var rsobj;


  if(sobjectid)
  {
  	if(document.layers)
    {
      rsobj = document.layers[sobjectid];
    }
    else if(document.all)
    {
		  rsobj = document.all[sobjectid];
    }
    else if(document.getElementById)
    {
      rsobj = document.getElementById(sobjectid);
    } //if(document.layers)
	}  //if(sobjectid)


	//Give the Object Reference back
	return rsobj;
}

function toggleoVisibility(object)
{
  if(object)
  {
    if(object.style.display == "none")
      object.style.display = "block";
    else
      object.style.display = "none";
  } //if(object)
}

function getElementsByName_iefix(stagname, sobjectname)
{
  var arrobjs = new Array();


  if(stagname
    && sobjectname)
  {
    var arrtags = document.getElementsByTagName(stagname);
    var stgnm;
    var itgcnt = arrtags.length;

    for(itg = 0, iobj = 0; itg < itgcnt; itg++)
    {
      stgnm = arrtags[itg].getAttribute("name");

      if(stgnm)
      {
        if(stgnm == sobjectname)
        {
          arrobjs[iobj] = arrtags[itg];

          iobj++;
        } //if(stgnm == sobjectname)
      } //if(stgnm)
    } //for(itg = 0, iobj = 0; itg < itgcnt; itg++)
  } //if(stagname && sobjectname)


  //Give the List of Elemnts back
  return arrobjs;
}

function getsObject(stagname, sobjectname)
{
  var rsobj;


  if(sobjectname)
  {
    var stgnm = "div";


    if(stagname)
      stgnm = stagname;

    if(document.getElementsByName)
    {
      var arrelements;


      arrelements = document.getElementsByName(sobjectname);

      if(!arrelements)
        arrelements = getElementsByName_iefix(stgnm, sobjectname);

      if(arrelements)
      {
        if(arrelements.length < 1)
          arrelements = getElementsByName_iefix(stgnm, sobjectname);

        if(arrelements.length > 0)
          rsobj = arrelements[0];
      }
      else
        alert("elements not found");
    }
    else
    {
      alert("getElementsByName not supported");
    } //if(document.getElementsByName)
	}  //if(sobjectname)


	//Give the Object Reference back
	return rsobj;
}

function copiarPortapapeles(texto)
{
	if (window.clipboardData){
		window.clipboardData.setData('Text', texto);
		alert('Copiado al portapapeles');
	}else{
		alert('Utilice Ctrl+C para copiar');
	}
}

function copyClipboard(sdivid)
{
  if(sdivid)
  {
    var obj = getIDObject(sdivid);
    var stxt = "";
    
    
    if(obj)
      stxt = obj.value;

    if(stxt)
      copiarPortapapeles(stxt);
      
  } //if(sdivid)

}

function divPopup(sobjectid, ancho, alto)
{
  var div, contenedor;


  if(sobjectid)
  {
    div = document.getElementById(sobjectid);
    contenedor = document.getElementById("player");

    if(contenedor)
    {
      contenedor.style.opacity=0.3; //Firefox
      contenedor.style.filter="alpha(opacity=30)"; //IE*/
    } //if(contenedor)

    if(div)
    {
      div.style.width=ancho+"px";
      div.style.height=alto+"px";
      div.style.marginTop=-alto/2+"px";
      div.style.marginLeft=-ancho/2+"px";
      div.style.display="block";

      if(document.getElementById("txtCod"))
        document.getElementById("txtCod").select();
      } //if(div)

	}  //if(sobjectid)
}

function openPopup(sdivid)
{
  if(sdivid)
  {
  	var div = document.getElementById(sdivid);
    var contenedor = document.getElementById("player");


    if(contenedor)
    {
      contenedor.style.opacity=0.3; //Firefox
      contenedor.style.filter="alpha(opacity=30)"; //IE*/
    } //if(contenedor)

    if(div)
      div.style.display="block";
  } //if(sdivid)
}

function closePopup(sdivid)
{
  if(sdivid)
  {
	var div = document.getElementById(sdivid);
	var contenedor = document.getElementById("player");

	if(contenedor)
	{
    contenedor.style.opacity=100; //Firefox
    contenedor.style.filter="alpha(opacity=100)"; //IE*/
  } //if(contenedor)

  if(div)
	 div.style.display="none";
  }
}


function toggleIDObjects(sidobjectoff, sidobjecton)
{
  if(sidobjectoff
    || sidobjecton)
  {
    var obj;


    if(sidobjectoff)
    {
      //alert("'" + sidobjectoff + "' -> off");
      obj = getIDObject(sidobjectoff);
      
      if(obj)
        obj.style.display = "none";
      else
        alert("'" + sidobjectoff + "' not found!");
    } //if(sidobjectoff)

    if(sidobjecton)
    {
      //alert("'" + sidobjectoff + "' -> on");
      obj = getIDObject(sidobjecton);

      if(obj)
        obj.style.display = "block";
      else
        alert("'" + sidobjecton + "' not found!");
    } //if(sidobjecton)
    
  } //if(sidoffobject || sidonobject)
}

function createCookie(sname, svalue, idays, spath)
{
	var date = new Date();
  var expires = "";
  var idys = 1;
  var spth = "/";


  if(idays)
    idys = idays;

  if(spath)
    spth = spath;

  date.setTime(date.getTime() + (idays * 24 * 60 * 60 * 1000));

  expires = "; expires=" + date.toGMTString();

  if(sname)
    document.cookie = sname + "=" + svalue + expires + "; path=" + spth;
}

function writeCookie(sname, svalue, idays, spath)
{
  var date = new Date();
  var expires = "";
  var idys = 1;
  var spth = "/";


  if(idays)
    idys = idays;
    
  if(spath)
    spth = spath;


  //alert("Now: '" + date.toGMTString() + "' Days: '" + idys + "'");
  date.setTime(date.getTime() + (1000 * 60 * 60 * 24 * idys));

  expires = "; expires=" + date.toGMTString();

  if(sname)
  {
    var sck = sname + "=" + svalue + expires + "; path=" + spth;

    //alert("Cookie: '" + sck + "'");
    document.cookie = sck;
  } //if(sname)
}

function getCookie(sname)
{
  var srsckstr = "";
  
  
  if(sname)
  {
    var ssrchcknm = sname.toLowerCase();


    if(document.cookie)
    {
      var arrcks = document.cookie.split(';');
      var sckstr = "";
      var scknm = "";
      var ickcnt = arrcks.length;
      var ick = 0;
      var ifstchrps = 0;
      var ieqps = -1;
      var bckfnd = false;


    	for(; !bckfnd && ick < ickcnt; ick++)
      {
		    sckstr = arrcks[ick];
		    ifstchrps = 0;

    		while(sckstr.charAt(ifstchrps) == ' ')
          ifstchrps++;

        ieqps = sckstr.indexOf("=", ifstchrps);

        if(ieqps > -1)
        {
          scknm = sckstr.substring(ifstchrps, ieqps);

          if(scknm.toLowerCase() == ssrchcknm)
          {
            srsckstr = sckstr.substring(ifstchrps);

            bckfnd = true;
          } //if(scknm.toLowerCase() == ssrchcknm)
        } //if(ieqps > -1)
      } //for(; !bckfnd && ick < ickcnt; ick++)
      
    } //if(document.cookie)
  } //if(sname)


  //Give the Result back
  return srsckstr;
}

function getCookieValue(sname)
{
  var srsckvl = "";


  if(sname)
  {
    var ssrchcknm = sname.toLowerCase();


    if(document.cookie)
    {
      var arrcks = document.cookie.split(';');
      var sckstr = "";
      var scknm = "";
      var ickcnt = arrcks.length;
      var ick = 0;
      var ifstchrps = 0;
      var ieqps = -1;
      var bckfnd = false;


    	for(; !bckfnd && ick < ickcnt; ick++)
      {
		    sckstr = arrcks[i];

    		while(sckstr.charAt(ifstchrps) == ' ')
          ifstchrps++;

        ieqps = sckstr.indexOf("=", ifstchrps);

        if(ieqps > -1)
        {
          scknm = sckstr.substring(ifstchrps, ieqps - ifstchrps + 1);
          alert("Cookie Name: '" + scknm + "'");

          if(scknm.toLowerCase() == ssrchcknm)
          {
            srsckvl = sckstr.substring(ieqps + 1, sckstr.length - ieqps);

            bckfnd = true;
          } //if(scknm.toLowerCase() == ssrchcknm)
        } //if(ieqps > -1)
      } //for(; !bckfnd && ick < ickcnt; ick++)
      
    } //if(document.cookie)
  } //if(sname)


  //Give the Result back
  return srsckvl;
}

function hasCookie(sname)
{
  var bck = false;


  if(sname)
  {
    if(getCookie(sname) != '')
      bck = true;
  } //if(sname)


  //Give the Result back
  return bck;
}

function prepareZoom()
{
  var scknm = "win_size";
  

  if(!hasCookie(scknm))
  {
    var icklftm = 7;
    var iwinwdt = -1;
    var iwinhgt = -1;
    var swinsz = "";


    if(window.innerWidth)
    {
      iwinwdt = window.innerWidth;
      iwinhgt = window.innerHeight;
    }
    else if(document.body.clientWidth)
    {
      iwinwdt = document.body.clientWidth;
      iwinhgt = document.body.clientHeight;
    } //if(window.innerWidth)

    if(iwinwdt
      && iwinhgt)
    {
      swinsz = iwinwdt + "_" + iwinhgt;

      writeCookie(scknm, swinsz, icklftm);
    } //if(iwinwdt && iwinhgt)
  } //if(!hasCookie(scknm))

}

function preCarga()
{
  if(document.images)
  {
    var ar = new Array();
    var arguments = preCarga.arguments;


    for(var i = 0; i < arguments.length; i++)
    {
      ar[i] = new Image();
      ar[i].src = arguments[i];
    } //for(var i = 0; i < arguments.length; i++)
  } //if(document.images)
}


function changeIDClass(sobjectid, sclassname)
{
  if(sobjectid)
  {
    var obj = getIDObject(sobjectid);


    if(obj)
      obj.className = sclassname;

  } //if(sobjectid)
}


function changeoClass(object, sname)
{
  if(object)
    object.className = sname;
}

function changesClass(stagname, sobjectname, sclassname)
{
  if(sobjectname)
  {
    var obj;
    var stgnm = "div";


    if(stagname)
      stgnm = stagname;


    obj = getsObject(stgnm, sobjectname);

    if(obj)
      obj.className = sclassname;

  } //if(sobjectname)
}

function toggleoClass(object, sclassname1, sclassname2)
{
  if(object)
  {
    var scls1 = "";
    var scls2 = "";


    if(sclassname1)
      scls1 = sclassname1;

    if(sclassname2)
      scls2 = sclassname2;

    if(object.className == scls2)
      object.className = scls1;
    else
      object.className = scls2;

  } //if(object)
}

function toggleIDClass(sobjectid, sclassname1, sclassname2)
{
  if(sobjectid)
  {
    var obj = getIDObject(sobjectid);


    if(obj)
      toggleoClass(obj, sclassname1, sclassname2);

  } //if(sobjectid)
}

function blinkIDObject(sobjectid, itime, sclassname1, sclassname2)
{
  var itm = 1000;


  if(itime)
    itm = itime;

  toggleIDClass(sobjectid, sclassname1, sclassname2);

  setTimeout("blinkIDObject('" + sobjectid + "', " + itime
    + ", '" + sclassname1 + "', '" + sclassname2 + "')", itm);

}

function showIDADNVideo(sdivid, svideourl, iwidth, iheight, sautostart, sfullscreen
  , splaylist)
{
  if(sdivid
    && svideourl)
  {
    var svdhtml = "";
    var surl = svideourl;
    var iwdth = 675;
    var ihgt = 500;
    var sstrt = "true";
    var sfllscrn = "false";
    var splylst = "true";


    //alert("'" + sdivid + "', '" + svideourl + "', '" + iwidth + "', '" + iheight
    //  + "', '" + sautostart + "', '" + sfullscreen + "', '" + splaylist + "'");

    if(iwidth)
      iwdth = iwidth;

    if(iheight)
      ihgt = iheight;

    if(sautostart)
      sstrt = sautostart;

    if(sfullscreen)
      sfllscrn = sfullscreen;

    if(splaylist)
      splylst = splaylist;

    svdhtml = "<object type='application/x-shockwave-flash' "
      + "data='" + surl + "' width='" + iwdth + "' height='" + ihgt + "'>\n"
      + "<param name='movie' value='" + surl + "' />\n"
      + "<param name='FlashVars' value='allowFullScreen=" + sfllscrn
      + "&autostart=" + sstrt + "&viewPlaylist=" + splylst + "' />\n"
      + "<param name='wmode' value='transparent' />\n"
      + "</object>";

    //alert("Video HTML:\n" + svdhtml);

    if(document.getElementById(sdivid))
      document.getElementById(sdivid).innerHTML = svdhtml;

  } //if(sdivid && svideourl)
}

function getPlaylistString(playlist)
{
  var srsobj = "";


  if(playlist)
    if(typeof playlist == "object")
    {
      var spropnm = "";
      var sprop = "";
      var barr = false;


      for(spropnm in playlist)
      {
        if(srsobj == "")
        {
          if(parseInt(spropnm) == spropnm)
          {
            srsobj += "[";

            barr = true;
          }
          else //if(typeof object[spropnm] == "number")
            srsobj += "{";
        } //if(srsobj == "")


        if(typeof playlist[spropnm] != "object")
        {
          if(parseInt(spropnm) == spropnm)
            sprop = "{\"url\":\"" + playlist[spropnm] + "\"}";
          else //if(typeof object[spropnm] == "number")
            sprop = "\"" + spropnm + "\":\"" + playlist[spropnm] + "\"";
        }
        else
          sprop = spropnm + ":" + getObjectString(playlist[spropnm]);

        if(srsobj != "{"
          && srsobj != "[")
          srsobj += ", ";

        srsobj += sprop;

      } //for(sprop in object)

      if(srsobj != "")
        if(!barr)
          srsobj += "}";
        else
          srsobj += "]";


    } //if(typeof playlist = "object")



  return srsobj;
}


function getObjectString(object)
{
  var srsobj = "";


  if(object)
    if(typeof object == "object")
    {
      var spropnm = "";
      var spropvl = null;
      var sprop = "";
      var barr = false;


      for(spropnm in object)
      {
        spropvl = object[spropnm];

        alert("prop name: '" + spropnm + "'; prop val: '" + spropvl + "'");

        if(srsobj == "")
        {
          if(parseInt(spropnm) == spropnm)
          {
            srsobj += "[";

            barr = true;
          }
          else //if(parseInt(spropnm) == spropnm)
            srsobj += "{";
        } //if(srsobj == "")
/*
        if(spropnm != "playlist")
        {
*/
          if(spropnm != "key")
          {
            if(typeof spropvl != "object")
            {
              if(parseFloat(spropvl) != spropvl)
              {
                if(spropvl !== true
                  && spropvl !== false)
                {
                  spropvl += "";

                  if(spropvl.search(/"/) > -1)
                    if(spropvl.search(/\\"/) < 0)
                      spropvl = spropvl.replace(/"/g, '\\\"');

                  if(spropvl.search(/'/) > -1)
                    if(spropvl.search(/\\'/) < 0)
                      spropvl = spropvl.replace(/'/g, "\\\'");

                  spropvl = "\"" + spropvl + "\"";

                } //if(spropvl !== true && spropvl !== false)
              } //if(parseFloat(spropvl) != spropvl)

              if(!barr)
                sprop = "\"" + spropnm + "\":" + spropvl;
              else
                sprop = spropvl;
            }
            else if(!barr)
              sprop = "\"" + spropnm + "\":\n" + getObjectString(spropvl);
            else
              sprop = getObjectString(spropvl);
          }
          else
            sprop = "";
/*
        }
        else
          sprop = spropnm + ":" + getPlaylistString(object[spropnm]);
*/

        if(srsobj != "{"
          && srsobj != "[")
          srsobj += ", ";

        srsobj += sprop;

      } //for(sprop in object)

      if(srsobj != "")
      {
        if(!barr)
          srsobj += "}";
        else
          srsobj += "]";

        srsobj += "\n";
      } //if(srsobj != "")


    } //if(typeof object = "object")



  return srsobj;
}

function getPlayerConfigurationStr(configuration)
{
  var srscfg = "";


  if(configuration)
    if(typeof configuration == "object")
    {
      srscfg = getObjectString(configuration);

/*
      if(srscfg != "")
      {
        srscfg = srscfg.substr(0, srscfg.length - 2)
          + ",\"playerId\":\"player\",\"clip\":{}}"
      }
*/
    } //if(typeof configuration == "object")


  return srscfg;
}

function showVideoPlayer(sdivid, splayerfile, iwidth, iheight, configuration)
{
  if(sdivid
    && splayerfile)
  {
    var svdhtml = "";
    var spyrfl = splayerfile;
    var iwdth = 675;
    var ihgt = 500;
    var spyrcfg = "";

/*
    alert("arg cnt: '" + arguments.length + "'");

    for(iarg = 0; iarg < arguments.length; iarg++)
      alert("arg " + iarg + ": '" + arguments[iarg] + "'");

    if(typeof configuration == "object")
    {
      var sprops = "";
      var scntnt = "";


      for(var sprop in configuration)
        sprops += sprop + "\n";

      alert("arg obj props:\n" + sprops);

    } //if(typeof configuration == "object")
*/


    if(iwidth)
      iwdth = iwidth;

    if(iheight)
      ihgt = iheight;

    if(configuration)
      spyrcfg = getPlayerConfigurationStr(configuration);
/*
<param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><param name="quality" value="high"><param name="bgcolor" value="#000000">
*/

    svdhtml = "<object id='player_api' type='application/x-shockwave-flash' "
      + "data='" + spyrfl + "?0.2460705484166742' width='" + iwdth + "' height='" + ihgt + "'>\n"
      + "<param name='movie' value='" + spyrfl + "?0.2460705484166742' />\n"
      + "<param name='allowFullScreen' value='true' />\n"
      + "<param name='quality' value='high' />\n"
      + "<param name='bgcolor' value='#000000' />\n"
      + "<param name='wmode' value='transparent' />\n"
      + "<param name='FlashVars' value='config=" + spyrcfg + "' />\n"
      + "</object>";

    alert("Video HTML:\n" + svdhtml);

    if(document.getElementById(sdivid))
      document.getElementById(sdivid).innerHTML = svdhtml;

  } //if(sdivid && splayerfile)
}

