jQuery.noConflict();
var selectedImages = [];
var imgBoxes = [];
var cbs = [];
var hp = 8;
var interval;

// define loggedIn elsewhere to load Add checkboxes
if( loggedIn == undefined ) {
	var loggedIn = false;
}
var hoverSizes = new Array();
hoverSizes['tiny']   = 50;
hoverSizes['small']  = 110;
hoverSizes['medium'] = 270;
hoverSizes['large'] = 370;

function calcMath(th_h,th_w,large) {
	var med_h, med_w, adj_p, adj_w;
	if(th_h > th_w) {
		med_h = large;
		med_w = parseInt( ( large / th_h ) * th_w );
		adj_p = parseInt( ( med_w + 10 ) );
		adj_w = parseInt( ( ( ( large - adj_p ) - 10 ) / 2 ) + ( th_w / 2 ) );
	} else {
		med_w = large;
		med_h = parseInt( ( large / th_w ) * th_h );
		adj_p = 380;
		adj_w = 30;
	}
	return med_h + "," + med_w + "," + adj_p + "," + adj_w;
}

/* Compiled from X 4.11 with XC 1.02 on 20Apr07 */
function xClientHeight(){var v=0,d=document,w=window;if(d.compatMode=='CSS1Compat'&&!w.opera&&d.documentElement&&d.documentElement.clientHeight){v=d.documentElement.clientHeight;}else if(d.body&&d.body.clientHeight){v=d.body.clientHeight;}else if(xDef(w.innerWidth,w.innerHeight,d.width)){v=w.innerHeight;if(d.width>w.innerWidth)v-=16;}return v;}
function xClientWidth(){var v=0,d=document,w=window;if(d.compatMode=='CSS1Compat'&&!w.opera&&d.documentElement&&d.documentElement.clientWidth){v=d.documentElement.clientWidth;}else if(d.body&&d.body.clientWidth){v=d.body.clientWidth;}else if(xDef(w.innerWidth,w.innerHeight,d.height)){v=w.innerWidth;if(d.height>w.innerHeight)v-=16;}return v;}
function xDef(){for(var i=0;i<arguments.length;++i){if(typeof(arguments[i])=='undefined')return false;}return true;}
function xGetComputedStyle(oEle,sProp,bInt){var s,p='undefined';var dv=document.defaultView;if(dv&&dv.getComputedStyle){s=dv.getComputedStyle(oEle,'');if(s)p=s.getPropertyValue(sProp);}else if(oEle.currentStyle){var i,c,a=sProp.split('-');sProp=a[0];for(i=1;i<a.length;++i){c=a[i].charAt(0);sProp+=a[i].replace(c,c.toUpperCase());}p=oEle.currentStyle[sProp];}else return null;return bInt?(parseInt(p)||0):p;}
function xGetElementById(e){if(typeof(e)=='string'){if(document.getElementById)e=document.getElementById(e);else if(document.all)e=document.all[e];else e=null;}return e;}
function xLeft(e,iX){if(!(e=xGetElementById(e)))return 0;var css=xDef(e.style);if(css&&xStr(e.style.left)){if(xNum(iX))e.style.left=iX+'px';else{iX=parseInt(e.style.left);if(isNaN(iX))iX=xGetComputedStyle(e,'left',1);if(isNaN(iX))iX=0;}}else if(css&&xDef(e.style.pixelLeft)){if(xNum(iX))e.style.pixelLeft=iX;else iX=e.style.pixelLeft;}return iX;}xLibrary={version:'4.11',license:'GNU LGPL',url:'http://cross-browser.com/'};
function xMoveTo(e,x,y){xLeft(e,x);xTop(e,y);}
function xNum(){for(var i=0;i<arguments.length;++i){if(isNaN(arguments[i])||typeof(arguments[i])!='number')return false;}return true;}
function xPageX(e){var x=0;e=xGetElementById(e);while(e){if(xDef(e.offsetLeft))x+=e.offsetLeft;e=xDef(e.offsetParent)?e.offsetParent:null;}return x;}
function xPageY(e){var y=0;e=xGetElementById(e);while(e){if(xDef(e.offsetTop))y+=e.offsetTop;e=xDef(e.offsetParent)?e.offsetParent:null;}return y;}
function xScrollLeft(e,bWin){var offset=0;if(!xDef(e)||bWin||e==document||e.tagName.toLowerCase()=='html'||e.tagName.toLowerCase()=='body'){var w=window;if(bWin&&e)w=e;if(w.document.documentElement&&w.document.documentElement.scrollLeft)offset=w.document.documentElement.scrollLeft;else if(w.document.body&&xDef(w.document.body.scrollLeft))offset=w.document.body.scrollLeft;}else{e=xGetElementById(e);if(e&&xNum(e.scrollLeft))offset=e.scrollLeft;}return offset;}
function xScrollTop(e,bWin){var offset=0;if(!xDef(e)||bWin||e==document||e.tagName.toLowerCase()=='html'||e.tagName.toLowerCase()=='body'){var w=window;if(bWin&&e)w=e;if(w.document.documentElement&&w.document.documentElement.scrollTop)offset=w.document.documentElement.scrollTop;else if(w.document.body&&xDef(w.document.body.scrollTop))offset=w.document.body.scrollTop;}else{e=xGetElementById(e);if(e&&xNum(e.scrollTop))offset=e.scrollTop;}return offset;}
function xStr(s){for(var i=0;i<arguments.length;++i){if(typeof(arguments[i])!='string')return false;}return true;}
function xTop(e,iY){if(!(e=xGetElementById(e)))return 0;var css=xDef(e.style);if(css&&xStr(e.style.top)){if(xNum(iY))e.style.top=iY+'px';else{iY=parseInt(e.style.top);if(isNaN(iY))iY=xGetComputedStyle(e,'top',1);if(isNaN(iY))iY=0;}}else if(css&&xDef(e.style.pixelTop)){if(xNum(iY))e.style.pixelTop=iY;else iY=e.style.pixelTop;}return iY;}
function xAddEventListener(e,eT,eL,cap){if(!(e=xGetElementById(e)))return;eT=eT.toLowerCase();if(e.addEventListener)e.addEventListener(eT,eL,cap||false);else if(e.attachEvent)e.attachEvent('on'+eT,eL);else {var o=e['on'+eT];e['on'+eT]=typeof o=='function' ? function(v){o(v);eL(v);} : eL;}}

