﻿var activeComboObj="";
var lastActiveComboObj="";
var comboManifest=[];

window.onresize = function() {
	for (var i=0; i<comboManifest.length; i++) 
	{
	 		showHideComboBody(comboManifest[i],"hide");
	}
}

document.onclick  = function() {
	setTimeout('delayedClickTest()', 50);
}

function delayedClickTest(oldComboObj)
{
	//alert("delayTest: "+oldComboObj);
	for (var i=0; i<comboManifest.length; i++) 
	{
		if (comboManifest[i]!=activeComboObj)
		{
	 		//If comboBody is visible check if click is within combobodyDiv - if so ignore
			var comboBodyObject = document.getElementById(comboManifest[i]+"_Body");
	
			if(lastActiveComboObj!=comboManifest[i])
			{
			    headerTxtObj = document.getElementById(comboManifest[i]+"_headerTxt");
			    checkChildrenALLselectedInit(comboManifest[i])
                if(eval("parentSelectedCount_" + comboManifest[i])>0)
                {
                    headerTxtObj.innerHTML=eval("parentSelectedCount_" + comboManifest[i])+" "+comboManifest[i]+" selected";
                }
	            else
	            {
	                headerTxtObj.innerHTML="All "+comboManifest[i]+" selected";
	            }
	            headerTxtObj.style.color="#151515";
	            
			    showHideComboBody(comboManifest[i],"hide");
			}
			else
			{
			    dropDown(lastActiveComboObj);
			    lastActiveComboObj="";
			}
		}
	}
}

function setActiveCombo(comboUID)
{
	activeComboObj=comboUID;
	lastActiveComboObj=comboUID;
	setTimeout('clearActiveCombo()', 100);
	
	
}

function clearActiveCombo()
{
	activeComboObj="";
}

function comboInit(comboUID, width, height)
{
	var comboBodyID = document.getElementById(comboUID+"_Body"); 
	comboBodyID.style.visibility="hidden";
	
	comboManifest[comboManifest.length]=comboUID;
	checkChildrenALLselectedInit(comboUID);
    headerTxtObj = document.getElementById(comboUID+"_headerTxt");
    checkChildrenALLselectedInit(comboUID)
    if(eval("parentSelectedCount_" + comboUID)>0)
    {
        headerTxtObj.innerHTML=eval("parentSelectedCount_" + comboUID)+" "+comboUID+" selected";
    }
    else
    {
        headerTxtObj.innerHTML="All "+comboUID+" selected";
    }
    headerTxtObj.style.color="#151515";	
    toggle('locations', 7); // open Scotland
}

function toggle(comboUID,tableRow)
{
	
	//setActiveCombo(comboUID);
	var childRowObject = document.getElementById(comboUID+"_Row_"+tableRow);
	var childRowPlusMinusObject = document.getElementById(comboUID+"_Row_"+tableRow+"_plusminus");
	if (childRowObject.style.display=="")
	{
		childRowObject.style.display='none';
		childRowPlusMinusObject.src="img/widgit/general/plus.png";
		
	}
	else
	{
	    
	    
		childRowObject.style.display='';
		childRowPlusMinusObject.src="img/widgit/general/minus.png";
	}
}

function dropDown(comboUID,clearLastActiveComboObj)
{
    var headerTxtObj;
	setActiveCombo(comboUID);
   if(clearLastActiveComboObj==null)
        clearLastActiveComboObj=false;
      
    if(clearLastActiveComboObj)
        lastActiveComboObj="";	
	var comboBodyObject = document.getElementById(comboUID+"_Body");
	if (comboBodyObject.style.visibility=="hidden")
	{
	    headerTxtObj = document.getElementById(comboUID+"_headerTxt");
	   // alert(headerTxtObj);
	    headerTxtObj.style.color="#aaaaaa";
	    
		showHideComboBody(comboUID,'show');
	}
	else
	{
	    headerTxtObj = document.getElementById(comboUID+"_headerTxt");
	    //alert("here");
	    
	    checkChildrenALLselectedInit(comboUID)
	    if(eval("parentSelectedCount_" + comboUID)>0)
	    {
	        headerTxtObj.innerHTML=eval("parentSelectedCount_" + comboUID)+" "+comboUID+" selected";
	    }
	    else
	    {
	        headerTxtObj.innerHTML="All "+comboUID+" selected";
	    }
	    headerTxtObj.style.color="#151515";
	    
		showHideComboBody(comboUID,'hide');
	}
}

function showHideComboBody(comboUID,action)
{
	var comboBodyObject = document.getElementById(comboUID+"_Body");
	var comboHeader = document.getElementById(comboUID);
	comboBodyObject.style.left=findPos(comboHeader)[0]+'px'; 
	comboBodyObject.style.top=(findPos(comboHeader)[1]+18)+'px'; 
	//
	if (action=="show")
	{
		comboBodyObject.style.visibility='visible';
		comboBodyObject.style.overflow = "auto";
		comboBodyObject.style.border='1px';
		comboBodyObject.style.borderStyle='solid';
		comboBodyObject.style.borderColor='#bbbbbb';
	}
	else
	{
		comboBodyObject.style.visibility='hidden';
		comboBodyObject.style.overflow = "hidden";	
	}
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}


  function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }


function highlight(objID,colour)
{
	var comboRowObj = document.getElementById(objID);
	comboRowObj.bgColor=colour;

}

