// JavaScript Document

// ----- ToolBox ----


function strpos (haystack, needle, offset) {
    var i = (haystack + '').indexOf(needle, (offset || 0));
    return i === -1 ? false : i;
}


function strrpos (haystack, needle, offset) {
    var i = -1;
    if (offset)
	{
        i = (haystack + '').slice(offset).lastIndexOf(needle); 
        if (i !== -1) i += offset;
        
    } else {       
	i = (haystack + '').lastIndexOf(needle);
    }
    return i >= 0 ? i : false;
}


function str_replace (search, replace, subject, count) {
	  j = 0,
	  temp = '',
	  repl = '',
	  sl = 0,        fl = 0,
	  f = [].concat(search),
	  r = [].concat(replace),
	  s = subject,
	  ra = r instanceof Array,        
	  sa = s instanceof Array;
	  s = [].concat(s);
	  if (count) { this.window[count] = 0;} 
	  for (i = 0, sl = s.length; i < sl; i++) 
	  {
	   if (s[i] === '') {continue; }      
	   for (j = 0, fl = f.length; j < fl; j++) 
	   {
		 temp = s[i] + '';
		 repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
		 s[i] = (temp).split(f[j]).join(repl);
		 if (count && s[i] !== temp) {                this.window[count] += (temp.length - s[i].length) / f[j].length; }
	   }
	  }
	  return sa ? s : s[0];
	}

function ucfirst (str) {
    var f = str.charAt(0).toUpperCase();
    return f + str.substr(1);
}




function debug(object){ if(typeof(console)=='object') console.log(object); }
