var LOGGER_ENABLED=false;
function addEvent( obj, type, fn, p ){
  obj["e"+type+fn] = fn;
  if (obj.addEventListener){
    eval( 'obj.addEventListener( type, function(event){obj["e"+type+fn](event, ' + p + ')}, false );' );
  } else if (obj.attachEvent){
    obj[type+fn] = function() { 
      eval ( 'obj["e"+type+fn](window.event, ' + p + ');' ); 
    }
    obj.attachEvent("on"+type, obj[type+fn]);
  }
}
var getObj=function(id) {
    return document.getElementById(id);
}
var setupLog = function() {
  var logDiv = document.createElement("div");
  logDiv.setAttribute("id","log");
  logDiv.style.position="absolute";
  logDiv.style.top=0;
  logDiv.style.right=0;
  logDiv.style.background="#ccc";
  logDiv.style.height="200px";
  logDiv.style.width="400px";
  logDiv.style.overflow="auto";
  document.body.appendChild(logDiv);
  return logDiv;
  
}
/**
 * @param comparator comparator function with arg0=object, arg1=value
 */
var indexOf = function (_this, value,comparator) {
	var i;
	if(!comparator) {
  	for (i=0; i < _this.length; i++) {
  		if (_this[i] === value) {
  			return i;
  		}
  	}
	} else {
	  	for (i=0; i < _this.length; i++) {
  		if (comparator(_this[i],value)) {
  			return i;
  		}
  	}
	}
	return -1;
};
Array.prototype.indexOf = function(value,comparator) {
  return indexOf(this,value,comparator);
}
var log=function(msg) {
    if(!LOGGER_ENABLED)
      return;
    var target = getObj("log");
    if(!target) {
      target = setupLog();
    }
    target.innerHTML+="<br/>"+msg;
    target.scrollTop=target.scrollHeight;
}
var getPersistentStatus = function(property) {
  var val = getCookie(property);
  if(val==null) return false;
  else {
    /*var ev = eval(val);
    if(ev==null) return false;
    else return ev;
    * */
    return true;
  }
}
var setPersistentStatus = function(property, isThere) {
  if(isThere) setCookie(property,"true",10,"/");
  else deleteCookie(property,"/");
}
var cmd=function() {
    try {
    var txt = document.forms.frm.field.value;
    var res=eval(txt);
    log("cmd:"+txt+"->"+res);
    } catch(e) {}
    return false;
}
var toJSON = function(obj) {
  var ret="";
  for(i in obj) {
    ret+=i+":\""+obj[i]+"\",";
  }
  ret = ret.substring(0,ret.length-1);
  return "({"+ret+"})";
}
function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}
