function temp_store()
{
  var item_id = the_item_id;

  //var affix = iz_framed ? '&framed=1' : '';
  var affix = '';

  for (var i in interior_items_ar)
  {
    if (i == "in_array") continue;

    var v = interior_items_ar[i]['visible'] ? "1" : "0";
    var x = _px(interior_items_ar[i]['e'].style.left)-room_l-l_diff;
    var y = room_h+room_t+t_diff-_px(interior_items_ar[i]['e'].style.top)-_px(interior_items_ar[i]['e'].style.height);

    affix += "&v["+i+"]="+v+"&x["+i+"]="+x+"&y["+i+"]="+y;
  }

  var date = new Date();
  date.setDate(date.getDate() + 1);
  setCookie('temp_wall', affix, date);
}

function print_hung(item_id, w, h, opt)
{
  var opt = opt || [];

  var affix = opt.in_array('framed') ? '&framed=1' : '';

  affix += "&hung=1"+
           "&interior_colour="+escape(hang_it_interior_colour.value)+
           "&floor_colour="+escape(hang_it_floor_colour.value);

  for (var i in interior_items_ar)
  {
    if (i == "in_array") continue;

    var v = interior_items_ar[i]['visible'] ? "1" : "0";
    var x = _px(interior_items_ar[i]['e'].style.left)-room_l-l_diff;
    var y = room_h+room_t+t_diff-_px(interior_items_ar[i]['e'].style.top)-_px(interior_items_ar[i]['e'].style.height);

    affix += "&v["+i+"]="+v+"&x["+i+"]="+x+"&y["+i+"]="+y;
  }

  win = window.open('/print_item.php?id='+item_id+affix,'','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width='+w+',height='+h);
}

function toggle_interior_item(ii_id)
{
  if (!interior_items_ar[ii_id]) return;

  var e = interior_items_ar[ii_id]['e'];

  if (interior_items_ar[ii_id]['visible'])
  {
    e.style.display = 'none';
    interior_items_ar[ii_id]['visible'] = false;
  }
  else
  {
    e.style.display = 'block';
    e.style.zIndex = ++last_z_index;

    interior_items_ar[ii_id]['visible'] = true;
  }
}

function apply_interior_item_visible(ii_id)
{
  if (!interior_items_ar[ii_id]) return;

  var e = interior_items_ar[ii_id]['e'];
  e.style.display = (interior_items_ar[ii_id]['visible']) ? 'block' : 'none';
}

function set_interior_colour(interior_colour)
{
  if (hang_it_interior_colour.value != interior_colour)
  {
    hang_it_interior_colour.value = interior_colour;

    room.style.backgroundColor = interior_colour;

    var date = new Date();
    date.setFullYear(date.getFullYear() + 1);
    setCookie("hang_it[interior_colour]", hang_it_interior_colour.value, date);
  }
}

function set_floor_colour(floor_colour)
{
  if (hang_it_floor_colour.value != floor_colour)
  {
    hang_it_floor_colour.value = floor_colour;

    room_floor.style.backgroundColor = floor_colour;

    var date = new Date();
    date.setFullYear(date.getFullYear() + 1);
    setCookie("hang_it[floor_colour]", hang_it_floor_colour.value, date);
  }
}

/* -------------------------------------------------------------------------------- */

//                        ff                opera    ie
var l_diff = (is_gecko) ?   1 : ((is_opera) ?   1 :   1);
var t_diff = (is_gecko) ?   1 : ((is_opera) ?   1 :   1);
var w_diff = (is_gecko) ?  -1 : ((is_opera) ?  -1 :   1);
var h_diff = (is_gecko) ?  -1 : ((is_opera) ?  -1 :   1);

function shiftTo(obj, x, y)
{
  if (x < room_l + l_diff) x = room_l + l_diff; else
  if (x > room_l - w_diff + room_w - _px(obj.style.width)) x = room_l - w_diff + room_w - _px(obj.style.width);

  if (y < room_t + t_diff) y = room_t + t_diff; else
  if (y > room_t - h_diff + room_h - _px(obj.style.height)) y = room_t - h_diff + room_h - _px(obj.style.height);

  obj.style.left = x+"px";
  obj.style.top = y+"px";
}

// set global var to a reference to dragged element
function setSelectedObj(e)
{
  if (e)
  {
    var onObj = e.target;
  }
  else
  {
    e = window.event;
    var onObj = e.srcElement;
  }

  if (onObj.id.substr(0,3) == "ii_")
  {
    selectedObj = onObj;
    selectedObj.style.zIndex = ++last_z_index;
    return;
  }

  selectedObj = null;
  return;
}

// do the dragging (called repeatedly by onMouseMove)
function dragIt(e)
{
  if (!e)
  {
    var e = window.event;
  }

  if (selectedObj)
  {
    shiftTo(selectedObj, e.clientX - offsetX, e.clientY - offsetY);
  }

  return false;
}

