function unique(a) { var r = new Array(); o:for(var i = 0, n = a.length; i < n; i++) { for(var x = i + 1 ; x < n; x++) { if(a[x]==a[i]) continue o; } r[r.length] = a[i]; } return r; } function stairPartsData(obj,api) { var a = api || '../api/'; var objtype = typeof(obj)+''; var codes = [] if(objtype == 'object' && obj ) { for(i in obj) { codes.push('codes[]='+obj[i]['code']); } codes = unique(codes); $.ajax ({ type: "POST", url: a, data: 'uid='+uid+'&key='+key+'&setmodule=stair_parts_old&request=read&to=100&'+codes.join("&"), dataType: "xml", error: function() { $(obj).html('ER'); }, success: function(data) { if ($(data).find("result").text() == 1) { // if code exists.. do.. for(i in obj) { xmlpart = $(data).find("part_"+obj[i]['code']); if(obj[i].hasOwnProperty("update")==true) { $('#'+$(obj[i]['update'].selector).parents("@[id]").attr("id")+' input[type="submit"]').attr('disabled',false); if($(obj[i]['update']).attr("value")!=undefined) { $(obj[i]['update']).attr('value',unescape($(xmlpart).find(obj[i]['read']).text()).replace(/\+/g," ")); } else { $(obj[i]['update']).html(unescape($(xmlpart).find(obj[i]['read']).text()).replace(/\+/g," ")); } } else if (unescape($(xmlpart).find(obj[i]['read']).text()).replace(/\+/g," ")==obj[i]['exe-on']) { obj[i]['exe'](); } } } else { // if code doesn't exist.. do.. for(i in obj) { if(obj[i].hasOwnProperty("update")==true) { if($(obj[i]['update']).attr("value")!=undefined) { $(obj[i]['update'].selector).attr('value','##.##'); } else { $(obj[i]['update'].selector).html('##.##'); } } } $('#'+$(obj['0productPrice']['update'].selector).parents("@[id]").attr("id")+' input[type="submit"]').attr('disabled',true); } } }); } }