﻿Type.registerNamespace("GFMedia.Ponged.Recommendations");GFMedia.Ponged.Recommendations.updateFriendsTypeAheadResults=function GFMedia$Ponged$Recommendations$updateFriendsTypeAheadResults(recommendFormPath,keyCode){if((keyCode>=9&&keyCode<=45)&&keyCode!=32)return;var formJQ=$(recommendFormPath);var inputJQ=formJQ.find('.friend_field input');var inputText=inputJQ.val();var feedbackListJQ=formJQ.find('.friend_feedback ul');var errorJQ=formJQ.find('.friend_feedback span.error');errorJQ.hide().text('');if(inputText==""){feedbackListJQ.empty().hide().trigger('sizeChanged');return;}
GameFly.GFMedia.CasualGaming.Web.UI.Rpc.FriendsService.FindFriendNamesBeginningWith(inputText,function(results){feedbackListJQ.empty().show();if(results.AuthenticationFailure){errorJQ.html("Your session has timed out. Please go <a href='/?ReturnUrl="+encodeURIComponent(window.location)+"'>Sign In</a>.").css('display','block').trigger('sizeChanged');return;}
if(results.Value.length==0&&inputText!=""){errorJQ.text("No such friend found.").css('display','block');}
else{jQuery.each(results.Value,function(index,result){var resultJQ=$("<li>"+result+"<span onclick=\"GFMedia.Ponged.Recommendations.addFriendRecipient('"+result+"',$('"+recommendFormPath+"'))\">add</span></li>");feedbackListJQ.append(resultJQ);});}
feedbackListJQ.trigger('sizeChanged');});}
GFMedia.Ponged.Recommendations.addEmailRecipient=function GFMedia$Ponged$Recommendations$addEmailRecipient(recommendFormPath){var formJQ=$(recommendFormPath);var emailFieldJQ=formJQ.find('div.email_field');var emailAddressJQ=emailFieldJQ.find('input');var emailAddress=emailAddressJQ.val();if(emailAddress=="")return;if(!emailAddress.match('@')){if(emailFieldJQ.find('span.error').length==0){emailFieldJQ.append($("<span class='error'>Not a valid email address.</span>"))
formJQ.trigger('sizeChanged');}
return;}
var feedbackJQ=formJQ.find('.recipients_feedback');var stateJQ=formJQ.find('input[type=hidden]');if(!GFMedia.Ponged.Recommendations.addRawRecipient(emailAddress,formJQ))return;emailAddressJQ.val("");}
GFMedia.Ponged.Recommendations.addFriendRecipient=function GFMedia$Ponged$Recommendations$addFriendRecipient(recipient,formJQ){formJQ.find('.friend_feedback ul').empty().hide();formJQ.find('.friend_field input').val('').trigger('sizeChanged');GFMedia.Ponged.Recommendations.addRawRecipient(recipient,formJQ);}
GFMedia.Ponged.Recommendations.addRawRecipient=function GFMedia$Ponged$Recommendations$addRawRecipient(newRecipient,formJQ){newRecipient=newRecipient.split(',')[0].split("'")[0].split('"')[0].split('<')[0].split('>')[0];var stateJQ=formJQ.find('input[type=hidden]');var feedbackJQ=formJQ.find('.recipients_feedback');var state=stateJQ.val();var alreadyExists=false;var recipients=[];if(state!="")recipients=state.split(',');$.each(recipients,function(i,val){alreadyExists=alreadyExists||(val==newRecipient.toLowerCase());});if(alreadyExists)return false;var delim="";if(recipients.length>0)delim=",";stateJQ.val(state+delim+newRecipient.toLowerCase());var feedbackItemJQ=$("<span>"+delim+" <span>"+newRecipient+"</span><a href='javascript:void(0)' class='action' title='Remove this recipient' onclick=\"GFMedia.Ponged.Recommendations.removeRawRecipient($(this).parent(),$('"+formJQ.selector+"'))\">x</a></span>");feedbackItemJQ.data('d',newRecipient.toLowerCase());feedbackJQ.append(feedbackItemJQ);feedbackJQ.find('span.info').remove().end().trigger('sizeChanged');formJQ.find('a.submit_action').removeAttr('disabled').removeClass('disabled_action');return true;}
GFMedia.Ponged.Recommendations.removeRawRecipient=function GFMedia$Ponged$Recommendations$removeRawRecipient(feedbackItemJQ,formJQ){var stateJQ=formJQ.find('input[type=hidden]');var feedbackJQ=formJQ.find('.recipients_feedback');var searchPattern=new RegExp("(,?"+RegExp.escape(feedbackItemJQ.data('d'))+")");var newState=stateJQ.val().replace(searchPattern,"");newState=newState.replace(/^,/,'');stateJQ.val(newState);feedbackItemJQ.replaceWith("");var firstItemJQ=feedbackJQ.find('span:first');if(firstItemJQ.size()!=0){firstItemJQ.html(firstItemJQ.html().replace(/^,/,''));}
feedbackJQ.trigger('sizeChanged');if(newState==""){formJQ.find('a.submit_action').attr('disabled','disabled').addClass('disabled_action');}}
GFMedia.Ponged.Recommendations.initRecipientFeedback=function GFMedia$Ponged$Recommendations$initRecipientFeedback(formJQ){var stateJQ=formJQ.find('input[type=hidden]');var feedbackJQ=formJQ.find('.recipients_feedback');var recipients=stateJQ.val().split(',');stateJQ.val('');$.each(recipients,function(i,val){GFMedia.Ponged.Recommendations.addRawRecipient(val,formJQ);});}
RegExp.escape=function(text){if(!arguments.callee.sRE){var specials=['/','.','*','+','?','|','(',')','[',']','{','}','\\'];arguments.callee.sRE=new RegExp('(\\'+specials.join('|\\')+')','g');}
return text.replace(arguments.callee.sRE,'\\$1');}
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();