
Request.HTML.implement({
 
        processHTML: function(text){
            var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
            text = (match) ? match[1] : text;
           
            var container = new Element('div');
           
            return $try(function(){
                var root = '<root>' + text + '</root>', doc;
                if (Browser.Engine.trident){
                    doc = new ActiveXObject('Microsoft.XMLDOM');
                    doc.async = false;
                    doc.loadXML(root);
                } else {
                    doc = new DOMParser().parseFromString(root, 'text/html');
                }
                root = doc.getElementsByTagName('root')[0];
                for (var i = 0, k = root.childNodes.length; i < k; i++){
                    var child = Element.clone(root.childNodes[i], true, true);
                    if (child) container.grab(child);
                }
                return container;
            }) || container.set('html', text);
        }
   
    });

function handlePensOnClick(theElement, pens) {
	document.getElementById('selectedPens').value = pens;
	document.getElementById('selectedTheme').value = 'everything';
	updateProjects();
}

function handleThemeOnClick(theElement, themeHandle) {
	document.getElementById('selectedTheme').value = themeHandle;
	document.getElementById('selectedPens').value = 'promarkers';
	updateProjects();
}

function handleShowMoreProjectsOnClick(theElement, offset) {
	theme = document.getElementById('selectedTheme').value;
	pens = document.getElementById('selectedPens').value;
	
	theElement.value = 'Loading...';
	var req = new Request.HTML({
		url: siteurlprefix + '/projects-for-theme/' + theme + '/' + pens + '/' + offset,
		append: 'projects-for-theme',
		onSuccess: function(html) { theElement.style.display = 'none'; Slimbox.scanPage(); }
	}).send();
}

function handleShowMoreResultsOnClick(theElement, offset) {
	theElement.value = 'Loading...';
	var req = new Request.HTML({
		url: siteurlprefix + '/search-more?q='+ $('result-q').value + '&o=' + offset,
		append: 'results',
		onSuccess: function(html) { theElement.style.display = 'none'; }
	}).send();
}

function handleShowMoreIdeasOnClick(theElement, offset) {
	theme = document.getElementById('selectedTheme').value;
	pens = document.getElementById('selectedPens').value;
	theElement.value = 'Loading...';
	var req = new Request.HTML({
		url: siteurlprefix + '/ideas-for-theme/' + theme + '/' + offset,
		append: 'projects-for-theme',
		onSuccess: function(html) { theElement.style.display = 'none'; Slimbox.scanPage(); }
	}).send();
}

function updateProjects() {
	theme = document.getElementById('selectedTheme').value;
	pens = document.getElementById('selectedPens').value;
	var req = new Request.HTML({
		url: 'projects-for-theme/' + theme + '/' + pens,
		update: 'projects-for-theme',
		onSuccess: function(html) { Slimbox.scanPage(); }
	}).send();
}

