var order_price = 0;
var order_price = 0;
var old_price = 0;
var discont_price = 0;
var instant_url = '';
var formule = 1;
var formule_stage = 1;
(function($) {
	$.fn.magic = function(options) {
		var defaults = {
			active: 'active',
			deactive: 'deactive'
		};
		var opts = $.extend(defaults, options);
		this.parents('.box-check').find('label.active').removeClass('active').addClass('deactive');
		var inp = this;
		var lab = this;
		if(this[0].tagName == 'INPUT'){
			lab = this.next();
		}else{
			inp = this.prev();
		}
		lab.removeClass('deactive').addClass('active');
		inp.attr('checked',true);
		return this;
	};
})(jQuery);

function initSidebar(){
	var map = $('#sidebar div.map');
	if (map.get(0)){
		map.find('div.box-link').each(function(){
			$(this).find('a.point').click(function(){
				$(this).parents('div.map').find('div.mes-box').hide();
				$(this).next().show();
				return false;
			});
			$(this).find('span a.close-mapmessage').click(function(){
				$(this).parents('div.mes-box').eq(0).hide();
				return false;
			});
		});
	}
}

jQuery(document).ready(function(){
	// DOM ready
	initAccordion();
	initSidebar();

	// course price block height on checkout page
	$('div.price div.box-price').each(function(){
		$(this).height($(this).parent().prev().height() - 45);
	});

	//pop-up at car-profile page
	$('#pop-up-links a').click(function(e){
		var mod = $(this).attr('rel');
		$('#pop-up-'+mod).jpopup({
			close: true,
			closeText: 'FERMER CETTE FENÊTRE',
			shadow: true,
			opacity: 0.3,
			background: '#fff',
			heightFix: -100
		});
		return false;
	});

	//image select at coffrets cadeaux
	var ref_type = $('#car_coffrets_ref_type').val();
	$('.images-set img').click(function(){
		$('.images-set img').removeClass('active');
		$(this).addClass('active');
		$('#car_coffrets_ref_type').val(this.id.substr(2,1));
	});
	$('#im'+ref_type).addClass('active');

	//datepicker
	Date.format = 'dd/mm/yyyy';
	if( $('#car_coffrets_datetime').length ){
		$('#car_coffrets_datetime')
			.datePicker({clickInput:true})
			.dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_RIGHT)
			.dpSetOffset( -1, -2);
	}
	if( $('#car_voucher_date_course').length ){
		$('#car_voucher_date_course')
			.datePicker({clickInput:true})
			.dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_RIGHT)
			.dpSetOffset( -1, -2);
	}
	//gift email for voucher
	/*if( $('#car_voucher_gift_email').length ){
		if( $('#car_voucher_purchase_type').val() != 3 )
			$('#car_voucher_gift_email').val('').parents('li').css('display','none');
		$('#car_voucher_purchase_type').change(voucher_change_type);
	}*/

	//order page [carCourse]
	$('a.add_to_cart').click(function(){
		submit_order_form();
		return false;
	});
	$('#inst_check').click(function(){
		$('form[name=add_to_cart]').attr('action',instant_url);//.submit();
		submit_order_form();
		return false;
	});

	//datePicker functionality
	
	if($('#carCourseOrderDate','#content').length && $('#carCourseOrderTime','#content').length){
		track = ($('select#track_select').length) ? $('select#track_select option:selected').attr('value') : $('input#track_id').val();
		var scheduler_check_url = $('#scheduler_check_url').val();
		$('#carCourseOrderDate','#content')
		.datePicker({
			clickInput:true,
			renderCallback: function(el, thisDate, month, year){
				var d = thisDate.getFullYear()+'-'+(thisDate.getMonth()+1)+'-'+thisDate.getDate();
				if (typeof(avail_dates[track])=='object'){
					for (var i in avail_dates[track]){
						if (d == avail_dates[track][i]) return false;
					}
				}
				$(el).addClass('disabled');
			}
		})
		.dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_RIGHT)
		.dpSetEndDate(maxDate)
		.dpSetOffset( -1, -2)
		.bind('dateSelected', function(e, selectedDate, $td, status){
			$.ajax({
				type: "POST",
				url: scheduler_check_url,
				data: 'date='+$('#carCourseOrderDate').val()+'&track='+track,
				dataType: 'json',
				success: function(response){
					if(response.success && typeof(response.time) === 'object'){
						$('#carCourseOrderTime option:not(:first)').remove();
						var options = '';
						for (var i in response.time){
							options += '<option value="'+response.time[i]+'">'+response.time[i]+'</option>';
						}
						$('#carCourseOrderTime').append(options);
					}else{
					}
				}
			});
		});
	}

	//check discont code
	$('#discont_check').click(function(){
		var discont_code = $('#discont_code').val();
		var discont_url = $('#discont_url').val();
		$.ajax({
			type: "POST",
			url: discont_url,
			data: 'd_code='+discont_code,
			dataType: 'json',
			success: function(response){
				if(response.success){
					if(discont_price !=0 ) {
						old_price = order_price;
						order_price = discont_price;
						calculate_price(discont_price);
					}
					$('.discont_v_message').hide().removeClass('red').addClass('green').fadeIn().html(response.msg);
				}else{
					if (old_price != 0){
						order_price = old_price;
					}
					$('.discont_v_message').hide().removeClass('green').addClass('red').fadeIn().html(response.msg);
					calculate_price(order_price);
				}
			}
		});
	});
	$('#discont_code').focus(function(){
		this.value = this.value=='code'?'':this.value;
	});
	$('#discont_code').blur(function(){
		this.value = this.value==''?'code':this.value;
	});

	//track info
	//$('.box-prod .spec:first').addClass('active');
	//$('.box-prod .spec').click(track_info);
	
	//show/hide date on order page [carCourse]
	/*var course_order_type = $('#content ul.order select[name="type"]');
	if(course_order_type.val()!=1)$('#content ul.order li.date_selection').css('display','none');
	$('#content ul.order select[name="type"]').change(show_order_date);*/

	//track select
	$('#track_select').change(function(){
		var sel = $(this).val();
		$('.map').hide();
		$('.map'+sel).fadeIn();
		//reset dataPicker
		track = ($('select#track_select').length) ? $('select#track_select option:selected').attr('value') : $('input#track_id').val();
		$('#carCourseOrderDate').dpSetSelected('',false,false,false);
		$('#carCourseOrderDate').val('');
	});

	//if check envoi checkbox
	$('#content ul.radio_button input[name="envoi"]').click(calculate_price);
	//if check companier checkbox
	$('#content ul.radio_button input[name="compan"]').click(calculate_price);
	//if check dvd checkbox
	$('#content ul.radio_button input[name="dvd"]').click(calculate_price);
	//if check option open checkbox
	$('#content ul.radio_button input[name="opopen"]').click(calculate_price);
	//if check baptemes checkbox
	$('#content ul.radio_button input[name="bapteme"]').click(calculate_price);

	//change price if enabled dvd
	//$('ul.order input.select-dvd','#content').click(calculate_price);
	//change price if change delivery type
	//$('#content ul.order select[name="delivery"]').change(calculate_price);

	calculate_price();
	//end of order page [carCourse]

	//coffret cadeaux page
	$('#coffret').change(changeFormulas);
	changeFormulas(false,formule,formule_stage);
	formule = undefined;
	formule_stage = undefined;

	//image set on coffret cadeaux
	$('.images-set a').click(function(){
		$('#coffret').val(this.id.substr(2));
		changeFormulas();
		return false;
	});
});

