/*
 *  \author 		@ide-info <contact@ai-dev.fr>
 *  \copyright  	2011 @ide-info
 *  \license		Read the multi-language license file (license.txt)
 *
 *  \file 			includes/functions.js
 *  \brief			Javascript functions file for ai_multi-dimensions module
 * 
 *  \package		aimultidimensions
 *  \version		0.89
 */

var product_price=0;var base_product_price=0;var quantity_reduction=1;var surface_reduction=1;var attributes_price=0;var product_taxe_type=0;$(document).ready(function(){if(typeof(default_combination_id)!='undefined')displayDefaultCombination();for(var cpt=0;cpt<default_dimensions.length;cpt++){if($('select#group_'+default_dimensions[cpt][0]).size()){$('select#group_'+default_dimensions[cpt][0]).hide();$('select#group_'+default_dimensions[cpt][0]).before('<input type="text" id="value_'+default_dimensions[cpt][0]+'" value="" size="4" maxlength="5" class="text ai_multi_dimensions" />');for(var cpt_limits=0;cpt_limits<limits.length;cpt_limits++){if(limits[cpt_limits][0]==default_dimensions[cpt][0]){if(limit_placement)$('select#group_'+default_dimensions[cpt][0]).after('<span class="center ai_multi_dimensions_legend">('+limits[cpt_limits][3]+')</span>');else $('select#group_'+default_dimensions[cpt][0]).after('<p><span class="center ai_multi_dimensions_legend">('+limits[cpt_limits][3]+')</span></p>')}}$('select#group_'+default_dimensions[cpt][0]).addClass('ai_multi_dimensions');$('select#group_'+default_dimensions[cpt][0]).removeAttr('onchange');$('select#group_'+default_dimensions[cpt][0]+' OPTION').each(function(){$(this).remove()});$('select#group_'+default_dimensions[cpt][0]).html('<option value="" selected="selected">Choice</option>')}}if(typeof(taxRate)!='undefined')product_taxes_rate=taxRate*product_taxes_type;if(typeof(noTaxForThisProduct)!='undefined'&&noTaxForThisProduct)product_taxes_rate=0;if($('#attributes select.ai_multi_dimensions').size()){$('span#availability_label').after('<input type="hidden" id="base_dir_url" value="'+baseDir+'" /><span id="availability_text" class="warning_inline">'+availability_informations_message+'</span>');$('div#attributes SELECT:not(.ai_multi_dimensions)').each(function(){$(this).removeAttr('onchange')});$('#attributes').append('<input type="button" id="ai_calculate" class="exclusive" value="'+calculate_button_label+'" style="margin: 10px auto;" />');$('#availability_value').hide();$('#availability_statut').append($('#availability_text'));$('#availability_text').show();$('#attributes select:not(.ai_multi_dimensions)').change(function(){updateTarget(0,0,1)});$('#attributes input.ai_multi_dimensions').each(function(){$(this).keydown(function(){majButton()});$(this).change(function(){if(!testQuantity($(this).attr('id'),$(this).val())){alert(limit_error_message);$(this).val('')}else{showQuantity();updateTarget($(this).attr('id'),$(this).val())}})});$('input#quantity_wanted').change(function(){updatePrice()});if($('#unit_price_display').size())$('#unit_price_display').attr('id','ai_unit_price_display');base_product_price=product_price=productPriceTaxExcluded*(1+(product_taxes_rate/100));if(minimum_surface!=0)$('input#ai_calculate').before('<p class="ai_minimum_surface_message">'+minimum_surface_message+' '+minimum_surface+' '+minimum_surface_scale+'</p>');setTimeout('calculateShow()',600)}sortCombination()});function calculateShow(){$('p#add_to_cart').hide('slow');$('p#availability_statut').show('slow');$('p#quantity_wanted_p').hide('slow')}function updateTarget(target,value,others){if(!$('#attributes select.ai_multi_dimensions').size())return true;var index=0;var attr_2='-1';var attr_3='-1';$('#attributes select.ai_multi_dimensions').each(function(){if(!target&&!value){if($(this).attr('id'))target=$(this).attr('id');value=$('#'+target.replace('group','value')).val()}target=target.replace('value','group');if($(this).attr('id')!=target&&attr_2=='-1')attr_2=$(this).val();else if($(this).attr('id')!=target&&attr_3=='-1')attr_3=$(this).val()});var more=new Array();$('#attributes select:not(.ai_multi_dimensions)').each(function(){more.push($(this).val())});more=more.join('_');if(location.href.indexOf($('#base_dir_url').val())===0){if(!others)others=0;var token=encode('group='+target+'&value='+value+'&product='+$('#product_page_product_id').val()+'&attr_2='+attr_2+'&attr_3='+attr_3+'&more='+more+'&others='+others);$.get($('#base_dir_url').val()+'modules/aimultidimensions/includes/ajax.php?token='+token,function(data){var tabData=data.split('|');if(tabData.length>1){$('select#'+target+' option').val(tabData[0]);var params=new Array(tabData[0]);for($index=9;$index<(tabData.length-2);$index++){params.push(tabData[$index])}addCombination(parseInt(tabData[1]),params,parseInt(tabData[2]),parseFloat(tabData[3]).toFixed(6),tabData[4],tabData[5],tabData[6],parseFloat(tabData[7]),parseInt(tabData[8]));sortCombination()}else{if(data.substr(0,7)=='Error->')alert(data.substr(7));else if(data.substr(0,7)=='Price->'){attributes_price=parseFloat(data.substr(7));product_price=base_product_price+attributes_price}else{var tabSub=data.split('@');$('select#'+target+' option').val(tabSub[0]);attributes_price=parseFloat(tabSub[1]);product_price=base_product_price+attributes_price}}if(tabData.length>1){surface_reduction=parseFloat(tabData[tabData.length-1]);attributes_price=parseFloat(tabData[tabData.length-2]);product_price=base_product_price+attributes_price}var all_dimensions=true;$('#attributes input.ai_multi_dimensions').each(function(){if($(this).val()=='')all_dimensions=false});if(all_dimensions)setTimeout('showCombination()',500)})}}function showCombination(){findCombination();if(!selectedCombination['unavailable']&&quantityAvailable>0&&productAvailableForOrder==1)$('#availability_statut').hide();updatePrice()}function majButton(){$('#add_to_cart').hide();$('#availability_statut').show();$('#pQuantityAvailable').hide();$('#product_reference').hide()}function dump(arr,level){var dumped_text='';if(!level)level=0;var level_padding='';for(var j=0;j<level+1;j++)level_padding+='    ';if(typeof(arr)=='object'){for(var item in arr){var value=arr[item];if(typeof(value)=='object'){dumped_text+=level_padding+"'"+item+"' ...\n";dumped_text+=dump(value,level+1)}else dumped_text+=level_padding+'"'+item+'" => "'+value+'"'+"\n"}}else dumped_text='===>'+arr+'<===('+typeof(arr)+')';return dumped_text}var strings='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';function encode(input){var returnString='';var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;input=utf8Encode(input);while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2))enc3=enc4=64;else if(isNaN(chr3))enc4=64;returnString=returnString+strings.charAt(enc1)+strings.charAt(enc2)+strings.charAt(enc3)+strings.charAt(enc4)}return returnString}function utf8Encode(string){string=string.replace(/\r\n/g,"\n");var returnString='';for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128)returnString+=String.fromCharCode(c);else if((c>127)&&(c<2048)){returnString+=String.fromCharCode((c>>6)|192);returnString+=String.fromCharCode((c&63)|128)}else{returnString+=String.fromCharCode((c>>12)|224);returnString+=String.fromCharCode(((c>>6)&63)|128);returnString+=String.fromCharCode((c&63)|128)}}return returnString}function updateReference(){var reference='';if($('#product_reference span').size())reference=$('#product_reference span').html().replace('\'\'','');if(reference==''){$('#product_reference span').html(reference);$('#product_reference').hide()}}function updatePrice(){var quantity=parseInt($('input#quantity_wanted').val());var token=encode('product='+$('#product_page_product_id').val()+'&quantity='+quantity);$.get($('#base_dir_url').val()+'modules/aimultidimensions/includes/ajax.php?token='+token,function(data){if(data=='')data=0;quantity_reduction=1-parseFloat(data);var token=encode('action=mcs');$.get($('#base_dir_url').val()+'modules/aimultidimensions/includes/ajax.php?token='+token,function(data){if(parseFloat(data)!=parseFloat(minimum_surface))minimum_surface=parseFloat(data)});var dimension=1;var dimension_tmp=1;$('#attributes input.ai_multi_dimensions').each(function(){for(var cpt=0;cpt<default_dimensions.length;cpt++){if(default_dimensions[cpt][0]==$(this).attr('id').replace('value_',''))dimension_tmp=dimension_tmp*(parseFloat($(this).val())/default_dimensions[cpt][1])}});if(!isNaN(dimension_tmp)){if(minimum_surface_on_quantity==1)surface_recalculated=quantity*dimension_tmp;else surface_recalculated=dimension_tmp;if(surface_recalculated>=minimum_surface)dimension=dimension_tmp;else dimension=minimum_surface}var reduction=0;if(!isNaN(dimension_tmp)){var global_dimension=dimension;if(parseInt(global_surface_reduction)==1)global_dimension*=quantity;for(var cpt=0;cpt<dimensions_reductions.length;cpt++){if(dimensions_reductions[cpt][0]<=global_dimension)reduction=dimensions_reductions[cpt][1];else break}}surface_reduction=1+(reduction/100);if(minimum_surface_on_quantity==1&&surface_recalculated<minimum_surface)dimension/=quantity;if(selectedCombination['price']!==undefined){var new_price=product_price*surface_reduction*dimension;selectedCombination['price']=new_price;var display_price_tmp=new_price*quantity_reduction;$('#our_price_display').text(formatCurrency(parseFloat(display_price_tmp*quantity),currencyFormat,currencySign,currencyBlank));var ajax_price=((new_price-base_product_price)/(1+(product_taxes_rate/100)))/group_reduction;var token=encode('action=upp&product='+$('#product_page_product_id').val()+'&quantity='+quantity+'&attribute='+$('#idCombination').val()+'&price='+ajax_price);$.get($('#base_dir_url').val()+'modules/aimultidimensions/includes/ajax.php?token='+token,function(data){})}if($('#ai_unit_price_display').size())$('#ai_unit_price_display').text(formatCurrency(parseFloat(product_price*quantity_reduction*surface_reduction),currencyFormat,currencySign,currencyBlank))});updateDisplay();updateReference()}function showQuantity(){var all_dimensions=true;$('#attributes input.ai_multi_dimensions').each(function(){if($(this).val()=='')all_dimensions=false});if(all_dimensions)$('p#quantity_wanted_p').show();else $('p#quantity_wanted_p').hide('slow')}function testQuantity(id,value){id=parseFloat(id.replace('value_',''));for(var cpt=0;cpt<limits.length;cpt++){if(parseFloat(limits[cpt][0])==id){if(parseFloat(value)<parseFloat(limits[cpt][1])||(parseFloat(value)>parseFloat(limits[cpt][2])&&parseFloat(limits[cpt][2])!=0))return false}}return true}function sortCombination(){if(typeof(combinations)!='undefined')combinations.sort(function(a,b){return b.idCombination-a.idCombination})}function formatCurrency(price,currencyFormat,currencySign,currencyBlank){price=parseFloat(price);blank='';price=parseFloat(price.toFixed(6));price=ps_round(price,priceDisplayPrecision);if(currencyBlank>0)blank=' ';if(currencyFormat==1)return currencySign+blank+formatNumber(price,priceDisplayPrecision,',','.');if(currencyFormat==2)return(formatNumber(price,priceDisplayPrecision,' ',',')+blank+currencySign);if(currencyFormat==3)return(currencySign+blank+formatNumber(price,priceDisplayPrecision,'.',','));if(currencyFormat==4)return(formatNumber(price,priceDisplayPrecision,',','.')+blank+currencySign);return price}function displayDefaultCombination(){for(var combination=0;combination<combinations.length;++combination){if(combinations[combination]['idCombination']==default_combination_id){selectedCombination['unavailable']=false;selectedCombination['reference']=combinations[combination]['reference'];$('#idCombination').val(combinations[combination]['idCombination']);quantityAvailable=combinations[combination]['quantity'];selectedCombination['price']=combinations[combination]['price'];selectedCombination['unit_price']=combinations[combination]['unit_price'];if(combinations[combination]['ecotax'])selectedCombination['ecotax']=combinations[combination]['ecotax'];else selectedCombination['ecotax']=default_eco_tax;break}}updateDisplay()}

