/*
 * Foto functies
 * Herschreven door Floris op 26-09-2009
 * 
 * 'background' is de grijze achtergrond
 * 'polaroid' is de witte overlay + de 2 witte zijkant-balken incl inhoud
 * 
 * 
 */

// HOOFDFUNCTIE 1
function fotos_show_random_foto(fid){
	
	// Eerst de background laten zien
	fotos_show_background();
	// Dan de polaroid tevoorschijn halen
	fotos_show_polaroid();
	
	fotos_fill_polaroid("random", fid, random_fotos[fid][0], random_fotos[fid][1], random_fotos[fid][2], random_fotos[fid][3], random_fotos[fid][4], random_fotos[fid][5], random_fotos[fid][6])
}

// HOOFDFUNCTIE 2
function fotos_show_set_foto(fid){
	
	// Eerst de background laten zien
	fotos_show_background();
	// Dan de polaroid tevoorschijn halen
	fotos_show_polaroid();
	
	fotos_fill_polaroid("set", fid, fotos[fid][0], fotos[fid][1], fotos[fid][2], fotos[fid][3], fotos[fid][4], fotos[fid][5], fotos[fid][6])
}

/*
 * De grijze achtergrond van de overlay.
 */
// Show functie
function fotos_show_background() {
	temp = getPageDimensions();
	if(temp.scrollHeight < 200){
		//IE hack
		screenHeight = temp.innerHeight;
	}else{
		screenHeight = temp.scrollHeight;
	}
	document.getElementById('overlay').className = 'foto_overlay_visible';
	document.getElementById('overlay').style.height = screenHeight+'px';
	document.getElementById("overlay").onclick = fotos_hide_background;
}
// Verberg functie
function fotos_hide_background() {
	fotos_hide_polaroid();
	
	document.getElementById('overlay').className = 'foto_overlay_hidden';
	document.getElementById('overlay').style.height = 0+'px';
    document.getElementById('east_side_ad1_iframe').style.display = 'block';
}

/*
 * De witte overlay laten zien (polaroid)
 */
function fotos_show_polaroid(){
	// Polaroid overlay plaatsen
	foto_frame = "<div id=\"fotolijst\" class=\"fotolijst_hidden\">";
	foto_frame += "<div id=\"fotolijst_titel\">Foto</div>";
	foto_frame += "<div id=\"fotohouder\">Foto</div>";
	foto_frame += "<div id=\"foto_namen_houder\"></div>"; 
	foto_frame += "<div id=\"datumhouder\">datum</div>";
	foto_frame += "<div id=\"navhouder\"></div>";
	foto_frame += "";
	if(userLevel > 0){
		foto_frame += "<b>Persoon spotten op deze foto:</b><br />";
		foto_frame += "<form onsubmit='addUserFotoRelatie();return false;'><input type=\"text\" name=\"naam\" id=\"lid_foto\"> <input type='submit' onclick='addUserFotoRelatie();return false;' value=' Verzend ' /></form>";
	}
	foto_frame += "<div id=\"relatie_result\"></div>";
	foto_frame += "</div>";
	
	document.getElementById('popup').innerHTML = foto_frame;
	document.getElementById('popup').className = 'popup_visible';
	document.getElementById('fotolijst').className = 'fotolijst_visible';
	
	// De 2 balken toevoegen
	fotos_show_quicktag();
	fotos_show_specialtag();
}

function fotos_hide_polaroid(){
	// Polaroid overlay hiden
	document.getElementById('popup').className = 'popup_hidden';
	document.getElementById('fotolijst').className = 'fotolijst_hidden';
}

/* 
 * Deze functie vult de polaroid overlay met alle informatie
 * 
 * foto_type = random / set
 * foto_type_id = om volgende/vorige te fixen
 * foto_id = foto ID..
 * rest spreekt voor zich
 */
