/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
var cur_cardTotal = 78;
 
var cur_language ='TH';
var forecastType = '10';
var cardset = new Array();
var timer = 0;
var iTimeoutId;
var cardSelect = new Array();
var forecastCard = 10;
var cardForecastedList = new Array();//Store the cards are selected by customer
var imagePathCardset =0;// 'Images/card0/';


function randomCard(objCardTable,cardAmount,total,index_card_type){
  try{
    for(var j =0; j< 10; j++){
        var divDesc = byId('cadeP'+j);
        divDesc.style.display = 'none';
    }
  }catch(errMsg){

  }
  imagePathCardset = index_card_type;

//  if(cardAmount >0){
//    alert('ทำใจให้สงบ เลือกไพ่มา '+cardAmount +' ใบ หลังจากระบบเรียงไพ่เรียบร้อยแล้ว');
//  }

  byId('ForecastTable').style.height = '';
  cardset = new Array();  
  cardSelect = new Array();
  cardForecastedList = new Array();
  forecastCard = cardAmount;
  timer = 0;
  var cardIDRandomSet = randomDeal(total,total);

  cur_cardTotal = total;

  var marginleft = 5;
  var marginTop = 300;
  if(total == 22){
      marginleft = 120;
      marginTop = 100;
  }


  removeNode(objCardTable);
  removeNode(byId('ForecastTable'));

  for(var i = 1; i <= total; i++){
     var objCard = document.createElement('div');// Create Card
     objCard.id='P'+i;
     objCard.className = 'backcard';//Set backcard

     objCard.onclick = function(){  //When card is clicked.
         if(forecastCard == 0){
             //alert('กรุณากดปุ่มเพื่อเลือกจำนวนไพ่ที่ต้องการเลือก');
             showDialog(250,388,'กรุณากดปุ่มเพื่อเลือกจำนวนไพ่ที่ต้องการเลือก');

         }else if(cardSelect.length < forecastCard){
             var isDup = false;
             for(var j = 0; j < cardSelect.length; j++){
                 var objCardTemp = cardSelect[j];
                 if(objCardTemp.getAttribute('CardID') == this.getAttribute('CardID')){
                     //alert('ไพ่ใบนี้ได้ถูกเลือกแล้ว');
                     showDialog(250,388,'ไพ่ใบนี้ได้ถูกเลือกแล้ว');
                     isDup = true;
                     break;
                 }
             }
             if(!isDup)
              cardSelect[cardSelect.length] = this;//store the card that is selected by customer.

             if(cardSelect.length ==forecastCard) {
                 //alert('คุณเลือกไพ่ครบ '+forecastCard+' แล้ว\nให้กดอ่านคำทำนายจากเมนูขวาสุด');
                 showAutoDialog(250,388,'คุณเลือกไพ่ครบ '+forecastCard+' แล้ว\nให้กด  อ่านคำทำนาย จากเมนูขวาสุด');
             }


         }else {
             //alert('จำนวนไพ่ครบ '+forecastCard +' ใบแล้ว');
             showDialog(250,388,'จำนวนไพ่ครบ '+forecastCard +' ใบแล้ว');
             return;
         }

         this.className = 'selectbackcard';
         var x = this.getAttribute('posiX');
         this.style.left = x+'px';
         var y = this.getAttribute('posiY');
         this.style.top = (parseInt(y)-20)+'px';
         this.style.border = 'solid 1px #FFFFFF';

         this.onmouseover = function(){}
         this.onmouseout = function(){}
     }


     objCard.onmouseover = function(){
      var x = this.getAttribute('posiX');
      var y = this.getAttribute('posiY');
          x = x-3;
          y = y-3;
      this.style.left = x+'px';
      this.style.top = y+'px';
      this.style.border = 'solid 1px #d2eb5e';
     }


     objCard.onmouseout = function(){
      var x = this.getAttribute('posiX');
      var y = this.getAttribute('posiY');
      this.style.left = x+'px';
      this.style.top = y+'px';
      this.style.border = 'solid 1px #FFFFFF';
     }

     var cardId = cardIDRandomSet[i-1];

     objCard.setAttribute('posiX',marginleft);
     objCard.setAttribute('posiY',marginTop);     
     objCard.setAttribute('CardID',parseInt(cardId)-1 );
     objCard.setAttribute('CardName',CardList[parseInt(cardId)-1]);

     objCard.style.left ='669px';//Set Default position of the card
     
     objCardTable.appendChild(objCard);
     if(total ==22){
         //marginTop -= 15;
         marginleft += 20;
         objCard.style.top= '100px';
     }else{
         if(i<=5){
             marginTop -= 15;
             marginleft += 8;
             objCard.style.top= '300px';
         }else if(i>5 && i<=13){
             marginTop -= 10;
             marginleft += 8;
             objCard.style.top= '302px';
         }else if(i>13 && i<=26 ){
             marginTop -= 5;
             marginleft += 8;
             objCard.style.top= '304px';
         }else if(i>26 && i<29){//
             marginTop -= 3;
             marginleft += 10;
             objCard.style.top= '306px';
         }else if(i>=29 && i<39){
             marginTop -= 0;
             marginleft += 10;
             objCard.style.top= '308px';
         }else if(i>=39 && i<49){
             marginTop -= 0;
             marginleft += 10;
             objCard.style.top= '310px';
         }else if(i>=49 && i<=52){
             marginTop += 3;
             marginleft += 10;
             objCard.style.top= '312px';
         }else if(i>52 && i<65){
             marginTop += 5;
             marginleft += 8;
             objCard.style.top= '314px';
         }else if(i >= 65 && i<=73){
             marginTop += 10;
             marginleft += 8;
             objCard.style.top= '316px';
         }else if(i>=73){
             marginTop += 16;
             marginleft += 8;
             objCard.style.top= '318px';
         }

     }


     cardset[cardset.length] = objCard;
     objCardTable.appendChild(objCard);
     
   }
   

   iTimeoutId = setTimeout(cardSilde,150);

}

