/* ajax busy indicator */

Ajax.Responders.register({
  onCreate: function() {
    if (Ajax.activeRequestCount > 0) {
      $$('.ajax-busy-indicator').invoke('show');
    }
  },
  onComplete: function() {
    if (Ajax.activeRequestCount == 0) {
      $$('.ajax-busy-indicator').invoke('hide');
    }
  }
});

/* form field autofocus */

function focus_on_load() {
  element = $$('input.autofocus');
  if (element.length > 0)
    element[0].focus();
  element = $$('textarea.autofocus');
  if (element.length > 0)
    element[0].focus();
}

Event.observe(window, 'load', focus_on_load, false);


/* random functions */

function batch_op_submit(action) {
  $('batch_op_action').value = action;
  $('bof').submit();
}

/* material edit page */
function update_native_price() {
  var native_price = $F('material_price_per_unit')/$F('material_exchange_rate_used');
  $('native_price').innerHTML = native_price.toFixed(2);
}


// Reset exchange_rate_used to user default for selected currency
// Uses 'rates' var rendered by template
function reset_exchange_rate_used() {
  $('material_exchange_rate_used').value = currency_rates[supplier_currencies[parseInt($F('material_supplier_id'))]];
}

function update_reset_link_visibility() {
  var supplier_id = $F('material_supplier_id');
  var def = currency_rates[supplier_currencies[parseInt(supplier_id)]];
  $('reset_rate').innerHTML = 'Reset to default ('+def+')'
  if ($('material_exchange_rate_used').value == ''+def)
    Element.hide('reset_rate');
  else
    Element.show('reset_rate');
}

function copy_billing_to_shipping() {
  var copyfrom = new Array();
  copyfrom[0] = "customer_line_1";
  copyfrom[1] = "customer_line_2";
  copyfrom[2] = "customer_line_3";
  copyfrom[3] = "customer_town";
  copyfrom[4] = "customer_county";
  copyfrom[5] = "customer_country";
  copyfrom[6] = "customer_postcode";
  
  var copyto = new Array();
  copyto[0] = "customer_shipping_line_1";
  copyto[1] = "customer_shipping_line_2";
  copyto[2] = "customer_shipping_line_3";
  copyto[3] = "customer_shipping_town";
  copyto[4] = "customer_shipping_county";
  copyto[5] = "customer_shipping_country";
  copyto[6] = "customer_shipping_postcode";
  
  for (i=0;i<copyfrom.length;i++) {
    $(copyto[i]).value = $(copyfrom[i]).value;
  }
}

function check_mouse(event) {
  if (!Element.descendantOf(Event.element(event), $$('table.care-label-chooser').first()) &&
      !Event.element(event).hasClassName('delete-label') &&
      Event.pointerX(event) < document.viewport.getWidth()) {
    Event.stop(event);
    hide_label_chooser();
  }
}

function care_labels_element() {
  $$('#product_care_labels, #variation_care_labels').first();
}

function show_label_chooser() {
  if ($('inherited_care_labels') != undefined)
    Element.hide('inherited_care_labels');
  $('product_care_label_list').addClassName('editing');
  var chooser = $$('table.care-label-chooser').first();
  Element.clonePosition(chooser, 'edit_care_labels');
  chooser.show();
  //jQuery(document).bind("mousedown", check_mouse);
  Event.observe(document, 'mousedown', check_mouse);
  //$('edit_care_labels').hide();
  //$('done_editing_labels').show();
}

function hide_label_chooser() {
  $$('table.care-label-chooser').first().hide();
  Event.stopObserving(document, 'mousedown', check_mouse);
  $('product_care_label_list').removeClassName('editing');
  //$('edit_care_labels').show();
  //$('done_editing_labels').hide();
  if ($('inherited_care_labels') != undefined && $$('#product_care_labels, #variation_care_labels').first().value == '')
    Element.show('inherited_care_labels');
}

function add_care_label(name) {
  var field = $$('#product_care_labels, #variation_care_labels').first();
  var current = field.value;
  var names = current.split(' ');
  names.push(name);
  names = names.uniq().join(' ');
  if (current != names) {
    field.value = names;
    jQuery(field).change(); // so unsaved changes plugin works
    // Add to list
    Element.insert(
      'product_care_label_list',
      '<li id="cl_'+name+'"><div class="symbol"><img src="/system/care_labels/'+name+'-40-black.png"/></div><a href="javascript:remove_care_label(\''+name+'\')" class="delete-label"><span>remove</span></a></li>'
    );
    new Effect.Highlight('cl_'+name);
  }
}

function remove_care_label(name) {
  var field = $$('#product_care_labels, #variation_care_labels').first();
  var current = field.value;
  var names = current.split(' ');
  names = names.without(name).uniq().join(' ');
  if (names != current) {
    field.value = names;
    jQuery(field).change(); // so unsaved changes plugin works
    // Remove from list
    Element.remove('cl_'+name);
  }
}

//function init_bubble_help() {
//  $$('a.bubble-help').each(function(element) {
//    new Tip(element, element.rel, {
//      style: 'darkgrey',
//      /*stem: 'bottomRight',
//      hook: { target: 'topMiddle', tip: 'bottomRight' },
//      offset: { x: 0, y: 0 }*/
///*      title: "Help!",*/
//      offset: { x: 5, y: 8 },
//      border: 3,
//      radius: 3,
//      style: 'darkgrey'
//    });
//  });
//}

document.observe('dom:loaded', function(){jQuery('input:text').hint()});
/*document.observe('dom:loaded', function(){init_bubble_help});*/

Ajax.Responders.register({
  onComplete: function() {
    JT_init();
  }
});

/* Track a video being played with google analytics */
function trackVideoPlayEvent(video) {
  /*var pageTracker = _gat._getTracker("UA-6151422-1");*/
  pageTracker._trackEvent('Videos', 'Play', video);
}


/*
 * QTObject embed
 * http://blog.deconcept.com/2005/01/26/web-standards-compliant-javascript-quicktime-detect-and-embed/
 *
 * by Geoff Stearns (geoff@deconcept.com, http://www.deconcept.com/)
 *
 * v1.0.2 - 02-16-2005
 */
function isQTInstalled() {
	var qtInstalled = false;
	qtObj = false;
	if (navigator.plugins && navigator.plugins.length) {
		for (var i=0; i < navigator.plugins.length; i++ ) {
         var plugin = navigator.plugins[i];
         if (plugin.name.indexOf("QuickTime") > -1) {
           qtInstalled = true;
         }
      }
	} else {
		execScript('on error resume next: qtObj = IsObject(CreateObject("QuickTimeCheckObject.QuickTimeCheck.1"))','VBScript');
		qtInstalled = qtObj;
	}
	return qtInstalled;
}


jQuery(function($) {
  $('.with-date-picker').datetimepicker({
    dateFormat: 'yy-mm-dd',
    changeMonth: true,
    changeYear: true
  });
});
