ITVM=window.ITVM||{};ITVM.ProgPlanner=(function($)
{var trackerObject;function getTracker()
{if(trackerObject===undefined&&typeof ITVM.Tracking!='undefined')
{trackerObject=ITVM.Tracking;}
return trackerObject;}
function setDaypartEnablement(channelListID,daypartListID)
{var channelList=document.getElementById(channelListID);var daypartList=document.getElementById(daypartListID);if(channelList.options[channelList.selectedIndex].text!='ITV1')
{daypartList.selectedIndex=0;daypartList.disabled=true;}
else
{daypartList.disabled=false;}}
function handleSendRequestError(type,userMessage)
{if(!userMessage)
{switch(type)
{case'InconsistentView':userMessage='The details on the page have become out of date. Please refresh the page, or contact us directly if that does not solve the problem.';break;case'CampaignExists':userMessage='A campaign for this month with the same name and client already exists. Please change them below.';break;default:}}
$('#request-error').text(userMessage);$('#request-error').show();}
function handleSearchProgrammes()
{var month=$('.info-panel.search .month').val();if(month==='')
{alert('Please select a month');return false;}
if(typeof ITVM.Tracking!='undefined')
{var T=ITVM.Tracking;if(T)
{T.track(T.contexts.PROG_PLANNER,T.actions.SEARCH,dateFormat(NETJOHNHENRY.Date.parse(month,'dd/mm/yyyy'),'mmm yyyy'));}}
return true;}
return{handleSendRequestError:handleSendRequestError,handleSearchProgrammes:handleSearchProgrammes,setDaypartEnablement:setDaypartEnablement};})(jQuery);ITVM.ProgPlanner.ResultGroup=(function($)
{var handlerActions={ADD_PROGRAMMES:'addprogrammestocampaign',CREATE_CAMPAIGN:'createcampaign',DELETE_CAMPAIGN:'deletecampaign',REMOVE_PROGRAMMES:'removeprogrammesfromcampaign',REORDER:'reorderprogrammes'};var dialogs={CREATE_NEW_CAMPAIGN:{customClasses:'buying d-add-to-new-basket',title:'New campaign',content:'<p>Please provide client and campaign names:</p><div class="basket-name"><label for="client_name">Client name:</label><input type="text" id="client_name" name="client_name" value="" /><label for="campaign_name">Campaign name:</label><input type="text" id="campaign_name" name="campaign_name" value="" /></div>',buttons:[{label:'Cancel',action:'close',placement:'left'},{label:'Create &amp; add programmes',action:'',placement:'right'}]},ADDED_TO_CAMPAIGN:{customClasses:'buying d-added-to-basket',title:'That\'s done',content:'<p>Added to:</p><div class="basket-name">[ ##campaign_text## ]</div>',buttons:[{label:'Close',action:'close',placement:'left'},{label:'Go to campaign overview',action:'',placement:'right'}]}};function toggleCheckboxRow(row)
{if($(row).find('input[type=checkbox]').attr('checked'))
{$(row).addClass('selected');}
else
{$(row).removeClass('selected');}}
function toggleBasket(basketTag)
{if($(basketTag).hasClass('selected'))
{$(basketTag).removeClass('selected');$(basketTag).next('dd').hide();}
else
{$(basketTag).addClass('selected');$(basketTag).next('dd').show();}}
function moveRowUp(e)
{moveRow(e,this,'up');e.preventDefault();}
function moveRowDown(e)
{moveRow(e,this,'down');e.preventDefault();}
function moveRow(e,node,dir)
{var row,campaignId,idList,programmeIds=[],groupClass;row=$(node).closest('tr').get(0);moveRowNode(row,dir);campaignId=$(row).closest('dd').find('.actionrow input.campaign-id').val();groupClass=$(row).attr('class').replace(/.*(channel_\d*).*/gi,'$1');$(row).parent().children('.group').find('input[type=checkbox]').each(function(i)
{programmeIds.push(this.value);});idList=programmeIds.join(',');var callback=function(data,status)
{if(!data.success)
{console.log(data);}};sendCommand({action:handlerActions.REORDER,campaign_id:campaignId,programme_ids:idList},callback);}
function moveRowNode(rowNode,dir)
{var first,second;var prevNode,nextNode;if(rowNode)
{switch(dir)
{case'up':first=rowNode;prevNode=$(rowNode).prev();if(prevNode.length)
{second=prevNode.get(0);if($(second).hasClass('channel')||$(second).children('th').length>0)
{second=null;}}
break;case'down':second=rowNode;nextNode=$(rowNode).next();if(nextNode.length)
{first=nextNode.get(0);if($(first).hasClass('channel'))
{first=null;}}
break;}
if(first&&second)
{if($(second).hasClass('first'))
{$(first).addClass('first');$(second).removeClass('first');}
if($(first).hasClass('last'))
{$(second).addClass('last');$(first).removeClass('last');}
$(first).insertBefore(second);}}}
function addToCampaign(e)
{var programmeIdString,programmeIds=[];$('#programme-planner .results input[type=checkbox]:checked').each(function(i)
{programmeIds.push(this.value);});programmeIdString=programmeIds.join(',');if(programmeIdString&&programmeIdString.length>0)
{var dlg,campaignOption=$(this).closest('.actionrow').find('.choosebasket select option:selected').get(0);var campaignId=campaignOption.value;switch(campaignId)
{case'':break;case'new':dlg=$.extend(true,{},dialogs.CREATE_NEW_CAMPAIGN);dlg.buttons[1].action=addNewCampaign;ITVM.UI.Dialog.show(dlg);break;default:addProgrammesToCampaign(campaignId,campaignOption.text);}}
e.preventDefault();}
function addNewCampaign()
{var clientName,campaignName,expirationDate,expirationDateParts,expirationText,transmissionMonth,campaignId;clientName=document.getElementById('client_name').value;campaignName=document.getElementById('campaign_name').value;expirationDateParts=$('#programme-planner .search .month').val().split('/');expirationDate=new Date(parseInt(expirationDateParts[2],10),parseInt(expirationDateParts[1],10)-1,parseInt(expirationDateParts[0],10));expirationDate.setMonth(expirationDate.getMonth()+1);expirationDate.setDate(0);expirationText=expirationDate.getDate()+'/'+(expirationDate.getMonth()+1)+'/'+expirationDate.getFullYear();transmissionMonth=dateFormat(expirationDate,'mmm yyyy');if(clientName!==''&&campaignName!=='')
{var callback=function(data,status)
{var campaignId;if(data.success)
{for(var i in data.information)
{if(data.information[i].name=='campaignId')
{campaignId=parseInt(data.information[i].message,10);break;}}
if(campaignId)
{var optionText=clientName+', '+campaignName+', '+transmissionMonth;$('#programme-planner .choosebasket select option[value=new]').before('<option value="'+campaignId+'">'+optionText+'</option>');addProgrammesToCampaign(campaignId,optionText);}}
else
{console.log(data);}};sendCommand({action:handlerActions.CREATE_CAMPAIGN,client_name:clientName,campaign_name:campaignName,expiration_date:expirationText},callback);}
else
{alert('You must provide both client and campaign name.');}}
function addProgrammesToCampaign(campaignId,campaignText)
{var programmeIdString,programmeIds=[];$('#programme-planner .results input[type=checkbox]:checked').each(function(i)
{programmeIds.push(this.value);});programmeIdString=programmeIds.join(',');if(programmeIdString&&programmeIdString.length>0)
{var callback=function(data,status)
{if(data.success)
{var month=$('.info-panel.search .month').val();if(month&&typeof ITVM.Tracking!='undefined')
{var T=ITVM.Tracking;if(T)
{T.track(T.contexts.PROG_PLANNER,T.actions.ADD_TO_CAMPAIGN,dateFormat(NETJOHNHENRY.Date.parse(month,'dd/mm/yyyy'),'mmm yyyy'));}}
var dlg=$.extend(true,{},dialogs.ADDED_TO_CAMPAIGN);dlg.content=dlg.content.replace(/##campaign_text##/gi,campaignText);dlg.buttons[1].action=function goToCampaignOverview()
{if(typeof ITVM.Tracking!='undefined')
{var T=ITVM.Tracking;if(T)
{T.track(T.contexts.PROG_PLANNER,T.actions.CAM_OVERVIEW_CLICK);}}
document.location.href=$('#programme-planner .steps dt:nth-child(3) a').attr('href');};ITVM.UI.Dialog.show(dlg);}
else
{console.log(data);}};sendCommand({action:handlerActions.ADD_PROGRAMMES,campaign_id:campaignId,programme_ids:programmeIdString},callback);}}
function removeFromCampaign(e)
{if(confirm("Delete this programme?"))
{var idList,programmeIds=[];$(this).closest('dd').find('table input[type=checkbox]:checked').each(function(i)
{programmeIds.push(this.value);var row=$(this).closest('tr');var prev=row.prev();var next=row.next();if((prev.length&&prev.hasClass('channel'))&&(!next.length||(next.length&&next.hasClass('channel'))))
{row.prev().remove();}
row.remove();});idList=programmeIds.join(',');var removedItemCount=programmeIds.length;var itemHolder=$(this).closest('dd').prev().find('.items');var currentCount=parseInt(itemHolder.text().replace(/(\d+)\s.*/gi,'$1'),10);currentCount-=removedItemCount;if(currentCount<0)
{currentCount=0;}
itemHolder.text(currentCount+' '+(currentCount==1?'item':'items'));if(idList&&idList.length>0)
{campaignId=$(this).closest('.actionrow').find('input.campaign-id').val();var callback=function(data,status)
{if(!data.success)
{console.log(data);}};sendCommand({action:handlerActions.REMOVE_PROGRAMMES,campaign_id:campaignId,programme_ids:idList},callback);}
e.preventDefault();}}
function deleteCampaign(e)
{if(confirm('Delete this campaign?'))
{var dt=$(this).closest('dt');var dd=dt.next();var campaignId=dd.find('.actionrow input.campaign-id').val();dd.remove();dt.remove();var callback=function(data,status)
{if(!data.success)
{console.log(data);}};sendCommand({action:handlerActions.DELETE_CAMPAIGN,campaign_id:campaignId},callback);}
e.preventDefault();}
function sendCommand(options,callback)
{$.ajax({data:options,dataType:'json',success:callback,type:'GET',url:'/common/template/usercontrols/handlers/ProgrammePlannerHandler.ashx'});}
function init()
{$('dl.steps > dd').hide();$('dl.steps > dt.selected + dd').show();$('.result-group input[type=checkbox]').click(function()
{toggleCheckboxRow($(this).parent('td').parent('tr').get(0));});$('.available-baskets a.basket-name,.recent-requests a.basket-name').click(function(ev)
{toggleBasket($(this).parent('dt').get());ev.preventDefault();});$('#programme-planner a.moveup').click(moveRowUp);$('#programme-planner a.movedown').click(moveRowDown);$('#programme-planner .actionrow input[name=resultsadd]').click(addToCampaign);$('#programme-planner .actionrow .delbasket input').click(removeFromCampaign);$('#programme-planner .available-baskets .del').click(deleteCampaign);}
function setupBaskets()
{$('.available-baskets dl > dt.selected a.basket-name,.recent-requests dl > dt.selected a.basket-name').click();$('.available-baskets dl > dt.initial-open a.basket-name,.recent-requests dl > dt.initial-open a.basket-name').click();}
return{init:init,setupBaskets:setupBaskets};})(jQuery);jQuery(ITVM.ProgPlanner.ResultGroup.init);jQuery(function()
{setTimeout(ITVM.ProgPlanner.ResultGroup.setupBaskets,0);});jQuery(function()
{jQuery('#programme-planner .results .result-group table td a.popup-dialog').add('#programme-planner .recent-requests .result-group table td a.popup-dialog').add('#programme-planner .available-baskets .result-group table td a.popup-dialog').click(function(ev)
{var title=jQuery(this).text();if(title.length>35)
{title=title.substr(0,35)+'...';}
var code=jQuery(this).next().val();if(title&&code)
{code=ITVM.htmlEntities(code,'decode');ITVM.UI.Dialog.show({modal:false,x:ev.pageX,y:ev.pageY,customClasses:'programming',title:title,content:code,buttons:[]});}
ev.preventDefault();});jQuery('#programme-planner .recent-requests .result-group table td a.region').click(function(ev)
{var title=jQuery(this).text();if(title.length>35)
{title=title.substr(0,35)+'...';}
var code=jQuery(this).next().val();if(title&&code)
{code=ITVM.htmlEntities(code,'decode');ITVM.UI.Dialog.show({modal:false,x:ev.pageX,y:ev.pageY,customClasses:'buying regions',title:title,content:code,buttons:[]});}
ev.preventDefault();});});