function cardSilde(){

  var objCardMove = cardset[timer];
  var x = objCardMove.getAttribute('posiX');
  var y = objCardMove.getAttribute('posiY');
  dojo.lfx.html.slideTo(objCardMove.id, [y, x], 100).play();
  timer++;
  if(timer < cur_cardTotal){
    clearTimeout(iTimeoutId);
    iTimeoutId = setTimeout(cardSilde,150);
  }else{
      clearTimeout(iTimeoutId);
  }
}


function forecastbyCom(){
    if(forecastType == '10'){
        if(showCard10ForecastByCom()==true){
            receiveCardDescFromServer(1);
        }
        //forecastType = '10';        
    }else if(forecastType == 'W'){
        if(showCard3ForecastByCom()){
          receiveCardDescFromServer(2);
        }
        //forecastType = 'W';        
    }else if(forecastType == 'L'){
        if(showCard3ForecastByCom()){
          receiveCardDescFromServer(3);
        }        //forecastType = 'L';        
    }else if(forecastType == 'L6'){
        if(showCard1ForecastByCom()){
          receiveCardDescFromServer(6);
        }
    }else if(forecastType == 'L7'){
        if(showCard1ForecastByCom()){
          receiveCardDescFromServer(7);
        }
    }else if(forecastType == 'L8'){
        if(showCard1ForecastByCom()){
          receiveCardDescFromServer(8);
        }
    }else if(forecastType == 'L4'){
        if(showCard1ForecastByCom()){
          receiveCardDescFromServer(4);
        }
    }else if(forecastType == 'L5'){
        if(showCard1ForecastByCom()){
          receiveCardDescFromServer(9);
        }
    }else if(forecastType == 'L9'){
        
        if(showCard3SentQuest()){
          sentQuestToServer();
        }
    }
}
function sentQuestToServer(){
  var urlAction = 'boardGetQuest.php?lang='+cur_language;

  for(var i = 0; i < cardSelect.length;i++){
      var objCard = cardSelect[i];
      var po = '&c'+ parseInt(i+1);
      po += '='+objCard.getAttribute('CardID');
      urlAction += po;
  }
  dojo.io.bind({
	   url: urlAction,
	   handler: callbackBoardGetQuest,
	   mimetype: 'text/plain' ,
	   encoding:'utf-8'
	});
}

function callbackBoardGetQuest(p1,p2,p3){
    if(p1 == 'error'){

    }else{
      eval(p2);
      window.close();
    }
}


