/**
 * @author fakbar
 *
 *  PLEASE NOTE code needs the following imports to work
 *
 * <script type="text/javascript" src="http://media1.break.com/static/app/v1/global/js/common.js"></script>
 * <script type="text/javascript" language="javascript" src="http://media1.break.com/static/app/v1/global/js/global.js"></script>
 * <script type="text/javascript" language="javascript" src="http://media1.break.com/static/app/v1/global/js/break.js"></script>
 * <script type="text/javascript" language="javascript" src="http://media1.break.com/static/app/v1/global/js/breakjson.js"></script>
 */

var fawadsoutputdiv = null;
var totalRows = 0;
var enablePaging = null;
var pageNumber = 0;
var pageSize = 0;
var favobjectName = "";
var thecaller = "";
var that = null;
var favJson = new BreakJSON();
var isOwner = "";
var outputDiv = null;
var memberId = "";
var sortMe = "";
var currentSort = "";
var theinvoke = "getfavorites";

function MemberFavorites(member, pNumber, pSize, eSort, divenablePaging, div, myObjectName, Caller, Owner,invoke)
{
	fawadsoutputdiv = div;
	that = this;
	isOwner = Owner;
	outputDiv = div;
	memberId = member;
	enableSort = eSort;
	enablePaging = divenablePaging;
	pageNumber = pNumber;
	pageSize = pSize;
	sortMe = eSort;
	thecaller = Caller;
	currentSort = "Date";
	favobjectName = myObjectName;
	theinvoke = invoke;

	//alert( isOwner + '   here ?  ' + invoke);

	if(isOwner)
	{
		privateFavoritesHTML();
	}
	else
	{
		favoritesHTML();
	}
}


function favoritesHTML()
{
	favJson = new BreakJSON();
	favJson.sendBegin("http://profile-websvc.break.com/Membership/Handlers/Profile/Modules/FavoritesHandler.ashx?invoke="+theinvoke+"&siteId=1&pageNumber="+pageNumber+"&sortBy="+sortMe+"&pageSize="+pageSize+"&theMemberId=" + memberId, "buildFav");
}


function privateFavoritesHTML()
{
	favJson.sendBegin("http://profile-websvc.break.com/Membership/Handlers/Profile/Modules/FavoritesHandler.ashx?invoke="+theinvoke+"&siteId=1&pageNumber="+pageNumber+"&sortBy="+sortMe+"&pageSize="+pageSize+"&theMemberId=" + memberId, "buildFav");
}

function changePage(pageNum)
{
	  pageNumber = pageNum;
	  favJson.sendBegin("http://profile-websvc.break.com/Membership/Handlers/Profile/Modules/FavoritesHandler.ashx?invoke="+theinvoke+"&siteId=1&pageNumber="+pageNumber+"&sortBy="+sortMe+"&pageSize="+pageSize+"&theMemberId=" + memberId, "buildFav");
}

function GetSorterHtml()
{
	var text = "";
	if(enableSort != "")
	{

		 text += "<div id=\"manage_hdr_control_lft_txt\" style=\"margin-top:0px;margin-right:20px;\">Sort: ";
		 text += "<span id=\"Views_off\" style=\"display:none;\" >Views</span><span id=\"Views_on\"><a href=\"javascript:updatesorting('Views');\" class=\"breakpro_link\">Views</a></span>";
		 text += "| <span id=\"Date_off\">Date</span><span id=\"Date_on\" style=\"display:none;\"><a href=\"javascript:updatesorting('Date');\" class=\"breakpro_link\">Date</a></span>";
		 text += "| <span id=\"Rating_off\" style=\"display:none;\">Ratings</span><span id=\"Rating_on\"><a href=\"javascript:updatesorting('Rating');\" class=\"breakpro_link\">Ratings</a></span>";
		 text += "| <span id=\"Comments_off\" style=\"display:none;\">Comments</span><span id=\"Comments_on\"><a href=\"javascript:updatesorting('Comments');\" class=\"breakpro_link\">Comments</a></span></div>";

	}
	return text;
}


function renderContentPagination(totalRows, currentPage, theObjectName)
{
	var totalMsg    = totalRows;
	var totalPages  = Math.ceil(totalMsg/pageSize);
	var curPageNum  = currentPage;
	var prevPageNum = 0;
	var nextPageNum = 0;

	// Check if we are at the first page or the last or in the middle
	if (curPageNum == 1 )
		prevPageNum = 0;
	else
		prevPageNum = curPageNum -1;

	if (curPageNum == totalPages)
		nextPageNum = 0;
	else
		nextPageNum = curPageNum + 1;

   // set the number of pages to show
	var maxPageNum = 10;
	var ArrPageNums = GetPageNumArray(curPageNum, totalPages, maxPageNum);

	var html ="Page: ";


   if (ArrPageNums[0] != 1)
	   html += "...";

	for(var i=0; i<ArrPageNums.length; i++)
	{
		//alert(ArrPageNums[i]);

		if (curPageNum == ArrPageNums[i])
			html += "<strong>" + ArrPageNums[i] + "</strong>&nbsp;";
		else if (ArrPageNums[i] > 0)
			html += " <a class='breakpro_link' href=\"javascript:changePage("+ArrPageNums[i]+");\">"+ArrPageNums[i]+"</a>&nbsp;" ;
	}

	if (ArrPageNums[ArrPageNums.length - 1] != totalPages && ArrPageNums[ArrPageNums.length - 1] != -1)
	   html += "...";

	return html;
}

