// JavaScript Document



 
  			// ***********************************
  			// ****** Custom Functions  **********
  			// ***********************************
  
  
 
  // =========================================================================
  // ====== Custom Tile Image Handler Function for Google Maps API  ==========	
  // ====== Images generated from GMapImageCutter Java App    ================
  // ====== All Image Tiles are 256px X 256px    =============================
  
  function customGetTileURL(a,b) {
    
  //converts tile x,y into keyhole string

     var c=Math.pow(2,b);

        var d=a.x;
        var e=a.y;
        var f="t";
        for(var g=0;g<b;g++){
            c=c/2;
            if(e<c){
                if(d<c){f+="q"}
                else{f+="r";d-=c}
            }
            else{
                if(d<c){f+="t";e-=c}
                else{f+="s";d-=c;e-=c}
            }
        }
        return url+f+".jpg"
    }
	


 
     
  // ===============================================
  // ====== Show All Request Map Objects    ========	
  
  function showAllRequest() {
 
   for (i=0; i < shapeAr.length; i++) {  
       var shapeObj = shapeAr[i];
       shapeObj.show(); 
	}
	

   
  }
   
  // ===============================================
  // ====== Hide All Request Map Objects    ========	
  
  function hideAllRequest() {
 
   for (i=0; i < shapeAr.length; i++) {  
       var shapeObj = shapeAr[i];
         shapeObj.hide();
	}
   var visChkboxObj = document.getElementById("visible");
   for(i=0; i < visChkboxObj; i++) {
	if(visChkboxObj[i].checked == true) visChkboxObj[i].checked = false;   
   }

    
  }
  
  // ===============================================
  // ====== Show/Hide Request Map Objects   ========	
  
  
  function showHideRequest(id) {
   
  var shapeObj = shapeAr[id];
  if(shapeObj.isHidden() == true) {shapeObj.show();}
  else {  shapeObj.hide(); }
    
  }
  
   // ====================================================
  // ====== Show/Hide Request Map Objects By PI   ========	
  
  function showHideGroup(reqCnt, prevGrpCnt) {

   for(i = reqCnt; i < reqCnt+prevGrpCnt;  i++) {
      
	    var shapeObj = shapeAr[i];
        if(shapeObj.isHidden() == true) {shapeObj.show();}
        else {  shapeObj.hide(); }
    }
	
	   
  }
  
    // ===============================================
  // ====== Show/Hide Request Map Objects   ========	
  
  
  function reqShowHideRequest(id) {
   
  var shapeObj = req_shapeAr[id];
  if(shapeObj.isHidden() == true) {shapeObj.show();}
  else {  shapeObj.hide();
  
  		if(req_xlylMarkerAr[id])map.removeOverlay(req_xlylMarkerAr[id]);
		if(req_xryrMarkerAr[id])map.removeOverlay(req_xryrMarkerAr[id]);
		if(req_cntrMarkerAr[id])map.removeOverlay(req_cntrMarkerAr[id]);
  
  }
    
  }
  
  
  
  
  
   function allShowHideRequest(id) {
   
  var shapeObj = all_shapeAr[id];
  if(shapeObj.isHidden() == true) {shapeObj.show();}
  else {  shapeObj.hide();
  
  		if(all_xlylMarkerAr[id])map.removeOverlay(all_xlylMarkerAr[id]);
		if(all_xryrMarkerAr[id])map.removeOverlay(all_xryrMarkerAr[id]);
		if(all_cntrMarkerAr[id])map.removeOverlay(all_cntrMarkerAr[id]);
  
  }
    
  } 
  
    // ===============================================
  // ====== Show/Hide Request Map Objects   ========	
  
/*  function showHideOldRequest(id) {
   
   
  var oldShapeObj = oldShapeAr[id];

     if(oldShapeObj.isHidden() == true) {oldShapeObj.show();}
     else {  oldShapeObj.hide(); }
    
  }
 */ 
    
	 
 
  // ======================================================================
  // ====== AJAX Function that obtains Core Section data in XML  ==========
  // ====== Utilizes Google GXML Obj from AJAX call to server    ==========
  // ====== Coordinate Data loaded to GLatLng objects for Polygons,   =====
  // ====== Circle, and Point generation in GMap API  =====================
  