function receiveCardDescFromServer(fType){
  
  var urlAction = 'getCardDesc.php?lang='+cur_language;

  urlAction += '&type='+fType;
  for(var i = 0; i < cardSelect.length;i++){
      var objCard = cardSelect[i];
      var po = '&c'+ parseInt(i+1);
      po += '='+objCard.getAttribute('CardID');
      urlAction += po;
  }

  dojo.io.bind({
	   url: urlAction,
	   handler: callbackReceiveCardDesc,
	   mimetype: 'text/plain' ,
	   encoding:'utf-8'
	});
}
function callbackReceiveCardDesc(p1,p2,p3){
    if(p1=='error'){

    }else{
      showCardDesc(p2);
    }
}
function showCardDesc(xmlData){


    eval(xmlData);
    eval('var arrDesc = posiDesc'+forecastType);

    for(var i = 0; i < xmlDescList.length; i++){
      var objDesc = xmlDescList[i];
      var objCard = cardSelect[i];
      var divDesc = byId('cadeP'+i);
      divDesc.style.display = '';
      var descName ='cardDesc'+i;
      byId(descName).firstChild.nodeValue =objDesc;// objDesc.firstChild.nodeValue;
      byId('posiDesc'+i).innerHTML = arrDesc[i];
      //alert(imagePathCardset);

      byId('imgDesc'+i).src = card_image_path_type.cardprop[imagePathCardset]['path']+ objCard.getAttribute('CardName')+card_image_path_type.cardprop[imagePathCardset]['type']; //imagePathCardset+objCard.getAttribute('CardName')+'.jpg';


    }
}


function showCard10ForecastByCom(){
  if(cardSelect.length < 10){
      //alert('You have to choose other '+(10-cardSelect.length ) +' cards before getting forecast.');
      showDialog(250,388,'กรุณาเลือกไพ่อีก '+ (10-cardSelect.length ) +' ใบ ก่อนที่จะกดปุ่ม \'อ่านคำทำนาย\'');
      return false;
  }

  byId('txtFocus').focus();
  var objForecastTable = byId('ForecastTable');  
  var cardClassName = 'select10card';
  for(var i = 0; i < cardSelect.length; i++){
      var objCard = cardSelect[i];
      objCard.parentNode.removeChild(objCard);
      var cardClass =  cardClassName + i;
      objCard.setAttribute('SelectPosi',i+1);
      objCard.style.left ='';
      objCard.style.top ='';
      objCard.className = cardClass;
      removeNode(objCard);

      var divLabel = document.createElement('div');
      divLabel.appendChild(document.createTextNode(i+1));
      divLabel.style.height = '10px';
      divLabel.style.textAlign = 'center';
      divLabel.style.marginTop = '-14px';
      divLabel.style.paddingLeft ='4px';
      divLabel.style.width ='78px';
      divLabel.style.color = '#000000';
      objCard.appendChild(divLabel);


      var card_img = document.createElement('img');
     // var img_name = imagePathCardset+objCard.getAttribute('CardName')+'.jpg';
      var img_name = card_image_path_type.cardprop[imagePathCardset]['path']+ objCard.getAttribute('CardName')+ card_image_path_type.cardprop[imagePathCardset]['type'];
      card_img.src = img_name;
      
      objCard.appendChild(card_img);
      
//      objCard.onclick = function(){
//          alert(this.id+ '      '+ this.getAttribute('CardID')+'  '+ this.getAttribute('CardName') +'  '+ this.getAttribute('SelectPosi'));
//          //alert(this.style.top +'  '+this.clientHeight );
//      }

      if(isIE){
        objCard.onclick = function(){
            //alert(window.event.x +'  '+window.event.y +'  '+ window.event.offsetY);
            //alert(Event);

            showView200CardInIE(window.event.x,window.event.y,this);
            //alert(this.id+ '      '+ this.getAttribute('CardID')+'  '+ this.getAttribute('CardName') +'  '+ this.getAttribute('SelectPosi'));
        }
      }else{
        objCard.onclick = function(Event){
            //alert(Event);
            //alert(Event.pageX +'  '+Event.pageY);
            showView200CardInMoz(Event.pageX,Event.pageY,this);
            //alert(this.id+ '      '+ this.getAttribute('CardID')+'  '+ this.getAttribute('CardName') +'  '+ this.getAttribute('SelectPosi'));
        }
      }

      objForecastTable.appendChild(objCard);
  }
  objForecastTable.style.height = '800px';
  return true;

}




