var thumbpicker = function(inly, prevbtn, nextbtn, byview, t_url,box)
{
	var step = -16, stime = 7, wtime = 5, ep;
	var sleep = stime, cell = 128, total = 0, width = cell * total;
	var pos = 0;

	var get_init_docs = function()
	{
		var AjaxObj = new Ajax.Request(t_url,{
			method: 'get',
			parameters: {p: 'ed', idx : docs_seq,scd: state_cg_date},
			onComplete: function(transport){
				var data;
				var vpos, idx, seq, title, user_nickname, r, type, loc_type, loc_name, user_docs_url, imgsize, state_cg_date, width, height;
				var loc_url, html;
				var nod;
				$(inly).innerHTML = '';
				try{
				data = transport.responseXML.getElementsByTagName("docs");
				}catch (e){data = '';}

				for(i=0;i<data.length;i++){

					vpos = (pos+i);
					//Safari 에러 방지를 위한 예외 처리.
					try{
					idx = data.item(i).getElementsByTagName("idx").item(0).firstChild.data;
					}catch (e){idx = '';}

					try{
					seq = data.item(i).getElementsByTagName("seq").item(0).firstChild.data;
					}catch (e){seq = '';}

					try{
					title = data.item(i).getElementsByTagName("title").item(0).firstChild.data;
					}catch (e){title = '';}

					try{
					user_nickname = data.item(i).getElementsByTagName("nickname").item(0).firstChild.data;
					}catch (e){user_nickname = '';}

					try{
					r = data.item(i).getElementsByTagName("regdate").item(0).firstChild.data;
					}catch (e){r = '';}

					try{
					type = data.item(i).getElementsByTagName("type").item(0).firstChild.data;
					}catch (e){type = '';}


					try{
					loc_type = data.item(i).getElementsByTagName("loc_type").item(0).firstChild.data;
					}catch (e){loc_type = '';}

					try{
					loc_name = data.item(i).getElementsByTagName("loc_name").item(0).firstChild.data;
					}catch (e){loc_name = '';}

					try{
					user_docs_url = data.item(i).getElementsByTagName("docs_url").item(0).firstChild.data;
					}catch (e){user_docs_url = '';}

					try{
					state_cg_date = data.item(i).getElementsByTagName("state_cg_date").item(0).firstChild.data;
					}catch (e){state_cg_date = '';}

					try{
					exists = data.item(i).getElementsByTagName("exists").item(0).firstChild.data;
					}catch (e){exists = '';}

					try{
					width = data.item(i).getElementsByTagName("width").item(0).firstChild.data;
					}catch (e){width = '';}

					try{
					height = data.item(i).getElementsByTagName("height").item(0).firstChild.data;
					}catch (e){height = '';}

					loc_url = "";
					if(loc_type != '')
						loc_url = loc_type + "/" + loc_name + '/';

//					if(type =='IMG' || type =='ZIP')
						imgsize = 'c';
//					else
//						imgsize = 's';

					if(idx == "E")
						html = ("<dt id='"+(inly+'_' + vpos)+"_scd' lang='"+state_cg_date+"'><img id='"+(inly+'_' + vpos)+"_thmb' name='r_thumb_img' width=75 border='0' src='" + image_url + "/common/last_photo.gif' class='vt'/></dt>");
					else if(idx == "S")
						html = ("<dt id='"+(inly+'_' + vpos)+"_scd' lang='"+state_cg_date+"'><img id='"+(inly+'_' + vpos)+"_thmb' name='r_thumb_img' width=75 border='0' src='" + image_url + "/common/first_photo.gif' class='vt'/></dt>");
					else{
						html = "<dt id='"+(inly+'_' + vpos)+"_scd' lang='"+state_cg_date+"'><a href='/docs/"+user_docs_url+"/"+seq+"/"+loc_url+"'><img id='"+(inly+'_' + vpos)+"_thmb' name='r_thumb_img'";
						if(exists == "false")
							html += " onload='if(width>100)width=100;' ";
						else
							html += " width='" + width + "' height='" + height + "' ";
						html += "border='0' src='/docs/"+user_docs_url+"/"+seq+"/"+loc_url+"thmb.jpg?s=" + imgsize + "&r="+r+"' class='vt'/></a></dt><dd><a href='/docs/"+user_docs_url+"/"+seq+"/"+loc_url+"' class='title'>"+title+"</a>";
						if(byview)
							html += " by <a href='/docs/"+user_docs_url+"/' class='id'>"+user_nickname+"</a>";
						html += "</dd>";
					}

					nod = document.createElement('dl');
					nod.setAttribute('lang', idx);
					nod.setAttribute('id', inly+'_' + vpos);

					$(inly).appendChild(nod);
					$(inly+'_'+ vpos).setStyle({position:'absolute',left:(cell * vpos)+'px'});

					nod.innerHTML= html;

					total++;
					docs_list_set();
				}

				if($(box).getStyle('display') == 'none')
					Effect.BlindDown(box);

			},
			onFailure: function(){
				alert('サーバーとの通信に問題が発生しました。');
			}
		});
	}

	var get_next_docs = function()
	{
		$(nextbtn).onclick = null;

		var i;
		var npos;
		for(i=pos;;i++)
		{
			if(!$(inly+'_'+(i))){
				npos = i;
				break;
			}
		}

		var AjaxObj = new Ajax.Request(t_url,{
			method: 'get',
			parameters: {p: 'en', idx : $(inly+'_'+(npos-1)).lang, scd : $(inly+'_'+(npos-1)+'_scd').lang },
			onComplete: function(transport){
				var data = transport.responseXML.getElementsByTagName("docs");
				var idx, seq, title, user_nickname, r, type, loc_type, loc_name, user_docs_url, imgsize, state_cg_date;
				var loc_url, html;
				var nod;

				for(i=0;i<data.length;i++){
					//Safari 에러 방지를 위한 예외 처리.
					try{
					idx = data.item(i).getElementsByTagName("idx").item(0).firstChild.data;
					}catch (e){idx = '';}

					try{
					seq = data.item(i).getElementsByTagName("seq").item(0).firstChild.data;
					}catch (e){seq = '';}

					try{
					title = data.item(i).getElementsByTagName("title").item(0).firstChild.data;
					}catch (e){title = '';}

					try{
					user_nickname = data.item(i).getElementsByTagName("nickname").item(0).firstChild.data;
					}catch (e){user_nickname = '';}

					try{
					r = data.item(i).getElementsByTagName("regdate").item(0).firstChild.data;
					}catch (e){r = '';}

					try{
					type = data.item(i).getElementsByTagName("type").item(0).firstChild.data;
					}catch (e){type = '';}


					try{
					loc_type = data.item(i).getElementsByTagName("loc_type").item(0).firstChild.data;
					}catch (e){loc_type = '';}

					try{
					loc_name = data.item(i).getElementsByTagName("loc_name").item(0).firstChild.data;
					}catch (e){loc_name = '';}

					try{
					user_docs_url = data.item(i).getElementsByTagName("docs_url").item(0).firstChild.data;
					}catch (e){user_docs_url = '';}

					try{
					state_cg_date = data.item(i).getElementsByTagName("state_cg_date").item(0).firstChild.data;
					}catch (e){state_cg_date = '';}

					try{
					exists = data.item(i).getElementsByTagName("exists").item(0).firstChild.data;
					}catch (e){exists = '';}

					try{
					width = data.item(i).getElementsByTagName("width").item(0).firstChild.data;
					}catch (e){width = '';}

					try{
					height = data.item(i).getElementsByTagName("height").item(0).firstChild.data;
					}catch (e){height = '';}

					loc_url = "";

					if(loc_type != '')
						loc_url = loc_type + "/" + loc_name + '/';

//					if(type =='IMG' || type =='ZIP')
						imgsize = 'c';
//					else
//						imgsize = 's';

					var html;

					if(idx == "E")
						html = ("<dt id='"+(inly+'_' + npos)+"_scd' lang='"+state_cg_date+"'><img width=75 border='0' src='" + image_url + "/common/last_photo.gif' class='vt'/></dt>");
					else if(idx == "S")
						html = ("<dt id='"+(inly+'_' + npos)+"_scd' lang='"+state_cg_date+"'><img width=75 border='0' src='" + image_url + "/common/first_photo.gif' class='vt'/></dt>");
					else{
						var html = "<dt id='"+(inly+'_' + npos)+"_scd' lang='"+state_cg_date+"'><a href='/docs/"+user_docs_url+"/"+seq+"/"+loc_url+"'><img";
						if(exists == "false")
							html += " onload='if(width>100)width=100;' ";
						else
							html += " width='" + width + "' height='" + height + "' ";
						html += "border='0' src='/docs/"+user_docs_url+"/"+seq+"/"+loc_url+"thmb.jpg?s=" + imgsize + "&r="+r+"' class='vt'/></a></dt><dd><a href='/docs/"+user_docs_url+"/"+seq+"/"+loc_url+"' class='title'>"+title+"</a>";
						if(byview)
							html += " by <a href='/docs/"+user_docs_url+"/' class='id'>"+user_nickname+"</a>";
						html += "</dd>";
					}

					var nod = document.createElement('dl');
					nod.setAttribute('lang', idx);
					nod.setAttribute('id', inly+'_' + npos);
					$(inly).appendChild(nod);
					$(inly+'_'+ npos).setStyle({position:'absolute',left:(cell * npos)+'px'});

					nod.innerHTML= html;

					if($((inly+'_'+(pos-1))))
						$((inly+'_'+(pos-1))).remove();
					else
						total++;

					docs_list_set();

					$(nextbtn).onclick = nextfunc;
				}
			},
			onFailure: function(){
				$(nextbtn).onclick = nextfunc;
				alert('サーバーとの通信に問題が発生しました。');
			}
		});
	}

	var get_prev_docs = function()
	{
		$(prevbtn).onclick = null;
		var i;
		var ppos;

		for(i=pos;;i--)
		{
			if(!$(inly+'_'+(i))){
				ppos = i;
				break;
			}
		}

		var AjaxObj = new Ajax.Request(t_url,{
			method: 'get',
			parameters: {p: 'ep', idx : $(inly+'_'+(ppos+1)).lang, scd : $(inly+'_'+(ppos+1)+'_scd').lang },
			onComplete: function(transport){
				var data = transport.responseXML.getElementsByTagName("docs");
				var idx, seq, title, user_nickname, r, type, loc_type, loc_name, user_docs_url, imgsize, state_cg_date;
				var loc_url, html;
				var nod;

				for(i=0;i<data.length;i++){
					//Safari 에러 방지를 위한 예외 처리.
					try{
					idx = data.item(i).getElementsByTagName("idx").item(0).firstChild.data;
					}catch (e){idx = '';}

					try{
					seq = data.item(i).getElementsByTagName("seq").item(0).firstChild.data;
					}catch (e){seq = '';}

					try{
					title = data.item(i).getElementsByTagName("title").item(0).firstChild.data;
					}catch (e){title = '';}

					try{
					user_nickname = data.item(i).getElementsByTagName("nickname").item(0).firstChild.data;
					}catch (e){user_nickname = '';}

					try{
					r = data.item(i).getElementsByTagName("regdate").item(0).firstChild.data;
					}catch (e){r = '';}

					try{
					type = data.item(i).getElementsByTagName("type").item(0).firstChild.data;
					}catch (e){type = '';}


					try{
					loc_type = data.item(i).getElementsByTagName("loc_type").item(0).firstChild.data;
					}catch (e){loc_type = '';}

					try{
					loc_name = data.item(i).getElementsByTagName("loc_name").item(0).firstChild.data;
					}catch (e){loc_name = '';}

					try{
					user_docs_url = data.item(i).getElementsByTagName("docs_url").item(0).firstChild.data;
					}catch (e){user_docs_url = '';}

					try{
					state_cg_date = data.item(i).getElementsByTagName("state_cg_date").item(0).firstChild.data;
					}catch (e){state_cg_date = '';}

					try{
					exists = data.item(i).getElementsByTagName("exists").item(0).firstChild.data;
					}catch (e){exists = '';}

					try{
					width = data.item(i).getElementsByTagName("width").item(0).firstChild.data;
					}catch (e){width = '';}

					try{
					height = data.item(i).getElementsByTagName("height").item(0).firstChild.data;
					}catch (e){height = '';}

					loc_url = "";

					if(loc_type != '')
						loc_url = loc_type + "/" + loc_name + '/';

//					if(type =='IMG' || type =='ZIP')
						imgsize = 'c';
//					else
//						imgsize = 's';

					var html;

					if(idx == "S")
						html = ("<dt id='"+(inly+'_' + ppos)+"_scd' lang='"+state_cg_date+"'><img width=75 border='0' src='" + image_url + "/common/first_photo.gif' class='vt'/></dt>");
					else if(idx == "E")
						html = ("<dt id='"+(inly+'_' + ppos)+"_scd' lang='"+state_cg_date+"'><img width=75 border='0' src='" + image_url + "/common/last_photo.gif' class='vt'/></dt>");
					else{
						html = "<dt id='"+(inly+'_' + ppos)+"_scd' lang='"+state_cg_date+"'><a href='/docs/"+user_docs_url+"/"+seq+"/"+loc_url+"'><img";
						if(exists == "false")
							html += " onload='if(width>100)width=100;' ";
						else
							html += " width='" + width + "' height='" + height + "' ";
						html += "border='0' src='/docs/"+user_docs_url+"/"+seq+"/"+loc_url+"thmb.jpg?s=" + imgsize + "&r="+r+"' class='vt'/></a></dt><dd><a href='/docs/"+user_docs_url+"/"+seq+"/"+loc_url+"' class='title'>"+title+"</a>";
						if(byview){
							html += " by <a href='/docs/"+user_docs_url+"/' class='id'>"+user_nickname+"</a>";
						}
						html += "</dd>";
					}

					var nod = document.createElement('dl');
					nod.setAttribute('lang', idx);
					nod.setAttribute('id', inly+'_'+ppos);
					$(inly).appendChild(nod);
					$(inly+'_'+ ppos).setStyle({position:'absolute',left:(cell * ppos)+'px'});
					nod.innerHTML= html;

					if($((inly+'_'+(pos+2))))
						$((inly+'_'+(pos+2))).remove();
					else
						total++;

					docs_list_set();
				}
				$(prevbtn).onclick = prevfunc;
			},
			onFailure: function(){
				$(prevbtn).onclick = prevfunc;
				alert('サーバーとの通信に問題が発生しました。');
			}
		});

	}


	function docs_list_set() {
		width = cell * total;
		$(inly).setStyle({width:(cell * total) + 'px'});

		if($(inly+'_'+pos))
		if($(inly+'_'+pos).lang == "S")
			$(prevbtn).hide();
		else
			$(prevbtn).show();

		if($(inly+'_'+(pos+1)))
		if($(inly+'_'+(pos+1)).lang == "E")
			$(nextbtn).hide();
		else
			$(nextbtn).show();

	}

	function do_stop(){
		clearTimeout(ep);
	}

	function do_move(g)
	{
		if(g == 'n')
			$(inly).setStyle({left : ((parseInt($(inly).getStyle('left')) + step)) + 'px'});
		else
			$(inly).setStyle({left : ((parseInt($(inly).getStyle('left')) - step)) + 'px'});

		if (parseInt($(inly).getStyle('left')) % cell == 0)
			sleep = wtime;
		else
			ep = setTimeout(function() {do_move(g)},sleep);

		sleep = stime;
	}

	get_init_docs();

	$(prevbtn).setStyle({cursor:'pointer'});
	$(nextbtn).setStyle({cursor:'pointer'});

	var prevfunc = function(){
			do_move('p');
			pos--;
			get_prev_docs();
		}

	$(prevbtn).onclick = prevfunc;

	var nextfunc = function(){
			do_move('n');
			pos++;
			get_next_docs();
	}

	$(nextbtn).onclick = nextfunc;
}