/**
 * 
 * @author Kris Cieslak
 * @version v1.0 (beta)
 * @license (Creative Commons) http://creativecommons.org/licenses/by-nc-sa/3.0/
 *
 * //digitalinsane.com
 */
var YD=YAHOO.util.Dom;
var YE=YAHOO.util.Event;
var YA=YAHOO.util.Anim;
var YDD=YAHOO.util.DD;
var YDDt=YAHOO.util.DDTarget;
var YDDM=YAHOO.util.DDM;
var $ = function (el) { return YD.get(el);}
var $a = function (tag,child) { $(tag).appendChild(child); }
var $c = function (tag) { return document.createElement(tag); }
AboutBox = function () {
   return {
   	  init: function () {
		var about=new YDD('abox');
        about.setHandleElId("headAbout");
		YE.addListener('aboutClose','click',AboutBox.Close);
		AboutBox.Open();
	  },
	  Open: function () {
	  	YD.setStyle('abox','display','block');
		YD.setStyle('abox','top','150px');
		YD.setStyle('abox','left','35%');
	  },
	  Close: function () {
        YD.setStyle('abox','display','none');	  	
	  }
   }	
}();

WinBox = function () {
   return {
   	  init: function () {
		var win=new YDD('aWin');
        win.setHandleElId('headWin')
		YE.addListener('winClose','click',WinBox.Close);
	  },
	  Open: function () {
	  	YD.setStyle('aWin','display','block');
		YD.setStyle('aWin','top','150px');
		YD.setStyle('aWin','left','35%');
	  },
	  Close: function () {
        YD.setStyle('aWin','display','none');
		YAHOO.solitaire.deal();	  	
	  }
   }	
}();

YAHOO.namespace('solitaire');

