var media_id; // Video for main area
var genre_id; // List of videos
var genreID; //for transmitting to VMIX
var defaultGenreID = 5137; // Set default video list
var FirstBoolean = 0;

function switchVideoList(gid,start,mid,first)
{

if (first=='1' || mid == 'first_video')
{
	FirstBoolean=1;
} else {
	FirstBoolean=0;
}

if ((start == '') || isNaN(start) || (start==undefined)) { start = 0; }
if ((gid == '') || isNaN(gid) || (gid==undefined)) { gid = defaultGenreID; }

	if (mid && mid != 'first_video')
	{
		loadVmixMainArea(genreID,mid)
		FirstBoolean=0;
	}
	
	media_id = mid;
	loadVmixGridArea(gid,start,mid);

	return;
}	

// -----------------------------------------------------------------

function parseGetVars() {
	var getVars = new Array();
	var qString = unescape(top.location.search.substring(1));
	if (qString) { // Check that there is a query string
		var pairs = qString.split(/\&/);
		for (var i in pairs) {
			var nameVal = pairs[i].split(/\=/);
			getVars[nameVal[0]] = nameVal[1];
		}
		return getVars;
	}
	else {
		return false;
	}
}

// -----------------------------------------------------------------
// This is called by loadVmixMainArea only. no one else calls it
// -----------------------------------------------------------------
function sendRequest(url,callback,postData,start,genreID,media_id) {

	var req = createXMLHTTPObject();
	if (!req) return;
	var method = (postData) ? "POST" : "GET";
	req.open(method,url,true);
	req.setRequestHeader('User-Agent','XMLHTTP/1.0');
	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");

	if (postData)
req.setRequestHeader('Content-type','application/x-www-form-urlencoded');

req.onreadystatechange = function () {
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304) {
//			alert('HTTP error ' + req.status);
			return;
		}
		// commented out by Miriam 8/6 - no one is using this
		//callback(req,start,genreID,media_id);
		mydata = req.responseText;
                $('#vid_clip').html(mydata);

	}
	if (req.readyState == 4) return;
	req.send(postData);
}

// -----------------------------------------------------------------

function createXMLHTTPObject() {
	var xmlhttp = false;
	for (var i=0;i<XMLHttpFactories.length;i++) {
		try {
			xmlhttp = XMLHttpFactories[i]();
		}
		catch (e) {

			continue;
		}
		break;
	}
	return xmlhttp;
}

// -----------------------------------------------------------------

function getClip (req,start,genreID,media_id) {

	var myClip = eval('(' + req.responseText + ')');
	var title = "";
	var description = "";
	var author = "";
	if (myClip.title) {
		title = myClip.title;
		description = myClip.description;
		author = myClip.author;
	}
	var token = myClip.token;
	var media_id = myClip.id;
	var str='';
	str+='<div class="videoinfo"><h1>' + title + '<\/h1><\/br><p>' + author + '<\/p><\/div>';
	str+='<div class="box"><div class="box2"><div id="embed_player">';
	str+='<embed id="player_swf" src="http:\/\/media.elnuevoherald.com\/static\/multimedia\/channels\/VideoPlayer-SectionFront.swf" quality="high" width="640" height="392" name="UnifiedVideoPlayer" align="middle" play="true" loop="false" quality="high" allowScriptAccess="always" allowFullScreen="true" wmode="transparent" type="application\/x-shockwave-flash" flashvars="player_id=dc1f02a3115d1d39eb46373a2e92000b&token=' + token + '&media_id=' + media_id + '" pluginspage="http:\/\/www.adobe.com\/go\/getflashplayer"><\/embed><\/div>';
	str+='<\/div><\/div>';
	str+='<div class="videoinfo"><p>' + description + '<\/p><\/div>';

	$('#vid_clip').html(str);
//window.location.hash="green_nav_grid";
}
// --------------------------------------------------------------------------

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
if (!xmlHttp)
{ alert('Error initializing XMLHttpRequest'); }
return xmlHttp;
}

// --------------------------------------------------------------------------
function callApiProxy(genre_ids,start)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }
//alert(FirstBoolean);
var url = '/cgi-bin/ajax/apiproxy_medialist.php?genre_ids='+genre_ids+'&start=start';
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
setTimeout('getClips();',3000);

}

// --------------------------------------------------------------------------
function callApiProxySingle(media_id)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }
//alert(FirstBoolean);
var url = '/cgi-bin/ajax/apiproxy_medialist.php?media_ids='+media_id;
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
setTimeout('getClip();',3000);

}

