﻿// JScript File
// Author: S Miller
// Date: Feb. 6, 2007
// This code is written as one of development projects 
// for dbsoup.org and smifzone.org from the scratch. 
// For any reason if you have to use any part of this
// coding, please get a permission from 
// webadmin@smifzone.org or dbsoup@dbsoup.org.
//
// Content: Sudoku Game
//
var RowDup_found = false;
var ColDup_found = false;
var GridDup_found = false;
var gameCompleted = false;
var dupMarker = "solid 3px #d82d2d";
var cleanMarker = "solid 0px";
var rOrder = -1;
var cOrder = -1;
var clickedBox = "";

var mySudokuBox = new Array(9);
var box1Temp = new Array(9);
var freqBase = new Array(9);
var freqOfGame = new Array(9);

freqBase = [7, 4, 5, 7, 6, 5, 4, 7, 5];

mySudokuBox[0] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
mySudokuBox[1] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
mySudokuBox[2] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
mySudokuBox[3] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
mySudokuBox[4] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
mySudokuBox[5] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
mySudokuBox[6] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
mySudokuBox[7] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
mySudokuBox[8] = [0, 0, 0, 0, 0, 0, 0, 0, 0];


var firstMove = false;


function init_Sudoku()
{

  document.getElementById('time1').value = "";
  document.getElementById('time2').value = "";
  document.getElementById('time3').value = "";
  document.getElementById('Text1').value = "";
  document.getElementById('Text2').value = "Welcome & Have Fun!";

  random_SeedBox();
  build_SudokuBoxA();
  build_SudokuBoxB();
  build_SudokuBoxC();
  get_Frequency();

  DisplayBox123();
  DisplayBox456();
  DisplayBox789();
    
  firstMove = false;

  this.focus();
}


function get_Frequency()
{
var i, k, fValue;
var str = "";


  fValue = 0;
  k = 0;
  for(i=0;i<9;i++){
    k = box1Temp[i]-1;//check this out
    fValue = freqBase[k];
    freqOfGame[i] = fValue;
  }
  
  for(i=0;i<9;i++){
    k = freqOfGame[i];
    str = str + k;
    blank_Boxes(i, k);  
  }
    
}


function blank_Boxes(a, b)
{
var i, j, k, count, p, rdm;
var t = b;
var dup = false;
var tempA = new Array(t);
var rowPos = a;
var colPos;

  t = b;
  count = 0;
  while (count < t)
  {
    dup = false;
    rdm = Math.floor(Math.random()*10);
    if (rdm == 0)
        rdm = 1;
    for(j=0;((j<t) && (dup==false));j++){
      if (tempA[j] == rdm)
        dup = true;
    }
    if (dup == false)
    {
      tempA[count] = rdm;
      count++;
    } 
  }
 
  //box1
  if (rowPos == 0){
    for(i=0;i<t;i++)
    {
      k = tempA[i];
      if ((k>0) && (k<4)){
        p = 0;
        colPos = k - 1 ;
      }
      else if ((k>=4) && (k<7)){
        p = 1;
        colPos = k - 4;
      }
      else {
        p = 2;
        colPos = k - 7;
      }
      mySudokuBox[p][colPos] = 0;
    }
  }
  
  //box2
  if (rowPos == 1){
    for(i=0;i<t;i++)
    {
      k = tempA[i];
      if ((k>0) && (k<4)){
        p = 0;
        colPos = k + 2;
      }
      else if ((k>=4) && (k<7)){
        p = 1;
        colPos = k - 1;
      }
      else {
        p = 2;
        colPos = k - 4;
      }
      mySudokuBox[p][colPos] = 0;
    }
  }
  
  //box3
  if (rowPos == 2){
    for(i=0;i<t;i++)
    {
      k = tempA[i];
      if ((k>0) && (k<4)){
        p = 0;
        colPos = k + 5;
      }
      else if ((k>=4) && (k<7)){
        p = 1;
        colPos = k + 2;
      }
      else {
        p = 2;
        colPos = k - 1;
      }
      mySudokuBox[p][colPos] = 0;
    }
  }
  
  //box4
  if (rowPos == 3){
    for(i=0;i<t;i++)
    {
      k = tempA[i];
      if ((k>0) && (k<4)){
        p = 3;
        colPos = k - 1;
      }
      else if ((k>=4) && (k<7)){
        p = 4;
        colPos = k - 4;
      }
      else {
        p = 5;
        colPos = k - 7;
      }
      mySudokuBox[p][colPos] = 0;
    }
  }
  
  //box5
  if (rowPos == 4){
    for(i=0;i<t;i++)
    {
      k = tempA[i];
      if ((k>0) && (k<4)){
        p = 3;
        colPos = k + 2;
      }
      else if ((k>=4) && (k<7)){
        p = 4;
        colPos = k - 1;
      }
      else {
        p = 5;
        colPos = k - 4;
      }
      mySudokuBox[p][colPos] = 0;
    }
  }
  
  //box6
  if (rowPos == 5){
    for(i=0;i<t;i++)
    {
      k = tempA[i];
      if ((k>0) && (k<4)){
        p = 3;
        colPos = k + 5;
      }
      else if ((k>=4) && (k<7)){
        p = 4;
        colPos = k + 2;
      }
      else {
        p = 5;
        colPos = k - 1;
      }
      mySudokuBox[p][colPos] = 0;
    }
  }
  
  //box7
  if (rowPos == 6){
    for(i=0;i<t;i++)
    {
      k = tempA[i];
      if ((k>0) && (k<4)){
        p = 6;
        colPos = k - 1;
      }
      else if ((k>=4) && (k<7)){
        p = 7;
        colPos = k - 4;
      }
      else {
        p = 8;
        colPos = k - 7;
      }
      mySudokuBox[p][colPos] = 0;
    }
  }
  
  //box8
  if (rowPos == 7){
    for(i=0;i<t;i++)
    {
      k = tempA[i];
      if ((k>0) && (k<4)){
        p = 6;
        colPos = k + 2;
      }
      else if ((k>=4) && (k<7)){
        p = 7;
        colPos = k - 1;
      }
      else {
        p = 8;
        colPos = k - 4;
      }
      mySudokuBox[p][colPos] = 0;
    }
  }
  
  //box9  
  if (rowPos == 8){
    for(i=0;i<t;i++)
    {
      k = tempA[i];
      if ((k>0) && (k<4)){
        p = 6;
        colPos = k + 5;
      }
      else if ((k>=4) && (k<7)){
        p = 7;
        colPos = k + 2;
      }
      else {
        p = 8;
        colPos = k - 1;
      }
      mySudokuBox[p][colPos] = 0;
    }
  }
  
  
}



function random_SeedBox()
{
var i, j, k, rdm, count;
var  dup = false;
var tempArr = new Array(9);

   count = 0;
   while (count < 9)
   {
       dup = false;
       rdm = Math.floor(Math.random()*10);
       if (rdm == 0)
          rdm = 1;
       for (j = 0; ((j < 9) && (dup == false)); j++)
       {
          if (tempArr[j] == rdm)
             dup = true;
       }
       if (dup == false)
       {
          tempArr[count] = rdm;
          box1Temp[count] = rdm;
          count++;
       }
  }

}
    
    
function build_SudokuBoxA()
{
var i, j, k, count;

    //1st
    for (i = 0; i < 9; i++)
    {
       k = box1Temp[i];
       mySudokuBox[0][i] = k;
    }

        //2nd
    count = 0;
    for (i = 3; i < 9; i++)
    {
       k = box1Temp[i];
       mySudokuBox[1][count] = k;
       count++;
    }

    count = 6;
    for (i = 0; i < 3; i++)
    {
       k = box1Temp[i];
       mySudokuBox[1][count] = k;
       count++;
    }

        //
        //3rd row
        //
    count = 0;
    for (i = 6; i < 9; i++)
    {
        k = box1Temp[i];
        mySudokuBox[2][count] = k;
        count++;
    }

    //count = 3;
    for (i = 0; i < 3; i++)
    {
        k = box1Temp[i];
        mySudokuBox[2][count] = k;
        count++;
    }

    //count = 6;
    for (i = 3; i < 6; i++)
    {
        k = box1Temp[i];
        mySudokuBox[2][count] = k;
        count++;
    }

}


