/**
 * Suchfeld anhand von der Autocompleter Auswahl befuellen
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function fillSearchFieldFromSelectedAutoCompleterItem(autcompleter_selected_item) {

	search_field = $('query');

	/*
	 * Fill search field
	 */
  if (!$('org_search_string').value || $('search_has_focus').value == 1) {

    $('org_search_string').value = search_field.value;
  } else  {

  	search_field.value   				 = cleanAutoCompleterSearchString(autcompleter_selected_item);
  }
}

/**
 * Set search field focus
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function setSearchFieldFocus(mode) {

  $('search_has_focus').value = mode;

  if (mode == 2) {

	  search_field = $('query');
  	$('org_search_string').value = cleanAutoCompleterSearchString(search_field.value);
  }
}

/**
 * Suchfeld Focus holen
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function getSearchFieldFocus(mode) {

	return  $('search_has_focus').value;
}

/**
 * "Original" Suchstring speichern
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function writeOriginalString(string) {

  $('org_search_string').value = string;
}

/**
 * "Original" Suchstring zurueckschreiben
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function writeBackOriginalString() {

  $('query').value = $('org_search_string').value;
}

/**
 * Cursor zurueck in das Suchfeld
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function placeCursorInSearchField() {

	/*
	 * Focus im Suchfeld
	 */
	$('query').focus();

	/*
	 * Cursor positionieren
	 */
	setCursorTo($('query'), $('query').selectionStart, $('query').selectionEnd);
}

/**
 * Cursor im Suchfeld positionieren
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function setCursorTo(input_elm, sel_start, sel_end) {

	if (!input_elm) {

	  input_elm = $('query');
	}

  if (input_elm.createTextRange) {

	  var range = input_elm.createTextRange();
	  range.collapse(true);
	  range.moveEnd('character',   sel_end);
	  range.moveStart('character', sel_start);
	  range.select();
  } else if (input_elm.setSelectionRange) {

    input_elm.focus();
    input_elm.setSelectionRange(sel_end,   sel_end + 1);
    input_elm.setSelectionRange(sel_start, sel_end);
  }
}

/*
 * Suche abschicken
 */
function submitMe(text, li){

  /*
   * Autocompleter Suchstring bereinigen
   *
   * @author kscheffelmeier <kscheffelmeier@soft-science.de>
   */
  search_string    = cleanAutoCompleterSearchString(li.innerHTML);
  $('query').value = search_string;

  $('aposuche').submit();
}

/*
 * Bold-Tags entfernen
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function cleanAutoCompleterSearchString(str) {

	if (str) {

	  return str.replace(/<[^>]*>/g, "");
	}
}

function trackURL(URL){

  var turl = 'http://www.apomio.de/trackURL.php?url='+escape(URL);
  var myAjax = new Ajax.Request( turl);
}

/**
 * HIGHLY DECREPEATED
 */
function clickCount(pzn){

  return true;
}

function displayCart(){

  new Ajax.Updater('shoppingcart', '/warenkorb/index', {asynchronous:true, evalScripts:true, onComplete:calculatePrice});
}

function subFromCart(pzn, name, loadfullsite){

  var url = '/warenkorb/sub/pzn/'+escape(pzn)+'/old/false';

  if(loadfullsite) {

    disableWkControl();
    new Ajax.Updater('cart', url, {asynchronous:true, evalScripts:true,  onComplete:function() {reloadWkList(); }});
  } else {

    new Ajax.Updater('cart', url, {asynchronous:true, evalScripts:true, onComplete:calculatePrice});
  }
}

function addToCart(pzn, loadfullsite, redirect){

  var url = '/warenkorb/add/pzn/'+escape(pzn)+'/old/false';
  var element = document.getElementById('shoppingcart');

  if (loadfullsite) {

    //var url = '/warenkorb/add/pzn/'+escape(pzn)+'/old/true';
    disableWkControl();
    new Ajax.Updater('cart', url, {asynchronous:true, evalScripts:true, onComplete:function() {reloadWkList();}});
  } else {

    if(redirect) {

      document.location.href = '/warenkorb/add/pzn/'+escape(pzn)+'/old/true';
    } else {

      new Ajax.Updater('cart', url, {asynchronous:true, evalScripts:true, onComplete:calculatePrice});
      showBestaetigung();
    }
  }
}

