function NumberCombination(){var a=new Array();function b(d,c){return d-c}this.add=function(c){if(!this.contains(c)){a.push(c)}};this.clone=function(){var d=new NumberCombination();for(var c=a.length-1;c>=0;--c){d.add(a[c])}return d};this.contains=function(e){var c=false;for(var d=a.length-1;d>=0;--d){c=(e==a[d]);if(c){break}}return c};this.countDuplicatesIn=function(){var d=arguments.length;var n=0;var m=a;if(m.length>0&&d>0){for(var h=m.length-1;h>=0;--h){var c=0;for(var f=0;f<d;++f){var g=arguments[f];if(g!=null&&g.elements!=null){var l=g.elements();for(var e=l.length-1;e>=0;--e){if(m[h]==l[e]){++c;break}}}}if(c==d){++n}}}return n};this.elementCount=function(){return a.length};this.elements=function(){return a.sort(b)};this.remove=function(d){var c=a.length-1;for(var e=c;e>=0;--e){if(d==a[e]){switch(e){case 0:a.shift();break;case c:a.pop();break;default:a=a.slice(0,e).concat(a.slice(e+1))}}}};this.removeAll=function(){a.length=0}};