function build_SudokuBoxB()
{
var i, j, k, m, count;

        //box1
    count = 3;
    for (i = 2; i < 9; i = i + 3)
    {
       k = box1Temp[i];
       mySudokuBox[count][0] = k;
       count++;
    }

    count = 3;
    for (i = 0; i < 7; i = i + 3)
    {
       k = box1Temp[i];
       mySudokuBox[count][1] = k;
       count++;
    }

    count = 3;
    for (i = 1; i < 8; i = i + 3)
    {
        k = box1Temp[i];
        mySudokuBox[count][2] = k;
        count++;
    }

        //box2
    count = 3;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][5];
        mySudokuBox[count][3] = k;
        count++;
    }

    count = 3;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][3];
        mySudokuBox[count][4] = k;
        count++;
    }

    count = 3;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][4];
        mySudokuBox[count][5] = k;
        count++;
    }

        //box3

    count = 3;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][8];
        mySudokuBox[count][6] = k;
        count++;
    }

    count = 3;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][6];
        mySudokuBox[count][7] = k;
        count++;
    }

    count = 3;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][7];
        mySudokuBox[count][8] = k;
        count++;
    }

}


function build_SudokuBoxC()
{
var i, j, m, k, count;

        //box1
    count = 6;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][1];
        mySudokuBox[count][0] = k;
        count++;
    }

    count = 6;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][2];
        mySudokuBox[count][1] = k;
        count++;
    }

    count = 6;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][0];
        mySudokuBox[count][2] = k;
        count++;
    }

        //box2

    count = 6;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][4];
        mySudokuBox[count][3] = k;
        count++;
    }

    count = 6;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][5];
        mySudokuBox[count][4] = k;
        count++;
    }

    count = 6;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][3];
        mySudokuBox[count][5] = k;
        count++;
    }

        //box3

    count = 6;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][7];
        mySudokuBox[count][6] = k;
        count++;
    }

    count = 6;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][8];
        mySudokuBox[count][7] = k;
        count++;
    }

    count = 6;
    for (i = 0; i < 3; i++)
    {
        k = mySudokuBox[i][6];
        mySudokuBox[count][8] = k;
        count++;
    }

}    


function DisplayBox123()
{
var i, j, k;
    
  k = 0;  
  for(i=0;i<3;i++){
    for(j=0;j<3;j++){
      k = k + 1;
      if (mySudokuBox[i][j] != 0){
        document.getElementById("txt0" + k).value = mySudokuBox[i][j];
        document.getElementById("txt0" + k).style.color = "#9f9fb0";
        document.getElementById("txt0" + k).readOnly = true;
      }
    }  
  }
        
  k = 0;  
  for(i=0;i<3;i++){
    for(j=3;j<6;j++){
      k = k + 1;
      if (mySudokuBox[i][j] != 0){
        document.getElementById("txt1" + k).value = mySudokuBox[i][j];
        document.getElementById("txt1" + k).style.color = "#9f9fb0";
        document.getElementById("txt1" + k).readOnly = true;
      }
    }  
  }

  k = 0;  
  for(i=0;i<3;i++){
    for(j=6;j<9;j++){
      k = k + 1;
      if (mySudokuBox[i][j] != 0){
        document.getElementById("txt2" + k).value = mySudokuBox[i][j];
        document.getElementById("txt2" + k).style.color = "#9f9fb0";
        document.getElementById("txt2" + k).readOnly = true;
      }
    }          
  }    

}



function DisplayBox456()
{
var i, j, k;
    
  k = 0;  
  for(i=3;i<6;i++){
    for(j=0;j<3;j++){
      k = k + 1;
      if (mySudokuBox[i][j] != 0){
        document.getElementById("txt3" + k).value = mySudokuBox[i][j];
        document.getElementById("txt3" + k).style.color = "#9f9fb0";
        document.getElementById("txt3" + k).readOnly = true;
      }
    }  
  }
        
  k = 0;  
  for(i=3;i<6;i++){
    for(j=3;j<6;j++){
      k = k + 1;
      if (mySudokuBox[i][j] != 0){
        document.getElementById("txt4" + k).value = mySudokuBox[i][j];
        document.getElementById("txt4" + k).style.color = "#9f9fb0";
        document.getElementById("txt4" + k).readOnly = true;
      }
    }  
  }

  k = 0;  
  for(i=3;i<6;i++){
    for(j=6;j<9;j++){
      k = k + 1;
      if (mySudokuBox[i][j] != 0){
        document.getElementById("txt5" + k).value = mySudokuBox[i][j];
        document.getElementById("txt5" + k).style.color = "#9f9fb0";
        document.getElementById("txt5" + k).readOnly = true;
      }
    }          
  }    

}


function DisplayBox789()
{
var i, j, k;
    
  k = 0;  
  for(i=6;i<9;i++){
    for(j=0;j<3;j++){
      k = k + 1;
      if (mySudokuBox[i][j] != 0){
        document.getElementById("txt6" + k).value = mySudokuBox[i][j];
        document.getElementById("txt6" + k).style.color = "#9f9fb0";
        document.getElementById("txt6" + k).readOnly = true;
      }
    }  
  }
        
  k = 0;  
  for(i=6;i<9;i++){
    for(j=3;j<6;j++){
      k = k + 1;
      if (mySudokuBox[i][j] != 0){
        document.getElementById("txt7" + k).value = mySudokuBox[i][j];
        document.getElementById("txt7" + k).style.color = "#9f9fb0";
        document.getElementById("txt7" + k).readOnly = true;
      }
    }  
  }

  k = 0;  
  for(i=6;i<9;i++){
    for(j=6;j<9;j++){
      k = k + 1;
      if (mySudokuBox[i][j] != 0){
        document.getElementById("txt8" + k).value = mySudokuBox[i][j];
        document.getElementById("txt8" + k).style.color = "#9f9fb0";
        document.getElementById("txt8" + k).readOnly = true;
      }
    }          
  }    

}



