// Drag and Drop Functions along with puzzle order check

  var strBrowser;
  var objSelected;
  var intOffsetX;
  var intOffsetY;

  document.onmousedown=Engage;
  document.onmousemove=DragSelectedObject;
  document.onmouseup=Release;

  // Browser detection
  if(navigator.appName == "Netscape"){
    strBrowser="ns"; }
  else{
    // Assume if its not Netscape its IE
    strBrowser="ie";
  }

  function Engage(Event){
  // Select draggable object and calculate offset from mouse coordinates to the upper left
  // corner of selected object
    var obj;
    objSelected = null;

    if(strBrowser == "ie"){
      obj = window.event.srcElement;
      if(obj){
        while (obj.parentElement){
          if(obj.getAttribute('DRAGGABLE') == "1" && obj.getAttribute('PARENT') != null){
	    objSelected = document.all[obj.getAttribute('PARENT')];
            intOffsetX = window.event.offsetX;
            intOffsetY = window.event.offsetY;
            //window.status=objSelected + ": " + intOffsetX + ": " + intOffsetY;
          }
	  obj = obj.parentElement;
        }
      }
    }
    else{
      // Netscape 6
      var strElementID;
      strElementID=Event.target.id
      obj=document.getElementById(strElementID);

      if(obj){
        while(obj.parentNode){
          if(obj.getAttribute('DRAGGABLE') == "1" && obj.getAttribute('PARENT') != null){
            objSelected=document.getElementById(strElementID);
            intOffsetX=Event.clientX - obj.offsetLeft;
            intOffsetY=Event.clientY - obj.offsetTop;
            //window.status=objSelected + ": " + intOffsetX + ": " + intOffsetY + "---" + Event.clientX + ": " + Event.clientY;  
          }
          obj=obj.parentElement;
        }
      }
    }
    return false;
  }

  function DragSelectedObject(Event){
  // Drag selected object by setting style properties as the mouse moves
    if(strBrowser == "ie"){
      if(objSelected){
        objSelected.style.pixelLeft = window.event.clientX - intOffsetX;
        objSelected.style.pixelTop  = window.event.clientY - intOffsetY;
        //window.status="Drag: " + objSelected + ": " + window.event.clientX + "," + window.event.clientY;
      }
    }
    else{
      // Netscape 6
      if(objSelected){
        objSelected.style.left=Event.clientX - intOffsetX;
        objSelected.style.top=Event.clientY - intOffsetY;
        //window.status="Drag: " + objSelected + ": " + intOffsetX + ": " + intOffsetY + "---" + Event.clientX + ": " + Event.clientY + " Browser: " + strBrowser;  
      }
    }
    return false;
  }

  function Release(Event){
  // Release the selected object.
    if(objSelected){
      objSelected=null;
      //window.status="Release";
    }
  }

