var BildArray = new Array();

BildArray =new Array( "/images/Luis.jpg", "/images/Henner.jpg", "/images/LuisHL.jpg", "/images/HennerHL.jpg", "/images/topContactHL.gif", "/images/topHomeHL.gif", "/images/topPortfolioHL.gif", "/images/logo_vertical.png", "/images/nav_portfolio_prev.gif", "/images/logo.png");
// alternative Schreibweise:
// BildArray = new Array("../images/img01.jpg", ... "../images/img04.jpg");

function Vorladen()
{
  for (i=0; i < BildArray.length; i++) {
    var Bild = new Image();
    Bild.src = BildArray[i];
  }
}


// Preloader fuer Bilder
function preloadImages() {
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

// Div Layer anzeigen oder ausblenden
function openClose(targetName) {
	if(document.getElementById(targetName).style['display']=="block")
		document.getElementById(targetName).style['display'] = 'none';
	else
		document.getElementById(targetName).style['display'] = 'block';
}	


// Detailansicht Photo Naechstes und Laetztes
function openCloseNextLast(targetName) {

	if(targetName=='photoDetailMenueLast')
		document.getElementById('photoDetailMenueNext').style['display'] = 'none';
	if(targetName=='photoDetailMenueNext')
		document.getElementById('photoDetailMenueLast').style['display'] = 'none';

	openClose(targetName);
}	

// Neues Fenster oeffnen
function openNewWindow(url) {
	var newWindow = window.open(url, "deviantphoto", "scrollbars=yes,location=yes,status=yes,toolbar=yes,menubar=yes,resizable=yes,width=900,height=780,left=0,top=0");
	if(!newWindow) 
		alert ("Vorschaufenster konnte nicht geöffnet werden. Bitte stellen sie sicher das kein Werbeblocker aktiv ist!");
}


// Sortierfelder von http://bilder.deviantphoto.de
//

// Versteckt andere Listfelder
function hideView(current) {

	if(current!="photosMenueSearch")
		document.getElementById('photosMenueSearch').style['display'] = 'none';

	if(current!="photosMenueSort")
		document.getElementById('photosMenueSort').style['display'] = 'none';

	if(current!="photosMenueListStyle")
		document.getElementById('photosMenueListStyle').style['display'] = 'none';

	if(current!="photosMenueTimelimit")
		document.getElementById('photosMenueTimelimit').style['display'] = 'none';

	if(current!="photosMenueCategory")
		document.getElementById('photosMenueCategory').style['display'] = 'none';
		
	if(document.getElementById('photosMenueFilter') && current!="photosMenueFilter")
		document.getElementById('photosMenueFilter').style['display'] = 'none';

	if(document.getElementById('photosMenueFilterOwner') && current!="photosMenueFilterOwner")
		document.getElementById('photosMenueFilterOwner').style['display'] = 'none';		
}

// Kategorie Liste oeffnen
function viewCategory(base,link) {

	// Transparenz erzeugen
	transparency("photosMenueCategory",12);

	// Andere Listfelder verstecken
	hideView("photosMenueCategory");
	
	// Eigenes Listfeld anzeigen/abschalten
	if(document.getElementById('photosMenueCategory').style['display']=="block")
		document.getElementById('photosMenueCategory').style['display'] = 'none';
	else {
		document.getElementById('photosMenueCategory').style['display'] = 'block';
		openCategory(base,link);
	}
}

// Sortier Liste anzeigen
function viewSort() {

	// Transparenz erzeugen
	transparency("photosMenueSort",12);
	
	// Andere Listfelder verstecken
	hideView("photosMenueSort");

	// Eigenes Listfeld anzeigen/abschalten
	openClose('photosMenueSort');

}	

// Liste Stil anzeigen
function viewListStyle() {

	// Transparenz erzeugen
	transparency("photosMenueListStyle",12);	
	
	// Andere Listfelder verstecken
	hideView("photosMenueListStyle");

	// Eigenes Listfeld anzeigen/abschalten
	openClose('photosMenueListStyle');

}

// Liste Zeitlimit anzeigen
function viewTimelimit() {

	// Transparenz erzeugen
	transparency("photosMenueTimelimit",12);

	// Andere Listfelder verstecken
	hideView("photosMenueTimelimit");
	
	// Eigenes Listfeld anzeigen/abschalten
	openClose('photosMenueTimelimit');

}

// Liste Filter anzeigen
function viewFilter() {

	// Transparenz erzeugen
	transparency("photosMenueFilter",12);	

	// Andere Listfelder verstecken
	hideView("photosMenueFilter");
	
	// Eigenes Listfeld anzeigen/abschalten
	openClose('photosMenueFilter');

}

// Liste Filter anzeigen
function viewFilterOwner() {

	// Transparenz erzeugen
	transparency("photosMenueFilterOwner",12);

	// Andere Listfelder verstecken
	hideView("photosMenueFilterOwner");
	
	// Eigenes Listfeld anzeigen/abschalten
	openClose('photosMenueFilterOwner');

}

// Suche anzeigen
function viewSearch() {

	// Transparenz erzeugen
	transparency("photosMenueSearch",12);

	// Andere Listfelder verstecken
	hideView("photosMenueSearch");
	
	// Eigenes Listfeld anzeigen/abschalten
	openClose('photosMenueSearch');

}

// Hilfe Layer oeffnen
function viewHelp($no) {
	document.getElementById('help' + $no).style['display'] = 'block';
}


// Vorschau fuer Beitraege oeffnen
function popupPreview(button, type) {
	var newWindow = window.open("", "Vorschau", "toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=900,height=780");
	if (!newWindow) 
		alert ("Vorschaufenster konnte nicht geöffnet werden. Bitte stellen sie sicher das kein Werbeblocker aktiv ist!");

	$form = getParent(button, "form");
	var action = $form.getAttribute("action");
	$form.setAttribute("target", "Vorschau");
	$form.setAttribute("action", "vorschau/" + type);
	$form.submit();
	$form.setAttribute("target", "");
	$form.setAttribute("action", action);
	newWindow.focus();
}

function getParent(node, sSelector)
{
	var marker = /^([^\.:\[]*)(?:\.([^:\[]*)|([^:\[]*))(?:\[([^\]]*)\]|([^:]*))$/;
	var sTokens, nodes, top = (node.ownerDocument || node.document).documentElement;
	sTokens = sSelector.match(marker);
	if (!sTokens[2]) {
		sTokens[2] = "";
	}

	do {
		if (sTokens[1] != "" && String(node.tagName).toLowerCase() != sTokens[1])
			continue;
		if (sTokens[2] != "" && !hasClass(node, sTokens[2]))
			continue;
		return node;
	} while ((node = node.parentNode) && node != top);

	return null;
}

// Erzeugt Formular fuer Kommentar Antwort					
function reply(entry) {
	ausgabe = "<div class=\"commentReply\"><table><tr><td><h2>Antwort schreiben</h2><p><textarea name=\"content\" id=\"content" + entry + "\" class=\"formTextarea\"></textarea></p><div id=\"quickhelp\"><a href=\"javascript:quickmenueEmoticons(" + entry + ")\">Emoticons</a> - <a href=\"javascript:openNewWindow('http://www.deviantphoto.eu/hilfe/6202')\">Formatierungscodes</a></div><p><input type=\"button\" onclick=\"javascript:do_addComment(" + entry + ")\" value=\"abschicken\" name=\"abschicken\" class=\"formButton\" /></p><div class=\"quickmenueEmoticons\" id=\"quickmenueEmoticons" + entry + "\"></div></td></tr></table></div>";
	document.getElementById("reply" + entry).innerHTML = ausgabe;
	document.getElementById("reply" + entry).style['display'] = 'block';
}

// Antwort auf Beitraege im MessageCenter schreiben
function sendAnswer(button, entry) {
	var fenster = window.open("", "Antworten", 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=400,height=180');
	if (!fenster) 
		alert ("Kommentarabgabgefenster konnte nicht geöffnet werden. Bitte stellen sie sicher das kein Werbeblocker aktiv ist!");

	$form = getParent(button, "form");
	var action = $form.getAttribute("action");
	$form.setAttribute("target", "Antworten");
	$form.setAttribute("action", "nachrichten/kommentar/antwort/" + entry);
	$form.submit();
	$form.setAttribute("target", "");
	$form.setAttribute("action", action);
	fenster.focus();

	document.getElementById("reply" + entry).innerHTML = '';
	document.getElementById("reply" + entry).style['display'] = 'none';

}


// Checkboxes markieren
function checkAll(param,formIndex){

	for (var i=0;i<document.forms[formIndex].elements.length;i++){

		var e = document.forms[formIndex].elements[i];

		if(e.type=="checkbox"){
			if(param) {			
				if(String(e.id).charAt(0)==param)
					e.checked = true;
			} else
				e.checked = true;
		}
	}
	
}


// Vorschau fuer Style Preview aendern
function changePreview(path,number) {
	document.getElementById("preview").innerHTML = "<img src=" + path + "/" + number + "/thumbnail.jpg alt='Vorschau' />";
}


/* 'Transparenz 061005' (c) by cybaer@binon.net
   --------------------
 Inhalt    : Stellt die Transparenz von Elementen ein (von 0-100%)
 Aufruf    : transparency(element,percentage)
 Parameter : element (Element, auf das der Effekt angewendet werden soll. Reihenfolge der Auswertung:
                      Object (z.B. document.images[1])
                      NAME-Attribut (z.B. "transparent")
                      ID-Attribut (z.B. "transparent")
                      HTML-Tag (z.B. "img")
             percentage (Optional: Prozentsatz der Transparenz, voreingestellt: 50%)
 Sprache   : JavaScript 1.1 (ungesichert), JavaScript 1.5 (gesichert)
 Quelle    : http://Coding.binon.net/Transparenz (cybaer@binon.net)
             Die kostenlose Nutzung der Quelltexte in eigenen Projekten ist
             bei nicht-kommerziellen Projekten (und deren unentgeltlicher
             Herstellung) bei Nennung der Quelle ausdruecklich gestattet.
 InlineFunc: -
 Konstante : -
 Variable  : -
 SystemVar : -
 ExternVar : -
 Rueckgabe : -
 Anmerkung : Benutzt die CSS-Styles "filter" (Internet Explorer), "-moz-opacity" (Mozilla), "-khtml-opacity" (Konqueror/Safari) und "opacity" (CSS 3) mittels W3C-DOM
 Beispiele : HTML  : <img src="test.gif" onMouseOver="transparency(this,75);" onMouseOut="transparency(this,0);">
                  -> Das Bild test.gif wird zu 75% transparent, wenn die Maus drueber faehrt
             HTML  : <img id="T1" name="aussen" src="test.gif"><img id="T2" name="innen" src="test.gif"><img id="T3" name="Aussen" src="test.gif">
             Script: transparency(document.images[0],50%);
                  -> Das erste Bild des Dokuments wird halb transparent.
             Script: transparency("T1");
                  -> Das linke Bild (mit der ID "T1") wird halb transparent.
             Script: transparency("Aussen",25);
                  -> Das linke & rechte Bild (mit dem Namen "Aussen") werden viertel transparent.
             Script: transparency("img",75);
                  -> Alle Bilder (HTML-Tag <img>) werden dreiviertel transparent.
*/

function transparency(element,percentage) {
 // Lokale Variablen definieren
 var i, count, objStyle;

 // Browser unterstuetzt (W3C-)DHTML?
 if(document.getElementById) {

  // Wurde Object uebergeben und existiert es?
  if(typeof(element)=="object" && element) { obj=element; }
  // Ansonsten: Existiert (mindestens) ein HTML-Element mit passendem NAME-Attribut?
  else if (document.getElementsByName(element) && document.getElementsByName(element)[0]) { obj=document.getElementsByName(element); }
  // Ansonsten: Existiert ein HTML-Element mit passendem ID-Attribut?
  else if (document.getElementById(element)) { obj=document.getElementById(element); }
  // Ansonsten: Existiert (mindestens) ein passendes HTML-Element?
  else if (document.getElementsByTagName && document.getElementsByTagName(element) && document.getElementsByTagName(element)[0]) { obj=document.getElementsByTagName(element); }
  // Ansonsten: Kein passendes Objekt gefunden
  else { obj=false; }

  // Wenn ein Objekt existiert
  if(obj) {
   // Gueltigen Prozentwert definieren (Deckungswert)
   percentage=(typeof(percentage)=="undefined")?50:100-percentage;
   // Anzahl der passenden Elemente bestimmen
   count=(obj.length)?obj.length:1;
   // Diese Elemente durchgehen
   for(i=0;i<count;i++) {
    // (Arbeits-)Stylesheet-Objekt definieren
    objStyle=(obj.length)?obj[i].style:obj.style;
    // "filter(Alpha)"-Style setzen (fuer IE)
    objStyle.filter="Alpha(opacity="+percentage+")";
    // "-moz-opacity"-Style setzen (fuer Mozilla)
    objStyle.MozOpacity=""+percentage/100;
    // "-khtml-opacity"-Style setzen (fuer Konqueror/Safari)
    objStyle.KTHMLOpacity=""+percentage/100;
    // "opacity"-Style setzen (fuer CSS-3-Browser)
    objStyle.opacity=""+percentage/100;
   }
  }

 }
}



//-->



/* Ajax Funktionen (siehe http://absinth.modernmethod.com/sajax/) */

// remote scripting library
// (c) copyright 2005 modernmethod, inc
var sajax_debug_mode = false;
var sajax_request_type = "POST";
var sajax_target_id = "";
var sajax_failure_redirect = "";

function sajax_debug(text) {
	if (sajax_debug_mode)
		alert(text);
}

function sajax_init_object() {
	sajax_debug("sajax_init_object() called..")
	
	var A;
	
	var msxmlhttp = new Array(
		'Msxml2.XMLHTTP.5.0',
		'Msxml2.XMLHTTP.4.0',
		'Msxml2.XMLHTTP.3.0',
		'Msxml2.XMLHTTP',
		'Microsoft.XMLHTTP');
	for (var i = 0; i < msxmlhttp.length; i++) {
		try {
			A = new ActiveXObject(msxmlhttp[i]);
		} catch (e) {
			A = null;
		}
	}
	
	if(!A && typeof XMLHttpRequest != "undefined")
		A = new XMLHttpRequest();
	if (!A)
		sajax_debug("Could not create connection object.");
	return A;
}

var sajax_requests = new Array();

function sajax_cancel() {
	for (var i = 0; i < sajax_requests.length; i++) 
		sajax_requests[i].abort();
}

function sajax_do_call(uri, func_name, args) {
	var i, x, n;
	var post_data;
	var target_id;
	// var uri;
	
	sajax_debug("in sajax_do_call().." + sajax_request_type + "/" + sajax_target_id);
	target_id = sajax_target_id;
	if (typeof(sajax_request_type) == "undefined" || sajax_request_type == "") 
		sajax_request_type = "GET";
	
	if (sajax_request_type == "GET") {
	
		if (uri.indexOf("?") == -1) 
			uri += "/?rs=" + escape(func_name);
		else
			uri += "&rs=" + escape(func_name);
		uri += "&rst=" + escape(sajax_target_id);
		uri += "&rsrnd=" + new Date().getTime();
		
		for (i = 0; i < args.length-1; i++) 
			uri += "&rsargs[]=" + encodeURIComponent(args[i]);

		post_data = null;
	} 
	else if (sajax_request_type == "POST") {
		post_data = "rs=" + escape(func_name);
		post_data += "&rst=" + escape(sajax_target_id);
		post_data += "&rsrnd=" + new Date().getTime();
		
		for (i = 0; i < args.length-1; i++) 
			post_data = post_data + "&rsargs[]=" + encodeURIComponent(args[i]);
	}
	else {
		alert("Illegal request type: " + sajax_request_type);
	}
	
	x = sajax_init_object();
	if (x == null) {
		if (sajax_failure_redirect != "") {
			location.href = sajax_failure_redirect;
			return false;
		} else {
			sajax_debug("NULL sajax object for user agent:\n" + navigator.userAgent);
			return false;
		}
	} else {
		x.open(sajax_request_type, uri, true);
		// window.open(uri);
		
		sajax_requests[sajax_requests.length] = x;
		
		if (sajax_request_type == "POST") {
			x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
			x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		}
	
		x.onreadystatechange = function() {
			if (x.readyState != 4) 
				return;

			sajax_debug("received " + x.responseText);
		
			var status;
			var data;
			var txt = x.responseText.replace(/^\s*|\s*$/g,"");
			status = txt.charAt(0);
			data = txt.substring(2);

			if (status == "") {
				// let's just assume this is a pre-response bailout and let it slide for now
			} else if (status == "-") 
				alert("Error: " + data);
			else {
				if (target_id != "") 
					document.getElementById(target_id).innerHTML = eval(data);
				else {
					try {
						var callback;
						var extra_data = false;
						if (typeof args[args.length-1] == "object") {
							callback = args[args.length-1].callback;
							extra_data = args[args.length-1].extra_data;
						} else {
							callback = args[args.length-1];
						}
						callback(eval(data), extra_data);
					} catch (e) {
						sajax_debug("Caught error " + e + ": Could not eval " + data );
					}
				}
			}
		}
	}
	
	sajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
	x.send(post_data);
	sajax_debug(func_name + " waiting..");
	delete x;
	return true;
}


// Bilder
function do_addFav_cb(res) { 
	document.getElementById("menueFav").innerHTML = res; 
} 

function do_addFav(photoID) { 
	document.getElementById("menueFav").innerHTML = "!!! Bitte warten !!!"; 
	x_addFav(photoID, do_addFav_cb); 
} 
function do_addTipp_cb(res) { 
	document.getElementById("menueTipp").innerHTML = res; 
} 

function do_addTipp(photoID) { 
	document.getElementById("menueTipp").innerHTML = "!!! Bitte warten !!!"; 
	x_addTipp(photoID, do_addTipp_cb); 
} 
function do_addVote_cb(res) { 
	document.getElementById("menueVote").innerHTML = res; 
} 

function do_addVote(photoID) { 
	document.getElementById("menueVote").innerHTML = "!!! Bitte warten !!!"; 
	x_addVote(photoID, do_addVote_cb); 
} 
function do_addAbo_cb(res) { 
	document.getElementById("menueAbo").innerHTML = res; 
} 

function do_addAbo(photoID) { 
	document.getElementById("menueAbo").innerHTML = "!!! Bitte warten !!!"; 
	x_addPhotoAbo(photoID, do_addAbo_cb); 
} 


// Freunde Ajax
function do_addFriend_cb(res) { 
	document.getElementById("menueFriend").innerHTML = res; 
}

function do_addFriend(username) { 
	document.getElementById("menueFriend").innerHTML = "!!! Bitte warten !!!"; 
	x_addFriend(username, do_addFriend_cb); 
} 
function do_removeFriend_cb(res) { 
	document.getElementById("menueFriend").innerHTML = res; 
} 

function do_removeFriend(username) { 
	document.getElementById("menueFriend").innerHTML = "!!! Bitte warten !!!"; 
	x_removeFriend(username, do_removeFriend_cb); 
} 


// Comment Ajax
var commentID;

function do_addComment(c) { 
	commentID = c; 
	writtenText = document.getElementById("content" + commentID).value; 
	document.getElementById("reply" + commentID).innerHTML = "<table><tr><td><p><img src='_styles/0/icons/comment_writing.gif' alt='' /> Bitte warten - Kommentar wird gespeichert!</p></td></tr></table>"; 
	x_addComment(writtenText, commentID, do_addComment_cb); 
} 

function do_addComment_cb(res) { 
	document.getElementById("reply" + commentID).innerHTML = res; 
	if(document.getElementById("replyInfo" + commentID)) 
		document.getElementById("replyInfo" + commentID).innerHTML = "diese Nachricht wurde beantwortet und deshalb entfernt!"; 
} 


// Shoutbox Ajax
function do_addShout_cb(res) { 
	if(res.length==0)
		document.getElementById("inputShout").value = "";
	else
		document.getElementById("shoutboxInfo").innerHTML = res;
	do_readShouts();
} 

function do_addShout() { 
	writtenText = document.getElementById("inputShout").value; 
	x_addShout(writtenText, do_addShout_cb);
} 

function do_addMiniShout() { 
	writtenText = document.getElementById("inputShout").value; 
	x_addShout(writtenText, do_addMiniShout_cb);
} 

function do_addMiniShout_cb(res) {
	if(res.length==0)
		document.getElementById("inputShout").value = "";
	else
		document.getElementById("shoutboxInfo").innerHTML = res;	
	do_readMiniShouts();
} 


function do_readShouts_cb(res) { 
	document.getElementById("shoutboxContent").innerHTML = res; 
} 

function do_readShouts() { 
	x_readShouts(do_readShouts_cb); 
} 

function do_readMiniShouts_cb(res) { 
	document.getElementById("shoutboxContent").innerHTML = res; 
} 

function do_readMiniShouts() { 
	x_readMiniShouts(do_readMiniShouts_cb); 
} 