function changeFormulas(sm,fm,fs){
	var em = $('#coffret');
	var params = {'reftype':em.val()};
	if(fm!=undefined) params.formule = fm;
	if(fs!=undefined) params.formule_stage = fs;
	$.post('/coffrets/getformulas',params,function(res){
		$('#formule-content').html(res);
		$('#formule').change(function(){
			//clean previos check
			$('.box-check input').attr('checked',false);
			$('.box-check label.active').removeClass('active').addClass('deactive');

			$('.box-check:visible').slideUp();
			var id = $('#formule').val();
			$('#stage-block-'+id).slideDown();
		});
		$('.stage label,.stage input').click(function(){
			$(this).magic();
		});
	});
}

function checkLabel(el){
	alert(el.html());
}

function calculate_price(_price){
	var dvd = 0;
	var com = 0;
	var env = 0;
	var opp = 0;
	var bap = 0;

	//envoi
	var env_em = $('#content ul.radio_button input[name="envoi"]:checked');
	var env_trig = env_em.length > 0 ? env_em.val() : 0 ;
	env = (env_trig==3)?6:(env_trig==4)?23:0;

	//companion
	var com_em = $('#content ul.radio_button input[name="compan"]:checked');
	var com_trig = com_em.length > 0 ? com_em.val() : 0 ;
	com = (com_trig==2)?30:(com_trig==3)?55:0;

	//dvd
	var dvd_em = $('#content ul.radio_button input[name="dvd"]:checked');
	var dvd_trig = dvd_em.length > 0 ? dvd_em.val() : 0 ;
	dvd = dvd_trig==1?49:0;

	//option open
	var opp_em = $('#content ul.radio_button input[name="opopen"]:checked');
	var opp_trig = opp_em.length > 0 ? opp_em.val() : 0 ;
	opp = opp_trig==1?20:0;

	//baptemes
	var bap_em = $('#content ul.radio_button input[name="bapteme"]:checked');
	var bap_trig = bap_em.length > 0 ? bap_em.val() : 0 ;
	bap = bap_trig==2?89:bap_trig==3?119:0;

	var price = (typeof(_price) != 'undefined' && typeof(_price) != 'object') ? _price : order_price;

	$('#order_price').html( price + dvd + com + env + opp + bap );
}

function submit_order_form(){
	if( $('#type:checked').length == 0 && ($('#carCourseOrderDate').val()=='' || $('#carCourseOrderTime').val()==0)){
		//$("<div class=\"errors\">Field \"date\" is required</div>").jpopup();
		alert("Field \"date\" and \"time\" is required");
		return false;
	}else{
		$('form[name="add_to_cart"]').submit();
		return false;
	}
}

function initAccordion(){
	$('#stages_accordion li a.head')
		.each( function(i){ this._index = i; } )
		.click(function(){
			$('#stages_accordion li ul:visible').slideUp('fast');
			$(this).parent().find('ul').slideDown('fast');
			$.cookie('accordion_active', this._index, {path: '/'});
			return false;
		});
	$('#stages_accordion li ul').slideUp();
	var active = $.cookie('accordion_active');
	if(!active) active = 0;
	$('#stages_accordion li ul:eq(' + active + ')').slideDown();
}

function mformat(n,zn){
	z = "0000000000";
	n = parseFloat(n);
	p = Math.pow(10, zn);
	s = String(Math.round(n*p)/p);
	s = (s.match(/\./)? s+z : s+"."+z).match('\\d+\\.\\d{'+zn+'}');
	return "$"+s;
}
