<?php
/**
 * @package	HikaShop for Joomla!
 * @version	2.2.3
 * @author	hikashop.com
 * @copyright	(C) 2010-2013 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><table class="hikashop_product_options_table">
<?php
			$this->setLayout('listing_price');

			$old_show_discount = $this->params->get('show_discount');
			$old_per_unit = $this->params->get('per_unit',1);
			$this->params->set('show_discount',0);
			$this->params->set('per_unit',0);
			$this->params->set('from_module','1');
			$i=0;
			$js="var hikashop_options=Array();";

			foreach($this->element->options as $optionElement){
?>
	<tr>
<?php			$this->values = array();
				$value = 0;
				$currency = hikashop_get('class.currency');
				$map = 'hikashop_product_option['.$i.']';
				$id = 'hikashop_product_option_'.$i;
				if(empty($optionElement->variants)){
					if(!$optionElement->product_published || (!$this->config->get('show_out_of_stock',1) && $optionElement->product_quantity==0)) continue;
					$this->values[] = JHTML::_('select.option', 0,JText::_('HIKASHOP_NO'));
					$text = JText::_('HIKASHOP_YES');
					$this->row =& $optionElement;
					if(!empty($optionElement->prices) && $this->params->get('show_price')){
						$ok = 0;
						$positive=1;
						foreach($optionElement->prices as $k => $price){
							if(empty($price->price_min_quantity)){
								$ok = $k;
								if($price->price_value<0) $positive=false;
								break;
							}
						}
						$this->row->prices = array($optionElement->prices[$k]);
						$text.=' ( '.($positive?'+ ':'').strip_tags($this->loadTemplate()).' )';
						if($this->params->get('price_with_tax')){
							$price = $optionElement->prices[$k]->price_value_with_tax;
						}else{
							$price = $optionElement->prices[$k]->price_value;
						}
						$js.="
						hikashop_options[".(int)$optionElement->product_id."]=".(float)$price.";";
					}
					$this->values[] = JHTML::_('select.option', $optionElement->product_id,$text);
				}else{
					$defaultValue=array();
					if(isset($optionElement->characteristics) && is_array($optionElement->characteristics) && count($optionElement->characteristics)){
						foreach($optionElement->characteristics as $char){
								$defaultValue[]=$char->characteristic_id;
						}
					}

					foreach($optionElement->variants as $variant){
						if(!$variant->product_published || (!$this->config->get('show_out_of_stock',1) && empty($variant->product_quantity))) continue;
						if($variant->product_sale_start>time()) continue;
						if($variant->product_sale_end!='' && $variant->product_sale_end!='0' && $variant->product_sale_end<time()) continue;
						if(empty($variant->variant_name)){
							if(empty($variant->characteristics_text)){
								$text = $variant->product_name;
							}else{
								$text = $variant->characteristics_text;
							}
						}else{
							$text = $variant->variant_name;
						}
						$this->row =& $variant;

						if(!empty($variant->prices) && $this->params->get('show_price')){
							$ok = 0;
							$positive=1;
							foreach($variant->prices as $k => $price){
								if(empty($price->price_min_quantity)){
									$ok = $k;
									if($price->price_value<0) $positive=false;
									break;
								}
							}
							$this->row->prices = array($variant->prices[$k]);
							$text.=' ( '.($positive?'+ ':'').strip_tags($this->loadTemplate()).' )';

							if($this->params->get('price_with_tax')){
								$price = $variant->prices[$k]->price_value_with_tax;
							}else{
								$price = $variant->prices[$k]->price_value;
							}
							$js.="
							hikashop_options[".(int)$variant->product_id."]=".(float)$price.";";
						}

						if($defaultValue && isset($variant->characteristics) && is_array($variant->characteristics) && count($variant->characteristics)){
							$default = true;
							foreach($variant->characteristics as $char){
								if(!in_array($char->characteristic_id,$defaultValue)){
									$default = false;
								}
							}
							if($default){
								$value = $variant->product_id;
							}
						}
						$this->values[] = JHTML::_('select.option', $variant->product_id,$text);
					}
				}
				if(!count($this->values)) continue;
				$html = JHTML::_('select.genericlist', $this->values, $map, 'class="inputbox" size="1"  onchange="hikashopChangeOption();"', 'value', 'text', (int)$value,$id );
				if(!empty($optionElement->variants)){
					$optionInfo =& $optionElement->main;
				}else{
					$optionInfo =& $optionElement;
				}
				$options='';
				if(!empty($optionInfo->product_description) || !empty($optionInfo->product_url)){
					$options='<img src="'.HIKASHOP_IMAGES.'icons/icon-16-info.png" alt="Information"/>';
					$description = '';
					if(!empty($optionInfo->product_description)){
						$description = $this->escape(strip_tags(JHTML::_('content.prepare',$optionInfo->product_description)));
						$options='<span class="hikashop_option_info" title="'.$description.'">'.$options.'</span>';
					}
					if(!empty($optionInfo->product_url)){
						JHTML::_('behavior.modal');
						if(empty($description)){
							$description = $optionInfo->product_name;
						}
						$options='<a class="hikashop_option_info_link modal" rel="{handler: \'iframe\', size: {x: 450, y: 480}}" title="'.$description.'" href="'.$optionInfo->product_url.'">'.$options.'</a>';
					}
				}
					$html='<span class="hikashop_option_name" >'.$optionInfo->product_name.$options.'</span></td><td>'.$html;
?>
		<td>
			<?php echo $html; ?>
		</td>
	</tr>
				<?php $i++;
			}

			global $Itemid;
			$url_itemid='';
			if(!empty($Itemid)){
				$url_itemid='&Itemid='.$Itemid;
			}
			$baseUrl = hikashop_completeLink('product&task=price',true,true);
			if(strpos($baseUrl,'?')!==false){
				$baseUrl.='&';
			}else{
				$baseUrl.='?';
			}
			$js = $js. "
			function hikashopChangeOption(){
				var j = 0;
				total_option_price = 0;
				while(true){
					var option = document.getElementById('hikashop_product_option_'+j);
					if(!option){
						break;
					}
					j++;
					var option_price = hikashop_options[option.value];
					if(option_price){
						total_option_price+=option_price;
					}
				}

				var arr = new Array();
				arr = document.getElementsByName('hikashop_price_product');
				for(var i = 0; i < arr.length; i++){
					var obj = document.getElementsByName('hikashop_price_product').item(i);
					var id_price = 'hikashop_price_product_' + obj.value;
					var id_price_with_options = 'hikashop_price_product_with_options_' + obj.value;
					var price = document.getElementById(id_price);
					var price_with_options = document.getElementById(id_price_with_options);
					if(price && price_with_options){
						price_with_options.value = parseFloat(price.value) + total_option_price;
					}
				}
				hikashopRefreshOptionPrice();
			}

			function hikashopRefreshOptionPrice(){
				var price_div = document.getElementById('hikashop_product_id_main');
				var inputs = price_div.getElementsByTagName('input');
				if(inputs[0]){
					var id_price_with_options = 'hikashop_price_product_with_options_' + inputs[0].value;
					var price_with_options = document.getElementById(id_price_with_options);
					if(price_with_options){
						try{
							new Ajax('".$baseUrl."price='+price_with_options.value+'".$url_itemid."',  { method: 'get', onComplete: function(result) { var totalPrice = window.document.getElementById('hikashop_product_price_with_options_main'); if(totalPrice) totalPrice.innerHTML = result;}}).request();
						}catch(err){
							new Request({url:'".$baseUrl."price='+price_with_options.value+'".$url_itemid."', method: 'get', onComplete: function(result) { var totalPrice = window.document.getElementById('hikashop_product_price_with_options_main'); if(totalPrice) totalPrice.innerHTML = result;}}).send();
						}
					}

				}
			}
			window.addEvent('domready', function() { hikashopChangeOption(); });
			";
			if (!HIKASHOP_PHP5) {
				$doc =& JFactory::getDocument();
			}else{
				$doc = JFactory::getDocument();
			}
			$doc->addScriptDeclaration("\n<!--\n".$js."\n//-->\n");
			$this->params->set('show_discount',$old_show_discount);
			$this->params->set('per_unit',$old_per_unit);
			$this->params->set('from_module','');
			?>
</table>
