// Scripts for initiating all javascript event handler and functions



// Set up events handler for language drop down

function init_language_menu(id)
{
	
	//$(id).onchange=language_submit_form.bindAsEventListener($(id));
	document.getElementById(id).onchange=language_submit_form;
}

// Set up events handler for Sort By menu (artwork and artist index)
function init_sort_menu(id, sort_select_id, artist_select_id, url)
{
	$(id).onchange = sort_menu_jump.bindAsEventListener($(id), id, sort_select_id, artist_select_id, url);
}

// Set up events handler for View menu (artwork and artist index)
function init_view_menu(id, url)
{
	$(id).onchange = view_menu_jump.bindAsEventListener($(id), id, url);
}

// Set up events handler for Sort sub-menu (artwork and artist index)
function init_sort_select_menu(id, id2, url)
{
	$(id2).onchange = sort_select_menu_jump.bindAsEventListener($(id), id, id2, url);
}


// Set up events handler for Sort sub-menu (artwork and artist index)
function init_sort_select_menu(id, id2, url)
{
	$(id2).onchange = sort_select_menu_jump.bindAsEventListener($(id), id, id2, url);
}

// Set up events handler for artist select menu
function init_artist_select_menu(id, url)
{
	$(id).onchange = artist_select_menu_jump.bindAsEventListener($(id), id, url);
}

// Disable right click for all images

function disable_right_click()
{
	return false;
}

function img_disable_right_click()
{
	var img_list = document.getElementsByTagName('img');
	var images = $A(img_list);
	
	images.each(function(image)
	{
		image.oncontextmenu = disable_right_click;
	}
	)
}

// Initialize event handler for Buy Button in Artwork page

function init_buy_button(obj, size, artwork_id)
{
	// Find selected artwork size
	
	if (size == 1)
	{
		artwork_size_id = $('buy_form').size.value;	
	}
	else
	{
		for (counter = 0; counter < $('buy_form').size.length; counter++)
		{
		
			if ($('buy_form').size[counter].checked)
			{
				artwork_size_id = $('buy_form').size[counter].value;
				
			}
				
		}
	}
	
	Effect.Appear('artwork-cart'); 

	setElementVisibility($('buy-container'), false, false);
		ajax_update('invisible_div',config.artwork_url+'add_one_to_cart.php', {item_id: String(artwork_id), artwork_size_id:String(artwork_size_id)});   		
		ajax_update_complete('check-out-shortcut-icon-container',config.artwork_url+'update_shortcut.php', {artwork_id:String(artwork_id)}, show_cart_icon);

}

function show_cart_icon()
{
	Effect.BlindDownFromRight('check-out-shortcut'); 
}

// Initialize event handler for Size Buttons in Artwork page (for products with multiple sizes)

function init_size_buy_button(obj, artwork_id, artwork_size_id)
{
	Effect.Appear('artwork-cart'); 
	ajax_update('invisible_div',config.artwork_url+'add_one_to_cart.php', {item_id:String(artwork_id), artwork_size_id:String(artwork_size_id)});
	setElementVisibility(document.getElementById('check-out-shortcut'), true, true);
	setElementVisibility(document.getElementById('shopping-cart-icon'), true, true);
	setElementVisibility(document.getElementById('size-buttons'), false, false);
	ajax_update('check-out-shortcut-icon-container', config.artwork_url+'update_shortcut.php', {artwork_id:artwork_id});
	ajax_update('shopping-cart-icon', config.artwork_url+'update_cart_icon.php', {artwork_id:'$artwork_id'});
	
}

// Initialize event handler for "Continue Shopping Button" in Artwork page

function init_continue_shopping_button(obj)
{
	Effect.Fade('artwork-cart');
	Effect.Appear('buy-container');
}