function showCard5ForecastByCom(){
  if(cardSelect.length < 5){
      //alert('You have to choose other '+(5-cardSelect.length ) +' cards before getting forecast.');
      showDialog(250,388,'กรุณาเลือกไพ่อีก '+ (5-cardSelect.length ) +' ใบ ก่อนที่จะกดปุ่ม \'อ่านคำทำนาย\'');
      return false;
  }

  byId('txtFocus').focus();
  var objForecastTable = byId('ForecastTable');
  var cardClassName = 'select5card';

  for(var i = 0; i < cardSelect.length; i++){
      var objCard = cardSelect[i];
      objCard.parentNode.removeChild(objCard);
      var cardClass =  cardClassName + i;
      objCard.setAttribute('SelectPosi',i+1);
      objCard.style.left ='';
      objCard.style.top ='';
      objCard.className = cardClass;

      removeNode(objCard);
      var divLabel = document.createElement('div');
      divLabel.appendChild(document.createTextNode(i+1));
      divLabel.style.height = '10px';
      divLabel.style.textAlign = 'center';
      divLabel.style.marginTop = '-14px';
      divLabel.style.width ='78px';
      divLabel.style.paddingLeft ='4px';
      divLabel.style.color = '#000000';
      objCard.appendChild(divLabel);

      var card_img = document.createElement('img');
      //var img_name = imagePathCardset+objCard.getAttribute('CardName')+'.jpg';
      var img_name = card_image_path_type.cardprop[imagePathCardset]['path']+ objCard.getAttribute('CardName')+ card_image_path_type.cardprop[imagePathCardset]['type'];
      card_img.src = img_name;
      
      objCard.appendChild(card_img);

//      objCard.onclick = function(){
//          alert(this.id+ '      '+ this.getAttribute('CardID')+'  '+ this.getAttribute('CardName') +'  '+ this.getAttribute('SelectPosi'));
//      }

      if(isIE){
        objCard.onclick = function(){
            //alert(window.event.x +'  '+window.event.y +'  '+ window.event.offsetY);
            //alert(Event);

            showView200CardInIE(window.event.x,window.event.y,this);
            //alert(this.id+ '      '+ this.getAttribute('CardID')+'  '+ this.getAttribute('CardName') +'  '+ this.getAttribute('SelectPosi'));
        }
      }else{
        objCard.onclick = function(Event){
            //alert(Event);
            //alert(Event.pageX +'  '+Event.pageY);
            showView200CardInMoz(Event.pageX,Event.pageY,this);
            //alert(this.id+ '      '+ this.getAttribute('CardID')+'  '+ this.getAttribute('CardName') +'  '+ this.getAttribute('SelectPosi'));
        }
      }

      objForecastTable.appendChild(objCard);
  }
  return true;
}

function showCard1ForecastByCom(){
  if(cardSelect.length < 1){   
      showDialog(250,388,'กรุณาเลือกไพ่อีก '+ (1-cardSelect.length ) +' ใบ ก่อนที่จะกดปุ่ม \'อ่านคำทำนาย\'');
      return false;
  }

  byId('txtFocus').focus();
  var objForecastTable = byId('ForecastTable');
  var cardClassName = 'select1card';
  for(var i = 0; i < cardSelect.length; i++){
      var objCard = cardSelect[i];
      objCard.parentNode.removeChild(objCard);
      var cardClass =  cardClassName + i;
      objCard.setAttribute('SelectPosi',i+1);
      objCard.style.left ='';
      objCard.style.top ='';
      objCard.className = cardClass;

      removeNode(objCard);
      var divLabel = document.createElement('div');
      divLabel.appendChild(document.createTextNode(i+1));
      divLabel.style.height = '10px';
      divLabel.style.textAlign = 'center';
      divLabel.style.marginTop = '-14px';
      divLabel.style.width ='78px';
      divLabel.style.paddingLeft ='4px';
      divLabel.style.color = '#000000';
      objCard.appendChild(divLabel);

      var card_img = document.createElement('img');      
      var img_name = card_image_path_type.cardprop[imagePathCardset]['path']+ objCard.getAttribute('CardName')+ card_image_path_type.cardprop[imagePathCardset]['type'];
      card_img.src = img_name;

      objCard.appendChild(card_img);


      if(isIE){
        objCard.onclick = function(){
            showView200CardInIE(window.event.x,window.event.y,this);            
        }
      }else{
        objCard.onclick = function(Event){
            showView200CardInMoz(Event.pageX,Event.pageY,this);            
        }
      }

      objForecastTable.appendChild(objCard);
  }
  return true;
}
function showCard3SentQuest(){
  if(cardSelect.length < 3){
      showDialog(250,388,'กรุณาเลือกไพ่อีก '+ (3-cardSelect.length ) +' ใบ ก่อนที่จะกดปุ่ม \'อ่านคำทำนาย\'');
      return false;
  }
  byId('txtFocus').focus();
  var objForecastTable = byId('ForecastTable');
  var cardClassName = 'select3card';
  for(var i = 0; i < cardSelect.length; i++){
      var objCard = cardSelect[i];
      objCard.parentNode.removeChild(objCard);
      var cardClass =  cardClassName + i;
      objCard.setAttribute('SelectPosi',i+1);
      objCard.style.left ='';
      objCard.style.top ='';
      objCard.className = cardClass;

      removeNode(objCard);
      var divLabel = document.createElement('div');
      divLabel.appendChild(document.createTextNode(i+1));
      divLabel.style.height = '10px';
      divLabel.style.textAlign = 'center';
      divLabel.style.marginTop = '-14px';
      divLabel.style.width ='78px';
      divLabel.style.paddingLeft ='4px';
      divLabel.style.color = '#000000';
      objCard.appendChild(divLabel);

      var card_img = document.createElement('img');

      var img_name = card_image_path_type.cardprop[imagePathCardset]['path']+ objCard.getAttribute('CardName')+ card_image_path_type.cardprop[imagePathCardset]['type'];
      card_img.src = img_name;

      objCard.appendChild(card_img);



      if(isIE){
        objCard.onclick = function(){
            showView200CardInIE(window.event.x,window.event.y,this);
        }
      }else{
        objCard.onclick = function(Event){
            showView200CardInMoz(Event.pageX,Event.pageY,this);
        }
      }
      objForecastTable.appendChild(objCard);
  }
  return true;

}
function showCard3ForecastByCom(){
  if(cardSelect.length < 3){      
      showDialog(250,388,'กรุณาเลือกไพ่อีก '+ (3-cardSelect.length ) +' ใบ ก่อนที่จะกดปุ่ม \'อ่านคำทำนาย\'');
      return false;
  }

  byId('txtFocus').focus();
  var objForecastTable = byId('ForecastTable');
  var cardClassName = 'select3card';
  for(var i = 0; i < cardSelect.length; i++){
      var objCard = cardSelect[i];
      objCard.parentNode.removeChild(objCard);
      var cardClass =  cardClassName + i;
      objCard.setAttribute('SelectPosi',i+1);
      objCard.style.left ='';
      objCard.style.top ='';
      objCard.className = cardClass;

      removeNode(objCard);
      var divLabel = document.createElement('div');
      divLabel.appendChild(document.createTextNode(i+1));
      divLabel.style.height = '10px';
      divLabel.style.textAlign = 'center';
      divLabel.style.marginTop = '-14px';
      divLabel.style.width ='78px';
      divLabel.style.paddingLeft ='4px';
      divLabel.style.color = '#000000';
      objCard.appendChild(divLabel);

      var card_img = document.createElement('img');

      var img_name = card_image_path_type.cardprop[imagePathCardset]['path']+ objCard.getAttribute('CardName')+ card_image_path_type.cardprop[imagePathCardset]['type'];
      card_img.src = img_name;
      
      objCard.appendChild(card_img);



      if(isIE){
        objCard.onclick = function(){         
            showView200CardInIE(window.event.x,window.event.y,this);         
        }
      }else{
        objCard.onclick = function(Event){          
            showView200CardInMoz(Event.pageX,Event.pageY,this);            
        }
      }
      objForecastTable.appendChild(objCard);
  }
  return true;
}