function calculatePrice(xmlHttpRequest){

    //var url = 'http://www.apomio.de/index.php?id=2&type=27&tx_stgajaxresponder_pi1[action]=calcPrice';
    //var pars = '';//'action=calcPrice';
    //var myAjax = new Ajax.Request( url, { onComplete:appendToCart, method: 'get', parameters: pars});
}

function appendToCart(originalRequest) {
    var y = $('warenkorb_background');

    y.innerHTML = y.innerHTML+originalRequest.responseText;
}

function showCart(originalRequest) {

  var y = $('shoppingcart');
  y.innerHTML = originalRequest.responseText;
  calculatePrice(originalRequest);
}

function removeFromCart(pzn, loadfullsite){

  var url = '/warenkorb/remove/pzn/'+escape(pzn)+'/old/false';

  if(loadfullsite) {

    disableWkControl();
    var myAjax = new Ajax.Updater( 'cart', url, {asynchronous:true, evalScripts:true, onComplete:function() {reloadWkList();}});
  } else {

    var myAjax = new Ajax.Updater( 'cart', url, {asynchronous:true, evalScripts:true, onComplete:calculatePrice});
  }
}


function redirectFunction(originalRequest){
  urlR = originalRequest.responseText;
  //werbung=window.open(url,'Weiterleitung');
  //if(werbung == NULL)
  //	window.location.href = url;
    window.location.href= urlR;
  //werbung.focus;

}

function disableWkControl() {

  if($('wk_schutz')) {

    document.getElementById('wk_schutz').style.display      = 'block';
    document.getElementById('wk_inner_shutz').style.display = 'block';
  }
}

function enableWkControl() {

  if($('wk_schutz')) {

    document.getElementById('wk_schutz').style.display      = 'none';
    document.getElementById('wk_inner_shutz').style.display = 'none';
  }
}

function reloadWkList() {

  new Ajax.Updater('ajaxLoadCart', '/warenkorb/ajaxLoadList.html', {asynchronous:true, evalScripts:true, onComplete: function() {enableWkControl();}});
}

var ajax_wk_window;

function showBestaetigung() {

  new Ajax.Updater('cart_div', '/warenkorb/ajaxShowBest.html', {asynchronous:true, evalScripts:true, onComplete: function() { $('cart_div').style.display = 'block'; window.setTimeout("closeBestaetigung();", 3000);}});
}

function closeBestaetigung() {

 $('cart_div').style.display = 'none';
}


/*
 * LEGACY FOR USERBACKEND START
 */
function addToCartOld(pzn){

  var url = '/warenkorb/add/pzn/'+escape(pzn)+'/old/true';
  var element = document.getElementById('shoppingcart');
  element.style.display = 'none';
  element.className     = 'in-basket-box';
  element.style.display = 'block';
  new Ajax.Updater('shoppingcart', url, {asynchronous:true, evalScripts:true, onComplete:calculatePrice});
}

function removeFromCartOld(pzn){

  var url = '/warenkorb/remove/pzn/'+escape(pzn)+'/old/true';
  var myAjax = new Ajax.Updater( 'shoppingcart', url, {asynchronous:true, evalScripts:true, onComplete:calculatePrice});
}

function subFromCartOld(pzn){

  var url = '/warenkorb/sub/pzn/'+escape(pzn)+'/old/true';
  new Ajax.Updater('shoppingcart', url, {asynchronous:true, evalScripts:true, onComplete:calculatePrice});
}
function shrinkAfterLightbox () {

  if (window.navigator.userAgent.indexOf("MSIE 6") > -1) {
    document.getElementById('page').style.top = '-280px';
  }
}

function enlargeAfterLightbox () {
  if (window.navigator.userAgent.indexOf("MSIE 6") > -1) {
    document.getElementById('page').style.top = '0px';
  }
}