// set global vars and turn on mousemove trapping (called by onMouseDown)
function engage(e)
{
  setSelectedObj(e);

  if (is_ie)
  {
    var _tmp1 = window.event.offsetX;
    var _tmp2 = window.event.offsetY;
  }
  else
  {
    var _tmp1 = e.layerX; //e.pageX
    var _tmp2 = e.layerY; //e.pageY
  }

  if (selectedObj)
  {
    addEvent(document, 'mousemove', dragIt);

    for (var j in interior_items_ar)
    {
      if (j == "in_array") continue;

      addEvent(interior_items_ar[j]['e'], 'mousemove', dragIt);
    }

    offsetX = _tmp1 - document.body.scrollLeft;
    offsetY = _tmp2 - document.body.scrollTop;
  }

  if (!is_ie && e.preventDefault) e.preventDefault();
  return false;
}

// restore everything as before (called by onMouseUp)
function release(e)
{
  if (selectedObj)
  {
    document.onmousemove = null;
    selectedObj = null;
  }

  temp_store();

  return true;
}

/* -------------------------------------------------------------------------------- */

function toggle_colour_picker()
{
  _z.style.visibility = 'hidden';

  _ge('_btn1').value = z.style.visibility == 'hidden'?'hide wall colours':'show wall colours';
  z.style.visibility = (z.style.visibility == 'hidden') ? 'visible' : 'hidden';

  _ge('_btn2').value = 'show floor colours';
}

function toggle_colour_picker2()
{
  z.style.visibility = 'hidden';
  _ge('_btn2').value = _z.style.visibility == 'hidden'?'hide floor colours':'show floor colours';
  _z.style.visibility = (_z.style.visibility == 'hidden') ? 'visible' : 'hidden';
  _ge('_btn1').value = 'show wall colours';
}

var hang_it_colors_ar = new Array(
'#000000','#776a61','#a97850','#cac1a2','#f5eb9b','#ffffff',
'#6a42ff','#9275ff','#bba8ff','#e3dbff','#dbe9ff','#f7f5ff',
'#9d00c2','#d729ff','#ea8fff','#f4c2ff','#f8dbff','#fdf5ff',
'#c20071','#db0080','#ff29a6','#ffc2e6','#fff5fb','#ffffff',
'#bf0303','#e60303','#fd6c6c','#feb7b7','#ffeaea','#fff5f5',
'#bf7403','#f19203','#fcb345','#fdd290','#fee6c2','#fff1dc',
'#c2bc00','#f5ed00','#fff829','#fffc8f','#fffdc2','#fffedb',
'#99bf03','#c1f103','#d7fc45','#e7fd90','#f2fec2','#f7ffdc',
'#26c200','#00db59','#30f500','#b9ffa8','#e2ffdb','#f7fff5',
'#00c0c2','#00d9db','#29fdff','#c2feff','#dbffff','#f5ffff'
);

var hang_it_colorsf_ar = new Array(
'#867311','#861311','#c91d1a','#ea615f','#f08e8c','#f3a4a3',
'#c9ad1a','#378611','#54c91a','#8dea5f','#adf08c','#bdf3a3',
'#b3b34c','#11864c','#1ac973','#5feaa6','#8cf0bf','#a3f3cb',
'#ead35f','#115e86','#1a8dc9','#5fbbea','#8ccef0','#a3d8f3',
'#fae248','#261186','#391ac9','#785fea','#9e8cf0','#b1a3f3',
'#f0e08c','#861184','#c91ac7','#ea5fe8','#f08cef','#f3a3f2',
'#ffffff','#cac1a2','#ccba92','#a19376','#776a61','#21170d'
);




function fill_colour_picker(what, el)
{
  var per_row = 6;
  if (what == "interior")
  {
  var rows_count = Math.ceil(hang_it_colors_ar.length / per_row);
  }
              if (what == "floor")
            {
  var rows_count = Math.ceil(hang_it_colorsf_ar.length / per_row);
            }

  var lines = new Array;

  for (var i = 0; i < rows_count; i++)
  {
    var s = '<nobr>';
    for (var j = 0; j < per_row; j++)
    {
      var abs_i = i * per_row + j;

    if (what == "interior")
    {
      if (abs_i < hang_it_colors_ar.length)
      {

        var c = hang_it_colors_ar[abs_i];


        s += '<a href="javascript:set_'+what+'_colour(\''+c+'\');"><img src="img/z.gif" width=15 height=15 style="background:'+c+';border:1px solid #000;margin:0;padding:0;"></a>';
      }
     }

     if (what == "floor")
     {
      if (abs_i < hang_it_colors_ar.length)
      {

        var c = hang_it_colorsf_ar[abs_i];

        s += '<a href="javascript:set_'+what+'_colour(\''+c+'\');"><img src="img/z.gif" width=15 height=15 style="background:'+c+';border:1px solid #000;margin:0;padding:0;"></a>';
      }
      }


    }

    lines[lines.length] = s+'</nobr><br>';
  }

  var s = '';
  for (var i = 0; i < lines.length; i++)
  {
    s += lines[i];
  }

  el.innerHTML = s;
}