on_load(load_tab);

//on_load(load_form);

// Utility function to fetch client's browser
function get_browser() {
	var ua = navigator.userAgent.toLowerCase();
	var browsers = new Array('msie', 'firefox', 'safari', 'omniweb', 'icab', 'webtv');
	for (var i = 0; i < browsers.length; i++) {
		if (ua.indexOf(browsers[i]) + 1) {
			return browsers[i];
		}
	}
}

// Utility function to keep body.onLoad clean
function on_load(func) {
	var old_on_load = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			old_on_load();
			func();
		}
	}
}

// Changes large image to version of clicked thumbnail (on machine detail)
function swap_image(small_image) {
	other_images = document.getElementsByClassName('small-image');
	for (var i = 0; i < other_images.length; i++) {
		Element.removeClassName(other_images[i], 'active');
	}
	Element.addClassName(small_image, 'active');
	$('large-image').src = small_image.src.replace(/_thumb(\.[a-z]{3})(\?\d+)?$/i, '$1');
}

// Initializes any JavaScript tabs on the page
function load_tab() {
	var anchor = document.location.hash.substring(1);
	var lists = $$('ul.tabs');
	if (anchor != '' && $(anchor + '-section')) {
		show_section(anchor);
	} else {
		if (lists.length > 0) show_tab(Element.childElements(lists[0])[0].id.replace('-tab', ''));
	}
}

// Script to populate model field on listing form
function pass_model(str) {
	$('listing[new_model]').value = str;
}

// Script to populate manufacturer field on listing form
function pass_manufacturer(str) {
	$('listing[new_manufacturer]').value = str;
}

// Script to populate manufacturer field on start form
function pass_manufacturer_express(str) {
	$('listing_manufacturer').value = str;
}

// Script to display manual manufacturer field on listing form
function enter_manufacturer(str) {
	if (str == 'enter_new_manufacturer') {
		$('listing[new_manufacturer]').value = '';	
		$('new_manufacturer').show();
		$('listing[new_manufacturer]').focus();	
	} else  {
		$('listing[new_manufacturer]').value = '';
		$('new_manufacturer').hide();		
	}
}

// Script to display quantity field if non-machine listing
function display_quantity(str) {
	if (str == 'Machine') {
		$('listing_quantity_in_stock').value = '';
		$('quantity').hide();
	} else  {
		$('quantity').show();
	}
}

// Script to display manual model field on listing form
function enter_model(str) {
	if (str == 'enter_new_model') {
		$('listing[new_model]').value = '';	
		$('new_model').show();
		$('listing[new_model]').focus();	
	} else  {
		$('listing[new_model]').value = '';
		$('new_model').hide();		
	}
}

// Script to display availability field for new listings
function availability(str) {
	if (str == 'new') {
		$('availability').show();
	} else  {
		$('availability').hide();
	}
}

// Script to display availability field for new listings
function show_year(str) {
	if (str == 'new') {
		$('year').hide();
	} else  {
		$('year').show();
	}
}

// Script to display control field for new listings
function show_control_field(str) {
	if (str == 'true') {
		$('control_field').show();
	} else  {
		$('control_field').hide();
		//$('listing[control]').value = '';	
	}
}

// Script to display enable/disable price on demand field
function price_check(str) {
	if (str != '') {
		$('listing_por').enable();
	} else  {
		$('listing_por').disable();
		$('listing_por').checked = false
	}
}

// Strip out non-numeric chars and cents from price fields
function strip_alpha(dom_id, str)
{ 
	var new_string = new String(str); 
	new_string = new_string.replace(/^([\d,]+)\.(\d\d)\d*/,"$1");
	new_string = new_string.replace(/[^0-9]/g, '');
	$(dom_id).value = new_string;
}

function swap_tab(id) {
	var lists = document.getElementsByClassName('tabs');
	for (var i = 0; i < lists.length; i++) {
		var list = Element.childElements(lists[i]);
		for (var j = 0; j < list.length; j++) {
			if (list[j].id.replace('-tab', '') == id) {
				for (var k = 0; k < list.length; k++) {
					Element.removeClassName(list[k], 'active');
					hide_section(list[k].id.replace('-tab', ''));
				}
			}
		}
	}
	Element.addClassName(id + '-tab', 'active');
	Element.addClassName(id + '-section', 'active');
}

function hide_section(name) {
	var id = name + '-section'
	Element.removeClassName(id, 'active');
	if (Element.hasClassName(id, 'tabs')) {
		var tabs = Element.childElements($(id));
		for (var i = 0; i < tabs.length; i++) {
			Element.removeClassName(tabs[i], 'active');
			hide_section(tabs[i].id.replace('-tab', ''));
		}
	}
}

function show_section(name) {
	Element.addClassName(name + '-tab', 'active');
	Element.addClassName(name + '-section', 'active');
	if (Element.hasClassName($(name + '-tab').parentNode, 'section')) {
		show_section($(name + '-tab').parentNode.id.replace('-section', ''));
	}
}

