jQuery(document).ready(function(){
	// expand ....................................................................
	jQuery(".expand .box").hide();
	jQuery(".expand .trigger").addClass("js");

	jQuery(".expand .controller").click(function () {
			id = jQuery(this).closest(".expand").attr("id");
			jQuery("#"+id+".expand .box").toggle();
			jQuery("#"+id+".expand .trigger").toggleClass("open");
	});
	
	if (jQuery("body").is(".nl")){
		var addBreedText = "een ras toevoegen";
		var addLineText = "een regel toevoegen";
	} else if (jQuery("body").is(".fr")){
		var addBreedText = "ajouter une race";
		var addLineText = "ajouter un produit";
	} else {	//en
		var addBreedText = "add a breed";
		var addLineText = "add a line";
	}

	// duplicate .................................................................
	var duplicateLink = jQuery('<div class="duplicate duplicate_breed"><div class="button">'+addBreedText+'<div class="buttonWrap"></div></div></div>');
	jQuery(duplicateLink).insertAfter("#kennel .level1");
	var counter = 0;

	jQuery(".duplicate_breed").click(function () {
		counter = counter + 1;
		var fieldset = jQuery("#kennel .level2:first").clone();

		jQuery(fieldset).appendTo("#kennel .level1");
		switchIDs(fieldset, "input", counter);
		switchIDs(fieldset, "select", counter);
		resetVal(fieldset);
	});

	// duplicate lineitem.................................................................
	var duplicateLink = jQuery('<div class="duplicate duplicate_line"><div class="button"><div class="buttonWrap">'+addLineText+'</div></div></div>');
	jQuery(duplicateLink).insertAfter("#order_lineitems");
	var counter = 0;

	jQuery(".duplicate_line").click(function () {
		counter = counter + 1;
		var fieldset = jQuery("#order_lineitems tbody tr:first").clone();

		jQuery(fieldset).appendTo("#order_lineitems");
		switchIDs(fieldset, "input", counter);
		switchIDs(fieldset, "select", counter);
		jQuery(fieldset).find("span").remove();
		resetVal(fieldset);
	});

	// duplicate result.................................................................
	var duplicateLink = jQuery('<div class="duplicate duplicate_result"><div class="button">'+addLineText+'<div class="buttonWrap"></div></div></div>');
	jQuery(duplicateLink).insertAfter("#results_section");
	var counter = 0;

	jQuery(".duplicate_result").click(function () {
		counter = counter + 1;
		var fieldset = jQuery("#results_section tbody tr:first").clone();
		
		jQuery(fieldset).appendTo("#results_section");
		switchIDs(fieldset, "input", counter);
		resetVal(fieldset);

		jQuery('.dp-choose-date').remove();
		jQuery('.date-pick').datePicker({startDate: '01/01/2008',endDate: (new Date()).asString()});
	});

	function switchIDs(fieldset, element, counter) {
	  jQuery(fieldset).find(element).each(function() {
		  var s = jQuery(this).attr("id");
		  s = s  + "-" + counter;
		  jQuery(this).attr("id", s);
		});
	};

	function resetVal(fieldset, element) {
	  jQuery(fieldset).find("input").each(function() {
		  jQuery(this).attr("value", "");
		});
	  jQuery(fieldset).find("select option:first").each(function() {
		  jQuery(this).attr("selected", "selected");
		});
	};

	
	/* subordinate form fields */
	var first = true;
	jQuery(".subbed input[type=radio]").each(function(){
			jQuery(this).click(setSubbed);
			
			if (first){
				jQuery(this).attr("checked", "checked");
				first = false;
			}
			var par = jQuery(this);
			
			var cont = jQuery(this).closest(".control");
			jQuery(cont).find(".subordinate input").each(function() {
				if (jQuery(this).val() != ''){
					par.attr("checked", "checked");
				}
			});
	});

	
	function setSubbed(){
		jQuery(".subbed input[type=radio]").each(function() {
				if (! jQuery(this).is(":checked")){
						var cont = jQuery(this).closest(".control");
						jQuery(cont).find(".subordinate input").each(function() {
								  jQuery(this).attr("disabled", "disabled");
						});
				} else {
						var cont = jQuery(this).closest(".control");
						jQuery(cont).find(".subordinate input").each(function() {
								  jQuery(this).attr("disabled", "");
						});
				}
		});
	};

	setSubbed();

});