/*************** Media loading *******************/
			
var hParams = {
	playerObj:null,
	spinner:null,
	screenshot : {
		tag:"<img>",
		sel:[".fileUrl"],
		att:["src"]
		},
	videoOld : {
		playerPath:"http://player.ooyala.com/player.swf",
		params:{
			videoURL:null,
			cdPath:"http://na.llnet.cdn.ea.com/u/crossdomain.xml,http://ll-100.ea.com/cem/u/f/GPO/crossdomain.xml"
			},
		set:{
			videoURL:".fileUrl"
			}
		},	
	video : {
		playerPath:"http://player.ooyala.com/player.js",
		params:{
			embedCode:null,
			width:"533",
			height:"319"
			},
		set:{
			videoURL:".fileUrl"
			}
		},	
	youtube : {		
		ytPath:"http://www.youtube.com/v/",
		ytParams:{
			rel:0,
			color1:"0x2b405b",
			color2:"0x6b8ab6"
			},
		params:{
			bgcolor:"#2c3645"
			}
		
		}
	}			
$j.fn.initMediaList = function(){
	var obj =this;
	$j("ul.item", obj)	
		.bind("click",
			function(){
				$j("ul.item", obj).removeClass("showing");	
				$j(this).addClass("showing");
				$j(this).loadViewer();
				return false;
				}
			)
		.hover(
			function() {
				$j(this).addClass("hover")
				},
			function() {
				$j(this).removeClass("hover")
				}
			)
	$j("ul.item:even", this).addClass("odd");
	$j(".scope a")
		.hover(
			function(){
				$j(this).scopeTip(1)
				},
			function(){
				$j(this).scopeTip(0)
				}
			);
	$j("#mediaLinks .paging a").click(
		function(){
 			var href = $j(this).attr("href") +"&"+  $j(this).parents('div.pane').find("form.sortForm").serialize();
 			$j("#mediaLinks ul").fadeOut("fast");
 			$j().loadList(href, false);
 			// 	alert(href);
 			// 	$j("#mediaLinks").fadeOut("fast").load(href, "",function(){$j("#mediaLinks").fadeIn("fast")});
 			return false;
 			}
 		)

	}
$j.fn.getMedia = function() {
	var obj = this;
	var type = $j(".mediaType",obj)
		.text()
		.replace(" ","");
	var p = hParams[type];			
	var viewer = obj.getViewer();
	switch(type){
		case "screenshot" :
			if(!$j(".item", viewer).hasClass($j(".class",this).text())){
				var w = $j("<div><\/div>")
					.addClass(
						"item " + $j(".class",obj).text()
						);
				var imgObj = $j(p.tag);
				$j.each(p.att,
					function(i){
						imgObj
							.attr(p.att[i], $j(p.sel[i],obj).text());
						}
					)
				w
					.append(imgObj)
					.hide();
				viewer.append(w);
				t = 1000;
				}
			else t = 1;
			break;
		case "video"||"ooyala":
			
			/*
			$j.each(p.set,
				function(i){
					p.params[i] = $j(String(this),obj).text();
					}
				)
			hParams.playerObj = flashembed($j(".videoWrap",viewer).attr("id"), p.playerPath, p.params);
			p.params['embedCode'] = $j('embedCode',obj).text();*/
			
			/* delay allows ooyala api to callback and set player object */
				
				$j(obj).pollPlayer();
			
			/*.html(
				$j('<script></script>')
					.attr("src",p.playerPath+"?"+$j.param(p.params))
				);*/
			t = 5;
			break;
	
		case "youtube":
			var tid = $j(".videoWrap",viewer).attr("id");
			var str = $j(".guid",obj).text();	
			str = 	p.ytPath + 
					str.slice(str.lastIndexOf( ":" ) + 1)
						.replace(" ","") + 
						"?" + 
						$j.param(p.ytParams);
			hParams.playerObj = flashembed(tid, {src:str, bgcolor:"#2c3645"});
			t =1;
			break;
		}
	return t;
	}
$j.fn.pollPlayer = function (){ 
	

//  	 if(hParams.playerObj != null && hParams.playerObj != "null" )
//  	 {
//		hParams.playerObj.setQueryStringParameters({embedCode: $j('.embedCode',this).text()});
	
		//var loaded = false; 
		//if( loaded == false ) {
  	 		if(hParams.playerObj != null && hParams.playerObj != "null" && 
  	 				typeof playerStates[hParams.playerObj.id] != 'undefined' &&
  	 				playerStates[hParams.playerObj.id] != undefined &&
  	 				playerStates[hParams.playerObj.id] != null) {

  	 			brightcove.getPlayer(hParams.playerObj.id).getModule(APIModules.VIDEO_PLAYER).loadVideo($j('.embedCode',this).text());
  	 			
  	 		} else {
  	 			var obj= this;
  	 			setTimeout(function(){$j(obj).pollPlayer();}, 1000);
  	 		}
//		}
//  	 
//  	else{
//  		var obj= this;
//		setTimeout(
//			function(){
//				$j(obj).pollPlayer();
//			},	
//			1000
//		)
//		}
}
$j.fn.scopeTip = function (a){

	if(a)
		$j(this)
			.parent(".scope")
			.addClass("active")
			.append("<img class='tip' src='/images/tooltip_"+$j(this).attr("class")+".gif' />");
				
	else
		$j(this)
			.parent(".scope")
			.removeClass("active")
			.children(".tip")
			.remove();
			
	
}