function fotos_fill_polaroid(foto_type,foto_type_id,foto_id,foto_datum,foto_mwidth,foto_mheight,foto_set,foto_swidth,foto_sheight){

	// Huidige foto even aanpassen
	huidige_foto_id = foto_id;
	
	// Foto zelf weergeven
	document.getElementById('fotohouder').innerHTML = '<img id="m'+foto_id+'" src="/ajax/fotos/get_foto?a=get_foto&foto_id='+foto_id+'&set='+foto_set+'&size=M" onclick="javascript:fotos_klik_navigatie(\''+foto_type+'\',\'next\','+foto_type_id+')" />';
	
	// Datum weergeven
	document.getElementById('datumhouder').innerHTML = '<b>'+foto_datum+'</b> <br />';
	// Daar hoort de navigatie bij
	// TODO: Hier een aparte div voor maken + layouten met CSS
	document.getElementById('datumhouder').innerHTML += '<a href="javascript:fotos_klik_navigatie(\''+foto_type+'\',\'prev\','+foto_type_id+')"><img width=40 height=29 src="/includes/images/common/pijl_links.gif"></a>&#160;&#160;&#160;';
	// Set+Download-link
	document.getElementById('datumhouder').innerHTML += '<a href="/fotos?a=toonset&id='+foto_set+'">Ga naar set</a> | <a href="/ajax/fotos/get_foto?a=get_foto&foto_id='+foto_id+'&size=L">Downloaden</a>';
	// Navigatie
	document.getElementById('datumhouder').innerHTML += '&#160;&#160;&#160;<a href="javascript:fotos_klik_navigatie(\''+foto_type+'\',\'next\','+foto_type_id+')"><img width=40 height=29 src="/includes/images/common/pijl_rechts.gif"></a>';
	
	// AJAX result altijd iets inzetten (anders rare verspringingen)
	document.getElementById('relatie_result').innerHTML = '&nbsp;';
	// Namen-div (zelfde verhaal, altijd iets inzetten)
	document.getElementById('foto_namen_houder').innerHTML = '&nbsp;'+fotos_get_namen(foto_id);
	
	// De hoogte van de polaroid-div aanpassen.
	document.getElementById('fotolijst').style.width = parseInt(foto_mwidth)+50+'px';
	document.getElementById('fotolijst').style.height = parseInt(foto_mheight)+220+'px';
	
	// Special tags
	if(userLevel >= 4){
		getPage('/ajax/fotos/get_foto_specialtag?fid='+huidige_foto_id,'fotolijst_specialtag_result',true);
	}
}

/*
 * Navigatie-functie
 */
function fotos_klik_navigatie(type,direction,foto_type_id){
	// Tijdelijke int
	progress = 0;
	
	// Welke kant gaan we op?
	if(direction == 'next'){
		// Vooruit
		progress = 1;
	} else {
		// Blijven zitten in die rit, we gaan ACHTERUIT
		// (c) Kermis sound board
		progress = -1;
	}
	
	// Het type foto = random (balk bovenin + profiel)
	if(type == 'random'){
		if(typeof(random_fotos[parseInt(foto_type_id)+progress]) == 'object')
		{
			fotos_show_random_foto(parseInt(foto_type_id)+progress);
		}
	}
	
	// Het is een normale set
	if(type == 'set'){
		if(typeof(fotos[parseInt(foto_type_id)+progress]) == 'object')
		{
			fotos_show_set_foto(parseInt(foto_type_id)+progress);
		}
	}
}

/*
 * Functies waarmee de 2 balken aan de zijkant gemaakt worden.
 */
function fotos_show_quicktag(){
	if(userLevel > 0)
	{
		foto_frame = "<div id=\"fotolijst_autotag\"><div id=\"fotolijst_titel\">Quicktag</div>Mensen die je vaak tagt, klik om snel te taggen:";
		for(var i=0;i<quicktag.length;i++)
		{
			foto_frame += "<div class=\"fotolijst_autotag_item\"><a onclick='addQuicktagFotoRelatie(" + quicktag[i][0] + ");' onmouseover=\"this.style.cursor='pointer';\">" + quicktag[i][1] + "</a> (" + quicktag[i][2] +"x)</div>";
		}
		foto_frame += "</div>";
		
		document.getElementById('fotolijst').innerHTML = document.getElementById('fotolijst').innerHTML + foto_frame;
	}
}

