

var abs_debug = false;



function doSwitchAIMGDIV(id_img, id_div, postfix_open, postfix_closed) {

	if(postfix_open == null) postfix_open = "_open";

	if(postfix_closed == null) postfix_closed = "_closed";

	

	var el_div = document.getElementById(id_div);

	if(el_div == null) return false;

	

	var is_closed = (el_div.style.display=='none');

	

	var el_img = document.getElementById(id_img);

	if(el_img !== null) {

		if(is_closed) {

			el_img.src = el_img.src.replace(postfix_closed+'.', postfix_open+'.');

		} else {

			el_img.src = el_img.src.replace(postfix_open+'.', postfix_closed+'.');

		}

	}

	if(is_closed) {

		el_div.style.display = 'block';

	} else {

		el_div.style.display = 'none';

	}

	return false;

}



function showHideNextSibling(this_el) {

	var next_el=this_el.nextSibling.nextSibling;

	if(next_el !== null) {

		next_el=next_el.nextSibling;

	}

	if(next_el !== null) {

		next_el.style.display=(next_el.style.display=='none')?'block':'none';

	}

	return false;

}



function switchImage(imgId0, imgId1) {

	var el0 = document.getElementById(imgId0);

	var el1 = document.getElementById(imgId1);

	

	if(el0 != undefined && el1 != undefined) {

		var tmpSrc = el1.src;

		el1.src = el0.src;

		el0.src = tmpSrc;

		return true;

		

	} else {

		return false;

	}

}



/* ----------------------------------------------- */

/* -- BLOCK GALLERY ------------------------------ */

/* ----------------------------------------------- */



function afxGalleryTabSwitch(tabIdPref, ctrlIdPref, stylePref, page) {

	var el = null;

	var i = 0;

	var j = 0;

	

	i = 0;

	while(true) {

		el = document.getElementById(tabIdPref + String(i));

		if(el == undefined || i > 10) break;

		//alert("el.id " + el.id);

		el.className = stylePref + ((i == page)?"active":"inactive");

		i++;

	}

	i = 0;

	while(true) {

		j = 0;

		el = document.getElementById(ctrlIdPref + String(i) + "_" + String(j));

		if(el == undefined || i > 10) break;

		while(true) {

			el = document.getElementById(ctrlIdPref + String(i) + "_" + String(j));

			if(el == undefined || j > 10) break;

			el.style.display = ((i == page)?"":"none");

			j++;

		}

		i++;

	}

}



function afxGetExtension(str) {

	if(str == undefined) return null;

	var i = str.lastIndexOf(".");

	return str.slice(i+1);

}



function afxGalleryShowMedia(imageId) {

	var el = document.getElementById(imageId);

	if(el == undefined) return false;

	

	var src = el.getAttribute('afx_media_src');

	if(src == undefined || src == '') {

		src = el.src;

	}

	if(src == undefined) return false;



	try {	

		var ext = afxGetExtension(src).toLowerCase();

		if(ext == "avi" || ext == "wmv" || ext == "mpg" || ext == "rm") {

			return afxGalleryShowVideo(src);

			

		} else if(ext == "jpg" || ext == "gif" || ext == "png" || ext == "jpeg") {

			return afxGalleryShowImageInWindow(imageId, src);

			

		} else {

			return false;

		}

		

	} catch(ex) {

		// in case of error ... default to this

		return afxGalleryShowImageInWindow(imageId);

	}

	return false;

}



function afxGalleryShowVideo(mediaSrc) {

	document.location.href = mediaSrc;

	return true;

}