/*
   function getCoreSection() {
   
    
    
   
      shapeAr = new Array();
  //    oldShapeAr = new Array();
	  measureAr = new Array();
	  reqIdNumAr = new Array();
	  shapeTypeAr = new Array();
      piSampleNumAr = new Array();
   
      var selectedMapType = map.getCurrentMapType().getName();
      map.clearOverlays()
	  var section = selectedMapType.substr(8,1); 
	  




	  
	
         // ********    CUSTOMIZED FOR CORE HOLE AND RUN    ***********
		 // ***********************************************************

		switch (hole_run)
		{
			case 'E_1':
  			  var hrTitle = "Hole E - Run 1 - Section ";
			  var tileURL = "hole_e/hole_E_run_1_sec_";
			  var gXMLURL = "E_1_";
			  sectionCnt = 8;
  			break;
			case 'E_2':
  			  var hrTitle = "Hole E - Run 2 - Section ";
			  var tileURL = "hole_e/hole_E_run_2_sec_";
			  var gXMLURL = "E_2_";
			  sectionCnt = 6;
  			break;
			case 'G_1':
  			  var hrTitle = "Hole G - Run 1 - Section ";
			  var tileURL = "hole_g/hole_G_run_1_sec_";
			  var gXMLURL = "G_1_";
			  sectionCnt = 6;
  			break;
			case 'G_2':
  			  var hrTitle = "Hole G - Run 2 - Section ";
			  var tileURL = "hole_g/hole_G_run_2_sec_";
			  var gXMLURL = "G_2_";
			  sectionCnt = 9;
  			break;
			case 'G_3':
  			  var hrTitle = "Hole G - Run 3 - Section ";
			  var tileURL = "hole_g/hole_G_run_3_sec_";
			  var gXMLURL = "G_3_";
			  sectionCnt = 2;
  			break;
			case 'G_4':
  			  var hrTitle = "Hole G - Run 4 - Section ";
			  var tileURL = "hole_g/hole_G_run_4_sec_";
			  var gXMLURL = "G_4_";
			  sectionCnt = 7;
  			break;
			case 'G_5':
  			  var hrTitle = "Hole G - Run 5 - Section ";
			  var tileURL = "hole_g/hole_G_run_5_sec_";
			  var gXMLURL = "G_5_";
			  sectionCnt = 7;
  			break;
			case 'G_6':
  			  var hrTitle = "Hole G - Run 6 - Section ";
			  var tileURL = "hole_g/hole_G_run_6_sec_";
			  var gXMLURL = "G_6_";
			  sectionCnt = 6;
  			break;
   			default:
  			  var hrTitle = "Hole E - Run 1 - Section ";
			  var tileURL = "hole_e/hole_E_run_1_sec_";
			  var gXMLURL = "E_1_";
			  sectionCnt = 8;
  			break;
        }
	
	
	  document.title = hrTitle + section;
	 
	  url = "/images/es_data_page/safod_core_data/" + tileURL + section + "_tiles/";
	  
	  var gURL = "/data/safod_core_data/" + gXMLURL + section;
	  
	  
	  
	  

		switch (section)
		{
			case '1':
  			map.setCenter(new GLatLng(0,-25.55), 2, sec_01);
  			break;
			case '2':
  			map.setCenter(new GLatLng(0,-25.55), 2, sec_02);
  			break;
			case '3':
  			map.setCenter(new GLatLng(0,-25.55), 2, sec_03);
  			break;
			case '4':
  			map.setCenter(new GLatLng(0,-25.55), 2, sec_04);
  			break;
			case '5':
  			map.setCenter(new GLatLng(0,-25.55), 2, sec_05);
  			break;
			case '6':
  			map.setCenter(new GLatLng(0,-25.55), 2, sec_06);
  			break;
			case '7':
  			map.setCenter(new GLatLng(0,-25.55), 2, sec_07);
  			break;
			case '8':
  			map.setCenter(new GLatLng(0,-25.55), 2, sec_08);
  			break;
			case '9':
  			map.setCenter(new GLatLng(0,-25.55), 2, sec_09);
  			break;
   			default:
  			map.setCenter(new GLatLng(0,-25.55), 2, sec_01);
  			break;
        }
	  
	    
	
         // ********    END CUSTOMIZATION   ***********
		 // *******************************************


	


	
      // ==============================================================
      // === Google AJAX Call to URL:  /safod_core/section_data   ======= 

		GDownloadUrl(gURL, function(data, responseCode) {
		
  		var xml = GXml.parse(data);
  		var sectionMarkers = xml.documentElement.getElementsByTagName("marker");
		
  		  for (var i = 0; i < sectionMarkers.length; i++) {
		    var xrLat = parseFloat(sectionMarkers[i].getAttribute("xrlat"));
			var yrLng = parseFloat(sectionMarkers[i].getAttribute("yrlng"));
			var xlLat = parseFloat(sectionMarkers[i].getAttribute("xllat"));
			var ylLng = parseFloat(sectionMarkers[i].getAttribute("yllng"));
			
			//var oldxrLat = parseFloat(sectionMarkers[i].getAttribute("oldxrlat"));
			//var oldyrLng = parseFloat(sectionMarkers[i].getAttribute("oldyrlng"));
			//var oldxlLat = parseFloat(sectionMarkers[i].getAttribute("oldxllat"));
			//var oldylLng = parseFloat(sectionMarkers[i].getAttribute("oldyllng"));
			

			
			var infoWin = GXml.value(sectionMarkers[i].getElementsByTagName("infowindow")[0]);
			var piNum = sectionMarkers[i].getAttribute("piNum");
		//	var modified = sectionMarkers[i].getAttribute("modified");
			var shape = sectionMarkers[i].getAttribute("shape");
		    var baseDepth = sectionMarkers[i].getAttribute("baseDepth");
			var measurement = sectionMarkers[i].getAttribute("measurement");
			var piColor	 = sectionMarkers[i].getAttribute("piColor");
			
			var tableData = GXml.value(sectionMarkers[i].getElementsByTagName("tabledata")[0]);

			measureAr.push(sectionMarkers[i].getAttribute("measurement"));
			reqIdNumAr.push(parseFloat(sectionMarkers[i].getAttribute("reqIdNum")));
			shapeTypeAr.push(sectionMarkers[i].getAttribute("shape"));
			piSampleNumAr.push(piNum);
			
		 	 
		     // ==============================================================
      		 // === Create Shape for request item by Shape Type Value ======= 
			 
		    if(shape == 'R') {
			
			    cntrMarkerAr[shapeAr.length] =  null;
			    var markerPoint = new GLatLng(yrLng, xrLat);
		
	            var rectAr =[];
	    		rectAr.push(new GLatLng(yrLng, xlLat));
	    		rectAr.push(new GLatLng(ylLng, xlLat));
	    		rectAr.push(new GLatLng(ylLng, xrLat));	  
	    		rectAr.push(new GLatLng(yrLng, xrLat));
    		    rectAr.push(new GLatLng(yrLng, xlLat));	
				
	       		drawPolygon(rectAr, piColor, infoWin, markerPoint);
				
			   
			    //var oldMarkerPoint = new GLatLng(oldyrLng, oldxrLat);
		
	           /*  var rectAr =[];
	    		 rectAr.push(new GLatLng(oldyrLng, oldxlLat));
	    		 rectAr.push(new GLatLng(oldylLng, oldxlLat));
	    		 rectAr.push(new GLatLng(oldylLng, oldxrLat));	  
	    		 rectAr.push(new GLatLng(oldyrLng, oldxrLat));
    		     rectAr.push(new GLatLng(oldyrLng, oldxlLat));	
				
	       		drawPolygon(rectAr, '#ffffff', infoWin, oldMarkerPoint, 1);
				
				*/
