var cards=0;

function calcMouseOver(id)
{ 
	var el=document.getElementById(id);
	if (el.className=='cardselected')
    { 
    	el.className='cardselectedover';
    }
	else
    { 
    	if (el.className=='rangeselected')
        { 
        	el.className='rangeselectedover';
        }
		else
        { 
        	if (el.className=='ultrarange')
            { 
            	el.className='ultrarangeover';
            }
			else
            { 
            	if (el.className=='cardselectedrange')
                { 
                	el.className='cardselectedrangeover';
                }
				else
                { 
                	if (el.className=='cardselectedultrarange')
                    { 
                    	el.className='cardselectedultrarangeover';
                    }
					else
                    { 
                    	el.className='cardover';
                    }
                }
            }
        }
    }
}




function calcMouseOut(id)
{ 
	var el=document.getElementById(id);
	if (el.className=='cardselectedover')
    { 
    	el.className='cardselected';
    }
	else
    { 
    	if (el.className=='rangeselectedover')
        { 
        	el.className='rangeselected';
        }
		else
        { 
        	if (el.className=='ultrarangeover')
            { 
            	el.className='ultrarange';
            }
			else
            { 
            	if (el.className=='cardselectedrangeover')
                { 
                	el.className='cardselectedrange';
                }
				else
                { 
                	if (el.className=='cardselectedultrarangeover')
                    { 
                    	el.className='cardselectedultrarange';
                    }
					else
                    { 
                    	el.className='card';
                    }
                }
            }
        }
    }
}





function cardClick(id)
{ 
	var el=document.getElementById(id);
	if (el.className=='cardselectedover')
    { 
    	el.className='cardover';
		cards=cards-1;
    }
	else
    { 
    	if (el.className=='rangeselectedover')
        { 
        	if (cards<6)
            { 
            	el.className='cardselectedrangeover';
				cards=cards+1;
            }
        }
		else
        { 
        	if (el.className=='cardselectedrangeover')
            { 
            	el.className='rangeselectedover';
				cards=cards-1;
            }
			else
            { 
            	if (el.className=='cardselectedultrarangeover')
                { 
                	el.className='ultrarangeover';
					cards=cards-1;
                }
				else
                { 
                	if (el.className=='ultrarangeover')
                    { 
                    	if (cards<6)
                        { 
                        	el.className='cardselectedultrarangeover';
							cards=cards+1;
                        }
                    }
					else
                    { 
                    	if (cards<6)
                        { 
                        	el.className='cardselectedover';
							cards=cards+1;
                        }
                    }
                }
            }
        }
    }
	feedback();
	if (cards>4)
    { 
    	calculateodds();
    }
}





function countrangecards()
{ 
	var count=0;
	for (i=1; i<5; i=i+1)
    { 
    	for (j=1; j<14; j=j+1)
        { 
        	var el=document.getElementById("box"+(i*14+j));
			if ((el.className=='rangeselected')
              || (el.className=='rangeselectedover')
              || (el.className=='cardselectedrange')
              || (el.className=='cardselectedrangeover')
              || (el.className=='cardselectedultrarange')
              || (el.className=='cardselectedultrarangeover')
              || (el.className=='ultrarange')
              || (el.className=='ultrarangeover'))
            { 
            	count=count+1;
            }
        }
    }
	return count;
}





function countselectedcardsinrange()
{ 
	var count=0;
	for (i=1; i<5; i=i+1)
    { 
    	for (j=1; j<14; j=j+1)
        { 
        	var el=document.getElementById("box"+(i*14+j));
			if ((el.className=='cardselectedrange')
              || (el.className=='cardselectedrangeover')
              || (el.className=='cardselectedultrarange')
              || (el.className=='cardselectedultrarangeover'))
            { 
            	count=count+1;
            }
        }
    }
	return count;
}





function calculateodds()
{ 
	var riverfield=document.getElementById("riverfield");
	var turnfield=document.getElementById("turnfield");
	var rangecards=countrangecards();
	var selectedrangecards=countselectedcardsinrange();
	var turnf=0.0;
	var river=0.0;
	if (cards==5)
    { 
    	turnf=((rangecards-selectedrangecards)/(52-cards));
		riverf=((rangecards-selectedrangecards)/(52-cards-1));
		riverf=turnf+((1-turnf)*riverf);
		turnf=Math.round(turnf*10000)/100;
		riverf=Math.round(riverf*10000)/100;
		turnfield.value=turnf;
		riverfield.value=riverf;
	}

	if (cards==6)
    { 
    	riverf=((rangecards-selectedrangecards)/(52-cards));
		riverf=Math.round(riverf*10000)/100;
		turnfield.value="n/a";
		riverfield.value=riverf;
    }
}





