function addLoadEvent(func) {
	window.addEvent('domready', func);
/*  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
  */
}

window.addEvent('domready', function(){

    var image1_over = 'url(/core/images/small-button-start-over.jpg)';
    var image2_over = 'url(/core/images/small-button-back-over.jpg)';
    var image3_over = 'url(/core/images/small-button-end-over.jpg)';
    var image4_over = 'url(/core/images/small-button-prev-over.jpg)';
    var image5_over = 'url(/core/images/small-button-next-over.jpg)';
    
    var image1 = 'url(/core/images/small-button-start.jpg)';
    var image2 = 'url(/core/images/small-button-back.jpg)';
    var image3 = 'url(/core/images/small-button-end.jpg)';
    var image4 = 'url(/core/images/small-button-prev.jpg)';
    var image5 = 'url(/core/images/small-button-next.jpg)';
    
    $$('.labelButton').each(function(item,index){
        
        item.addEvent('mouseover',function(){
            var children = item.getChildren();
            children.each(function(item,index){
                if(item.hasClass('labelButtonStart')){
                    var newImage = image1_over;
                }
                if(item.hasClass('labelButtonPrev')){
                    var newImage = image4_over;
                }
                if(item.hasClass('labelButtonMiddle')){
                    var newImage = image2_over;
                }
                if(item.hasClass('labelButtonNext')){
                    var newImage = image5_over;
                }
                if(item.hasClass('labelButtonEnd')){
                    var newImage = image3_over;
                }
				if($chk(newImage)) {
                	item.setStyle('background-image',newImage);
				}
            });
        });
        item.addEvent('mouseout',function(){
            var children = item.getChildren();
            children.each(function(item,index){
                if(item.hasClass('labelButtonStart')){
                    var newImage = image1;
                }
                if(item.hasClass('labelButtonPrev')){
                    var newImage = image4;
                }
                if(item.hasClass('labelButtonMiddle')){
                    var newImage = image2;
                }
                if(item.hasClass('labelButtonNext')){
                    var newImage = image5;
                }
                if(item.hasClass('labelButtonEnd')){
                    var newImage = image3;
                }
                if($chk(newImage)) {
                	item.setStyle('background-image',newImage);
				}
            });
        });

    });
});

function addHandlers() {
	var W3CDOM = (document.createElement && document.getElementsByTagName);
	if (!W3CDOM) {
        return;
    }
}

function ExpandNode(elt) {
	//alert(elt.parentNode.outerHTML);
	var parElt = elt.parentNode;
	if (parElt != null) {
		var clName = parElt.className;
		if (clName != null) {
			if (clName.indexOf("sfhover") >= 0) {
				clName = clName.replace(new RegExp(" sfhover\\b"), "").replace(new RegExp(" selected\\b"), "");
				parElt.className = clName;
			} else {
				parElt.className = clName + " sfhover selected";
			}
		}
	}
	if (elt.blur) {
		elt.blur();
	}
}

function sfHover() {
	return false;
	try {
		var sfEls = document.getElementById("subNavigationPanel").firstChild.getElementsByTagName("li");
		for (var i = 0; i < sfEls.length; i++) {
			sfEls[i].onmouseover = function() {
				//this.className += " sfhover";
			}
			sfEls[i].onmouseout = function() {
				//alert("hallo");
				//this.className = this.className.replace(new RegExp(" sfhover\\b"), "");
			}
			sfEls[i].onclick = function() {
				//alert("xx: " + this.childNodes[1].innerHTML);
				if (this.childNodes[1].childNodes.count > 1) {
					this.className += " sfhover";
					return false;
				}
			}

		}
	} catch (e){
		alert("error in sfHover: " + e);
	}
}
/*
function addEvent( obj, type, fn ) { 
    if ( obj.attachEvent ) {
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn]( window.event );} 
        obj.attachEvent( 'on'+type, fn );
    } else {
        obj.addEventListener( type, fn, false ); 
    }
}
*/
function WriteString(s) {
	document.write(s);
}

addLoadEvent(addHandlers);
addLoadEvent(sfHover);
/*
// Deze functie wordt, afhankelijk van SBEOS Edit mode al dan niet uitgevoerd door includes.ascx
addLoadEvent(sIFRStart);
*/


var FormItemOrgs = new Array();
function FormItemClearMe(elt) {
	var orgVal = FormItemOrgs[elt.id];
	if (orgVal == null || orgVal == elt.value) {
		FormItemOrgs[elt.id] = elt.value;
		elt.value = "";
	}
}

function FormItemSetMe(elt) {
	var orgVal = FormItemOrgs[elt.id];
	if (elt.value == "" && orgVal != "")
		elt.value = orgVal;
}

function FormItemClearMyForm() {
	for (i = 0; i < arguments.length; i++) {
		FormItemClearMe(document.getElementById(arguments[i]))
	}
	return true
}
function SetColor(elt) {
	if (elt.src != undefined) {
		if (elt.src.indexOf("-color") < 0) {
			elt.src = elt.src.replace(".jpg", "-color.jpg");
		}
	}
}
function RemoveColor(elt) {
	if (elt.src != undefined) {
		elt.src = elt.src.replace("-color.jpg", ".jpg");
	}
}


