//-----------------------------------------------------

debug_level=1;

function debug_echo(s) {
 debug_echol(s,1);
}

function debug_echol(s,l) {
 if (l=="") l=1;
 if (l>debug_level) return;
 if (document.debug_form) document.debug_form.debug_area.value+=s;
}

function debug_clean() {
 if (document.debug_form) document.debug_form.debug_area.value='';
}

//-----------------------------------------------------

function set_display(szDivID, disp) {
 //alert("SETTING LAYER DISPLAY: "+szDivID+" => "+disp);
 var obj = document.getElementById(szDivID);
 if (obj) obj.style.display=disp;
}

function get_display(szDivID) {
 var obj=document.getElementById(szDivID);
 if (obj) return obj.style.display;
}

function change_display(szDivID,d) {
 if (!d) d='';
 display=get_display(szDivID);
 if (display==d) set_display(szDivID,'none');
 else set_display(szDivID,d);
}


function set_visibility(szDivID, iState) {	// 1 visible, 0 hidden
 //alert("SETTING LAYER VISIBILITY: "+szDivID+" => "+iState);
 var obj = document.getElementById(szDivID);
 if (obj) obj.style.visibility = iState ? "visible" : "collapse";
}

function get_visibility(szDivID) {
 var obj = document.getElementById(szDivID);
 if (obj) visibility=obj.style.visibility;
 if (visibility && visibility=='visible') return 1;
 else return 0;
}

function change_visibility(szDivID) {
 v=get_visibility(szDivID);
 if (v) set_visibility(szDivID,0);
 else set_visibility(szDivID,1);
}


function set_content(szDivID,html) {
 if (document.getElementById) {
  var lid=document.getElementById(szDivID);
  if (lid) lid.innerHTML=html;
 }
}

function get_content(szDivID) {
 if (document.getElementById) {
  var lid=document.getElementById(szDivID);
  if (lid) return lid.innerHTML;
 }
}

function set_image_src(szDivID,u) {
 obj=document.getElementById(szDivID);
 if(obj) obj.src=u;
}

function set_class(szDivID,cl) {
 var obj = document.getElementById(szDivID);
 if (obj) obj.className=cl;
}

function get_class(szDivID) {
 var obj=document.getElementById(szDivID);
 if (obj) return obj.className;
}

function add_class(szDivID,cl) {
 var obj=document.getElementById(szDivID);
 if (!obj) return;
 var re=new RegExp(cl);
 if (!obj.className.match(re)) obj.className+=' '+cl;
}

function remove_class(szDivID,cl) {
 var obj=document.getElementById(szDivID);
 if (!obj) return;
 var re=new RegExp(cl);
 obj.className=obj.className.replace(re,'');
}

function change_class(szDivID,cl) {
 var obj=document.getElementById(szDivID);
 if (!obj) return;
 var re=new RegExp(cl);
 if (obj.className.match(re)) obj.className=obj.className.replace(re,"");
 else obj.className+=' '+cl;
}

function is_scroll(szDivID) {
 var obj=document.getElementById(szDivID);
 if (!obj) return;
 var x=obj.scrollTop;
 if (x==0) {
  obj.scrollTop=1;
  if (obj.scrollTop==0) return 0;
  obj.scrollTop=0;
 }
 return 1;
}

function set_fieldset_collapse(szDivID,m) {
 if (m==1) add_class(szDivID,'collapsed');
 else remove_class(szDivID,'collapsed');
}
set_collapse=set_fieldset_collapse;

function change_fieldset_collapse(szDivID) {
 change_class(szDivID,'collapsed');
}
change_collapse=change_fieldset_collapse;

function change_input_type(oldObject, oType) {
 var newObject=document.createElement('input');
 newObject.type=oType;
 if (oldObject.size) newObject.size=oldObject.size;
 if (oldObject.value) newObject.value=oldObject.value;
 if (oldObject.name) newObject.name=oldObject.name;
 if (oldObject.id) newObject.id=oldObject.id;
 if (oldObject.className) newObject.className=oldObject.className;
 oldObject.parentNode.replaceChild(newObject,oldObject);
 return newObject;
}

Array.prototype.in_array=function(v) {
 var i=this.length;
 while (i--) if (this[i]===v) return true;
 return false;
}

//-----------------------------------------------------

function setCookie(name,value,days,path) {
 if (days) {
   var date = new Date();
   date.setTime(date.getTime()+(days*24*60*60*1000));
   var expires = "; expires="+date.toGMTString();
  } else var expires = "";
 if (!path) path="/";
 document.cookie = name+"="+value+expires+"; path="+path;
}

function getCookie(name) {
  var cname=name+"=";
  var dc=document.cookie;
  if (dc.length>0) {
    begin=dc.indexOf(cname);
    if (begin!=-1) {
      begin+=cname.length;
      end=dc.indexOf(";", begin);
      if (end==-1) end=dc.length;
      return unescape(dc.substring(begin, end));
    } 
  }
  return null;
}

function delCookie(name,path) {
 setCookie(name,"",-1,path);
}

function showCookie(c) { alert("COOKIE "+c+" = "+getCookie(c)); }
function showCookies() { alert(document.cookie); }

//-----------------------------------------------------

function load_js(f) {
  debug_echo("load_js: '"+f+"' ...\n");
  var element = document.createElement("script");
  element.setAttribute("type", "text/javascript");
  element.setAttribute("src", f);
  var head=document.getElementsByTagName("body")[0];
  head.appendChild(element);
}

function addLoadEvent(func) {
   var oldonload = window.onload;
   if (typeof window.onload != 'function') {
      window.onload = func;
   }
   else {
      window.onload = function() {
      oldonload();
      func();
    }
   }
}


//-----------------------------------------------------