var request = false;
var AJAX_URL = 'AJAX_servers/AJAX_image_swapper_server.php';

var indicator_url = 'images/web_images/indicator.gif';
var swatches = new Array();
window.addEvent('domready', function() {
  request = new Request({'url': AJAX_URL, 'method': 'get', 'link': 'cancel'});
  request.addEvent('complete', getData);
	$$('.attribImgLink').each(function(el, i) {
    swatches[i] = new Swatch(el);
  });
  loadImages();}
);
var _sel_opt_id = 0;
var _sel_optval_id = 0;

function getData(responseText, responseXML) {
		if (responseXML != null) {
			var itemsNode = responseXML.getElementsByTagName('items');
			if (itemsNode.length > 0) {
				var attribute = itemsNode[0].attributes[0].value;
				if (attribute == 'loadImages') {
					
					var item_node = responseXML.getElementsByTagName('item');
					var total_image = item_node.length;
					var images_array = new Array();
					var num_image_displayed = $('ais_image_num').get('value');
					for (i=0; i< total_image; i++) {
						var image_array = get_image_array(item_node[i]);
						images_array[i] = image_array;
            if (typeof(image_array['attributes_price']) != 'undefined' && image_array['attributes_price'] != '') {
              $$('.productPrices')[0].set('html', '<span class="normalprice">'+image_array['normal_price']+'</span>&nbsp;<span class="productSpecialPrice">'+image_array['attributes_price']+'</span><span class="productPriceDiscount">'+image_array['discount_amount']+'</span>');
            }
            else {
              $$('.productPrices')[0].set('html', image_array['normal_price']);
            }
					}
					var image_viewer = new ImageViewer('image_medium_container', 'image_nav_container', images_array, num_image_displayed, {
						small_container_width : $('ais_small_container_width').get('value'),
						small_container_height : $('ais_small_container_height').get('value'),
						scroll_size : $('ais_scroll_size').get('value')
					});
					
				}
			}
		}
}

function get_image_array(itemNode) {
	var image_ids_node = itemNode.getElementsByTagName('image_id');
	var image_paths_small_node = itemNode.getElementsByTagName('image_path_small');
	var image_width_small_node = itemNode.getElementsByTagName('image_width_small');
	var image_height_small_node = itemNode.getElementsByTagName('image_height_small');
	
	var image_paths_medium_node = itemNode.getElementsByTagName('image_path_medium');
	var image_width_medium_node = itemNode.getElementsByTagName('image_width_medium');
	var image_height_medium_node = itemNode.getElementsByTagName('image_height_medium');
	
	var image_paths_large_node = itemNode.getElementsByTagName('image_path_large');
	var image_width_large_node = itemNode.getElementsByTagName('image_width_large');
	var image_height_large_node = itemNode.getElementsByTagName('image_height_large');
	
	var image_titles_node = itemNode.getElementsByTagName('image_title');

	
  var image_array = new Array();
	var i = 0;
  
  if (typeof(image_ids_node[i]) != 'undefined') {		
    if (window.ActiveXObject) {
        if (typeof(itemNode.getElementsByTagName('attributes_price')[0]) != 'undefined') {
          var attributes_price = itemNode.getElementsByTagName('attributes_price')[0].text;
          var normal_price = itemNode.getElementsByTagName('normal_price')[0].text;
          var discount_amount = itemNode.getElementsByTagName('discount_amount')[0].text;
          image_array['attributes_price'] = attributes_price;
          image_array['normal_price'] = normal_price;
          image_array['discount_amount'] = discount_amount;
        }
        image_array['image_id'] = image_ids_node[i].text;
        
        image_array['image_path_small'] = image_paths_small_node[i].text;
        image_array['image_width_small'] = image_width_small_node[i].text;
        image_array['image_height_small'] = image_height_small_node[i].text;
        
        image_array['image_path_medium'] = image_paths_medium_node[i].text;
        image_array['image_width_medium'] = image_width_medium_node[i].text;
        image_array['image_height_medium'] = image_height_medium_node[i].text;
        
        image_array['image_path_large'] = image_paths_large_node[i].text;
        image_array['image_width_large'] = image_width_large_node[i].text;
        image_array['image_height_large'] = image_height_large_node[i].text;
        
        image_array['image_title'] = image_titles_node[i].text;
    }
    else {
      if (typeof(itemNode.getElementsByTagName('attributes_price')[0]) != 'undefined') {
        var attributes_price = itemNode.getElementsByTagName('attributes_price')[0].textContent;
        var normal_price = itemNode.getElementsByTagName('normal_price')[0].textContent;
        var discount_amount = itemNode.getElementsByTagName('discount_amount')[0].textContent;
        image_array['attributes_price'] = attributes_price;
        image_array['normal_price'] = normal_price;
        image_array['discount_amount'] = discount_amount;
      }
      
      image_array['image_id'] = image_ids_node[i].textContent;
      image_array['image_path_small'] = image_paths_small_node[i].textContent;
      image_array['image_width_small'] = image_width_small_node[i].textContent;
      image_array['image_height_small'] = image_height_small_node[i].textContent;
      
      image_array['image_path_medium'] = image_paths_medium_node[i].textContent;
      image_array['image_width_medium'] = image_width_medium_node[i].textContent;
      image_array['image_height_medium'] = image_height_medium_node[i].textContent;
      
      image_array['image_path_large'] = image_paths_large_node[i].textContent;
      image_array['image_width_large'] = image_width_large_node[i].textContent;
      image_array['image_height_large'] = image_height_large_node[i].textContent;
      
      image_array['image_title'] = image_titles_node[i].textContent;
    }
  }
  else {
    image_array['image_id'] = '';
    image_array['image_path_small'] = '';
    image_array['image_width_small'] = '';
    image_array['image_height_small'] = '';
    
    image_array['image_path_medium'] = '';
    image_array['image_width_medium'] = '';
    image_array['image_height_medium'] = '';
    
    image_array['image_path_large'] = '';
    image_array['image_width_large'] = '';
    image_array['image_height_large'] = '';
    
    image_array['image_title'] = '';
  }
	image_array['image_path_small'] = image_array['image_path_small'].replace('&amp;', '&');
  image_array['image_path_medium'] = image_array['image_path_medium'].replace('&amp;', '&');
  image_array['image_path_large'] = image_array['image_path_large'].replace('&amp;', '&');
	return image_array;
}

