// Gallery Class
var gallery;
function Gallery( pos, alb, admn, rt)
{
	instance = this;
	globalDrag = null;
	position = pos;
	album = alb;
	admin = admn;
	root = rt;
//	var globalGallery = this;	
	$(".message .close").click( this.messageClose );
//	$('#photos img').hover( this.photoHoverOn, this.photoHoverOff );
//	$('#gallery-container a:not(.thickbox)').click( this.reloadGallery );
	

//		this.makeDraggable();
//		this.makeDropabble();
//	}
//	$('.thumbnail a').each( this.loadThumbnail );
}
Gallery.prototype.loadThumbnails = function(obj, size) {
	$(obj).each( function(){
		var img = new Image();
		url = $(this).attr('href');
		start = url.indexOf(root);
		url = url.substr(start);
		var src = './includes/scripts/thumbnail.php?file=' + url + '&maxsize=' + size;
		$(this).html('<div class="loading"></div>');
		var thumbnail = $(this);
		$(img).load(function () {
			$(this).hide();
			thumbnail.html(this);
			$(this).fadeIn();
			}).attr('src', src);
	});

}
Gallery.prototype.setPreview = function(obj, preview ){
	
	$(obj).hover(
			function(){
				
				var src = $(this).find('img').attr('src');
				prevSrc = $(preview).find('img').attr('src');
				newMaxSize = prevSrc.substring(prevSrc.indexOf('&maxsize='));
				oldMaxSize = src.substring(src.indexOf('&maxsize='));
				var new_src  = src.replace(oldMaxSize, newMaxSize);
				var new_href = src.substring( src.indexOf('files'), src.indexOf('&maxsize') );
				$(this).find('img').fadeTo(200, 0.6);
				if( new_src != $(preview).find('img').attr('src') )
				{
					$(preview).find('a').html('');
					$(preview).addClass('loading');
				
					var img = new Image();
					$(img).load(function(){
						$(this).hide();
						$(preview).find('a').html(this);
						$(this).fadeIn();
						$(preview).removeClass('loading');
						$(preview).find('a').attr('href', new_href);
					}).attr('src', new_src );
				}
			},
			function(){
				$(this).find('img').fadeTo(200, 1);
			}
		);

}

