(function ($) { $.fn.loadTM = function (options) { var settings = $.extend({ // These are the defaults. backgroundColor: "white", width: "240px", allowadd: true, allowedit: true }, options); var idbase = this.attr('id').replace('Div', ''); var curVal = ""; var curItm = ""; var valData = this.attr('val'); var fieldType = this.attr('ft'); if (valData != null && valData != "0" && valData.replace(/\s*$/, "") != '0·') { if (valData.indexOf("'") > -1) { curVal = "value='" + valData.split('·')[1].replace(/'/g, ''') + "' val='" + valData.split('·')[0] + "'"; } else { curVal = "value='" + valData.split('·')[1] + "' val='" + valData.split('·')[0] + "'"; } curItm = "
" + valData.split('·')[1] + "
"; } else { curVal = "value='' val='0'"; } var disabled = ""; if (this.attr('disabled') != null) { disabled = " readonly "; } this.html("
 
" + curItm + "
" + ""); this.attr("initd", "y"); return this; }; }(jQuery)); var TMData = []; var openTM = ""; $(window).click(function (e) { if (openTM != "") { if (e.target.id != "" && openTM.indexOf(e.target.id + ',') > 0) { } else { HideTM($('#' + openTM.split(',')[0])); } } }); $(window).on('keyup', function (e) { if (e.which == 9) { if (openTM != "") { if (e.target.id != "" && openTM.indexOf(e.target.id + ',') > 0) { } else { HideTM($('#' + openTM.split(',')[0])); } } } }); function EvalTMShow(n) { if (openTM != "") { if (openTM.indexOf($(n).attr('id') + ',') > 0) { } else { console.log('evalshow'); } } else { if ($(n).attr('val') == '' || $(n).attr('val') == '0') { ShowTM($(n)); } } } function LoadTMData(mod, fld, fldType, gid, dir, naa, co, refid) { var dv = $('#' + fld + 'Div'); $.post('../handlers/HTMLCRUD.ashx?pageaction=loadTMData', { mod: mod, fldT: fldType, gid: gid, dir: dir, naa: naa, co: co, refid: refid }, function (data) { $(dv).find('.TeamAELData').html(''); $(dv).attr('activestatus', 'loaded'); GetTMData(fld); }); } function ShowTM(n) { // 'n' is the element that triggered the show. could be either the textbox or the image to the right of it var imgArr = $('#' + $(n).attr('id')); var d = $('#' + $(n).attr('id').replace('Img', '') + 'Mnu'); //menu if (openTM != "") { if (openTM.indexOf($(d).attr('id') + ',') < 0) { HideTM($('#' + openTM.split(',')[0])); } } var r = $(n).closest('tr'); var dv = $(r).closest('div'); if ($(dv).attr('disabled') != null) { if ($(dv).attr('disabled') == 'disabled') { return; } } var menuParent = $(d).parent(); menuParent.width($(r).width() - 2); var theTR = r.parent(); var positionMenu = function () { menuParent.position({ my: "left top", at: "left bottom", of: theTR, collision: "none" }); }; // we need to show the element before positioning it, but we want to animate it when it's actually shown...but it needs to animate once it's been positioned // so make it invisible and "show" it now for the purpose of positioning it, then hide it again and then we'll show it with the animation now that it's positioned menuParent.css({ visibility: 'hidden' }); menuParent.show(); positionMenu(); menuParent.hide(); menuParent.css({ visibility: 'visible' }); // need to reposition upon scroll, but only if the dvFormContents div actually exists var scrollingDiv = $('#dvFormContents'); if (scrollingDiv.length) { scrollingDiv.on('scroll.teamael', function () { positionMenu(); }); } // now we can actually show with the animation menuParent.show('blind'); var m = 0; var ft = ''; var dir = ''; var fld = ''; var smm = ''; var gid = 0; var naa = 0; //disable auto assign [owner related] var co = ''; //config option [owner related] var hostsid = 0; //hostmodule refid m = $(dv).attr('mod'); ft = $(dv).attr('ft'); fld = $(dv).attr('id').replace('Div',''); smm = $(dv).attr('srch'); //Search Method gid = $(dv).attr('gid'); dir = $(dv).attr('dir'); //name display direction. "" = first last, "r" = "last, first" if ($(dv).closest('table').closest('td').find('.hypMTM').length > 0) { hostsid = $(dv).closest('table').closest('td').find('.hidModRefId').val(); } if ($(dv).attr('naa') != null) { naa = $(dv).attr('naa'); } if ($(dv).attr('item') != null) { co = $(dv).attr('item'); } if ($(dv).attr('activestatus') == 'load') { //load the data the first time the control is interacted with setTimeout(function () { LoadTMData(m, fld, ft, gid, dir, naa, co, hostsid); }); } $(r).find('input').on('change keyup', function (e) { if (e.type == "keyup") { if (e.which == 38 || e.which == 40) { if (e.timeStamp != eTimeStamp) { ArrowsTM($(r), e.which); eTimeStamp = e.timeStamp; } return; } if (e.which == 8 || e.which == 46) { $(this).attr('val', ''); } } setTimeout(function () { GetTMData(fld); }, 500); }); if ($(r).find('input').attr('val') != null) { if ($(r).find('input').attr('val') != '') { $(r).closest('div').find('.mnuTeamAEL').find('div').removeClass('seldDrop'); var seld = $(r).closest('div').find('.mnuTeamAEL').find('div[val="' + $(r).find('input').attr('val') + '"]'); $(seld).addClass('seldDrop'); } } openTM = $(d).attr('id') + ',' + $(r).find('input').attr('id') + ',' + $(r).find('.tdTeamAEL').find('img').attr('id') + ',' + $(r).find('.clrTeamAEL').find('img').attr('id') + ','; if ($(d).html() == '') { if ($(dv).attr('filter') == '') { $(d).prepend('
Loading...
'); } $(r).find('input').change(); } if (window.top.$('.e-iframe:visible').length == 0) { if (window.top.$('.ifrm').length > 0) { if ($(d).parent().position().top + $(d).height() > window.top.$('.ifrm').height()) { var hght = window.top.$('.ifrm').height() - ($(d).parent().position().top + 10); $(d).css('height', hght); } } } else { if (window.top.$('.e-iframe:visible').length > 0) { if ($(d).parent().position().top + $(d).height() > window.top.$('.e-iframe').height()) { var hght = window.top.$('.e-iframe').height() - ($(d).parent().position().top + 10); $(d).css('height', hght); } } } if (ft != 'm2m' && ft != 'atm') { $(d).closest('.TeamAEL').find('.inpTeamAEL').blur(function () { var mnu = $(this).closest('.TeamAEL').find('.mnuTeamAEL'); if ($(this).val() != "" && ($(this).attr('val') == '0' || $(this).attr('val') == '')) { if ($(mnu).find('.dditem').length > 0) { if ($(mnu).find('.seldDrop').length == 0) { $(mnu).find('.dditem').first().click(); } } } }); } } function sortProperties(obj) { // convert object into array var sortable = []; for (var key in obj) if (obj.hasOwnProperty(key)) sortable.push([key, obj[key]]); // each item is an array in format [key, value] // sort items by value sortable.sort(function (a, b) { var x = a[1].toLowerCase(), y = b[1].toLowerCase(); return x < y ? -1 : x > y ? 1 : 0; }); return sortable; // array in format [ [ key1, val1 ], [ key2, val2 ], ... ] } function GetTMData(fld) { var obj = TMData[fld + 'Data']; $('#' + fld + 'Mnu').empty(); var inp = $('#' + fld).val(); var arr = sortProperties(obj); arr.forEach(function (item) { var iVal = item[1]; var iKey = item[0]; if (inp != '') { if (iVal.toLowerCase().indexOf(inp.toLowerCase()) > -1) { $('#' + fld + 'Mnu').append('
' + iVal + '
'); } } else { $('#' + fld + 'Mnu').append('
' + iVal + '
'); } }); //for (var key in obj) { // if (obj.hasOwnProperty(key)) { // if (inp != '') { // if (obj[key].toLowerCase().indexOf(inp.toLowerCase()) > -1) { // $('#' + fld + 'Mnu').append('
' + obj[key] + '
'); // } // } // else { // $('#' + fld + 'Mnu').append('
' + obj[key] + '
'); // } // } //} SelectTMFirst($('#' + fld)); } function SelectTMFirst(r) { $(r).closest('div').find('.mnuTeamAEL').find('div').removeClass('seldDrop'); var seld = $(r).closest('div').find('.mnuTeamAEL').find('.dditem').first(); $(seld).addClass('seldDrop'); } function clearTMVal(n) { var r = $(n).closest('tr'); if ($(r).closest('div').attr('disabled') == 'disabled') { return; } $(r).find('input').val(''); $(r).find('input').attr('val', ''); $(r).closest('div').find('.mnuTeamAELWrap').find('.mnuTeamAEL').html(''); ShowTM($(r).find('input')); } function SetTMVal(n) { var inp = $(n).parent().parent().parent().find('input'); var dv = $('#' + $(inp).attr('id') + 'Div'); if ($(dv).attr('ft') == 'm2m') { //$(n).parent().find('div').removeClass('seldDrop'); var fldName = $(inp).attr('id'); var modid = $(dv).attr('mod'); var relmod = $(dv).attr('item'); var modrefid = $(dv).closest('table').closest('td').find('.hidModRefId').val(); var selVal = $(n).attr('val'); var selText = $(n).html(); if (fldName.indexOf('_') > -1) { fldName = fldName.split('_')[1]; } var addPos = 'After'; if (window.top.location.href.indexOf('profile.aspx') > -1) { addPos = 'Before'; } SaveManyToManyFromPlugin(selVal, selText, fldName, modid, modrefid, relmod, addPos); } else if ($(dv).attr('ft') == 'atm') { $(n).parent().find('div').removeClass('seldDrop'); var fldName = $(inp).attr('id'); var selVal = $(n).attr('val'); AddTeammemberFromPlugin($('#' + fldName),selVal); } else { $(inp).attr('val', $(n).attr('val')); if ($('#' + $(inp).attr('id') + '_rel').length > 0) { $('#' + $(inp).attr('id') + '_rel').val($(n).attr('val')); } if ($(n).html() == '') { $(inp).val(''); } else { $(inp).val($(n).html()); } $(n).parent().find('div').removeClass('seldDrop'); $(n).addClass('seldDrop'); if ($(inp).parent().closest('div').attr('trig') != null) { RepopDTTs($(inp)); } } //if ($(n).closest('.TeamAEL').attr('elid') != -1 && // $(n).attr('val') != '0' && // $(n).attr('val') != '') { // $(n).closest('.TeamAEL').find('a').show(); //} //else { // $(n).closest('.TeamAEL').find('a').hide(); //} $(inp).change(); } function ArrowsTM(r, val) { switch (val) { case 38: var sd = $(r).find('input').closest('div').find('.seldDrop'); if (sd.length == 0) { SetTMVal($(r).find('input').closest('div').find('.dditem').first()); event.preventDefault(); return false; } else { sd = $(sd).prev(); if (sd.length != 0) { SetTMVal($(sd)); event.preventDefault(); return false; } } break; case 40: var sd = $(r).find('input').closest('div').find('.seldDrop'); if (sd.length == 0) { SetTMVal($(r).find('input').closest('div').find('.dditem').first()); event.preventDefault(); return false; } else { sd = $(sd).next(); if (sd.length != 0) { SetTMVal($(sd)); event.preventDefault(); return false; } } break; } } function HideTM(n) { openTM = ""; $(n).parent().hide('blind'); // need to turn off the scroll event, but only if this div exists var scrollingDiv = $('#dvFormContents'); if (scrollingDiv.length) { $('#dvFormContents').off('scroll.teamael'); } if ($(n).closest('.TeamAEL').attr('elid') != -1 && $(n).closest('.TeamAEL').find('input').attr('val') != '0' && $(n).closest('.TeamAEL').find('input').attr('val') != '') { $(n).closest('.TeamAEL').find('a').show(); } else { $(n).closest('.TeamAEL').find('a').hide(); } }