(function() {
	
	var fadeSpeed = 1;

	var fadingIn, fadingOut, 
		popEl = jQuery('#popup').get()[0],
		popDelay = 30, popDelayTmt;

	thumbMouseOver = function() {
		
		var args = arguments;
			doMouseOver(args);

			jQuery(popEl).css('display', 'block');	
	}
	popupMouseOut = function(e) {

		function ispop(el) {
			if(!el) return false;
			//if(el == popEl) return true;
			//if(jQuery(el).parents('#popup').length)
			//	return true;
		}

		if(ispop(e.target) && (ispop(e.relatedTarget))) return;
		
		if(jQuery(e.target).hasClass('popable')) {
			if(ispop(e.relatedTarget)) {
				return;
			}
		}
		xGetElementById('popupimage').src = '/images/spacer.gif';
		jQuery(popEl).css('display', 'none');
	}
	jQuery('#popup').mouseout(popupMouseOut);
})();

function popup_zoom_setup(eleid, tpfx) {

	var id = parseInt(eleid);
	var append = eleid.substr(String(id).length);
	var img = xGetElementById(eleid);

	var small_h = parseFloat(img.style.height);
	var small_w = parseFloat(img.style.width);

	var nMath;
	var med_h, med_w, adj_p, adj_w;

	nMath = calcMath( small_h, small_w, hoverSizes['large'] );
	nMath = nMath.split(',');
	med_h = h = parseInt(nMath[0]);
	med_w = w = parseInt(nMath[1]);
	adj_p = parseInt(nMath[2]);
	adj_w = parseInt(nMath[3]);


	var pop,popshadow,popimage,poplink;
	var href,contain,ptg,ttlspan,ttlanchor,prev;

	pop = xGetElementById('popup');
	if(!pop) {
		throw new Error("Failed to get popup holder element by id reference.");
		return;
	}
	popshadow = xGetElementById('popupshadow');
	popimage  = xGetElementById('popupimage');
	poplink   = xGetElementById('popuplink');
	contain   = xGetElementById('popupcontain');
	href 	  = xGetElementById('href' + id + append);

	/* Resets */
	pop.style.display = 'none';
	popimage.src      = '/images/spacer.gif';

	/* Set up the href */
	if(href.href) {
		poplink.href   = href.href;
	} else {
		poplink.href   = '#';
	}

	if(href.target) poplink.target = href.target;
	if(href.title)  poplink.title = href.title;
	if(href.target) poplink.target = href.target;

	pop._sidid = id;
	pop.style.width = adj_p + 'px';
	pop.style.height = h + 32 + 'px';


	popshadow.style.width  = w + 'px';
	popshadow.style.height = h + 'px';
	popimage.style.width  =  w + 'px';
	popimage.style.height =  h + 'px';

	popimage.src = jQuery( '#'+ id + 'thumb' ).attr('src'); 
	//if( jQuery( '#'+ id + 'thumb' ) && (!popup_zoom_setup['cancelImageLoading'])) {
		popimage.src = jQuery( '#'+ id + 'thumb' ).attr('src').replace(/small/, 'large');
	//}
	//jQuery( '#'+ id + 'thumb' ).removeAttr('alt');
	jQuery( '#'+ id + 'thumb' ).removeAttr('title');
	pop.style.display = 'block';
		
	//jQuery('#imgdsc_ttle_a').html( jQuery('#_name'+id+append).html() );
	//jQuery('#imgdsc_ttle').css( 'width',  jQuery('#imgdsc').attr( 'offsetWidth' )+'px' );
	//jQuery('#imgdsc_ttle_a').attr( 'href',  href.href );
	//jQuery('#imgdsc_ttle_a').attr( 'target', href.target );
	prev =((jQuery('#imgdsc').attr( 'offsetWidth' )-hp*2)/3);
	
	//jQuery('#imgdsc_add').css( 'width',   prev+'px' );

	//jQuery('#imgdsc_id').css( 'width',  prev+'px' );
	jQuery('#imgdsc_id').css( 'left',  0+'px' );
	jQuery('#imgdsc_id').html( '<span class="imgdsc_text">ID:&nbsp;</span>'+id );

	//jQuery('#imgdsc_dlds').css( 'width',  prev+'px' );
	jQuery('#imgdsc_dlds').css( 'left',  (prev+hp)+'px' );
	jQuery('#imgdsc_dlds').html( '<span class="imgdsc_text">downloads:&nbsp;</span>'+jQuery('#_dld'+id+append).html() );
	
	var ptgName = jQuery('#_ptg'+id+append).html().replace(/ /g,'&nbsp;');
	if(ptgName) {
		jQuery('#imgdsc_ptg').css('display', 'block');
		jQuery('#imgdsc_ptg_a').html( ptgName );
		//jQuery('#imgdsc_ptg').css( 'width',  prev+'px' );
	} else {
		jQuery('#imgdsc_ptg').css('display', 'none');
	}

	jQuery('#imgdsc_ptg').css( 'left',  (prev*2+hp*2)+'px' );
	jQuery('#imgdsc_ptg_a').html( jQuery('#_ptg'+id+append).html().replace(/ /g,'&nbsp;') );
	jQuery('#imgdsc_ptg').css( 'width',  prev+'px' );
	//jQuery('#imgdsc_ptg_a').attr( 'href',  jQuery('#_url'+id+'prepend').text()+'?q[uid]='+escape(jQuery('#_ptg'+id+append).html())+'&q[ao]=1' );
	//jQuery('#imgdsc_seesim').css( 'width',  prev+'px' );
	//jQuery('#imgdsc_seesim').css( 'right',  '0px' );
	//jQuery('#imgdsc_seesim_a').attr( 'href',  jQuery('#_url'+id+'prepend').text()+'?q[ao]=1&q[sim]=' + id );

	return pop;
}