function newGame()
{
var j;

  box1Temp = [0, 0, 0, 0, 0, 0, 0, 0, 0];
  freqBase = [7, 4, 5, 7, 6, 5, 4, 7, 5];

  mySudokuBox[0] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
  mySudokuBox[1] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
  mySudokuBox[2] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
  mySudokuBox[3] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
  mySudokuBox[4] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
  mySudokuBox[5] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
  mySudokuBox[6] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
  mySudokuBox[7] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
  mySudokuBox[8] = [0, 0, 0, 0, 0, 0, 0, 0, 0];

  RowDup_found = false;
  ColDup_found = false;
  GridDup_found = false;
  gameCompleted = false;
  rOrder = -1;
  cOrder = -1;
  clickedBox = "";
  firstMove = false;

for(j=1;j<10;j++){
  document.getElementById("txt0"+j).value = "";
  document.getElementById("txt1"+j).value = "";
  document.getElementById("txt2"+j).value = "";
  document.getElementById("txt3"+j).value = "";
  document.getElementById("txt4"+j).value = "";
  document.getElementById("txt5"+j).value = "";
  document.getElementById("txt6"+j).value = "";
  document.getElementById("txt7"+j).value = "";
  document.getElementById("txt8"+j).value = "";
  document.getElementById("txt0"+j).readOnly = false;
  document.getElementById("txt1"+j).readOnly = false;
  document.getElementById("txt2"+j).readOnly = false;
  document.getElementById("txt3"+j).readOnly = false;
  document.getElementById("txt4"+j).readOnly = false;
  document.getElementById("txt5"+j).readOnly = false;
  document.getElementById("txt6"+j).readOnly = false;
  document.getElementById("txt7"+j).readOnly = false;
  document.getElementById("txt8"+j).readOnly = false;
  document.getElementById("txt0"+j).style.border = cleanMarker;
  document.getElementById("txt1"+j).style.border = cleanMarker;
  document.getElementById("txt2"+j).style.border = cleanMarker;
  document.getElementById("txt3"+j).style.border = cleanMarker;
  document.getElementById("txt4"+j).style.border = cleanMarker;
  document.getElementById("txt5"+j).style.border = cleanMarker;
  document.getElementById("txt6"+j).style.border = cleanMarker;
  document.getElementById("txt7"+j).style.border = cleanMarker;
  document.getElementById("txt8"+j).style.border = cleanMarker;
}

init_Sudoku();

}



//onmouseover
function focusB(temp)
{

  if (document.getElementById(temp).readOnly != true)
    document.getElementById(temp).style.backgroundImage = "url(Images/sudokuInputB.gif)";

}

//onmouseout
function Bout(temp)
{
  document.getElementById(temp).style.backgroundImage = "";

}

//onkeyup
function noFocus(temp)
{
var rV="", txtValue=document.getElementById(temp).value;
var tempS = "";

  if (gameCompleted == true)
    return;
    
  if ((!isNaN(parseInt(txtValue))) && (txtValue != "0"))
  {
    if (gameCompleted == false){
      document.getElementById('Text1').style.color = "Green";
      document.getElementById('Text1').value = "";
      //clickedBox = temp;

      if (firstMove == false){
        firstMove = true;
        startTiming();
      }
  
     //input
      rV = temp.substr(3,2);

      check_Duplicates(rV, txtValue);
  
      if ((RowDup_found == false) && (ColDup_found == false) && (GridDup_found == false))
      {
        //
        mySudokuBox[rOrder][cOrder] = parseInt(txtValue);
        chekIfCompleted();
       
      }
  
      if (gameCompleted == true){
        disableBox();
        this.focus();
        return;
      }
    }
    else{
      this.focus();
      return;
    }
  }
  else
  {
    document.getElementById('Text1').style.color = "Red";
    document.getElementById('Text1').value = "Only Valid Input Value: 1 - 9";
  
  }

  
  this.focus();
  
}


function disableBox(){

var j;

for(j=1;j<10;j++){
  document.getElementById("txt0"+j).readOnly = true;
  document.getElementById("txt1"+j).readOnly = true;
  document.getElementById("txt2"+j).readOnly = true;
  document.getElementById("txt3"+j).readOnly = true;
  document.getElementById("txt4"+j).readOnly = true;
  document.getElementById("txt5"+j).readOnly = true;
  document.getElementById("txt6"+j).readOnly = true;
  document.getElementById("txt7"+j).readOnly = true;
  document.getElementById("txt8"+j).readOnly = true;
}
  
}




function chekIfCompleted()
{
var i, j, count;
  
  count = 0;
  for(i=0;i<9;i++){
    for(j=0;j<9;j++){
      if (mySudokuBox[i][j] == 0){
        count++;
      }
    }
  }
  
  if (count == 0){
    if ((IsRowCompleted == true) && (IsColumnCompleted == true)){
      endTiming();
      document.getElementById('Text1').value = "Congratulations! You did it!";
      gameCompleted = true;
      return;
    }
    else
    {
      document.getElementById('Text1').value = "Correct Duplicates!!!";
      return;
    }
  }

}


function IsRowCompleted(){

var count = 0;
var k = 0;
var dupFound = false;


for(i=0;i<9;i++){
  count = 0;
  k = i + 1;
  for(j=0;((j<9) && (dupFound == false));j++){
    if (k == mySudokuBox[i][j])
      count++;
  }
  if ((count == 0) || (count > 1)){
    dupFound = true;
  }
}

if (dupFound == false)
  return true;
else
  return false;

}


function IsColumnCompleted(){

var count = 0;
var k = 0;
var dupFound = false;


for(i=0;i<9;i++){
  count = 0;
  k = i + 1;
  for(j=0;((j<9) && (dupFound == false));j++){
    if (k == mySudokuBox[j][i])
      count++;
  }
  if ((count == 0) || (count > 1)){
    dupFound = true;
  }
}

if (dupFound == false)
  return true;
else
  return false;


}




function startTiming(){

var d = new Date();
var s = "";

dt1 = d.getDate();
hr1 = d.getHours();
mt1 = d.getMinutes();
sd1 = d.getSeconds();

if (hr1 == 0)
  s = "00" + hr1 + ":";
else if ((hr1 > 0) && (hr1 < 10))
  s = "0" + hr1 + ":";
else
  s = hr1 + ":";
 
if (mt1 == 0)
  s = s + "00" + mt1 + ":";
else if ((mt1 > 0) && (mt1 < 10))
  s = s + "0" + mt1 + ":";
else
  s = s + mt1 + ":";

if (sd1 == 0)
  s = s + "00" + sd1;
else if ((sd1 > 0) && (sd1 < 10))
  s = s + "0" + sd1;
else
  s = s + sd1;
 

document.getElementById('time1').value = "Started At:  " + s;
  
firstMove = true;

}



function endTiming(){

var d = new Date();
var s = "";

dt2 = d.getDate();
hr2 = d.getHours();
mt2 = d.getMinutes();
sd2 = d.getSeconds();

if (hr2 == 0)
  s = "00" + hr2 + ":";
else if ((hr2 > 0) && (hr2 < 10))
  s = "0" + hr2 + ":";
else
  s = hr2 + ":";
 
if (mt2 == 0)
  s = s + "00" + mt2 + ":";
else if ((mt2 > 0) && (mt2 < 10))
  s = s + "0" + mt2 + ":";
else
  s = s + mt2 + ":";

if (sd2 == 0)
  s = s + "00" + sd2;
else if ((sd2 > 0) && (sd2 < 10))
  s = s + "0" + sd2;
else
  s = s + sd2;
 

document.getElementById('time2').value = "Ended At:  " + s;

computeTime();  

}


function computeTime(){

var s, m, h;
var timeDif = 0;
var st = "";

if (sd2 >= sd1)
  s = sd2 - sd1;
else {
  mt2 = mt2 - 1;
  s = 60 + sd2 - sd1;
}

if (mt2 >= mt1)
  m = mt2 - mt1;
else {
  hr2 = hr2 - 1;
  m = 60 + mt2 - mt1;
}

if (hr2 >= hr1)
  h = hr2 - hr1;
else {
  dt2 = dt2 - 1;
  h = 24 + hr2 - hr1;
}
  
if (h > 0)
  st = h + " hour ";
if (m > 0)
  st = st + m + " minutes ";
if (s > 0)
  st = st + s + " seconds ";
  
document.getElementById('time3').value = st + " to finish!";

}