YAHOO.solitaire = function () {
   var startPos;
   var backz;
   var childs;
   var foo;
   var zind=0;
   var score;
   var cacheCard;
   var GTime;
   var GTh;
   var GTm;
   var GTs;
   function IncScore(card) {
   	 if (cacheCard!=card) {
	 	cacheCard=card;
	 	score++;
	 }
   }
   
   function createDiv(cnt,ar) {
   	         if (!ar.pt) ar.pt='px'; 
			 if (ar.div)  var div=$c('div'); else var div=$c('span'); 
			 $a(cnt,div); 
  		     YD.setStyle(div,'position','absolute');
			 YD.setStyle(div,'display','block');
			 if (ar.wd) YD.setStyle(div,'width',ar.wd+'px');
			 if (ar.hg) YD.setStyle(div,'height',ar.hg+'px');
			 if (ar.tp) YD.setStyle(div,'top',''+ar.tp+'px');
			 if (ar.lt) YD.setStyle(div,'left',ar.lt+''+ar.pt);
			 YD.setStyle(div,'font-size','2px');
			 YD.setStyle(div,'z-index','0');
			 if (ar.brd) YD.setStyle(div,'border',ar.brd);
			 if (ar.bg) YD.setStyle(div,'background','url(img/'+ar.bg+'.gif) no-repeat center');
			 return div;
		}	
  // GENERATE PLAY TABLE -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    function DropBoxes() {
		 var opt={ div:true, wd:71,hg:96,tp:6,lt:45, brd:'#000 solid 1px', pt:'%' }
		 var dr=createDiv('cardtable',opt);
		 dr.id='tdp1'; dr.className=dr.id;
		 new YDDt(dr.id,'tdp');
		 YD.setStyle(dr.id,'background','url(img/bg4x4.gif)');
		 opt.lt=58; dr=createDiv('cardtable',opt); dr.id='tdp2'; dr.className=dr.id;
		 new YDDt(dr.id,'tdp');
		 YD.setStyle(dr.id,'background','url(img/bg4x4.gif)');
		 opt.lt=71; dr=createDiv('cardtable',opt); dr.id='tdp3';dr.className=dr.id;
		 new YDDt(dr.id,'tdp');
		 YD.setStyle(dr.id,'background','url(img/bg4x4.gif)');
		 opt.lt=84; dr=createDiv('cardtable',opt); dr.id='tdp4';dr.className=dr.id;
		 new YDDt(dr.id,'tdp');
		 YD.setStyle(dr.id,'background','url(img/bg4x4.gif)');
		 opt.lt=6;  dr=createDiv('cardtable',opt); dr.id='suit';dr.className=dr.id;
		 YD.setStyle(dr.id,'background','url(img/bg4x4.gif)'); YD.setStyle(dr.id,'cursor','pointer');
		 YE.addListener(dr.id,'click',function(){
		   var ar=YD.getElementsBy(function(el){
			        if ((YD.getStyle(el,'top')=='6px') &&
			          (YD.getStyle(el,'left')=='19%')) return true; else return false;
			      },'div','cardtable')
		   for(var i=0;i<(ar.length-1); i++) 
           for(var j=(i+1);j<ar.length;j++) {
             if(parseInt(YD.getStyle(ar[i],'z-index')) < parseInt(YD.getStyle(ar[j],'z-index'))) {
              var buf = ar[i];
			  ar[i]=ar[j];
			  ar[j]=buf;
               }
             }
		   for (i in ar) {
		   	  YD.setStyle(ar[i],'left','6%');
			  YD.setStyle(ar[i],'z-index',i);
			  roCard(ar[i],true);
		   }	
		   zind=0;
		 });
		 opt.tp=115;
		 var n=0;
		 for (var i=6;i<=84;i+=13)
		  {  opt.lt=i; dr=createDiv('cardtable',opt);dr.id='bd'+n; n+=1;
		  new YDDt(dr.id,'b');
		  dr.className=dr.id;
		  }
	} 
  // SUIT GENERATOR  =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    function generateSuit (opt) {
		if (opt.x) this.x=opt.x; else this.x=0;
		if (opt.y) this.y=opt.y; else this.y=0;
		if (opt.fig) this.fig=opt.fig; else this.fig='';
		if (opt.color) this.color=opt.color; else this.color='';
		if (opt.pt) this.pt=opt.pt;
		this.id=opt.fig+opt.color;
		this.createCard();
	}
    generateSuit.prototype.createCard = function() {
   // genrate big fig -=-=-=-==-
		function createBig (card,bg,ar) {
 	 	  for (var i=0;i<ar.length;i++) 
	   	    createDiv(card,{wd:15,hg:15,tp:ar[i].top,lt:ar[i].left,bg:bg+'big'+ar[i].st });	 }
   // get z-index --=-=-=-=-=-=-
       function numVal(val) {
	      if (isNaN(val)) {
  	  	     if (val.indexOf('%')!=-1) val=val.substring(0,val.indexOf('%'));
		     if (val.indexOf('px')!=-1) val=val.substring(0,val.indexOf('px'));
		     if (val.indexOf('em')!=-1) val=val.substring(0,val.indexOf('em'));
	      } else return val;
	     return parseInt(val);
       }
	   function getX(el) {	return YD.getStyle(el,'left');	}
	   function setX(el,x) { YD.setStyle(el,'left',x); }
       function PosChilds(x,y){
			for (var n=0;n<childs.length;n++) {
				  YD.setY(childs[n],y+(n*18));
				  setX(childs[n],x); 
				              }
	   }
	   function zindexChilds(zin) {
 		    for (var n=1;n<=childs.length;n++) YD.setStyle(childs[n-1],'z-index',''+(parseInt(zin)+parseInt(n)));}
       
	   function getNm(str) {
				switch (str.substr(0,1)) {
				  case ('k'): return 12; break;
				  case ('q'): return 11; break;	
				  case ('j'): return 10; break;
				  case ('1'): return 9; break;
				  case ('9'): return 8; break;
				  case ('8'): return 7; break;
				  case ('7'): return 6; break;
				  case ('6'): return 5; break;
				  case ('5'): return 4; break;
				  case ('4'): return 3; break;
				  case ('3'): return 2; break;
				  case ('2'): return 1; break;
				  case ('a'): return 0; break;
				  case ('t'): return -1; break;
				  case ('b'): return -1; break;
				}
	   }	
	   function getFig(str) {
	   	        return str.substr(1,2);
	   }
       function getCol(el) {
			switch (el.substr(1)) {
				case ('hrt'): return 'r';
				case ('dmd'): return 'r';
				case ('spd'): return 'b';
				case ('clb'): return 'b';
				default: return -1;
			} 
		}	   
	   function checkTopBox(el,el2) { 
	          if (getFig(el2.id)=='dp') var z=getFig(el.id); else var z=getFig(el2.id);
	          if (
			     ((getNm(el.id)-1)==(getNm(el2.id))) &&
				 (getFig(el.id)==z) 
				 ) return true; else false;  
			                        }
	   function checkBtmBox(el,el2) { 
	          if (el2.id.indexOf('bd')!=-1) var z=getFig(el.id); else var z=getFig(el2.id);
	          if (
			     (getNm(el.id)<getNm(el2.id)) &&
				 (getCol(el.id)!=getCol(el2.id)) 
				 ) return true; else false;  
			                        }
	   function hasChilds(elem) {
	   	    var n=YD.getElementsBy(function(el){
	   		if (
			     (YD.getStyle(el,'left')==YD.getStyle(elem,'left')) && 
			     (numVal(YD.getStyle(el,'top'))>=numVal(YD.getStyle(elem,'top'))) &&
			     ($(el).id.indexOf('tdp')==-1) && ($(el).id.indexOf('bd')==-1)
			   ) return true; else return false;
			},'div','cardtable')
			if (n.length==1) return true; else return false;
	   }
	   
	   function getTop(x,y) {
	   	 if (y==YD.getY('tdp1')) {
		    var z=-1; var n;
		 	var ar=YD.getElementsBy(function(el){
				if ((YD.getX(el)==x) && (YD.getY(el)<=110)) {
					if (
					   (parseInt(YD.getStyle(el,'z-index'))>z) && 
					   (parseInt(YD.getStyle(el,'z-index'))<60)
					   ) { z=parseInt(YD.getStyle(el,'z-index')); n=el }
				} 
			},'div','cardtable');
			return n;
		 } else
		 if (y>=YD.getY('b0')) {
		    var z=-1; var n;
		 	var ar=YD.getElementsBy(function(el){
				if ((YD.getX(el)==x) && (YD.getY(el)>=110)) {
					if (
					   (parseInt(YD.getStyle(el,'z-index'))>z) && 
					   (parseInt(YD.getStyle(el,'z-index'))<60)
					   ) { z=parseInt(YD.getStyle(el,'z-index')); n=el }
				} 
			},'div','cardtable');
			return n;
		 }
	   }
	   var card=createDiv('cardtable',{div:true,wd:71,hg:96,tp:this.y,lt:this.x,brd:'#000 solid 1px', pt:this.pt});
		card.id=this.id;
		card.className=this.id;
		    YD.setStyle(card,'background','#fff');
			YD.setStyle(card,'cursor','pointer');
// -=-=-= drag and drop rules -=-=-=-=-=-=-=-=-=-=-=
			switch (this.fig) {
			 case ('k'): var dd=new YDD(this.id,'b'); new YDDt(this.id,'k'); dd.addToGroup('q'); break;
			 case ('q'): var dd=new YDD(this.id,'k'); new YDDt(this.id,'q'); dd.addToGroup('j'); break;
			 case ('j'): var dd=new YDD(this.id,'q'); new YDDt(this.id,'j'); dd.addToGroup('1'); break;
			 case ('1'): var dd=new YDD(this.id,'j'); new YDDt(this.id,'1'); dd.addToGroup('9'); break;	
			 case ('9'): var dd=new YDD(this.id,'1'); new YDDt(this.id,'9'); dd.addToGroup('8'); break;
			 case ('8'): var dd=new YDD(this.id,'9'); new YDDt(this.id,'8'); dd.addToGroup('7'); break;
			 case ('7'): var dd=new YDD(this.id,'8'); new YDDt(this.id,'7'); dd.addToGroup('6'); break;
			 case ('6'): var dd=new YDD(this.id,'7'); new YDDt(this.id,'6'); dd.addToGroup('5'); break;
			 case ('5'): var dd=new YDD(this.id,'6'); new YDDt(this.id,'5'); dd.addToGroup('4'); break;
			 case ('4'): var dd=new YDD(this.id,'5'); new YDDt(this.id,'4'); dd.addToGroup('3'); break;
			 case ('3'): var dd=new YDD(this.id,'4'); new YDDt(this.id,'3'); dd.addToGroup('2'); break;
			 case ('2'): var dd=new YDD(this.id,'3'); new YDDt(this.id,'2'); dd.addToGroup('a'); break;
			 case ('a'): var dd=new YDD(this.id,'2'); new YDDt(this.id,'a'); dd.addToGroup('tdp'); break; 
	        }
			 dd.b4StartDrag = function () {
			 	var elem=this.getEl();
			 	if (YD.getStyle(elem,'top')!='6px')
				 childs=YD.getElementsBy(function(el){
  			  	      if (
					      (YD.getStyle(el,'left')==YD.getStyle(elem,'left')) && 
					      (numVal(YD.getStyle(el,'top'))>=numVal(YD.getStyle(elem,'top'))) &&
					      ($(el).id.indexOf('tdp')==-1) && ($(el).id.indexOf('bd')==-1)
						  ) return true; else return false; 
				       },'div','cardtable'); 
				else childs=[this.getEl()['id']];
				childs.reverse();
				startPos=[getX(this.getEl()),YD.getY(this.getEl())];
				backz=YD.getStyle(this.getEl(),'z-index');
				if (!((childs.length>1) && (getCardState(this.getEl()))))	zindexChilds(60);
    		 }
			 dd.onDragDrop =function (e, id) {
			 var last=getTop(YD.getX($(id[0].id)),YD.getY($(id[0].id)));	
			 if (!last) last=$(id[0].id);
			 if ((!getCardState(this.getEl())) && (!getCardState(last))) {		
			  if ((last.id.indexOf('tdp')==-1) && (last.id.indexOf('bd')==-1) &&
			       (YD.getY(last)>=YD.getY($('bd0'))) 
			     ) { // IN BOTTOM MOTHER BOX 	
			    if (checkBtmBox(this.getEl(),last)) {
				YD.setY(this.getEl(),(numVal(YD.getY(last)+18)));
				setX(this.getEl(),getX(last));
				zindexChilds(YD.getStyle(last,'z-index'));
				PosChilds(getX(this.getEl()),YD.getY(this.getEl()));
				} else this.onInvalidDrop();				 
			  } else if ((childs.length==1) && (YD.getY(last)==YD.getY($('tdp1'))) && (YD.getX(last)>=YD.getX($('tdp1'))))  
			  { // IN TOP BOXES
			    if (checkTopBox(this.getEl(),last)) {
			  	YD.setY(this.getEl(),YD.getY(last));
				setX(this.getEl(),getX(last));
			 	YD.setStyle(this.getEl(),'z-index',''+(parseInt(YD.getStyle(last,'z-index'))+1));
				IncScore(this.getEl()['id']);
				} else this.onInvalidDrop();
			  } else if (last.id.indexOf('bd')!=-1) {
			  	// IN BOTTOM BOXES
				YD.setY(this.getEl(),YD.getY(last));
				setX(this.getEl(),getX(last));
			  	zindexChilds(YD.getStyle(last,'z-index'));
				PosChilds(getX(this.getEl()),YD.getY(this.getEl()));
			  } else this.onInvalidDrop();
			  
    		 } else this.onInvalidDrop();
			 }
			 dd.onMouseDown = function(e) {
			   if ((YD.getStyle(this.getEl(),'top')=='6px') && (YD.getStyle(this.getEl(),'left')=='6%')) {
          			YD.setStyle(this.getEl(),'top','6px');
				    YD.setStyle(this.getEl(),'z-index',zind);
				    YD.setStyle(this.getEl(),'left','19%');
	    			zind++;
					roCard(this.getEl(),false);
			   }
			   if (hasChilds(this.getEl())) roCard(this.getEl(),false);
			 }
			 dd.onInvalidDrop = function(e) {
			  if (!getCardState(this.getEl())) {	
			 	PosChilds(startPos[0],startPos[1]);
				zindexChilds(backz);
			  } else {
			  	YD.setY(this.getEl(),startPos[1]);
				setX(this.getEl(),startPos[0]);
				YD.setStyle(this.getEl(),backz);
			  }
		     }
			 dd.onDrag =function(e) {
			   if (!getCardState(this.getEl()))	
			 	PosChilds(getX(this.getEl()),YD.getY(this.getEl()));
			   else this.onInvalidDrop();   	
			 }
// -=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
			createDiv(card,{wd:11,hg:15,tp:13,lt:0,bg:this.color+'smltop'});
			createDiv(card,{wd:11,hg:15,tp:67,lt:60,bg:this.color+'smlbtm'});
			switch (this.color) {
				case ('hrt'): var c='r'; break;
				case ('dmd'): var c='r'; break;
				case ('spd'): var c='b'; break;
				case ('clb'): var c='b'; break;
			}
            createDiv(card,{wd:11,hg:15,tp:0,lt:0,bg:this.fig+'top'+c});
			createDiv(card,{wd:11,hg:15,tp:81,lt:60,bg:this.fig+'btm'+c});			
			if ((this.fig=='k') || (this.fig=='q') || (this.fig=='j')){
			 var fig=createDiv(card,{wd:47,hg:74,tp:11,lt:12});	
			 createBig(card,this.color,[
			    { top:13, left: 43, st:'top' },
				{ top:68, left: 14, st:'btm' } ]);
			 switch (this.fig) {
			  case ('k'): YD.setStyle(fig,'background','url(img/king.gif) no-repeat');break;
			  case ('q'): YD.setStyle(fig,'background','url(img/queen.gif) no-repeat');break;
			  case ('j'): YD.setStyle(fig,'background','url(img/jack.gif) no-repeat');break;
			 }
			}  else 
			  switch (this.fig) {
			  	case ('a'):
					createBig(card,this.color,[{ top: 38, left:28, st:'top'}])	
				break; 
				case ('2'): 
                    createBig(card,this.color,[{top:9,left:28,st:'top'},{top:72,left:28,st:'btm'}]);				  
				break;
				case ('3'):
				    createBig(card,this.color,[{top:9,left:28,st:'top'},{top:72,left:28,st:'btm'},
					{top:38,left:28,st:'btm'}]); 
				break;
				case ('4'): 
				    createBig(card,this.color,[{top:9,left:14,st:'top'},{top:9,left:42,st:'top'},
					{top:72,left:14,st:'btm'},{top:72,left:42,st:'btm'}]); 
				break;
				case ('5'):
				    createBig(card,this.color,[{top:9,left:14,st:'top'},{top:9,left:42,st:'top'},
					{top:72,left:14,st:'btm'},{top:72,left:42,st:'btm'},
					{top:38,left:28,st:'top'}]); 
				break;
				case ('6'): 
				    createBig(card,this.color,[{top:9,left:14,st:'top'},{top:9,left:42,st:'top'},
					{top:72,left:14,st:'btm'},{top:72,left:42,st:'btm'},
					{top:38,left:42,st:'top'},{top:38,left:14,st:'top'}]); 
				break;
				case ('7'): 
				     createBig(card,this.color,[{top:9,left:14,st:'top'},{top:24,left:28,st:'top'},
					 {top:72,left:14,st:'btm'},{top:72,left:42,st:'btm'},
					 {top:38,left:42,st:'top'},{top:38,left:14,st:'top'},
					 {top:9,left:42,st:'top'}]); 
				break;
				case ('8'): 
				     createBig(card,this.color,[{top:9,left:14,st:'top'},{top:30,left:14,st:'top'},
					 {top:51,left:14,st:'btm'},{top:72,left:14,st:'btm'},
					 {top:9,left:42,st:'top'},{top:30,left:42,st:'top'},
					 {top:51,left:42,st:'btm'},{top:72,left:42,st:'btm'}]); 
				break;
				case ('9'): 
				    createBig(card,this.color,[{top:9,left:14,st:'top'},{top:30,left:14,st:'top'},
					{top:51,left:14,st:'btm'},{top:72,left:14,st:'btm'},
					{top:38,left:28,st:'top'},{top:9,left:42,st:'top'},
					{top:30,left:42,st:'top'},{top:51,left:42,st:'btm'},
					{top:72,left:42,st:'btm'}]);
				break;
				case ('1'): 
				    createBig(card,this.color,[{top:9,left:14,st:'top'},{top:30,left:14,st:'top'},
					{top:51,left:14,st:'btm'},{top:72,left:14,st:'btm'},
					{top:22,left:28,st:'top'},{top:61,left:28,st:'btm'},
					{top:9,left:42,st:'top'},{top:30,left:42,st:'top'},
					{top:51,left:42,st:'btm'},{top:72,left:42,st:'btm'}]);
				break;
			  }
			  roCard(card,true);
	}
	function roCard(id,state) {
		if (state) {
			YD.setStyle(id,'background','url(img/b1.jpg)');
            YD.getElementsBy(function(el){
				YD.setStyle(el,'display','none');
			},'span',id);
		} else {
			YD.setStyle(id,'background','#fff');
            YD.getElementsBy(function(el){
				YD.setStyle(el,'display','block');
			},'span',id);
		}
	}
	function getCardState(id) {
         var n=YD.getStyle(id,'background');
         if (!n) return false;
	 if (
              (n.indexOf('url')!=-1) && 
		  ($(id).id.indexOf('tdp')==-1) &&
		  ($(id).id.indexOf('bd')==-1)
	    )
	  return true; else return false;
	}
	function Deal() {
		GTh=0;
		GTm=0;
		GTs=0;
		score=0;		
	    function putCard(obj) {
   			YD.setStyle(obj.id,'top',obj.top);
			YD.setStyle(obj.id,'left',obj.left);
			YD.setStyle(obj.id,'z-index',obj.zin);
			roCard($(obj.id),obj.state); 
		}	

		var c=YD.getElementsBy(function(el){
		   if ((el.id.indexOf('tdp')==-1) && (el.id.indexOf('bd')==-1)  && (el.id.indexOf('suit')==-1))
			return true; else return false;
		},'div','cardtable');
        var i=c.length;
        while ( --i ) {
             var j = Math.floor( Math.random() * ( i + 1 ) );
             var tempi = c[i];
             var tempj = c[j];
             c[i] = tempj;
             c[j] = tempi; }
		// box drop 0 -=-==--=-==--=-=-=
		    putCard({ id:c[0], left:'6%', top:'115px',state:false,zin:'1' });
		// box drop 1 -=-=-=-=-=-=-=-=-=
		    putCard({ id:c[2], left:'19%', top:'120px',state:false,zin:'2' });
		    putCard({ id:c[1], left:'19%', top:'115px',state:true,zin:'1' });
        // box drop 2 =-=-=-=-=-=-=-=-=-=-=-=
		    putCard({ id:c[5], left:'32%', top:'125px',state:false,zin:'3' });
			putCard({ id:c[4], left:'32%', top:'120px',state:true,zin:'2' });		
		    putCard({ id:c[3], left:'32%', top:'115px',state:true,zin:'1' });
        // box drop 3 =-=-=-=-=-=-=-=-=-=-=-=			
		    putCard({ id:c[9], left:'45%', top:'130px',state:false,zin:'4' });
			putCard({ id:c[8], left:'45%', top:'125px',state:true,zin:'3' });		
		    putCard({ id:c[7], left:'45%', top:'120px',state:true,zin:'2' });
			putCard({ id:c[6], left:'45%', top:'115px',state:true,zin:'1' });
        // box drop 4 =-=-=-=-=-=-=-=-=-=-=-=
		    putCard({ id:c[14], left:'58%', top:'135px',state:false,zin:'5' });
			putCard({ id:c[13], left:'58%', top:'130px',state:true,zin:'4' });		
		    putCard({ id:c[12], left:'58%', top:'125px',state:true,zin:'3' });
			putCard({ id:c[11], left:'58%', top:'120px',state:true,zin:'2' });
			putCard({ id:c[10], left:'58%', top:'115px',state:true,zin:'1' });
        // box drop 5 =-=-=-=-=-=-=-=-=-=-=-=
		    putCard({ id:c[20], left:'71%', top:'140px',state:false,zin:'6' });
			putCard({ id:c[19], left:'71%', top:'135px',state:true,zin:'5' });		
		    putCard({ id:c[18], left:'71%', top:'130px',state:true,zin:'4' });
			putCard({ id:c[17], left:'71%', top:'125px',state:true,zin:'3' });
			putCard({ id:c[16], left:'71%', top:'120px',state:true,zin:'2' });
			putCard({ id:c[15], left:'71%', top:'115px',state:true,zin:'1' });
        // box drop 6 =-=-=-=-=-=-=-=-=-=-=-=		 			
		    putCard({ id:c[27], left:'84%', top:'145px',state:false,zin:'7' });
			putCard({ id:c[26], left:'84%', top:'140px',state:true,zin:'6' });		
		    putCard({ id:c[25], left:'84%', top:'135px',state:true,zin:'5' });
			putCard({ id:c[24], left:'84%', top:'130px',state:true,zin:'4' });
			putCard({ id:c[23], left:'84%', top:'125px',state:true,zin:'3' });
			putCard({ id:c[22], left:'84%', top:'120px',state:true,zin:'2' });
			putCard({ id:c[21], left:'84%', top:'115px',state:true,zin:'1' });
			for (var i=28;i<c.length;i++) 
			putCard({ id:c[i], left:'6%', top:'6px',state:true,zin:(i-27) })
	}
 // -=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    function Winner() {
        var c=YD.getElementsBy(function(el){
		   if ((el.id.indexOf('tdp')==-1) && (el.id.indexOf('bd')==-1)  && (el.id.indexOf('suit')==-1))
			return true; else return false;
		},'div','cardtable');		
	}
    function makeCards() {
		var n;
	  for (var i=0;i<=12;i++) {
	  	if (i<8) n=i+2;
		if (i==8) n='1';
	    if (i==9) n='j';
		if (i==10) n='q';
		if (i==11) n='k';
		if (i==12) n='a';
		new generateSuit({ x:6, y:6, fig:''+n, color:'hrt', pt:'%' });    
 	    new generateSuit({ x:6, y:6, fig:''+n, color:'dmd', pt:'%' });
		new generateSuit({ x:6, y:6, fig:''+n, color:'spd', pt:'%' });
		new generateSuit({ x:6, y:6, fig:''+n, color:'clb', pt:'%' });
	  }
	}
	return {
	  // init -=-=-=-=-=-=-=-=-=-=-=-=-=
		 init : function () {
		 	YDDM.mode=YDDM.INTERSECT;
			DropBoxes();
			makeCards();
			YE.addListener(window,'keydown',function (e){
                if (YAHOO.util.Event.getCharCode(e)==68) Deal();
			});
			YAHOO.solitaire.deal();
		 },
		 deal : function () {
		 	Deal();
			window.clearInterval(GTime);
			GTime=window.setInterval(function(){
			  GTs++;
			  if (GTs==60) { GTm++; GTs=0; }
			  if (GTm==60) { GTh++; GTm=0; }
			  if (GTh==24) { GTm=0; GTh=0; GTs=0;}
			  if (GTs<10) var gts='0'+GTs; else var gts=GTs;
			  if (GTm<10) var gtm='0'+GTm; else var gtm=GTm;
			  if (GTh<10) var gth='0'+GTh; else var gth=GTh;				
              $('gamestatus').innerHTML='Score: '+score+'&nbsp;&nbsp;&nbsp;Time: '+gth+':'+gtm+':'+gts;
			  if (score==52) {
			  $('cntWin').innerHTML='Score: '+score+'&nbsp;&nbsp;&nbsp;Time: '+gth+':'+gtm+':'+gts;
			  WinBox.Open();
			  window.clearInterval(GTime);
			                }
			},1000);

		 }
	  // -=-=-=-=-=--=-=-=-=-=-=-=-=-=-=	 
	}
} ();
function init () {
	YAHOO.solitaire.init();
	AboutBox.init();
	WinBox.init();
}
YE.addListener(window,'load',init);
