// JavaScript Document
var last_id = 0;
var cur_id = 0;

var last_id_teacher = 0;
var cur_id_teacher = 0;


var win_open = false;

var no_schools = false;
var teacher_selected = false;

var dirty = false;
//************************************************************************************************************
function jsf_ShowObj(obj, action)
{
	if(action == "yes")
	 {
		 	if(obj)
			{
				document.getElementById(obj).style.display='block';
			}
	 }
	else
	 {
		 	if(obj)
			{
				document.getElementById(obj).style.display='none';
			}
	 }
}

//************************************************************************************************************
function jsf_ShowObj(obj, action)
{
	if(action == "yes")
	 {
		 	if(obj)
			{
				document.getElementById(obj).style.display='block';
			}
	 }
	else
	 {
		 	if(obj)
			{
				document.getElementById(obj).style.display='none';
			}
	 }
}
//************************************************************************************************************
function fnShowAddPanel_Class(obj)
{
	var _mode = document.getElementById('ajax_mode').value;
	
	if(_mode == "district" && teacher_selected == false && obj == "new_class")
	 {
			alert('Add class is not available; you must select a teacher first');
			return;
	 }
	
	if(document.getElementById(obj).className == "new_class")
	 {
		document.getElementById(obj).className = "new_class_add";
		document.getElementById('class_data').style.display="none";
	 }
	else
	 {
		 document.getElementById(obj).className = "new_class";
		 document.getElementById('class_data').style.display="block";
	 }
}
//************************************************************************************************************
function fnShowAddPanel_District(obj)
{
	var _mode = document.getElementById('ajax_mode').value;
	

	if(document.getElementById(obj).className == "new_class")
	 {
		document.getElementById(obj).className = "new_class_add";
		document.getElementById('district_data').style.display="none";
	 }
	else
	 {
		 document.getElementById(obj).className = "new_class";
		 document.getElementById('district_data').style.display="block";
	 }
}

//************************************************************************************************************
function fnShowAddPanel_School(obj)
{
	var _mode = document.getElementById('ajax_mode').value;
	
	if(_mode == "district" && teacher_selected == false && obj == "new_class")
	 {
			alert('Add class is not available; you must select a teacher first');
			return;
	 }
	
	if(document.getElementById(obj).className == "new_school")
	 {
		document.getElementById(obj).className = "new_school_add";
		document.getElementById('school_data').style.display="none";
	 }
	else
	 {
		 document.getElementById(obj).className = "new_school";
		 document.getElementById('school_data').style.display="block";
	 }
}

//************************************************************************************************************
function fnShowAddPanel_Student(obj)
{
	var _mode = document.getElementById('ajax_mode').value;
	
	if(_mode == "district" && teacher_selected == false && obj == "new_class")
	 {
			alert('Add class is not available; you must select a teacher first');
			return;
	 }
	
	if(document.getElementById(obj).className == "new_student")
	 {
		document.getElementById(obj).className = "new_student_add";
		document.getElementById('student_list').style.display="none";
		document.getElementById('scores_data').style.display="none";
	 }
	else
	 {
		 document.getElementById(obj).className = "new_student";
		 document.getElementById('student_list').style.display="block";
		 document.getElementById('scores_data').style.display="block";
	 }
}

