
typeof defaultRegistry!='undefined'?defaultRegistry.addEntry({fileName:'jquery.idms.callbackFromPopup.js',url:'/ccf/plugins/js/jquery.idms.callbackFromPopup.js',plugins:[{"name":"callbackFromPopup","alias":"callbackFromPopup"}]}):true;(function($){jQuery.fn.callbackFromPopup=function(options){var defaults={event:'click',data:null,callbackFormId:null,callbackLinkId:null,callbackId:null,callbackEvent:'click'};var opts=$.extend(defaults,options);return $(this).bind(opts.event,opts,callbackFromPopupHandler);};function callbackFromPopupHandler(event){if(opener==null){window.close();return false;}var defaults={data:null,callbackFormId:null,callbackLinkId:null,callbackId:null,callbackEvent:'click'};var options={data:event.data.data,callbackFormId:event.data.callbackFormId,callbackLinkId:event.data.callbackLinkId,callbackId:event.data.callbackId,callbackEvent:event.data.callbackEvent};var opts=$.extend(defaults,options);var parameters=[];if(opts.data){if(opts.data instanceof Array){for(var i=0;i<opts.data.length;i++){var values=new Array();if(opts.data[i].value){values.push(opts.data[i].value);}else if(opts.data[i].selector){$(opts.data[i].selector).each(function(){values.push($(this).val());});}parameters[opts.data[i].name]=values.join(",");}}else
{var values=new Array();if(opts.data.value){values.push(opts.data.value);}else if(opts.data.selector){$(opts.data.selector).each(function(){values.push($(this).val());});}parameters[opts.data.name]=values.join(",");}opts.data=parameters;}for(n in opts.data){var elem;if(n.charAt(0)=='#'){elem=$(n,opener.document);}else if(n.charAt(0)=='_'){elem=$("#"+n.substring(1),opener.document);}else{var id=opts.callbackFormId?opts.callbackFormId:"callbackForm"+opts.callbackId;elem=$("#"+id+" input[name='"+n+"']",opener.document);}opener.window.jQuery(elem).val(opts.data[n]);opener.window.jQuery(elem).data('originalValue',opts.data[n]);}var id=opts.callbackLinkId!=null?opts.callbackLinkId:'callbackLink'+opts.callbackId;opener.window.jQuery('#'+id).trigger(opts.callbackEvent);window.close();return false;}})(jQuery);
