
function confirmLink(_title, _link) {
  if (confirm(_title)) {
    location.href=_link;
  }
}

function getCookie(name){
  var elems = document.cookie.split(';');
  for(var i=0;i<elems.length;i++)	{
    var arr = elems[i].split('=');
    if(arr[0] == name)
    return arr[1];
  }
  return null;
}

function setCookie( name, value, expires, path, domain, secure ){
  document.cookie = name + "=" + escape( value ) +
  ((expires) ? "; expires=" + expires.toGMTString() : "") +
  ((path) ? "; path=" + path : "") +
  ((domain) ? "; domain=" + domain : "") +
  ((secure) ? "; secure" : "");
}



function swpImg(ii, nm, param){
  if(param=="i")  {
    document.getElementById(ii + nm).src = im[ii].i.src;
  }
  else  {
    document.getElementById(ii + nm).src = im[ii].o.src;
  }
}

function preload(nm){
  this.i=new Image();
  this.i.src="templates/images/forms/!"+nm+".gif";
  this.o=new Image();
  this.o.src="templates/images/forms/"+nm+".gif";
}

function setPointer(theRow, thePointerColor) {
  if (thePointerColor == '' || typeof(theRow.style) == 'undefined') {
    return false;
  }
  if (typeof(document.getElementsByTagName) != 'undefined') {
    var theCells = theRow.getElementsByTagName('td');
  }
  else if (typeof(theRow.cells) != 'undefined') {
    var theCells = theRow.cells;
  }
  else {
    return false;
  }
  var rowCellsCnt  = theCells.length;
  for (var c = 0; c < rowCellsCnt; c++) {
    theCells[c].style.backgroundColor = "#"+thePointerColor;
  }
  return true;
}


function show_message(dhref, w, h)
{
  x = Math.round((screen.height / 2) - (h/2));
  y = Math.round((screen.width / 2) - (w/2));
  newWindow = window.open(dhref, "dkMessage", "width="+w+",height="+h+",scrollbars=yes,resizable=yes,addressbar=yes,top="+x+",left="+y);
  newWindow.focus(dhref);
  //open(dhref);
}


//*****************************************************************************
//based on js from mail.rambler.ru
function ramac_event(evt) {
  return (evt) ? evt : ((window.event) ? event : null);
}
function ramac_cancel(evt) {
  evt.returnValue = false;
  evt.cancelBubble = true;
  if (evt.preventDefault) {
    evt.preventDefault();
  }
  if (evt.stopPropagation) {
    evt.stopPropagation();
  }
}
function evt_cancel(evt) {
  evt = ramac_event(evt);
  if (evt) ramac_cancel(evt);
  return false;
}
var undefined;
$ = get_node = !document.getElementById
? function (e) { return typeof e == 'string' ? undefined : e }
: function (e) {
  if (typeof e === 'string') {
    return document.getElementById(e);
  } else {
    return e;
  }
}
;
function evt_coords(evt) {
  var coords = {left:0, top:0};
  if (evt.pageX) {
    coords.left = evt.pageX;
    coords.top = evt.pageY;
  } else if (evt.clientX) {
    coords.left =
    evt.clientX + document.body.scrollLeft - document.body.clientLeft;
    coords.top =
    evt.clientY + document.body.scrollTop - document.body.clientTop;
    // include html element space, if applicable
    if (document.body.parentElement && document.body.parentElement.clientLeft) {
      var bodParent = document.body.parentElement;
      coords.left += bodParent.scrollLeft - bodParent.clientLeft;
      coords.top += bodParent.scrollTop - bodParent.clientTop;
    }
  }
  return coords;
}
function ramac_add_handler(element, event_type, func) {
  if (element.attachEvent) {                  // IE
    element.attachEvent('on' + event_type, func);
  } else if (element.addEventListener) {      // W3C
    element.addEventListener(event_type, func, false);
  } else {                                    // should not happen
    element['on' + event_type] = func;
  }
}
function ramac_remove_handler(element, event_type, func) {
  if (element.detachEvent) {                  // IE
    element.detachEvent('on' + event_type, func);
  } else if (element.removeEventListener) {   // W3C
    element.removeEventListener(event_type, func, false);
  } else {                                    // should not happen
    element['on' + event_type] = null;
  }
}
// from y!
// add a class to an element
function add_class (element, class_name) {
  // do not add duplicates
  if (element && element.className.indexOf(class_name) == -1)
  element.className += " " + class_name;
}
// remove a class from an element
function remove_class (element, class_name) {
  if (!element) return;
  element.className = element.className.replace(class_name, "");
  // this leaves ll those " " behind, no harm
}
function checklist_install(checkboxes, check_all) {
  if (!checkboxes) return;
  var items = checkboxes.length ? checkboxes : [ checkboxes ];
  if (check_all)
  ramac_add_handler(check_all, 'click', function() {
    for (var i = 0; i < items.length; i++) items[i].checked = check_all.checked;
  });
  items[0].prev_click = 0;
  for (var i = 0; i < items.length; i++) {
    items[i].index = i;
    ramac_add_handler(items[i], 'click', function(evt) {
      var evt = ramac_event(evt);
      var item = evt.target || evt.srcElement;
      var cur_click = item.index;
      if (evt) {
        if (evt.shiftKey) {
          var from = items[0].prev_click, to = cur_click;
          if (from > to) {
            to = from;
            from = cur_click;
          }
          for (var i = from; i <= to; ++i) {
            items[i].checked = item.checked;
          }
        }
      }
      items[0].prev_click = cur_click;
      if (check_all) {
        check_all.checked = true;
        for (var i = 0; i < items.length; i++) {
          if(!items[i].checked) {
            check_all.checked = false;
            break;
          }
        }
      }
    });
  }
}