// ***********************************************************************************************************
function fnOpenViedo()
{
		var _url = "http://www.google.com";
		settings="toolbar=no,location=no,status=yes,member=no,scrollbars=yes,resizable=yes,width=1000,height=700,left=100,top=125";
		window.open(_url ,'Viedo',settings);
}	
// ***********************************************************************************************************
function fnPopOpen(_url)
{
		settings="toolbar=no,location=no,status=yes,member=no,scrollbars=yes,resizable=yes,width=1000,height=700,left=100,top=125";
		window.open(_url ,'ACCEL_DATA',settings);
}
// ***********************************************************************************************************
function fnValidateDate(obj)
{
	var validformat=/^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
	var returnval=false
	if (!validformat.test(obj.value))
	{
		alert("Invalid Date Format. Please correct and submit again.")
		obj.value = '';
	}
	else
	{
		//Detailed check for valid date ranges
		var monthfield=obj.value.split("/")[0]
		var dayfield=obj.value.split("/")[1]
		var yearfield=obj.value.split("/")[2]
		var dayobj = new Date(yearfield, monthfield-1, dayfield)
		
		if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
		{
			alert("Invalid Day, Month, or Year range detected. Please correct and submit again.")
			obj.value = '';
		}
	}
}
// ************************************************************************************************************
function fnClearAddNewClass()
{
		var _mode = document.getElementById('ajax_mode').value;
		if(_mode == "school")
		{
			document.getElementById('new_title').value = "";
			document.getElementById('new_grade').value = "";
			document.getElementById('new_notes').value = "";
		}
		else
		{
			document.getElementById('new_title_district').value = "";
			document.getElementById('new_grade_district').value = "";
			document.getElementById('new_notes_district').value = "";
		}
}
// ************************************************************************************************************
function fnClearAddNewSchool()
{
	document.getElementById('new_title').value = "";	
}
// ************************************************************************************************************
function fnClearAddNewDistrict()
{
	document.getElementById('district').value = "";
}	
// ************************************************************************************************************
function fnClearAddNewStudent()
{
		document.getElementById('new_student_firstname').value = "";
		document.getElementById('new_student_lastname').value = "";
		document.getElementById('new_student_dob').value = "";
	
}
// ************************************************************************************************************
function fnValidateGender(obj)
{
	var _gender = document.getElementById(obj);

	_gender.value = _gender.value.toUpperCase();
	
	if(_gender.value == "M" || _gender.value == "F")
	 {
		return true;
	 }
	 else
	 {
		 
		alert('Invalid gender code. Only M or F are allowed');
		document.getElementById(obj).value = '';
		return;
	 }
	
	
}
// ************************************************************************************************************
function fnValidateNumeric(obj, lbl)
{
	var _field	= document.getElementById(obj).value;
	if(!IsNumeric(_field))
	 {
		alert(lbl + ' must be numeric.');
		document.getElementById(obj).value = '0';
		return;
	 }
}
// ************************************************************************************************************
function fnValidateGrade(obj)
{
	var grade = document.getElementById(obj).value;
	
	if(IsNumeric(grade))
	 {
		if(grade > 12 || grade < 0)
		 {
			alert('Grades can only have values between 1 and 12');
			document.getElementById(obj).value = '';
			return;
		 }
		else
		 {
			return true;	 
		 }
		
	 }
	else
	 {
		alert('Grade must be numeric and between 1-12');
		document.getElementById(obj).value = '';
		return;
	 }
}
// ************************************************************************************************************
function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}
// ************************************************************************************************************
function fnApplyMask(str,textbox,loc,delim)
{
var locs = loc.split(',');
for (var i = 0; i <= locs.length; i++)
{
	for (var k = 0; k <= str.length; k++)
	{
	 if (k == locs[i])
	 {
	  if (str.substring(k, k+1) != delim)
	  {
	    str = str.substring(0,k) + delim + str.substring(k,str.length)
	  }
	 }
	}
 }
textbox.value = str
}
// ************************************************************************************************************
function fnDisplaySysMsg(_msg)
{
	var msg_div = '<div class="loading">' + _msg + '</div>';
	return msg_div;
}
// ************************************************************************************************************
function fnCalcBMI(_htf, _hti, _pnds, _target)
{
	/*alert(_htf);
	alert(_hti);
	alert(_pnds);
	alert(_target);*/
	
	var TotalInches = eval($("#" + _htf).val()*12) + eval($("#" + _hti).val());
	var Meters = TotalInches/39.36;
	var Kilos = $("#" + _pnds).val()/2.2;
	var Square = Meters * Meters;
	$("#" + _target).val(eval(Kilos/Square).toFixed(2));
}
// ************************************************************************************************************
function fnSelectRow(_id)
{
		if(cur_id == 0)
		 {
			cur_id = _id;
			last_id = _id;
			document.getElementById(cur_id).className = "class_selected";
		 }
		else
		 {
			last_id = cur_id;
			cur_id = _id;
			document.getElementById(last_id).className="";
			document.getElementById(cur_id).className = "class_selected";
		 }
	
}
// ************************************************************************************************************
function fnSelectRowTeacher(_id)
{
		teacher_selected=true;
		
		if(cur_id_teacher == 0)
		 {
			cur_id_teacher = _id;
			last_id_teacher = _id;
			document.getElementById(cur_id_teacher).className = "class_selected";
		 }
		else
		 {
			last_id_teacher = cur_id_teacher;
			cur_id_teacher = _id;
			document.getElementById(last_id_teacher).className="";
			document.getElementById(cur_id_teacher).className = "class_selected";
		 }
		 
	
}
// ************************************************************************************************************
function fnGetSelectedSchools(_dir)
{
  var schools = window.opener.document.getElementsByName('SCHOOLS');
  var schools_list = "";
  
  for (d = 0; d < schools.length; d++)
    {
	  if(schools[d].checked==true)
	   {
	  	  if(_dir == "on")
	   		{
	  			if(schools_list.length == 0)
		 			{
						schools_list = schools[d].value ;
		 			}
		 		else
		 			{
			 			schools_list += "|" + schools[d].value ;
		 			}
					document.getElementById('new_schools_list').value = schools_list + "|";   
			}
	  	   else
	  		{
				schools[d].checked = false;	
			}
	   }
	}
	
}
// ************************************************************************************************************
function fnSelectSchools()
{
  var schools = document.getElementsByName('SELECT_SCHOOLS');
  var schools_list = "";
  
  for (d = 0; d < schools.length; d++)
    {
	  if(schools[d].checked==true)
	   {
	  			if(schools_list.length == 0)
		 			{
						schools_list = schools[d].value ;
		 			}
		 		else
		 			{
			 			schools_list += "|" + schools[d].value ;
		 			}
					document.getElementById('new_schools_list').value = schools_list + "|";   
	   }
	}
	
}

