function sc_add_item(id, sc, item_name)
{
	sc_object.item_name = item_name;

	qty = new Number(GID('item_' + id).value);

	request =
  {
	  handler: '/resources/engines/shopcart/ajax/sc_add_item.php?sc=' + sc,
	  item: id,
	  qty: qty
	}

  ajax(request, sc_update_cart);
}

function sc_update(src, shop_cart)
{
  request = {};

  if (src == 'update')
  {
    form = document.forms['shopcart[' + shop_cart + ']'];
    regex = new RegExp('^item');
    num = new RegExp('[0-9]+');

    var item = [];
    var ct = 0;
    for (var i = 0; i < form.elements.length; i ++)
    {
      input = form.elements[i];
      if (!regex.test(input.name))
      {
        continue;
      }
      id = num.exec(input.name);
      item.push('i:' + id);
      item.push('i:' + input.value);
      ct ++;
    }

    name = 'items';
    value = 'a:' + ct + ':{' + item.join(';') + ';}';
  }
  else
  {
    regex = new RegExp('[a-z\_]+');
    name = regex.exec(src.name);
    value = src.value;
  }

  request.data =
  {
    sc: shop_cart,
    field: name,
    value: value
  };

  request.config =
  {
    url: '/resources/engines/shopcart/ajax/sc_store_info.php',
    post: true
  };

  return_function = sc_reload;

  if (name == 'customer_notes')
  {
    return_function = function(){};
  }

  ajax(request, return_function);
}

function sc_remove_item(shop_cart, item_id)
{
	request =
  {
	  handler: '/resources/engines/shopcart/ajax/sc_add_item.php?sc=' + shop_cart,
	  item: item_id,
    show_request: true,
    remove: true,
	  qty: 0
	};

  ajax(request, sc_reload);
}

function sc_update_cart(result)
{
  GID('shopcart_itemcount').innerHTML = result;

  if (sc_object.notify)
  {
    sc_notify();
  }
}

function sc_notify()
{    
	  item_name = sc_object.item_name;
    login = sc_object.login;
    register = sc_object.register;
    background_color  = sc_object.background_color;
 
    darkenScreen(80);
    boxWidth = 300;
    boxHeight = 130;
    screenWidth = GXY('x');
    screenHeight = GXY('y');

    div = document.createElement('div');
    div.style.position = 'absolute';
    div.style.fontSize = '12pt';
    div.style.padding = '10px';
    div.style.textAlign = 'center';
    div.style.backgroundColor = background_color;
    div.style.zIndex = 10;
    div.className = 'contenttd';
    div.id = 'notifyCartBox';
    div.innerHTML = '<b>' + item_name + '</b><br>has been added to your cart<br><br>';
    div.innerHTML += '<div style="width:' + boxWidth + 'px">';
    div.innerHTML += '<div><a href="javascript:continue_shopping()">' +
                        'Continue Shopping</a></div>';  
    div.innerHTML += '<div><a href="?sc=checkout">' +
                        'Checkout</a></div>';  
                        
    if (!readCookie('USERNAME'))
    {
        if (login)
        {
            div.innerHTML += '<div><a href="' + login + '">' +
                                'Login</a></div>';            
            boxHeight += 20;  
        }
        
        if (register)
        {
            div.innerHTML += '<div><a href="' + register + '">' +
                                'Register</a></div>';     
            boxHeight += 20;       
        }
             
    }
     
    div.innerHTML += '</div>';
    div.style.width = boxWidth + 'px';
    div.style.height = boxHeight + 'px';
    div.style.top = (f_scrollTop() + (((screenHeight + boxHeight)/2) - boxHeight - 50)) + 'px';
    div.style.left = (screenWidth/2) - (boxWidth/2) + 'px';                          
    document.body.appendChild(div);
    
    //alert(readCookie('USERNAME'));
    //darkenScreen(0)
}

function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}

function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function sc_send_order(c)
{
	valid = true;
	f = document.forms['shopcart[' + c + ']'];

	check = ["shipping", "tax"];

	for (i = 0; i < check.length; i ++)
	{
		obj = f.elements[check[i]];

		if (obj)
		{
			warning = GID(check[i] + '_warning[' + c + ']');
			warning.style.display = 'none';
			if (!obj.value)
			{
				valid = false;
				warning.style.display = 'inline';
			}
		}
	}

  // check for valid user
  if ($(f).find(':input[name=register]').length)
  {
    if ($.cookie('USERID') == null)
    {
      sc_register_member(c);
    }
  }

  if (valid && $.cookie('USERID') > 0)
	{
	  f.submit();
	}
}

function send_order(c)
{
	alert(c);
}

function sc_register_member(c)
{
  var data = {};
  var f = document.forms['shopcart[' + c + ']'];
  for (i = 0; i < f.elements.length; i ++)
  {
    var input = f.elements[i];
    if (typeof $(input).attr('data-validation') == 'string')
    {
      data[input.name] = input.value;
    }
  }

  // validate with jquery.validate
  valid = $(f).validate('send');

  if (valid)
  {
    config =
    {
      url: '/resources/engines/members/ajax/register.php',
      post: true
    }
    data['shop_cart'] = c;
    data['group'] = f.group.value;
    ajax({config: config, data: data, json: true}, sc_register_result);
  }
}

function sc_register_result(result)
{
  var f = document.forms['shopcart[' + result.shop_cart + ']'];
  var e = document.getElementById('register_error[' + result.shop_cart + ']');

  e.innerHTML = '';
  if (result.success)
  {
    sc_send_order(result.shop_cart);
  }
  else
  {
    e.innerHTML = result.message;
  }
}

function sc_reload()
{
  location = location;
}

function continue_shopping()
{
    darkenScreen(0);
    document.body.removeChild(GID('notifyCartBox'));
}

function sc_store_checkout()
{
  // function holder, not sure why its implemented
}
