var Page = Class.create();

Page.prototype = {
	initialize: function() {
//		new AutoSuggest('searchTerm', 3, '/autosuggest.aspx'); // (input id, minimum karakters, url)		
		new AjaxKeywords('keywords');
		//new AjaxKeywords('searchresults'); //Zoekresultaat
		this.previewLinks();
		this.createToggleBoxes('toggle');
		//this.hideElements('umbracoAutoForm');
	},	
	createToggleBoxes: function(cls) {
		// prototype 1.6
		$$('.toggle').each(function(box) {							
			new ToggleBox(box);													
		});
	// prototype 1.5
	//			document.getElementsByClassName(cls).each(function(box) {							
	//				new ToggleBox(box);													
	//			});
	},	
	hideElements: function() {
		this.elements = $A(arguments);			
		this.elements.each(function(elm) {		
			if ($(elm)) {
				$(elm).hide();
			}
		});			
	},
	previewLinks: function() {				
		this.links = $$('#content a');
		this.links.each( function(link) {			
			if (!link.down('img') && link.href!='') { //Geen gelinkte afbeeldingen of lege links (ankers)!								
				var linkHref = link.href;				
				if (linkHref.include('mailto:')) {
					link.addClassName('preview');
					link.addClassName('email');				
				}	else {
					var linkParts = linkHref.split("."); 
					extension = linkParts.last();
					if (extension.endsWith('/')) {
					  extension = extension.replace('/', '');  
					}					
					if (extension in { doc:1, pdf:1, ppt:1, xls:1, zip:1 }) {
						link.addClassName('preview');
						link.addClassName(extension);
					} else if (!linkHref.include(serverName)) {
						link.addClassName('preview');
						link.addClassName('extern');
					}
				}									
			}
		});
	}
}

var ToggleBox = Class.create();

ToggleBox.prototype = {
	initialize: function(box) {
			this.box = box;	
			this.head = this.box.down('h2');							
			Event.observe(this.head, 'click', this.clickListener.bindAsEventListener(this), false);	
	},	
	clickListener: function() {		
		if (this.box.hasClassName('expanded')) {
			this.collapseBox();					
		} else {
			this.expandBox();
		}
	},
	collapseBox: function() {		
		this.box.removeClassName('expanded');
		this.box.addClassName('collapsed');	
	},
	expandBox: function() {	
		this.box.removeClassName('collapsed');	
		this.box.addClassName('expanded');		
	}
}

Event.observe(window, 'load', function(){ new Page(); },false);

// marco autocompletion stuff

function doIt(inputfield, querystring) { return (querystring + "&test=123"); }

function getParentElementByTagName(child, TagName)
{
	var cn;
	if (child.parentNode)
	{
		cn = child.parentNode;
		if (child.parentNode.tagName == TagName)
		{
			return cn;
		}
		else
		{
			return getParentElementByTagName(child.parentNode, TagName);
		}
	}
}

function addFormData(inputfield, querystring)
{
	var form = getParentElementByTagName($(inputfield), "FORM");
	var postData = Form.serialize($(form.id));
	//alert(postData);
	//alert(postData);
	return postData;
	//return (querystring + "&facet=true&facet.field=originalname&rows=0&facet.mincount=1&" + postData); 

	// example querystring: "originalname=Sturn"
	var facetField = querystring.replace(/=.*/, "");
	var facetValue = querystring.replace(/.*=/, "");
	//facetValue = facetValue.toLowerCase();

	// remove the facet field from the postData, because we don't wanna search on that field yet
	var re = new RegExp(facetField + "=[^&]*", "i");
	postData = postData.replace(re, "");

	//return ("&facet=true&facet.field=" + facetField + "&facet.prefix=" + facetValue + "&rows=0&facet.mincount=1&facet.sort=false&facet.limit=-1&" + postData); 
	return ("&facet=true&facet.field=" + facetField + "&smartprefix=" + facetValue + "&rows=0&facet.mincount=1&facet.sort=false&facet.limit=-1&" + postData);
}

function showPopupWindow(text)
{
	var newWindow = window.open('Remarks', 'newWin', 'left=100,top=100,height=400,width=600,scrollbars=yes,resizable=yes');
	var htmlText = "<html><body><h2>Remarks</h2><p>" + text + "</p></body></html>";
	newWindow.document.write(htmlText);
}