function fotos_show_specialtag(){
	if(userLevel > 3) {
		foto_frame = "<div id=\"fotolijst_specialtag\"><div id=\"fotolijst_titel\">Speciaal</div>Klik voor speciale tag op deze foto:";
		for(var i=0;i<specialtags.length;i++)
		{
			foto_frame += "<div class=\"fotolijst_autotag_item\"><a onclick='addSpecialtagFotoRelatie(" + specialtags[i][0] + ");' title=\""+ specialtags[i][2] +"\" onmouseover=\"this.style.cursor='pointer';\">" + specialtags[i][1] + "</a></div>";
		}
		foto_frame += "<br />Huidige tags:<br /><div id=\"fotolijst_specialtag_result\">&nbsp;</div>";
		foto_frame += "</div>";
		
		document.getElementById('fotolijst').innerHTML = document.getElementById('fotolijst').innerHTML + foto_frame;
	}
}

/*
 * Functie waarmee de tags worden uitgelezen en als string worden teruggegeven.
 */
function fotos_get_namen(foto_id){
	foto_namen_str = "";
	if(typeof(foto_namen) == 'object'){
		if(typeof(foto_namen[foto_id])=='object'){
			for(var i=0;i<foto_namen[foto_id].length;i++){
				foto_namen_str += foto_namen[foto_id][i];
				if((userName == foto_namen[foto_id][i]) || (userLevel > 4)) {
					foto_namen_str += '</i> [<a href="#" onclick="removeUserFotoRelatie('+userID+');return false;">X</a>]<i>';
				}
				foto_namen_str += ', ';
			}
			if( foto_namen_str.length > 0 ){
				foto_namen_str = foto_namen_str.substr(0, (foto_namen_str.length-2));
			}
		}
	}
	return foto_namen_str;
}


/*********************************************************************
 * 
 *  AJAX HANDLERS
 *  
 *********************************************************************/

function addUserFotoRelatie(){	
	var lid_foto = document.getElementById('lid_foto').value;
	getPage('/ajax/fotos/set_foto_relatie?fid='+huidige_foto_id+'&lid='+lid_foto+'','relatie_result',true);
}

function addSelectUserFotoRelatie(){
	var lid_foto = document.getElementById('lid_foto2').value;
	getPage('/ajax/fotos/set_foto_relatie2?fid='+huidige_foto_id+'&lid2='+lid_foto+'','relatie_result',true);
}

function addQuicktagFotoRelatie(id){
	getPage('/ajax/fotos/set_foto_relatie2?fid='+huidige_foto_id+'&lid2='+id+'','relatie_result',true);
}

function addSpecialtagFotoRelatie(id){
	getPage('/ajax/fotos/set_foto_specialtag?fid='+huidige_foto_id+'&tid='+id+'','relatie_result',true);
}

function removeSpecialtagFotoRelatie(tid){
	getPage('/ajax/fotos/remove_foto_specialtag?fid='+huidige_foto_id+'&tid='+tid+'','relatie_result',true);
}

function removeUserFotoRelatie(id){
	getPage('/ajax/fotos/remove_foto_relatie?fid='+huidige_foto_id+'&lid='+id,'relatie_result',true);
}


/*********************************************************************
 * 
 *  OUDE VERCRACKERDE CODE, HEB IK NIETS MEE TE MAKEN (FLORIS)
 *  
 *********************************************************************/
function is_array( mixed_var ) {
    return ( mixed_var instanceof Array );
}