// Initialize event handlers in Artwork Index (Artist Detail)
function init_artist_detail(artist_counter, parameter_string)
{

	$('artist-detail-artwork-'+artist_counter).onclick = init_ajax_update.bindAsEventListener($('artist-detail-artwork-'+artist_counter),'artist-detail-'+artist_counter, config.artist_url+'artwork.php', parameter_string);
	$('artist-detail-highlights-'+artist_counter).onclick = init_ajax_update.bindAsEventListener($('artist-detail-artwork-'+artist_counter),'artist-detail-'+artist_counter, config.artist_url+'highlight.php', parameter_string);
	$('artist-detail-curriculum-'+artist_counter).onclick = init_ajax_update.bindAsEventListener($('artist-detail-artwork-'+artist_counter),'artist-detail-'+artist_counter, config.artist_url+'curriculum.php', parameter_string);

}

function update_cart_shipping()
{
	ajax_update_complete('shipping-total', config.artwork_url+'update_ship_location.php', {}, update_cart_gst_highlight_shipping);
}


function update_cart_gst_highlight_shipping()
{
	fade_to_yellow('total-shipping-text');
	ajax_update_complete('total-gst', config.artwork_url+'update_gst.php', {}, update_cart_total_highlight_gst);
}

function update_cart_gst()
{
	ajax_update_complete('total-gst', config.artwork_url+'update_gst.php', {});
}

function update_cart_total_highlight_gst()
{
	fade_to_yellow('total-gst-text');
	ajax_update_complete('checkout-total-price',config.artwork_url+'cart_total.php',{}, highlight_total_change_cart); 
}

function highlight_total_change_cart()
{
	ajax_update('invisible_div',config.artwork_url+'update_shortcut.php', {});
	fade_to_yellow('total-price-text');
}

function update_cart_total()
{
	ajax_update('checkout-total-price',config.artwork_url+'cart_total.php',{}); 
}

// Initialize event handler for ajax_update in Artist Index
function init_ajax_update(obj,id,url,parameters)
{
	ajax_update(id,url, parameters); 
	return false ;
}


// Initialize remove button in check out page
function init_shopping_cart_remove_button(obj, artwork_id, artwork_size_id, price)
{
	
	setElementVisibility($('artwork-list-'+artwork_size_id), false, false);
	ajax_update_complete('subtotal-'+artwork_size_id, config.artwork_url+'update_cart.php', {item_id: String(artwork_id), size_id: String(artwork_size_id), qty: '0', price: price},update_cart_shipping);
	//ajax_update('invisible_div',config.artwork_url+'update_shortcut.php', {});
	check_cart_empty();
	
}

// Initialize shipping location menu in check out page
function init_location_menu(obj, menu_id, total_id)
{
	var location = $(menu_id).options[$(menu_id).selectedIndex].value;
	ajax_update_complete(total_id, config.artwork_url+'update_ship_location.php', {location: String(location)}, update_cart_gst_highlight_shipping);
	
}

// Initialize remove button in check out page
function init_shopping_cart_update_button(obj, artwork_id, artwork_size_id, price)
{
	var qty = $('qty-'+artwork_size_id); 
	if (qty.value == 0)
	{
		setElementVisibility(document.getElementById('artwork-list-'+artwork_size_id), false, false);
		ajax_update_complete('subtotal-'+artwork_size_id, config.artwork_url + 'update_cart.php', {item_id: String(artwork_id), size_id: String(artwork_size_id), qty: '0', price:String(price)}, update_cart_shipping);
		//ajax_update('invisible_div',config.artwork_url+'update_shortcut.php', {});
		check_cart_empty();
	}
	else if (qty.value > 0)
	{
		ajax_update_complete('subtotal-'+artwork_size_id, config.artwork_url + 'update_cart.php', {item_id: String(artwork_id), size_id: String(artwork_size_id), qty: qty.value, price:String(price)}, update_cart_shipping);
	} 
	
	
}