/*
		     }
		    else if(shape == 'C') {
  
	  			xlylMarkerAr[shapeAr.length] =  null;
      			xryrMarkerAr[shapeAr.length] =  null;
				
			    var markerPoint = new GLatLng(ylLng, xlLat);
		        drawCircle(safodMapProjection, markerPoint, 12, piColor, infoWin);
							
			   // var oldMarkerPoint = new GLatLng(oldylLng, oldxlLat);
		      //  drawCircle(safodMapProjection, oldMarkerPoint, 12, '#ffffff', infoWin, 1);
				
				
		     }
		    else{
							  
	  			xlylMarkerAr[shapeAr.length] =  null;
      			xryrMarkerAr[shapeAr.length] =  null;
				
			    var markerPoint = new GLatLng(ylLng, xlLat);
		        drawPoint(safodMapProjection, markerPoint, 8, piColor, infoWin);
				
				/*
				var oldMarkerPoint = new GLatLng(oldylLng, oldxlLat);
	           drawPoint(safodMapProjection, oldMarkerPoint, 8, '#ffffff', infoWin, 1);
			   
			   */
	/*	     }		    		
	
		 
		   // ============================================================================
           // === Create Marker for Info Window Display on Request Item Mouse Over ======= 	
           // === or Shape Mouse Click  ================================================== 	
			
		    shapeMarker[i] = markerPoint;
			markerHTML[i] = infoWin;
			
		  }
		  
		 document.getElementById('sectionData').innerHTML = tableData;
	    
  		});
		
     
	
    hideAllRequest();
		
   }

*/

  // ============================================================
  // ====== Handler for Mouse Over of Polygons and Circles  =====

  function showInfo(id) {

      map.openInfoWindowHtml(shapeMarker[id], markerHTML[id]);
	
	   
   }
   
   
   
  
  function reqShowInfo(id) {

      map.openInfoWindowHtml(req_shapeMarker[id], req_markerHTML[id]);
	
	   
   } 
   
   function resizeIE() {

     window.moveTo(0,0);
	 window.resizeTo(screen.availWidth - 2, screen.availHeight - 2);
	 window.resizeTo(screen.availWidth, screen.availHeight);
		
	}



  // ============================================================
  // ====== Polygon Construction Method  =====

  function drawPolygon(points, color, infoWin, markerPoint) {
      polObj=new GPolygon(points, color, 3, 1, color, 0.03);
      map.addOverlay(polObj);
	  
	  GEvent.addListener(polObj, "click", function() {
          map.openInfoWindowHtml(markerPoint, infoWin);
		
        });

	  return polObj;
	
   }


 // ============================================================  
  // ===== Draw a Circle with a Center GLatLng and a Radius =====
    
  function drawCircle(proj, point, radius, color, infoWin){

    var zoom = map.getZoom();
    var centerPt = proj.fromLatLngToPixel(point, zoom);
           
   	var circlePoints = new Array(); 

	with (Math) {
		for (var a = 0 ; a < 361 ; a+=10 ) {
		var aRad = a*(PI/180);
		y = centerPt.y + radius * sin(aRad)
		x = centerPt.x + radius * cos(aRad)
			
			
		var p = new GPoint(x,y);
	
	        
		circlePoints.push(proj.fromPixelToLatLng(p, map.getZoom()));
	}
		
		cirObj = new GPolygon(circlePoints,color,3,1);
		map.addOverlay(cirObj);

   
		
		GEvent.addListener(cirObj, "click", function() {
          map.openInfoWindowHtml(point, infoWin);
		  
        });
		
	    cntrMarkerAr[shapeAr.length] =  new GMarker(point, {draggable: true, bouncy: true});

		return cirObj;
	 
		

	}
  }




  // ============================================================
  // ====== Gmap Point ConstructionMethod  ==========================

  function drawPoint(proj, point, radius, color, infoWin) {
    
    var zoom = map.getZoom();
    var centerPt = proj.fromLatLngToPixel(point, zoom);
           
   	var circlePoints = new Array();

	with (Math) {
		for (var a = 0 ; a < 361 ; a+=60 ) {
		var aRad = a*(PI/180);
		y = centerPt.y + radius * sin(aRad)
		x = centerPt.x + radius * cos(aRad)
			
			
		var p = new GPoint(x,y);
	
	        
		circlePoints.push(proj.fromPixelToLatLng(p, map.getZoom()));
	}
		
		ptObj = new GPolygon(circlePoints,color,1,1,color,.41);
		map.addOverlay(ptObj);
		

			
	    GEvent.addListener(ptObj, "click", function() {
          map.openInfoWindowHtml(point, infoWin);
	
        });
		
		cntrMarkerAr[shapeAr.length] =  new GMarker(point, {draggable: true, bouncy: true});

		return ptObj;
     

	}
	
   }
   


  // ============================================================
  // ====== Polygon Construction Method  =====

  function req_drawPolygon(points, color, infoWin, markerPoint) {
	  
	  
	  var lowerleft = new GIcon(G_DEFAULT_ICON);
	  lowerleft.image = "/images/safod/ll.png";
	  
	  var upperright = new GIcon(G_DEFAULT_ICON);
	  upperright.image = "/images/safod/ur.png";
	  
	  
	  lowerleft.shadow = "/images/safod/lowerleft.png"; lowerleft.shadowSize = new GSize(26, 26)
	  upperright.shadow = "/images/safod/upperright.png"; upperright.shadowSize = new GSize(26, 26)
     
      lowerleft.iconSize = new GSize(26, 26); 
	  upperright.iconSize = new GSize(26, 26); 
	  
  
	  
      polObj=new GPolygon(points, color, 3, 1, color, 0.03);
      map.addOverlay(polObj);
	  
	  GEvent.addListener(polObj, "click", function() {
          map.openInfoWindowHtml(markerPoint, infoWin);
		
        });

	  req_xlylMarkerAr[req_shapeAr.length] =  new GMarker(points[1], {draggable: true, bouncy: true, icon: lowerleft});
      req_xryrMarkerAr[req_shapeAr.length] =  new GMarker(markerPoint, {draggable: true, bouncy: true, icon: upperright});
	  
	  return polObj;
	
   }


 // ============================================================  
  // ===== Draw a Circle with a Center GLatLng and a Radius =====
    
  function req_drawCircle(proj, point, radius, color, infoWin){

   	  var circleIcon = new GIcon(G_DEFAULT_ICON);
	  circleIcon.image = "/images/safod/cc.png";
	  
	  circleIcon.shadow = "/images/safod/circle.png"; circleIcon.shadowSize = new GSize(26, 26)
     
      circleIcon.iconSize = new GSize(26, 26); 
	
	  


    var zoom = map.getZoom();
    var centerPt = proj.fromLatLngToPixel(point, zoom);
           
   	var circlePoints = new Array(); 

	with (Math) {
		for (var a = 0 ; a < 361 ; a+=10 ) {
		var aRad = a*(PI/180);
		y = centerPt.y + radius * sin(aRad)
		x = centerPt.x + radius * cos(aRad)
			
			
		var p = new GPoint(x,y);
	
	        
		circlePoints.push(proj.fromPixelToLatLng(p, map.getZoom()));
	}
		
		cirObj = new GPolygon(circlePoints,color,3,1);
		map.addOverlay(cirObj);

   
		
		GEvent.addListener(cirObj, "click", function() {
          map.openInfoWindowHtml(point, infoWin);
        });
		
	    req_cntrMarkerAr[req_shapeAr.length] =  new GMarker(point, {draggable: true, bouncy: true, icon: circleIcon});

		return cirObj;
	 
		

	}
  }




  // ============================================================
  // ====== Gmap Point ConstructionMethod  ==========================

  function req_drawPoint(proj, point, radius, color, infoWin) {
    
	  var pointIcon = new GIcon(G_DEFAULT_ICON);
	  pointIcon.image = "/images/safod/pp.png";
	  
	  pointIcon.shadow = "/images/safod/point.png"; pointIcon.shadowSize = new GSize(26, 26)
     
      pointIcon.iconSize = new GSize(26, 26); 
	  
    var zoom = map.getZoom();
    var centerPt = proj.fromLatLngToPixel(point, zoom);
           
   	var circlePoints = new Array();

	with (Math) {
		for (var a = 0 ; a < 361 ; a+=60 ) {
		var aRad = a*(PI/180);
		y = centerPt.y + radius * sin(aRad)
		x = centerPt.x + radius * cos(aRad)
			
			
		var p = new GPoint(x,y);
	
	        
		circlePoints.push(proj.fromPixelToLatLng(p, map.getZoom()));
	}
		
		ptObj = new GPolygon(circlePoints,color,1,1,color,.41);
		map.addOverlay(ptObj);
		

			
	    GEvent.addListener(ptObj, "click", function() {
          map.openInfoWindowHtml(point, infoWin);
		
        });
		
		req_cntrMarkerAr[req_shapeAr.length] =  new GMarker(point, {draggable: true, bouncy: true, icon: pointIcon});

		return ptObj;
     

	}
	
   }
   







