var textname="text"

function init(){/* Для добавления комментариев */
 if (window.textname) {
  document.getElementById('text').name=textname
  document.getElementById('textcom').name=textname
 }
}

function checkname(obj) { /* Существует ли уже имя файла? */
 var name=obj.value, c=''
 if (name.length>3) {
  var src="chekname.php?name="+name
  scriptRequest(src)
 }
}

// http://simon.incutio.com/archive/2004/05/26/addLoadEvent
function addLoadEvent(func) {
 var oldonload = window.onload;
 if (typeof window.onload != 'function') {
  window.onload = func;
 }
 else {
  window.onload = function() {
   oldonload();
   func();
  }
 }
}

//by http://javascript.ru/ui/offset
function getOffsetSum(elem) {
 var top=0
 while(elem) {
  top = top + parseInt(elem.offsetTop)
  elem = elem.offsetParent
 }
 return top
}

//by http://javascript.ru/ui/offset
function getTopLeft(elem) {
 var top=0, left=0
 while(elem) {
  top = top + parseInt(elem.offsetTop)
  left = left + parseInt(elem.offsetLeft)
  elem = elem.offsetParent
 }
 return {top:top, left:left}
}

function striptags(str) {
 /* дополнительная красота (в нашем скрипте не нужно)
 str=str.replace(/(\<(br|tr|p|li|dt|dd))/ig,"\n$1"); */
 str=str.replace(/\<[^\<\>]+\>/ig,"");
 return str;
}

//by torrents.ru
function getCookie(name) {
 var value=new RegExp("(^|;)\\s*"+name+"\\s*\\=\\s*([^;]+)($|;)","i").exec(document.cookie);
 return value && value[2];
}

function setCookie(name, value) {
 name=("string"==typeof(name) && name) || this.name
 value=value || this.value
 var expires = new Date(); expires.setTime(expires.getTime()+36*24*60*60*1000);
 expires = expires.toGMTString(); 
 document.cookie=name+"="+value+"; expires=" + expires+"; path=/"; 
}

function trim(str) {
 var newstr=str.replace(/^\s+|\s+$/,"");
 return newstr;
}

function toggle(obj) {
 var el = document.getElementById(obj);
 if ( el.style.display != 'none' ) {
  el.style.display = 'none';
 }
 else {
  //иногда придётся писать 'block' или 'inline'
  el.style.display = '';
 }
}

function getbyclass(cl, tag, obj) {
 tag = tag || "*"
 obj = obj || window.document
 var re=new RegExp("\\b"+cl+"\\b", "i"), 
  arr=[], el, list = obj.getElementsByTagName(tag)
 for (var i=0; i<list.length; i++) {
  el=list[i]
  if (el.className && -1!=el.className.search(re)) arr.push(el)
 }
 return arr
}

function insertAfter(parent, node, referenceNode) {
// if (referenceNode && referenceNode.nextSibling)
  parent.insertBefore(node, referenceNode && referenceNode.nextSibling);
// else
//  parent.appendChild(node);
}

var completed=true;
function scriptRequest(src) {
 if (!completed) return false;
 var el=document.createElement("SCRIPT");
 el.type="text/javascript";
 document.body.appendChild(el);
 el.src=src;
 completed=false;
}

function hex2dec(str){
 return (parseInt(str,16))
}

function dec2hex(num){
 return num.toString(16)
}

function cancel(e) {
 e = e || window.event
 if (27==e.keyCode) hidTemp()
}

function hidTemp() { /* Спрятать всплывшее <>*/
 tempobj=window.tempobj || window.parent.tempobj //вызов из iframe
 if (!tempobj) return
 var t=(tempobj.length)?tempobj:new Array(tempobj) //несколько элементов
 for (var i=0; i<t.length; i++) {
//  alert(t[i] && t[i].id)
  if (t[i]) t[i].className+=" disnone"
 }
}

