
//************************************************************
//************************************************************
//####################################
//## ArticleVoting
//####################################
//## v1
//## Author: df
//## 30.04.2010
//************************************************************
//************************************************************

function ArticleVoting() {
  
}

//************************************************************


ArticleVoting._imageElementClass = 'voting-image';
ArticleVoting._buttonClassPrefix = 'voting-button-';
ArticleVoting._activeClassPrefix = 'voting-active-';


ArticleVoting._ajax = Ajax.createInstance();
ArticleVoting._ajax.setMethod('GET');
ArticleVoting._ajax.setAsynchron(false);

//************************************************************

ArticleVoting.mouseover = function (elem) {
  if (! arguments.length) {
    return;
  }
  var imgElem = ArticleVoting.getImageElement(elem);
  if (! imgElem) {
    return;
  }
  var rate = elem.className.replace(ArticleVoting._buttonClassPrefix,'');
  var cName = imgElem.className;
  var lastActiveClass = new RegExp(' ?' + ArticleVoting._activeClassPrefix + '\\d?\\d?' );
  cName = cName.replace(lastActiveClass,'');
  cName += ' ' + ArticleVoting._activeClassPrefix + rate;
  imgElem.className = cName;
}

//************************************************************

ArticleVoting.mouseout = function (elem) {
  if (! arguments.length) {
    return;
  }
  var imgElem = ArticleVoting.getImageElement(elem);
  if (! imgElem) {
    return;
  }
  var rate = elem.className.replace(ArticleVoting._buttonClassPrefix,'');
  var cName = imgElem.className;
  var lastActiveClass = new RegExp(' ?' + ArticleVoting._activeClassPrefix + '\\d?\\d?' );
  cName = cName.replace(lastActiveClass,'');
  imgElem.className = cName;
}

//************************************************************

ArticleVoting.click = function (elem, idartikel) {
  if (arguments.length != 2) {
    return;
  }
  Ajax.cursorWait();
  var rate = elem.className.replace(ArticleVoting._buttonClassPrefix,'');
  var url = CMS_PREFIX_FULL;
  url += '&_bereich=artikel&_aktion=ajax_vote&idartikel=' + idartikel + '&note=' + rate;
  ArticleVoting._ajax.setURL( url );
  ArticleVoting._ajax.open();
  ArticleVoting._ajax.sendNull();
  
  if ( ArticleVoting._ajax.getReadyState() == 4){
     if (ArticleVoting._ajax.getStatus() != 200){
       Ajax.cursorFinished();
       return false;
     }
    var xml = ArticleVoting._ajax.getReadableXMLNode();
    if (! xml){
      return false;
    }
    if (ArticleVoting._ajax.getSingleNodeValue('status') != 'ok'){
      alert('Ihre Berwertung wurde aufgenommen.\nVielen Dank.');
      Ajax.cursorFinished();
      var url = window.location;
      window.location = url;
      return true;
    }  
  }
  
  Ajax.cursorFinished();
}

//************************************************************

ArticleVoting.getImageElement = function (elem) {
  var parent = elem.parentNode;
  while (parent && parent.nodeName.toLowerCase()!='body') {
    if (parent.className.match(ArticleVoting._imageElementClass) ) {
      return parent;
    }
    parent = parent.parentNode;
  }
  return undefined;
}

//************************************************************