function feedback()
{ 
	var textarea = document.getElementById("divFeedBack");
	switch (cards)
	{ 
		case 0:
			textarea.innerHTML = "Select the cards in your hand and on the table.";
			break;
		case 1:
			textarea.innerHTML = "Select the other card in your hand.";
			break;
		case 2:
			textarea.innerHTML = "Select the 3 cards which appear on the flop.";
			break;
		case 3:
			textarea.innerHTML = "Select the other 2 cards which appear on the flop.";
			break;
		case 4:
			textarea.innerHTML = "Select the last cards which appears on the flop.";
			break;
		case 5:
			var rangecards=countrangecards();
			if (rangecards==0)
			{ 
				textarea.innerHTML = "Select the range of desired cards by clicking the side of the table";
			}
			else
			{ 
				textarea.innerHTML = "The odds for the turn and river are calculated. Select the card which appears on the turn (forth card).";
			}
			break;
		case 6:
			var rangecards=countrangecards();
			if (rangecards==0)
			{ 
				textarea.innerHTML = "Select the range of desired cards by clicking the side of the table";
			}
			else
			{ 
				textarea.innerHTML = "All odds calculated, press reset to start over again.";
			}
			break; 
	}
}





function sideClick(id)
{ 
	var el=document.getElementById(id);
	if (el.className=='rangeselectedover')
    { // range was selected
		el.className='cardover';
		if (parseInt(id.substring(3))<14)
        { 
        	for (i=1; i<5; i=i+1)
            { 
            	if (document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className=='ultrarange')
                { 
                	document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className='rangeselected';
                }
				else
                { 
                	if (document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className=='cardselectedrange')
                    { 
                    	document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className='cardselected';
                    }
					else
                    { 
                    	if (document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className=='cardselectedultrarange')
                        { 
                        	document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className='cardselectedrange';
                        }
						else
                        { 
                        	document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className='card';
                        }
                    }
                }
            }
        }
		else
        { 
        	for (i=1; i<14; i=i+1)
            { 
            	if (document.getElementById("box"+(parseInt(id.substring(3))+i)).className=='ultrarange')
                { 
                	document.getElementById("box"+(parseInt(id.substring(3))+i)).className='rangeselected';
                }
				else
                { 
                	if (document.getElementById("box"+(parseInt(id.substring(3))+i)).className=='cardselectedrange')
                    { 
                    	document.getElementById("box"+(parseInt(id.substring(3))+i)).className='cardselected';
                    }
					else
                    { 
                    	if (document.getElementById("box"+(parseInt(id.substring(3))+i)).className=='cardselectedultrarange')
                        { 
                        	document.getElementById("box"+(parseInt(id.substring(3))+i)).className='cardselectedrange';
                        }
						else
                        { 
                        	document.getElementById("box"+(parseInt(id.substring(3))+i)).className='card';
                        }
                    }
                }
            }
        }
    }
	else
    { 
    	el.className='rangeselectedover';
		if (parseInt(id.substring(3))<14)
        { 
        	for (i=1; i<5; i=i+1)
            { 
            	if (document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className=='rangeselected')
                { 
                	document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className='ultrarange';
                }
				else
                { 
                	if (document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className=='cardselected')
                    { 
                    	document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className='cardselectedrange';
                    }
					else
                    { 
                    	if (document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className=='cardselectedrange')
                        { 
                        	document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className='cardselectedultrarange';
                        }
						else
                        { 
                        	document.getElementById("box"+(parseInt(id.substring(3))+i*14)).className='rangeselected';
                        }
                    }
                }
            } // forloop              
        }
		else
        { 
        	for (i=1; i<14; i=i+1)
            { 
            	if (document.getElementById("box"+(parseInt(id.substring(3))+i)).className=='rangeselected')
                { 
                	document.getElementById("box"+(parseInt(id.substring(3))+i)).className='ultrarange';
                }
				else
                { 
                	if (document.getElementById("box"+(parseInt(id.substring(3))+i)).className=='cardselected')
                    { 
                    	document.getElementById("box"+(parseInt(id.substring(3))+i)).className='cardselectedrange';
                    }
					else
                    { 
                    	if (document.getElementById("box"+(parseInt(id.substring(3))+i)).className=='cardselectedrange')
                        { 
                        	document.getElementById("box"+(parseInt(id.substring(3))+i)).className='cardselectedultrarange';
                        }
						else
                        { 
                        	document.getElementById("box"+(parseInt(id.substring(3))+i)).className='rangeselected';
                        }
                    }
                }
            } //for                 
        } //id<14
    } //rangeselectedover   
	feedback();

	if (cards>4)
    { 
    	calculateodds();
    }
}





function reset()
{ 
	cards=0;
	for (i=1; i<70; i=i+1)
    { 
    	document.getElementById("box"+i).className='card';
    }
	var riverfield=document.getElementById("riverfield");
	var turnfield=document.getElementById("turnfield");
	riverfield.value="";
	turnfield.value="";
	feedback();
}