function toggleCheckbox(objID,invert)
{
   //alert(objID);
    if (invert == null){
        invert = false;}

	var combocheckbox = document.getElementById(objID);

	if(combocheckbox.checked)
	{
	    if(!invert)  
	        combocheckbox.checked='';
	    else
	        combocheckbox.checked='checked';
	    if (objID.indexOf("parent_")==0)
	    {
	        cnt=0;
	        var childcheckbox;
	        while (cnt<eval(objID+".length"))
	        {
	            childcheckbox = document.getElementById(eval(objID+"["+(cnt++)+"]"));
	            if(!invert)
	                childcheckbox.checked='';
	            else
	                childcheckbox.checked='checked';
	        }
	    }	    
	}
	else
	{
		if(!invert)
	        combocheckbox.checked='checked';
	    else
	        combocheckbox.checked='';
	        
	    if (objID.indexOf("parent_")==0)
	    {
	        cnt=0;
	        var childcheckbox;
	        while (cnt<eval(objID+".length"))
	        {
	            childcheckbox = document.getElementById(eval(objID+"["+(cnt++)+"]"));
	        	if(!invert)
	                childcheckbox.checked='checked';
	            else
	                childcheckbox.checked='';
	        }
	    }
	}


    checkChildrenALLselected(objID);	
}




function checkChildrenALLselectedInit(comboID)
{
    //Check trough all children of parent to find checked status
    var parentObj;
    var comboIDarray;
    var parentTxtObj;
    eval("parentSelectedCount_" + comboID + "=0");
    /*if (objID.indexOf("parent_")!=0)
    {
        comboIDarray= objID.split('_');
        parentObj = "parent_"+comboIDarray[0]+"_"+comboIDarray[2];
        parentTxtObj = document.getElementById("parenttxt_" +comboIDarray[0]+"_"+comboIDarray[2]);
    }
    else
    {
        parentObj = objID;
        parentTxtObj =  document.getElementById(objID.replace("parent_","parenttxt_"));
    }*/
    var parentCnt=0;
    while(parentCnt<eval("parentArray_"+comboID+".length"))
    {
   // alert(eval("parentArray_"+comboID+"["+parentCnt+"];")+" - "+"parentArray_"+comboID+"["+parentCnt+"];");
        parentObj = eval("parentArray_"+comboID+"["+parentCnt+"];");
        parentTxtObj =  document.getElementById(eval("parentArray_"+comboID+"["+parentCnt+"];").replace("parent_","parenttxt_"));
        
        
        var checkParent=true, highLightParent=true;
        var cnt=0, selectedCount=0;
        
        
        
        highLightParent.innerHTML
        while (cnt<eval(parentObj+".length"))
        {
            childcheckbox = document.getElementById(eval(parentObj+"["+(cnt)+"]"));
            childTxtObj=document.getElementById(eval(parentObj+"["+(cnt)+"]").replace("_checkBox_","_txt_"));
            if(!childcheckbox.checked)
            {
                checkParent=false;
                childTxtObj.style.color="#666666";
            }
            else
            {
                selectedCount++;       
                eval("parentSelectedCount_" + comboID + "++");
                childTxtObj.style.color="#333333";
            }
            cnt++;
        }        
        if(checkParent)
        {
            
            parentcheckbox = document.getElementById(parentObj);
            parentcheckbox.checked='checked';
        }
        else
        {
            parentcheckbox = document.getElementById(parentObj);
            parentcheckbox.checked='';
        }

       
        var parentSplit = parentTxtObj.innerHTML.split(" ("); 
        if(selectedCount>0)
        {
            parentTxtObj.innerHTML = parentSplit[0]+" ("+selectedCount+")";
            parentTxtObj.style.color="#333333";
        }
        else
        {
            parentTxtObj.innerHTML = parentSplit[0];
            parentTxtObj.style.color="#666666";
        }
        
        parentCnt++;
    }
}



function checkChildrenALLselected(objID)
{
    //Check trough all children of parent to find checked status
    var parentObj;
    var comboIDarray;
    var parentTxtObj;
    if (objID.indexOf("parent_")!=0)
    {
        comboIDarray= objID.split('_');
        parentObj = "parent_"+comboIDarray[0]+"_"+comboIDarray[2];
        parentTxtObj = document.getElementById("parenttxt_" +comboIDarray[0]+"_"+comboIDarray[2]);
    }
    else
    {
        parentObj = objID;
        parentTxtObj =  document.getElementById(objID.replace("parent_","parenttxt_"));
    }
    var parentCnt=0;

   // alert(eval("parentArray_"+comboID+"["+parentCnt+"];")+" - "+"parentArray_"+comboID+"["+parentCnt+"];");

        
        var checkParent=true, highLightParent=true;
        var cnt=0, selectedCount=0;
        
        
        
        highLightParent.innerHTML
        while (cnt<eval(parentObj+".length"))
        {
            childcheckbox = document.getElementById(eval(parentObj+"["+(cnt)+"]"));
            childTxtObj=document.getElementById(eval(parentObj+"["+(cnt)+"]").replace("_checkBox_","_txt_"));
            if(!childcheckbox.checked)
            {
                checkParent=false;
                childTxtObj.style.color="#666666";
            }
            else
            {
                selectedCount++;       
                childTxtObj.style.color="#151515";
            }
            cnt++;
        }        
        if(checkParent)
        {
            
            parentcheckbox = document.getElementById(parentObj);
            parentcheckbox.checked='checked';
        }
        else
        {
            parentcheckbox = document.getElementById(parentObj);
            parentcheckbox.checked='';
        }

       
        var parentSplit = parentTxtObj.innerHTML.split(" ("); 
        if(selectedCount>0)
        {
            parentTxtObj.innerHTML = parentSplit[0]+" ("+selectedCount+")";
            parentTxtObj.style.color="#151515";
        }
        else
        {
            parentTxtObj.innerHTML = parentSplit[0];
            parentTxtObj.style.color="#666666";
        }
        
}