// Fix for MaintainScrollPostionOnPostBack http://forums.asp.net/thread/336101.aspx
function saveScroll() {
	var iScroll = document.getElementById('__SAVESCROLL');
	if ((typeof(iScroll) != "undefined") && (iScroll != null)) {
		var sScroll;
		if (document.documentElement && document.documentElement.scrollTop)
			sScroll = document.documentElement.scrollTop;
		else if (document.body)
			sScroll = document.body.scrollTop;
		else {
			sScroll = 0;
		}
		iScroll.value = sScroll;
	}
	//alert(iScroll.value);
}

function restoreScroll() {
	var iScroll = document.getElementById('__SAVESCROLL');
	if ((typeof(iScroll) != "undefined") && (iScroll != null)) {
		var sScroll = iScroll.value;
		if (sScroll > 0) {
			if (document.documentElement && document.documentElement.scrollTop)
				document.documentElement.scrollTop = sScroll;
			else if (document.body) {
				if (window.navigator.appName == 'Netscape')
					window.scroll(0, sScroll);
				else
					document.body.scrollTop = sScroll;
			} else {
				window.scroll(0, sScroll);
			}
		// here is setting absolute positioning panel, if you need, set correct ID  and uncomment follow 2 lines (and add needed lines/setting for all your panels)
		//if (document.getElementById('pnlNewItem') != null )
		//document.getElementById('pnlNewItem').style.top = sScroll + 'px';
		}
	}
}

function ignoreReturn(e){ 
	var evt = (e || event)
	var whichCode = evt ? (evt.which ? evt.which : evt.keyCode) : event.keyCode;
	if (whichCode == 13) 
	{
	    return false;		
	}
	return true;
}

function clickButton(e, buttonid, buttonUniqueID){ 
	var evt = new Event(e);
//	var whichCode = evt ? (evt.which ? evt.which : evt.keyCode) : event.keyCode;
	if (evt.key == "enter") {
		var btn = document.getElementById(buttonid);
		if ((typeof(btn) != "undefined") && (btn != null)) {
			if (typeof(btn.click) != "undefined") {
				btn.click();
			} else {
				__doPostBack(buttonUniqueID);
			}
			return false;
		}
	}
	return true;
}

window.addEvent('domready', restoreScroll);
//addLoadEvent(restoreScroll);
//window.onload = restoreScroll;
window.addEvent("scroll", saveScroll);
window.addEvent("resize", saveScroll);
//window.onscroll = saveScroll;
//window.onresize = saveScroll;


// -------------- NAvigation stuff...
var defaultSearchText;
var searchInput = null;

window.addEvent('domready', function()
{
	if(typeof(ClientID) != 'undefined')
	{
		searchInput = $(ClientID + "_searchField");
		searchInput.addEvent("keydown", search_Key);
	}
});

function search_Key(evt) {
	cancel_Blur();
	var e = new Event(evt);
//	bal.bla=6
	
//	$("ctl00_sub_menu_subMenuBasket_SubMenuBasketText").setText(e.key + " " + e.target);
	switch (e.key) {
		case "enter":
			if (currentSearchLine === null) {
				startSearch();
			} else {
				document.location = currentSearchLine.href;
			}
			e.stop();
			break;
		case "escape":
			exit_search();
			e.stop();
			break;
		case "left":
			search_ShowPage(-1);
			break;
		case "right":
			search_ShowPage(1);
			break;
		case "up":
			e.preventDefault();
			e.stop();
			search_LineUp();
			break;
		case "down":
			e.preventDefault();
			e.stop();
			search_LineDown();
			break;
		default:
			//$("searchBar").addClass("colorSelected");
			//$("searchBar").removeClass("colorNormal");
			break;
	}
}
function cancel_Blur() {
	if (blurTimer > 0) {
		window.clearTimeout(blurTimer);
		blurTimer = -1;
	}
}

function search_Focus() {
	cancel_Blur();
//	var elt = $(ClientID + "_searchField");
	
	if (defaultSearchText == null) {
		defaultSearchText = searchInput.value;
		searchInput.value = "";
	} else {
		if (searchInput.value == defaultSearchText) {
			searchInput.value = "";
		}
	}
}

function element_search_Blur() {
	search_Blur();
}

var blurTimer = -1
function search_Blur(btime) {
	if (isNaN(Number(btime))) {
		btime = 100;
	}
	blurTimer = window.setTimeout(exit_search, btime);
}
var searchXhr = null;
function exit_search() {
	$("searchBar").removeClass("colorSelected");
	$("searchBar").addClass("colorNormal");
	if (defaultSearchText != null) {
		searchInput.value = defaultSearchText;
	}
	$(ClientID + "_searchResultsPanel").addClass("nVis");
	DataEntered = false;
	if (searchXhr !== null) {
		searchXhr.cancel();
	}
	//document.body.removeEvent("keydown");
}

