// JavaScript Document

function toggleMore(){
	
	if (! $('#moreOptions').hasClass('on') )
	{
		$('#moreOptions').show();
		$('#more_on').show();
		$('#more_off').hide(); 
		$('#moreOptions').addClass('on')
}
	else
	{
		$('#moreOptions').removeClass('on')
		$('#moreOptions').hide(); 
		$('#more_off').show(); 
		$('#more_on').hide(); 
	}

}



Sonix.price={
	settings:{
			showguides:false,
			showcompare:false,
			showbuynow:true,
			showestimatebutton:true,
			showestimatelinkininfo:false,
			showquantityinfo:true, 
			textoverquantity:'',
			showwarnings:false,
			shownooption:false,
			splitradio:2
			
		},
		
	addOption : function(id){  
		
		$('#idoption_add').val(id)  }, 
	selectQty:	function(){
				var selectedQty=Sonix.price.getQty(); 
				var data=$(Sonix.price.result.data).filter('[qty='+selectedQty+']')[0]
				var html='';
				
				if (Sonix.price.settings.showquantityinfo)
				{
					var html="<div style=\"#cccccc\">Printed: "+data.descriptioncompare+"<br/>Production time :"+data.delays+" (Rush options will be available later)<br/>Weight: "+Math.round(data.weight,2)+"Lbs"
				}
				
				if (Sonix.price.settings.showestimatelinkininfo)
				{
						html+="<br><a href=\""+Sonix.price.shippingEstimate_link()+"\"><b>View shipping Estimate</b></a>"			
				}
				
			
							
				html+="</div>";
				
				//Show warnings
				if (Sonix.price.settings.showwarnings){html+=Sonix.price.result.data[0].warnings}
				
				
				$('#price_qty_info').html(html);

		
		
		},
	displayMode:'radioDropdown',
	result:'', //holds last return
	
	load: 	function(data){
		//Transform Sring into JSON
		eval("Sonix.price.result="+data);
		Sonix.price.display();
		
		},
	get:	function(){
		
		var url="/common/pricing-server.asp";
		
		$('#priceForm').ajaxSubmit( { type:'post', success:Sonix.price.load }); 
		$('#price2').hide();
		
		$('#status_loading2').fadeIn(); 
	},
buy:		function(){
				
				var selectedQty=Sonix.price.getQty();
				if(selectedQty===false){return;}
				if(selectedQty!=0){
					var selectedProduct=$(Sonix.price.result.data).filter('[qty='+selectedQty+']')[0].idproduct
					if (!selectedQty){return; }
				}
				Sonix.loadingDialog()
				//Set form value
					$('#actionX_price').val('addToCart'); 
					$('#selectedQty').val(selectedQty); 
					$('#selectedProduct').val(selectedProduct)
					var options=$('#priceForm').serialize()
					$('#actionX_price').val('getPrice'); 

						$('#buynow_button').hide()
						$('#loadingbuynow').show(); 


				//Call
				//console.log(Sonix.path+'/controllers/pricing?test=-1&'+options)
				window.location=Sonix.path+'/controllers/pricing?test=-1&'+options
			
	},
	shippingEstimate:	function(){
			var selectedQty=Sonix.price.getQty(); 
			var data=$(Sonix.price.result.data).filter('[qty='+selectedQty+']')[0];
			modal.open(Sonix.price.shippingEstimate_link(),500,600);
			
		},
	shippingEstimate_link:	function(){
			var selectedQty=Sonix.price.getQty(); 
			var data=$(Sonix.price.result.data).filter('[qty='+selectedQty+']')[0];
			return "/common/shipping-estimate.asp?test=-1&weigth="+data.weight+"&date_from="+Sonix.price.displayTemplates.utils.now()+"&idproduct="+data.idproduct+"&date_leave="+data.delays+"&idcustomproduct="+window.idcustomproduct;
			
		},
	graphicsGuides:	function(){
			var selectedQty=Sonix.price.getQty(); 
			var data=$(Sonix.price.result.data).filter('[qty='+selectedQty+']')[0];
			window.open("/common/image-customguide.asp?"+data.idguide_url);
			
		},
	display: function(){
		
		//Shortcut data
		data=Sonix.price.result.data
		
		$('#status_loading2').fadeOut(); 
		
		//Mode
		switch(this.displayMode){
			case 'dropdown':	Sonix.price.displayTemplates.dropdown(data); break; 
			case 'radio':		Sonix.price.displayTemplates.radio(data); break; 
			case 'radioDropdown':Sonix.price.displayTemplates.radioDropdown(data); break; 
			case 'quote':		Sonix.price.displayTemplates.quote(data); break; 
			case 'buttons':		Sonix.price.displayTemplates.buttons(data); break; 
								}

		}
		,
		cell:	function(val){return "<td>"+val+"<td>"},
		qty:	function(qty){return "<input type=hidden name=qty value="+qty+" />"}
}



