// 08.03.2010 10:13 [1] Thorben: Text Artikel Textarea: Wenn mehr eingegeben wird als erlaubt, Hinweis
// 08.03.2010 12:51 [2] Thorben: Nicht erlaubte Zeichen
// 31.03.2010 12:51 [3] Thorben: br nach Eingabefelder
var xmlHttp = null;
var text = '';
var node = '';
var rows_g = 0;
var cols_g = 0;
// Neu [2]
var not_allowed_chars = /([|,;])/;
// Ende [2]

function getList(id, rows)
{
  if (window.ActiveXObject)
  {
    try
    {
      xmlHttp= new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      try
      {
        xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e)
      {
      }
    }
  }
  else if (window.XMLHttpRequest)
  {
    try
    {
      xmlHttp= new XMLHttpRequest();
    }      
    catch (e)
    {
    }
  }

  if (xmlHttp)
  {
	xmlHttp.open('GET', '/text.php?action=getlist&id='+ id, true);
    xmlHttp.onreadystatechange = getData;
    xmlHttp.send(null);
  }
}

function getData()
{
  var ausgabe = '';

  if (xmlHttp.readyState == 4)
  {
	text = xmlHttp.responseText;
	if (text != "")
    {
      var inputf = document.getElementsByTagName("input");
	  arr = text.split("|");
      for (k = 0; k < arr.length; k++)
	  {
		id = arr[k].split("=");
		textteile = id[1].split(";");
	    var i = 0;
	    for (var j = 0; j < inputf.length; j++)
        {
		  if (inputf[j].name.indexOf(id[0]) >= 0)
		  {
		    if(typeof textteile[i] != "undefined") 
			  inputf[j].value = textteile[i];
		    i++;
		  }
        }
      }
      var inputf = document.getElementsByTagName("textarea");
	  arr = text.split("|");
      for (k = 0; k < arr.length; k++)
	  {
		id = arr[k].split("=");
	    textteile = id[1].split(";");
	    var i = 0;
	    for (var j = 0; j < inputf.length; j++)
        {
		  if (inputf[j].name.indexOf(id[0]) >= 0)
		  {
			if(typeof textteile[i] != "undefined") 
			  inputf[j].value = textteile[i].replace(/,/g, "\n");
		    i++;
		  }
        }
      }
	}  
  }
}

function update(id, qty, ck, rows, cols)
{
  if (window.ActiveXObject)
  {
    try
    {
      xmlHttp= new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      try
      {
        xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e)
      {
      }
    }
  }
  else if (window.XMLHttpRequest)
  {
    try
    {
      xmlHttp= new XMLHttpRequest();
    }      
    catch (e)
    {
    }
  }

  if (xmlHttp)
  {
    var id_plain = id.replace(/{/g, "").replace(/}/g, "");
	if (rows > 1)
      var inputf = document.getElementsByTagName("textarea");
	else  
      var inputf = document.getElementsByTagName("input");
	var values = '';
    
	for (var j = 0; j < inputf.length; j++)
    {
      if (inputf[j].name.indexOf(id_plain) >= 0)    
        values = values+ ';' + inputf[j].value;
    }
    document.getElementById('update_basket_progress').style.display = 'inline';
    xmlHttp.open('GET', '/text.php?&id='+ id+ '&qty='+ qty+ "&values="+ values, true);
    xmlHttp.onreadystatechange = listData;
    xmlHttp.send(null);
  }
} 

function listData()
{
  var ausgabe = '';

  if (xmlHttp.readyState == 4)
  {
    text = xmlHttp.responseText;
	if (text != "")
    {
      textteile = text.split("|");
      document.getElementById('products_price'+node).innerHTML = textteile[0];
      document.getElementById('total').innerHTML = textteile[1];
      document.getElementById('club').innerHTML = textteile[2];
      document.getElementById('basket_qty').innerHTML = textteile[3];
      document.getElementById('basket_total').innerHTML = textteile[1];
      document.getElementById('update_basket_progress').style.display = 'none';
      document.getElementById('input'+node).value = textteile[4];
      textteile = textteile[5].split(";");
	  if (textteile[0] != textteile[1])
	    window.location.href = "shopping_cart.php" 
    }
  }
}

