function getByID(n) {
    var d = window.document;
    if (d.getElementById)
        return d.getElementById(n);
    else if (d.all)
        return d.all[n];
}

function updateAmazonPreview() {
  var asin;
  if (getByID("asin").value != '') {
    asin = getByID("asin").value;
  }
  var drop = getByID("img_drop").value;
  var drop_opt = '';
  if (drop == 'Left') {
    drop_opt = "_PB";
  } else if (drop == 'Right') {
    drop_opt = "_PC";
  }

  var rotation = getByID("img_rot").value;
  if (rotation == '') {
    rotation = '0';
  }
  var rot_opt = '_PU' + rotation;

  var blur = getByID("img_blur").value;
  var blur_opt = "";
  if (blur != "0") {
    blur_opt = '_BL' + blur;
  }

  var size_opt = '_SCLZZZZZZZ';
  var size = getByID("img_size").value;
  if (size != "") {
    size_opt = size;
  }

  var options = blur_opt + drop_opt + rot_opt + size_opt + '_';
  var url = 'http://images.amazon.com/images/P/'+asin+'.01.'+options+'.jpg';
  var img = getByID("amazon-img");
  getByID("image-preview").style.backgroundImage = 'url(' + url + ')';
  getByID("img_url").value = url;
}

function updateLayoutPreview() {
  var layout = getByID("layout").value;
  var url = StaticURI + '/plugins/mmanager/images/toolbar/layout-'+layout+'.png';
  getByID("layout-preview").src = url;
}

function editLayout() {

//    var el = getByID('layout-flyout');
    var el = TC.elementOrId('layout-flyout');
    if (el) {
        el.style.display = 'block';
        el.style.visibility = 'visible';
    }

/*
    var opt = TC.elementOrId('layout-flyout');
    if (opt) {
        if (TC.hasClassName(opt, 'active'))
            TC.removeClassName(opt, 'active');
        else
            TC.addClassName(opt, 'active');
    }
    return false;
*/
}

function editImage() {
    var el = getByID('image-flyout');
    if (el) {
        el.style.display = 'block';
        el.style.visibility = 'visible';
    }
}

function setRating( r ) {
    for (i = 1; i <= 5; i++) {
      var star = getByID('star-' + i);
      if (i <= r) {
        star.src = StaticURI + "/plugins/mmanager/images/toolbar/starbw-on.gif";
      } else {
        star.src = StaticURI + "/plugins/mmanager/images/toolbar/starbw-off.gif";
      }
    }
    getByID("rating").value = r;
}

function rotate( degrees, asin ) {
  var obj = getByID("img_rot");
  var r = obj.value;
  if (r == 'NaN') { r = 0; }
  r = parseInt(r) + degrees;
  if (r < -359 || r > 359) {
    r = 0;
  }
  obj.value = r;
  updateAmazonPreview(asin);
}

function imgblur( degrees, asin) {
  var obj = getByID("img_blur");
  var r = obj.value;
  r = parseInt(r) + degrees;
  if (r < 0 || r > 100) {
    return;
  }
  obj.value = r;
  updateAmazonPreview(asin);
}

function hideImageFlyout() {
   var el1 = getByID('image-flyout');
   el1.style.display = 'none';
   el1.style.visibility = 'hidden';
}

function hideLayoutFlyout() {
   var el1 = getByID('layout-flyout');
   el1.style.display = 'none';
   el1.style.visibility = 'hidden';
}

function onClickHandler(evt) {
    // try to find our "window" element in dom hierarchy
    evt = evt || event;
    var element = evt.target || evt.srcElement;
    var el1 = getByID('image-flyout');
    var el2 = getByID('layout-flyout');
    while( element ) {
        if( element == el1 || element == el2)
            return true;
        element = element.parentNode;
    }
    hideLayoutFlyout();
    hideImageFlyout();
/*
    el1.style.display = 'none';
    el1.style.visibility = 'hidden';
    el2.style.display = 'none';
    el2.style.visibility = 'hidden';
*/
    return true;
}

if ( document.addEventListener )
	document.addEventListener( "click", onClickHandler, true );
else if ( document.attachEvent )
	document.attachEvent( "onclick", onClickHandler );
