function InsertFlash(url, width, height, altContent, bgCol, wmode) {
  if (!bgCol) bgCol='#ffffff';
  if (!wmode) wmode='transparent';
	document.write('<' + 'object type="application/x-shockwave-flash" data="' + url + '" width="' + width + '" height="' + height + '"' + '>');
	document.write('<' + 'param name="allowScriptAccess" value="sameDomain" /' + '>');
	document.write('<' + 'param name="movie" value="' + url + '" /' + '>');
	document.write('<' + 'param name="quality" value="high" /' + '>');
        if (wmode!='transparent')  document.write('<' + 'param name="bgcolor" value="'+bgCol+'" /' + '>');
	document.write('<' + 'param name="wmode" value="'+wmode+'" /' + '>');
	document.write('<' + 'param name="FlashVars" value="playerMode=embedded" /' + '>');
	document.write(altContent);
	document.write('<' + '/object' + '>');
}

var AjaxRequest = function()
{
  function handleReadyState(o, callback, parent)
  {
    if (o && o.readyState == 4 && o.status == 200)
    {
      if (callback) callback(o, parent);
    }
  }

  var getXHR = function()
  {
    var http;
    try
    {
      http = new XMLHttpRequest;
      getXHR = function() { return new XMLHttpRequest; };
    }
    catch(e)
    {
      var msxml = [ 'Microsoft.XMLHTTP', 'MSXML2.XMLHTTP', 'MSXML2.XMLHTTP.3.0'];
      var i = msxml.length-1;
      do
      {
        try
        {
          http = new ActiveXObject(msxml[i]);
          getXHR = function()
          {
            return new ActiveXObject(msxml[i]);
          };
          break;
        }
        catch(e) {}
      } while (i--)
    }
    return http;
  };

  return function(method, uri, callback, postData, parent)
  {
		debug(uri, '#00f');
		var http = getXHR();
		if (http.overrideMimeType)
			http.overrideMimeType('text/xml');
		http.open(method, uri, true);
		http.setRequestHeader("Content-Type", "application/xml");
		http.onreadystatechange = function(){handleReadyState(http, callback, parent)};
		http.send(postData || null);
		return http;
  };
}();

function AddOrRemoveItem(el)
{
  if (!el.checked)
    AjaxRequest('get', el.getAttribute('url') + '/LimeShoppingCart/removeUsingAjax', updateShoppingCart)
  else
    AjaxRequest('get', el.getAttribute('url') + '/LimeShoppingCart/addUsingAjax', updateShoppingCart)
}

function RemoveItem(el)
{
  AjaxRequest('get', el.getAttribute('url') + '/LimeShoppingCart/removeUsingAjax', updateShoppingCart)
}

function updateShoppingCart(response)
{
  var el = document.getElementById('cart_small');
  if (!el) return false;

  var items = response.responseXML.getElementsByTagName('item');
  var html = ['<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin-bottom: 20px;">'];
  var i = items.length-1;
  if (i >= 0)
  {
    do
    {
      var item = serialize(items[i]);
      html.push('<tr class="product_"><td style="padding-bottom: 5px;"><a href="' + item.url + '">' + item.title + '</a></td><td valign="top"><a href="' + item.url + '/LimeShoppingCart/remove?redirect=' + document.location.href + '" onmouseover="return overlib(\'Fjern fra listen\', FULLHTML);">Slett</a></td></tr>');
    } while (i--)
    html.push('</table><a href="/clearShop">Nullstill</a><br /><br />  &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.strom.no/vinkart_html">Vinkart</a><br /><img src="/misc_/LimeFile/pdf.gif" border="0" /><a target="_blank" onmouseout="return nd();" href="/produktsmaksliste_pdf" onmouseover="return overlib(\'Lag en pdf med oversikt over de produktene jeg ønsker å smake\', FULLHTML);">Vinsmakningsnotater</a><br/><img src="/misc_/LimeFile/pdf.gif" border="0" /> <a target="_blank" onmouseout="return nd();" href="/produktliste_pdf" onmouseover="return overlib(\'Lag en pdf med produktark av alle produktene i listen\', FULLHTML);">Produktliste</a><br />');
    html = html.join('');
  }
  else
    html = 'Listen er tom';

  el.innerHTML = html;
}

function serialize(node)
{
	if (!node) return null;

	var ob = {};
	var i = node.childNodes.length-1;
	do
	{
		ob[node.childNodes[i].nodeName] = (node.childNodes[i].firstChild) ? node.childNodes[i].firstChild.nodeValue : '';
	} while (i--);

	return ob;
}

function debug()
{
}
