﻿/*
Rekrytera Javascript file.
Implemented 2006-10-19
*/

function displayPositionPopup( divid, refObj, pos )
{
    var div = document.getElementById(divid);
    var top = 0;
    var left = 0;
    
    if( div && refObj )
    {
        div.style.zIndex = '2001';
        
        alert(document.documentElement.scrollTop);
        alert(refObj.id);
        alert('left='+refObj.clientLeft);
        alert('top='+refObj.clientTop);
        
        if( div.style.display == 'none' )
        {
            //Create iframe and add it to div's parent childcollection.
			var frame = document.createElement( "iframe" );
			div.parentElement.appendChild(frame);
			
			//set style.
			frame.id = divid + "_Iframe";
			frame.style.border = "0";
			frame.style.position = "absolute";
			frame.style.frameBorder=0;
			//--
			
			div.style.position = "absolute";
			div.style.display = 'block';
			frame.style.display = 'block';
			
			if( pos == 'over' )
			{
			    top = GetScrollTop() + (refObj.clientTop - div.clientHeight);
			    left = GetScrollLeft() + (refObj.clientLeft - (div.clientWidth/2));
			}
			else if( pos == 'under' )
			{
			    top = refObj.clientTop + refObj.clientHeight;
			    left = refObj.clientLeft - (div.clientWidth/2);
			}
			
			//reset if out of bounds.
		    if( top < 0 ) top = 0;
		    if( left < 0 ) left = 0;
		    //--
		    
		    div.style.top = top + 'px';
		    div.style.left = left + 'px';
		    frame.style.top = top + 'px';
		    frame.style.left = left + 'px';
		    frame.style.width = div.clientWidth + 'px';
			frame.style.height = div.clientHeight + 'px';
		    frame.style.zIndex = '' + (parseInt(div.style.zIndex)-1);
        }
        else
        {
            var frame = document.getElementById(divid + "_Iframe");
			
			//remove iframe
			if( frame )
				frame.parentElement.removeChild( frame );
			
			//hide popup	
			div.style.display = 'none';
        }
    }
}

//Displays popup with and shadow iframe to hide htmlcontrols.
function displayPopup( divid, centerWindow, hidecontrols )
{
	var div = document.getElementById( divid );
	
	if( div != null )
	{
		//set div settings.
		div.style.zIndex = '2001';
		
		//display containers.
		if( div.style.display == 'none' )
		{
			//Create iframe and add it to div's parent childcollection.
			var frame = document.createElement( "iframe" );
			div.parentNode.appendChild(frame);
			
			//set style.
			frame.id = divid + "_Iframe";
			frame.style.border = "0";
			frame.style.position = "absolute";
			frame.style.frameBorder=0;
			//--
			
			div.style.position = "absolute";
			div.style.display = 'block';
			frame.style.display = 'block';
			
			if( centerWindow )
			{
                div.style.top = ((GetScrollTop() + document.documentElement.clientHeight/2)-div.clientHeight) + 'px';
				div.style.left = ((document.body.clientWidth/2) - (div.clientWidth / 2)) + 'px';
			}
			
			//set frame settings.
			frame.style.width = div.clientWidth + 'px';
			frame.style.height = div.clientHeight + 'px';
			frame.style.zIndex = '2000';
			frame.style.top = div.style.top;
			frame.style.left = div.style.left;
			
			if( hidecontrols )
			{
				hideWindowedControls();
				unHideChildrenOf(divid);
			}
		}
		else
		{
			var frame = document.getElementById(divid + "_Iframe");
			
			//remove iframe
			if( frame )
				frame.parentNode.removeChild( frame );
			
			//hide popup	
			div.style.display = 'none';
			
			if( hidecontrols )
				unHideWindowedControls();
		}
	}
}
function GetScrollTop()
{
    return document.documentElement ? document.documentElement.scrollTop : document.scrollTop;
}
function GetScrollLeft()
{
    return document.documentElement ? document.documentElement.scrollLeft : document.scrollLeft;
}
var gHiddenControls = new Array();
// ---------------
// Hides all windowed controls in browsers that
// can't display layers on top of them.
// ---------------
function hideWindowedControls()
{
	// Hides all listboxes
	for (var i = 0; i < document.getElementsByTagName('select').length; i++)
	{
		if( document.getElementsByTagName('select')[i].style.visibility != 'hidden' )
		{
			document.getElementsByTagName('select')[i].style.visibility = 'hidden';
			gHiddenControls[gHiddenControls.length] = document.getElementsByTagName('select')[i];
		}
	}
}
function unHideWindowedControls()
{
	for( var i = 0; i < gHiddenControls.length; i++ )
		gHiddenControls[i].style.visibility = 'visible';
		
	gHiddenControls.length = 0;
}

//After we have hidden all controls we want to unhide thoose who are within a popup.
function unHideChildrenOf( id )
{
	for( var i=0; i < gHiddenControls.length; i++ )
	{
		var ctrl = gHiddenControls[i];
		var found = false;
		
		while( ctrl != null )
		{
			if( ctrl.id == id )
			{
				found = true;
				break;
			}
			else
				ctrl = ctrl.parentNode;
		}
		
		//if a control was found we display it.
		if( found )
		{
			gHiddenControls[i].style.visibility = 'visible';
		}
	}
}

function DisplayAll( tableid, senderid )
{
    var table = document.getElementById(tableid);
    var link = document.getElementById(senderid);
    
    var displayStatus = 'none';
    
    if( link.innerText == 'Lista alla' )
    {
        displayStatus = '';
        link.innerText = 'Dölj';
    }
    else
    {
        link.innerText = 'Lista alla';
    }

    for( var i=0; i < table.rows.length; i++ )
    {
        if( table.rows[i].className == 'extra_list' )
            table.rows[i].style.display = displayStatus;
    }
}