Gallery.prototype.messageClose = function() {
	$(".message .close").parent().hide();
}
Gallery.prototype.applyThickBox = function() {
	var tb_pathToImage = "images/gallery/loadingAnimation.gif";
	eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(o).2S(9(){1u(\'a.18, 3n.18, 3i.18\');1w=1p 1t();1w.L=2H});9 1u(b){$(b).s(9(){6 t=X.Q||X.1v||M;6 a=X.u||X.23;6 g=X.1N||P;19(t,a,g);X.2E();H P})}9 19(d,f,g){3m{3(2t o.v.J.2i==="2g"){$("v","11").r({A:"28%",z:"28%"});$("11").r("22","2Z");3(o.1Y("1F")===M){$("v").q("<U 5=\'1F\'></U><4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}3(1K()){$("#B").1J("2B")}n{$("#B").1J("2z")}3(d===M){d=""}$("v").q("<4 5=\'K\'><1I L=\'"+1w.L+"\' /></4>");$(\'#K\').2y();6 h;3(f.O("?")!==-1){h=f.3l(0,f.O("?"))}n{h=f}6 i=/\\.2s$|\\.2q$|\\.2m$|\\.2l$|\\.2k$/;6 j=h.1C().2h(i);3(j==\'.2s\'||j==\'.2q\'||j==\'.2m\'||j==\'.2l\'||j==\'.2k\'){1D="";1G="";14="";1z="";1x="";R="";1n="";1r=P;3(g){E=$("a[@1N="+g+"]").36();25(D=0;((D<E.1c)&&(R===""));D++){6 k=E[D].u.1C().2h(i);3(!(E[D].u==f)){3(1r){1z=E[D].Q;1x=E[D].u;R="<1e 5=\'1X\'>&1d;&1d;<a u=\'#\'>2T &2R;</a></1e>"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;<a u=\'#\'>&2O; 2N</a></1e>"}}n{1r=1b;1n="1t "+(D+1)+" 2L "+(E.1c)}}}S=1p 1t();S.1g=9(){S.1g=M;6 a=2x();6 x=a[0]-1M;6 y=a[1]-1M;6 b=S.z;6 c=S.A;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}13=b+30;1a=c+2G;$("#8").q("<a u=\'\' 5=\'1L\' Q=\'1o\'><1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/></a>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"</4></4><4 5=\'2A\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4>");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1z,1x,g);H P}$("#1X").s(1i)}o.1h=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}n 3(I==3k){3(!(R=="")){o.1h="";1i()}}n 3(I==3j){3(!(14=="")){o.1h="";12()}}};16();$("#K").C();$("#1L").s(G);$("#8").r({Y:"T"})};S.L=f}n{6 l=f.2r(/^[^\\?]+\\??/,\'\');6 m=2p(l);13=(m[\'z\']*1)+30||3h;1a=(m[\'A\']*1)+3g||3f;W=13-30;V=1a-3e;3(f.O(\'2j\')!=-1){1E=f.1B(\'3d\');$("#15").C();3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4></4><U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\' > </U>")}n{$("#B").N();$("#8").q("<U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\'> </U>")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\'>1l</a> 1k 1j 1s</4></4><4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'></4>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'></4>")}}n{$("#F")[0].J.z=W+"p";$("#F")[0].J.A=V+"p";$("#F")[0].3a=0;$("#1H").11(d)}}$("#Z").s(G);3(f.O(\'37\')!=-1){$("#F").q($(\'#\'+m[\'26\']).1T());$("#8").24(9(){$(\'#\'+m[\'26\']).q($("#F").1T())});16();$("#K").C();$("#8").r({Y:"T"})}n 3(f.O(\'2j\')!=-1){16();3($.1q.35){$("#K").C();$("#8").r({Y:"T"})}}n{$("#F").34(f+="&1y="+(1p 33().32()),9(){16();$("#K").C();1u("#F a.18");$("#8").r({Y:"T"})})}}3(!m[\'1A\']){o.21=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}}}}31(e){}}9 1m(){$("#K").C();$("#8").r({Y:"T"})}9 G(){$("#2Y").N("s");$("#Z").N("s");$("#8").2X("2W",9(){$(\'#8,#B,#1F\').2V("24").N().C()});$("#K").C();3(2t o.v.J.2i=="2g"){$("v","11").r({A:"1Z",z:"1Z"});$("11").r("22","")}o.1h="";o.21="";H P}9 16(){$("#8").r({2U:\'-\'+20((13/2),10)+\'p\',z:13+\'p\'});3(!(1V.1q.2Q&&1V.1q.2P<7)){$("#8").r({38:\'-\'+20((1a/2),10)+\'p\'})}}9 2p(a){6 b={};3(!a){H b}6 c=a.1B(/[;&]/);25(6 i=0;i<c.1c;i++){6 d=c[i].1B(\'=\');3(!d||d.1c!=2){39}6 e=2a(d[0]);6 f=2a(d[1]);f=f.2r(/\\+/g,\' \');b[e]=f}H b}9 2x(){6 a=o.2M;6 w=1S.2o||1R.2o||(a&&a.1Q)||o.v.1Q;6 h=1S.1P||1R.1P||(a&&a.2n)||o.v.2n;1O=[w,h];H 1O}9 1K(){6 a=2K.2J.1C();3(a.O(\'2I\')!=-1&&a.O(\'3o\')!=-1){H 1b}}',62,211,'|||if|div|id|var||TB_window|function||||||||||||||else|document|px|append|css|click||href|body||||width|height|TB_overlay|remove|TB_Counter|TB_TempArray|TB_ajaxContent|tb_remove|return|keycode|style|TB_load|src|null|unbind|indexOf|false|title|TB_NextHTML|imgPreloader|block|iframe|ajaxContentH|ajaxContentW|this|display|TB_closeWindowButton||html|goPrev|TB_WIDTH|TB_PrevHTML|TB_iframeContent|tb_position||thickbox|tb_show|TB_HEIGHT|true|length|nbsp|span|Math|onload|onkeydown|goNext|Esc|or|close|tb_showIframe|TB_imageCount|Close|new|browser|TB_FoundURL|Key|Image|tb_init|name|imgLoader|TB_NextURL|random|TB_NextCaption|modal|split|toLowerCase|TB_PrevCaption|urlNoQuery|TB_HideSelect|TB_PrevURL|TB_ajaxWindowTitle|img|addClass|tb_detectMacXFF|TB_ImageOff|150|rel|arrayPageSize|innerHeight|clientWidth|self|window|children|TB_prev|jQuery|frameborder|TB_next|getElementById|auto|parseInt|onkeyup|overflow|alt|unload|for|inlineId||100||unescape|1000|round|hspace|TB_closeAjaxWindow|TB_title|undefined|match|maxHeight|TB_iframe|bmp|gif|png|clientHeight|innerWidth|tb_parseQuery|jpeg|replace|jpg|typeof|which|keyCode|event|tb_getPageSize|show|TB_overlayBG|TB_closeWindow|TB_overlayMacFFBGHack|TB_secondLine|TB_caption|blur|TB_Image|60|tb_pathToImage|mac|userAgent|navigator|of|documentElement|Prev|lt|version|msie|gt|ready|Next|marginLeft|trigger|fast|fadeOut|TB_imageOff|hidden||catch|getTime|Date|load|safari|get|TB_inline|marginTop|continue|scrollTop|TB_modal|class|TB_|45|440|40|630|input|188|190|substr|try|area|firefox'.split('|'),0,{}))
}
//Gallery.prototype.photoHoverOn = function() {
	
//}
//Gallery.prototype.photoHoverOff = function() {
	
//}

Gallery.prototype.setReloadTarget = function(obj, place){
	
	$(obj).click(
			function()
			{

				getVariables = '';
				href = $(this).attr('href');
				getstart = href.indexOf('?');
				if( getstart > 0 ) {
					getVariables = href.substring( getstart );
				} 
				else {
					getVariables = '';
				}
				
				getVariables = getVariables + '&target=' + place.substring(1);				
				 $.ajax({ 
				   type: "GET", 
				   dataType: 'html',
				   url: "includes/scripts/gallery.script.php", 
				   data: getVariables, 
				   success: function(msg){ 
//				    if($(place).find('tbody')){
						
						$(place + ' tbody').html(msg);
						
//					}
//					else{
//						$(place).html(msg);
//					}
					
				    
	
				   } 
				 });
				return false;
			}
	
	);

	
}
Gallery.prototype.setReloadGallery = function( obj ) {
	
	$(obj).click(
			function()
			{
				getVariables = '';
				href = $(this).attr('href');
				getstart = href.indexOf('?');
				if( getstart > 0 ) {
					getVariables = href.substring( getstart );
				} 
				else {
					getVariables = '';
				}

				$('#gallery-container').load('includes/scripts/gallery.script.php'+ getVariables );
				return false;
			}
	
	);

	

}
Gallery.prototype.setDraggable = function(obj, droppables, hovers, callbacks) {
	
	if( admin == true )
	{
		$(obj).draggable({
			helper: "clone",
			ghosting: true, 
			opacity: 0.7,
			start:function(){
				i = 0; 
				while(droppables[i]){
					$(droppables[i]).droppable("destroy");
					if(callbacks[i]){
						instance.setDroppable(droppables[i], obj, hovers[i], callbacks[i]);
					}
					i++;
				}
			
			},
			stop: function(a, ui){

				if(document.documentElement.scrollTop){
			 		val = document.documentElement.scrollTop;
				}
				else{
					val = document.body.scrollTop;
				}
				//offset = ui.helper.offset();			
				
//				alert($(this).height() +offset.top - val);				

			//	alert($(window).height())
			},
			drag: function(a , ui) {
//				alert('setting draggable');
				//alert($(this).width());
				//alert($(this).height());
				
				
				if(document.documentElement.scrollTop){
			 		val = document.documentElement.scrollTop;
				}
				else{
					val = document.body.scrollTop;
				}
				offset = ui.helper.offset();			
				if( ($(this).height() + offset.top - val) >= $(window).height()){
					//$.scrollTo(offset.top - $(this).height(), 1000 );
				}
				

				globalDrag = $(this);
			}
		});
	}
}
Gallery.prototype.setDroppable = function(obj, accepted, hover, callback) {

	if( admin == true )
	{	
		if(!hover) 
		{
			hover = 'droppable-hover';
		}
		// else {
//			var hoverClass = 'droppable-insert';
		//}
		 
		$(obj).droppable({ 
		 accept: accepted,
		 hoverClass: hover,
		 tolerance: 'pointer',
		 drop: function(ev, ui) 
		 {	
		 	callback.call(this, $(this));
		 }
		});		
	}	
}
Gallery.prototype.swapId = function(obj){
	dragvalue = globalDrag.find('a').attr('id');
	sep = dragvalue.indexOf('ID')
	type = dragvalue.substring(0 , sep);
	dragvalue = dragvalue.substring(sep + 2);
	
	dropvalue = obj.find('a').attr('id');
	sep = dropvalue.indexOf('ID')
	type = dropvalue.substring(0 , sep);
	dropvalue = dropvalue.substring(sep + 2);
	if(type == 'photo'){
		target = 'photos';
}
	else if(type =='album'){
		target = 'albums';
	}
	var get = "?position=" + position + "&album=" + album + "&action=order&drag=" + dragvalue + "&drop=" + dropvalue + "&type=" + type + "&target=" + target;
	if(!target){
		$('#gallery-container').load('includes/scripts/gallery.script.php'+ get);
	}
	else{
		$('#' + target + ' tbody').load('includes/scripts/gallery.script.php'+ get);
	}

}

Gallery.prototype.me = function (){
	alert('me');
}


function print_r(theObj){
  if(theObj.constructor == Array ||
     theObj.constructor == Object){
    document.write("<ul>")
    for(var p in theObj){
      if(theObj[p].constructor == Array||
         theObj[p].constructor == Object){
document.write("<li>["+p+"] => "+typeof(theObj)+"</li>");
        document.write("<ul>")
        print_r(theObj[p]);
        document.write("</ul>")
      } else {
document.write("<li>["+p+"] => "+theObj[p]+"</li>");
      }
    }
    document.write("</ul>")
  }
}


Gallery.prototype.dropImageToAlbum = function(obj) {
	dragvalue = globalDrag.find('a').attr('id');
	sep = dragvalue.indexOf('ID')
	type = dragvalue.substring(0 , sep);
	dragvalue = dragvalue.substring(sep + 2);
	
	dropvalue = obj.find('a').attr('id');
	sep = dropvalue.indexOf('ID')
	type = dropvalue.substring(0 , sep);
	dropvalue = dropvalue.substring(sep + 2);
	var get = "?position=" + position + "&album=" + album + "&action=move&drag=" + dragvalue + "&drop=" + dropvalue + "&type=album";
	
	$('#gallery-container').load('includes/scripts/gallery.script.php'+ get);
	
}

Gallery.prototype.dropTrash = function() {
	dragvalue = globalDrag.find('a').attr('id');
	sep = dragvalue.indexOf('ID')
	type = dragvalue.substring(0 , sep);
	dragvalue = dragvalue.substring(sep + 2);
	extra = "&type=" + type;
	var get = "?position=" + position + "&album=" + album + "&action=trash&drag=" + dragvalue + extra;

	$('#gallery-container').load('includes/scripts/gallery.script.php'+ get);
}
Gallery.prototype.dropAlbumToTrash = function() {
	dragvalue = globalDrag.find('a').attr('id').substring(6);
//var dragvalue = globalDrag.text();
//		dragvalue = globalDrag.attr("href");
//		dragvalue = dragvalue.substring(dragvalue.indexOf("album=") + 6);
	extra = "&type=album";
	var get = "?position=" + position + "&album=" + album + "&action=trash&drag=" + dragvalue + extra;	
	
	$('#gallery-container').load('includes/scripts/gallery.script.php'+ get);
}
Gallery.prototype.dropRestore = function() 
{
	dragvalue = globalDrag.find('a').attr('id');
	sep = dragvalue.indexOf('ID')
	type = dragvalue.substring(0 , sep);
	dragvalue = dragvalue.substring(sep + 2);
	extra = "&type=" + type;
	var get = "?position=" + position + "&action=restore&drag=" + dragvalue + extra;
	
	$('#gallery-container').load('includes/scripts/gallery.script.php'+ get);
}

Gallery.prototype.dropAlbumRestore = function() {
	dragvalue = globalDrag.find('a').attr('id').substring(6);
	var extra;
	extra = "&type=album";
	var get = "?position=" + position + "&action=restore&drag=" + dragvalue + extra;
	
	$('#gallery-container').load('includes/scripts/gallery.script.php'+ get);
}


function LoadPhotos(pos, albm)
{
	
	$.ajax({
		url: 'includes/scripts/gallery.script.php?position='+ pos + '&album=' + albm,
		type: 'GET',
		dataType: 'html',
		success: function(data) {
			$('#gallery-container').html(data);
		}
	});

}