function add_foto_actionlistener(){
	//Hang aan elke foto een action handler
	var fotos = document.getElementById("fotos");
	  var links = fotos.getElementsByTagName("img");
	  for ( var i=0; i < links.length; i++) {
	    links[i].onclick = function() {
	      return fotos_show_set_foto(this.id);
	    }
	  }
}

var pagina=-1
var foto_teller = 0;
function toon_fotos(aktie){
	if(aktie==1){		
		pagina++;
	}else{
		pagina--;
	}
	var begin = pagina*aantal_fotos_per_pagina;
	
	
	var result = "";
	
	//Bereken het aantal foto's aan het eind van de set
	if((begin+aantal_fotos_per_pagina) > (fotos.length)){
		aantal_fotos = ((fotos.length)-(begin));
	}else{
		aantal_fotos = aantal_fotos_per_pagina;
	}
	
	result += "<table valign=\"top\" border=0 class=\"foto_table\"><tr>";
	var foto_teller = 0;
	for (i=begin;i<begin+aantal_fotos;i++){
		//Breek af bij 5 foto's
		if(foto_teller==4){
			//result += '<br />';
			result += '</tr><tr>';
			foto_teller = 0;
		}
		foto_teller++;
		
		
		result += "<td align=\"center\"><img src=\"/ajax/fotos/get_foto?a=get_foto&foto_id="+fotos[i][0]+"&set="+fotos[i][4]+"&size=S\" id="+i+" class=fotos_foto /></td>";
	}
	result += "</tr>";
	result += "</table>";
	document.getElementById('fotos').innerHTML = result+'';
	add_foto_actionlistener();

}


//Functie gejat van tweakers.net
function getPageDimensions()
{
	var dE = document.documentElement || document.body, scrollWidth, scrollHeight;

	if (window.innerHeight && window.scrollMaxY)
	{
		scrollWidth = window.innerWidth + window.scrollMaxX;
		scrollHeight = window.innerHeight + window.scrollMaxY;
	}
	else
	{
		scrollWidth = Math.max(document.body.scrollWidth, document.body.offsetWidth);
		scrollHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight);
	}

	var innerWidth = dE.clientWidth || window.innerWidth;
	var innerHeight = dE.clientHeight || window.innerHeight;

	if (window.innerWidth)
	{
		scrollWidth += innerWidth - window.innerWidth;
		innerWidth = window.innerWidth;
	}
	if (window.innerHeight)
	{
		scrollHeight += innerHeight - window.innerHeight;
		innerHeight = window.innerHeight;
	}

	return {
		scrollWidth: scrollWidth,
		scrollHeight: scrollHeight,
		innerWidth: innerWidth,
		innerHeight: innerHeight,
		offsetX: window.pageXOffset || dE.scrollLeft,
		offsetY: window.pageYOffset || dE.scrollTop
	};
}


//Toon foto sets, 15 per pagina
foto_sets_pagina = 0;
function toon_foto_sets(aktie){
	if(aktie=="plus"){		
		foto_sets_pagina++;
	}else if(aktie == "min"){
		if(foto_sets_pagina > 0){
			foto_sets_pagina--;
		}
	}
	else
	{
		foto_sets_pagina = parseInt(aktie);
	}
	
	setCookie("foto_set",foto_sets_pagina,null);
	
	document.getElementById("foto_sets_pagina").innerHTML = (foto_sets_pagina+1);
	//getPage('/fotos/?a=get_foto_sets&pagina='+foto_sets_pagina+'','foto_sets_container',true);
	
	//Haal via AJAX een nieuwe lijst met foto sets op
	$.ajax({
	   type: "GET",
	   url: "/ajax/fotos/get_foto_sets?pagina="+foto_sets_pagina,
	   success: function(html){
		 //Set de data in een DIV en zorg dat de foto's klikbaar zijn		 
		 $("#foto_sets_container").html(html);
		 
		 $(document).ready(function() {
			$('.rand_fotos_van_fotoset').lightBox();		
		});
	   }
	 });

	
	
	
}
