String.prototype.repeat = function(n){
	n= intval(n);
	return Array(n+1).join(this);
}

function intval (mixed_var, base)
{
	var tmp;
	var type = typeof( mixed_var );
	
	if (type === 'boolean') {
		return (mixed_var) ? 1 : 0;
	} else if (type === 'string') {
		tmp = parseInt(mixed_var, base || 10);
		return (isNaN(tmp) || !isFinite(tmp)) ? 0 : tmp;
	} else if (type === 'number' && isFinite(mixed_var) ) {
		return Math.floor(mixed_var);
	} else {
		return 0;
	}
}

function strpos (haystack, needle, offset)
{
    var i = (haystack+'').indexOf(needle, (offset || 0));
    return i === -1 ? false : i;
}

function addLoadEvent(func)
{
  var oldonload = window.onload;
  if (typeof window.onload != 'function')
  {
    window.onload = func;
  }
  else
  {
    window.onload = function()
    {
      if (oldonload)
      {
        oldonload();
      }
      func();
    }
  }
}

function disableEnterKey(e)
{
  var key;
  if(window.event)
    key = window.event.keyCode;     // IE
  else
    key = e.which;     // FireFox

  if(key == 13)
    return false;
  else
    return true;
}

function findPosX(obj) {
  var curleft = 0;

  if(obj.offsetParent) {
    while(1) {
      curleft += obj.offsetLeft;
      if(!obj.offsetParent)
        break;
      obj = obj.offsetParent;
    }
  } else if(obj.x) {
    curleft += obj.x;
  }

  obj.style.position = "static";

  return curleft;
}

function findPosY(obj) {
  var curtop = 0;

  if(obj.offsetParent) {
    while(1) {
      curtop += obj.offsetTop;
      if(!obj.offsetParent)
        break;
      obj = obj.offsetParent;
    }
  } else if(obj.y) {
    curtop += obj.y;
  }

  return curtop;
}

function hasClass(ele,cls)
{
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls)
{
  if (!hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls)
{
  if (hasClass(ele,cls))
  {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}

function in_array (needle, haystack, argStrict)
{
  var key = '', strict = !! argStrict;
 
  if (strict)
  {
    for (key in haystack)
    {
      if (haystack[key] === needle)
      {
        return true;
      }
    }
  }
  else
  {
    for (key in haystack)
    {
      if (haystack[key] == needle)
      {
        return true;
      }
    }
  } 
  return false;
}
