/*
	digist_shadowbox.js
	Script by Venister(venister@empal.com)
*/

function digist_shadowbox()
{
	this.galleryType = false;
	this.showImageLink = false;
	this.useTitle = "";
}

function digist_shadowbox_init() {
	var shadowbox_rel = "shadowbox[xeImages]";
    var objs = xGetElementsByTagName("IMG");

	for (var i=0; i<objs.length; i++) {
        var obj = objs[i];
		var bApply = false;
		var bBanner = false;

        if (!obj.parentNode) continue;
		
        if (/\/modules\//i.test(obj.src)) continue;
        if (/\/layouts\//i.test(obj.src)) continue;
        if (/\/widgets\//i.test(obj.src)) continue;
        if (/\/classes\//i.test(obj.src)) continue;
        if (/\/common\/tpl\//i.test(obj.src)) continue;
        if (/\/member_extra_info\//i.test(obj.src)) continue;
		
		if(/slide_gallery_/i.test(obj.id) > 0) continue;	// Slide Gallery

        var parent = obj.parentNode;
        while (parent) {
            if(parent.className && parent.className.search(/document_|comment_/i) != -1) break;
			if(parent.nodeName == 'A') bBanner = true;
            parent = parent.parentNode;
        }
        if (!parent || parent.className.search(/document_|comment_/i) < 0) continue;
		
        if (parent.parentNode) {
            xWidth(parent, xWidth(parent.parentNode));
        }
        parent.style.width = "100%";
        parent.style.overflow = "hidden";
        var parent_width = xWidth(parent);
        if (parent.parentNode && xWidth(parent.parentNode) < parent_width) {
            parent_width = xWidth(parent.parentNode);
        }
        var obj_width = xWidth(obj);
        var orig_img = new Image;
        orig_img.src = obj.src;
		
        if (parent_width < 1 || obj_width < 1 || (!DigistShadowboxOptions.galleryType && (parent_width-20 >= orig_img.width))) continue;

        obj.source_width = orig_img.width;
        obj.source_height = orig_img.height;
		
        if (obj_width >= parent_width) {		
            var new_w = parent_width - 20;
            var new_h = Math.round(xHeight(obj) * new_w / obj_width);
			
			obj.style.cursor = "pointer";
		
            xWidth(obj, new_w);
            xHeight(obj, new_h);
			
			if(!DigistShadowboxOptions.galleryType) bApply = true;
        }
		
		if(!bBanner && (DigistShadowboxOptions.galleryType || bApply)){
			var shadowbox_title = String(obj.getAttribute('title'));
			
			if(DigistShadowboxOptions.useTitle != "") shadowbox_title = DigistShadowboxOptions.useTitle;
			if(DigistShadowboxOptions.showImageLink) shadowbox_title = '<a href="'+obj.src+'">'+ shadowbox_title +'</a> ';

			var shadowbox_link = xCreateElement('a');
			shadowbox_link.setAttribute('href', obj.src);
			shadowbox_link.setAttribute('rel', shadowbox_rel);
			shadowbox_link.setAttribute('title', shadowbox_title);

			obj.parentNode.insertBefore(shadowbox_link, obj);
			shadowbox_link.appendChild(obj);
		}
    }
}