function WMEButton(nodename, anzahl, product, refresh, has_text, rows, cols, ck)
{  
  node = nodename;
  rows_g = rows;
  cols_g = cols;
  if (has_text == 1)
  {
    if (rows > 1)
      var inputf = document.getElementsByTagName("textarea");
	else  
      var inputf = document.getElementsByTagName("input");
    var felder = 0;

    for (var j = 0; j < inputf.length; j++)
    {
	  if (inputf[j].name.indexOf(nodename) >= 0)
        felder++;
    }

    var differenz = Math.abs(anzahl - felder);
	// Hinzufügen
	if (felder < anzahl)
    {
      if (rows > 1)
	  {
		for (var j = felder; j < anzahl; j++)
        {
		  var wme = document.createElement('textarea');
	      var product_tmp = product.split('{');
          wme.setAttribute('name', nodename.concat(j));
		  wme.setAttribute('cols', cols + 1);
		  wme.setAttribute('rows', rows);
		  wme.setAttribute('maxlength', cols);
          wme.setAttribute('id', nodename.concat(j));
          wme.setAttribute('onkeyup', 'textarea_check(this, rows, cols - 1)');
          wme.setAttribute('node_n', nodename);
          wme.setAttribute('product', product);
          wme.setAttribute('onchange', 'update(product, document.getElementById("input"+node_n).value, 0, rows, cols);');	  
// Neu [2]
          wme.setAttribute('onkeypress', 'document.getElementById("wrong_char").style.display = "none";document.getElementById("too_much_cols").style.display = "none";document.getElementById("too_much_rows").style.display = "none";');	  
          wme.setAttribute('onmouseout', 'document.getElementById("wrong_char").style.display = "none";document.getElementById("too_much_cols").style.display = "none";document.getElementById("too_much_rows").style.display = "none";');	  
// Ende [2]		  
// Neu [3]		  
          document.getElementById("form"+nodename).appendChild(wme);    
		  content = document.getElementById("form"+nodename).innerHTML;    
          document.getElementById("form"+nodename).innerHTML = content + '<br />';
// Ende [3]		  
	    }
	  }
	  else
	  {
	    for (var j = felder; j < anzahl; j++)
        {
	      var wme = document.createElement('input');
	      var product_tmp = product.split('{');
          wme.type = 'text';
          wme.setAttribute('name', nodename.concat(j));
		  wme.setAttribute('cols', cols);
		  wme.setAttribute('rows', rows);
		  wme.setAttribute('maxlength', cols);
          wme.setAttribute('id', nodename.concat(j));
          wme.setAttribute('node_n', nodename);
          wme.setAttribute('product', product);
          wme.setAttribute('onchange', 'update(product, document.getElementById("input"+node_n).value, 0, rows, cols);');	  
// Neu [2]
          wme.setAttribute('onkeyup', 'textinput_check(this);');	  
          wme.setAttribute('onkeypress', 'document.getElementById("wrong_char").style.display = "none";');	  
// Ende [2]		  
// Neu [3]
          document.getElementById("form"+nodename).appendChild(wme);    
		  content = document.getElementById("form"+nodename).innerHTML;    
          document.getElementById("form"+nodename).innerHTML = content + '<br />';
// Ende [3]		  
	    }
      }		
      if (refresh)
	    update(product, anzahl, ck);
    }
    // Löschen
    if (felder > anzahl)
    {
      var id = 0;  
      for (var j = felder; j > anzahl; j--)
        document.getElementById("form"+nodename).removeChild(document.getElementById(nodename.concat(j - 1)));
	  if (refresh)
        update(product, anzahl, ck, rows, cols);
    }
  }
  else  
    if (refresh)
  	  update(product, anzahl, ck, rows, cols);
} 

// Neu [2]
function textinput_check(sender)
{  
  var k_string = "";
  var text_arr = text.split('\n');
  var result = not_allowed_chars.test(sender.value);
  if (result)
  {
    document.getElementById('wrong_char').style.display = 'inline';
    sender.value = sender.value.replace(not_allowed_chars, "");
  }	  
}  
// Ende [2]	

function textarea_check(sender, rows, cols)
{  
  var k_string = "";
  var text = sender.value.replace(/(\015\012)|(\015)|(\012)/g, '\n');
  var text_arr = text.split('\n');
  for(var i = 0; i < text_arr.length; i++)
  {
// Neu [2]
    var result = not_allowed_chars.test(text_arr[i]);
	if (result)
	{
      document.getElementById('wrong_char').style.display = 'inline';
	  var tt = text_arr[i].replace(not_allowed_chars, "");
      for(var j = 0; j < text_arr.length; j++)
	  {
	    if (j == i)
	      e_text = tt;
		else
	      e_text = text_arr[j];
		k_string = k_string + e_text + '\n';
	  }		
      sender.value = k_string.substr(0, k_string.length - 1);
	}  
// Ende [2]
	if (text_arr[i].length > (sender.cols - 1))
	{
// Neu [1]
	  document.getElementById('max_cols').innerHTML = cols;
      document.getElementById('too_much_cols').style.display = 'inline';
// Ende [1]	  
	  var tt = text_arr[i].substr(0, sender.cols - 1);
      for(var j = 0; j < text_arr.length; j++)
	  {
	    if (j == i)
	      e_text = tt;
		else
	      e_text = text_arr[j];
		k_string = k_string + e_text + '\n';
	  }		
      sender.value = k_string.substr(0, k_string.length - 1);
	}  
  }
	
  if (text_arr.length > sender.rows) 
  {
// Neu [1]
    document.getElementById('max_rows').innerHTML = rows;
    document.getElementById('too_much_rows').style.display = 'inline';
// Ende [1]	
	k_string = "";
	for(var i = 0; i < sender.rows; i++)
	  k_string = k_string + text_arr[i] + '\n';
    sender.value = k_string.substr(0, k_string.length - 1);
  }
}

function updateBasket(id)
{
  if (window.ActiveXObject)
  {
    try
    {
      xmlHttp= new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      try
      {
        xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e)
      {
      }
    }
  }
  else if (window.XMLHttpRequest)
  {
    try
    {
      xmlHttp= new XMLHttpRequest();
    }      
    catch (e)
    {
    }
  }

  if (xmlHttp)
  {
	xmlHttp.open('GET', '/shopping_cart.php?action=delete_product&products_id='+id, true);
    xmlHttp.onreadystatechange = getBasketData;
    xmlHttp.send(null);
  }
}

function getBasketData()
{
  var ausgabe = '';

  if (xmlHttp.readyState == 4)
  {
    text = xmlHttp.responseText;
	if (text != "")
    {
      textteile = text.split("|");
	  if (textteile[0] > 0)
	  {
	    document.getElementById('total').innerHTML = textteile[1];
        document.getElementById('basket_total').innerHTML = textteile[1];
        document.getElementById('basket_qty').innerHTML = textteile[0];
	  }
	  else
	    document.location.href="shopping_cart.php";
    }
  }
}