function check_Duplicates(rcPos, tValue)
{

var i, j, k, t, num, count;
var rValue = parseInt(rcPos);
var rN = rcPos.substr(0,1);
var cN = rcPos.substr(1,1);
var colPos=0;
var r = parseInt(rN);
var c = parseInt(cN);


if ((ColDup_found == false) && (GridDup_found == false)){

  if ((rN == "0") || (rN == "1") || (rN == "2")){
    if ((cN == "1") || (cN == "2") || (cN == "3")){
      rOrder = 0;
      
      if (rN == "0")
        cOrder = c - 1;
      if (rN == "1")
        cOrder = c + 2;
      if (rN == "2")
        cOrder = c + 5;
        
      check_Row0(tValue);
    }
    if ((cN == "4") || (cN == "5") || (cN == "6")){
      rOrder = 1;     
      
      if (rN == "0")
        cOrder = c - 4;
      if (rN == "1")
        cOrder = c - 1;
      if (rN == "2")
        cOrder = c + 2;
      
      check_Row1(tValue);
    }
    if ((cN == "7") || (cN == "8") || (cN == "9")){
      rOrder = 2;    
      
      if (rN == "0")
        cOrder = c - 7;
      if (rN == "1")
        cOrder = c - 4;
      if (rN == "2")
        cOrder = c - 1;
      
      check_Row2(tValue);
    }      
  }

  if ((rN == "3") || (rN == "4") || (rN == "5")){
    if ((cN == "1") || (cN == "2") || (cN == "3")){
      rOrder = 3;

      if (rN == "3")
        cOrder = c - 1;
      if (rN == "4")
        cOrder = c + 2;
      if (rN == "5")
        cOrder = c + 5;//////

      check_Row3(tValue);
    }
    if ((cN == "4") || (cN == "5") || (cN == "6")){
      rOrder = 4;
      if (rN == "3")
        cOrder = c - 4;
      if (rN == "4")
        cOrder = c - 1;
      if (rN == "5")
        cOrder = c + 2;

      check_Row4(tValue);
    }
    if ((cN == "7") || (cN == "8") || (cN == "9")){
      rOrder = 5;

      if (rN == "3")
        cOrder = c - 7;
      if (rN == "4")
        cOrder = c - 4;
      if (rN == "5")
        cOrder = c - 1;
      check_Row5(tValue);
    }
  }

  if ((rN == "6") || (rN == "7") || (rN == "8")){
    if ((cN == "1") || (cN == "2") || (cN == "3")){
      rOrder = 6;
      
      if (rN == "6")
        cOrder = c - 1;
      if (rN == "7")
        cOrder = c + 2;
      if (rN == "8")
        cOrder = c + 5;

      check_Row6(tValue);
    }
    if ((cN == "4") || (cN == "5") || (cN == "6")){
      rOrder = 7;

      if (rN == "6")
        cOrder = c - 4;
      if (rN == "7")
        cOrder = c - 1;
      if (rN == "8")
        cOrder = c + 2;

      check_Row7(tValue);
    }
    if ((cN == "7") || (cN == "8") || (cN == "9")){
      rOrder = 8;

      if (rN == "6")
        cOrder = c - 7;
      if (rN == "7")
        cOrder = c - 4;
      if (rN == "8")
        cOrder = c - 1;

      check_Row8(tValue);
    }
  }
      
}

//
//Column Checking...
if ((RowDup_found == false) && (GridDup_found == false)){

  if ((rN == "0") || (rN == "1") || (rN == "2")){
     if ((cN == "1") || (cN == "2") || (cN == "3"))
       rOrder = 0;
     if ((cN == "4") || (cN == "5") || (cN == "6"))
       rOrder = 1;
     if ((cN == "7") || (cN == "8") || (cN == "9"))
       rOrder = 2;
  }
  if ((rN == "3") || (rN == "4") || (rN == "5")){
     if ((cN == "1") || (cN == "2") || (cN == "3"))
       rOrder = 3;
     if ((cN == "4") || (cN == "5") || (cN == "6"))
       rOrder = 4;
     if ((cN == "7") || (cN == "8") || (cN == "9"))
       rOrder = 5;
  }  
  if ((rN == "6") || (rN == "7") || (rN == "8")){
     if ((cN == "1") || (cN == "2") || (cN == "3"))
       rOrder = 6;
     if ((cN == "4") || (cN == "5") || (cN == "6"))
       rOrder = 7;
     if ((cN == "7") || (cN == "8") || (cN == "9"))
       rOrder = 8;
  }
  
  
    
  if ((rN == "0") || (rN == "3") || (rN == "6"))
  {  
    if ((cN == "1") || (cN == "4") || (cN == "7")){
      cOrder = 0;      
      check_Col0(tValue);
    }
    if ((cN == "2") || (cN == "5") || (cN == "8")){
      cOrder = 1;
      check_Col1(tValue);
    }
    if ((cN == "3") || (cN == "6") || (cN == "9")){
      cOrder = 2;
      check_Col2(tValue);
    }
  }

  if ((rN == "1") || (rN == "4") || (rN == "7"))
  {
    if ((cN == "1") || (cN == "4") || (cN == "7")){
      cOrder = 3;
      check_Col3(tValue);
    }
    if ((cN == "2") || (cN == "5") || (cN == "8")){
      cOrder = 4;
      check_Col4(tValue);
    }      
    if ((cN == "3") || (cN == "6") || (cN == "9")){
      cOrder = 5;
      check_Col5(tValue);
    }
  }

  if ((rN == "2") || (rN == "5") || (rN == "8"))
  {
    if ((cN == "1") || (cN == "4") || (cN == "7")){
      cOrder = 6;
      check_Col6(tValue);
    }
    if ((cN == "2") || (cN == "5") || (cN == "8")){
      cOrder = 7;
      check_Col7(tValue);
    }
    if ((cN == "3") || (cN == "6") || (cN == "9")){
      cOrder = 8;
      check_Col8(tValue);
    }
  }

}
      
      
//      
//Grid Checking
//      
if ((RowDup_found == false) && (ColDup_found == false)){
  
  if ((rN == "0") || (rN == "1") || (rN == "2")){
    if ((cN == "1") || (cN == "2") || (cN == "3")){
      rOrder = 0;
      
      if (rN == "0")
        cOrder = c - 1;
      if (rN == "1")
        cOrder = c + 2;
      if (rN == "2")
        cOrder = c + 5;
        
    }
    if ((cN == "4") || (cN == "5") || (cN == "6")){
      rOrder = 1;     
      
      if (rN == "0")
        cOrder = c - 4;
      if (rN == "1")
        cOrder = c - 1;
      if (rN == "2")
        cOrder = c + 2;
      
    }
    if ((cN == "7") || (cN == "8") || (cN == "9")){
      rOrder = 2;    
      
      if (rN == "0")
        cOrder = c - 7;
      if (rN == "1")
        cOrder = c - 4;
      if (rN == "2")
        cOrder = c - 1;
      
    }      
  }
    if ((rN == "3") || (rN == "4") || (rN == "5")){
    if ((cN == "1") || (cN == "2") || (cN == "3")){
      rOrder = 3;

      if (rN == "3")
        cOrder = c - 1;
      if (rN == "4")
        cOrder = c + 2;
      if (rN == "5")
        cOrder = c + 5;

    }
    if ((cN == "4") || (cN == "5") || (cN == "6")){
      rOrder = 4;
      if (rN == "3")
        cOrder = c - 4;
      if (rN == "4")
        cOrder = c - 1;
      if (rN == "5")
        cOrder = c + 2;

    }
    if ((cN == "7") || (cN == "8") || (cN == "9")){
      rOrder = 5;

      if (rN == "3")
        cOrder = c - 7;
      if (rN == "4")
        cOrder = c - 4;
      if (rN == "5")
        cOrder = c - 1;
    }
  }

  if ((rN == "6") || (rN == "7") || (rN == "8")){
    if ((cN == "1") || (cN == "2") || (cN == "3")){
      rOrder = 6;
      
      if (rN == "6")
        cOrder = c - 1;
      if (rN == "7")
        cOrder = c + 2;
      if (rN == "8")
        cOrder = c + 5;

    }
    if ((cN == "4") || (cN == "5") || (cN == "6")){
      rOrder = 7;

      if (rN == "6")
        cOrder = c - 4;
      if (rN == "7")
        cOrder = c - 1;
      if (rN == "8")
        cOrder = c + 2;

    }
    if ((cN == "7") || (cN == "8") || (cN == "9")){
      rOrder = 8;

      if (rN == "6")
        cOrder = c - 7;
      if (rN == "7")
        cOrder = c - 4;
      if (rN == "8")
        cOrder = c - 1;

    }
  }

     check_Grids(r, tValue);      
  }      
  
  
  
}




