index.php
[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<title>Flickr <-> Kliksafe Cracker</title>
	<script type="text/javascript" src="ajax-functions.js"></script>		
	<link rel="stylesheet" type="text/css" href="flickrstyle.css" />
</head>
<body>
	<div id="hiddencontent" style="display:none"></div>
	<div id="loading">
		Bezig met laden...<br />
		<img src="images/loading.gif" alt="loading" />
	</div>
	<div id="header">
	<div><span style="color:#0063dc">Flick</span>r<sup style="font-size:12px">&trade;</sup> ImageRipper</div>
	<div style="font-size:20px;color:#aa0020">Kliksafe cracked</div>
	<form method="post" action="javascript:getFlickrImages()">
		<input type="text" id="searchinput" onfocus="this.style.backgroundColor='#fbf'" onblur="this.style.backgroundColor='#fff'" />
		<input type="submit" id="searchsubmit" value="Zoek Flickr" style="width:200px;" />
	</form>
	</div>
	<div id="content">
		<div style="font-size:20px;margin-top:15%;color:#888;">
			Typ een zoekopdracht!
		</div>
	</div>
	<div id="navcontainer"></div>
</body>
</html>
[/code]
javascriptfile: ajax-functions.js 
[code]
function Ajax(){
	var xmlHttp;
	this.createXMLHttpRequest = function createXMLHttpRequest() {
		if (window.ActiveXObject) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else if (window.XMLHttpRequest){
			xmlHttp = new XMLHttpRequest();
		}
	}
	this.startAjaxRequest = function startAjaxRequest(url,data,functie) {
		actie = functie
		show_hide_elem('loading','show')
		this.createXMLHttpRequest();
		xmlHttp.onreadystatechange = this.handleStateChange;
		xmlHttp.open("POST", url, true);
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");		
		xmlHttp.send(data);
	}
	this.handleStateChange = function handleStateChange() {
		if(xmlHttp.readyState == 4) {
			if(xmlHttp.status == 200) {
				eval(actie)				
				show_hide_elem('loading','hide')
			}
			else{
				alert('Er is een fout opgetreden: (' + xmlHttp.status + ') ' + xmlHttp.responseText)	
			}
		}
	}
}

function toggle_element(elementid){
	var toggleelement = document.getElementById(elementid)
	if(toggleelement.style.display == 'none' || toggleelement.style.display == ''){
		toggleelement.style.display = 'block'
	}
	else if(toggleelement.style.display == 'block'){
		toggleelement.style.display = 'none'
	}
}
function show_hide_elem(elementid,s_h){
	var toggleelement = document.getElementById(elementid)
	var show_hide = s_h

	if(show_hide == 'show'){
		if(toggleelement.style.display == 'none' || toggleelement.style.display == ''){
			toggleelement.style.display = 'block'
		}
	}
	else if(show_hide == 'hide'){
		if(toggleelement.style.display == 'block'){
			toggleelement.style.display = 'none'
		}
	}
}

function getFlickrImages(flickrnav){
	var submitknop = document.getElementById('searchsubmit')
	submitknop.disabled = true
	submitknop.value = 'Bezig met zoeken...'
	
	var container = document.getElementById('content')
	if(container.childNodes.length > 0){
		for(i=0;container.childNodes.length;i++){
			container.removeChild(container.firstChild)
		}
	}	
	
	var navcontainer = document.getElementById('navcontainer')
	if(navcontainer.childNodes.length > 0){
		for(i=0;navcontainer.childNodes.length;i++){
			navcontainer.removeChild(navcontainer.firstChild)
		}
	}	
	
	
	var searchvalue = document.getElementById('searchinput').value
	var parsedsearchvalue = searchvalue.replace(' ','+')
	if(flickrnav == null){
		var flickrpage = 'http://68.142.214.24/search/?q=' + parsedsearchvalue
	}
	else{
		var flickrpage = 'http://68.142.214.24' + flickrnav
	}
	var info = 'flickrpage=' + flickrpage
	var ajax_ding = new Ajax();
	ajax_ding.startAjaxRequest('ajax-actions.php?action=get_images',info,'getFlickrImages_action(xmlHttp.responseText)')			
}

function getFlickrImages_action(xmltekst){
	var submitknop = document.getElementById('searchsubmit')
	submitknop.disabled = false
	submitknop.value = 'Zoek Flickr'
	var tempsplit = xmltekst.split('[datadivide]')
	var urls = tempsplit[0]
	var urlarray = urls.split('[urldivide]')
	for(i=0;i<=urlarray.length - 2;i++){
		var contentelem = document.getElementById('content')
		var newimage = contentelem.appendChild(document.createElement('img'))
		var parsedurl = urlarray[i].replace('http://farm1.static.flickr.com','http://68.142.213.135')
		newimage.src = parsedurl
	}
	var nextlinksrc = tempsplit[1]
	if(nextlinksrc != ''){
		var navcontainer = document.getElementById('navcontainer')
		var newnextlink = navcontainer.appendChild(document.createElement('a'))
		newnextlink.href= '#'
		newnextlink.onclick = function(){getFlickrImages(nextlinksrc)}
		newnextlink.appendChild(document.createTextNode('Volgende'))
	}
	

}

[/code]
php server pagina: ajax-actions.php
[code]
<?php
switch($_GET['action']){
	case 'get_images':
		$url = $_POST['flickrpage'].'&page='.$_POST['page'].'&m=text';
		$tekst = file_get_contents($url);	
		
		$doc = new DOMDocument();
		$doc->loadHTML($tekst);
		$doc->saveHTML();
		
		$tds = $doc->getElementsByTagName('td');
		foreach ($tds as $param) {
			$class = $param -> getAttribute('class');
			if($class == 'DetailPic'){
				$imgs = $param -> getElementsByTagName('img');
				foreach ($imgs as $plaatje) {
					$imgurl = $plaatje -> getAttribute('src');
					echo $imgurl.'[urldivide]';
				}
			}			
		}
		
		echo '[datadivide]';
		//haal volgende-pagina URL op
		$divs = $doc->getElementsByTagName('div');
		foreach ($divs as $div) {
			$nextclass = $div -> getAttribute('class');
			if($nextclass == 'Paginator'){
				$links = $div -> getElementsByTagName('a');
				foreach ($links as $link) {
						$linkclass = $link -> getAttribute('class');
						if($linkclass == 'Next'){
							echo 	$link -> getAttribute('href');			
					}
				}			
			}
		}
	break;
	
	
}
?>
[/code]