function GetPageNumArray(curPageNum, totalPages, maxPageNum)
{
   var i = 0;
   var ArrPageNums = new Array(maxPageNum);

   //initialize the array to -1
   for(var i=0; i<maxPageNum; i++)
   {
		ArrPageNums[i] = -1;
   }

   if(totalPages <= maxPageNum )
   {
	   for(var i=0; i<totalPages; i++)
	   {
			ArrPageNums[i] = i + 1;
	   }
   }
   else
   {
		// set the curPageNum in the middle
		if (curPageNum > 5)
		{
			pagesAhead = totalPages - curPageNum;

			if (pagesAhead > 5)
			{
				 for(var i=0;i<maxPageNum;i++)
				{
					ArrPageNums[i] =  curPageNum - 4 + i;
				}
			}
			else
			{
				for(var i=0;i<maxPageNum;i++)
				{
					ArrPageNums[i] =  totalPages - 9 + i;
				}
			}
		}
		else
		{
		   for(var i=0; i<maxPageNum; i++)
		   {
				ArrPageNums[i] = i + 1;
		   }
		}
   }

   return ArrPageNums;
}


function updatesorting(sortBy)
{
	//alert('in here ' + sortBy);
	sortMe = sortBy;
	//alert(that.sortMe);

	favJson.sendBegin("http://profile-websvc.break.com/Membership/Handlers/Profile/Modules/FavoritesHandler.ashx?invoke="+theinvoke+"&siteId=1&pageNumber="+pageNumber+"&sortBy="+sortBy+"&pageSize="+pageSize+"&theMemberId=" + memberId, "buildFav");
	showHide(sortBy+"_off",1);
	showHide(sortBy+"_on",0);

	showHide(currentSort+"_off",0);
	showHide(currentSort+"_on",1);

	currentSort = sortBy;
}


function showHide(szDivID, iState) // 1 visible, 0 hidden
{
	if(document.getElementById)	  //gecko + IE 5+
	{
		currentDiv = szDivID;
		var obj = document.getElementById(szDivID);
		obj.style.display = iState ? "" : "none";
	}
}


function GetImgRate(rate)
{
	var html = "";
	var CONST_MAX_RATING = 5;
	var totalStars = 0;
	var fullStars = Math.floor(rate);
	var halfStars = Math.round(rate%1);
	var i = 0;

	for (i=0; i<fullStars; i++){
		html += "<img src=\"http://media1.break.com/static/live/v1/img/content/full.gif\" border=\"0\" />";
		totalStars++;
	}
	if(rate%1 != 0){
		for (i=0; i<halfStars; i++){
			html += "<img src=\"http://media1.break.com/static/live/v1/img/content/half.gif\" border=\"0\" />";
			totalStars++;
		}
	}
	var emptyStars = CONST_MAX_RATING - totalStars;
	if (totalStars != CONST_MAX_RATING){
		for (i=0; i<emptyStars; i++){
			html += "<img src=\"http://media1.break.com/static/live/v1/img/content/none.gif\" border=\"0\" />";
			totalStars++;
		}
	}
	return html;
}

function  buildFav(jsonData)
{
	//favJson.sendEnd();
	//alert(jsonData.Response.Code);
	if(jsonData.Response.Code == 0)
	{
	      if(jsonData.Response.Favorites != null)
	      {
			 if(typeof(jsonData.Response.Favorites.length) != "undefined")
			 {
			 	var  textHTML = "";
			    totalRows = parseInt(jsonData.Response.Favorites[0].RowCount);
			    //alert('totalR ' + that.totalRows);
			    for(var i=0; i<jsonData.Response.Favorites.length; i++)
			    {
				   	if(thecaller == "mypage")
			       		textHTML += buildMyPageFavContent(jsonData.Response.Favorites[i]);
					else if(thecaller == "manage")
					{
						textHTML += buildManageFavContent(jsonData.Response.Favorites[i]);
					}
			    }
			    fawadsoutputdiv.innerHTML = textHTML;

			 }
			 else
			 {		//alert()
				var  textHTML = "";
				totalRows = 1;
				if(thecaller == "mypage")
					textHTML += buildMyPageFavContent(jsonData.Response.Favorites);
				else if(thecaller == "manage")
					textHTML += buildManageFavContent(jsonData.Response.Favorites);
				//alert(that.outputDiv.innerHTML);
				fawadsoutputdiv.innerHTML = "";
				fawadsoutputdiv.innerHTML = textHTML;

			 }
	      }
	      else
	      {
			if(thecaller == "mypage")
				fawadsoutputdiv.innerHTML = "";
			else
				fawadsoutputdiv.innerHTML = "No favourites yet";
	      }
	}
	else
	{
		fawadsoutputdiv.innerHTML = "No favourites yet";
	}


	if(enablePaging !== null)
	{
		if(totalRows > 0)
		{
			enablePaging.innerHTML = renderContentPagination(totalRows, pageNumber,favobjectName);
		}
	}
}