function show_tab(name) {
	Element.addClassName(name + '-tab', 'active');
	if ($(name + '-section')) {
		Element.addClassName(name + '-section', 'active');
		if (Element.hasClassName(name + '-section', 'tabs')) {
			var tabs = Element.childElements($(name + '-section'));
			show_tab(tabs[0].id.replace('-tab', ''));
		}
	}
}

/*
function load_form() {
	var page_language = document.body.parentNode.lang;
	for (var i = 0; i < $$('form').length; i++) {
		var regional_form = document.forms[i];
		if (regional_form.hasClassName('regional')) {
			regional_form.onsubmit = function() { this.enable(); }
			var form_fields = regional_form.getElements();
			for (var j = 0; j < form_fields.length; j++) {
				var form_field = form_fields[j];
				if (form_field.hasClassName('regional')) {
					if (!form_field.hasClassName(page_language)) form_field.hide();
					check_language(form_field);
					form_field.onchange = function() { check_language(this); }
				}
			}
		}
	}
	filter_fields();
}
*/

/*
function swap_form(language) {
	swap_tab(language);
	var page_language = document.body.parentNode.lang;
	for (var i = 0; i < document.forms.length; i++) {
		if (document.forms[i].hasClassName('regional')) {
			var form_fields = document.forms[i].getElements();
			for (var i = 0; i < form_fields.length; i++) {
				var form_field = form_fields[i];
				if (!form_field.hasClassName('regional') && language != page_language && form_field.type != 'submit') form_field.disable();
				if (!form_field.hasClassName('regional') && language == page_language) form_field.enable();
				if (form_field.hasClassName('regional') && !form_field.hasClassName(language)) form_field.hide();
				if (form_field.hasClassName('regional') && form_field.hasClassName(language)) form_field.show();
			}
		}
	}
}
*/

function check_language(form_field) {
	var page_language = document.body.parentNode.lang;
	var language_is_filled = true;
	var field_language = form_field.classNames().toArray().without('regional', 'optional');
	var language_fields = form_field.form.getElementsByClassName(field_language);
	for (var k = 0; k < language_fields.length; k++) {
		if (!language_fields[k].present() && !language_fields[k].hasClassName('optional')) language_is_filled = false;
	}
	if (language_is_filled) {
		if ($(field_language + '-tab')) $(field_language + '-tab').addClassName('checked');
	} else {
		if ($(field_language + '-tab')) $(field_language + '-tab').removeClassName('checked');
	}
}

// Not sure if this is still needed or what its doing -AO
function label_currencies(code) {
	labels = document.getElementsByClassName('currency_label');
	for (var i = 0; i < labels.length; i++) {
		labels[i].innerHTML = code.toUpperCase();
	}
}

function filter_fields() {
	filter_numeric_fields();
	filter_year_fields();
}

function filter_numeric_fields() {
	var numeric_fields = document.getElementsByClassName('numeric');
	for (var i = 0; i < numeric_fields.length; i++) {
		var field = numeric_fields[i];
		if (field.nodeName == 'INPUT') {
			field.onkeypress = function(event) {
				var code = event.keyCode || event.which;
				if (String.fromCharCode(code) == '.') {
					return !this.value.include('.');
				} else {
					return new Array(8,9,13,37,38,39,40,45,46,48,49,50,51,52,53,54,55,56,57,63232,63233,63234,63235,63272).include(code);
				}
			}
			field.old_onchange = field.onchange;
			field.onchange = function() {
				if (typeof this.old_onchange == 'function') this.old_onchange();
				this.value = this.value.gsub(/[^\d\.]/, '');
				this.value = this.value.gsub(/\.+/, '.')
			}
		}
	}
}

function filter_year_fields() {
	var year_fields = document.getElementsByClassName('year');
	for (var i = 0; i < year_fields.length; i++) {
		var field = year_fields[i];
		if (field.nodeName == 'INPUT') {
			field.onkeypress = function(event) {
				var code = event.keyCode || event.which;
				if (this.value.length == 4) {
					return new Array(8,9,13,37,38,39,40,45,63232,63233,63234,63235,63272).include(code);
				} else {
					return new Array(8,9,13,37,38,39,40,45,48,49,50,51,52,53,54,55,56,57,63232,63233,63234,63235,63272).include(code);
				}
			}
			field.old_onchange = field.onchange;
			field.onchange = function() {
				if (typeof this.old_onchange == 'function') this.old_onchange();
				this.value = this.value.gsub(/[^\d]/, '');
				if (this.value.length == 2) {
					this.value = this.value > new Date().getFullYear().toString().substr(2, 2) ? '19' + this.value : '20' + this.value;
				}
			}
		}
	}
}

function swap_pricing() {
	var active = $($$('input[type=radio][name=listing_pricing]').find(function(i){return(i.checked);}).value);
	$('fixed').hide(); $('range').hide();
	active.show();
}



