/* File: js/play_courseselect.js, Ratio: 28.2% */

var xmlCourseData;var xmlCourseMasteryData;var xmlCourseEntitlementData;var editCourseFormInitalValues=[];var editingCourseSettings=false;var isCourseDataLoaded=false;var isCourseMasteryDataLoaded=false;var isCourseEntitlementsLoaded=false;var isSubscriptionLoaded=false;var hasSubscription=false;var isCourseMembersOnly=false;var courseIdSelected;var storedCookieString="";var listType="image";var isScrolling=false;var NEW_COURSE_ID=-1;function pageReadyUser()
{popNewLevel();setupSingleOrMultiplayer();loadCourseMastery();loadCourseEntitlements();loadSubscriptionSettings();$('#control_type_select').bind('change',function()
{updateTrueswingVisibility();});updateTrueswingVisibility();var tooltip=$("#courseTooltip");$("#courseTooltip").remove();$("body").append(tooltip);tooltip=$("#courseTooltipLabel");$("#courseTooltipLabel").remove();$("body").append(tooltip);$('#readonly_settings a.edit').bind('click',editCourseSettings);$('#edit_settings_form a.discard').bind('click',discardCourseSettingsChanges);$('#edit_settings_form a.save').bind('click',saveCourseSettings);$('#courses_list_buttons a.images_list').bind('click',showCoursesImagesList);$('#courses_list_buttons a.text_list').bind('click',showCoursesTextList);$("#handicap_select").attr('disabled',multiplayerGameType>MULTIPLAYER_GAME_TYPE_TURN_BASED);$('#multiplayer_game_type_select').change(function(){if($("#multiplayer_game_type_select option:selected").val()>MULTIPLAYER_GAME_TYPE_TURN_BASED)
{$("#handicap_select option:eq(1)").attr("selected","selected");$("#handicap_select").attr('disabled',true);}
else
{$("#handicap_select").attr('disabled',false);}});$('#multiplayer_game_type_select option:eq('+multiplayerGameType+')').attr("selected","selected");$('#teeOption option:eq('+defaultTee+')').attr("selected","selected");$('#pinOption option:eq('+defaultPin+')').attr("selected","selected");updateCourseMultiplier();saveCourseSettings();};function setupSingleOrMultiplayer()
{if(type=="multiplayer")
{$("#edit_settings_form .type_singleplayer").hide();$("#shot_clock_select option:eq(2)").attr("selected","selected");$("#handicap_select option:eq(1)").attr("selected","selected");}
else
{$("#edit_settings_form .type_multiplayer").hide();}}
function updateTrueswingVisibility()
{if($('#control_type_select').val()=="2"){$('#trueswing_putting_meter_select').attr('disabled',true);$('#trueswing_putting_meter_select option').attr("selected","");$('#trueswing_putting_meter_select option:last').attr("selected","selected");}else{$('#trueswing_putting_meter_select').attr('disabled',false);}}
function loadCourseMastery()
{callGetWS(true,'/courses_service/coursemastery/'+personaId.toString(),WSRequestTimeout,null,function(xml,textStatus)
{if($("errorName",xml).length==0)
{xmlCourseMasteryData=xml;isCourseMasteryDataLoaded=true;displayCourses();}
else
{$("#profileError").text("There was an error loading this player\'s objectives, please try again later.");$("#profileError").slideDown();}},function(XMLHttpRequest,textStatus)
{$("#profileError").text("There was an error loading this player\'s objectives, please try again later.");$("#profileError").slideDown();},null);}
function loadCourseEntitlements(){callGetWS(false,"/nucleus/entitlements/TigerWoodsOnlineCourses",WSRequestTimeout,null,function(data,TextStatus){xmlCourseEntitlementData=data;isCourseEntitlementsLoaded=true;displayCourses();},function(XMLHttpRequest,textStatus)
{$("#profileError").text("There was an error loading this player\'s entitlements, please try again later.");$("#profileError").slideDown();},null);}
function loadSubscriptionSettings()
{updateSubscriptionCookie(updateSubscriptionInfo,failedToLoadSubscription);}
function updateSubscriptionInfo(cookieString)
{isSubscriptionLoaded=true;storedCookieString=cookieString;hasSubscription=isSubscriber(storedCookieString);if(!hasSubscription)
{$("#holeOption option:not(:first)").remove();}
displayCourses();}
function failedToLoadSubscription()
{$("#error_message").text("Your subscription information could not be loaded, try again.");}
function renderPageCourses(xml)
{xmlCourseData=xml;isCourseDataLoaded=true;displayCourses();}
function renderPageActiveGameData()
{if($("getactivegames activegames activegame gameid",myPlayerCardXML).length!=0)
{document.location='/play/resumeGame/'+$("getactivegames activegames activegame gameid",myPlayerCardXML).text();}}
function displayCourses()
{if(isCourseDataLoaded&&isCourseMasteryDataLoaded&&isCourseEntitlementsLoaded&&isSubscriptionLoaded)
{$("#courseIconList").empty();$("#courses_text_list").empty();if($("errorName",xmlCourseData).length==0)
{var currentColumn=0;var currentRow=0;$("#courses_text_list").append("<table><tr/></table>");var totalCourses=$("getcourses courses course",xmlCourseData).length;var totalMulti=Math.ceil(totalCourses/10);var extrasToCreate=(10*totalMulti)-totalCourses;$("getcourses courses course",xmlCourseData).each(function(){var courseId=$("courseid",this).text();var coursename=$("coursename",this).text();var courselocation=$("location",this).text();var webimage=$("webimage",this).text();var desc=$("description",this).text();var price=$("price",this).text();var isFree=$("isfree",this).text()=="1"?true:false;var isNew=courseId==NEW_COURSE_ID?true:false;var productId=$("productId",this).text();var courseEntitlementName="course_"+$("abbreviation",this).text();var isMembersOnly=parseInt($("availability",this).text())==COURSE_AVAILABILITY_MEMBERS_ONLY?true:false;var isReserved=false;if(!hasSubscription)
{$("entitlements entitlement",xmlCourseEntitlementData).each(function(){if($("entitlementTag",this).text()==courseEntitlementName&&$("status",this).text()=="ACTIVE")
{isReserved=true;}});}
var imageExtraDataTag="";if(isFree&&isNew)
imageExtraDataTag="_new";else if(isFree)
imageExtraDataTag="_free";else if(isNew)
imageExtraDataTag="_new";var newIconHtml="<div>";newIconHtml+=' <div class="icon"><img src="/swappables/courseweb/'+webimage+'/course_select_icon'+imageExtraDataTag+'.png" alt=""/></div>';newIconHtml+=' <span class="info">';newIconHtml+='  <p class="id">'+courseId+'</p>';newIconHtml+='  <p class="count">0</p>';newIconHtml+='  <p class="free">'+isFree+'</p>';newIconHtml+='  <p class="new">'+isNew+'</p>';newIconHtml+='  <p class="name">'+coursename+'</p>';newIconHtml+='  <p class="loc">'+courselocation+'</p>';newIconHtml+='  <p class="price">'+price+'</p>';newIconHtml+='  <p class="reserved">'+isReserved+'</p>';newIconHtml+='  <p class="webimage">'+webimage+'</p>';newIconHtml+='  <p class="membersonly">'+isMembersOnly+'</p>';newIconHtml+=' </span>';newIconHtml+="</div>";$("#courseIconList").append(newIconHtml);if(currentRow==0)
{$("#courses_text_list table tr").append("<td><ul/></td>");}
$("#courses_text_list table tr td:eq("+currentColumn+")").find("ul").append('<li><span><a class="id_'+courseId+'">'+coursename+'</sup></a></span></li>');if(currentColumn<4)
{currentColumn++;}
else
{currentColumn=0;currentRow++;}});for(var i=0;i<extrasToCreate;i++)
{var newIconHtml="<div>";newIconHtml+=' <span class="icon_blank"><img src="/img/courseicons/blanktile.png" alt=""/></span>';newIconHtml+="</div>";$("#courseIconList").append(newIconHtml);}}
else
{$('#CoursesError').html("Could not retrieve courses.  Please try again later.");$("#CoursesError").slideDown();}
appendCourseInfoToTextList();$('#courses_image_list div.scrollable').scrollable({size:10,clickable:false,onBeforeSeek:function(e){$('#courseTooltip').hide();$('#courseTooltipLabel').hide();isScrolling=true;},onSeek:function(e){isScrolling=false;$('#courses_paging_nav .counts').text("Page "+(scrollableApi.getPageIndex()+1)+" of "+scrollableApi.getPageAmount());}}).circular().navigator().autoscroll({interval:1000000,steps:10});var scrollableApi=$('#courses_image_list div.scrollable').scrollable({api:true});$('#courses_image_list div.scrollable .items > div > .icon').bind('mousemove',mouseEnterCourseIcon);$('#courses_image_list div.scrollable .items > div > .icon').bind('mouseleave',mouseLeaveCourseIcon);$('#courses_image_list div.scrollable .items > div > .icon').bind('click',updateSelected);$('#courses_text_list span').bind('click',updateSelected);$('#courses_text_list span').hover(function(){if(!isScrolling){var info=$(this).find('.info');showCourseTooltip($(this),"/swappables/courseweb/"+info.find('.webimage').text()+"/course_select_small.jpg",info.find('.name').text(),info.find('.loc').text());}},function(){hideCourseTooltip();});$('#courses_paging_nav .counts').text("Page "+(scrollableApi.getPageIndex()+1)+" of "+scrollableApi.getPageAmount());$('#courses_paging_nav .totalCounts').text(totalCourses+" Courses");updateHoleColorSwatch();$("#courseIconList div").each(function(){if(!$(this).hasClass("cloned")&&$(".info",this).length>0)
{if(parseInt($(".info .id",this).text())==defaultCourseId)
{$('.icon',this).click();$('.icon img',this).click().css('top','-112px');return false;}}});$("#buttonNextStep").removeClass("grey_action").addClass("red_action");$("#buttonNextStep").unbind();$("#buttonNextStep").click(function(){onNextStep();});$("#courseSelectLoading").fadeOut(1000);}}
function appendCourseInfoToTextList()
{var textList=$('#courses_text_list');$('#courses_image_list div.scrollable .items > div:not(.cloned)').each(function(){var info=$(this).find('.info');var node=textList.find('li a.id_'+info.find('.id').text());node.append(info.clone());});}
function mouseEnterCourseIcon(e)
{if(!isScrolling){if($(this).parent().find('.info').length>0){var image=$(this).find('img');if(!image.hasClass('hovered')){var current=$(this).hasClass('current');var container=image.parent().parent();var topTo=current?'-123px':0;var offsetVariance=current?200:75;var imageOffset=image.offset();if(e.pageY>imageOffset.top&&e.pageY<(imageOffset.top+offsetVariance)){image.addClass('hovered');image.animate({top:topTo},350);var info=container.find('.info');showCourseTooltip(image.parent(),"/swappables/courseweb/"+info.find('.webimage').text()+"/course_select_small.jpg",info.find('.name').text(),info.find('.loc').text());}}}}}
function mouseLeaveCourseIcon(e)
{if($(this).parent().find('.info').length>0)
{var image=$(this).find('img');if(image.hasClass('hovered')){var current=$(this).hasClass('current');var container=image.parent().parent();var props={width:'100%',left:0};if(current){props['top']='-112px';}else{props['top']=10;}
image.stop(true,true);image.animate(props,50,'easeOutCirc',function(){image.removeClass('hovered');});hideCourseTooltip();}}}
function showCourseTooltip(hovered,photo,title,location)
{var tooltip=$('#courseTooltip');var tooltipLabel=$('#courseTooltipLabel');var offset=hovered.offset();var tipLeft=offset.left-((tooltip.width()/2)-(hovered.width()/2));var tipTop=offset.top-tooltip.height()+2;var tipTopLabel=offset.top+hovered.height()-10;tooltip.find('.photo').attr('src',photo);tooltip.find('label').text(title);tooltip.stop(true,true);if(tipLeft<0)tipLeft=0;tooltip.css('top',tipTop);tooltip.css('left',tipLeft);if(listType=="image"){tooltipLabel.html('<h1 class="course_title">'+title+'</h1></h3 class="course_location">'+location+'</h3>');tooltipLabel.css('top',tipTopLabel);tooltipLabel.css('left',tipLeft);}
else
{tooltipLabel.html('');}
if($.browser.msie){tooltip.show();}else{tooltip.animate({opacity:1},300).animate({top:'-=15',opacity:'show'},500,'easeOutCirc');}
tooltipLabel.show();}
function hideCourseTooltip()
{var tooltip=$('#courseTooltip');tooltip.stop(true,true);if($.browser.msie){tooltip.hide();}else{tooltip.animate({opacity:'hide'},{duration:100,queue:false},'easeOutCirc');}
$("#courseTooltipLabel").hide();}
function updateSelected(e)
{if($(this).parent().find('.info').length>0)
{if(editingCourseSettings){discardCourseSettingsChanges();}
var icon=$(this);var photosHolder=$('#course_selection .photos');var bar=$('#course_selection .info_bar');var container=icon.parent();var info=container.find('.info');var proposedCourseId=parseInt(info.find('.id').text());var price=parseInt(info.find('.price').text());var webimagename=info.find('.webimage').text();var isReserved=info.find('.reserved').text()=="true"?true:false;var isCourseFree=false;isCourseMembersOnly=info.find('.membersonly').text()=="true"?true:false;if(proposedCourseId!=courseIdSelected)
{courseIdSelected=proposedCourseId;isCourseFree=info.find('.free').text()=="true"?true:false;$('#courses_image_list div.scrollable .items .icon.current img').css('top','10px');$('#courses_image_list div.scrollable .items .icon.current').removeClass('current');icon.addClass('current');$('#courses_image_list div.scrollable .items .icon img[src="'+icon.find('img').attr('src')+'"]').parent().addClass('current');$('#courses_image_list div.scrollable .items .icon.current img').css('top','-124px');icon.find('img').css('top','-123px');var courseName=info.find('.name').text();bar.find('img').attr('src',"/swappables/courseweb/"+info.find('.webimage').text()+"/course_select_icon.png");bar.find('h1').text(courseName);bar.find('h2').text(info.find('.loc').text());if(hasSubscription||isCourseMembersOnly)
{$("#panelPrice .value").text("Open to Members");$("#panelPrice .points").hide();$("#panelPrice").removeClass("greens_fees").addClass("greens_fees_nologo");}
else if(isCourseFree)
{$("#panelPrice .value").text("Open");$("#panelPrice .points").hide();$("#panelPrice").removeClass("greens_fees").addClass("greens_fees_nologo");}
else if(isReserved)
{$("#panelPrice .value").text("Round Purchased");$("#panelPrice .points").hide();$("#panelPrice").removeClass("greens_fees").addClass("greens_fees_nologo");}
else
{$("#panelPrice .value").text(price);$("#panelPrice .points").show();$("#panelPrice").removeClass("greens_fees_nologo").addClass("greens_fees");}
var stepsBarCourseName=$('#stepsCourseName');stepsBarCourseName.hide();stepsBarCourseName.text(courseName);stepsBarCourseName.fadeIn(500);photosHolder.find('img:not(:last)').remove();photosHolder.append('<img src="/swappables/courseweb/'+info.find('.webimage').text()+'/course_select_large.jpg" alt="" style="display:none" />');photosHolder.find('img:last').fadeIn();container.stop(true,true);updateCourseMastery(webimagename);}}}
function updateCourseMastery(webimagename)
{$(xmlCourseMasteryData).find('coursemasterydata').each(function(){if(parseInt($(this).find('courseid').text())===courseIdSelected){var intCompleted=$(this).find('numcompletedobjectives').text();var intTotal=$(this).find('numgoalobjectives').text();var pctComplete=Math.floor(percentage(intCompleted,$(this).find('numgoalobjectives').text()));var masteryPath="/img/mastery/"+webimagename+"_";$('#course_selection .mastery span').html(pctComplete);$('.bar_container > .inner_bar').css({width:pctComplete+'%'});if(pctComplete<16){masteryPath+="guest.png";$('#course_selection .mastery .status').text("Guest");}
else if(pctComplete>=16&&pctComplete<40){masteryPath+="member.png";$('#course_selection .mastery .status').text("Member");}
else if(pctComplete>=40&&pctComplete<68){masteryPath+="pro.png";$('#course_selection .mastery .status').text("Pro");}
else if(pctComplete>=68&&pctComplete<100){masteryPath+="champion.png";$('#course_selection .mastery .status').text("Champion");}
else if(pctComplete>=100){masteryPath+="legend.png";$('#course_selection .mastery .status').text("Legend");}
$("#masteryTag").attr("src",masteryPath);}});}
function editCourseSettings(e)
{editingCourseSettings=true;$("#buttonNextStep").addClass("grey_action").removeClass("red_action");editCourseFormInitalValues=$('#edit_settings_form form').serializeArray();$('#edit_settings_form').animate({top:0},300,'easeOutCirc');}
function discardCourseSettingsChanges(e)
{editingCourseSettings=false;$("#buttonNextStep").removeClass("grey_action").addClass("red_action");var form=$('#edit_settings_form form');var len=editCourseFormInitalValues.length;for(var i=0;i<len;i++){form.find('*[name='+editCourseFormInitalValues[i].name+']').val(editCourseFormInitalValues[i].value);}
editCourseFormInitalValues=[];updateTrueswingVisibility();updateCourseMultiplier();closeCourseSettingsEditForm();}
function saveCourseSettings(e)
{editingCourseSettings=false;$("#buttonNextStep").removeClass("grey_action").addClass("red_action");var readOnly=$('#readonly_settings');readOnly.find('.hole > span').text($('#holeOption option:selected').text());readOnly.find('.pin > span').text($('#pinOption option:selected').text());readOnly.find('.wind > span').text($('#windOption option:selected').text());readOnly.find('.green_speed > span').text($('#gSpeedOption option:selected').text());readOnly.find('.green_hardness > span').text($('#gHardOption option:selected').text());readOnly.find('.fairway_speed > span').text($('#fairwayOption option:selected').text());readOnly.find('.rough_length > span').text($('#roughOption option:selected').text());updateHoleColorSwatch();$('#labelMultiplier .value').text($("#course_options_multiplier > .value").text());closeCourseSettingsEditForm();}
function closeCourseSettingsEditForm()
{$('#edit_settings_form').animate({top:298},300,'easeInCirc');}
function showCoursesImagesList(e)
{listType="image";$(this).addClass('current');$('#courses_list_buttons a.text_list').removeClass('current');hideCourseTooltip();$('#courses_text_list').fadeOut('fast',function(){$('#courses_image_list').fadeIn('slow');});}
function showCoursesTextList(e)
{listType="text";$(this).addClass('current');$('#courses_list_buttons a.images_list').removeClass('current');hideCourseTooltip();$('#courses_image_list').fadeOut('fast',function(){$('#courses_text_list').fadeIn('slow');});}
function updateHoleColorSwatch()
{var colorIdx=$('#teeOption option:selected').attr('value');var teeColor="";switch(colorIdx)
{case"0":teeColor="#b9b314";break;case"1":teeColor="#fff";break;case"2":teeColor="#063970";break;case"3":teeColor="#000";break;default:teeColor="#b9b314";break;}
$('#readonly_settings .tee .color').css('backgroundColor',teeColor);$('#readonly_settings .tee .color_text').text($('#teeOption option:selected').text());}
function updateCourseMultiplier()
{var multiplier=0.0;multiplier=multiplier+teeSetting[$('#teeOption').get(0).selectedIndex];multiplier=multiplier+pinSetting[$('#pinOption').get(0).selectedIndex];multiplier=multiplier+windSetting[$('#windOption').get(0).selectedIndex];multiplier=multiplier+gSpeedSetting[$('#gSpeedOption').get(0).selectedIndex];multiplier=multiplier+gHardSetting[$('#gHardOption').get(0).selectedIndex];multiplier=multiplier+fairwaySetting[$('#fairwayOption').get(0).selectedIndex];multiplier=multiplier+roughSetting[$('#roughOption').get(0).selectedIndex];$("#course_options_multiplier > .value").text((multiplier/1000).toString()+"x");}
function grabCourseSettings()
{var holeOption=$("#holeOption option:selected").val();var teeOption=$("#teeOption option:selected").val();var pinOption=$("#pinOption option:selected").val();var windOption=$("#windOption option:selected").val();var greenSOption=$("#gSpeedOption option:selected").val();var greenHOption=$("#gHardOption option:selected").val();var fairwayOption=$("#fairwayOption option:selected").val();var roughOption=$("#roughOption option:selected").val();if(type=='singleplayer')
{return"/play/gamecreate/"+courseIdSelected+"/"+type+"/"+teeOption+"/"+pinOption+"/"+windOption+"/"+greenSOption+"/"+
greenHOption+"/"+fairwayOption+"/"+roughOption+"/"+holeOption+"/";}
else
{var shotClock=$("#shot_clock_select option:selected").val();var controlType=$("#control_type_select option:selected").val();var trueSwing=$("#trueswing_putting_meter_select option:selected").val();var puttingGrid=$("#putting_grid_select option:selected").val();var puttPreview=$("#putt_preview_select option:selected").val();var handicap=$("#handicap_select option:selected").val();var mpGameType=$("#multiplayer_game_type_select option:selected").val();return"/play/multiplayerGameReady?course="+courseIdSelected+"&tee="+teeOption+"&pin="+pinOption+"&fairway="+fairwayOption+"&green_speed="+greenSOption+"&green_hardness="+greenHOption+"&rough="+roughOption+"&wind="+windOption+"&select_holes="+holeOption+"&shot_clock="+shotClock+"&control_type="+controlType+"&trueswing_putting_meter="+trueSwing+"&putting_grid="+puttingGrid+"&putt_preview="+puttPreview+"&handicap="+handicap+"&multiplayer_game_type="+mpGameType;}}
function onNextStep()
{if(!editingCourseSettings)
{if(isCourseMembersOnly&&!hasSubscription)
{showMembersOnlyModal('This course');}
else
{nextUrl=grabCourseSettings();CRSE_PurchaseCourseIfNecessary(storedCookieString,xmlCourseData,xmlCourseEntitlementData,courseIdSelected,parseInt(playerCashBalance,10),function()
{document.location=nextUrl;});}}}
function percentage(num1,num2)
{if(num1<=0){return 0;}
return((num1/num2)*100);}
function doMemberCheck(url)
{if(isSubscriptionLoaded)
{if(hasSubscription)
{document.location=url;}
else
{showMembersOnlyModal();}}
else
{var subscriptionCookie=unescape(getCookie("TWOCookie[SUBSCRIPTION]"));updateSubscriptionInfo(subscriptionCookie);doMemberCheck(url);}}