// Initialize event handler for update and remove buttons in shopping cart
function init_shopping_cart_buttons(artwork_id,artwork_size_id,price,lang_code)
{
	switch(lang_code)
	{
		default:
		case 'en':
			$('update-button-container-'+artwork_size_id).innerHTML = '<button type="button" class="checkout-button" id="update-button-'+artwork_size_id+'" />Update</button> <button type="button" class="checkout-button" id="remove-button-'+artwork_size_id+'">Remove</button>';
			break;
		case 'es':
			$('update-button-container-'+artwork_size_id).innerHTML = '<button type="button" class="checkout-button" id="update-button-'+artwork_size_id+'" />Actualizar</button> <button type="button" class="checkout-button" id="remove-button-'+artwork_size_id+'">Quitar</button>';
			break;
	}
	$('update-button-'+artwork_size_id).onclick = init_shopping_cart_update_button.bindAsEventListener($('update-button-'+artwork_size_id),artwork_id,artwork_size_id,price)
	$('remove-button-'+artwork_size_id).onclick = init_shopping_cart_remove_button.bindAsEventListener($('remove-button-'+artwork_size_id),artwork_id,artwork_size_id,price)
}

function init_med_image_link(obj, height, width, title, link)
{
	window.open(config.artwork_url+'large_image.php?title='+title+'&image='+link,'','left=50,top=50, width=' + width +', height=' + height + ', scrollbars,menubar=no,status=no,resizable=no,toolbar=no');
	return false;
}

// Initialize event handler for Hide Text button
function init_hide_text(obj, text_id, toggle_id, page, lang)
{
	hide_text(text_id,toggle_id, page, lang);
	return false;
}

// Initialize preamble
function init_preamble(text_id, toggle_id, status)
{
	if (status == 'hidden')
	{
		$(text_id).style.display = 'none';
		$(text_id).addClassName("hidden");
		$(toggle_id).innerHTML = '<img src="/img/show_text.jpg" alt="show text" />';
	}
	
}

/************************************************************
// Javascript initiation function
//
//  Parameter:
// 			page: strings of page name
//			parameter: a hash contains all parameters required
/***************************************************************/

