var isMobile = (function() {
    var userAgents = ["iphone", "ipod", "ipad", "android", "blackberry", "palm", "series60", "symbian", "windows ce"];
    for (var i = 0; i < userAgents.length; i += 1) {
        if (navigator.userAgent.match(new RegExp(userAgents[i], 'i'))) {
            return true;
        }
    }
    return false;
})();

function numCommaRender( num, unlimited ) {
    if ( num == 'Unlimited') return num;
    if ( isNaN(num) || (unlimited && num >= unlimited) ) return 'Unlimited';
    var ns = num.toString();
    var res = '';
    while( ns.length > 3 )  {
        var tail = ns.slice( ns.length-3 );
        if ( res.length == 0 ) res = tail; else  res = tail + "," + res;
        ns  = ns.slice(0, ns.length-3);
    }
    if ( res.length == 0 ) res = ns; else res = ns + "," + res;
    return res;
}


function numRender( num, max )
{
	if ( num < 0.01 ) return "0";
	if ( isNaN(num) || max && num >= max ) return "Unlimited";
	
	var factor;
	var suffix;
	
	if      ( num < 1000000 )    { factor = 1000;       suffix = 'K'; }
	else if ( num < 1000000000 ) { factor = 1000000;    suffix = 'M'; }
	else                         { factor = 1000000000; suffix = 'G'; }
	
	var n = num/factor;
	
	if ( n < 10 ) n = n.toFixed( 2 ); 
	else          n = Math.round( n );
	
	return n + " " + suffix;
}


 function StringBuffer() { 
   this.buffer = []; 
 } 

 StringBuffer.prototype.append = function append(string) { 
   this.buffer.push(string); 
   return this; 
 }; 

 StringBuffer.prototype.toString = function toString() { 
   return this.buffer.join(""); 
 };
 
 function mlsFireEvent(element,event){
    if (document.createEventObject){
		return false;
    // dispatch for IE. DOES NOT WORK
		var evt = document.createEventObject();
		return document.fireEvent('on'+event);
    }
    else{
		// dispatch for firefox + others
		var evt = document.createEvent("HTMLEvents");
		evt.initEvent(event, true, true ); // event type,bubbling,cancelable
		return !element.dispatchEvent(evt);
    }
 };

disableEnterKey = function(e){ 
    var key;   
    if (window.event) key = window.event.keyCode; 
    else key = e.which; 
    return (key != 13); 
}

 
function isArray( obj ) { if ( obj == undefined ) return false; return obj.constructor.toString().indexOf("Array") != -1; }
function isString(obj)  { if ( obj == undefined ) return false; return typeof(obj)=='string' }

