function $FE(a){/* as php function: function_exists */if(typeof a=='string'){return(typeof window[a]=='function')}else{return(a instanceof Function)}}

if(!$FE('count'))function count(a,b){var c,cnt=0;if(b=='COUNT_RECURSIVE')b=1;if(b!=1)b=0;for(c in a){cnt;if(b==1&&a[c]&&(a[c].constructor===Array||a[c].constructor===Object)){cnt=count(a[c],1)}}return cnt}
if(!$FE('empty'))function empty(a){return(a===""||a===0||a==="0"||a===null||a===false||(is_array(a)&&a.length===0))}
if(!$FE('indexOf'))function indexOf(a,b){for(itemIdx in a){if(a[itemIdx]==b)return itemIdx}return null}
if(!$FE('is_array'))function is_array(a){return(a instanceof Array)}
if(!$FE('array'))function array(){return Array.prototype.slice.call(arguments)}
if(!$FE('array_change_key_case'))function array_change_key_case(a){var b,tmp_ar=new Object,argc=arguments.length,argv=arguments,c;if(a instanceof Array){return a}if(a instanceof Object){if(argc==1||argv[1]=='CASE_LOWER'||argv[1]==0){b="toLowerCase"}else{b="toUpperCase"}for(var c in a){tmp_ar[c[b]()]=a[c]}return tmp_ar}return false}
if(!$FE('array_chunk'))function array_chunk(a,b){for(var x,i=0,c=-1,l=a.length,n=[];i<l;i){(x=i%b)?n[c][x]=a[i]:n[c]=[a[i]]}return n}
if(!$FE('array_combine'))function array_combine(a,b){var c={},keycount=a.length,i;if(!a||!b||a.constructor!==Array||b.constructor!==Array){return false}if(keycount!=b.length){return false}for(i=0;i<keycount;i){c[a[i]]=b[i]}return c}
if(!$FE('compact'))function compact(c){var d=0,Matrix={};var e=function(a){for(var i=0;i<a.length;i){var b=a[i];if(b instanceof Array){e(b)}else{if(typeof window[b]!=='undefined'){Matrix[b]=window[b]}}}return true};e(arguments);return Matrix}
if(!$FE('array_count_values'))function array_count_values(b){var c=new Object(),key;var d=function(a){switch(typeof(a)){case"number":if(Math.floor(a)!=a){return}case"string":if(a in this){this[a]}else{this[a]=1}}};if(b instanceof Array){b.forEach(d,c)}else if(b instanceof Object){for(key in b){d.call(c,b[key])}}return c}
if(!$FE('array_diff'))function array_diff(a){var b=[],i=1,argc=arguments.length,argv=arguments,key,key_c,found=false,cntr=0;for(key in a){for(i=1;i<argc;i){found=false;for(key_c in argv[i]){if(argv[i][key_c]==a[key]){found=true;break}}if(!found){b[cntr]=a[key];cntr}}}return b}
if(!$FE('array_diff_assoc'))function array_diff_assoc(a){var b={},i=1,argc=arguments.length,argv=arguments,key,key_c,found=false;if(!a||(a.constructor!==Array&&a.constructor!==Array&&typeof a!='object'&&typeof a!='array')){return null}for(key in a){for(i=1;i<argc;i){found=false;if(argv[i][key]){found=true;break}if(!found){b[key]=a[key]}}}return b}
if(!$FE('array_diff_key'))function array_diff_key(a){var b=new Object(),argc=arguments.length,argv=arguments,key,argidx,other;for(key in a){b[key]=a[key]}for(argidx=1;argidx<argc;argidx){other=argv[argidx];if(other instanceof Object){for(key in other){delete b[key]}}}return b}
if(!$FE('end'))function end(a){var b,key;if(a.constructor==Array){b=a[(a.length-1)]}else{for(key in a){print(key);b=a[key]}}return b}
if(!$FE('array_fill'))function array_fill(a,b,c){var d,tmp_arr=new Array();if(!isNaN(a)&&!isNaN(b)){for(d=a;d<=b;d){tmp_arr[d]=c}}return tmp_arr}
if(!$FE('array_flip'))function array_flip(a){var b,tmp_ar={};for(b in a){tmp_ar[a[b]]=b}return tmp_ar}
if(!$FE('array_key_exists'))function array_key_exists(a,b){if(!b||(b.constructor!==Array&&b.constructor!==Object)){return false}return a in b}
if(!$FE('array_keys'))function array_keys(input,search_value,strict){var tmp_arr=new Array(),strict=!!strict,include=true,cnt=0;for(key in input){include=true;if(search_value!=undefined){if(strict&&input[key]!==search_value){include=false}else if(input[key]!=search_value){include=false}}if(include){tmp_arr[cnt]=key;cnt}}}
if(!$FE('array_map'))function array_map(a){var b=arguments.length,argv=arguments;var j=argv[1].length,i=0,k=1,m=0;var c=[],tmp_ar=[];while(i<j){while(k<b){c[m]=argv[k][i]}m=0;k=1;if(a){tmp_ar[i]=a.apply(null,c)}else{tmp_ar[i]=c}c=[]}return tmp_ar}
if(!$FE('array_pad'))function array_pad(a,b,c){var d=[],newArray=[],newLength,i=0;if(a instanceof Array&&!isNaN(b)){newLength=((b<0)?(b*-1):b);if(newLength>a.length){for(i=0;i<(newLength-a.length);i){newArray[i]=c}d=((b<0)?newArray.concat(a):a.concat(newArray))}else{d=a}}return d}
if(!$FE('array_pop'))function array_pop(a){if(!a.length){return null}return a.pop()}
if(!$FE('array_product'))function array_product(a){var b=0,Product=1;if(a instanceof Array){while(b<a.length){Product*=(!isNaN(a[b])?a[b]:0);b}}else{Product=null}return Product}
if(!$FE('array_push'))function array_push(a){var i,argv=arguments,argc=argv.length;for(i=1;i<argc;i){a[a.length]=argv[i]}return a.length}
if(!$FE('array_rand'))function array_rand(d,e){var f=[];var g=e||1;var h=function(a,b){var c=false,Index=0;while(Index<a.length){if(a[Index]===b){c=true;break}Index}return c};if(d instanceof Array&&g<=d.length){while(true){var i=Math.floor((Math.random()*d.length));if(f.length===g){break}if(!h(f,i)){f.push(i)}}}else{f=null}return((g==1)?f.join():f)}
if(!$FE('array_reduce'))function array_reduce(a,b){var c=a.length;var d=0,i=0;var e=new Array();for(i=0;i<c;i=2){e[0]=a[i];if(a[(i+1)]){e[1]=a[(i+1)]}else{e[1]=0}d=b.apply(null,e);e=new Array()}return d}
if(!$FE('array_reverse'))function array_reverse(a,b){var c=a.length,newkey=0,tmp_ar={};for(var d in a){newkey=c-d-1;tmp_ar[(!!b)?newkey:d]=a[newkey]}return tmp_ar}
if(!$FE('array_search'))function array_search(a,b,c){var c=!!c;for(var d in b){if((c&&b[d]===a)||(!c&&b[d]==a)){return d}}return false}
if(!$FE('array_shift'))function array_shift(a){if(a.length>0){return a.shift()}return null}
if(!$FE('array_sum'))function array_sum(a){var b,sum=0;if(!a||(a.constructor!==Array&&a.constructor!==Object)||!a.length){return null}for(var b in a){sum=a[b]}return sum}
if(!$FE('array_unique'))function array_unique(a){var p,i,j,tmp_arr=a;for(i=tmp_arr.length;i;){for(p=--i;p>0;){if(tmp_arr[i]===tmp_arr[--p]){for(j=p;--p&&tmp_arr[i]===tmp_arr[p];);i-=tmp_arr.splice(p+1,j-p).length}}}return tmp_arr}
if(!$FE('array_unshift'))function array_unshift(a){var b=arguments.length,argv=arguments,i;for(i=1;i<b;i){a.unshift(argv[i])}return(a.length)}
if(!$FE('array_values'))function array_values(a){var b=new Array(),cnt=0;for(key in a){b[cnt]=a[key];cnt}return b}
if(!$FE('array_walk'))function array_walk(a,b,c){var d;if(typeof a!='object'){return false}for(d in a){if(typeof(c)!='undefined'){eval(b+'( array [key] , key , userdata  )')}else{eval(b+'(  userdata ) ')}}return true}
if(!$FE('array_walk_recursive'))function array_walk_recursive(a,b,c){var d;if(typeof a!='object'){return false}for(d in a){if(typeof a[d]=='object'){return array_walk_recursive(a[d],b,c)}if(typeof(c)!='undefined'){eval(b+'( array [key] , key , userdata  )')}else{eval(b+'(  userdata ) ')}}return true}
