var Fnc = {};

Fnc.IE6 = (navigator.userAgent.indexOf("MSIE 6")>=0) ? true : false;

Fnc.pngImg = function(options){
	
	$(options.rollover).each(function(){
		if($(this).children().length === 1){
			btn_solo($(this));
		}else if($(this).children().length > 1){
			btn_group($(this));
		}
	});
	
	function btn_group(obj){
		obj.children().each(function(){
			var parent = $(this);			
			var img_width = $(this).width();
			var img_height = $(this).height();
			
			var img = parent.find('img').get(0);
			
			var img_path = $(img).attr('src');
			var img_path_o = img_path.replace(/(\.[^\.]+$)/,"_o$1");
			
			if(parent.find('img').is('.unroll')){
				return true;
			}
			
			var btn_a = parent.find('a');
			
			if(btn_a.length === 0){
				btn_a = obj;
				$(img).addClass('unroll');
				
				$(btn_a).css({
					width : img_width,
					height :img_height,
					display : 'block',
					zoom : '1',
					filter : 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image,src="' + img_path + '")'
				});
				
			}else{
				btn_a = btn_a[0];

				
				$(btn_a).css({
					width : img_width,
					cursor : 'pointer',
					height :img_height,
					display : 'block',
					zoom : '1',
					filter : 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image,src="' + img_path + '")'
				});
				
				parent.mouseover(function(){
					$(btn_a).css({
						filter : 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image,src="' + img_path_o + '")'
					});
				});
				
				parent.mouseout(function(){
					$(btn_a).css({
						filter : 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image,src="' + img_path + '")'
					});
				});
			}

	
			$(img).attr({'src' : '/shared/images/spacer.gif'});
		});
	}
	function btn_solo(obj){
		
		var img_width = obj.width();
		var img_height = obj.height();
		
		var img_path = obj.find('img').attr('src');
		var img_path_o = img_path.replace(/(\.[^\.]+$)/,"_o$1");
		
		var btn_a = obj.find('a');
		
		if(btn_a.length === 0){
			btn_a = obj;
			obj.find('img').addClass('unroll');
			
			$(btn_a).css({
				width : img_width,
				height :img_height,
				display : 'block',
				zoom : '1',
				filter : 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image,src="' + img_path + '")'
			});
			
		}else{
			btn_a = btn_a[0];
			
			$(btn_a).css({
				width : img_width,
				cursor : 'pointer',
				height :img_height,
				display : 'block',
				zoom : '1',
				filter : 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image,src="' + img_path + '")'
			});
			
			obj.mouseover(function(){
				$(btn_a).css({
					filter : 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image,src="' + img_path_o + '")'
				});
			});
			
			obj.mouseout(function(){
				$(btn_a).css({
					filter : 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image,src="' + img_path + '")'
				});
			});
		}

		obj.find('img').attr({'src' : '/shared/images/spacer.gif'});
	}
};

Fnc.RollOver = function(options){

	$(options.rollover).each(function(){
		
		$(this).find("img,input").each(function(){
			
			var roll_img = $(this);
			
			try{
				window.addEventListener('pageshow', function(){
					if(roll_img.is('.unroll') === false){
					roll_img.attr('src', roll_img.attr('src').replace(/_o/, ""));
					}
				}, false);
			}catch(e){
			}

			var preload_img = new Image;
			
			preload_img.src = roll_img.attr('src').replace(/(\.[^\.]+$)/,"_o$1");
			
			roll_img.mouseover(function(){
				if(!roll_img.is(options.unroll)){
		
					if(!roll_img.attr('src').match(/_o\.[^\.]+$/)){
						roll_img.attr('src', roll_img.attr('src').replace(/(\.[^\.]+$)/,"_o$1"));
					}
					
				}
			});
			
			roll_img.mouseout(function(){
				if(!roll_img.is(options.unroll)){
					roll_img.attr('src', roll_img.attr('src').replace(/_o/, ""));	
				}
			});


		});
	});
};