// Ajax main MTM notes tabs
function note_tabselect(tab) {
  var tablist = $('note_tabs').getElementsByTagName('li');
  var nodes = $A(tablist);
  var lClassType = tab.className.substring(0, tab.className.indexOf('-') );

  nodes.each(function(node){
    if (node.id == tab.id) {
      tab.className=lClassType+'-selected';
    } else {
      node.className=lClassType+'-unselected';
    };
  });
}
function note_paneselect(pane) {
  var panelist = $('note_panes').getElementsByTagName('li');
  var nodes = $A(panelist);

  nodes.each(function(node){
    if (node.id == pane.id) {
      pane.className='pane-selected';
    } else {
      node.className='pane-unselected';
    };
  });
}

// Ajax main MTM company tabs
function company_tabselect(tab) {
  var tablist = $('company_tabs').getElementsByTagName('li');
  var nodes = $A(tablist);
  var lClassType = tab.className.substring(0, tab.className.indexOf('-') );

  nodes.each(function(node){
    if (node.id == tab.id) {
      tab.className=lClassType+'-selected';
    } else {
      node.className=lClassType+'-unselected';
    };
  });
}
function company_paneselect(pane) {
  var panelist = $('company_panes').getElementsByTagName('li');
  var nodes = $A(panelist);

  nodes.each(function(node){
    if (node.id == pane.id) {
      pane.className='pane-selected';
    } else {
      node.className='pane-unselected';
    };
  });
}

function loadPane(pane, src) {
  if (pane.innerHTML=='' || pane.innerHTML=='<br/><div align=center>Loading...<br/><img alt="Wait" src="/images/spinner.gif" style="vertical-align:-3px" /></div>') {
    reloadPane(pane, src);
  }
}

function reloadPane(pane, src) {
  new Ajax.Updater(pane, src, {method:'get', asynchronous:1, evalScripts:true, onLoading:function(request){pane.innerHTML='<br/><div align=center>Loading...<br/><img alt="Wait" src="/images/spinner.gif" style="vertical-align:-3px" /></div>'}})
}


function stripeFavorites() {
	var favorites = $$('#favorites .favorite');
	for(var i = 0; i < favorites.size(); i++) {
		var favorite = favorites[i];
		favorite.removeClassName('even');
		favorite.removeClassName('odd');
		favorite.addClassName(i % 2 == 0 ? 'odd' : 'even');
	}
}

function update_end_date(strdate){
	var start_date = new Date(strdate.gsub('-','/'));
	var str_enddate = $('auction_ends_at').value;
	var end_date = new Date(str_enddate.gsub('-','/'));
	if (start_date > end_date || str_enddate == '') {
		$('auction_ends_at').value = strdate;
	};	
}

function clear_checkbox(checkbox) {
	$(checkbox).checked = false;
}

// Script to display correct fields for ad utilty in mtm
function show_hide_ad_fields(str) {
	if (str == 'Banner') {
		$('banner_fields').show();
		$('sponsored_link_fields').hide();
		$('video_ad_fields').hide();
		$('sponsored_link').hide();
		$('vertical_sponsored_link').hide();
		$('email_ad').hide();
		$('video_ad').hide();
		$('video_ad_horizontal').hide();
	} else if (str == 'SponsoredLink') {
		$('sponsored_link_fields').show();
		$('banner_fields').hide();
		$('video_ad_fields').hide();
		$('sponsored_link').show();
		$('vertical_sponsored_link').hide();
		$('email_ad').hide();
		$('video_ad').hide();
		$('video_ad_horizontal').hide();
	} else if (str == 'EmailAd') {
		$('sponsored_link_fields').show();
		$('banner_fields').hide();
		$('video_ad_fields').hide();
		$('email_ad').show();
		$('vertical_sponsored_link').hide();
		$('sponsored_link').hide();
		$('video_ad').hide();
		$('video_ad_horizontal').hide();
	} else if (str == 'VerticalSponsoredLink') {
		$('sponsored_link_fields').show();
		$('banner_fields').hide();
		$('video_ad_fields').hide();
		$('vertical_sponsored_link').show();
		$('sponsored_link').hide();
		$('email_ad').hide();
		$('video_ad').hide();
		$('video_ad_horizontal').hide();
	} else if (str == 'VideoAd') {
		$('video_ad_fields').show();
		$('sponsored_link_fields').show();
		$('banner_fields').hide();
		$('video_ad').show();
		$('vertical_sponsored_link').hide();
		$('email_ad').hide();
		$('sponsored_link').hide();
		$('video_ad_horizontal').hide();
	} else if (str == 'VideoAdHorizontal') {
		$('video_ad_fields').show();
		$('sponsored_link_fields').show();
		$('banner_fields').hide();
		$('video_ad_horizontal').show();
		$('vertical_sponsored_link').hide();
		$('email_ad').hide();
		$('video_ad').hide();
		$('sponsored_link').hide();
	} else  {
		$('sponsored_link_fields').hide();
		$('banner_fields').hide();
		$('video_ad_fields').hide();
	}
}

// User Updates - Select all/none countries
function check(method, selected_element)
{
	var checkboxes = document.getElementsByName(selected_element);
	for(i=0; i < checkboxes.length; i++)
	{
		checkboxes[i].checked = method;
	}
}