function buildMyPageFavContent(theContent)
{
  var imgUrl =  "http://media1.break.com/dnet/media/";
  var text = "";

  text += "<div class='myfavs_entry'>";
  text += "<div class='myfavs_thumb'><a href='" + theContent.ContentStaticURL + "'><img src='"+imgUrl+theContent.ContentFilePath +"/"+theContent.ContentThumbFileName+"' border='0' onerror='broken(this);' width='103px' height='77px' /></a></div>";
  text += "<div class='myfavs_detail'>";
  text += "<div class='myfavs_title'>";
  text += "<a href='" + theContent.ContentStaticURL + "' class='breakpro_link'>" + theContent.ContentTitle + "</a><br />";
  text += "</div>";
  text += "<div class='myfavs_info'>";
  text += "<div class='myfavs_info_left'>";
  text += "<span class='breakpro_sub'>";
  text += "<b>Added:</b> "+ theContent.Posted + "<br />";
  text += "<b>Views:</b> <b>"+ theContent.ViewCount + "</b>";
  text += "</span>";
  text += "</div>";
  text += "<div class='myfavs_info_right'>";
  text += "<span class='breakpro_sub'>";
  text += "<img src=\"http://media1.break.com/static/live/v1/img/recommendations/rec_thumbup_gray_sml.gif\" />&nbsp;&nbsp;" + theContent.Rating;
  text += "<br /><b>Comments:</b> "+ theContent.CommentCount;
  text += "</span>";
  text += "</div>";
  text += "</div>";
  text += "</div>";
  text += "</div> ";


  return text;
}

var count =0;
function buildManageFavContent(theContent)
{
  var imgUrl =  "http://media1.break.com/dnet/media/";
  var text = "";

	if(document.getElementById("checkMate") && count == 0)
	{
		if(theContent.IsPublic == "true")
			document.getElementById("checkMate").checked = true;
		else
			document.getElementById("checkMate").checked = false;

		count = 1;
	}


  text += "<div class=\"manage_favs_entry\" id=\""+theContent.MemberFavoriteID+"_div\" >";
  text +=          "<div class=\"fea_entry\">";
  text +=  	            "<div class=\"vidpics_thumb\"><a href=\""+theContent.ContentStaticURL+"\"><img src=\""+imgUrl+theContent.ContentFilePath +"/"+theContent.ContentThumbFileName+"\" onerror=\"onImageError(this);\" width=\"103px\" height=\"77px\" border=\"0\" /></a>";
  text +=              "</div>";
  text +=              "<div class=\"vidpics_detail\" style=\"width:600px;\">";
  text +=                  "<div class=\"vidpics_title\">";
  text +=                      "<a href=\""+theContent.ContentStaticURL+"\" class=\"breakpro_link\">"+theContent.ContentTitle+"</a>";
  text +=                  "</div>"
  text +=                  "<div class=\"vidpics_info\" style=\"float:left;width:400px;\">";
  text +=                      "<div class=\"vidpics_info_left\" style=\"margin-top:3px;\">";
  text +=                          "<span class=\"breakpro_sub\">";
  text +=                              "<b>Added:</b> "+ theContent.Posted + "<br />";
  text +=                              "<b>Views:</b> <b>"+ theContent.ViewCount + "</b>";
  text +=                          "</span>"
  text +=                      "</div>"
  text +=                      "<div class=\"vidpics_info_right\" style=\"width:200px;\">";
  text +=                          "<span class=\"breakpro_sub\">";
  text +=                              "<img src=\"http://media1.break.com/static/live/v1/img/recommendations/rec_thumbup_gray_sml.gif\" />&nbsp;&nbsp;" + theContent.Rating;
  text +=                              "<br /><b>Comments:</b> " + theContent.CommentCount;
  text +=                          "</span>";
  text +=                      "</div>";
  text +=                  "</div>";
  text +=              "</div>";
  text +=              "<div class=\"vidpics_rgt_ctrl\">";
  text +=                  "<img src=\"http://media1.break.com/static/live/v1/img/shim.gif\" width=\"1\" height=\"60\" border=\"0\" /><br />";

  if(theinvoke == "getprivatefavorites")
		text +=                  "<a href=\"javascript:deleteFav('"+theContent.ContentID+"', '"+theContent.MemberFavoriteID+"');\" class=\"breakpro_link\">Delete</a>";

  text +=              "</div>";
  text +=        "</div>";
  text +=   "</div>";

  return text;
}



