var browserCheck = new RegExp('Microsoft', 'i');
var app = (browserCheck.test(navigator.appName)) ? "ie" : "moz";

// this function determines whether the event is the equivalent of the microsoft 
// mouseleave or mouseenter events. 
function isMouseLeaveOrEnter(e, element) 
{
	if (e.type != 'mouseout' && e.type != 'mouseover') return false; 
	var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement; 
	while (reltg && reltg != element) reltg = reltg.parentNode; 
	return (reltg != element);
}

function isMouseEnter(e, element) 
{
	if (e.type != 'mouseover') return false; 
	var reltg = e.relatedTarget ? e.relatedTarget : e.fromElement; 
	while (reltg && reltg != element) reltg = reltg.parentNode; 
	return (reltg != element);
}

function isMouseLeave(e, element) 
{
	if (e.type != 'mouseout') return false; 
	var reltg = e.relatedTarget ? e.relatedTarget : e.toElement; 
	while (reltg && reltg != element) reltg = reltg.parentNode; 
	return (reltg != element);
}


function changePressFilter(currentFilter)
{
	if((currentFilter != 'account' && currentFilter != 'period'))
	{
		if(document.getElementById('filter_account') && currentFilter != 'account')
		{
			document.getElementById('filter_account').value = 0;
			document.getElementById('filter_account').selectedIndex = 0;
		}

		if(document.getElementById('filter_period') && currentFilter != 'period')
		{
			document.getElementById('filter_period').value = 0;
			document.getElementById('filter_period').selectedIndex = 0;
		}
	}

	if(document.getElementById('filter_medium') && currentFilter != 'medium')
	{
		document.getElementById('filter_medium').value = 0;
		document.getElementById('filter_medium').selectedIndex = 0;
	}

	if(document.getElementById('filter_rubriek') && currentFilter != 'rubriek')
	{
		document.getElementById('filter_rubriek').value = 0;
		document.getElementById('filter_rubriek').selectedIndex = 0;
	}

	if(document.getElementById('filter_search') && currentFilter != 'search')
	{
		document.getElementById('filter_search').value = "";
		document.getElementById('filter_search').selectedIndex = "zoekwoord";
	}
}




