// JavaScript Document

$(document).ready(function(){

 
 /*$('.hot_topic_link').hover(displayDetailLayer, hideDetailLayer);*/
			//alert(this.id);
		
	});



// get the detail layer : use on mouseover state
function getDetailLayer(id, articleID, leftConstant)
{
	showDetailLayer(AJAX_DIR, id, articleID, leftConstant); 
	
	$('#'+id).mouseout(function() { 
        return clearDetailLayer(); });
}


// display detail layer
// id =  id of the layer
// leftConstant = constant used to determine left offset
function displayDetailLayer(id, leftConstant) 
{

          if(!leftConstant) { leftConstant = 6.15; }
			
		  var options = {
				margin:  parseInt( $('#margin').val()  ),
				border:  parseInt( $('#border').val()  ),
				padding: parseInt( $('#padding').val() ),
				scroll:  parseInt( $('#scroll').val()  )
			};
			var offset = {};
			$("#" + id).offset(options, offset);
			
			//console.log(((new Date()).getTime() - time) + ' milliseconds');
			$('#displayDetailLayer').css(offset);
			
			// get length of text, to determine left offset
			var title = $('#' + id).html();
		    var titleLen = title.length;
	
			var leftOffset = offset.left + (titleLen * leftConstant);
			 
			$('#displayDetailLayer').css("left",leftOffset);
			var topOffset = offset.top - 30;
			//alert(offset.left + 30);
			$('#displayDetailLayer').css("top",topOffset);	
			
			$('#displayDetailLayer').show();
            return false;
		}
	function hideDetailLayer() {
		$('#displayDetailLayer').hide();		
		return false;
    }




 var Articles = new Array();

// does an ajax call for article detail and sets the display
function showDetailLayer(AJAX_DIR, id, article_id, leftConstant)
{
	hideDetailLayer();
	
	if(!Articles[article_id]) 
	{
	   $.getJSON(AJAX_DIR+'/article_preview.php', 
	     { ArticleID: article_id}, setDetailLayer);
	} else { 
	   setDetailLayer(Articles[article_id]);
	}
	
	return displayDetailLayer(id, leftConstant);
}

// sets article detail layer
function setDetailLayer(article)
{
	// cache article
	Articles[article.ArticleID] = article;
	
    $('#displayDetailLayerHeader').html(
			                   truncate(unescape(article.ArticleTitle), 40));
	 $('#authorName').html('<a href=\'reporter.php?username=article.username\' >'+article.Author+'</a>');
	 $('#elapsedTime').html(article.ElapsedTime);
	 if(article.Region) { $('#displayDetailLayerRegion').html('<a href=\'article_list.php?region='+article.location+'&region_state='+article.location_state+'\' >'+truncate(article.Region, 15)+'</a>'); }
	$('#articleViews').html('Views: '+article.PageViews);
	$('#articleRating').html('Rating: '+showRating(article.Rating));
	$('#displayDetailLayerBody').html(
	        truncate(unescape(article.BriefDescription), 260));

}


// clear article detail layer
function clearDetailLayer()
{
	 $('#displayDetailLayerHeader').html("");
	 $('#authorName').html("");
	 $('#elapsedTime').html("");
	 $('#displayDetailLayerRegion').html(""); 
	 $('#articleViews').html("");
	 $('#articleRating').html("");
	 $('#displayDetailLayerBody').html("");	
	 return hideDetailLayer();
}

 // displays ratings graphically
 function showRating(rating)
  { 
     if(!rating) { return "No Rating";  }
	 
	 var star = '';
	 for(var i = 0; i < rating; i++)
	 {
	    star += "<img border='0' src='images/star.gif' alt='' />";
	 }
	 
	 return star;
  }
  
  
  // truncates the size of a string, for display purposes
function truncate(str, len)
{
   	
   return (len < str.length ? (str.substring(0, len-3) + '...') : str);
}
