//Small Calendar (kv) - ver.1.26
//NOTE: GC and PB difference are 1) imageLocation, 2) content slider position(animate rt) 3) gc li image override pb li text (prev, next, cur_date, true_event, sunday)
$(function(){
	//Image location
	var imageSmall = "http://image.gamerage.com/global/calendar/miniCalendar/py_gc_to/";
	var imageLarge = "http://image.gamerage.com/global/calendar/largeCalendar/py/";
	function getImageLocation(){
		return imageSmall; //assign photo location
	}
	//Global Dates		   
	var _TodayDate = new Date();
	var _CalendarDate = new Date();
	var _CountDate = new Date();
	var prev_month = new Date();
	
	//General Variables
	var rowStart = "";
	var totalCalendarDates="";
	var starting_li=""; //starting li
	var total_event=0;
	var total_now_event=0;
	var next_event_day=0;
	var next_event_day_track=true;
	var total_today_event=0;
	var z_index=1000;
	var temp_title="";
	
	//Control Variables
	var current_CalendarDay="";
	var current_CalendarMonth="";
	var current_CalendarYear="";
	var cur_pos=0;
	var ini_date=new Date();
	var ctl_month=ini_date.getMonth();
	var ctl_year=ini_date.getFullYear();
	
	//array
	var myMonths=new Array("01","02","03","04","05","06","07","08", "09","10","11","12");
	var myMonths_a=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug", "Sep","Oct","Nov","Dec");
	var myDays=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
	
	//DATA FORMAT
	/*
	var monthly_events_raw={};
	monthly_events_raw.calendar="";
	monthly_events_raw.calendar=[ {"title" : "","description" : "","event_date" : "2011-04-12 00:00:00","end_date" : "2011-04-12 00:00:00","icon" : "","link" : "","type" : ""} ]
	*/

	//Generate Calendar
	function display_Date(c_year,c_month){
		
		//SMALL CALENDAR
		$("li.event_true").each(function() {$(this).attr('id','')});
		$(".calendar .lbl_grid ul").empty();
		for(i=0;i<42;i++){$(".lbl_grid ul").append('<li></li>');} $(".lbl_grid ul").append("<div style='clear:left'></div>"); //create all cells
		total_now_event=0;
		next_event_day="";
		
		if(c_year!=null && c_month!=null){
			_CountDate.setMonth(c_month);
			_CountDate.setFullYear(c_year);
			
			//31st date bug fix (s)
			_CalendarDate.setFullYear(c_year);
			if(_TodayDate.getMonth()==c_month){
				_CalendarDate.setMonth(c_month); //reverse: set month then date
				_CalendarDate.setDate(_TodayDate.getDate());				
			}else{
				_CalendarDate.setDate(1); //reverse: set date then month
				_CalendarDate.setMonth(c_month);
			}
			//31st date bug fix (e)
		}
		
		//Find rowStart by setting 1st date to tempDate, _CountDate
		_CountDate.setDate(1);
		_CountDate.getDate()==_CountDate.getDay()+1 ? rowStart=7 : rowStart=0;
		
		//Find total dates - local tempDate
		var _TempDate = new Date(_CalendarDate.getFullYear(), _CalendarDate.getMonth() + 1, 0); 
		totalCalendarDates  = _TempDate.getDate();
		
		//Cell: li-nth to start
		starting_li = rowStart + _CountDate.getDay();
		
		for(i=0;i<totalCalendarDates;i++){  //Input text date from 0->total_days_in_month
			//DAYS NORMAL FILTER
			$(".lbl_grid ul li").eq(starting_li+i).append('<span class="cur_dates">'+ (i+1) +'</span>');	//span.cur_dates differ li.cur_date
			
			//Normal Days class
			$(".lbl_grid ul li").eq(starting_li+i).addClass("days"); 
			//add ID to li
			$(".lbl_grid ul li").eq(starting_li+i).attr('id', 'cur_' + (i+1) );
			//GC ONLY->Normal Days Li Images
			$(".lbl_grid ul li").eq(starting_li+i).empty().append(appendImage((i+1),'num_bk'));
			
			//SUNDAYS FILTER
			if((starting_li+i)==7 || (starting_li+i)==14 || (starting_li+i)==21 || (starting_li+i)==28 || (starting_li+i)==35){
				$(".lbl_grid ul li").eq(starting_li+i).addClass('sun_days');
				$(".lbl_grid ul li").eq(starting_li+i).empty();
				$(".lbl_grid ul li").eq(starting_li+i).append('<span>'+(i+1)+'</span>');
				//GC ONLY->Sunday Days Li Images
				$(".lbl_grid ul li").eq(starting_li+i).empty().append(appendImage((i+1),'num_re'));
			}
			
			//Extract Current Day
			var today_date=new Date();
			today_d = today_date.getDate();
			today_m = today_date.getMonth();
			if((i+1)==_TodayDate.getDate() && ctl_month == _TodayDate.getMonth() && _CalendarDate.getFullYear() == _TodayDate.getFullYear()){				
				$(".lbl_grid ul li[id=cur_" + (i+1) + "]").addClass("cur_date");
				var cur_html=$(".lbl_grid ul li[id=cur_" + (i+1) + "]").html();
				$(".lbl_grid ul li[id=cur_" + (i+1) + "]").html(cur_html);
				//GC ONLY->Today Event Day Li Images
				$(".lbl_grid ul li[id=cur_" + (i+1) + "]").html(appendImage((i+1),'num_wh'));
			}
			
			//Display Date Label (top)
			if(_TodayDate.getMonth()==_CalendarDate.getMonth()&&_TodayDate.getFullYear()==_CalendarDate.getFullYear()){
				var tc_date=_CalendarDate.getDate();
				tc_date=tc_date.toString();
				if(tc_date.length<2){
					tc_date = "0" + tc_date;
				}
				/*PB Title Label & Arrows --(s)---
				$(".calendar .title").html("<span class='prev'><img src='"+getImageLocation()+"/arrow_l.png'></span>"+ myMonths[_CalendarDate.getMonth()] + "." + tc_date + "." + _CalendarDate.getFullYear() + " (" +  myDays[_CalendarDate.getDay()] + ")" + "<span class='next'><img src='"+getImageLocation()+"/arrow_r.png'></span>");
			}else{
					$(".calendar .title").html("<span class='prev'><img src='"+getImageLocation()+"/arrow_l.png'></span>"+ myMonths_a[_CalendarDate.getMonth()] + "." + _CalendarDate.getFullYear() + "<span class='next'><img src='"+getImageLocation()+"/arrow_r.png'></span>");
			}				
				*/
				
				/*GC Title Label & Arrows --(s)---*/
					$(".calendar .title").html("<span class='prev'><img src='"+getImageLocation()+"/arrow_l.png'></span>"+ img_convertDate(myMonths[_CalendarDate.getMonth()]) + "<img src='http://image.gamerage.com/global/calendar/miniCalendar/py_gc_to/date/dot.png'>" + img_convertDate(tc_date) + "<img src='http://image.gamerage.com/global/calendar/miniCalendar/py_gc_to/date/dot.png'>" + img_convertDate(_CalendarDate.getFullYear()) + " " +  img_convertDay(_CalendarDate.getDay()) + "<span class='next'><img src='"+getImageLocation()+"/arrow_r.png'></span>");
				}else{
						$(".calendar .title").html("<span class='prev'><img src='"+getImageLocation()+"/arrow_l.png'></span>"+ img_convertDate(myMonths[_CalendarDate.getMonth()]) + "." + img_convertDate(_CalendarDate.getFullYear()) + "<span class='next'><img src='"+getImageLocation()+"/arrow_r.png'></span>");
				}				

		}
		
		//CONTROL CURRENT CAL_POSITION--------------------------------------------------------------------------
		//Record _CalendarDate
		current_CalendarYear   = _CalendarDate.getFullYear();
		current_CalendarMonth  = _CalendarDate.getMonth();
		
		//PREVIOUS/NEXT MONTH Extract --------------------------------------------------------------------------
		if(_CalendarDate.getMonth()<=0){
			prev_month.setMonth(11);
			prev_month.setYear(_CalendarDate.getFullYear()-1);
		}else{
			prev_month.setMonth(_CalendarDate.getMonth()-1);
		}
		//Get Total Days
		var prev_month_numdays = new Date(prev_month.getFullYear(), prev_month.getMonth() + 1, 0); //local Date
			prev_month_numdays = prev_month_numdays.getDate();	
		//Extract Previous Dates  
		//Get Starting Position of first actual calendar date
		var total_prev_dates = $("#cur_1").index();
		for(i=0;i<total_prev_dates;i++){
			var temp_num=prev_month_numdays-i;
			//PB => temp_num=temp_num.toString();
			//PB => $(".lbl_grid ul li").eq(total_prev_dates - i - 1).append('<span class="prev_dates">'+temp_num+'</span>');
			/*GC*/  $(".lbl_grid ul li").eq(total_prev_dates - i - 1).append('<span class="prev_dates">'+appendImage(temp_num,'num_gr')+'</span>');
		}
		//Extract Next Dates  
		var total_next_dates = 42 - totalCalendarDates - total_prev_dates;  //total cells - total days
		for(i=0;i<total_next_dates;i++){
			var temp_num=i+1;
			//PB => temp_num=temp_num.toString();
			//PB => $(".lbl_grid ul li").eq(totalCalendarDates+total_prev_dates+i).append('<span class="prev_dates">'+appendText(temp_num)+'</span>');
			/*GC*/  $(".lbl_grid ul li").eq(totalCalendarDates+total_prev_dates+i).append('<span class="prev_dates">'+appendImage(temp_num,'num_gr')+'</span>');
		}
		
		//DATA RECORD---------------------------------------------------------------------------------------------------
		var monthly_events={};
		monthly_events.calendar=[];
		for(var i=0;i<monthly_events_raw.calendar.length;i++){
			var mi_year = covertYear(monthly_events_raw.calendar[i].event_date);
			var mi_month = covertMonth(monthly_events_raw.calendar[i].event_date);
			if(mi_year==ctl_year&&mi_month==(ctl_month+1)){
				monthly_events.calendar.push({
				  "title" : monthly_events_raw.calendar[i].title, 
				  "description" : monthly_events_raw.calendar[i].description ,
				  "event_date" : monthly_events_raw.calendar[i].event_date,
				  "end_date" : monthly_events_raw.calendar[i].end_date,
				  "icon" : monthly_events_raw.calendar[i].icon,
				  "link" : monthly_events_raw.calendar[i].link
				 })
			}
		}
		
		//DATA EXTRACT to Container
		$(".content_wrapper").empty();
		for(var i=0;i<monthly_events.calendar.length;i++){
			var mi_date = covertDate(monthly_events.calendar[i].event_date);
			$(".content_wrapper").append(
									'<div class="single_data data_'+mi_date+'" style="display:none"><div class="title">'+monthly_events.calendar[i].title+
									'<span>'+ dateFormat(monthly_events.calendar[i].event_date)+ " - " + dateFormat(monthly_events.calendar[i].end_date) + '</span></div><div>'+monthly_events.calendar[i].description+
									checkLink(monthly_events.calendar[i].link) + '</div><div class="v_spacer_15"></div></div>'
			);
			
			//STYLE - actual events
			//MODIFIED(1/3/12): if(_CalendarDate.getFullYear()==_TodayDate.getFullYear()){
				$(".lbl_grid ul li[id=cur_" + mi_date + "]").addClass("event_true");
			//}
			
			//STYLE - currentEventToday - class.cur_event_date
			if((covertDate(monthly_events.calendar[i].event_date))==_TodayDate.getDate()&&(covertMonth(monthly_events.calendar[i].event_date))==(_TodayDate.getMonth()+1)){
				$(".lbl_grid ul li[id=cur_" + mi_date + "]").addClass("cur_event_date");
			}
			
			$(".lbl_grid ul li[id=cur_" + mi_date + "]").click(function(){
													var div_name = $(this).attr('id');
													div_name=div_name.substr(4);
													$(".content_wrapper .single_data").css({"display":"none"});
												  	$(".data_"+div_name).css({"display":"block"});
													});
		}
		//GC ONLY->Event Days Li Images
		$(".event_true").each(function(index) {
			$(this).empty();
			var temp_id=($(this).attr('id'));
			temp_id=temp_id.substr(4);
			var temp_num=temp_id;
			/*temp_num=temp_num.toString();
			for(n=0;n<temp_num.length;n++){
				$(this).append('<img src="http://image.gamerage.com/global/calendar/miniCalendar/py_gc_to/num_wh/'+ temp_num.substr(n,1)+'.png">');
			}*/
			$(this).append(appendImage((temp_num),'num_wh'));
	  	});
	}//Function (e)-------------------------------------------------------------------------------
	
	
	//INITALIZE DATE
	try{
		display_Date();
	}catch(er){
		
	}


	//CONTROLS (s)------------------------------------------------------------------------------------
	//->NEXT
	$(".calendar .title .next").live("mouseup", function(){
		cur_pos=1;
		if((current_CalendarMonth+cur_pos)>11){
			current_CalendarMonth=0;
			ctl_month=0;
			ctl_year=current_CalendarYear+1;
			display_Date(current_CalendarYear+1,current_CalendarMonth);
		}else{
			ctl_month=current_CalendarMonth+cur_pos;
			ctl_year=current_CalendarYear;
			display_Date(current_CalendarYear,current_CalendarMonth+cur_pos);
		}
		//PB.animate.slider -> $(".content_outer").animate({"right":"-289px"});
		/*GC.animate.slider -> */ $(".content_outer").animate({"right":"0"});
	});
	//->PREV
	$(".calendar .title .prev").live("mouseup", function(){
		cur_pos=-1;
		if((current_CalendarMonth+cur_pos)<0){
			current_CalendarMonth=11;
			ctl_month=11;
			ctl_year=current_CalendarYear-1;
			display_Date(current_CalendarYear-1, current_CalendarMonth);
		}else{
			ctl_month=current_CalendarMonth + cur_pos;
			ctl_year=current_CalendarYear;
			display_Date(current_CalendarYear,current_CalendarMonth+cur_pos);
		}
		//PB.animate.slider -> $(".content_outer").animate({"right":"-289px"});
		/*GC.animate.slider -> */ $(".content_outer").animate({"right":"0"});
	});
	//->OPEN CONTENT SLIDER
	$(".event_true").live('click',(function(){
		//PB.animate.slider ->   $(".content_outer").stop().animate({"right":"224px"});
		/*GC.animate.slider ->*/ $(".content_outer").stop().animate({"right":"-516px"});
		})
	);
	//->CLOSE CONTENT SLIDER
	$(".btn_close").click(function(){
		//PB.animate.slider ->   $(".content_outer").stop().animate({"right":"-289px"});
		/*GC.animate.slider ->*/ $(".content_outer").stop().animate({"right":"0"});
	});
	//CONTROLS (e)------------------------------------------------------------------------------------
	
	
	
	//script (e)
	//CONVERSIONS (s)------------------------------------------------------------------------------------------------------------------
	function appendImage(date_num,class_name){
		var date_num=date_num.toString();
		var image_storage="";
		for(n=0;n<date_num.length;n++){
			image_storage += '<img src="'+getImageLocation()+'/'+class_name+'/'+ date_num.substr(n,1)+'.png">';
		}
		return image_storage;	
	}
	function appendText(date_num){
		var date_num=date_num.toString();
		var image_storage="";
		//image_storage += '<div class="icon_holder"></div><span class="corner_box">';
		for(n=0;n<date_num.length;n++){
			image_storage += date_num.substr(n,1);
			//image_storage += '<img src="'+getImageLocation()+'/num_bk/'+ temp_date_num.substr(n,1)+'.png">';
		}
		//image_storage += '</span>';
		return image_storage;	
	}
	function img_convertDate(date){
		var result="";
		date=date.toString();
		for(n=0;n<date.length;n++){
			result+=('<img src="'+getImageLocation()+'/date/'+ date.substr(n,1)+'.png">');
		}
		return result;
	}
	function img_convertDay(date){
		var result="";
		date=date.toString();
		for(n=0;n<date.length;n++){
			result+=('<img src="'+getImageLocation()+'/day/'+ date.substr(n,1)+'.png">');
		}
		return result;
	}
	function dateFormat(date){
		var df_year = date.substr(0,4);
		var df_month = eval(date.substr(5,2));
		var df_day = eval(date.substr(8,2));
		var myMonths_a=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug", "Sep","Oct","Nov","Dec");
		return (myMonths_a[df_month-1] +" "+ df_day + ", " + df_year);
	};
	function covertYear(year){
		return eval(year.substring(0,4));
	}
	function covertMonth(month){
		return eval(month.substring(5,7));
	}
	function covertDate(date){
		return eval(date.substring(8,10));
	}
	function checkLink(dlink){
		if(dlink!=""){
			return ' <a href="'+dlink+'">View More</a>';	
		}else{
			return '';	
		}
	}
	//CONVERSIONS (e)------------------------------------------------------------------------------------------------------------------
});