// ************************************************************************************************************
function fnChangeAJAXMode(_mode)
{
	document.getElementById('ajax_mode').value = _mode;		
}
// ************************************************************************************************************
function fnPrepDistrictDIVS()
{
	document.getElementById('teacher').innerHTML = "";
	document.getElementById('stu').innerHTML = "";
	document.getElementById('class_data').innerHTML = "";
	document.getElementById('stu_data').innerHTML = "";
	
}
// ************************************************************************************************************
function fnCheckForSelectedSchools()
{
  var schools = window.opener.document.getElementsByName('SCHOOLS');
  var selected = 0;
  for (d = 0; d < schools.length; d++)
    {
	  if(schools[d].checked==true)
	   {
			selected++;
	   }
	}
	if(selected == 0)
	 {
		no_schools = true; 
		alert('You must select at least one school before attmpting to add a teacher');
		self.close();
		return;
	 }
}
// ************************************************************************************************************
function fnSetAccelScoreSaveMode(_mode)
{
	document.getElementById('mode').value=_mode	;
}
// ************************************************************************************************************
function fnGetNewFields(_table)
{
	var JF_FIELDS =document.getElementsByName('GEN_FIELED');
	document.getElementById('SQL_CHANGE').value = "";
	
	var JF_CURRENT= 0;
	for(var f=0; f<=JF_FIELDS.length; f++)
	 {
		if(JF_FIELDS[f])
		{
			JF_CURRENT = JF_FIELDS[f].value;
			for(var g=f+1; g<=JF_FIELDS.length; g++)
			 {
				if(JF_FIELDS[g])
				{
					if(JF_FIELDS[g].value === JF_CURRENT && JF_FIELDS[g].value != "SKIP")
					 {
						alert("Duplicate Fields");
						return;
					 }
				}
			 }
		}
	 }
	 
	 for(var x=0; x<=JF_FIELDS.length; x++)
	  {
		  	if(JF_FIELDS[x])
			{
				if(JF_FIELDS[x].value == "Field")
				 {
					alert('Invalid field name');
					return;
				 }
			}
	  }
	 
	 
	 var SQL_TEXT = document.getElementById('SQL_CHANGE').value;
	 for(var s=0; s<=JF_FIELDS.length; s++)
	  {
		  
			if(JF_FIELDS[s])
			 {
				if(JF_FIELDS[s].value == "SKIP")
				 {
					
				 }
				else
				 {
					 if(JF_FIELDS[s].value == "Field_" +s)
					 {
						 alert(JF_FIELDS[s].value);
						 	alert('Invalid field name');
							return;
					 }
					else
					 {
							if(SQL_TEXT.length == 0)
							 {
								SQL_TEXT = "ALTER TABLE " + _table + "  CHANGE `" + JF_FIELDS[s].id + "` `" + JF_FIELDS[s].value + "` VARCHAR( 50 ) NOT NULL"	;	 
							 }
							else
							 {
								 SQL_TEXT += ", CHANGE `" + JF_FIELDS[s].id + "` `" + JF_FIELDS[s].value + "` VARCHAR( 50 ) NOT NULL"	
							 }
					 }
				 }
			 }
	  }
	  document.getElementById('SQL_CHANGE').value = SQL_TEXT;
	  ajax_CompleteUpload(_table);
}
// ************************************************************************************************************
function jsf_ValidateScore(grade,_id, _value)
{
	switch(grade)
	 {
		 case "pacer":
		 	if(_value > 110)
			 {
				alert('Pacer data can not exceed 110');
				document.getElementById(_id).value="";
				return;
			 }
		 break;
	
		 case "sr":
		 	if(_value > 12)
			 {
				alert('Sit and Reach data can not exceed 12');
				document.getElementById(_id).value="";
				return;
			 }
		 break;
	
		 case "push":
		 	if(_value > 60)
			 {
				alert('Push up data can not exceed 60');
				document.getElementById(_id).value="";
				return;
			 }
		 break;
	
		 case "curl":
		 	if(_value > 80)
			 {
				alert('Curl up data can not exceed 80');
				document.getElementById(_id).value="";
				return;
			 }
		 break;
	
		 case "trunk":
		 	if(_value > 12)
			 {
				alert('Trunk lift data can not exceed 12');
				document.getElementById(_id).value="";
				return;
			 }
		 break;
	}
}
// ************************************************************************************************************
function $(v) { return(document.getElementById(v)); }
function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); }
function xy(e,v) { return(v?(agent('msie')?event.clientY+document.body.scrollTop:e.pageY):(agent('msie')?event.clientX+document.body.scrollTop:e.pageX)); }

