define(['underscore','jquery','mage/utils/objects'],function(_,$,utils){'use strict';var defaultAttributes,ajaxSettings,map;defaultAttributes={method:'post',enctype:'multipart/form-data'};ajaxSettings={default:{method:'POST',cache:false,processData:false,contentType:false},simple:{method:'POST',dataType:'json'}};map={'D':'DDD','dd':'DD','d':'D','EEEE':'dddd','EEE':'ddd','e':'d','yyyy':'YYYY','yy':'YY','y':'YYYY','a':'A'};return{uniqueid:function(size){var code=Math.random()*25+65|0,idstr=String.fromCharCode(code);size=size||7;while(idstr.length64){idstr+=String.fromCharCode(code);}} return idstr;},limit:function(owner,target,limit){var fn=owner[target];owner[target]=_.debounce(fn.bind(owner),limit);},normalizeDate:function(mageFormat){var result=mageFormat;_.each(map,function(moment,mage){result=result.replace(new RegExp(mage+'(?=([^\u0027]*\u0027[^\u0027]*\u0027)*[^\u0027]*$)'),moment);});result=result.replace(/'(.*?)'/g,'[$1]');return result;},inRange:function(value,min,max){return Math.min(Math.max(min,value),max);},submit:function(options,attrs){var form=document.createElement('form'),data=utils.serialize(options.data),attributes=_.extend({},defaultAttributes,attrs||{});if(!attributes.action){attributes.action=options.url;} data['form_key']=window.FORM_KEY;_.each(attributes,function(value,name){form.setAttribute(name,value);});data=_.map(data,function(value,name){return'';}).join('');form.insertAdjacentHTML('afterbegin',data);document.body.appendChild(form);form.submit();},ajaxSubmit:function(options,config){var t=new Date().getTime(),settings;options.data['form_key']=window.FORM_KEY;options.data=this.prepareFormData(options.data,config.ajaxSaveType);settings=_.extend({},ajaxSettings[config.ajaxSaveType],options||{});if(!config.ignoreProcessEvents){$('body').trigger('processStart');} return $.ajax(settings).done(function(data){if(config.response){data.t=t;config.response.data(data);config.response.status(undefined);config.response.status(!data.error);}}).fail(function(){if(config.response){config.response.status(undefined);config.response.status(false);config.response.data({error:true,messages:'Something went wrong.',t:t});}}).always(function(){if(!config.ignoreProcessEvents){$('body').trigger('processStop');}});},prepareFormData:function(data,type){var formData;if(type==='default'){formData=new FormData();_.each(utils.serialize(data),function(val,name){formData.append(name,val);});}else if(type==='simple'){formData=utils.serialize(data);} return formData;},filterFormData:function(data,suffix,separator){data=data||{};suffix=suffix||'prepared-for-send';separator=separator||'-';_.each(data,function(value,key){if(_.isObject(value)&&!Array.isArray(value)){this.filterFormData(value,suffix,separator);}else if(_.isString(key)&&~key.indexOf(suffix)){data[key.split(separator)[0]]=value;delete data[key];}},this);return data;},escape:function(string){return string?$('

').text(string).html().replace(/"/g,'"'):string;},unescape:function(data){var unescaped=_.unescape(data),mapCharacters={''':'\''};_.each(mapCharacters,function(value,key){unescaped=unescaped.replace(key,value);});return unescaped;},convertToMomentFormat:function(format){var newFormat;newFormat=format.replace(/yyyy|yy|y/,'YYYY');newFormat=newFormat.replace(/dd|d/g,'DD');return newFormat;},getUrlParameters:function(url){var params={},queries=url.split('?'),temp,i,l;if(!queries[1]){return params;} queries=queries[1].split('&');for(i=0,l=queries.length;i