function loadImages(opt_id, optval_id) {
	products_id = $('products_id').get('value');
	
	var img_indicator = new Element('img', {
		'src' : indicator_url,
		'class' : 'indicator_image'
	});
  $('image_nav_container').empty();
	$('image_medium_container').empty();
	img_indicator.inject($('image_medium_container'));
  if (typeof(opt_id) != 'undefined' && typeof(optval_id) != 'undefined') {
    opt_id_used = opt_id;
    options_values_id = optval_id;
  }
  else {
    if ($('opt_id_used')) {
      var opt_id_used = $('opt_id_used').get('value');
    }
    else {
      var opt_id_used = '';
    }
    if (opt_id_used !== '') {
    //combo box
      if ($('attrib-' + opt_id_used)) {
        var option_used = $('attrib-' + opt_id_used);
        var options_values_id = option_used.get('value');
        option_used.addEvent('change', function() {
          if ($('swatch-'+opt_id_used+'-'+option_used.get('value'))) {
            $$('.attribImgLink').each(function(el2) {
              el2.removeClass('selected');
            });
            $('swatch-'+opt_id_used+'-'+option_used.get('value')).addClass('selected');
          }
          loadImages();
        });
        $('swatch-'+opt_id_used+'-'+option_used.get('value')).addClass('selected');
      }
    //radio button
      else {
        //var option_used = document.forms['cart_quantity'].elements['id[' + opt_id_used + ']'];
        var all_inputs = $$('input');
        var option_used = new Array();
        var counter_opt = 0;
        for (var i=0; i < all_inputs.length; i++) {
          var match_me = 'attrib-' + opt_id_used;
          if ( all_inputs[i].get('id') != null && all_inputs[i].get('id').match(match_me) != null) {
            var used_input = all_inputs[i];
            option_used[counter_opt] = used_input;
            counter_opt++;
          }
        }
        var options_values_id = getCheckedValue(option_used);
        
        if (options_values_id == '') {
          options_values_id = option_used[0].get('id').replace('attrib-' + opt_id_used + '-', '');
        }
        
        for (var i=0;i<option_used.length;i++) {
          option_used[i].addEvent('click', loadImages);
        }
        
      }
    }
  }
  _sel_opt_id = opt_id_used;
  _sel_optval_id = options_values_id;
  if (_sel_opt_id != '') {
    submit_values(['action', 'products_id', 'options_id', 'options_values_id', 'id'], ['loadImages', products_id, opt_id_used, options_values_id, Number(new Date)]);
  }
  else {
    submit_values(['action', 'products_id', 'id'], ['loadImages', products_id, Number(new Date)]);
  }
}

// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj) {
		return "";
	}
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

//example: submit_values('AJAX_servers/AJAX_image_swapper_server.php', ['action', 'new_order','new_title','image_id', 'option_id', 'id'], ['update', new_order, new_title, image_id, option_id, Number(new Date)]);
function submit_values(key_list, value_list) {
	var url_string = '';

	for(var i=0; i<key_list.length;i++) {
		if (i > 0) {
			url_string += '&' + key_list[i] + '=' + value_list[i];
		}
		else {
			url_string += key_list[i] + '=' + value_list[i];
		}
	}
  request.send(url_string);
}