$j.fn.initList = function (){
	$j(".scope a")
		.unbind()
		.hover(
			function(){
				$j(this).scopeTip(1)
				},
			function(){
				$j(this).scopeTip(0)
				}
			);
	$j(".linkArticle a")
		.unbind()
		.click(
			function(){
				$j(this).loadArticle();
				return false;
			}
		);
	$j("#wrapper.list #articleBlock .paging li:not(.back) a")
		.unbind()
		.click(
			function(){
				$j(this).loadMain();
				return false;
			}
		);
	$j("#wrapper.news.article #articleBlock .paging li:not(.back) a")
		.unbind()
		.click(
			function(){
				$j(this).loadArticle();
				return false;
			}
		);
	$j("#articleList .paging li:not(.back) a")
		.unbind()
		.click(
			function(){
				$j(this).loadList();
				return false;
			}
		);
	$j().initStars();
}

$j.fn.mediaTabPaging = function(){
 	$j(".paging a").live("click", function(e){
 		e.preventDefault();
 		var href = $j(this).attr("href");
 		$j().loadList(href, $j("#mediaLinks"));
 		// 	alert(href);
 		// 	$j("#mediaLinks").fadeOut("fast").load(href, "",function(){$j("#mediaLinks").fadeIn("fast")});
 		return false;
 	})
 }

$j.fn.initSocial =  function(){
	$j().loadComments();
	$j().initStars();

	$j("#postComment").click(
		function(){
			$j(".commentForm").fadeIn("fast");
			return false;
			}
		)
	$j("#closeComment").click(
		function(){
			$j(".commentForm").fadeOut("fast",function(){
				$j("#commentText").val(""); // clear comment box
				$j("#commentText").hint(); // apply comment box user hint
				});
			return false;
			}
		)	
	$j('#shareThis a').click(function(e){
		e.preventDefault();
   	 	var myUrl = $j(this).attr("href"); //get the clicked flag's href tags()   		
   		$j('#shareThis a').nyroModalManual({
   			url: myUrl,	
			showContent: function(elts, settings, callback) {
					elts.contentWrapper
						.css({
							width: settings.width+'px',
							height: settings.height+'px',
							marginTop: settings.marginTop+'px',
							marginLeft: settings.marginLeft+'px'
						})
						.fadeIn("slow");
						elts.loading.fadeOut(200, callback);
				},
			hideContent: function(elts, settings, callback) {
					elts.contentWrapper.fadeOut("slow");
					callback();
				},
			endShowContent: function(){
					$j("#addthis-share").unbind().click(function(e){e.preventDefault()});

					$j('div#shareContentBody a#sendEmail')
						.unbind()
						.click(
						function(e){	
							e.preventDefault();	
							$j("img", this).css('display', 'block');
							var thumbUrl = ($j("input#thumbUrl").is('#thumbUrl'))? $j("input#thumbUrl").val() :"";
							var q = 'toEmail=' + $j("input#toEmail").val() + '&assetUrl=' + $j("input#assetUrl").val()+ '&thumbUrl='+ thumbUrl;					
							$j.ajax({
								type: "GET",
								url: 'send-email',
								data: q, 
								success: function(msg){
								$j("#toEmail").val(
								
								(msg!="Parameter(s) missed")? "Email Sent" : "Fail! Please verify the email and try again."

								);
								
								$j("div#shareContentBody a#sendEmail img").fadeOut("fast");
								},
								error:function(XMLHttpRequest,status,error){
									alert("There was a problem...");
									$j("div#shareContentBody a#sendEmail img").fadeOut("fast");
								}
							});
							
						}
					)
				},
			showLoading: false,
	        wrap: {
	            div: '<div class="shareWrap"></div>'
	        },
			css: {
			    wrapper: {
			      position: 'absolute',
			      top: '50%',
			      left: '50%',
				  border: 'none',
				  background: 'transparent'
			    },
			    content: {
					margin: "0 0 0 0"
			    }
			  }
		  })
	
		return false;		
		}
	)	
	$j('#tweetThis a').click(function(e){
			e.preventDefault();
			$j("img", this).css('display', 'block');
			var itemUrl =$j(this).attr('rel');	
			var shortUrl = parseBitlyResponse.shorten(itemUrl, 'parseBitlyResponse.response')			
		}
	)	
	
	
	$j("#showEmbed").click(function(){
		$j("#embedContent").show();
		return false;
		})
	$j("#closeEmbed").click(
		function(){
			$j("#embedContent").fadeOut("fast");
			return false;
			}
		)
	$j("#commentSubmit").click(
		function() {
			var txt = $j("#commentText").val();
			txt = txt.replace(/\n/g, "{nl}");
			if(txt === $j("#commentText").attr("title")) return false; // Broken in IE7
			$j("#commentSubmit span").html("Wait&hellip;");
			$j('.commentForm').block({ message: null });
			var href = $j("#commentSubmit").attr("href");
			$j.ajax({
				type: "GET",
				url: href,
				data: "comment="+txt+"&workflow=AddCommentWorkflow",
				success: function(msg){
					$j().loadComments(); // load comments
					$j('.commentForm').unblock({ message: null });
					$j("#commentSubmit span").html("Submit");
				},
				error:function(XMLHttpRequest,status,error){
					alert("There was a problem...");
				}
			});
			return false;
		}
	)
}