// --------------------------------------------------------------------------
function getClips(req,start,genreID,media_id) 
{

if (FirstBoolean == 1)
{	
	var str2 = document.getElementById("first_video_info").innerHTML;
	$('#vid_clip').html(str2);
	FirstBoolean='';
}

var total_count = document.getElementById("total_count").innerHTML;
//alert(total_count);
        
 /*   
var viewing = "<br><span id='viewvideos' style='text-align:center;padding:7px;'>";

    if (total < media_array.length) {
		viewing += '<b>Viewing videos 1-' + total + ' of ' + total + ' total.</b></span>';
    } else {
		viewing += '<b>Viewing videos 1-' + media_array.length + ' of ' + total + ' total.</b></span>';
	}      

if ((start == '') || isNaN(start)) { start = 0; }
start = parseInt(start) + 20;	

var prev = '';
var next = '';

if (start < total)
{
	next = '<span style="vertical-align:top;text-align:right;padding-right:30px;right:0px;"><b> <a href="#green_nav_grid" onclick="javascript:switchVideoList(\''+genreID+'\',\''+start+'\');">Siguiente</a> &gt;</b></span>';
}

if (parseInt(start-40) >= 0)
{
	var tempstart = parseInt(start);
	var previous_start = tempstart - parseInt(40);
	prev = '<span style="vertical-align:top;text-align:left;padding-left:30px;left:0px;"><b>&lt; <a href="#green_nav_grid" onclick="javascript:switchVideoList(\''+genreID+'\',\''+previous_start+'\');">Anterior</a></b></span>';
}

	// ------  GETTING THE PAGES -------

var mypages = '';
mypages = pageinate(total, genreID,start);

var more_pages  = '<div style="width:400px;text-align:center;margin-left:300px;">' + prev  + ' &nbsp;&nbsp;' + mypages + ' &nbsp;&nbsp;' + next  + '</div>';

str =more_pages + '<br>' + str + '<br><br>' + more_pages;

selectProperTab(genreID)
	$('#vid_clips').html(str);
*/
}

// -----------------------------------------------------

function escape_quotes (mystring){
var etr = mystring.replace(/\n/g," ");
etr = etr.replace(/'/g,"%27");
etr = etr.replace(/"/g,"%27");
etr = etr.replace(/\//g,"");
return etr;

}

function selectProperTab(genreID){
	$("#4275").removeClass("x");
	$("#"+genreID).addClass("x");
	$("#"+genreID).parents(".subnav_bottom").show();
	var subnavTab1 = $("#"+genreID).children("a").attr("class");
	$("#"+subnavTab1).show();
	var subnavTab = $("#"+genreID).parents(".subnav_bottom");
	$("li:contains("+subnavTab+")").addClass("x");
}

function loadVmixMainArea(genreID,media_id){
	// Fills in top area
	var start = '';
	sendRequest('/cgi-bin/ajax/apiproxy_medialistsingle.php?media_id=' + media_id, getClip,'',start,genreID,media_id);
	//callApiProxySingle(media_id);
}

function loadVmixGridArea(genreID,start,media_id){
	// Fills in bottom area
	callApiProxy(genreID,start);
}

var g = parseGetVars(); // Prep array of request string pairs

var XMLHttpFactories = [ // Prep XML objects
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];	

// ------------------------------------------------------
//                           PAGEINATE
// This function creates the digits for each page.
// Each digit is a link
// ------------------------------------------------------

function pageinate(total, genreID,start)
{
var pages = '';               // this var holds the 'digit' links
var limit = 20;               // the max # of videos that we're pulling per grid
var t;
var current_start;          // holds the start for the vmix api call
var div = total/limit;      // approx # of pages(grids) that we will have
var page = start/limit;   // current page that we're on
var mod = total%limit;  // this is the number of videos on the very last page

if (mod == 0)               // if the total perfectly divisible by 20
{
     laststart =  total - limit ;
     lastpage = div;
} else  {
      laststart = total - mod;
      lastpage = div + 1;
}

if (laststart < 0) { laststart = 0; lastpage = 1; }

var numofpages = lastpage;

if (numofpages > 1)
{
var t_start = page-4;
var t_end = page + 3;

   if (t_start <= 0)
   {
          t_end = 7;
          t_start = 0;
    }

    if (total < (limit * t_end))
    { 
        t_end = div; //Math.round(total/limit); 
     }

  for (t=t_start; t < t_end; t++)
  {
      if (t ==0) { t_show = 1; } else { t_show = t + 1; }

      current_start = limit * t;
      if (t ==0) { current_start = 0; }

       if (current_start > total)
      { current_start = laststart; }

      if (t_show == page)
     { pages += "&nbsp;<b>" + t_show + "</b>"; }
      else
      {
          // if (t <= numofpages)
                      
                pages += ' &nbsp;<a href="#" onclick="javascript:switchVideoList(\''+genreID+'\',\''+current_start+'\');">' + t_show +'</a> '; 
          //  } //if
      } // else
   } // for
} // if
//pages += '<br><br>t_start: ' + t_start + ' , t_end: ' + t_end;
return pages;
}
// ------------------------------------------------------