function check_Grids(rValue, tValue)
{
var i, j, k, num="", count, r;

num = tValue;
r = rValue;

if (r == 0){
  count = 0;
  for(j=1;j<10;j++){
    if (document.getElementById("txt0"+j).value == num)
      count++;
  }
  if (count > 1){
    GridDup_found = true;
    for(j=1;j<10;j++){
      if (document.getElementById("txt0"+j).value == num)
        document.getElementById("txt0"+j).style.border = dupMarker;
    }
  }
  else {
    GridDup_found = false;
    for(j=1;j<10;j++){
      document.getElementById("txt0"+j).style.border = cleanMarker;
    }
    
  } 
}


if (r == 1){
  count = 0;
  for(j=1;j<10;j++){
    if (document.getElementById("txt1"+j).value == num)
      count++;
  }
  if (count > 1){
    GridDup_found = true;
    for(j=1;j<10;j++){
      if (document.getElementById("txt1"+j).value == num)
        document.getElementById("txt1"+j).style.border = dupMarker;
    }
  }
  else {
    GridDup_found = false;
    for(j=1;j<10;j++){
      document.getElementById("txt1"+j).style.border = cleanMarker;
    }
    
  } 
}


if (r == 2){
  count = 0;
  for(j=1;j<10;j++){
    if (document.getElementById("txt2"+j).value == num)
      count++;
  }
  if (count > 1){
    GridDup_found = true;
    for(j=1;j<10;j++){
      if (document.getElementById("txt2"+j).value == num)
        document.getElementById("txt2"+j).style.border = dupMarker;
    }
  }
  else {
    GridDup_found = false;
    for(j=1;j<10;j++){
      document.getElementById("txt2"+j).style.border = cleanMarker;
    }
    
  } 
}

if (r == 3){
  count = 0;
  for(j=1;j<10;j++){
    if (document.getElementById("txt3"+j).value == num)
      count++;
  }
  if (count > 1){
    GridDup_found = true;
    for(j=1;j<10;j++){
      if (document.getElementById("txt3"+j).value == num)
        document.getElementById("txt3"+j).style.border = dupMarker;
    }
  }
  else {
    GridDup_found = false;
    for(j=1;j<10;j++){
      document.getElementById("txt3"+j).style.border = cleanMarker;
    }
    
  } 
}


if (r == 4){
  count = 0;
  for(j=1;j<10;j++){
    if (document.getElementById("txt4"+j).value == num)
      count++;
  }
  if (count > 1){
    GridDup_found = true;
    for(j=1;j<10;j++){
      if (document.getElementById("txt4"+j).value == num)
        document.getElementById("txt4"+j).style.border = dupMarker;
    }
  }
  else {
    GridDup_found = false;
    for(j=1;j<10;j++){
      document.getElementById("txt4"+j).style.border = cleanMarker;
    }
    
  } 
}


if (r == 5){
  count = 0;
  for(j=1;j<10;j++){
    if (document.getElementById("txt5"+j).value == num)
      count++;
  }
  if (count > 1){
    GridDup_found = true;
    for(j=1;j<10;j++){
      if (document.getElementById("txt5"+j).value == num)
        document.getElementById("txt5"+j).style.border = dupMarker;
    }
  }
  else {
    GridDup_found = false;
    for(j=1;j<10;j++){
      document.getElementById("txt5"+j).style.border = cleanMarker;
    }
    
  } 
}


if (r == 6){
  count = 0;
  for(j=1;j<10;j++){
    if (document.getElementById("txt6"+j).value == num)
      count++;
  }
  if (count > 1){
    GridDup_found = true;
    for(j=1;j<10;j++){
      if (document.getElementById("txt6"+j).value == num)
        document.getElementById("txt6"+j).style.border = dupMarker;
    }
  }
  else {
    GridDup_found = false;
    for(j=1;j<10;j++){
      document.getElementById("txt6"+j).style.border = cleanMarker;
    }
    
  } 
}

if (r == 7){
  count = 0;
  for(j=1;j<10;j++){
    if (document.getElementById("txt7"+j).value == num)
      count++;
  }
  if (count > 1){
    GridDup_found = true;
    for(j=1;j<10;j++){
      if (document.getElementById("txt7"+j).value == num)
        document.getElementById("txt7"+j).style.border = dupMarker;
    }
  }
  else {
    GridDup_found = false;
    for(j=1;j<10;j++){
      document.getElementById("txt7"+j).style.border = cleanMarker;
    }
    
  } 
}


if (r == 8){
  count = 0;
  for(j=1;j<10;j++){
    if (document.getElementById("txt8"+j).value == num)
      count++;
  }
  if (count > 1){
    GridDup_found = true;
    for(j=1;j<10;j++){
      if (document.getElementById("txt8"+j).value == num)
        document.getElementById("txt8"+j).style.border = dupMarker;
    }
  }
  else {
    GridDup_found = false;
    for(j=1;j<10;j++){
      document.getElementById("txt8"+j).style.border = cleanMarker;
    }
    
  } 
}

}