function afxGalleryShowImageInWindow(imageId, imageSrc) {

	var i = document.getElementById(imageId);

	var imageUrl = null;

	if(imageSrc == undefined) {

		imageUrl = i.src;

	} else {

		imageUrl = imageSrc;

	}

	var width = -1;

	var height = -1;

	var w = null;

	

	if(i.src != imageSrc) {

		var dim = i.getAttribute('afx_media_dim');

		if(dim != null) {

			var dim = dim.split("x");

			if(Number(dim[0]) > 0 && Number(dim[1]) > 0) {

				width = dim[0];

				height = dim[1];

			}

		}

	} else {

		if(i.width) width = i._width;

		if(i.height) height = i._height;

	}

	

	if(width < 0) {

		w = window.open(imageUrl, "Bild", "scrollbars=yes,resizable=yes");

	} else {

		width = Number(width) + 40;

		height = Number(height) + 30;

		w = window.open(imageUrl, "Bild", 

				"width="+width+",height="+height+",scrollbars=yes,resizable=yes");

	}

	w.focus();

	return true;

}



function afxGalleryLoadAndFitImage(imageId, imageUrl) {

	var oimg = document.getElementById(imageId);

	if(oimg == null) return false;

	var container = oimg.parentNode;



	var img = new Image();

	if(imageUrl == undefined) imageUrl = oimg.src;

	img.container_id = oimg.id;

	img.style.display = "none";

	img.onload = function(){ return afxGalleryFitImage(this, imageId); };

	img.src = imageUrl;

}



function afxGalleryFitImage(img, imageId) {

	var replImg = null;



	if(imageId == undefined) {

		replImg = img;

	} else {

		replImg = document.getElementById(imageId);

	}

	

	if(replImg._width == undefined)	replImg._width = img.width;

	if(replImg._height == undefined) replImg._height = img.height;



	var pw = 0;

	var ph = 0;



	pw = replImg.parentNode.getAttribute('max_width');

	ph = replImg.parentNode.getAttribute('max_height');

	

	if(pw == undefined) {

		pw = replImg.parentNode.parentNode.getAttribute('max_width');

		ph = replImg.parentNode.parentNode.getAttribute('max_height');

	}

	

	var fac = 1;

	if(replImg._width <= pw && replImg._height <= ph) {

		fac = 1.0;

	} else {

		var facw = (pw) / replImg._width;

		var fach = (ph) / replImg._height;

		fac = Math.min(facw, fach);

	}

	

	replImg.height = replImg._height * fac;

	replImg.width = replImg._width * fac;

	

	replImg.style.display = "inline";

	return true;

}



function afxGallerySwapImage(elId0, elId1) {

	var el0 = document.getElementById(elId0);

	var el1 = document.getElementById(elId1);

	

	var tmp = null;

	

	el0.style.visibility = 'hidden';

	el1.style.visibility = 'hidden';

	

	tmp = el0._width;

	el0._width = el1._width;

	el1._width = tmp;

	

	tmp = el0._height;

	el0._height = el1._height;

	el1._height = tmp;

	

	tmp = el0.src;

	el0.src = el1.src

	el1.src = tmp;



	try{

		afxSwapAttribute(el0, el1, 'afx_media_src');

		afxSwapAttribute(el0, el1, 'afx_media_dim');

		/*

		tmp = el0.getAttribute('afx_media_src');

		el0.setAttribute('afx_media_src', el1.getAttribute('afx_media_src'));

		el1.setAttribute('afx_media_src', tmp);

		*/

	} catch(ex) {}

	

	afxGalleryFitImage(el0);

	el0.style.visibility = 'visible';

	

	afxGalleryFitImage(el1);

	el1.style.visibility = 'visible';

}



function afxSwapAttribute(el0, el1, attrName) {

	var tmp = el0.getAttribute(attrName);

	el0.setAttribute(attrName, el1.getAttribute(attrName));

	el1.setAttribute(attrName, tmp);

}



