(function(window){ts.emailorganization={hasAddPermission:false,hasModifyPermission:false,hasDeletePermission:false,searchId:0,emailToTemplate:null,init:function(){this.hasAddPermission=$('#hasAddPermission').length&&$('#hasAddPermission').val().toLowerCase()=="true";this.hasModifyPermission=$('#hasModifyPermission').length&&$('#hasModifyPermission').val().toLowerCase()=="true";this.hasDeletePermission=$('#hasDeletePermission').length&&$('#hasDeletePermission').val().toLowerCase()=="true";$('#LastHireStartDate, #LastHireEndDate','#advancedFindPanel').datepicker({});var url='/CareerServices/ManageJobPost/EmailToTemplate';ts.ajax.send({url:url,successHandler:function(results){ts.emailorganization.emailToTemplate=results;},errorHandler:function(err){ts.msg.sendError('An error occurred while loading the EmailToTemplate.');}});this.registerEvents();this.validate();$('#EmailBody').cleditor({width:"100%",height:"100%"})[0];},validate:function(){$.validator.addMethod("recipientsRequired",function(val,e){var ret=$('.recipientTile').length>0;return ret;});$.validator.addMethod("htmlRequired",function(val,e){var value=$('#EmailBody').val();var ret=!(value===''||value==='
'||value==='
');return ret;});$('#emailer').validate({rules:{EmailSubject:{required:true,maxlength:255},hfRecipients:{recipientsRequired:true},hfBody:{htmlRequired:true}},messages:{EmailSubject:{required:'Email Subject is required.',maxlength:"Email Subject can not be more than 255 characters long."},hfRecipients:{recipientsRequired:'Please select recipients.'},hfBody:{htmlRequired:'Email Body is required.'}},onkeyup:false,onblur:true});$('#emailer').validate();$('#findForm').validate();},registerEvents:function(){var scope=this;$('#findForm','#findPanel').submit(function(e){$('#findPanel #searchLink').click();return false;});$('#searchLink','#findPanel').click(function(e){scope.search();});$('#searchPhrase','#findPanel').keydown(function(e){if(e.keyCode==13){$('#searchLink','#findPanel').click();}});$("#removeRecipientCommand").live("click",function(e){ts.emailorganization.removeRecipient(e);return false;});$('#findPanel #advancedLink').click(function(e){$('#advancedFindPanel','#findForm').toggle();$('#advancedLink','#findForm').text($('#advancedFindPanel:visible','#findForm').length>0?'Hide Advanced':'Advanced');if($('#advancedFindPanel:visible').length==0){$('#OrganizationStatusId','#advancedFindPanel').val("");$('#IndustryId','#advancedFindPanel').val("");$('#City','#advancedFindPanel').val("");$('#State','#advancedFindPanel').val("");$('#HasOpenJobPost','#advancedFindPanel').removeAttr("checked");$('#OccupationId','#advancedFindPanel').val("");$('#LastHireStartDate','#advancedFindPanel').val("");$('#LastHireEndDate','#advancedFindPanel').val("");$('#PrimaryContactId','#advancedFindPanel').val("");}});$("#DocumentTemplateEid").live("change",function(e){ts.emailorganization.fillEmailTemplate();return false;});},fillEmailTemplate:function(){if($("#DocumentTemplateEid option:selected").val()==''){$('#EmailBody').val('').blur();$('#EmailSubject').val('').blur();return;}
var data=$('#emailer').serialize();var url='/CareerServices/EmailOrganization/GetDocumentTemplate';ts.ajax.send({url:url,data:data,type:'POST',successHandler:function(r){$('#EmailBody').val(r.TemplateContent).blur();$('#EmailSubject').val(r.Subject).blur();},errorHandler:function(r){ts.msg.sendError('An error occurred while reading the document template content.');}});},search:function(){ts.msg.sendInfo('Searching for organizations...');ts.utility.html('#searchResult','');var data=$('#findForm').serialize();var url='/CareerServices/EmailOrganization/OrganizationsSearch';ts.ajax.send({url:url,data:data,type:'POST',successHandler:function(result){if(result.State=="0"){ts.utility.html('#searchResult',result.HtmlResult);ts.ajax.handleResult(result);}
else{ts.msg.sendError(result.Messages[0].Message);}},errorHandler:function(r){ts.msg.sendError('An error occurred while searching organizations.');}});},expand:function(){var sender=$(this);var target=$(this).attr('tstarget');var state=$(this).attr('tsstate');var expanded=$('.expanded');if(state==undefined||state=="0"){expanded.slideUp(250,function(){expanded.removeClass('expanded');$('.expandCommand').attr('tsstate',"0");var img=$(this).parents().find('#expandImg');var src=img.attr('a');img.attr('src',src);});$('#'+target).slideDown(250,function(){var img=sender.find('#expandImg');var src=img.attr('b');$(this).addClass('expanded');img.attr('src',src);sender.attr('tsstate',"1");});}
else{$('#'+target).slideUp(250,function(){var img=sender.find('#expandImg');var src=img.attr('a');img.attr('src',src);$(this).removeClass('expanded');sender.attr('tsstate',"0");});}},addOrganizationRecipient:function(){var id=$(this).attr('recipientid');var name=$(this).attr('recipientname');var emailaddress='';if($('#recipient'+id+'[recipienttype="Organization"]').length>0){ts.msg.sendError('Selected Organization is already in the recipients list.');}
else{var content=ts.emailorganization.emailToTemplate;content=content.replace(/{value}/g,name).replace(/{recipientid}/g,id).replace(/{emailaddress}/g,emailaddress).replace(/{recipienttype}/g,'Organization');$('#toBox').append(content);$('#emailer').valid();}},selectAll:function(){$('#toBox').text('');$(".companySearchResultItem").each(function(i){var id=this.getAttribute('companyid');var name=this.getAttribute('companyname');var selectEnabled=this.getAttribute('selectEnabled');var emailaddress='';if(selectEnabled.toLowerCase()=="true"){if($('#recipient'+id+'[recipienttype="Organization"]').length>0){ts.msg.sendError('Selected Organization is already in the recipients list.');}
else{var content=ts.emailorganization.emailToTemplate;content=content.replace(/{value}/g,name).replace(/{recipientid}/g,id).replace(/{emailaddress}/g,emailaddress).replace(/{recipienttype}/g,'Organization');$('#toBox').append(content);$('#emailer').valid();}}});},addContactRecipient:function(){var id=$(this).attr('recipientid');var name=$(this).attr('recipientname');var emailaddress=$(this).attr('recipientemail');var organizationid=$(this).parents('#companySearchResultItem').attr('companyId');if($('#recipient'+id+'[recipienttype="OrganizationContact"]').length>0){ts.msg.sendError('Selected Contact is already in the recipients list.');}
else{var content=ts.emailorganization.emailToTemplate;content=content.replace(/{value}/g,name).replace(/{recipientid}/g,id).replace(/{emailaddress}/g,emailaddress).replace(/{recipienttype}/g,'OrganizationContact').replace(/{organizationId}/g,organizationid);$('#toBox').append(content);$('#emailer').valid();}},removeRecipient:function(e){var id=e.target.attributes['recipientid'].value;$('#recipient'+id).remove();$('#emailer').valid();},reorderRecipients:function(){$('.recipientTile').each(function(idx){$(this).find('.recipientId').attr('id','Recipients['+idx+'].RecipientId');$(this).find('.recipientId').attr('name','Recipients['+idx+'].RecipientId');$(this).find('.recipientType').attr('id','Recipients['+idx+'].RecipientType');$(this).find('.recipientType').attr('name','Recipients['+idx+'].RecipientType');$(this).find('.emailAddress').attr('id','Recipients['+idx+'].EmailAddress');$(this).find('.emailAddress').attr('name','Recipients['+idx+'].EmailAddress');$(this).find('.organizationId').attr('id','Recipients['+idx+'].OrganizationId');$(this).find('.organizationId').attr('name','Recipients['+idx+'].OrganizationId');});},resetdata:function(){ts.utility.html('#searchResult','');ts.utility.html('#toBox','');$('#EmailBody').cleditor()[0].clear();$('#EmailSubject').val('');},save:function(){if($('#emailer').valid()){ts.emailorganization.reorderRecipients();ts.ajax.send({url:'/CareerServices/EmailOrganization/Save',data:$('#emailer').serialize(),type:'POST',successHandler:function(result){if(result.State==0){ts.ajax.handleResult(result);ts.emailorganization.resetdata();}
else{ts.msg.sendError(result.Messages[0].Message);}},errorHandler:function(result){ts.msg.sendError('An error occurred while sending the email.');ts.msg.sendMsg('sysWarning','unknown error ts.emailorganization.save ajax: '+result.responseText);}});};}};$(document).ready(function(){ts.emailorganization.init();});})(window);