/*
 * 
 * (C) 2006 Enrique Trias
 * 
 * This work may not be copied, modified, re-published, 
 * uploaded, executed, or distributed in any way, in any 
 * medium, whether in whole or in part, without prior 
 * written permission
 * 
 */

var gE = function(id) {
  return document.getElementById(id);
};

g = function() {
  this.myConn = false;     // the XMLHttpRequest
  this.body = false;       // the body element
  this.m = 0;
  this.c = 0;
  this.p = 0;
  this.albumIndex = 0
  this.picIndex = 0;
  this.userName = 0;
  this.scriptname = "";
};

g.prototype.SetScriptName = function(name) {
  this.scriptname = basename(name);
}

g.prototype.debug = function() {
  document.write('Global Test');
};

g.prototype.init = function() {
  if (1) {
    this.myConn = new XHConn();
    if( !this.myConn ) {
      alert("XMLHttpRequest failed!");
      return;
    }
  };

  this.albumIndex = parseFloat(gE("album_index").value);
  this.picIndex = parseFloat(gE("pic_index").value);
  this.userName = gE("user_name").value;

  // get the body
  this.body = document.getElementsByTagName('body')[0];
};

g.prototype.rollLeft = function() {
  // let's let the user know something is happening (see below)
  this.m.left();
  this.m.scroll(1);
};

g.prototype.rollRight = function() {
  // let's let the user know something is happening (see below)
  this.m.right();
  this.m.scroll(1);
};

g.prototype.addEvent = function(obj, type, fn) {  // the add event function
  if (obj.addEventListener) {
    obj.addEventListener(type, fn, false);
  } else if (obj.attachEvent) {
    obj["e"+type+fn] = fn;
    obj[type+fn] = function() {
      obj["e"+type+fn](window.event);
    };
    obj.attachEvent("on"+type, obj[type+fn]);
  };
};

g.prototype.GetPhpCmdQuery = function(action) {
  return this.scriptname+"?"+this.GetPhpQuery(action);
};

g.prototype.GetPhpQuery = function(action) {
  var str= "a="+getURI(action)+"&o="+getURI(this.albumIndex.toString())+"&p="+getURI(this.picIndex.toString())+"&n="+getURI(this.userName);
  return str;
};

function basename2(path) {
  return path.replace(/.*\//,"");
};

function basename(path) {
  var _pattern = /^(.*\/)?(.*)/;
  // match string
  var rc = path.match(_pattern);
  // rc[0] is full path r[1] is dirname and r[2] basename
  return rc[2];
};

function dirname(path) {
  var _pattern = /^(.*\/)?(.*)/;
  // match string
  var rc = path.match(_pattern);
  // rc[0] is full path r[1] is dirname and r[2] basename
  return rc[1];
};

//needs dd/mm/yyy;hh:mm

function getAge(dateString) {
  var str="";
  var now = new Date();
  var yearNow = now.getYear();
  var monthNow = now.getMonth();
  var dateNow = now.getDate();
  var dob = new Date(dateString.substring(6,10),
		     dateString.substring(0,2)-1,
		     dateString.substring(3,5));
  var yearDob = dob.getYear();
  var monthDob = dob.getMonth();
  var dateDob = dob.getDate();
  
  yearAge = yearNow - yearDob;
  
  if (monthNow >= monthDob)
    var monthAge = monthNow - monthDob;
  else {
    yearAge--;
    var monthAge = 12 + monthNow -monthDob;
  }
  
  if (dateNow >= dateDob)
    var dateAge = dateNow - dateDob;
  else {
    monthAge--;
    var dateAge = 31 + dateNow - dateDob;
    
    if (monthAge < 0) {
      monthAge = 11;
      yearAge--; 
    }
  }

  if (yearAge>1)
    str = str + yearAge + ' years ';
  else if (yearAge==1)
    str = str + yearAge + ' year ';
  if (monthAge>1)
    str = str + monthAge + ' months ';
  else if (monthAge==1)
    str = str + monthAge + ' month ';
  if (dateAge>1)
    str = str + dateAge + ' days';
  else if (dateAge==1)
    str = str + dateAge + ' day';

  if (str!="")
    str = "posted " + str + " ago";
  else
    str = "posted today";
  
  return str;
};

//outputs dd/mm/yyy;hh:mm

function formatDate(date) {
  var d  = date.getDate();
  var day = (d < 10) ? '0' + d : d;
  var m = date.getMonth() + 1;
  var month = (m < 10) ? '0' + m : m;
  var yy = date.getYear();
  var year = (yy < 1000) ? yy + 1900 : yy;
  var h  = date.getHours();
  var hour = (h < 10) ? '0' + h : h;
  var m  = date.getMinutes();
  var min = (m < 10) ? '0' + m : m;
  var dateStr=month + "/" + day + "/" + year + ";" + hour + ":" + min;
  return dateStr;
};

function RightTrim(sString) {
  var c=sString.substring(sString.length-1, sString.length);
  while ( (c == " ") || (c == "\n") || (c == "\r") ) {
    sString = sString.substring(0,sString.length-1);
    c=sString.substring(sString.length-1, sString.length);
  }
  return sString;
};

function getURI(str) {
  if (str!="") {
    str=str.replace(/&/g,"%26");
    str=str.replace(/\"/g,"%22");
    str=str.replace(/\'/g,"%27");
    str=encodeURI(str);
  }
  return str;
}