function afxGalleryShowImage(elId0, elId1) {

	//if(abs_debug) alert("afxGalleryShowImage(" + elId0 + ", " + elId1 + "): >>> Started");

	var el0 = document.getElementById(elId0);

	var el1 = document.getElementById(elId1);

	

	var tmp = null;

	

	el0.style.visibility = 'hidden';

	el1.style.visibility = 'hidden';

	

	el0._width = el1._width;

	el0._height = el1._height;

	

	el0.src = el1.src

	

	try {

		var icn_src = el1.getAttribute('afx_media_icn');

		var el_icn_main = document.getElementById(el0.id + "_icon");

		if(el_icn_main) {

			if(icn_src == null || icn_src == "") {

				el_icn_main.style.display = 'none';

				el_icn_main.src = '';

			} else {

				el_icn_main.style.display = 'inline';

				el_icn_main.src = icn_src;

			}

		} else {

			//alert("Icon not found " + el0.id + "_icon")

		}

	} catch(ex) {}

		

	try {	

		el0.setAttribute('afx_media_src', el1.getAttribute('afx_media_src'));

		el0.setAttribute('afx_media_dim', el1.getAttribute('afx_media_dim'));

	} catch(ex) {

		el0.setAttribute('afx_media_src', null);

		el0.setAttribute('afx_media_dim', null);

	}

	

	try {

		var parent_anchor = el0.parentNode;

		if(

			parent_anchor != undefined 

			&& parent_anchor.nodeName 

			&& parent_anchor.nodeName.toLowerCase() == "a"

		) {

			parent_anchor.href = el1.getAttribute('afx_media_src');

		} else {

			if(abs_debug) alert(

				"afxGalleryShowImage(" + elId0 + ", " + elId1 + "): " + 

				"parent anchor not found (ps:" + parent_anchor.nodeName + " " +

				((parent_anchor.nodeName == "a")?"[OK is A]":"[ERR not A]") +  

				")");

		}

	} catch(ex) {

		if(abs_debug) alert("afxGalleryShowImage(" + elId0 + ", " + elId1 + "): exception " + ex);

	}

	

	try {

		var el_main_cap = document.getElementById(elId0 + "_caption");

		var main_cap = el1.getAttribute('afx_media_cap');

		if(el_main_cap && main_cap.length > 0) {

			el_main_cap.innerHTML = main_cap;

			el_main_cap.style.display = 'block';

		} else {

			el_main_cap.innerHTML = '';

			el_main_cap.style.display = 'none';

		}

	} catch(ex) {}

	

	afxGalleryFitImage(el0);

	el0.style.visibility = 'visible';

	

	afxGalleryFitImage(el1);

	el1.style.visibility = 'visible';

}



/* ----------------------------------------------- */

/* -- LINK Utils --------------------------------- */

/* ----------------------------------------------- */



function modifyPdfLinkTargetToBlank() {

	var c = 0;

	var anchors = document.getElementsByTagName("A");

	var el = null;

	for(var i = 0; i < anchors.length; i++) {

		el = anchors[i];

		if((el.target == "" || el.target == null)

				&& el.href != ""

				&& el.href.length > 3 

				&& el.href.substr(el.href.length-3, 3).toLowerCase() == "pdf") {

				

			el.target = "_blank";

			c++;

			

		}

	}

	return c;

}





/* ----------------------------------------------- */

/* -- DOM Utils ---------------------------------- */

/* ----------------------------------------------- */





function findNextSibling(startNode, targetNodeName, maxDistance) {

	return findSibling(startNode, targetNodeName, maxDistance, true);

}



function findPreviousSibling(startNode, targetNodeName, maxDistance) {

	return findSibling(startNode, targetNodeName, maxDistance, false);

}



function findSibling(startNode, targetNodeName, maxDistance, directionNext) {

	if(startNode === null) return null;

	if(maxDistance == null) maxDistance = 100;

	targetNodeName = targetNodeName.toLowerCase();

	var el = null;

	var distance = 0;

	while(distance < maxDistance) {

		if(directionNext) el = startNode.nextSibling();

		else el = startNode.previousSibling();

		if(el === null) return null;

		if(el.nodeName().toLowerCase() == targetNodeName) {

			return el;

		}

		distance++;

	}

	return null;

}



function findChild(parentNode, targetNodeName) {

	targetNodeName = targetNodeName.toLowerCase();

	var el = parentNode.firstChild();

	if(el.nodeName().toLowerCase() == targetNodeName) {

		return el;

	} else {

		return findNextSibling(el, targetNodeName, 100);

	}

	return null;

}


