var calendarRendered=false;
function ReplaceOrAddParamInUrlSearch(search,name,value){
	
	pattern="([?&]"+name+"=)([0-9a-zA-Z_-]+)";
	var   re=new   RegExp(pattern,"gi"); 
	if(search.match(re)){
		
		result=search.replace(re,"$1"+value);
		return result;
	}
	else{
		if(search.match(/^\?[0-9a-zA-Z]+/g)){
			
			return search+"&"+name+"="+value;
		}
		else{
			return "?"+name+"="+value;
		}
	}
	
}

function RemoveParamInUrlSearch(search,name){
	pattern="(&"+name+"=)([0-9a-zA-Z_-]+)|(\\?"+name+"=)([0-9a-zA-Z_-]+)$";
	var   re=new   RegExp(pattern,"gi"); 
	result=search.replace(re,"");
	
	pattern="(\\?"+name+"=)([0-9a-zA-Z_-]+)&";
	var   re=new   RegExp(pattern,"gi"); 
	result=result.replace(re,"?");
	
	return result;
}
function GotoCategory(cate){
	search=window.location.search;
	search="";
	search=ReplaceOrAddParamInUrlSearch(search,"cate",cate);
	search=RemoveParamInUrlSearch(search,"page");
	//alert(search);
	window.location.search=search;
}

function GotoPage(page){
	search=ReplaceOrAddParamInUrlSearch(window.location.search,"page",page);
	//alert(search);
	window.location.search=search;
}

function GotoDate(startDate,endDate){
	if(startDate=='' ){
		alert("Please select Start date");
		return ;
	}
	if(endDate==''){
		alert("Please select End date");
		return ;
	}
	
	search=window.location.search;
	search=RemoveParamInUrlSearch(search,"page");
	search=RemoveParamInUrlSearch(search,"id");
	search=RemoveParamInUrlSearch(search,"startDate");
	search=RemoveParamInUrlSearch(search,"endDate");
	if(startDate!=''){
		search=ReplaceOrAddParamInUrlSearch(search,"startDate",startDate);
	}
	if(endDate!=''){
		search=ReplaceOrAddParamInUrlSearch(search,"endDate",endDate);
	}
	
	url=window.location.href;
	pattern="(://[^\\/]+/[^\\/]+/[^\\/]+)/(.*)\\.aspx(.*)";
	var   re=new   RegExp(pattern,"i"); 
	if(url.indexOf("/event-detail.aspx")>=0){
		url="/events.aspx";
		window.location=url+search;
	}
	else{
		if(url.match(re)){
			url=url.replace(re,"$1.aspx");
			window.location=url+search;
		}else{
			window.location.search=search;
		}
	}
	
}

function GotoMonth(year,month){
	//alert(year);
	if(calendarRendered){
		search=window.location.search;
		//search=RemoveParamInUrlSearch(search,"page");
		//search=RemoveParamInUrlSearch(search,"startDate");
		//search=RemoveParamInUrlSearch(search,"endDate");
		search=ReplaceOrAddParamInUrlSearch(search,"calendarDate",year+"-"+month);
		
		
		window.location.search=search;
	}else{
		calendarDate=getQueryStringRegExp("calendarDate");
		var reg=new RegExp("([0-9]+)-([0-9]+)");
		if(reg.test(calendarDate)){
			year=parseInt(RegExp.$1);
			month=parseInt(RegExp.$2);
			nowYear=new Date().getFullYear();
			nowMonth=new Date().getMonth()+1;
			var datediff="";
			if(year>=1 &&year>nowYear){
				datediff+="+"+(year-nowYear)+"y";
			}
			if(year>=1 &&year<nowYear){
				datediff+="-"+(nowYear-year)+"y";
			}
			if(month>=1 &&month>nowMonth){
				datediff+="+"+(month-nowMonth)+"m";
			}
			if(month>=1 &&month<nowMonth){
				datediff+="-"+(nowMonth-month)+"m";
			}
			$("#datepicker").datepicker('setDate',datediff);
			
			//$("#datepicker").datepicker('option','defaultDate',datediff);
		}
		
	}
}
function SearchInDateRange(){
	startDate=$("#start_date_picker").val();
	endDate=$("#end_date_picker").val();
	
	startDate=SelfFormatDate(startDate);
	endDate=SelfFormatDate(endDate);
	GotoDate(startDate,endDate);
	
}


function getQueryStringRegExp(name)
{
var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i");

if (reg.test(location.href)) return unescape(RegExp.$2.replace(/\+/g, " ")); return "";
}; 