function doMouseOver(args) {
	
	var id = args[0];
	var thisPopup = null;

	switch(args[1]) {
		case 'zoom':
			thisPopup = popup_zoom_setup(id);
			if(args[2]) args[2](thisPopup);
			break;
		case 'morezoom':
			thisPopup = popup_zoom_setup(id, 'more');
			break;
		case 'more':
			thisPopup = popup_more_setup(id, args[2], args[3], args[4], args[5], args[6], args[7]);
			break;
		default:
			return;
	}
	
	if(! thisPopup) {
		return;
	}

	return thisPopup;
}
function openCb(pop) {
	var cb = jQuery('#Add'+pop._sidid);
	if(!cb) return;
	jQuery('#AddMe').checked = cb.checked;
	jQuery('#AddMe').onclick = function() {
		if(!cb.checked)
			cb.checked = true;
		else cb.checked = false;
		cb.onclick();
	}
}


function set_popupMouseMove( el ){
	jQuery(el).mousemove( function(e){
			
		var x = e.pageX + 15;
		var y = e.pageY + 15;
		var w = parseInt( jQuery('#popup').outerWidth());
		var h = parseInt( jQuery('#popup').outerHeight());

		x = x - w - 30;
		
		
	
	
		// make sure the bottom of the image doesn't go out of screen view.
		var y_bottom = xScrollTop() + xClientHeight();
		if(y_bottom <= (y + h)) {
			y = y_bottom - h - 15; // less padding too
		}
		
		// make sure the top isn't off the screen or right on it.
		if( y <= xScrollTop() ) {
			y = xScrollTop() + 15;
		}
	
		// make sure the left image is on the screen
		if(x <= xScrollLeft()) {
			x = x + w + 30 ;
		}
	
		// make sure the right side of the image doesn't go out of screen view.
		var x_right = xScrollLeft() + xClientWidth();
		if(x_right <= (x + w)) {
			x = x - w - 30; // less padding too
		}
		
		jQuery('#popup').css('left', x );
		jQuery('#popup').css('top', y );
		//console.log( '%s - %s', x, y );
		//console.log( '%s - %s', e.pageX, e.pageY );
		//console.log( '----' );
	});
	
}