Fnc.SetHeight = function(options){

	var eq_elms = $('.' + options.classname).children();
	var childs_length = eq_elms.length;

	$('<span id="size-checker"> </span>').appendTo("body");
	$('#size-checker').css({left : '-9999px' , top : '0' , position : 'absolute'});

	var height_origin = $('#size-checker').height();

	var height_now;

	function compare(a, b) { return(b - a);}
	
	function group_equalize(){

		var counter = 0;

		var limit = options.group;

		var remainder = childs_length % options.group;

		var group_loop;

		if(remainder !== 0){
			group_loop = Math.floor(childs_length / options.group) + 1;
		}else{
			group_loop = childs_length / options.group;
		}

		for (var i=0; i<group_loop; i++) {
			
			var height_array = [];

			if(limit > childs_length || limit === childs_length){
				limit = childs_length;
			}

			for (var j=counter; j<limit; j++) {
				$(eq_elms[j]).css({height: ''});
				height_array.push($(eq_elms[j]).height());
			}
	
			height_array.sort(compare);

			for (j=counter; j<limit; j++) {
				$(eq_elms[j]).css({height: height_array[0] + 'px'});
			}

			counter = counter + options.group;
			limit = counter + options.group;
		}
	}
	
	function height_setting(){

		if (!options.group) {
			var height_array = [];
			
			eq_elms.each(function(){
				$(this).css({height: ''});
				height_array.push($(this).height());
			});
							
			height_array.sort(compare);
		
			eq_elms.each(function(){	
				$(this).css({height: height_array[0] + 'px'});
			});
		}else{

			group_equalize();
		}
	}

	height_setting();

	setInterval(function(){
		height_now = $('#size-checker').height();
		
		if(height_origin !== height_now){
			height_origin = height_now;
			height_setting();
		}
	},1000);
};

Fnc.SetGlobalStay = function(options){
	
	if($('body').is('.error')){
		return false;
	}
	
	var navi = $(options.navi);
	var hierarchy = options.hierarchy;

	var now_directory = location.pathname.replace(/[^\/]+.[^\.]+$/,"").split('/')[hierarchy];
	
	if(now_directory === ''){
		return false;
	}

	
	if($('body').is('.entry') && now_directory === 'entry'){
		var btn = $(navi).find('img').eq(1);
		btn.addClass('unroll');
		btn.attr('src', btn.attr('src').replace(/(\.[^\.]+$)/,"_o$1"));
	}
	
	if($('body').is('.rule') && now_directory === 'rule'){
		var btn = $(navi).find('img').eq(2);
		btn.addClass('unroll');
		btn.attr('src', btn.attr('src').replace(/(\.[^\.]+$)/,"_o$1"));
	}

	if($('body').is('.present') && now_directory === 'present'){
		var btn = $(navi).find('img').eq(3);
		btn.addClass('unroll');
		btn.attr('src', btn.attr('src').replace(/(\.[^\.]+$)/,"_o$1"));
	}

	if($('body').is('.faq') && now_directory === 'faq'){
		var btn = $(navi).find('img').eq(4);
		btn.addClass('unroll');
		btn.attr('src', btn.attr('src').replace(/(\.[^\.]+$)/,"_o$1"));
	}

	if($('body').is('.newrule') && now_directory === 'newrule'){
		var btn = $(navi).find('img').eq(5);
		btn.addClass('unroll');
		btn.attr('src', btn.attr('src').replace(/(\.[^\.]+$)/,"_o$1"));
	}
	
	
/*
	navi.find('li').each(function(){
		var link = $(this).find('a').get(0);
		var directory = $(link).attr('href').replace(/[^\/]+.[^\.]+$/,"").split('/')[hierarchy];
				
		if(now_directory === directory){
			var btn = $(link).find('img').get(0);
			$(btn).addClass('unroll');
			$(btn).attr('src', $(btn).attr('src').replace(/(\.[^\.]+$)/,"_o$1"));
		}
	});
*/
};