function check_Row8(tValue)
{
var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=7;j<10;j++){
      if (comNumber == document.getElementById("txt6"+j).value)
        count++;      
    }
    for(j=7;j<10;j++){
      if (comNumber == document.getElementById("txt7"+j).value)
        count++;  
    }    
    for(j=7;j<10;j++){
      if (comNumber == document.getElementById("txt8"+j).value)
        count++;  
    }    
    
    if (count > 1){
       for(j=7;j<10;j++){
          if (comNumber == document.getElementById("txt6"+j).value)
            document.getElementById("txt6"+j).style.border = dupMarker;
          else
            document.getElementById("txt6"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt7"+j).value)
            document.getElementById("txt7"+j).style.border = dupMarker;
          else
            document.getElementById("txt7"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt8"+j).value)
            document.getElementById("txt8"+j).style.border = dupMarker;        
          else
            document.getElementById("txt8"+j).style.border = cleanMarker;
      }
      RowDup_found = true;
    }
    else {
      for(j=7;j<10;j++){
        document.getElementById("txt6"+j).style.border = cleanMarker;
        document.getElementById("txt7"+j).style.border = cleanMarker;
        document.getElementById("txt8"+j).style.border = cleanMarker;
      }
      RowDup_found = false;
    }

}


function check_Row7(tValue)
{
var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=4;j<7;j++){
      if (comNumber == document.getElementById("txt6"+j).value)
        count++;      
    }
    for(j=4;j<7;j++){
      if (comNumber == document.getElementById("txt7"+j).value)
        count++;  
    }    
    for(j=4;j<7;j++){
      if (comNumber == document.getElementById("txt8"+j).value)
        count++;  
    }    
    
    if (count > 1){
       for(j=4;j<7;j++){
          if (comNumber == document.getElementById("txt6"+j).value)
            document.getElementById("txt6"+j).style.border = dupMarker;
          else
            document.getElementById("txt6"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt7"+j).value)
            document.getElementById("txt7"+j).style.border = dupMarker;
          else
            document.getElementById("txt7"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt8"+j).value)
            document.getElementById("txt8"+j).style.border = dupMarker;        
          else
            document.getElementById("txt8"+j).style.border = cleanMarker;
      }
      RowDup_found = true;
    }
    else {
      for(j=4;j<7;j++){
        document.getElementById("txt6"+j).style.border = cleanMarker;
        document.getElementById("txt7"+j).style.border = cleanMarker;
        document.getElementById("txt8"+j).style.border = cleanMarker;
      }
      RowDup_found = false;
    }
}

function check_Row6(tValue)
{
var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=1;j<4;j++){
      if (comNumber == document.getElementById("txt6"+j).value)
        count++;      
    }
    for(j=1;j<4;j++){
      if (comNumber == document.getElementById("txt7"+j).value)
        count++;  
    }    
    for(j=1;j<4;j++){
      if (comNumber == document.getElementById("txt8"+j).value)
        count++;  
    }    
    
    if (count > 1){
       for(j=1;j<4;j++){
          if (comNumber == document.getElementById("txt6"+j).value)
            document.getElementById("txt6"+j).style.border = dupMarker;
          else
            document.getElementById("txt6"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt7"+j).value)
            document.getElementById("txt7"+j).style.border = dupMarker;
          else
            document.getElementById("txt7"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt8"+j).value)
            document.getElementById("txt8"+j).style.border = dupMarker;        
          else
            document.getElementById("txt8"+j).style.border = cleanMarker;
      }
      RowDup_found = true;
    }
    else {
      for(j=1;j<4;j++){
        document.getElementById("txt6"+j).style.border = cleanMarker;
        document.getElementById("txt7"+j).style.border = cleanMarker;
        document.getElementById("txt8"+j).style.border = cleanMarker;
      }
      RowDup_found = false;
    }
}

function check_Row5(tValue)
{
var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=7;j<10;j++){
      if (comNumber == document.getElementById("txt3"+j).value)
        count++;      
    }
    for(j=7;j<10;j++){
      if (comNumber == document.getElementById("txt4"+j).value)
        count++;  
    }    
    for(j=7;j<10;j++){
      if (comNumber == document.getElementById("txt5"+j).value)
        count++;  
    }    
    
    if (count > 1){
       for(j=7;j<10;j++){
          if (comNumber == document.getElementById("txt3"+j).value)
            document.getElementById("txt3"+j).style.border = dupMarker;
          else
            document.getElementById("txt3"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt4"+j).value)
            document.getElementById("txt4"+j).style.border = dupMarker;
          else
            document.getElementById("txt4"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt5"+j).value)
            document.getElementById("txt5"+j).style.border = dupMarker;        
          else
            document.getElementById("txt5"+j).style.border = cleanMarker;
      }
      RowDup_found = true;
    }
    else {
      for(j=7;j<10;j++){
        document.getElementById("txt3"+j).style.border = cleanMarker;
        document.getElementById("txt4"+j).style.border = cleanMarker;
        document.getElementById("txt5"+j).style.border = cleanMarker;
      }
      RowDup_found = false;
    }
}

function check_Row4(tValue)
{
var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=4;j<7;j++){
      if (comNumber == document.getElementById("txt3"+j).value)
        count++;      
    }
    for(j=4;j<7;j++){
      if (comNumber == document.getElementById("txt4"+j).value)
        count++;  
    }    
    for(j=4;j<7;j++){
      if (comNumber == document.getElementById("txt5"+j).value)
        count++;  
    }    
    
    if (count > 1){
       for(j=4;j<7;j++){
          if (comNumber == document.getElementById("txt3"+j).value)
            document.getElementById("txt3"+j).style.border = dupMarker;
          else
            document.getElementById("txt3"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt4"+j).value)
            document.getElementById("txt4"+j).style.border = dupMarker;
          else
            document.getElementById("txt4"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt5"+j).value)
            document.getElementById("txt5"+j).style.border = dupMarker;        
          else
            document.getElementById("txt5"+j).style.border = cleanMarker;
      }
      RowDup_found = true;
    }
    else {
      for(j=4;j<7;j++){
        document.getElementById("txt3"+j).style.border = cleanMarker;
        document.getElementById("txt4"+j).style.border = cleanMarker;
        document.getElementById("txt5"+j).style.border = cleanMarker;
      }
      RowDup_found = false;
    }
}

function check_Row3(tValue)
{
var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=1;j<4;j++){
      if (comNumber == document.getElementById("txt3"+j).value)
        count++;      
    }
    for(j=1;j<4;j++){
      if (comNumber == document.getElementById("txt4"+j).value)
        count++;  
    }    
    for(j=1;j<4;j++){
      if (comNumber == document.getElementById("txt5"+j).value)
        count++;  
    }    
    
    if (count > 1){
       for(j=1;j<4;j++){
          if (comNumber == document.getElementById("txt3"+j).value)
            document.getElementById("txt3"+j).style.border = dupMarker;
          else
            document.getElementById("txt3"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt4"+j).value)
            document.getElementById("txt4"+j).style.border = dupMarker;
          else
            document.getElementById("txt4"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt5"+j).value)
            document.getElementById("txt5"+j).style.border = dupMarker;        
          else
            document.getElementById("txt5"+j).style.border = cleanMarker;
      }
      RowDup_found = true;
    }
    else {
      for(j=1;j<4;j++){
        document.getElementById("txt3"+j).style.border = cleanMarker;
        document.getElementById("txt4"+j).style.border = cleanMarker;
        document.getElementById("txt5"+j).style.border = cleanMarker;
      }
      RowDup_found = false;
    }

}

function check_Row2(tValue)
{
var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=7;j<10;j++){
      if (comNumber == document.getElementById("txt0"+j).value)
        count++;      
    }
    for(j=7;j<10;j++){
      if (comNumber == document.getElementById("txt1"+j).value)
        count++;  
    }    
    for(j=7;j<10;j++){
      if (comNumber == document.getElementById("txt2"+j).value)
        count++;  
    }    
    
    if (count > 1){
       for(j=7;j<10;j++){
          if (comNumber == document.getElementById("txt0"+j).value)
            document.getElementById("txt0"+j).style.border = dupMarker;
          else
            document.getElementById("txt0"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt1"+j).value)
            document.getElementById("txt1"+j).style.border = dupMarker;
          else
            document.getElementById("txt1"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt2"+j).value)
            document.getElementById("txt2"+j).style.border = dupMarker;        
          else
            document.getElementById("txt2"+j).style.border = cleanMarker;
      }
      RowDup_found = true;
    }
    else {
      for(j=7;j<10;j++){
        document.getElementById("txt0"+j).style.border = cleanMarker;
        document.getElementById("txt1"+j).style.border = cleanMarker;
        document.getElementById("txt2"+j).style.border = cleanMarker;
      }
      RowDup_found = false;
    }


}

function check_Row1(tValue)
{
var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=4;j<7;j++){
      if (comNumber == document.getElementById("txt0"+j).value)
        count++;      
    }
    for(j=4;j<7;j++){
      if (comNumber == document.getElementById("txt1"+j).value)
        count++;  
    }    
    for(j=4;j<7;j++){
      if (comNumber == document.getElementById("txt2"+j).value)
        count++;  
    }    
    
    if (count > 1){
       for(j=4;j<7;j++){
          if (comNumber == document.getElementById("txt0"+j).value)
            document.getElementById("txt0"+j).style.border = dupMarker;
          else
            document.getElementById("txt0"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt1"+j).value)
            document.getElementById("txt1"+j).style.border = dupMarker;
          else
            document.getElementById("txt1"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt2"+j).value)
            document.getElementById("txt2"+j).style.border = dupMarker;        
          else
            document.getElementById("txt2"+j).style.border = cleanMarker;
      }
      RowDup_found = true;
    }
    else {
      for(j=4;j<7;j++){
        document.getElementById("txt0"+j).style.border = cleanMarker;
        document.getElementById("txt1"+j).style.border = cleanMarker;
        document.getElementById("txt2"+j).style.border = cleanMarker
      }
      RowDup_found = false;
    }

}


function check_Row0(tValue){

var j, count;  
var comNumber = "";


comNumber = tValue;
 
    count = 0;
    for(j=1;j<4;j++){
      if (comNumber == document.getElementById("txt0"+j).value)
        count++;      
    }
    for(j=1;j<4;j++){
      if (comNumber == document.getElementById("txt1"+j).value)
        count++;  
    }    
    for(j=1;j<4;j++){
      if (comNumber == document.getElementById("txt2"+j).value)
        count++;  
    }    
    
    if (count > 1){
       for(j=1;j<4;j++){
          if (comNumber == document.getElementById("txt0"+j).value)
            document.getElementById("txt0"+j).style.border = dupMarker;
          else
            document.getElementById("txt0"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt1"+j).value)
            document.getElementById("txt1"+j).style.border = dupMarker;
          else
            document.getElementById("txt1"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt2"+j).value)
            document.getElementById("txt2"+j).style.border = dupMarker;        
          else
            document.getElementById("txt2"+j).style.border = cleanMarker;
      }
      RowDup_found = true;
    }
    else {
      for(j=1;j<4;j++){
        document.getElementById("txt0"+j).style.border = cleanMarker;
        document.getElementById("txt1"+j).style.border = cleanMarker;
        document.getElementById("txt2"+j).style.border = cleanMarker;
      }
      RowDup_found = false;
    }

}


function check_Col0(tValue){

var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=1;j<8;j=j+3){
      if (comNumber == document.getElementById("txt0"+j).value)
        count++;      
    }
    for(j=1;j<8;j=j+3){
      if (comNumber == document.getElementById("txt3"+j).value)
        count++;  
    }    
    for(j=1;j<8;j=j+3){
      if (comNumber == document.getElementById("txt6"+j).value)
        count++;  
    }    
    
    if (count > 1){
      ColDup_found = true;
       for(j=1;j<8;j=j+3){
          if (comNumber == document.getElementById("txt0"+j).value)
            document.getElementById("txt0"+j).style.border = dupMarker;
          else
            document.getElementById("txt0"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt3"+j).value)
            document.getElementById("txt3"+j).style.border = dupMarker;
          else
            document.getElementById("txt3"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt6"+j).value)
            document.getElementById("txt6"+j).style.border = dupMarker;        
          else
            document.getElementById("txt6"+j).style.border = cleanMarker;
      }
    }
    else {
      ColDup_found = false;
      for(j=1;j<8;j=j+3){
          document.getElementById("txt0"+j).style.border = cleanMarker;
          document.getElementById("txt3"+j).style.border = cleanMarker;
          document.getElementById("txt6"+j).style.border = cleanMarker;
      }
    }

}

function check_Col1(tValue){

var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=2;j<9;j=j+3){
      if (comNumber == document.getElementById("txt0"+j).value)
        count++;      
    }
    for(j=2;j<9;j=j+3){
      if (comNumber == document.getElementById("txt3"+j).value)
        count++;  
    }    
    for(j=2;j<9;j=j+3){
      if (comNumber == document.getElementById("txt6"+j).value)
        count++;  
    }    
    
    if (count > 1){
       ColDup_found = true;

       for(j=2;j<9;j=j+3){
          if (comNumber == document.getElementById("txt0"+j).value)
            document.getElementById("txt0"+j).style.border = dupMarker;
          else
            document.getElementById("txt0"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt3"+j).value)
            document.getElementById("txt3"+j).style.border = dupMarker;
          else
            document.getElementById("txt3"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt6"+j).value)
            document.getElementById("txt6"+j).style.border = dupMarker;        
          else
            document.getElementById("txt6"+j).style.border = cleanMarker;
      }
    }
    else {
      ColDup_found = false;
      for(j=2;j<9;j=j+3){
        document.getElementById("txt0"+j).style.border = cleanMarker;
        document.getElementById("txt3"+j).style.border = cleanMarker;
        document.getElementById("txt6"+j).style.border = cleanMarker;
      }
    }

}


function check_Col2(tValue){

var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=3;j<10;j=j+3){
      if (comNumber == document.getElementById("txt0"+j).value)
        count++;      
    }
    for(j=3;j<10;j=j+3){
      if (comNumber == document.getElementById("txt3"+j).value)
        count++;  
    }    
    for(j=3;j<10;j=j+3){
      if (comNumber == document.getElementById("txt6"+j).value)
        count++;  
    }    
    
    if (count > 1){
      ColDup_found = true;
       for(j=3;j<10;j=j+3){
          if (comNumber == document.getElementById("txt0"+j).value)
            document.getElementById("txt0"+j).style.border = dupMarker;
          else
            document.getElementById("txt0"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt3"+j).value)
            document.getElementById("txt3"+j).style.border = dupMarker;
          else
            document.getElementById("txt3"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt6"+j).value)
            document.getElementById("txt6"+j).style.border = dupMarker;        
          else
            document.getElementById("txt6"+j).style.border = cleanMarker;
      }
    }
    else {
      ColDup_found = false;
      for(j=3;j<10;j=j+3){
        document.getElementById("txt0"+j).style.border = cleanMarker;
        document.getElementById("txt3"+j).style.border = cleanMarker;
        document.getElementById("txt6"+j).style.border = cleanMarker;
      }
    }

}


function check_Col3(tValue){

var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=1;j<8;j=j+3){
      if (comNumber == document.getElementById("txt1"+j).value)
        count++;      
    }
    for(j=1;j<8;j=j+3){
      if (comNumber == document.getElementById("txt4"+j).value)
        count++;  
    }    
    for(j=1;j<8;j=j+3){
      if (comNumber == document.getElementById("txt7"+j).value)
        count++;  
    }    
    
    if (count > 1){
      ColDup_found = true;
       for(j=1;j<8;j=j+3){
          if (comNumber == document.getElementById("txt1"+j).value)
            document.getElementById("txt1"+j).style.border = dupMarker;
          else
            document.getElementById("txt1"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt4"+j).value)
            document.getElementById("txt4"+j).style.border = dupMarker;
          else
            document.getElementById("txt4"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt7"+j).value)
            document.getElementById("txt7"+j).style.border = dupMarker;        
          else
            document.getElementById("txt7"+j).style.border = cleanMarker;
      }
    }
    else {
      ColDup_found = false;
      for(j=1;j<8;j=j+3){
        document.getElementById("txt1"+j).style.border = cleanMarker;
        document.getElementById("txt4"+j).style.border = cleanMarker;
        document.getElementById("txt7"+j).style.border = cleanMarker;
      }
    }

}

function check_Col4(tValue){

var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=2;j<9;j=j+3){
      if (comNumber == document.getElementById("txt1"+j).value)
        count++;      
    }
    for(j=2;j<9;j=j+3){
      if (comNumber == document.getElementById("txt4"+j).value)
        count++;  
    }    
    for(j=2;j<9;j=j+3){
      if (comNumber == document.getElementById("txt7"+j).value)
        count++;  
    }    
    
    if (count > 1){
       ColDup_found = true;

       for(j=2;j<9;j=j+3){
          if (comNumber == document.getElementById("txt1"+j).value)
            document.getElementById("txt1"+j).style.border = dupMarker;
          else
            document.getElementById("txt1"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt4"+j).value)
            document.getElementById("txt4"+j).style.border = dupMarker;
          else
            document.getElementById("txt4"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt7"+j).value)
            document.getElementById("txt7"+j).style.border = dupMarker;        
          else
            document.getElementById("txt7"+j).style.border = cleanMarker;
      }
    }
    else {
      ColDup_found = false;
      for(j=2;j<9;j=j+3){
        document.getElementById("txt1"+j).style.border = cleanMarker;
        document.getElementById("txt4"+j).style.border = cleanMarker;
        document.getElementById("txt7"+j).style.border = cleanMarker;
      }
    }

}


function check_Col5(tValue){

var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=3;j<10;j=j+3){
      if (comNumber == document.getElementById("txt1"+j).value)
        count++;      
    }
    for(jj=3;j<10;j=j+3){
      if (comNumber == document.getElementById("txt4"+j).value)
        count++;  
    }    
    for(j=3;j<10;j=j+3){
      if (comNumber == document.getElementById("txt7"+j).value)
        count++;  
    }    
    
    if (count > 1){
      ColDup_found = true;
       for(j=3;j<10;j=j+3){
          if (comNumber == document.getElementById("txt1"+j).value)
            document.getElementById("txt1"+j).style.border = dupMarker;
          else
            document.getElementById("txt1"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt4"+j).value)
            document.getElementById("txt4"+j).style.border = dupMarker;
          else
            document.getElementById("txt4"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt7"+j).value)
            document.getElementById("txt7"+j).style.border = dupMarker;        
          else
            document.getElementById("txt7"+j).style.border = cleanMarker;
      }
    }
    else {
      ColDup_found = false;
      for(j=3;j<10;j=j+3){
        document.getElementById("txt1"+j).style.border = cleanMarker;
        document.getElementById("txt4"+j).style.border = cleanMarker;
        document.getElementById("txt7"+j).style.border = cleanMarker;
      }
    }

}

function check_Col6(tValue){

var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=1;j<8;j=j+3){
      if (comNumber == document.getElementById("txt2"+j).value)
        count++;      
    }
    for(j=1;j<8;j=j+3){
      if (comNumber == document.getElementById("txt5"+j).value)
        count++;  
    }    
    for(j=1;j<8;j=j+3){
      if (comNumber == document.getElementById("txt8"+j).value)
        count++;  
    }    
    
    if (count > 1){
      ColDup_found = true;
       for(j=1;j<8;j=j+3){
          if (comNumber == document.getElementById("txt2"+j).value)
            document.getElementById("txt2"+j).style.border = dupMarker;
          else
            document.getElementById("txt2"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt5"+j).value)
            document.getElementById("txt5"+j).style.border = dupMarker;
          else
            document.getElementById("txt5"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt8"+j).value)
            document.getElementById("txt8"+j).style.border = dupMarker;        
          else
            document.getElementById("txt8"+j).style.border = cleanMarker;
      }
    }
    else {
      ColDup_found = false;
      for(j=1;j<8;j=j+3){
        document.getElementById("txt2"+j).style.border = cleanMarker;
        document.getElementById("txt5"+j).style.border = cleanMarker;
        document.getElementById("txt8"+j).style.border = cleanMarker;
      }
    }

}

function check_Col7(tValue){

var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=2;j<9;j=j+3){
      if (comNumber == document.getElementById("txt2"+j).value)
        count++;      
    }
    for(j=2;j<9;j=j+3){
      if (comNumber == document.getElementById("txt5"+j).value)
        count++;  
    }    
    for(j=2;j<9;j=j+3){
      if (comNumber == document.getElementById("txt8"+j).value)
        count++;  
    }    
    
    if (count > 1){
      ColDup_found = true;
       for(j=2;j<9;j=j+3){
          if (comNumber == document.getElementById("txt2"+j).value)
            document.getElementById("txt2"+j).style.border = dupMarker;
          else
            document.getElementById("txt2"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt5"+j).value)
            document.getElementById("txt5"+j).style.border = dupMarker;
          else
            document.getElementById("txt5"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt8"+j).value)
            document.getElementById("txt8"+j).style.border = dupMarker;        
          else
            document.getElementById("txt8"+j).style.border = cleanMarker;
      }
    }
    else {
      ColDup_found = false;
      for(j=2;j<9;j=j+3){
        document.getElementById("txt2"+j).style.border = cleanMarker;
        document.getElementById("txt5"+j).style.border = cleanMarker;
        document.getElementById("txt8"+j).style.border = cleanMarker;
      }
    }

}


function check_Col8(tValue){

var j, count;  
var comNumber = "";

comNumber = tValue;
 
    count = 0;
    for(j=3;j<10;j=j+3){
      if (comNumber == document.getElementById("txt2"+j).value)
        count++;      
    }
    for(j=3;j<10;j=j+3){
      if (comNumber == document.getElementById("txt5"+j).value)
        count++;  
    }    
    for(j=3;j<10;j=j+3){
      if (comNumber == document.getElementById("txt8"+j).value)
        count++;  
    }    
    
    if (count > 1){
      ColDup_found = true;
       for(j=3;j<10;j=j+3){
          if (comNumber == document.getElementById("txt2"+j).value)
            document.getElementById("txt2"+j).style.border = dupMarker;
          else
            document.getElementById("txt2"+j).style.border = cleanMarker;
    
          if (comNumber == document.getElementById("txt5"+j).value)
            document.getElementById("txt5"+j).style.border = dupMarker;
          else
            document.getElementById("txt5"+j).style.border = cleanMarker;
              
          if (comNumber == document.getElementById("txt8"+j).value)
            document.getElementById("txt8"+j).style.border = dupMarker;        
          else
            document.getElementById("txt8"+j).style.border = cleanMarker;
      }
    }
    else {
      ColDup_found = false;
      for(j=3;j<10;j=j+3){
        document.getElementById("txt2"+j).style.border = cleanMarker;
        document.getElementById("txt5"+j).style.border = cleanMarker;
        document.getElementById("txt8"+j).style.border = cleanMarker;
      }
    }

}