// Custom Functions


function userValidate(myForm) {

 	if(myForm.firstname.value.length < 2) {
  	  alert("Please enter your first name");
		myForm.firstname.focus();
		return false;
   	}
   
    if(myForm.lastname.value.length < 2) {
    	alert("Please enter your last name");
		myForm.lastname.focus();
		return false;
    }
     

	if(myForm.email.value.length < 2 || myForm.email.value.indexOf('@') == -1 || myForm.email.value.indexOf('.') == -1   ){
    	alert("Please enter a valid email address.  ");
		myForm.email.focus();
		return false;
    }

	if(myForm.address.value.length < 2) {
    	alert("Please enter your shipping address");
		myForm.address.focus();
		return false;
    }
    
	if(myForm.city.value.length < 2) {
    	alert("Please enter your shipping city");
		myForm.city.focus();
		return false;
    }
	if(myForm.state.value.length < 2) {
    	alert("Please enter your shipping state");
		myForm.state.focus();
		return false;
    }
	if(myForm.postal_code.value.length < 2) {
    	alert("Please enter your shipping postal code");
		myForm.postal.focus();
		return false;
    }
	if(myForm.phone.value.length < 2) {
    	alert("Please enter your phone number");
		myForm.phone.focus();
		return false;
    }
	if(myForm.p1.value.length < 2) {
    	alert("Please enter your password in the first password box.");
		myForm.p1.focus();
		return false;
    }
 	if(myForm.p2.value.length < 2) {
    	alert("Please enter your password in the second password box.");
		myForm.p2.focus();
		return false;
    }   
	if(myForm.p1.value != myForm.p2.value || myForm.p1.value.indexOf(myForm.p2.value) != 0) {
    	alert("The value of the first password did not match the value of the second passowrd");
		myForm.p1.value = '';
		myForm.p2.value = '';
		myForm.p1.focus();
		return false;
    }  
	  
    return true;

  }



  function userInfoConfirm(myForm) {

  var updateData = null;
    if(userValidate(myForm)) {
 
       
         var bindArgs = {
        url: "/data/safod_my_account_update",
		mimetype:   "text/plain",
        method: "POST", 
		formNode:document.getElementById('userData'),
		load: function(type,data,evt) {
		
		
		if(data.indexOf('Data Insert Failed') != 0) { document.getElementById("modalWin").innerHTML = "<div style='position: absolute; border: 5px solid #cccccc; background-color:#ffffff; top: 84px; left:66px;text-align:center; width: 869px; z-index:30000;' ><p style='position:relative; float: right; right: 42px; top: 12px; font-size: 23px; color:#cccccc; font-weight: bold'> CLOSE <img src='/images/lightbox/close.gif' style='border:2px solid #cccccc; width:18px'  onclick='return clicker();' /></p><br /><br /><br /><br /><h2 style='color:#669933; text-align: center; font: 24px/32px verdanda;'> User Data Has <br /> Been Updated Successfully! </h2><br /><br />"+data+"<br /></div> ";
		   updateData = data;
		   window.location.hash="pagetop";
		 
		   }
		 
		}
     };
	
	var requestObj = dojo.io.bind(bindArgs);
	
	
       
    }

  }