//Prepare display Template
Sonix.price.displayTemplates={
	
	dropdown:  function(data){
				  
				var html="<div><select name=selectedQty>";
				var html_end="";
				
				for (i=0;i<data.length;i++){
						html+='<option value='+data[i].qty+'>'+data[i].qty+' for only $'+data[i].price+'</option>';
						html_end+=this.utils.qty(data[i].qty);
					}
				
				html+="</select>"
				//Show
				
				var label='Buy Now';
				try{
					
					if(window.Sonix.session && window.Sonix.session.language && window.Sonix.session.language == 'french'){
						var label='Acheter';
					}
					
					}catch(e){
						}
				
				
				html+="<input type='button' value='"+label+"' ></div>"
				this.show(html+html_end)  

		
		},
		radio:  function(data){
				var u=this.utils; 
				var html="<table width=300 >";
				var html_end="</table>";
				
				for (i=0;i<data.length;i++){
					//Modify template here. 
					html+="<tr>";
						html+=u.radio(data[i].qty);
						html+=u.cell(data[i].qty);
						html+=u.cell(data[i].price);
					html+="</tr>";
					html_end+=u.qty(data[i].qty);
					}
			
				//Show
				this.show(html+html_end)  

		
		},
		
		quote:  function(data){
				var u=this.utils; 
				var html="<table width=100% class=price_results>";
				html+="<tr class=price_results_h>";
					html+=u.cell('Qty');
					html+=u.cell('Price');
				html+="</tr>";
				var html_end="</table>";
				
				for (i=0;i<data.length;i++){
					//Modify template here. 
					html+="<tr>";
						//html+=u.radio(data[i].qty);
						html+=u.cell(data[i].qty);
						html+=u.cell('$'+data[i].price);
					html+="</tr>";
					html_end+=u.qty(data[i].qty);
					}
			
				//Show
				this.show(html+html_end)  
				
		
		},
		radioDropdown:  function(data){
				var u=this.utils; 
				var html="<b>"+Sonix.price.settings.textoverquantity+"<b><table width=300 >";
				var html_end="</table>";
				
				data=$(data).not('[qty=0]');
				
				for (i=0;i<data.length && i<Sonix.price.settings.splitradio;i++){
					//Modify template here. 
					html+="<tr>";
						html+=u.cell(u.radio(data[i].qty));
						html+=u.cell(data[i].qty);
						html+=u.cell('$'+data[i].price);
					html+="</tr>";
					html_end+=u.qty(data[i].qty);
					}
				
				
				if(i<data.length){
				//Now prepare the dropdown
				html+="<tr>";
				html+=u.cell(u.radio(null));
				html+="<td>Other</td><td>"
					
					
				html+="<div><select id=sonix_price_result_dropdown onchange=Sonix.price.selectQty()>";
				
				
				for (ii=i;ii<data.length;ii++){
						html+='<option value='+data[ii].qty+'>'+data[ii].qty+' for only $'+data[ii].price+'</option>';
						html_end+=this.utils.qty(data[ii].qty);
						
					}
				 
				html+="</select>"
					
					
				html+="</td>"
				html+="</tr>";
				}
				
				//
				if(Sonix.price.settings.shownooption){
					html+="<tr>";
					html+="<td >";
						html+='<input type="radio"  class="sonix_price_result_radio" value="0" id="qty_radio" name="qty"/></td>';
						html+='<td colspan=2>No. Thank you</td>';
					html+="</tr>";
					}
				
				if (Sonix.price.settings.showbuynow){
				html_end+="<div style=\"margin-top:5px\"><div class=loadingDiv style='display:none' id=loadingbuynow >Loading...</div><input type=\"button\" id=\"buynow_button\" onclick=\"Sonix.price.buy()\" value=\"Buy Now&gt;&gt;\" class=\"inputbutton\"></div>"
				}
				
				html_end+="<div id=price_qty_info style=\"margin-top:10px;\"></div>";
				html_end+="<div style=\"border-top:1px solid #cccccc; margin-top:10px\" >"
					
				if(Sonix.price.settings.showestimatebutton){
					html_end+="<input type=\"button\" onclick=\"Sonix.price.shippingEstimate()\" value=\"Shipping and Turnaround time\" class=\"inputbutton inputwhite\">"
				}
				
				html_end+="&nbsp;&nbsp";
				
			if(Sonix.price.settings.showguides){
				html_end+="<input type=\"button\" onclick=\"Sonix.price.graphicsGuides()\" value=\"Graphic Guides\"></div>";
			}
			
			
			
				//Show
				this.show(html+html_end)  

				//Add Focus event
				$('#sonix_price_result_dropdown').focus(function(){
							$('.sonix_price_result_radio[qty=null]').attr('checked',true);
				})

				//
				Sonix.price.getQty=function(){
				
					//Get Qty
					if($('.sonix_price_result_radio:checked').size()==0){alert('Please Select a Quantity'); return false;}
						var qty=$('.sonix_price_result_radio:checked').val(); 
				
					//If is part of deropdown	
						if(qty=='null'){ qty=$('#sonix_price_result_dropdown').val(); }
								
						return qty; 
					}


		
		},
		
		
			buttons:  function(data){
				var u=this.utils; 
				var html="<table width=100% >";
				var html_end="</table>";
				
				for (i=0;i<data.length;i++){
					//Modify template here. 
					html+="<tr>";
						html+=u.cell(data[i].qty);
						html+=u.cell(data[i].price);
						html+=u.cell("$"+data[i].price);
						html+=u.cell(u.estimatepop(data[i]));
						html+=u.button(data[i].qty);

					html+="</tr>";
					html_end+=u.qty(data[i].qty);
					}
			
				//Show
				this.show(html+html_end)  

		
		},
	show:	function(html){$('#price2').html(html).fadeIn(); },
	//utils are small function user in display
	utils:{
		now: 	function(){		
								var d=new Date(); 
		
								var curr_date = d.getDate();
								var curr_month = d.getMonth()+1;
								var curr_year = d.getFullYear();
								return curr_month+"\/"+curr_date+"\/"+curr_year;
},
		radio:	function(qty){return "<input type=radio name=qty value="+qty+" qty='"+qty+"' class=sonix_price_result_radio onclick=Sonix.price.selectQty() />";},
		cell:	function(val){return "<td>"+val+"</td>";},
		qty:	function(qty){return "<input type=hidden name=qty value="+qty+" />";},
		button:	function(qty){return "<input type=button name=qty value=\"Buy Now\"  />";},
		estimate:function(d){return '<a href="/common/shipping-estimate.asp?weigth='+d.weight+'&date_from='+this.now()+'&date_leave='+d.delays+'">Get Arrival date</a>';},
		estimatepop:function(d){return '<a href="javascript:void(); " onclick="modal.open(\'/common/shipping-estimate.asp?weigth='+d.weight+'&date_from='+this.now()+'&date_leave='+d.delays+'\',450,600)">Get Arrival date</a>';}

		}
	}



function getPrice(){
		Sonix.price.get(); 
}