function RenderCalendarDate(date){
	
	calendarRendered=true;
	
	if(strCanSelectDates=="*"){
		return [true,''];
	}
	
	
	strDate=""+date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
	pattern="(^|,)"+strDate+"(,|$)";
	var reg=new RegExp(pattern,"g");
	if(reg.test(strCanSelectDates)){
		return [true,'can_select'];
	}
	else{
		return [true,'cannot_select'];
	}
}

function DateAdd(timeU,byMany,dateObj) {
	var millisecond=1;
	var second=millisecond*1000;
	var minute=second*60;
	var hour=minute*60;
	var day=hour*24;
	var year=day*365;

	var newDate;
	var dVal=dateObj.valueOf();
	switch(timeU) {
		case "ms": newDate=new Date(dVal+millisecond*byMany); break;
		case "s": newDate=new Date(dVal+second*byMany); break;
		case "mi": newDate=new Date(dVal+minute*byMany); break;
		case "h": newDate=new Date(dVal+hour*byMany); break;
		case "d": newDate=new Date(dVal+day*byMany); break;
		case "y": newDate=new Date(dVal+year*byMany); break;
	}
	return newDate;
}

function GetFirstDateInCurrentMonth(){
	var today=new Date();
	var year=today.getFullYear();
	var month=today.getMonth();
	
	return new Date(year,month,1);
}
function GetLastDateInCurrentMonth(){
	var today=new Date();
	var year=today.getFullYear();
	var month=today.getMonth();
	return DateAdd("d","-1",new Date(year,month+1,1));
}

function PrintPage(){
	search=window.location.search;
	search=ReplaceOrAddParamInUrlSearch(search,"print","true");
	
	url=window.location.href;
	pattern="://(.*)\\.aspx(.*)";
	var   re=new   RegExp(pattern,"i"); 
	if(url.match(re)){
		url=url.replace(re,"://$1.aspx");
	}
	url=url+search;
	window.open(url);
}
function SelfFormatDate(givenDate){
	//dd/MM/yyyy to yyyy-MM-dd
	pattern="([0-9]+)/([0-9]+)/([0-9]+)";
	var   re=new   RegExp(pattern,"i"); 
	if(givenDate.match(re)){
		return givenDate.replace(re,"$3-$2-$1");
	}else{
		return givenDate;
	}
}

function SelfFormatDate_Back(givenDate){
	//yyyy-MM-dd to dd/MM/yyyy
	pattern="([0-9]+)-([0-9]+)-([0-9]+)";
	var   re=new   RegExp(pattern,"i"); 
	if(givenDate.match(re)){
		return givenDate.replace(re,"$3/$2/$1");
	}else{
		return givenDate;
	}
}
$(function(){
		if($('#datepicker').get(0)){
			startDate=getQueryStringRegExp("startDate");
			endDate=getQueryStringRegExp("endDate");
			calendarDate=getQueryStringRegExp("calendarDate");
			
			startDate=SelfFormatDate_Back(startDate);
			endDate=SelfFormatDate_Back(endDate);
			
			$("#start_date_picker").val(startDate);
			$("#end_date_picker").val(endDate);
			
			$('#datepicker').datepicker({onChangeMonthYear:function(year,month,inst){GotoMonth(year,month);},beforeShowDay:function(date){return RenderCalendarDate(date);},dateFormat:'yy-mm-dd',onSelect:function(dateText){GotoDate(dateText,dateText);}});
			$("#start_date_picker").datepicker({dateFormat:'dd/mm/yy',showOn: 'button', buttonImage: '/images/calendar_icon.jpg', buttonImageOnly: true});
			$("#end_date_picker").datepicker({dateFormat:'dd/mm/yy',showOn: 'button', buttonImage: '/images/calendar_icon.jpg', buttonImageOnly: true});
			//alert($('#datepicker').datepicker('getDate'));
			tmp_curDate=$('#datepicker').datepicker('getDate');
			tmp_nowDate=new Date();
			if(tmp_curDate.getFullYear()==tmp_nowDate.getFullYear() && tmp_curDate.getMonth()==tmp_nowDate.getMonth()){
			
			}else{
				$("#datepicker .ui-state-highlight").removeClass('ui-state-highlight');
				$("#datepicker .ui-state-active").removeClass('ui-state-active');
			}
			//$(".ui-state-active").html("33");
			$('.can_select a').css('color','red');
		}
	});