function clicker(data, header){

	var thediv=document.getElementById('displaybox');
	var modal=document.getElementById('modalWin');
	
	if(thediv.style.display == "none"){
	
		thediv.style.display = "";
		modal.style.display = "";
		
		modal.innerHTML = "<div style='position: absolute; border: 5px solid #cccccc; background-color:#ffffff; top: 84px; left:66px;text-align:center; width: 869px; z-index:30000;' ><h2 style='position: absolute; left: 73px; top: 12px;font-size:20px;'> " + header + " </h2><p style='position:relative; float: right; right: 42px; top: 12px; font-size: 23px; color:#cccccc; font-weight: bold'> CLOSE <img src='/images/lightbox/close.gif' style='border:2px solid #cccccc; width:18px'  onclick='return clicker();' /></p><br />"+data+"</div>";
	}else{
		thediv.style.display = "none";
		thediv.innerHTML = '';
		modal.style.display = "none";
		modal.innerHTML = '';
	}
	return false;
}




  function checkAccess() {
  
   
    if(edit_status.indexOf('L') == 0 || edit_status.indexOf('O') == 0) {
	   return true;
     }
	 
  } 
	 
	 
	   
	function validate(myForm) {

 	if(myForm.password.value.length < 3) {
  	  alert("Please enter your password.");
		myForm.password.focus();
		return false;
   	}
	if(myForm.username.value.length < 2 || myForm.username.value.indexOf('@') == -1 || myForm.username.value.indexOf('.') == -1   ){
    	alert("Please enter a valid email address username.  ");
		myForm.username.focus();
		return false;
    }

    return true;

  }




  function formConfirm(myForm) {

    if(validate(myForm)) {

           myForm.submit();
       
    }

  }
  
  
  
  
  function sampleValidate(myForm) {

	if(myForm.section_interval.value.indexOf('Enter In Centimeters') == 0 || myForm.section_interval.value.length < 1) {
  	  alert("Please enter a valid Interval ( ie., 22 - 33 )");
		myForm.section_interval.focus();
		return false;
   	}
	if(myForm.mass.value.indexOf('Enter in') == 0 || myForm.mass.value.length < 1) {
    	alert("Please enter a valid Estimated Mass  ( ie., 12 )  ");
		myForm.mass.focus();
		return false;
    }
	if(myForm.sample_type.options.selectedIndex == 0) {
    	alert("Please select a Sample Type. ");
		myForm.sample_type.focus();
		return false;
    }
	if(myForm.priority.options.selectedIndex == 0) {
    	alert("Please select a Priority. ");
		myForm.priority.focus();
		return false;
    }
	if(myForm.destructive[0].checked == false && myForm.destructive[1].checked == false) {
    	alert("Please specify if tests are destructive. ");
		myForm.destructive[0].focus();
		return false;
    }
    return true;

  }
  
  
  
  

