﻿//force Unchecking checkboxes on page refresh on firefox fields by default dont clear out.
//function init(){
// var chkboxes = document.getElementsByTagName('input')
//	for( var i=0;i<chkboxes.length;i++)
//	{
//    if(chkboxes[i].type=="checkbox"){
//      chkboxes[i].checked = false;
//    }
//    }
//}
////Firefox Init
// if (document.addEventListener) {
//       document.addEventListener("DOMContentLoaded", init, false);
//   }
////IE Init
//window.onload=init;

//Select next element
function nextEl(el){
do el=el.nextSibling;
while(el&&el.nodeType!=1)
return el?el:0
}
//Select previous element
function previousEl(el){
do el=el.previousSibling;
while(el&&el.nodeType!=1)
return el?el:0
}

//This function overcomes the issue with Firefox
//Firefox treats empty spaces as valid child element
//When firstChild function is called so we USE this instead:
function getFirstChild(elm)
{
if ( !elm.childNodes.length )
{
return;
}
var children = elm.childNodes.length;
for ( var i = 0; i <= children; ++i )
{
if ( elm.childNodes[i].nodeType == 1 )
{
return elm.childNodes[i];
}
}
return;
}
//Search array for object
function contains(a, obj) {
  var i = a.length;
  while (i--) {
    if (a[i] === obj) {
      return true;
    }
  }
  return false;
}
//Search array for checked/unchecked checkboxes
function containsChecked(a, obj) {
  var i = a.length;
  while (i--) {
    if (a[i].checked === obj) {
      return true;
    }
  }
  return false;
}
//Add highlight on mouse over to Gridview row
function AddHighlight(targetRow){
   
    var firstChild = getFirstChild(targetRow)
    var chk = getFirstChild(firstChild)
  
    if(chk.checked == false)
    {
     targetRow.style.backgroundColor='#EFF3FB'
    } 
}
//Remove highlight on mouse out from Gridview row
function RemoveHighlight(targetRow){
    var firstChild = getFirstChild(targetRow)
    var chk = getFirstChild(firstChild)
    
    if(chk.checked == false)
    {
     targetRow.style.backgroundColor='White'
    } 
}
//Highlights checked row
function HighlightChecked(chkB){
CheckIfAllSelected()
 var xState=chkB.checked;
 
if(xState){
chkB.parentNode.parentNode.style.backgroundColor='#F0FFDE'; 
}
else{
chkB.parentNode.parentNode.style.backgroundColor='White'; 
}

}
//Shows all rows previously hidden using display:none
function ShowAll()
{  
   var isFirst = false;
   var chkboxes = document.getElementsByTagName('input')
	
	for( var i=0;i<chkboxes.length;i++)
	{
	 if(chkboxes[i].type=="checkbox"){
	 
	         if(isFirst == false){
             var chkAllID = chkboxes[i].id
             isFirst = true;
      } 
       if(chkboxes[i].parentNode.parentNode.style.display =='none'){
      
        chkboxes[i].parentNode.parentNode.style.display =''
        var oChkAll = document.getElementById(chkAllID)
            oChkAll.checked = false;
       }
     }
 }
}
//Hides unselected rows using display:none
function HideUnSelected()
{
  	var isFirst = false;
	var arrCheckboxes = new Array();
    var chkboxes = document.getElementsByTagName('input')
	
	for( var i=0;i<chkboxes.length;i++){
	
	 if(chkboxes[i].type=="checkbox"){ 
	    
	       if(isFirst == false){
           var chkAllID = chkboxes[i].id
           isFirst = true;
           } 
             if(containsChecked(chkboxes,true)){     
			 if(chkboxes[i].id != chkAllID){
			 
			   if(!chkboxes[i].checked)
		       chkboxes[i].parentNode.parentNode.style.display ='none'
		     }
		     else{
		      chkboxes[i].checked = true
		     }
		     }
		     else{
		       return false;
		     }
     }
	}	  
}
//Checks if all rows been selected if so checks the top header checkbox
function CheckIfAllSelected(){

	var isFirst = false;
	var arrCheckboxes = new Array();
    var chkboxes = document.getElementsByTagName('input')
	
	for( var i=0;i<chkboxes.length;i++){
	
	 if(chkboxes[i].type=="checkbox"){ 
	    
	       if(isFirst == false){
           var chkAllID = chkboxes[i].id
           isFirst = true;
           }          
			 if(chkboxes[i].id != chkAllID){
		     if(chkboxes[i].parentNode.parentNode.style.display !='none')
		     arrCheckboxes.push(chkboxes[i].checked)  
		   }
     }
   
	}	
	var result = contains(arrCheckboxes,false)
	 if(!result){
			   var oChkAll = document.getElementById(chkAllID)
               oChkAll.checked = true;
	 }
	 else if(result){
	        var oChkAll = document.getElementById(chkAllID)
            oChkAll.checked = false;
	 }	           
}
 //This function selects all rows when header checkbox is clicked
 function SelectAllCheckboxes(spanChk){

          var  oItem = spanChk.children;
          var  theBox= (spanChk.type=="checkbox") ? 
          spanChk : spanChk.children.item[0];
          xState=theBox.checked;
          elm=theBox.form.elements;

          for(i=0;i<elm.length;i++)
          if(elm[i].type=="checkbox" && elm[i].id!=theBox.id){
     
          if(elm[i].checked!=xState)
          elm[i].click(); 
     }
 }