Fnc.SetLocalStay = function(options){
	
	var navi = $(options.navi);
	var body_class = $('body').attr('class').split(' ');
	
	var set_num = false;
	
	$(body_class).each(function(){
		if(this.match('stay')){
			set_num = Number(this.replace('stay','')) - 1;
		}
	});
	
	

	if(set_num === false || set_num < 0){
		return false;
	}
	
	var stay_navi = navi.find('li').get(set_num);
	
	var btn = $(stay_navi).find('img').get(0);
	$(btn).addClass('unroll');
	$(btn).attr('src', $(btn).attr('src').replace(/(\.[^\.]+$)/,"_o$1"));
	
/*
	navi.find('li').each(function(){
		var link = $(this).find('a');
		
		if(link.length !== 0){
			
			link = $(this).find('a').get(0);
			
			var pagename = $(link).attr('href').match(/[^\/]+.[^.]+$/).toString();	
			
			var checker = false;
			
			if(now_page !== ''){
				now_page = 'index.html';
				if(now_page === pagename){
					checker = true;
				}else{
					now_page = 'index.php';
					if(now_page === pagename){
						checker = true;
					}
				}
			}else{
				if(now_page === pagename){
					checker = true;
				}
			}
			
			if(checker){
				var btn = $(link).find('img').get(0);
				$(btn).addClass('unroll');
				$(btn).attr('src', $(btn).attr('src').replace(/(\.[^\.]+$)/,"_o$1"));
			}


		}
	});
*/
};

Fnc.pageTop = function(options){
	var btns = $(options.btn);
	
	btns.click(function(){
		
		var scroll_amount_top = $(window).scrollTop();
		
		if(scroll_amount_top !== 0){
			$('html,body').animate({
				scrollTop: 0
			}, {
				duration: 'slow',
				easing: "easeInOutExpo",
				complete: function(){
				}
			}, false);
		}

		return false;
		
	});
}

Fnc.ClickableCnts = function(options){
	var cnts = $(options.cnts);
	
	cnts.each(function(){
		
		var obj = $(this);
		
		var link = obj.find('a').get(0);
		
		obj.mouseover(function(){
			obj.addClass('on');
			obj.css({cursor : 'pointer'});
		});
		
		obj.mouseout(function(){
			obj.removeClass('on');
		});
		
		obj.click(function(){
			window.location = link;
		});
		
		var childs = obj.find('*');
		
		if(childs.is('.roll')){
			var img = cnts.find('.roll img');
			
			obj.mouseover(function(){
				
				if (!img.is('.unroll')) {
					img.attr('src', img.attr('src').replace(/(\.[^\.]+$)/, "_o$1"));
					img.addClass('unroll');
				}
			});
			obj.mouseout(function(e){
				
				var out_check = false;
				
				for (var i=0; i<childs.length; i++) {
					
					if(childs[i] === e.relatedTarget){
						out_check = true;
					}
					
				}
				
				if(!out_check){
					img.removeClass('unroll');
					img.attr('src', img.attr('src').replace(/_o/, ""));	
				}
			});			
		}		
	});	
}

Fnc.tagCloud = function(options){
	var file = options.file;
	var tag_container = $('#tagCloud');
	var clouds = $('#clouds');
	
	tag_container.css({display : 'block'});
	
	function setTags(data){
		
		$(data).find('tag').each(function(){
			
			var tag_name = $(this).find('name').text();
			var tag_link = $(this).find('url').text();
			var tag_level = $(this).find('level').text();
			
			var create_p = '<p class="l'+ tag_level +'">'+ '<a href="' + tag_link + '">' +tag_name +'</a></p>\n';
			
			clouds.append(create_p);
			
		});
		
	}

	$.ajax({
	  type: "GET",
	  url: file,
	  dataType: "xml",
	  success : function(data){
	 				setTags(data);
				}
	});
}

