function add_card(card) {
	$.ajax({
		url: "getType.php?name="+escape(card),
		type: "GET",
		dataType: "html",
		success: function (msg){ push_form(card, msg) }
	});
}
function add_card_side(card) {
	$("#side").append('<div id="single_card"><input type="text" name="side[]" readonly="readonly" value="'+card+'"><a href="javascript:void(0)" onclick="remove_card($(this).parent(),\'side\')" class="red" alt="">x</a></div>');
	var number = $("#side_number").html();
	number = parseInt(number)+1;
	$("#side_number").html(number);
}
function remove_card(object, location) {
	object.remove();
	var number = $("#"+location+"_number").html();
	number = parseInt(number)-1;
	$("#"+location+"_number").html(number);
	if (location=="monsters" || location=="spells" || location=="traps") {
		var number = $("#main_number").html();
		number = parseInt(number)-1;
		$("#main_number").html(number);
	}
}
function push_form(card, msg) {
	var i;
	switch (msg) {
	case 'monster':
		$("#monsters").append('<div id="single_card"><input type="text" name="monsters[]" readonly="readonly" value="'+card+'"><a href="javascript:void(0)" onclick="remove_card($(this).parent(),\'monsters\')" class="red" alt="">x</a></div>');
		var number = $("#monsters_number").html();
		number = parseInt(number)+1;
		$("#monsters_number").html(number);
		var number = $("#main_number").html();
		number = parseInt(number)+1;
		$("#main_number").html(number);
		break;
	case 'spell':
		$("#spells").append('<div id="single_card"><input type="text" name="spells[]" readonly="readonly" value="'+card+'"><a href="javascript:void(0)" onclick="remove_card($(this).parent(),\'spells\')" class="red" alt="">x</a></div>');
		var number = $("#spells_number").html();
		number = parseInt(number)+1;
		$("#spells_number").html(number);
		var number = $("#main_number").html();
		number = parseInt(number)+1;
		$("#main_number").html(number);
		break;
	case 'trap':
		$("#traps").append('<div id="single_card"><input type="text" name="traps[]" readonly="readonly" value="'+card+'"><a href="javascript:void(0)" onclick="remove_card($(this).parent(),\'traps\')" class="red" alt="">x</a></div>');
		var number = $("#traps_number").html();
		number = parseInt(number)+1;
		$("#traps_number").html(number);
		var number = $("#main_number").html();
		number = parseInt(number)+1;
		$("#main_number").html(number);
		break;
	case 'extra':
		$("#extra").append('<div id="single_card"><input type="text" name="extra[]" readonly="readonly" value="'+card+'"><a href="javascript:void(0)" onclick="remove_card($(this).parent(),\'extra\')" class="red" alt="">x</a></div>');
		var number = $("#extra_number").html();
		number = parseInt(number)+1;
		$("#extra_number").html(number);
		break;
	}
}
function validateForm(form) {
	// check 3x and banlist
	var tmpdeck = new Array();
	var card_count;
	var i;
	var val;
	var cards = new Array();

	cards = document.decklist_form.elements["monsters[]"];
	if (cards != undefined) {
		if (cards.length == undefined) {
			val = cards.value;
			if (tmpdeck[val] == undefined) tmpdeck[val]=1;
			else tmpdeck[val] = tmpdeck[val]+1;
			if (check_quantity(val, tmpdeck[val]) == 1) return false;
		}
		else {
			for(i=0;i<cards.length;i++) {
				val = cards[i].value;
				if (tmpdeck[val] == undefined) tmpdeck[val]=1;
				else tmpdeck[val] = tmpdeck[val]+1;
				if (check_quantity(val, tmpdeck[val]) == 1) return false;
			}
		}
	}
	cards = document.decklist_form.elements["spells[]"];
	if (cards != undefined) {
		if (cards.length == undefined) {
			val = cards.value;
			if (tmpdeck[val] == undefined) tmpdeck[val]=1;
			else tmpdeck[val] = tmpdeck[val]+1;
			if (check_quantity(val, tmpdeck[val]) == 1) return false;
		}
		else {
			for(i=0;i<cards.length;i++) {
				val = cards[i].value;
				if (tmpdeck[val] == undefined) tmpdeck[val]=1;
				else tmpdeck[val] = tmpdeck[val]+1;
				if (check_quantity(val, tmpdeck[val]) == 1) return false;
			}
		}
	}
	cards = document.decklist_form.elements["traps[]"];
	if (cards != undefined) {
		if (cards.length == undefined) {
			val = cards.value;
			if (tmpdeck[val] == undefined) tmpdeck[val]=1;
			else tmpdeck[val] = tmpdeck[val]+1;
			if (check_quantity(val, tmpdeck[val]) == 1) return false;
		}
		else {
			for(i=0;i<cards.length;i++) {
				val = cards[i].value;
				if (tmpdeck[val] == undefined) tmpdeck[val]=1;
				else tmpdeck[val] = tmpdeck[val]+1;
				if (check_quantity(val, tmpdeck[val]) == 1) return false;
			}
		}
	}
	cards = document.decklist_form.elements["extra[]"];
	if (cards != undefined) {
		if (cards.length == undefined) {
			val = cards.value;
			if (tmpdeck[val] == undefined) tmpdeck[val]=1;
			else tmpdeck[val] = tmpdeck[val]+1;
			if (check_quantity(val, tmpdeck[val]) == 1) return false;
		}
		else {
			for(i=0;i<cards.length;i++) {
				val = cards[i].value;
				if (tmpdeck[val] == undefined) tmpdeck[val]=1;
				else tmpdeck[val] = tmpdeck[val]+1;
				return check_quantity(val, tmpdeck[val]);			
			}
		}
	}
	cards = document.decklist_form.elements["side[]"];
	if (cards != undefined) {
		if (cards.length == undefined) {
			val = cards.value;
			if (tmpdeck[val] == undefined) tmpdeck[val]=1;
			else tmpdeck[val] = tmpdeck[val]+1;
			if (check_quantity(val, tmpdeck[val]) == 1) return false;
		}
		else {
			for(i=0;i<cards.length;i++) {
				val = cards[i].value;
				if (tmpdeck[val] == undefined) tmpdeck[val]=1;
				else tmpdeck[val] = tmpdeck[val]+1;
				if (check_quantity(val, tmpdeck[val]) == 1) return false;
			}
		}
	}
	// check numbers
	var extra_number = parseInt($("#extra_number").html());
	var traps_number = parseInt($("#traps_number").html());
	var spells_number = parseInt($("#spells_number").html());
	var monsters_number = parseInt($("#monsters_number").html());
	var side_number = parseInt($("#side_number").html());
	var author = $("#author").val();
	var deck_number = traps_number + spells_number + monsters_number;
	if (deck_number<40 || deck_number>60) { alert ("Main deck must be between 40 and 60 cards"); return false; }
	if (side_number > 15) { alert("Side deck must be 15 cards maximum"); return false; }
	if (extra_number>15) { alert("Extra deck must be 15 cards maximum"); return false; }
	if (author == "") { alert("Your name is mandatory"); return false; }
	return true;
}
function check_quantity(val, number) {
	number = parseInt(number);
	if (number > 3) {
		alert("You have too much copies of \""+val+"\"");
		return 1;
	}
	if (document.decklist_form.format[2].checked == false) {
		var toCheck;
		if (document.decklist_form.format[1].checked == true) toCheck = banlist_trad[val.toUpperCase()];
		else toCheck = banlist[val.toUpperCase()];
		if (number > toCheck) {
			alert("Card \""+val+"\" is restricted to "+toCheck+" per deck");
			return 1;
		}
	}
	return 0;
}

function chosename() {
	var name='';
	while (name=='') {
		name = prompt('Choose the decklist name:');
	}
	document.decklist_form.deckname.value=name;
}