function startSearch() {
	var searchQuery = searchInput.value;
	if (!$chk(searchQuery)) {
		return;
	}
	if (searchXhr === null) {
		searchXhr = new XHR({method: 'post', autoCancel: true, onSuccess: gotSearchResult});
	}
	searchXhr.send("/core/TextSearch.aspx", "query=" + searchQuery);
}

function gotSearchResult(result) {
	$(ClientID + "_searchResultsPanel").removeClass("nVis");
	$(ClientID + "_searchResults").setHTML(result);
	search_SetNavButtons();
	//document.body.addEvent("keydown", search_Key);
}



var currentSearchLine = null;
function search_LineOut(elt) {
	try {
		elt.blur();
	} catch(e) {}
	cancel_Blur();
	$(elt).removeClass("searchResultLineOver");
}

function search_LineOver(elt) {
	search_SetActiveLine(elt)
}

function search_SetActiveLine(elt) {
	if (elt != null) {
		if (currentSearchLine != elt) {
			if (currentSearchLine != null) {
				search_LineOut(currentSearchLine);
			}
			$(elt).addClass("searchResultLineOver");
			currentSearchLine = elt;
		}
		searchInput.focus();
		window.status = elt.href;
//		elt.focus();
	}
}

function search_ShowPage(d) {
	cancel_Blur();
	var newPage = currentPage + d;

	if (newPage < 0 || newPage >= numPages) {
		return;
	}
	// set next / prev visibility...
	//window.status = "newPage: " + newPage + " numPages: " + numPages + " newPage < numPages - 2?" + (newPage < numPages - 1);
	if (newPage < numPages - 1) {
		ShowElt("SearchNavBarNext")
	} else {
		HideElt("SearchNavBarNext")
	}
	if (newPage > 0) {
		ShowElt("SearchNavBarPrev")
	} else {
		HideElt("SearchNavBarPrev")
	}
	if (newPage != currentPage)
		HideElt("SearchResultsPage_" + currentPage)

	ShowElt("SearchResultsPage_" + newPage)
	currentPage = newPage;
	if (currentSearchLine != null)
		search_LineOut(currentSearchLine);
	currentSearchLine = null;
	searchInput.focus();
//	currentPage.focus();
	//document.getElementById(ClientID + "_btnSearch").focus();
}
	
function search_LineDown() {
	var newActiveElt = null
	if (currentSearchLine == null) {
		newActiveElt = $("defaultSearchResult");
		if (newActiveElt == null)
			newActiveElt = $("SearchLine_" + currentPage + "_0");
		//
	} else {
		if (currentSearchLine.id == "defaultSearchResult") {
			newActiveElt = $("SearchLine_" + currentPage + "_0");
		} else {
			if (currentSearchLine.nextSibling != null) {
				newActiveElt = currentSearchLine.nextSibling;
			} else { // we zijn al onderaan.
				newActiveElt = currentSearchLine;
			}
		}
	}
	search_SetActiveLine(newActiveElt)
}

function search_LineUp() {
	var newActiveElt = null
	if (currentSearchLine == null) {
		newActiveElt = $("SearchResultsPage_" + currentPage).lastChild;
	} else {
		if (currentSearchLine.id == "defaultSearchResult") {
			newActiveElt = currentSearchLine;
		} else {
			if (currentSearchLine.previousSibling != null) {
				newActiveElt = currentSearchLine.previousSibling;
			} else {
				newActiveElt = $("defaultSearchResult");
			}
		}
	}
	search_SetActiveLine(newActiveElt)
}

var numPages = -1;
var currentPage = -1;
function search_SetNavButtons() {
	document.body.style.cursor = "";

	numPages = $(ClientID + "_searchResults").childNodes.length;
	currentPage = 0;
	search_ShowPage(0);
	
	if (numPages > 1) {
		ShowElt("SearchNavBar");
	} else {
		HideElt("SearchNavBar");
	}
}

function ShowElt(eltID) {
	var elt = $(eltID)
	if ($chk(elt)) {
		elt.removeClass("nVis");
	} else {
		//alert("Error in ShowElt, element: " + eltID + " niet gevonden!");
	}
}
function HideElt(eltID) {
	var elt = $(eltID)
	if ($chk(elt)) {
		elt.addClass("nVis");
	} else {
		//alert("Error in HideElt, element: " + eltID + " niet gevonden!");
	}
}
	
	
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function TooltipHide(version) {
	var imgLoader = $("tooltip"+version);
	imgLoader.style.display = "none";
}
		
function TooltipShow(htmlelement, version) {
	var eventPos = findPos(htmlelement);
	var imgLoader = $("tooltip"+version);
	imgLoader.style.top = (eventPos[1] - 10) + 'px';
	imgLoader.style.left = (eventPos[0] + 25) + 'px';
	imgLoader.style.display = "block";
}

function OpenWindow(url, args) {
	window.open(url, null, args);
}

