// Implement a trim method into all strings
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

// Implement Array methods
// C/PHP SizeOf
Array.prototype.sizeOf = function() {
  var cnt = 0;
  while(this[cnt]) {
    cnt++;
  }
	return cnt;
}

// array[] = ...
Array.prototype.addItem = function(item, id) {
  if(id) var cnt = id; else var cnt = this.sizeOf();
  this[cnt] = item;
  cnt++;
  return cnt;
}

// deleteItem method
Array.prototype.deleteItem = function(id, customsizeof) {
  var temparray = new Array();
  var nid=0;
  if (customsizeof) var sizeof = customsizeof; else var sizeof=this.sizeOf();
  for(i=0; i<sizeof; i++) {
    if(i!=id) {
      temparray[nid] = this[i];
      nid++;
    }
  }
  return temparray;
}

// moveUpItem method
Array.prototype.moveUpItem = function(id) {
  var temparray = new Array();
  var nid=0;
  if(id==0) return this;
  var newpos = (id-1);
  for(i=0; i<newpos; i++) {
    temparray[nid] = this[i];
    nid++;
  }
  temparray[newpos] = this[id];
  nid++;
  temparray[nid] = this[newpos];
  nid++;
  for(i=(newpos+2); i<this.sizeOf(); i++) {
    temparray[nid] = this[i];
    nid++;
  }
  return temparray;
}

// moveDownItem method
Array.prototype.moveDownItem = function(id) {
  var temparray = new Array();
  var nid=0;
  if(id==(this.sizeOf()-1)) return this;
  var newpos = (id+1);
  for(i=0; i<id; i++) {
    temparray[nid] = this[i];
    nid++;
  }
  temparray[nid] = this[newpos];
  nid++;
  temparray[newpos] = this[id];
  nid++;
  for(i=(newpos+1); i<this.sizeOf(); i++) {
    temparray[nid] = this[i];
    nid++;
  }
  return temparray;
}

Array.prototype.dump = function() {
  var ret = '';
  for(i=0; i<100; i++) {
    ret+=this[i]+' ';
  }
	return ret;
} 

function SetTransparency(obj, ratio) {
  if(ratio<0) ratio=0;
  if(ratio>100) ratio=100;
  obj.style.MozOpacity=(ratio*0.01);
  obj.style.KhtmlOpacity=(ratio*0.01);
  obj.style.filter="alpha(opacity=" + ratio + ")"; 
  obj.style.opacity=(ratio*0.01);
} 

function GetTopOffset(Obj) {
  var OffsetTop = Obj.offsetTop;
  var OffsetParent = Obj.offsetParent;
  while(OffsetParent) {
    OffsetTop+= OffsetParent.offsetTop;
    OffsetParent = OffsetParent.offsetParent;
  }
  return OffsetTop;
}

function GetLeftOffset(Obj) {
  var OffsetLeft = Obj.offsetLeft;
  var OffsetParent = Obj.offsetParent;
  while(OffsetParent) {
    OffsetLeft+= OffsetParent.offsetLeft;
    OffsetParent = OffsetParent.offsetParent;
  }
  return OffsetLeft;
}

function Fade(time, objname) {
  for(i=0; i<10; i++) {
    setTimeout("SetTransparency(document.getElementById('"+objname+"'), 100-("+i+"*10))", (parseInt((i*time))));
  } 
  i++;
  setTimeout("document.getElementById('"+objname+"').style.display='none'",(parseInt((i*time))));
  i++;
  setTimeout("SetTransparency(document.getElementById('"+objname+"'), 0)", (parseInt((i*time))));
}

function PM(l, p1, p2) {
  var link = document.getElementById(l+p1+p2);
  link.href = 'mailto:'+l+'@'+p1+'.'+p2;
  link.innerHTML = l+'@'+p1+'.'+p2;
}