/**
 * Leitet einen unangemeldeten Benutzer auf die Loginseite wenn
 * er versucht einen Warenkorb zu speichern, oder eine Apotheke
 * bewerten moechte.
 *
 * @author thallek
 */
function redirectToLogin(referer_action) {

  document.location.href = '/userprofile/login.html?referer=' + referer_action;
}

/**
 * Medikamenten bzw. Krankheitssuche umschalten
 *
 * @author maichele
 */
function switchSearchType(sender) {

  InputKrankheit  = document.getElementById('query_krankheiten');
  InputMedikament = document.getElementById('query');

  img_medi    = document.getElementById('img_medi_search');
  img_disease = document.getElementById('img_disease_search');
  form        = document.getElementById('aposuche');

    if (sender.id == 'switch_medi') {

      img_medi.src    = '/images/radio_selected.png';
      img_disease.src = '/images/radio_unselected.png';
      form.action     = '/suche.html';

      InputMedikament.style.display = 'block';
      InputMedikament.disabled = false;

      InputKrankheit.style.display = 'none';
      InputKrankheit.disabled = true;

      if (InputKrankheit.value != 'Suchbegriff/Krankheit') {

        InputMedikament.value = InputKrankheit.value;
      }

    } else {

      img_medi.src    = '/images/radio_unselected.png';
      img_disease.src = '/images/radio_selected.png';
      form.action     = '/krankheit.html';

      InputMedikament.style.display = 'none';
      InputMedikament.disabled = true;

      InputKrankheit.style.display = 'block';
      InputKrankheit.disabled = false;

      if (InputMedikament.value != 'Suchbegriff/Medikament/PZN') {

        InputKrankheit.value = InputMedikament.value;
      }
    }
}

/**
 * Ajax-Aufruf der einen geladenen oder neuen Warenkorb abspeichert
 * und eine Erfolgsmeldung in der Lightbox ausgibt.
 *
 * @author thallek
 */
function saveWarenkorb(base_url) {

  new Ajax.Updater('ajaxBuffer', document.location.protocol + '//' + base_url + '/warenkorb/save.html', {asynchronous:true, evalScripts:true});

  document.getElementById('lightbox2').style.display = 'block';
  document.getElementById('overlay').style.display = 'block';

  return false;
}

/**
 * Leert die Warenkorb-Session und leitet den Benutzer ins
 * Frontend zurueck.
 *
 * @author thallek
 */
function prepareForNewCart(base_url) {

  new Ajax.Updater('ajaxBuffer', document.location.protocol + '//' + base_url + '/warenkorb/clearSession.html', {asynchronous:true, evalScripts:true, onComplete:function(request, json){document.location.href = 'http://' + base_url;}});
}


/**
 * Initiert die Loeschung eines Einzelpreis und blendet die
 * Tabellenzeile auf der Einzelpreisseite im Apothekenprofil
 * aus.
 *
 * @author sweber <sweber@soft-science.de>
 */
function deleteManuellerPreis(einzelpreis_id) {

  new Ajax.Updater('ajaxBuffer', '/statistik/deleteEinzelpreis/' + einzelpreis_id + '.html', {asynchronous:true, evalScripts:true, onComplete:function(request, json){Element.hide('einzelpreis_'+einzelpreis_id);}});

  openLightbox1();

  return false;
}

/**
 * Gibt eine Abfragebox aus bevor ein Einzelpreis geloescht wird.
 *
 * @author sweber <sweber@soft-science.de>
 */
function deleteManuellerPreisAlert(einzelpreis_id) {

  new Ajax.Updater('lightbox1', '/statistik/retrieveAjaxPreisalarmDeleteBox/' + einzelpreis_id + '.html', {asynchronous:true, evalScripts:true});

  openLightbox1();

  return false;
}

/**
 * l�dt die Preisdaten von einem bereits eingetragegen Preis in die Eingabemaske
 * und �ndert dort die Beschriftung
 *
 * @author sweber <sweber@soft-science.de>
 * @param integer einzelpreis_id
 */