function sampleConfirm(myForm) {
    
	
   if(sampleValidate(myForm)) {
   
     

   var bindArgs = {
        url: "/data/safod_sample_data_submit",
		mimetype:   "text/plain",
        method: "POST", 
		formNode:document.getElementById('sampleRequestData'),
		load: function(type,data,evt) {
		  if(data.indexOf('Data Insert Failed') != 0) { document.getElementById("request_confirm").innerHTML = ' <h2 style="color:#669933; text-align: center"> Sample Request Has <br /> Been Added Successfully! </h2> <p style="font: 21px/26px Verdana, Arial, Helvetica, sans-serif; text-align:center; margin-top:32px; font-weight:bold"><img src="/images/lightbox/loading.gif" alt="" style="margin-right:12px; margin-left: -12px" />  Sample Request ID:  ' + data + '</p><p style="font: 21px/26px Verdana, Arial, Helvetica, sans-serif; text-align:center; margin-top:32px; font-weight:bold"><span style="color:#FF0000"> * </span> Rember To Re-Select Required Fields For Next Request! </p>';
		  				   document.getElementById("request_confirm").style.visibility = 'visible';		  		  
	  				 
		   }
		  else { document.getElementById("request_confirmg").innerHTML = '<h2 style="color:#FF0000"> Sample Request Submit Failed! </h2>'; 
		  	      document.getElementById("request_confirm").style.visibility = 'visible';
				  
				  var dataForm  = document.getElementById('sampleRequestData');

      				for(i=0; i < dataForm.length; i++) {
    	  				dataForm.elements[i].disabled = '';
		  		  
	  				}

		   }
		 
		}
     };
	
	
	var requestObj = dojo.io.bind(bindArgs);
							   

    myForm.hole.options[0].selected = true;
	myForm.run.options[0].selected = true;
	myForm.coresection.options[0].selected = true;
				
	
						
	myForm.section_interval.style.color = '#cccccc'
	myForm.section_interval.value = 'Enter In Centimeters';
	myForm.mass.style.color = '#cccccc'
	myForm.mass.value = 'Enter in Grams';
	myForm.destructive[0].checked = '';
	myForm.destructive[1].checked = '';	
	myForm.priority.options[0].selected = true;
	myForm.sample_type.options[0].selected = true;

     if(document.getElementById('preload').checked == false) {
   
       
 	   dataForm.analysis_process.value = '';
	   dataForm.analysis_purpose.value = '';
       dataForm.analysis_data_types.value = '';
       dataForm.analysis_results.value = '';
	   dataForm.dimensions.value = '';
	   dataForm.special_instructions.value = '';
	   dataForm.packaging_shipping.value = '';
	   dataForm.return_mech_condition.value = '';
	   dataForm.return_chem_condition.value = '';
	  	 
	}

	
	setTimeout('document.getElementById(\'request_confirm\').style.visibility=\'hidden\'', 4000);
	setTimeout('window.location.hash="pagetop"',4200);
	
    Ext.getCmp('samplegrid').getStore().reload();
	
	 
       
    }

  }
 
 
 
 
   
   function textCounter(frmElem) {
  
     if ( frmElem.value.length > 250)  {
      frmElem.value = frmElem.value.substring( 0, 249);
      alert( 'Textarea value can only be 250 characters in length.  Truncating text to 250 characters.' );
      return false;
     }
 	
	}



  
 
 function sampleUpdateConfirm(myForm) {
    
	
   
   var bindArgs = {
        url: "/data/safod_update_request_submit",
		mimetype:   "text/plain",
        method: "POST", 
		formNode:document.getElementById('sampleRequestUpdate'),
		load: function(type,data,evt) {
		  if(data.indexOf('Data Insert Failed') != 0) { document.getElementById("update_confirm").innerHTML = ' <h2 style="color:#669933; text-align: center; font: 24px/32px verdanda;"> Sample Request Has <br /> Been Updated Successfully! </h2> <p style="font: 21px/26px Verdana, Arial, Helvetica, sans-serif; text-align:center; margin-top:32px; font-weight:bold"><img src="/images/lightbox/loading.gif" alt="" style="margin-right:12px; margin-left: -12px" />  Sample Request ID:  ' + data + '</p>';
		  				   document.getElementById("update_confirm").style.visibility = 'visible';		  		  
	  				 
		   }
		  else { document.getElementById("request_confirmg").innerHTML = '<h2 style="color:#FF0000"> Sample Request Submit Failed! </h2>'; 
		  	      document.getElementById("request_confirm").style.visibility = 'visible';
				  
				  var dataForm  = document.getElementById('sampleRequestData');

      				for(i=0; i < dataForm.length; i++) {
    	  				dataForm.elements[i].disabled = '';
		  		  
	  				}

		   }
		 
		}
     };
	
	var requestObj = dojo.io.bind(bindArgs);
	
	document.getElementById('requestUpdate').innerHTML=' ';
	setTimeout('document.getElementById(\'update_confirm\').style.visibility=\'hidden\'', 4000);
	setTimeout('window.location.hash="pagetop"',4200);
	
    Ext.getCmp('samplegrid').getStore().reload();
	
	 
       	
    

  }
	
	
	
  function  addComments( reqId, hrs, refNum, piGroup ) {
	
	 var bindArgs = {
        url: "/data/safod_add_comment/"+userId+"/"+reqId+"/"+hrs+"/"+refNum+"/"+piGroup,
		mimetype:   "text/plain",
        method: "GET", 
		load: function(type,data,evt) {
		
		 return clicker(data, 'Add Comments: ');
	
		  
		}
    };
	
	
	var requestObj = dojo.io.bind(bindArgs);
	
	
	}
	
	function  updateComments(myForm) {
	
	 var bindArgs = {
        url: "/data/safod_submit_comments",
		mimetype:   "text/plain",
        method: "POST", 
		formNode:document.getElementById('comment'),
		load: function(type,data,evt) {
		
		  document.getElementById("modalWin").innerHTML = "<div style='position: absolute; border: 5px solid #cccccc; background-color:#ffffff; top: 84px; left:66px;text-align:center; width: 869px; z-index:30000;' ><h2 style='position: absolute; left: 73px; top: 12px;font-size:20px;'> Add Comments:  </h2><p style='position:relative; float: right; right: 42px; top: 12px; font-size: 23px; color:#cccccc; font-weight: bold'> CLOSE <img src='/images/lightbox/close.gif' style='border:2px solid #cccccc; width:18px'  onclick='return clicker();' /></p><br /><br />"+data+"<br /></div> ";

		 
		   
	
	
		  
		}
    };
	
	
	var requestObj = dojo.io.bind(bindArgs);
	
	
	}
	
	
	
  function  viewComments(reqId, refNum) {
	
	 var bindArgs = {
        url: "/data/safod_view_comments/"+reqId+"/"+refNum,
		mimetype:   "text/plain",
        method: "GET", 
		load: function(type,data,evt) {
		
		 return clicker(data, 'View Comments: ');
	
		  
		}
    };
	
	
	var requestObj = dojo.io.bind(bindArgs);
	
	
	}
	
	
  function  viewAllComments(piGroupId) {
	
	 var bindArgs = {
        url: "/data/safod_view_all_comments/"+piGroupId,
		mimetype:   "text/plain",
        method: "GET", 
		load: function(type,data,evt) {
		
		 return clicker(data, 'View All Comments: ');
	
		  
		}
    };
	
	
	var requestObj = dojo.io.bind(bindArgs);
	
	
	}
	
	

	
	
	
		function  myAccount() {
	
	 var bindArgs = {
        url: "/data/safod_my_account/"+userId,
		mimetype:   "text/plain",
        method: "GET", 
		load: function(type,data,evt) {
		
		 return clicker(data, 'My Account');
	
		  
		}
    };
	
	
	var requestObj = dojo.io.bind(bindArgs);
	
	
	}
	
	
	
	
		function  myPiGroup() {
	
	 var bindArgs = {
        url: "/data/safod_my_pi_group/"+userId,
		mimetype:   "text/plain",
        method: "GET", 
		load: function(type,data,evt) {
		
		 return clicker(data, 'My PI Group');
	
		  
		}
    };
	
	
	var requestObj = dojo.io.bind(bindArgs);
	
	
	}
	
	
  function approveMember(uId, userId, fullName, memstatus)  {
  
  
   
    if(memstatus == 'E') {
  
       if( confirm ('Approve membership request with \'Edit Access\' for ' + fullName ) )  {
	   
	       var memstatus = "L";
	   
	   }
	   else {
	  
	  		if(confirm(' Deny membership request for' + fullName) ) {
				var memstatus = "D";
			}
	   }
	 
	  if(memstatus == "L" || memstatus == 'D') {
	  
	   	  var bindArgs = {
           url: "/data/approve_pi_group_member/"+uId+"/"+userId+"/"+memstatus,
		   mimetype:   "text/plain",
           method: "GET", 
		   load: function(type,data,evt) {
		
		        if(data.indexOf('Data Insert Failed') != 0) { document.getElementById("modalWin").innerHTML = "<div style='position: absolute; border: 5px solid #cccccc; background-color:#ffffff; top: 84px; left:66px;text-align:center; width: 869px; z-index:30000;' ><p style='position:relative; float: right; right: 42px; top: 12px; font-size: 23px; color:#cccccc; font-weight: bold'> CLOSE <img src='/images/lightbox/close.gif' style='border:2px solid #cccccc; width:18px'  onclick='return clicker();' /></p><br /><br /><br /><br /><h2 style='color:#669933; text-align: center; font: 24px/32px verdanda;'> User Data Has <br /> Been Updated Successfully! </h2><br /><br />"+data+"<br /></div> ";
		   updateData = data;
		   window.location.hash="pagetop";
		 
		   }
	
		  
		     }
          };
	

	     var requestObj = dojo.io.bind(bindArgs);
	 
	   }
	
   }
	
   if(memstatus == 'R') {
  
       if( confirm ('Approve membership request for ' + fullName ) )  {
	   
	      var memstatus = "M";
	   
	   }
	    else {
	  
	  		if(confirm(' Deny membership request for' + fullName) ) {
				var memstatus = "D";
			}
	   }	
	
	   	  var bindArgs = {
           url: "/data/approve_pi_group_member/"+uId+"/"+userId+"/"+memstatus,
		   mimetype:   "text/plain",
           method: "GET", 
		   load: function(type,data,evt) {
		
  					if(data.indexOf('Data Insert Failed') != 0) { document.getElementById("modalWin").innerHTML = "<div style='position: absolute; border: 5px solid #cccccc; background-color:#ffffff; top: 84px; left:66px;text-align:center; width: 869px; z-index:30000;' ><p style='position:relative; float: right; right: 42px; top: 12px; font-size: 23px; color:#cccccc; font-weight: bold'> CLOSE <img src='/images/lightbox/close.gif' style='border:2px solid #cccccc; width:18px'  onclick='return clicker();' /></p><br /><br /><br /><br /><h2 style='color:#669933; text-align: center; font: 24px/32px verdanda;'> User Data Has <br /> Been Updated Successfully! </h2><br /><br />"+data+"<br /></div> ";
		   updateData = data;
		   window.location.hash="pagetop";
		 
		   }	
		  
		  }
       };
	
	
	   var requestObj = dojo.io.bind(bindArgs);
    }	
	
	
	
  
  }
	
							   




