var OFFSET = 1; // hour(s)
function isWithinOneHourBeforePerfDate(perfDateString) {
    //if (perfDateString==null || perfDateString.trim().length==0){
    //    return false;
    //}
    //format = 2010/02/10 16:00 ("yyyy/MM/dd hh:mm");
    var perfDate = Date.parse(perfDateString);
    var offset_date = new Date();
	offset_date.addHours(OFFSET);
	
    if (offset_date.compareTo(perfDate)>0){
    	//alert("isWithin "+OFFSET+" Hour(s) Before PerfDate");
    	return true;
    }else{
		//alert("NOT isWithin "+OFFSET+" Hour(s) Before PerfDate");
    	return false;
    }
    return false;
}

//var counterSaleStartDate = "2010/03/11 10:00";
// counterSaleStartDate test data 
var counterSaleStartDate = "2011/03/10 10:00";
var bookPassDate = "2011/04/05 23:00";
/**
	isBeforeCounterSaleStartDate(counterSaleDateStr)
	@param counterSaleDateStr in format "yyyy/MM/dd hh:mm"
	NOTE: please include date.js to function well.
*/
function isBeforeCounterSaleStartDate(counterSaleDateStr) {
    if (counterSaleDateStr==null || counterSaleDateStr.trim().length==0){
        return false;
    }
    var counterSaleDate = Date.parse(counterSaleDateStr);
    var today = new Date();
	
    if (today.compareTo(counterSaleDate)>0){ 
    	return false;
    }else{
    	return true;
    }
}
function isPublish(id){
	for (var i=0; i<VENUE_ID.length; i++) {
		if (id==VENUE_ID[i]) {
			if (VENUE_FORPUBLISH[i] == 'Y') {
				return true;
			} else {
				return false;
			}
		}
	}
	return false;
}
function getVenueName(id){
	if (typeof(VENUE_ID) != 'undefined')
	for (var i=0; i<VENUE_ID.length; i++) {
		if (id==VENUE_ID[i]) {
			return VENUE_NAME[i];
		}
	}
	return "";
}
// format date string from "yyyyMMdd" to "yyyy/MM/dd"
function formatDateIndex(dateIdx) {
	if (dateIdx==null || dateIdx.trim().length!=8) {return '';}
	return dateIdx.substring(0,4)+"/"+dateIdx.substring(4,6)+"/"+dateIdx.substring(6,8);
}
var jsContent = "";
function storeInnerHTML(str){
	jsContent += str;
}
function storeInnerHTML(str){
	jsContent += str;
}
var bkmk = "<BOOKMARK>";
function bookmarkPerf(){
	jsContent += bkmk;
}
var bkmkIdx = "";
function addBookmarkIndex(idx) {
	bkmkIdx += '<a name="'+idx+'"></a>';
}
function printJsContent(performanceList) {
//	document.getElementById(performanceList).innerHTML = jsContent;
	document.writeln(jsContent.replace(bkmk, bkmkIdx));
	// clear fields
	jsContent = "";
	bkmkIdx = "";
}

// for Calendar
var dhtmlxCalendarLangModules = new Array();
 
//set new language and date format
dhtmlxCalendarLangModules['tcsc'] = {
    langname:    'tcsc',
    dateformat:    '%d.%m.%Y',
    monthesFNames:    ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
    monthesSNames:    ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
    daysFNames:    ["日", "一", "二", "三", "四", "五", "六"],
    daysSNames:    ["日", "一", "二", "三", "四", "五", "六"],
    weekend:    [0, 6],
    weekstart:    0,
    msgToday: '今天'
}

//set new language and date format
dhtmlxCalendarLangModules['en'] = {
    langname:    'en',
    dateformat:    '%d.%m.%Y',
    monthesFNames:    ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
    monthesSNames:    ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
    daysFNames:    ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
    daysSNames:    ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
    weekend:    [0, 6],
    weekstart:    0,
    msgToday: 'TODAY'
}

var mCal;
function makeCalendar(calendar,sensitiveDates,lang,paramIndexType,paramIndexKey,link){

	mCal = new dhtmlxCalendarObject(calendar, false, {
		/*
		isWinHeader: true,
		headerButtons: '',
		isWinDrag: false
		*/
	});
	mCal.loadUserLanguage(lang);
	mCal.setSkin("simplegrey");
	// set sensitive dates
	// mCal.setSensitive('2010.03.24,2010.03.25,2010.03.26,2010.03.27,2010.03.30,2010.03.31,2010.04.01,2010.04.17,2010.04.30');
	// alternatively, sensitive dates can be set by date range:
	// mCal.setSensitive(dateFrom, dateTo); --- dateFrom, dateTo: date format
	mCal.setSensitive(sensitiveDates);
	mCal.setDateFormat("%Y/%m/%d");

	//var dateFrom=new Date(theFirstDate);
	//var dateTo=new Date(theLastDate);
	//mCal.setSensitive(dateFrom, dateTo);

//	var selectedDate = theFirstDate;
	var dates = sensitiveDates.split(',');
	var selectedDate = dates[0].replace(/\-/g,"");
	var myDate = new Date();
	if (paramIndexType=='datesrch') {
		selectedDate = paramIndexKey;
	}
	var year = parseInt(selectedDate.substring(0, 4));
	var month = selectedDate.substring(4, 6);
	if (month.substring(0,1) == "0"){
		month = month.substring(1,2);
	}
	month = (parseInt(month)-1);
	var day = selectedDate.substring(6, 8);
	myDate.setFullYear(year, month, day);
	mCal.setDate(myDate);
	
	mCal.attachEvent("onClick",function(date){
	    var selectedDate = mCal.getFormatedDate("%Y%m%d", date);
        window.location.href=link.replace(/\#selectedDate\#/g,selectedDate);
	    mCal.setDate(date);
    });
    
    mCal.draw();
}