function checklist_any(checkboxes) {
  if (!checkboxes) return false;
  var items = checkboxes.length ? checkboxes : [ checkboxes ];
  for (var i = 0; i < items.length; ++i)
  if (items[i].checked)
  return true;
  return false;
}

// idea from: http://www.alistapart.com/articles/zebratables
function zebra_table(id) {
  if (!document.getElementById) return;
  var even = false;

  var table = document.getElementById(id);
  if (! table) { return; }

  var tbodies = table.getElementsByTagName("tbody");

  for (var h = 0; h < tbodies.length; h++) {
    var trs = tbodies[h].getElementsByTagName("tr");

    for (var i = 0; i < trs.length; i++) {

      if (even) {
        add_class(trs[i], 'dark');
      } else {
        add_class(trs[i], 'light');
      }
      even =  ! even;
    }
  }
}


function comcheck(chk){
  document.getElementById(chk).click();
}

function SWHide(elem) {
  tml = document.getElementById(elem)
  if (tml.style.display == "none") {
    tml.style.display = "block";
  }
  else {
    tml.style.display = "none";
  }
}




function ajhook(elm, alertmessage){
  rgo = true;
  if ( (alertmessage!=null) && (alertmessage!="") && (alertmessage!="undefined") ) {
    rgo = false;
    if (confirm(alertmessage)) {
      rgo = true;
    }
  }
  
  if (rgo) {
    tgt = elm.href;
    holder = document.getElementById("ipch");
    if(!this.http) {
      this.http = get_http();
      this.working = false;
    }
    if (!this.working && this.http) {
      var http = this.http;
      sub = Math.round(Math.random() * 99999);
      url = tgt + "&srand=" + sub + "&inpagecart=1&aj=1";
      this.http.open("GET", url, true);
      this.http.onreadystatechange = function() {
        if (http.readyState == 4) {
          if (http.responseText != '') {
            if (http.responseText == 'hide') {
              holder.innerHTML = '';
              holder.style.display = 'none';
            }
            else {
              holder.style.display = 'block';            
              holder.innerHTML = http.responseText;
            }
            elm.style.background = 'transparent url(files/icons/obj/incart.gif) no-repeat left';
            elm.style.color = '#555555';
          }
          this.working = false;
        }
        else {
         // holder.innerHTML = "<span style='padding: 5pt; display: block;'>...</span>";
        }
      }
      this.http.send(null);
      this.working = false;
    }
    if(!this.http){
      alert('Ошибка при создании XMLHTTP объекта!');
    }
  }
}











function RecalcSelected(id, chname, formname){
  checkboxes = document.forms[formname].elements[chname];
  if (!checkboxes) return;
  var items = checkboxes.length ? checkboxes : [ checkboxes ];
  ccount = 0;
  for (var i = 0; i < items.length; i++) {
    if (items[i].checked) {
      ccount++;
    }
  }
  hcc = document.getElementById("htcount" + id);
  hcc.innerHTML =  ' (' + ccount + ')';
}

function ShowHideHB(id, chname, formname){
  obj = document.getElementById('ht'+id);
  ddobj = document.getElementById('hc'+id);
  ddobj.left = obj.left;
  ddobj.top = obj.top + 21;
  if (ddobj.style.display=="block") {
    ddobj.style.display="none";
    if (document.getElementById("topBanner")){
      document.getElementById("topBanner").style.visibility = 'visible';
    }

    RecalcSelected(id, chname + '[]', formname);
  }
  else {
    if (document.getElementById("topBanner")){
      document.getElementById("topBanner").style.visibility = 'hidden';
    }
    ddobj.style.display="block";
  }
}