function editManuellerPreis(einzelpreis_id) {

  var edit_title = document.getElementById('edit_title');
  var edit_desc  = document.getElementById('edit_desc');
  var edit_pzn   = document.getElementById('pzn');
  var edit_preis = document.getElementById('preis');
  var save_img   = document.getElementById('save_img');

  var element_pzn   = document.getElementById(einzelpreis_id+'_pzn');
  var element_preis = document.getElementById(einzelpreis_id+'_preis');

  edit_title.innerHTML = 'Manuellen Preis bearbeiten';
  edit_desc.innerHTML  = 'Hier k&ouml;nnen Sie den manuellen Preis f&uuml; die PZN '+element_pzn.innerHTML+' festlegen:';
  edit_pzn.value       = element_pzn.innerHTML;
  edit_preis.value     = element_preis.innerHTML;
  save_img.onclick     =  function () { editEinzelpreis('edit') };
}

/**
 * Editiert einen Einzelpreis / legt einen Einzelpreis an
 *
 * @author sweber <sweber@soft-science.de>
 */
function editEinzelpreis(mode) {

  var note  = document.getElementById('message_part');
  var pzn   = document.getElementById('pzn');
  var preis = document.getElementById('preis');
  var save  = true;

  if(pzn.value == '') {

    pzn.className = 'whitelabel_form_input mandatory';
    save          = false;
  } else {

    pzn.className = 'whitelabel_form_input';
  }

  if(preis.value == '') {

    preis.className = 'whitelabel_form_input mandatory';
    save            = false;
  } else {

    preis.className = 'whitelabel_form_input';
  }

  if(save) {

    new Ajax.Updater('ajaxBuffer', document.location.protocol + '//' + document.domain + '/statistik/refreshPrices.html', {asynchronous:true, evalScripts:true, parameters:Form.serialize('new_price')});
    note.innerHTML     = '';
    note.style.display = 'none';
    pzn.value          = '';
    preis.value        = '';

    if(mode == 'edit') {

      document.getElementById('edit_title').innerHTML = 'Manuellen Preis hinzuf&uuml;gen';
      document.getElementById('edit_desc').innerHTML  = 'Hier k&ouml;nnen Sie einen neuen manuellen Preis festlegen:';
      document.getElementById('save_img').onclick     = function () { editEinzelpreis() };
    }

  } else {

    note.innerHTML     = 'Bitte f&uuml;llen Sie die markierten Felder!';
    note.style.display = 'block';
    note.style.padding = '5px';
    note.className     = 'freeText';
  }

  return false;
}


/**
 * Updated die Class des Warenkorbdivs nach einem Ajaxupdate.
 *
 * Gebraucht, weil die Klassen f�r das Main-WK-Div und die F�lle unterschiedlich sind.
 */
function updateCartClass(action) {
  var element = document.getElementById('shoppingcart');
  element.style.display = 'none';
  if(action == 'full') {

    element.className = 'in-basket-box';
  } else {

    element.className = 'basket-box';
  }
  element.style.display = 'block';
}

/**
 * �ffnet eine Lightbox und zeigt ein Detailbild an
 *
 * @author sweber
 */
function openMediDetailLightbox(pzn) {

  new Ajax.Updater('lightbox1', document.location.protocol + '//' + document.domain + '/medikament/showDetailPicture/'+pzn+'.html', {asynchronous:true, evalScripts:true, onSuccess: function() {openLightbox1();}});

  return false;
}

/**
 * �ffnet eine lioghtbox
 *
 */
function openLightbox1() {

  var browser = navigator.userAgent;
  document.getElementById('lightbox1').style.display = 'block';
  document.getElementById('overlay').style.display   = 'block';

  if(browser.indexOf('MSIE') != -1 && browser.indexOf('7') != -1) {

    document.getElementById('overlay').style.height    = document.body.clientHeight;
  } else {

    document.getElementById('overlay').style.height    = (window.scrollMaxY + window.innerHeight)+'px';
  }
}

/**
 * Schliesst eine lioghtbox
 *
 */
function closeLightbox1() {

  document.getElementById('lightbox1').style.display = 'none';
  document.getElementById('overlay').style.display   = 'none';
}