/***********************************************
* Disable "Enter" key in Form script- By Nurul Fadilah(nurul@REMOVETHISvolmedia.com)
* This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
                
function handleEnter (field, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13) {
		var i;
		for (i = 0; i < field.form.elements.length; i++)
			if (field == field.form.elements[i])
				break;
		i = (i + 1) % field.form.elements.length;
		field.form.elements[i].focus();
		return false;
	} 
	else
	return true;
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

function changePassword(changeBox, passMain)
{
	if(changeBox.checked)
	{
		E(passMain+'_js').value = "";
		E(passMain+'_r_js').value = "";

		E(passMain+'_js').disabled = false;
		E(passMain+'_r_js').disabled = false;
	}
	else
	{
		E(passMain+'_js').value = "*****";
		E(passMain+'_r_js').value = "*****";

		E(passMain+'_js').disabled = true;
		E(passMain+'_r_js').disabled = true;
	}
}

function renameContact(listId, listTitle, cLanguage)
{
	var newName = "";
	var newTitle = listTitle.trim();

	if(cLanguage == "en")
	{
		var renameText = "Enter a new title for this Contact-list";
		var renameError = "The new title is the same as the old one.";
	}
	else
	{
		var renameText = "Geef een nieuwe naam op voor deze contactlijst.";
		var renameError = "De opgegeven naam is hetzelfde.";
	}

	if((newName = prompt(renameText, listTitle)))
	{
		if(newName.trim())
		{
			newName = newName.trim();
			newName = encodeURIComponent(newName);

			if(newName == newTitle)
			{
				alert(renameError);
			}
			else
			{
				location.href = "mijn_perslijst.php?action=change_list&list_id="+listId+"&list_title="+newName;

				return true;
			}
		}
	}
	
	return false;
}

function renameZoekopdracht(listId, listTitle, cLanguage)
{
	var newName = "";
	var newTitle = listTitle.trim();

	if(cLanguage == "en")
	{
		var renameText = "Enter a new title for this search request.";
		var renameError = "The new title is the same as the old one.";
	}
	else
	{
		var renameText = "Geef een nieuwe naam op voor deze zoekopdracht.";
		var renameError = "De opgegeven naam is hetzelfde.";
	}

	if((newName = prompt(renameText, listTitle)))
	{
		if(newName.trim())
		{
			newName = newName.trim();
			newName = encodeURIComponent(newName);

			if(newName == newTitle)
			{
				alert(renameError);
			}
			else
			{
				location.href = "mijn_perslijst.php?action=change_zoekopdracht&zoekopdracht_id="+listId+"&zoekopdracht_title="+newName;

				return true;
			}
		}
	}
	
	return false;
}

//------------------------------------------------- Voor rubrieken

function rub_collapse_all()
{
	var item;
	var j = 0;
	
	while( item = document.getElementById( 'rub_expand_'+j ) )
	{
		rub_collapse( item, j );	
		j++;
	}
}

function rub_expand_all()
{
	var item;
	var j = 0;
	
	while( item = document.getElementById( 'rub_expand_'+j ) )
	{
		rub_expand( item, j );	
		j++;
	}
}


function rub_select (currentSelection, selectId)
{
	var regItems = document.getElementsByTagName("input");
	var rubriekCat = "";
	var i = 0;

	for(i = 0; i < regItems.length; i++)
	{
		rubriekCat = regItems[i].getAttribute("dpl:mainCat");

		if(rubriekCat == selectId)
		{
			regItems[i].checked = (currentSelection.checked) ? true : false;
		}
	}

	if( currentSelection.checked )
	{
		var regrows = document.getElementById( 'sublist_under_'+selectId ).getElementsByTagName( 'LI' );

		for(i = 0; i < regrows.length - 1; i++)
		{
			regrows[i].style.display = 'block';
		}

		document.getElementById( 'rub_more_'+selectId ).style.display = 'none';
		
		document.getElementById( 'rub_expand_'+selectId ).innerHTML = '-';
	};
}

function rub_more(currentSelection, selectId)
{
	var regrows = document.getElementById( 'sublist_under_'+selectId ).getElementsByTagName( 'LI' );

	for(i = 0; i < regrows.length; i++)
	{
		regrows[i].style.display = 'block';	
	}

	document.getElementById( 'rub_more_'+selectId ).style.display = 'none';
}

function rub_expand (currentSelection, selectId)
{
	var regrows = document.getElementById( 'sublist_under_'+selectId ).getElementsByTagName( 'LI' );
	
	for(i = 0; i < regrows.length - 1; i++)
	{
		regrows[i].style.display = 'block';	
	}

	currentSelection.innerHTML = "-";

	document.getElementById( 'rub_more_'+selectId ).style.display = 'none';
}

function rub_collapse( currentSelection, selectId )
{
	var regrows = document.getElementById( 'sublist_under_'+selectId ).getElementsByTagName( 'LI' );
	
	var have_not_collapsed = false;
	var have_collapsed = false;
	
	for(i = 0; i < regrows.length; i++)
	{
		if( regrows[i].getElementsByTagName('input').length )
		{
			if( ! regrows[i].getElementsByTagName('input')[0].checked ) 
			{
				regrows[i].style.display = 'none';
				have_collapsed = true;
			}
			else 
			{
				have_not_collapsed = true;
			}
		}
	}

	if( have_not_collapsed && have_collapsed )
	{
		document.getElementById( 'rub_more_'+selectId ).style.display = 'block';
	};

	currentSelection.innerHTML = "+";
}


function rub_toggle (currentSelection, selectId)
{
	var regrows = document.getElementById( 'sublist_under_'+selectId ).getElementsByTagName( 'LI' );

	var collapsed = false;

	

	for(i = 0; i < regrows.length - 1; i++)
	{
		if( regrows[i].style.display == 'none' )
		{
			collapsed = true;
		}
	}

	if( collapsed )
	{
		rub_expand(currentSelection, selectId);
	}
	else
	{
		rub_collapse( currentSelection, selectId );
	}
		
}

function rub_check (currentSelection, selectId)
{
	var regItems = document.getElementsByTagName("input");
	var rubriekCat = "";
	var i = 0;

	var havechecked = false;
	var allchecked = true;
	
	for(i = 0; i < regItems.length; i++)
	{
		rubriekCat = regItems[i].getAttribute("dpl:mainCat");
		
		if(rubriekCat == selectId)
		{
			if( regItems[i].checked )
			{
				havechecked = true;
			}
			else allchecked = false;
		}
	}
	
	if( ell = document.getElementById('main_'+selectId) )
	{
		ell.checked = ( havechecked && allchecked );
	}
}


// ---------------------- Voor regionaal





function checkNodaal( nod , par1 , par2 )
{
	var ell = document.getElementById(nod);

	highlightParent( ell );

	checkParent( par1 ); 
	checkParent( par2 );
};

function highlightParent( ell )
{
	var s = ell.parentNode.className;
	
	s = s.replace(" checked" , "" );

	if( ell.checked ) s = s + " checked";

	ell.parentNode.className = s;
}

function checkParent( code )
{
	var countell =  document.getElementById(code+'_rows');

	if( countell ) // maar hoeft niet te bestaan ( alleen hoofdgebied.
	{
		var elts_cnt  = countell.value;
	}
	else return;


	// lopen child nodes af om te krijen of er 1 niet is gechecked.

	var checked = true;

	for( var i = 0; i < elts_cnt; i++ )
	{
		// select_[prov_code]_[nummer]_[i] = subgebied

		var name = code+"_"+i;
		if( ! document.getElementById(name).checked ) checked = false;
	};

	var ell = document.getElementById(code);
	
	ell.checked = checked;

	highlightParent( ell );
}

function setCebuco( prefix , do_check)
{
	// select_[prov_code]_[nummer]_rows = aantal subgebieden 

	var countell =  document.getElementById(prefix+'_rows');

	if( countell ) // maar hoeft niet te bestaan ( alleen hoofdgebied.
	{
		var elts_cnt  = countell.value;
	}

	for( var i = 0; i < elts_cnt; i++ )
	{
		// select_[prov_code]_[nummer]_[i] = subgebied
		var name = prefix+'_'+i;			
		
		var ell = document.getElementById(name);

		ell.checked = do_check;

		highlightParent( ell );
	};

	highlightParent( document.getElementById(prefix) );

	return true;
} 

function setProvincie( prefix , do_check)
{
	// select_[prov_code]_rows = aantal gebieden in provincie
	var elts_cnt  = document.getElementById(prefix+'_rows').value;

	for( var i = 0; i < elts_cnt; i++ )
	{
		// select_[prov_code]_[i] = gebied
		var name = prefix+'_'+i;	
		
		var ell = document.getElementById(name);

		ell.checked = do_check;

		highlightParent( ell );

		// gebied is net aan of uit gezet zonder click dus doe hetzelfde als met de click
		setCebuco( name , do_check);
	};

	highlightParent( document.getElementById(prefix) );

	return true;
} // end of the 'setProvincie()' function


// use E instead of getElementById
function E(obj)
{
	if (arguments.length > 1)
	{
		for (var i = 0, objects = []; i < arguments.length; i++)
		{
			if(document.getElementById(arguments[i]) !== null)
			{
				objects.push(E(arguments[i]));
			}
		}
		return objects;
	}

	if (typeof obj == 'string')
	{
		newObj = document.getElementById(obj);
	}
	
	return newObj;
}

var currentTarget;
var mouseX;
var mouseY;

function setTarget(event)
{
	if(!document.body)
	{
		return false;
	}

	var e = event || window.event;

	currentTarget = e.target || e.srcElement;

	var scrollX = (document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft;
	var scrollY = (document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop;


	if(app == "ie")
	{
		mouseX = event.clientX;
		mouseY = event.clientY;
	}
	else
	{
		mouseX = e.pageX;
		mouseY = e.pageY;
	}

	mouseY -= scrollY;
}

AttachEvent(document, 'mousemove', setTarget, false);

//***Cross browser attach event function. For 'evt' pass a string value with the leading "on" omitted
//***e.g. AttachEvent(window,'load',MyFunctionNameWithoutParenthesis,false);
function AttachEvent(obj,evt,fnc,useCapture)
{
	if (!useCapture) useCapture=false;
	if (obj.addEventListener){
		obj.addEventListener(evt,fnc,useCapture);
		return true;
	} else if (obj.attachEvent) return obj.attachEvent("on"+evt,fnc);
	else{
		MyAttachEvent(obj,evt,fnc);
		obj['on'+evt]=function(){ MyFireEvent(obj,evt) };
	}
} 

//The following are for browsers like NS4 or IE5Mac which don't support either
//attachEvent or addEventListener
function MyAttachEvent(obj,evt,fnc)
{
	if (!obj.myEvents) obj.myEvents={};
	if (!obj.myEvents[evt]) obj.myEvents[evt]=[];
	var evts = obj.myEvents[evt];
	evts[evts.length]=fnc;
}

function MyFireEvent(obj,evt)
{
	if (!obj || !obj.myEvents || !obj.myEvents[evt]) return;
	var evts = obj.myEvents[evt];
	for (var i=0,len=evts.length;i<len;i++) evts[i]();
}

function parent_found(elCode)
{
	if(!currentTarget)
	{
		return false;
	}

	//	if(currentTarget.id == 'globalBox_'+menuIndex || currentTarget.id == 'submenu_'+menuIndex || currentTarget.id == 'mainMenuholder_'+menuIndex)
	if(currentTarget.id == elCode)
	{
		return true;
	}
	else
	{
		// loop parents node:
		tempTarget = currentTarget.parentNode;

		while(tempTarget)
		{
			//if(tempTarget.id == 'globalBox_'+menuIndex || tempTarget.id == 'submenu_'+menuIndex || tempTarget.id == 'mainMenuholder_'+menuIndex)
			if(tempTarget.id == elCode)
			{
				return true
				break;
			}
			else
			{
				tempTarget = tempTarget.parentNode;
			}
		}
	}

	return false;
}



/************************ TOOLTIP ****************************/