function init(page,parameters)
{
	//init_language_menu('language_id_menu');
	img_disable_right_click();
	if (page != 'large_image')
	{
		init_text_input('searchword');
	}
	if (typeof(page) != 'undefined')
	{
		switch(page)
		{
			case 'artwork':
				switch(parameters.lang_code)
				{
					default:
					case 'en':
						$('buy-button-container').innerHTML = '<button class="cart-button" type="button" name="buy-button" id="buy-button">Add to Cart</button>';
						break;
					case 'es':
						$('buy-button-container').innerHTML = '<button class="cart-button" type="button" name="buy-button" id="buy-button">Añadir, agregar </button>';
						break;
				}
				$('action').value = "";
				// Initialize buy button
				$('buy-button').onclick = init_buy_button.bindAsEventListener($('buy-button'), parameters.num_artwork_size, parameters.artwork_id);
				
				// Initialize link to pop up large image
				$('med-image-link').onclick = init_med_image_link.bindAsEventListener($('med-image-link'), parameters.image_height, parameters.image_width, parameters.title, parameters.link);
				
				/*
				// Initialize size buttons
				for(var i=0; (i < parameters.num_artwork_size && parameters.num_artwork_size > 1); i++)
				{
					//$('size-button-'+i).onclick = init_size_buy_button.bindAsEventListener($('size-button-'+i),parameters.artwork_id, parameters.artwork_size_id[i])
				}
				*/
				$('continue-shopping-button').onclick = init_continue_shopping_button.bindAsEventListener($('continue-shopping-button'));
				break;
				
			case 'artwork_index':
				init_sort_menu('sort_menu_1', 'sort_select_menu_1', '', config.artwork_url);
				init_sort_menu('sort_menu_2', 'sort_select_menu_2', '', config.artwork_url);
				//init_view_menu('view_menu_1', config.artwork_url);
				//init_view_menu('view_menu_2', config.artwork_url);
				init_sort_select_menu('sort_menu_1','sort_select_menu_1',config.artwork_url);
				init_sort_select_menu('sort_menu_2','sort_select_menu_2',config.artwork_url);
				//init_preamble('artwork-preamble','hide-artwork-button',parameters.artwork_preamble);
				$('hide-artwork-button').onclick = init_hide_text.bindAsEventListener($('hide-artwork-button'),'artwork-preamble', 'hide-artwork-button', page, parameters.lang);
				break;
								
			case 'artist_index':
				init_sort_menu('sort_menu_1', 'sort_select_menu_1', 'artist_select_menu_1', config.artist_url);
				init_sort_menu('sort_menu_2', 'sort_select_menu_2', 'artist_select_menu_2', config.artist_url);
				//init_view_menu('view_menu_1', config.artist_url);
				//init_view_menu('view_menu_2', config.artist_url);
				init_sort_select_menu('sort_menu_1','sort_select_menu_1',config.artist_url);
				init_sort_select_menu('sort_menu_2','sort_select_menu_2',config.artist_url);
				//init_artist_select_menu('artist_select_menu_1',config.artist_url);
				//init_artist_select_menu('artist_select_menu_2',config.artist_url);
				//init_preamble('artist-preamble','hide-artist-button',parameters.artist_preamble);
				$('hide-artist-button').onclick = init_hide_text.bindAsEventListener($('hide-artist-button'),'artist-preamble', 'hide-artist-button', page, parameters.lang);
				break;
				
			case 'artist':
				
				break;
				
			case 'checkout':
				if($('shipping_same') != null)
				{
					$('shipping_same').onclick = doBillToShip;
				}
				break;
			case 'search':
				init_search(parameters.lang, parameters.search_query, parameters.search_form_id, parameters.search_result_id, parameters.searches);
				break;
			case 'shopping_cart':
				/*if ($('location-submit-row') != null)
				{
					$('location-submit-row').style.display = "none";
				}
				*/
				
				if ($('ship-location-menu') != null)
				{
					
					$('ship-location-menu').onchange = init_location_menu.bindAsEventListener($('ship-location-menu'), 'ship-location-menu', 'shipping-total');
					
				}
				if ($('location-submit-button') != null)
				{
					switch(parameters.lang_code)
					{
						default:				
						case 'en':
							$('location-submit-button').innerHTML = 'Check Out';
							break;
							
						case 'es':
							$('location-submit-button').innerHTML = 'Ratificar';
							break;
					}	
					$('location-submit-button').setAttribute('type', 'button');						
					$('location-submit-button').onclick = check_shipping;
				}
				break;					
		}
	}
}
/************************************************************
// Language menu initiation function
//
//  Parameter:
// 			languages: an array of two letter language code
/***************************************************************/

function init_language(languages)
{;
	var i;
	var id_name;
	for (i=0; i < languages.length; i++)
	{
		id_name = 'lang_link_' + languages[i];
		$(id_name).href = 'javascript:submit_language_form(\''+languages[i]+'\')';
	}
}



//*********************************************************
function init_search(lang, search_query, search_form_id, search_result_id, searches)
{
	// Create a search control
      var searchControl = new GSearchControl();
	  var options = new GsearcherOptions();
	
	 // create a drawOptions object
	var drawOptions = new GdrawOptions();
	
	// tell the searcher to draw itself in linear mode
	drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED);
	drawOptions.setInput($('invisible-div'));
	
      options.setRoot($(search_result_id));
	  
      for (i=0; i<searches.length; i++)
      {
      	var siteSearch = new GwebSearch();
      	
		siteSearch.setUserDefinedLabel(searches[i].label);
		siteSearch.setSiteRestriction(searches[i].ID);
		
		//siteSearch.setQueryAddition('hl:' + lang);
		//searchControl.addSearcher(siteSearch, options);
		searchControl.addSearcher(siteSearch);
      }
      
      
      // tell the searcher to draw itself and tell it where to attach
      searchControl.draw($(search_form_id), drawOptions);

      // execute an inital search
      searchControl.execute(search_query);
      
    
}

//*******************************************************************
function init_text_input(id)
{
	$(id).onfocus = blank_value.bindAsEventListener($(id), id);
	$(id).onblur = set_default_value.bindAsEventListener($(id), id, 'press enter to search');
}