function bookmark(url, title) {

  if (window.sidebar) { // firefox

    window.sidebar.addPanel(title, url, "");
  } else if(window.opera && window.print){ // opera

    var elem = document.createElement('a');
    elem.setAttribute('href',url);
    elem.setAttribute('title',title);
    elem.setAttribute('rel','sidebar');
    elem.click();
  } else if(document.all) { // ie

    window.external.AddFavorite(url, title);
  }
}

/**
 * Entfernt den "Alle Anzeigen"-Link in der Meddetailseite, wenn im PVComponent keine apotheken vorhanden sind
 *
 * @author sweber
 */
function removeDetailAllLink(){

  var element = $('showAllLink');

  if(element) {

    element.style.display = 'none';
  }
}

function openMail(country, domain, receiver) {

  location.href = "mailto:" + receiver + "@" + domain + "." + country;
}

/**
 * Pr�ft beim Enterdr�cken in der Suchbox, ob ein Vorschlag ausgew�hlt wurde
 * und tr�gt ihn ggf. wieder
 *
 * @author sweber
 */
function checkVorschlag(input) {

  var vorschlagsliste = $('vorschlag');

  if(vorschlagsliste.style.display != 'none') {

    var elemente = vorschlagsliste.getElementsByTagName('li');

    for(var count = 0; count < elemente.length; count++) {

      var vorschlag = elemente[count];

      if(vorschlag.className == 'selected') {

        input.value = cleanAutoCompleterSearchString(vorschlag.innerHTML);
        $('aposuche').submit();
        return;
      }
    }
  } else {

    $('aposuche').submit();
    return;
  }
}

/**
 *
 *
 * @author sweber
 */
function countBewBewertung(bewertung_id, positive) {

  new Ajax.Updater('bewertungstext_'+bewertung_id, '/bewertung/bewertungBewerten/'+bewertung_id+'/'+positive+'.html', {asynchronous:true, evalScripts:true});
}

/**
 *
 *
 * @author sweber
 */
function countNebenwirkungBeschBewertung(nebenwirkung_beschreibung_id, positive) {

  new Ajax.Updater('beschreibungstext_'+nebenwirkung_beschreibung_id, '/nebenwirkungen/nebenwirkungBeschreibungBewerten/'+nebenwirkung_beschreibung_id+'/'+positive+'.html', {asynchronous:true, evalScripts:true});
}

function extendDescription() {

  document.getElementById('descriptionseperator').style.display = 'none';
  document.getElementById('descriptionrest').style.display      = 'inline';
  document.getElementById('shortendscription').style.display    = 'inline';
}

function shortenDescription() {

  document.getElementById('descriptionseperator').style.display = 'inline';
  document.getElementById('descriptionrest').style.display      = 'none';
  document.getElementById('shortendscription').style.display    = 'none';
}

/**
 * Modalbox fuer die Packungsbeilage
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function showPackageInsert(med_url, med_name, pzn) {

  var url = '/preisvergleich-ajax/ajaxModalboxPackungsbeilage.html?name='+encodeURI(med_url)+'&pzn='+pzn;

  Modalbox.show(url, { title: 'Packungsbeilage '+med_name, width: 595 });

  return false;
}

/**
 * Aehnliche Produkte sliden
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function slideSmiliarProducts(direction, slide_pzn) {

	new Ajax.Updater('slide_updater', '/warenkorb/ajaxSlide/'+direction+'/'+slide_pzn+'.html', {asynchronous:true, evalScripts:true});

	return false;
}

/**
 * Avoid autocompletion double enter bug
 *
 * @author kscheffelmeier <kscheffelmeier@soft-science.de>
 */
function disableEnterKey(e) {

  var key;

	if (window.event) {

	  key = window.event.keyCode;
	}	else {

	  key = e.which;
	}

	if (key == 13) {

	  return false;
	}	else {

	  return true;
	}
}

/*
 * Shop Button nicht anzeigen da keine Preise vorhanden
 * 
 * @author kscheffelmeier
 */
function hideShopRxButton() {
  
  $('go_to_shop_btn_holder').innerHTML = '';
}