/**
 * DrPepper.Site
 *
 * Global functionality for Dr Pepper site.
 *
 * Author:	Silvan Reinhold
 * Date:	2009-03-03
 **/

var DrPepper = DrPepper || {};

DrPepper.Site = {};

DrPepper.Site.LINKTYPE_NONE			= -1;
DrPepper.Site.LINKTYPE_SELF			=  0;
DrPepper.Site.LINKTYPE_NEWWINDOW	=  1;
DrPepper.Site.LINKTYPE_POPUP		=  2;
DrPepper.Site.LINKTYPE_DOWNLOAD		=  3;
DrPepper.Site.LINKTYPE_VIDEO		=  4;

/**
 * Performs an action for the given link, according to the specified LINKTYPE
 *
 * @param	p_xParams	Parameter hash (specific parameters depend on link type)
 */
DrPepper.Site.performLinkAction = function(p_xParams)
{
	switch (p_xParams.linkType)
	{
		// LINKTYPE_VIDEO shows a video on the Video page. Parameters:
		//
		// applicationUrl
		// url
		// stillUrl
		// title
		// addedDate
		//
		case DrPepper.Site.LINKTYPE_VIDEO:
			// Scroll to top and play video
			//
			$(document).scrollTo(
				0,
				500,
				{
					onAfter: function()
					{
						DrPepper.VideoController.playVideo(
							"#videoplayer-container",
							"#videoplayer-info",
							DrPepper.Util.urlDecode(p_xParams.applicationUrl),
							DrPepper.Util.urlDecode(p_xParams.url),
							DrPepper.Util.urlDecode(p_xParams.stillUrl),
							DrPepper.Util.urlDecode(p_xParams.categoryTitle),
							DrPepper.Util.urlDecode(p_xParams.title),
							DrPepper.Util.urlDecode(p_xParams.addedDate)
						); 
					} 
				}
			);			
			break;

		// LINKTYPE_POPUP opens link in popup window. Parameters:
		//
		// url
		// params	popup window parameters (optional)
		//
		case DrPepper.Site.LINKTYPE_POPUP:
			var l_sWindowParameters = p_xParams.params;
			if (!l_sWindowParameters) {
				l_sWindowParameters = "menubar=0,toolbar=0,location=0,status=0,scrollbars=0";
			}
			var l_xPopup = window.open(DrPepper.Util.urlDecode(p_xParams.url), "drpepperpopup", l_sWindowParameters);
			try {
				if (l_xPopup && l_xPopup.moveTo) {
					l_xPopup.moveTo(32, 32);
				}
			}
			catch (e) {}
			break;
			
		// LINKTYPE_DOWNLOAD and LINKTYPE_NEWWINDOW open link in new window. Parameters:
		//
		// url
		//
		case DrPepper.Site.LINKTYPE_DOWNLOAD:
		case DrPepper.Site.LINKTYPE_NEWWINDOW:
			window.open(DrPepper.Util.urlDecode(p_xParams.url));
			break;
		
		// LINKTYPE_SELF opens link in current window/tab. Parameters:
		//
		// url
		//
		case DrPepper.Site.LINKTYPE_SELF:
		default:
			document.location.href = DrPepper.Util.urlDecode(p_xParams.url)
			break;
	}
};
  
DrPepper.Site.DEFAULT_MIN_WIDTH = 1024;
DrPepper.Site.DEFAULT_MIN_HEIGHT = 700;

/**
 *	Change minimum size (width/height) for the page; used by the home page feature player to ensure that the featured
 *	content footer bar never overlaps with any of the features it displays.
 *
 *	@param	p_nMinWidth		Minimum width to enforce (or 0/null/undefined
 *	@param	p_nMinHeight	Minimum height to enforce
 *
 **/
DrPepper.Site.setMinSize = function(p_nMinWidth, p_nMinHeight)
{
	p_nMinWidth = parseInt(p_nMinWidth);
	p_nMinHeight = parseInt(p_nMinHeight);

	// Use default min-width / min-height if nothing was specified
	if (!p_nMinWidth) { p_nMinWidth = DrPepper.Site.DEFAULT_MIN_WIDTH; }
	if (!p_nMinHeight) { p_nMinHeight = DrPepper.Site.DEFAULT_MIN_HEIGHT; }
	
	if (!$.browser.msie || $.browser.version > 6) {
		// all real browsers
		$("#feature-player").css({ minWidth: p_nMinWidth, minHeight: p_nMinHeight });
		$("#body-content").css({ minWidth: p_nMinWidth, minHeight: p_nMinHeight });
	}
	else {
		// IE6 fix for missing implementation of CSS min-width / min-height
		minsize("body-content", p_nMinWidth, p_nMinHeight);
	}
};
    
DrPepper.Site.performActionAjaxCall = function(p_nActionId)
{
	$.ajax({
		type: "POST",
		url: "/include/lib/ajax/ajax.php", //proxy script
		data: "a=submitUserAction&actionId="+p_nActionId //POST submitUserAction and actionId
	});
};

/* // Disabled for now until fully tested
//****Make ajax call to submit actions based on user interactions****
$(document).ready(function() {
	$("#main-area .item, #footer-area .item").bind("mousedown", function() {
			var l_xMetaData = $(".meta-data", this);
			var l_nActionId = parseInt(l_xMetaData.find(".action-id").text());
	  		//check if value of actionId is a number
			if(!isNaN(l_nActionId)){
				DrPepper.Site.performActionAjaxCall(l_nActionId);
			}
	});
});
*/