var tooltip = function(){

	var id = 'tt';
	var top = 3;
	var left = 3;
	var maxw = 500;
	var speed = 10;
	var timer = 20;
	var endalpha = 95;
	var alpha = 0;
	var tt,c,h;
	var ie = document.all ? true : false;
	
	return{
		show:function(v,w){
			if(tt == null)
			{
				tt = document.createElement('div');
				tt.setAttribute('id',id);
				c = document.createElement('div');
				c.setAttribute('id',id + 'cont');
				tt.appendChild(c);
				document.body.appendChild(tt);
				tt.style.opacity = 0;
				tt.style.filter = 'alpha(opacity=0)';
				document.onmousemove = this.pos;
			}
			tt.style.display = 'block';
			c.innerHTML = v;
			tt.style.width = w ? w + 'px' : 'auto';
			if(!w && ie)
			{
				tt.style.width = tt.offsetWidth;
			}
			if(tt.offsetWidth > maxw)
			{
				tt.style.width = maxw + 'px';
			}
			h = parseInt(tt.offsetHeight) + top;
			clearInterval(tt.timer);
			tt.timer = setInterval(function(){tooltip.fade(1)},timer);
		},
		pos:function(e)
		{
			var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
			var l = ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
			tt.style.top = (u - h) + 'px';
			tt.style.left = (l + left) + 'px';
		},
		fade:function(d)
		{
			var a = alpha;
			if((a != endalpha && d == 1) || (a != 0 && d == -1))
			{
				var i = speed;
				if(endalpha - a < speed && d == 1)
				{
					i = endalpha - a;
				}
				else if(alpha < speed && d == -1)
				{
					i = a;
				}
				alpha = a + (i * d);
				tt.style.opacity = alpha * .01;
				tt.style.filter = 'alpha(opacity=' + alpha + ')';
			}
			else
			{
				clearInterval(tt.timer);
				if(d == -1){tt.style.display = 'none'}
			}
		},
		hide:function()
		{
			clearInterval(tt.timer);
			tt.timer = setInterval(function(){tooltip.fade(-1)},timer);
		}
	};
}();
