// This javascript is for function to Deck i/o or else..
// Use together with mootools 1.2, cardbase.js and discuz! common.inc.php

function getDeck(){

	// Confirm Alert
	if(!confirm("這樣會覆蓋現有咭組，你確認？")) return;
	
	// Initialization
	var uid = discuz_uid;
	var deckSel = document.getElementById("deckSelect");
	var deckno = deckSel.options[deckSel.selectedIndex].value;
    try{  // Firefox, Opera 8.0+, Safari  
            xmlHttp = new XMLHttpRequest();  }
    catch (e)
        {  // Internet Explorer  
            try{   
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");    }
            catch (e)
            {    
                try {      
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      }
                catch (e)
                {      
                    alert("Your browser does not support AJAX!");      
                    return false;      
                }    
             } 
         }

    var poststr = "mode=0&sid="+Math.random();
    var url = "getdeck.php?";
	
    poststr += "&uid=" + uid + "&deck=" + deckno;
    
    url = url + poststr;
	xmlHttp.onreadystatechange = loadDeck;
	xmlHttp.open('POST',url,true);
	xmlHttp.send("");
        
}

var newDeck;
function loadDeck(){
    if(xmlHttp.readyState == 4){
        var xmlDoc=xmlHttp.responseXML.documentElement;
        var listHTML = "";
		var data;
		var newCard;
		
		mainDeck.deckobj.empty();
		sideDeck.deckobj.empty();
		extraDeck.deckobj.empty();
		
		for(var x=0; x<3; x++) {
			switch(x){
				case 0: data = xmlDoc.getElementsByTagName("main"); newDeck = new Deck("mainDeck"); break;
				case 1: data = xmlDoc.getElementsByTagName("side"); newDeck = new Deck("sideDeck"); break;
				case 2: data = xmlDoc.getElementsByTagName("extra"); newDeck = new Deck("extraDeck"); break;
			};
			
			for(var i=0; i < data.length; i++){
				
				var cardcode = data[i].getAttribute("id");
				var cname = data[i].getElementsByTagName("name")[0].firstChild.nodeValue;
				var jpname = data[i].getElementsByTagName("jpname")[0].firstChild.nodeValue;
				
				var type = parseInt(data[i].getElementsByTagName("type")[0].firstChild.nodeValue);
				var ban = data[i].getElementsByTagName("ban")[0].firstChild.nodeValue;
				try{
					var cno = data[i].getElementsByTagName("code")[0].firstChild.nodeValue;
				} catch (e) { var cno = ""; }
				try{
				  var text = data[i].getElementsByTagName("text")[0].firstChild.nodeValue.replace(/newline/g,"<br/>");
				} catch (e) { var text = ""; }
				try{
					var jptext = data[i].getElementsByTagName("jptext")[0].firstChild.nodeValue.replace(/newline/g,"<br/>");
				} catch (e) { var jptext = ""; }
				
				newCard = new Card(cardcode, cname, jpname, type, ban, text, jptext);
				
				if(type < 29){
					var sp = parseInt(data[i].getElementsByTagName("sp")[0].firstChild.nodeValue);
					var level = data[i].getElementsByTagName("level")[0].firstChild.nodeValue;
					var atk = data[i].getElementsByTagName("atk")[0].firstChild.nodeValue;
					var def = data[i].getElementsByTagName("def")[0].firstChild.nodeValue;
					var att = parseInt(data[i].getElementsByTagName("att")[0].firstChild.nodeValue);
					var cat = parseInt(data[i].getElementsByTagName("cat")[0].firstChild.nodeValue);
					newCard.setMonster(level, atk, def, att, cat, sp);
				}
				newCard.qty = parseInt(data[i].getElementsByTagName("qty")[0].firstChild.nodeValue);
				newDeck.addCard(newCard);
			}			
			switch(x){
				case 0: mainDeck = newDeck; 
						mainDeck.updatelist(); break;
				case 1: sideDeck = newDeck; 
						sideDeck.updatelist(); break;
				case 2: extraDeck = newDeck; 
						extraDeck.updatelist(); break;
			};
		}
    }
	
}
var xmlHttp2;
var postStr;

function saveDeck(){

	// Confirm Alert
	var deckSel = document.getElementById("deckSelect");
	var deckNum = deckSel.options[deckSel.selectedIndex].value;
	if(!confirm("這樣會覆蓋資料庫的 Deck "+deckNum+"，你確認？")) return;
	
	// Build string for decks
	var mainDeckStr = "";
	mainDeck.deckobj.each(function(item) {
		mainDeckStr += item.cardid + "_" + item.qty + "_";
	});
	var sideDeckStr = "";
	sideDeck.deckobj.each(function(item) {
		sideDeckStr += item.cardid + "_" + item.qty + "_";
	});
	var extraDeckStr = "";
	extraDeck.deckobj.each(function(item) {
		extraDeckStr += item.cardid + "_" + item.qty + "_";
	});
	// Get Deck Num and User Num
	var deckName = document.getElementById("deckName").value;
	deckSel.options[deckSel.selectedIndex].innerHTML = "Deck "+(1+deckSel.selectedIndex)+" "+deckName+" Deck";
	
	// Generate post string
	postStr = "uid=" + discuz_uid + "&deckNum=" + deckNum + "&main=" + mainDeckStr + "&side=" + sideDeckStr + "&extra=" + extraDeckStr + "&deckname=" + deckName;
	
	// Start connecting
	
	try{  // Firefox, Opera 8.0+, Safari  
            xmlHttp2 = new XMLHttpRequest();  }
    catch (e)
        {  // Internet Explorer  
            try{   
                xmlHttp2=new ActiveXObject("Msxml2.XMLHTTP");    }
            catch (e)
            {    
                try {      
                    xmlHttp2=new ActiveXObject("Microsoft.XMLHTTP");      }
                catch (e)
                {      
                    alert("Your browser does not support AJAX!");      
                    return false;      
                }    
             } 
         }

    var url = "savedeck.php?"+postStr;
	xmlHttp2.onreadystatechange = saveResult;
	xmlHttp2.open('POST',url,true);
	xmlHttp2.send("");
    
}	

function saveResult(){
	var timer = new Date();
	document.getElementById("systemAlert").innerHTML = "Deck Saved at " + timer.getHours() + ":" + timer.getMinutes();
}