Fnc.mypageNews = function(options){
	var file = options.file;
	var news_container = $('#newsContainer .inner');
	
	var news_list = '';
	
	function setTags(data){
		
		$(data).find('article').each(function(){
											  
			if( $(this).find('display').text() === '0'){
				return true;	
			}
			
			var date = $(this).find('date').text();
			var title = $(this).find('title').text();
			var text = $(this).find('text').text();
			var url = $(this).find('url').text();
			var blank = $(this).find('blank').text();
			var important = $(this).find('important').text();
			
			var important_class = '';
			
			if(important === '1'){
				important_class = ' class="important"';
			}
			
			var create_li;
			
			if(url){
				if(blank === 'true'){
					create_li = '<li'+ important_class +'><p class="date">'+ date +'</p>\n<h3>' + title + '</h3>\n<p><a href="' + url + '" target="_blank">' +text +'</a></p></li>\n';
				}else{
					create_li = '<li'+ important_class +'><p class="date">'+ date +'</p>\n<h3>' + title + '</h3>\n<p><a href="' + url + '">' +text +'</a></p></li>\n';
				}			
			}else{
				create_li = '<li'+ important_class +'><p class="date">'+ date +'</p>\n<h3>' + title + '</h3>\n<p>' +text +'</p></li>\n';
			}
			
			
			news_list = news_list + create_li;
			
		});
		
		var child_0 = $('#newsContainer .newsList li').get(0);
		
		$(child_0).before(news_list);
		
	}

	$.ajax({
	  type: "GET",
	  url: file,
	  dataType: "xml",
	  success : function(data){
	 				setTags(data);
				}
	});
}

Fnc.tabContents = function(options){
	var btns = options.btns;
	var contents = options.contents;
	
	if($(btns).length === 0){
		return false;
	}
	
	$(contents).addClass('active');
	
	var num;
	
	var anc = window.location.href.split('#')[1];
	
	if(!anc){
		num = 0;
	}else{
		if($('*').is('#'+anc)){
			num = $('.tabContents').children().index($(('#'+anc)));
		}else{
			num = 0;
		}
	}
	
	var stay_img;
	var stay_contents;
	
	$(btns).each(function(){
		if(num + 1 > $(this).children().length){
			num = 0;
		}
		stay_img = $(this).children().get(num).getElementsByTagName('img')[0];
		$(stay_img).attr('src', $(stay_img).attr('src').replace(/(\.[^\.]+$)/,"_o$1"));
		$(stay_img).addClass('unroll');
	});

	$(contents).each(function(){
		stay_contents = $(contents).children().get(num);
		$(stay_contents).addClass('active');
	});	


	$(btns).each(function(){
		$(this).children().each(function(){
			var index = $(btns).children().index(this);
			var btn = $(this);
			
			btn.click(function(){
							   
				if($(this).find('img').get(0) === stay_img){			
					return false
				}
				
				$(stay_img).attr('src', $(stay_img).attr('src').replace(/_o/,""));
				$(stay_img).removeClass('unroll');
				stay_img = $(btns).children().get(index).getElementsByTagName('img')[0];
				$(stay_img).addClass('unroll');
				
				$(stay_contents).removeClass('active');
				stay_contents = $(contents).children().get(index);
				$(stay_contents).addClass('active');
				
				return false;
			});
		});
	});
}

Fnc.SmoothScroll = function(options){
	
	var btn = $(options.btn);
	
	btn.click(function(){
		
		var target = $($(this).attr('href'));

		var target_top = Math.floor(target.position().top + Number(target.css('marginTop').replace(/px/,'')));
			
		var screen_height = document.documentElement.clientHeight;
		var contents_height = document.body.scrollHeight;

		if(contents_height - target_top < screen_height){
			target_top = contents_height - screen_height;
		}

		$('html,body').animate({
			scrollTop: target_top
		}, {
			duration: "slow",
			easing: "easeInOutExpo",
			step : function(){
			},
			complete: function(){	
			}
		}, false);
		
		return false;
		
	});	
}