function CheckOrder(intStartPiece){
  // Function to check puzzle piece order

  var i;
  var objImage;
  var intInOrder;
  var intNumberOfPieces=8;
	
  intInOrder=0;
	
  for(i=intStartPiece;i<intStartPiece+intNumberOfPieces;i++){

    if(strBrowser == "ie"){
      objImage=eval('document.images.A' + i);

      if(intStartPiece==1) {
        switch(objImage.id){
          case "A1":
            if(objImage.style.pixelLeft>290 && objImage.style.pixelLeft<310 && objImage.style.pixelTop>90 && objImage.style.pixelTop<110){
	      intInOrder++;
	    }
	    break;
	  case "A2":
	    if(objImage.style.pixelLeft>419 && objImage.style.pixelLeft<439 && objImage.style.pixelTop>90 && objImage.style.pixelTop<110){
	      intInOrder++;
	    }			
	    break;			
	  case "A3":
	    if(objImage.style.pixelLeft>290 && objImage.style.pixelLeft<310 && objImage.style.pixelTop>182 && objImage.style.pixelTop<202){
	      intInOrder++;
	    }						
	    break;			
	  case "A4":
	    if(objImage.style.pixelLeft>419 && objImage.style.pixelLeft<439 && objImage.style.pixelTop>182 && objImage.style.pixelTop<202){
	      intInOrder++;
	    }						
	    break;			
	  case "A5":
	    if(objImage.style.pixelLeft>290 && objImage.style.pixelLeft<310 && objImage.style.pixelTop>274 && objImage.style.pixelTop<294){
	      intInOrder++;
	    }									
	    break;			
	  case "A6":
	    if(objImage.style.pixelLeft>419 && objImage.style.pixelLeft<439 && objImage.style.pixelTop>274 && objImage.style.pixelTop<294){
	      intInOrder++;
	    }									
	    break;						
	  case "A7":
	    if(objImage.style.pixelLeft>290 && objImage.style.pixelLeft<310 && objImage.style.pixelTop>366 && objImage.style.pixelTop<386){
	      intInOrder++;
	    }									
	    break;			
	  case "A8":
	    if(objImage.style.pixelLeft>419 && objImage.style.pixelLeft<439 && objImage.style.pixelTop>366 && objImage.style.pixelTop<386){
	      intInOrder++;
	    }									
	    break;						
        }
		
      }
      else{
        switch(objImage.id){
          case "A11":
	    if(objImage.style.pixelLeft>290 && objImage.style.pixelLeft<310 && objImage.style.pixelTop>90 && objImage.style.pixelTop<110){
	      intInOrder++;
	    }
	    break;
	  case "A12":
	    if(objImage.style.pixelLeft>419 && objImage.style.pixelLeft<439 && objImage.style.pixelTop>90 && objImage.style.pixelTop<110){
	      intInOrder++;
	    }			
	    break;			
	  case "A13":
	    if(objImage.style.pixelLeft>290 && objImage.style.pixelLeft<310 && objImage.style.pixelTop>182 && objImage.style.pixelTop<202){
	      intInOrder++;
	    }						
	    break;			
	  case "A14":
            if(objImage.style.pixelLeft>419 && objImage.style.pixelLeft<439 && objImage.style.pixelTop>182 && objImage.style.pixelTop<202){
	      intInOrder++;
	    }						
	    break;			
	  case "A15":
	    if(objImage.style.pixelLeft>290 && objImage.style.pixelLeft<310 && objImage.style.pixelTop>274 && objImage.style.pixelTop<294){
	      intInOrder++;
	    }									
	    break;			
	  case "A16":
	    if(objImage.style.pixelLeft>419 && objImage.style.pixelLeft<439 && objImage.style.pixelTop>274 && objImage.style.pixelTop<294){
	      intInOrder++;
	    }									
	    break;						
	  case "A17":
	    if(objImage.style.pixelLeft>290 && objImage.style.pixelLeft<310 && objImage.style.pixelTop>366 && objImage.style.pixelTop<386){
	      intInOrder++;
	    }									
	    break;			
	  case "A18":
	    if(objImage.style.pixelLeft>419 && objImage.style.pixelLeft<439 && objImage.style.pixelTop>366 && objImage.style.pixelTop<386){
	      intInOrder++;
	    }									
	    break;						
        }
		
      }
    }
    else{
      // Netscape 6
      objImage=document.getElementById('A'+i);

      if(intStartPiece==1) {
        switch(objImage.id){
          case "A1":
            if(parseInt(objImage.style.left)>290 && parseInt(objImage.style.left)<310 && parseInt(objImage.style.top)>90 && parseInt(objImage.style.top)<110){
	      intInOrder++;
	    }
	    break;
	  case "A2":
	    if(parseInt(objImage.style.left)>419 && parseInt(objImage.style.left)<439 && parseInt(objImage.style.top)>90 && parseInt(objImage.style.top)<110){
	      intInOrder++;
	    }			
	    break;			
	  case "A3":
	    if(parseInt(objImage.style.left)>290 && parseInt(objImage.style.left)<310 && parseInt(objImage.style.top)>182 && parseInt(objImage.style.top)<202){
	      intInOrder++;
	    }						
	    break;			
	  case "A4":
	    if(parseInt(objImage.style.left)>419 && parseInt(objImage.style.left)<439 && parseInt(objImage.style.top)>182 && parseInt(objImage.style.top)<202){
	      intInOrder++;
	    }						
	    break;			
	  case "A5":
	    if(parseInt(objImage.style.left)>290 && parseInt(objImage.style.left)<310 && parseInt(objImage.style.top)>274 && parseInt(objImage.style.top)<294){
	      intInOrder++;
	    }									
	    break;			
	  case "A6":
	    if(parseInt(objImage.style.left)>419 && parseInt(objImage.style.left)<439 && parseInt(objImage.style.top)>274 && parseInt(objImage.style.top)<294){
	      intInOrder++;
	    }									
	    break;						
	  case "A7":
	    if(parseInt(objImage.style.left)>290 && parseInt(objImage.style.left)<310 && parseInt(objImage.style.top)>366 && parseInt(objImage.style.top)<386){
	      intInOrder++;
	    }									
	    break;			
	  case "A8":
	    if(parseInt(objImage.style.left)>419 && parseInt(objImage.style.left)<439 && parseInt(objImage.style.top)>366 && parseInt(objImage.style.top)<386){
	      intInOrder++;
	    }									
	    break;						
        }
		
      }
      else{
        switch(objImage.id){
          case "A11":
	    if(parseInt(objImage.style.left)>290 && parseInt(objImage.style.left)<310 && parseInt(objImage.style.top)>90 && parseInt(objImage.style.top)<110){
	      intInOrder++;
	    }
	    break;
	  case "A12":
	    if(parseInt(objImage.style.left)>419 && parseInt(objImage.style.left)<439 && parseInt(objImage.style.top)>90 && parseInt(objImage.style.top)<110){
	      intInOrder++;
	    }			
	    break;			
	  case "A13":
	    if(parseInt(objImage.style.left)>290 && parseInt(objImage.style.left)<310 && parseInt(objImage.style.top)>182 && parseInt(objImage.style.top)<202){
	      intInOrder++;
	    }						
	    break;			
	  case "A14":
            if(parseInt(objImage.style.left)>419 && parseInt(objImage.style.left)<439 && parseInt(objImage.style.top)>182 && parseInt(objImage.style.top)<202){
	      intInOrder++;
	    }						
	    break;			
	  case "A15":
	    if(parseInt(objImage.style.left)>290 && parseInt(objImage.style.left)<310 && parseInt(objImage.style.top)>274 && parseInt(objImage.style.top)<294){
	      intInOrder++;
	    }									
	    break;			
	  case "A16":
	    if(parseInt(objImage.style.left)>419 && parseInt(objImage.style.left)<439 && parseInt(objImage.style.top)>274 && parseInt(objImage.style.top)<294){
	      intInOrder++;
	    }									
	    break;						
	  case "A17":
	    if(parseInt(objImage.style.left)>290 && parseInt(objImage.style.left)<310 && parseInt(objImage.style.top)>366 && parseInt(objImage.style.top)<386){
	      intInOrder++;
	    }									
	    break;			
	  case "A18":
	    if(parseInt(objImage.style.left)>419 && parseInt(objImage.style.left)<439 && parseInt(objImage.style.top)>366 && parseInt(objImage.style.top)<386){
	      intInOrder++;
	    }									
	    break;						
        }
		
      }

    }
	
  }		
	
  if(intInOrder==intNumberOfPieces){
    // All the pieces are in the correct order.
    document.location="picture.htm?puzzle=" + location.search.substring(8);
  }
  else{
    alert("Incorrect");
  }

}