var parseBitlyResponse = {
	shorten : function(url) {
	BitlyClient.shorten(url, 'parseBitlyResponse.response');
	},
	response : function(data) {
		var bitly_link = null;
		for (var r in data.results) {
			bitly_link = data.results[r]['shortUrl']; 
			break;
		}
	$j().loadTwitterOverlay(bitly_link);
	}
}


$j.fn.loadTwitterOverlay = function(shortUrl){
	var handle = $j("input#handle").val();
	var title = $j("#itemTitle").text();
	var tweetMsg = "RT @"+handle+" "+title+" "+shortUrl;
	var myUrl = '/component?name=twitter';
	$j('#tweetThis a img').fadeOut('slow');	
	$j.nyroModalManual({
			url: myUrl,	
			showContent: function(elts, settings, callback) {
				elts.contentWrapper
					.css({
						width: settings.width+'px',
						height: settings.height+'px',
						marginTop: settings.marginTop+'px',
						marginLeft: settings.marginLeft+'px'
					})
					.fadeIn("slow");
					elts.loading.fadeOut(200, callback);						
				},
			hideContent: function(elts, settings, callback) {
					elts.contentWrapper.fadeOut("slow");
					callback();
				},
			endShowContent: function(){
					$j("#tweetText").val(tweetMsg);
					$j("#twitterPost").submit(function(event) {
							   $j('div#shareContentBody a#sendTweet').trigger("click");
							    event.preventDefault();
							    return false;
							});
					$j('div#shareContentBody a#sendTweet')
						.unbind()
						.click(
						function(e){	
							e.preventDefault();	
							$j(window).unbind();

							var q = $j("#twitterPost").serialize();	
											
							$j.ajax({
								type: "GET",
								url: 'twitter/twitter!postTweet',
								data: q, 
								success: function(msg){
									$j("#twitterStatus").text(
										(msg.indexOf("ERROR")==-1)? "Your tweet has been posted" : "There was a problem, your tweet has not been posted."
									).show();
								},
								error:function(XMLHttpRequest,status,error){
									alert("There was a problem...");
								}
							});
							
						}
					)
				},
			showLoading: false,
			wrap: {
			ajax: '<div class="shareWrap"></div>'

	        },
			css: {
			    wrapper: {
			      position: 'absolute',
			      top: '50%',
			      left: '50%',
				  border: 'none',
				  background: 'transparent'
			    },
			    content: {
					margin: "0 0 0 0"
			    }
			  }
		  })

	
}

$j.fn.sendEmail=function(){
	$j("#shareContentBody")
		.load($j(this).attr("action"), $j(this).serialize(),
			function(){
			}
		)
	return false;
}
	