function stripSelfHref() {/* Убрать со страницы ссылки "на себя" */
 var links=document.getElementsByTagName("A");
 for (var a=0; a<links.length; a++) {
  var elem=links[a];
  if (elem.href==document.location.href) {
   elem.removeAttribute("href");
  }
 }
}

//by otvety.google.ru, mihaild, 09.09.2009 22:41:15
function get_GET() {
 var parts=document.location.search.substr(1).split("&");
 var GET={}, gettex="", curr;
 for (i=0; i<parts.length; i++) {
  curr = parts[i].split('=');
  GET[curr[0]] = curr[1];
 }
 return GET;
}

function checkform(obj){
 var list=obj.elements, el
 for (var i=0; i<list.length; i++) {
  el=list[i]
  if ("need"==el.className) {
   if (!el.value) {
    alert('Обязательный элемент '+el.name)
    return false 
   }
  }
 }
}

function findProp(arr, obj, ess){
 var prop, tmp
 for (var i=0; i<arr.length; i++) {
  tmp = arr[i]
  if (tmp in obj && (!ess || obj[tmp])) {
   prop = tmp; break;
  }
 }
 return prop
}

function togglevis(obj, knop) {
 knop=knop || {}
 var i, o, note = findProp(["value", "innerHTML"], knop)
 if (typeof(obj) == "string")
  obj = document.getElementById(obj);
 if (!obj) return
 if (!obj.pop) obj=[obj]
 for (i=0; i<obj.length; i++) {
  o = obj[i]
  if (-1 == o.className.search(/ disnone\b/i)) {
   o.className += " disnone"
  }
  else {
   o.className = o.className.replace(/ disnone\b/ig,"")
  }
 }
 if (-1 == obj[0].className.search(/ disnone\b/i)) 
  knop[note] = "Скрыть"
 else knop[note] = "Показать"
}

function findParent(obj, tag, classn){
 //передавать массив имя-значение (доделать)
 var objtag
// var log1="//"+obj.tagName+" "+obj.className
 while (obj && document.body!=obj.parentNode) {
  objtag=obj && obj.tagName
//  if (!objtag) {obj=obj.parentNode; continue;}
//  alert(obj.tagName+tag)
  if (objtag && tag.toLowerCase()==objtag.toLowerCase()) {
   if (!classn || -1!=obj.className.indexOf(classn)) {
    return obj
   }
  }
  obj=obj.parentNode
//  log1+="//"+objtag+" "+obj.className
//  alert(log1)
 }
 return null
}

function findParent2(obj, arr){
 arr=[{name:"tagName", value:"li"}, {name:"className", value:"disnone"}]
 var prop, name, value, re
 while (obj && document.body!=obj.parentNode) {
  name=arr[0].name; value=arr[0].value; 
  re = new RegExp("\\b"+value+"\\b", "i")
  prop=obj && obj[name]
  if (obj && obj[name] && obj[name].toLowerCase()==value.toLowerCase()) {
   if (!classn || -1!=obj.className.indexOf(classn)) {
    return obj
   }
  }
  obj=obj.parentNode
//  log1+="//"+objtag+" "+obj.className
//  alert(log1)
 }
 return null
}

function setchbox(el) {
  if (!(el && el.type && "checkbox"==el.type)) return
  gc=getCookie(el.id)
  if (gc) { /* else значения из PHP */
   ch=(1==gc)?true:false
   el.checked=ch
  }
}

function prevent(e) {
 e.cancelBubble = true
 if (e.stopPropagation) {
  e.stopPropagation()
  e.preventDefault()
 }
}

function delclass(obj, c) {
 var re=new RegExp(' *'+c+'\\b', 'ig')
 obj.className = obj.className.replace(re, "")
}

function addclass(obj, c) {
 var re=new RegExp(' *'+c+'\\b', 'ig')
 if (!re.test(obj.className))
  obj.className += " "+c
}

function hidd(obj, yes) {
 if (yes) obj.className += " disnone"
 else delclass(obj, "disnone")
}

function initvar() {
 for (var prop in c) {
  var b=c[prop]
  if (0<b.length)
   d[b]=document.getElementById(b)
 }
}