Fnc.detailTbl = function(){
	
	var container = $('#detailData');
	var loading = $('#detailData .loading');
	var contents = $('#detailData .contents');
	
	var table = $('#detailData table');
	
	var anime = false;
	
	function setData(json){
		
		

		table.find('td').each(function(){
			
			var index = Number(table.find('td').index($(this))) + 1;
			var data = json['data'+index];
			
			if(data === null){
				$(this).addClass('data06');
				$(this).append('-');
			}else if(data === '0'){
				$(this).addClass('data06');
				$(this).append('×');
			}else if(index === 9){
				$(this).addClass('data08');
				$(this).append(data);
			}else{
				$(this).addClass('data02');
				$(this).append(data);
			}
		});
		
		contents.css({display : 'block'});
		loading.css({display : 'none'});
		
	}
	
	$('#dataTbl tr').each(function(){
		var tr = $(this);
		var index = tr.index();
		var btn = tr.find('.detailBtn img');
		
		btn.click(function(){
						   
			table.find('td').each(function(){
				$(this).text('');
				$(this).attr('class','');
			});						 
			
			anime = true;
			
			var btn_img = $(this);
			
			var target_top = $(btn_img).position().top - 120 + 8;
			var target_left = $(btn_img).position().left - 217 + 18;
			
			container.css({
				top : target_top - 10,
				left : target_left
			});
	
			container.animate({
				top : target_top,
				left : target_left
			}, {
				duration: 50,
				easing: "linear",
				complete: function(){		
					anime = false
				}
			}, false);
						   
			var date = tr.find('input').get(0).value;
			var week = tr.find('input').get(1).value;
			var place = tr.find('input').get(2).value;
			var race = tr.find('input').get(3).value;
			
			var param = '?date='+date+'&week='+week+'&place='+place+'&race='+race;
				
			$.ajax({
			  type: "GET",
			  url: '/mypage/point/point_detail.php'+param,
			  dataType: "json",
			  success : function(data, dataType){
					setData(data);
			  }
			});
			
			return false;	
			
		})
		
	});

	
	$('#btnClose').click(function(){
		
		table.find('td').each(function(){
			$(this).text('');
			$(this).attr('class','');
		});
		
		container.css({
			top : 0,
			left : -9999
		});
		
		contents.css({display : 'none'});
		loading.css({display : 'block'});
		
		return false;
		
	});
}


Fnc.betBtnControl = function(){
	
	function selectCheck(){
		
		var selected = [];
		
		$('.betContainer select').each(function(){
			if(this.selectedIndex !== 0){
				selected.push(true);
			}else{
				selected.push(false);
			}
		});
		
		var selected_length = selected.length;
		var check = false;
		
		for (var i=0; i<selected_length; i++) {
			
			if(selected[i] === true){
				check = true;
			}
			
		}
		
		if(check){
			$('#betActive').addClass('display');
			$('#betOut').removeClass('display');
		}else{
			$('#betActive').removeClass('display');
			$('#betOut').addClass('display');
		}
	}
	
	selectCheck();
	
	$('.betContainer select').change(function(){
		selectCheck();
	});
}

$(document).ready(function(){

	Fnc.RollOver({rollover : '.roll' , unroll : '.unroll'});
	Fnc.SetHeight({classname : 'equalize'});
	Fnc.SetGlobalStay({navi : '#glblNav ul' , hierarchy : 1});
	Fnc.SetLocalStay({navi : '#localNav ul'});
	Fnc.pageTop({btn : '.pagetop a'});
	Fnc.SmoothScroll({btn : '.anchor'});
	
	Fnc.tabContents({btns : '.tabBtns',contents : '.tabContents'});
	
	if($('body').is('.stay1.mypage')){
		Fnc.mypageNews({file : '/php/xml/mypage.xml'});
	}
	
	if(!$('body').is('.home')){
		Fnc.tagCloud({file : '/php/xml/tags.xml'});
	}
	
	if(!Fnc.IE6){
		Fnc.RollOver({rollover : '.pngImg' , unroll : '.unroll'});
	}else{
		Fnc.pngImg({rollover : '.pngImg' , unroll : '.unroll'});
	}


});