var starX = 13;
$j.fn.initStars = function(){
	
	$j(".starRating")
		.unbind()
		.each(function(){
			var score = $j("a.stars",this).text();
			if(pgParam.loggedIn)
				$j(this)
					.mousemove(
						function(e){
							$j().starMv($j(this), e)
						}
					)
					.click(
						function(e){
							$j(this).starClk(e);
							return false;
						}
					)
					.mouseleave(
						function(){
							$j("a.stars",this).width(starX *  Math.abs($j("a.stars",this).text()));
						}
					);
			$j("a.stars",this).width(starX * Math.abs(score));
			$j(this).attr('title',"Current score "+score+" stars");
		});
	}	

 $j.fn.starMv = function(obj,e){
	if(pgParam.loggedIn){
		var position = obj.position();
		var offset = obj.offset();
		var x = e.pageX - (offset.left);
		$j("a.stars",obj).width(Math.round((x+6)/starX) *starX);
		}
	}
  $j.fn.starClk = function(e){
  	var obj = this;
  	if($j("a",obj).hasClass("login")) {
  		$j("a.login",obj).click();
  		}
	if($j("a.stars",obj).hasClass("ranked") ) return;
	if(pgParam.loggedIn){
		var position = obj.position();
		var offset = obj.offset();
		var x = e.pageX - (offset.left);

		var score = ( (Math.round( (x+6)/starX)  > 5 )? 5 : Math.round((x+6)/starX));
		$j(this).attr("title","You rated "+ score);

		$j.ajax({
			url: $j('a.stars',this).attr('href')+"&"+$j('a.stars',this).attr('rel')+"="+score*2,  
			success: function(r){
			
			$j("a.stars[href='" + $j("a.stars",obj).attr('href') + "']'")
					.text(+Math.round((r/2)*10)/10)
					.addClass("ranked")
					.width(starX * (r/2));
				}
			});		
		}
	else return;
	}	
	
$j.fn.loadComments = function(){
	$j("#commentText").val(""); // clear comment box
	$j("#commentText").hint(); // apply comment box user hint
	$j("#comments .comments").load($j("#commentSubmit").attr("href"), 
		"workflow=GetCommentsForAssetIdWorkflow",
			function(){
				$j('.flag').click(function(e){
					e.preventDefault();
					var link =$j(this);
					$j.get($j(this).attr("href"),
						function(){
							link.fadeOut("medium");
							}
						)
					}
				)
			}
		);
	$j("#comments .discussion h3").load($j("#countUrl").val(), 
		"assetId=http%3A//ea.com/" + $j("#assetId").val() + "&workflow=GetCommentsForAssetIdWorkflow"
		);
	}

/****** Ooyala API  **********/

function receiveOoyalaEvent(playerId, eventName, eventArgs) {
var ciecc,ttc,ecc,vc;

  switch(eventName) {
    case "playheadTimeChanged":
      onPlayheadTimeChanged(eventArgs);
      break;
    case "stateChanged":
      onStateChanged(eventArgs);
      break;
    case "currentItemEmbedCodeChanged":
      onCurrentItemEmbedCodeChanged(eventArgs);
      ciecc=eventArgs;
      break;
    case "totalTimeChanged":
      onTotalTimeChanged(eventArgs);
      ttc=eventArgs;
      break;
    case "embedCodeChanged":
      onEmbedCodeChanged(eventArgs);
      ecc=eventArgs;
      break;
    case "volumeChanged":
      onVolumeChanged(eventArgs);
      break;
    case "apiReady": 
    $j().setPlayerObj();
      //note: apiReady event has no eventArgs (3rd call-back parameter)
      onCurrentItemEmbedCodeChanged(ciecc);
      onTotalTimeChanged(ttc);
      onEmbedCodeChanged(ecc);
      break;
  }
}
$j.fn.setPlayerObj = function(){
	hParams.playerObj = document.getElementById('videoObj');
}






function onEmbedCodeChanged(eventArgs) {
/*  document.getElementById("embedCode").innerHTML =
    eventArgs.embedCode + " == " + document.getElementById("player").getEmbedCode();
  document.getElementById("title").innerHTML = eventArgs.title + " == " + 
    document.getElementById('player').getTitle();*/
}

function onCurrentItemEmbedCodeChanged(eventArgs) {
 /* document.getElementById("currentItemEmbedCode").innerHTML = eventArgs.embedCode +" == " + document.getElementById("player").getCurrentItemEmbedCode();
  document.getElementById("currentItemTitle").innerHTML = eventArgs.title +" == " + document.getElementById("player").getCurrentItemTitle();
*/}

function onTotalTimeChanged(eventArgs) {/*
  document.getElementById("totalTime").innerHTML =
    eventArgs.totalTime + " == " + document.getElementById("player").getTotalTime();
*/}

function onPlayheadTimeChanged(eventArgs) {/*
  document.getElementById("playheadTime").innerHTML =
    eventArgs.playheadTime + " == "+document.getElementById("player").getPlayheadTime();
/*}

function onVolumeChanged(eventArgs) {/*
  document.getElementById("volume").innerHTML =
    eventArgs.volume + " == " + document.getElementById("player").getVolume();
*/}
function onStateChanged(eventArgs) {

/*
  document.getElementById("state").innerHTML =
    eventArgs.state + " == " + document.getElementById("player").getState();
*/}

/****** Disable links  **********/

function disableLink(e) {
    // cancels the event
    e.preventDefault();
    return false;
}