// here's how to generate the indexes for your
// questions array...
// if you use these as index values, remember
// that JavaScript indexes start at 0, not 1 -
// either change the interval of the values to
// be [0, Max-1] or adjust each index by -1 as
// you use it or load your array specifically
// to use the indexes 1,...,Max.

function randomDeal(n, Max) {
    // deal {n} unique integers on the
    // interval [1, Max]
    // use an associative array (sort of like
    // using a Hashtable in Java), so that the
    // "indexes" are keys to values - the keys
    // are going to be the values you want -
    // values for the "indexes" are arbitrary
    var a = new Array();
    var dealCnt = 0;
    while (n > dealCnt) {
    // generate a candidate, random value on
    // the interval [1, Max]
    var r = 1 + Math.floor(Max*Math.random());
    // check to see whether the random value
    // has been used yet as an index for the
    // working, associative array
    var dupe = null != a[r];
    // if the "index" hasn't been used, this
    // is not a repeat - assign a new entry
        if (!dupe) {
        // assign something, anything at the
        // current index (random value)
        a[r] = 'assigned';
        // increment the number of assigned
        // values generated thus far
        dealCnt++;
        }
    }
    // now convert to a simple array of the
    // random indexes
    var deal = new Array(n);
    var i = 0;
    for (key in a) {
    deal[i] = key;
    i++;
    }
    return deal;
 }
// var num = randomDeal(78,78);
// alert(num.length);
//  var num = randomDeal(78, 78);
//  for(var i =0; i<num.length; i++){
//    document.write(num[i] +'<br/>');
//  }

function showOnLoadPage(){
  var imgLoad = document.createElement('img');
  imgLoad.id  = 'pLoad';
  imgLoad.src = 'Images/load_c.gif';
  //loadContainer.appendChild(imgLoad);
  return imgLoad;
}

function closeOnloadPage(){
  byId('pLoad').parentNode.removeChild(byId('pLoad'));
}