function dragOBJ(d,e) {

	function drag(e) { if(!stop) { d.style.top=(tX=xy(e,1)+oY-eY+'px'); d.style.left=(tY=xy(e)+oX-eX+'px'); } }

	var oX=parseInt(d.style.left),oY=parseInt(d.style.top),eX=xy(e),eY=xy(e,1),tX,tY,stop;

	document.onmousemove=drag; document.onmouseup=function(){ stop=1; document.onmousemove=''; document.onmouseup=''; };

}


// ************************************************************************************************************
function jsf__ApplySort($obj, $as)
{
	if($as == "class")
	 {
		$("." + $obj).tablesorter();
		$("." + $obj).sortable();
		$("." + $obj).disableSelection();
		alert("The table(s) you selected are now sortable. To sort, click on the column header");
	 }
	else
	 {
		$("#" + $obj).tablesorter();
		$("#" + $obj).sortable();
		$("#" + $obj).disableSelection();
	 }
	 
}
// ************************************************************************************************************
function js_CreateSQL(_collection, _target)
{
		var sql_param = _target.split("_");
		var SQL_LINE = "";
		var TOTAL_SQL = "";
		
		$('*[name=' + _collection + ']').each(function()
										{ 
											if($(this).attr('class') == "score")
											{
												// Check if the paramater is empty; this indicates it's the first item in the loop
												if(SQL_LINE.length == 0)
												 {
													// Create the first parameter
												
													SQL_LINE = $(this).attr('id').replace(sql_param[1] + "_", "") + "=" + $(this).val();	  
												 }
												else
												 {
													// Concat the next item in the loop to the parameter 
													SQL_LINE += ", " + $(this).attr('id').replace(sql_param[1] + "_", "") + "=" + $(this).val();		 
												 }
											}

								}); 
		//alert(SQL_LINE);
		$("#" + _target).val("Update WEB_SCORES Set " + SQL_LINE + ' Where SCORE_ID = ' + sql_param[1]);	
	
		
		dirty = true;
		$("#scores_stat").html("Data changed."); 
}
// ************************************************************************************************************
function ajax_SaveAllScores()
{
	if(dirty == false)
	 {
		$("#scores_stat").html("No changes to save."); 
		$("#SQL").val("");
		return; 
	 }
	
	var TOTAL_SQL = "";	
	$('.SQL').each(function()
									{ 
										// Check if the paramater is empty; this indicates it's the first item in the loop
										if(TOTAL_SQL.length == 0)
										 {
											// Create the first parameter
											if($(this).val().length >0)
											{
												TOTAL_SQL =  $(this).val();
											}
										 }
										else
										 {
											// Concat the next item in the loop to the parameter 
											if($(this).val().length >0)
											{
												TOTAL_SQL += "; " + $(this).val();
											}
										 }
             				}); 

	$("#SQL").val(TOTAL_SQL);

	dirty=false;	
	var params = "SQL=" + $("#SQL").val();
	//alert(params);
	$("#scores_stat").html("Saving ...");


	var SAVE_ALL_SCORES = $.ajax({
					  		// Define ajax url
							url: "../WEB_SCHOOL/AJAX/SaveAllScores.php", 
							
							// Define ajax method
							type: "POST",
							
							// Prevent caching
							cache: false,
							
							// Pass paramaters to ajax object
							data: params,
							
							// Execute when ajax call was successful
							success: function(ajax)
										{
												$("#scores_stat").html(IMG_OK + " " + ajax);
												//$("#scores_stat").html(IMG_OK + " Scores saved successfully.");
											 	$("#SQL").val("");
												
											
										},
							// Execute when ajax call failed
							error: function(ajax)
										{
											alert('Error ' + ajax.responseText);	
										}
					});
	
	
	
	
}


// ############################################################################################
// PRINT REPORT
	var _w=800;
	var _h=600;

function js__OpenPDF(_url)
{

	$("#div_MainStatus").html(" Generating PDF ...");
	

	var _top = ($(window).height() - _h ) / 2 + $(window).scrollTop() + "px";
    var _left=  ($(window).width() - _w ) / 2 + $(window).scrollLeft() + "px";

	
	var params = "height=" + _h + ",width=" + _w + ",status=yes,toolbar=no,menubar=no,location=no,resizable=yes,title=no,left=" + _left + ",top=" + _top;
	window.open(_url, "pdf", params);	
	$("#div_MainStatus").html("");
}