			var days = 0;
			var cat = 0;
			var usr = 0;
			var city = 0;
			var region = 0;
			var pagz = 0
			var ev_pages_loaded = new Array(6);
			ev_pages_loaded[-1] = 0;
			ev_pages_loaded[0] = 0;
			ev_pages_loaded[1] = 0;
			ev_pages_loaded[2] = 0;
			ev_pages_loaded[3] = 0;
			ev_pages_loaded[4] = 0;
			ev_pages_loaded[5] = 0;
			function ev(catid, dayid, pg, us){
				if (us != -1){
					usr = us;
				}
				days = dayid
				for (var i = 0; i <= 5; i++){
					try{
						document.getElementById('event_list' + i).style.display = 'none';
					}catch(e){}
				}
				try{
					document.getElementById('event_list' + (dayid)).style.display="block";
				}catch(e){}
                try{
					newcity = $('#city').get(0).value;
					newregion = $('#region').get(0).value;
				}catch(e){
					newcity = 0;
					newregion = 0;
				}
				if (ev_pages_loaded[days] == 0 || cat != catid || city!=newcity || region != newregion || pagz != pg){
					cat = catid;
					pstr = '';
					cstr = '';
					ustr = '';
					if (pg != 0){
						pstr = '&pg=' + pg;
					}
					if (cat != 0){
						cstr = '&th=' + cat;
					}
					if (usr != 0){
						ustr = '&us=' + usr;
					}
					cidstr='&city_id=' + newcity;
					ridstr='&region_id=' + newregion;
					rq('/events/rq/events.php?dfn=' + days + cstr + pstr + ustr + cidstr + ridstr, 'event_list' + (dayid));
					ev_pages_loaded[days] = 1;
					region = newregion;
					city = newcity;
					pagz = pg;
				}
			}

			function srchev(){
				for (var i = 0; i <= 5; i++){
					try{
					document.getElementById('ev' + i).className = "ds";
					document.getElementById('event_list' + i).style.display = 'none';
					}catch(e){}
				}
				document.getElementById('event_list4').style.display="block";
				rq('/events/rq/searchevent.php', 'event_list4');
			}

    		function searchDate(date, pg){
    			if (pg){
    				pgstr = '&pg=' + pg;
    			}else{
    				pgstr = '';
    			}
				document.getElementById('event_list0').style.display="none";
				document.getElementById('event_list4').style.display="block";
    			rq('/events/rq/searchevent.php?date='+date+pgstr, 'event_list4');
    		}

	var dateChosen = '';

    function chooseDate(dateValue){
    	dateChosen = dateValue;
    	buildCalendar(dateValue);
    };

    function hideSelector(){
        document.getElementById('dateselector').style.display = 'none';
    };

    function displayDateSelector(inputId){

        selector = document.getElementById('dateselector');
        selector.style.display = 'block';
        selector.style.top = findPosY(document.getElementById(inputId)) + 'px';
        selector.style.left = findPosX(document.getElementById(inputId)) + 'px';
        // get value from the input box
        val = document.getElementById(inputId).value;
        buildCalendar(inputId, val);
    };

    function buildCalendar(calendarDate){
        selector = document.getElementById('dateselector');
        if (calendarDate != '0000-00-00' && calendarDate != ''){

            dateChosen = calendarDate;
            dateParts = calendarDate.split('-');
            year = dateParts[0];
            month = dateParts[1];
            day = dateParts[2];
        }else{
            // if the date is empty, get today's date
            var now = new Date();
            year = now.getFullYear();
            month = monthNums[now.getMonth()];
            day = now.getDate();
        }

        // build previous month
        month *= 1;
        year *= 1;
        if (month == 1){
            prevMonth = 12;
            prevYear = year - 1;
        }else{
            prevMonth = month - 1;
            prevYear = year;
        }

        // build next month
        if (month == 12){
            nextMonth = 1;
            nextYear = year + 1;
        }else{
            nextMonth = month + 1;
            nextYear = year;
        }

        // pad a month with zero
        if (prevMonth < 10){
            prevMonth = '0' + prevMonth;
        }

        if (nextMonth < 10){
            nextMonth = '0' + nextMonth;
        }

        // number of days in a month
        switch (month){
            case 4:
            case 6:
            case 9:
            case 11:
                daysInMonth = 30;
            break;
            case 2:
                if (year % 4 == 0){
                    daysInMonth = 29;
                }else{
                    daysInMonth = 28;
                }
            break;
            default:
                daysInMonth = 31;
            break;
        }

        cal = '<table id="calendar" class="simpleTable"><tr><th class="prevnext"><a href="#" onclick="javascript:buildCalendar(\'' + prevYear + '-' + prevMonth + '-01\');return false;">&laquo;</a></th><th colspan="5">' + monthNames[month - 1] + ', ' + year + '</th><th class="prevnext"><a href="#" onclick="javascript:buildCalendar(\'' + nextYear + '-' + nextMonth + '-01\');return false;">&raquo;</a></th></tr><tr><th>' + dayNames[0] + '</th><th>' + dayNames[1] + '</th><th>' + dayNames[2] + '</th><th>' + dayNames[3] + '</th><th>' + dayNames[4] + '</th><th>' + dayNames[5] + '</th><th>' + dayNames[6] + '</th></tr><tr>';

        firstDayOfMonth = new Date();
        firstDayOfMonth.setFullYear(year * 1, month-1, 1);
        dayIndex = firstDayOfMonth.getDay();
        if (dayIndex == 0){
            cal = cal + '<td colspan="6" class="nodate">&nbsp;</td>';
        }else if (dayIndex != 1){
            cal = cal + '<td colspan="' + (dayIndex - 1) + '" class="nodate">&nbsp;</td>';
        }
        for (i = 1; i <= daysInMonth; i++){
            if (i == day){
                classString = 'today';
            }else{
                classString = '';
            }
            if (dayIndex % 7 == 0 || dayIndex % 7 == 6){
                if (classString != ''){
                    classString = classString + ' weekend';
                }else{
                    classString = 'weekend';
                }
            }

            classString = ' class="' + classString + '"';

            cal = cal + '<td' + classString + '><a href="#" onclick="javascript:searchDate(\''+year+'-'+ month +'-'+i+'\');">' + i + '</a></td> ';
            if (dayIndex++ % 7 == 0){
                if (i < 24){
                    cal = cal + '</tr> ';
                }else{
                    cal = cal +  '</tr> <tr>';
                }
            }
        }
        if (dayIndex % 7 != 1){
            cal = cal + '<td colspan="' + ((7 - dayIndex % 7 + 1) % 7)  + '" class="nodate">&nbsp;</td></tr>';
        }
        cal = cal + '</table>';
        selector.innerHTML = cal;
    };

	function findPosX(obj){
		var curleft = 0;
		if (obj.offsetParent){
			while (obj.offsetParent){
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	};

	function findPosY(obj){
		var curtop = 0;
		if (obj.offsetParent){
			while (obj.offsetParent){
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		}else if (obj.y)
			curtop += obj.y;
		return curtop;
	};




    function EventRegion(obj){
		$('#city option').remove();
		cit = $('#city').get(0);
		region = $('#region').get(0);
		if (region.value > 0){
		cit.style.display='block';
               cit.options[0] = new Option('- - -', 0);
			for(i=0; i<cityList[obj.options[obj.selectedIndex].value].length;i++){
				cit.options[i+1]= new Option (cityList[obj.options[obj.selectedIndex].value][i][1], cityList[obj.options[obj.selectedIndex].value][i][0])
			}
		}else{
			cit.style.display='none';
		}
		ev(cat, days, 0, -1);
	}
	function EventCity(obj){
		ev(cat, days, 0, -1);
	}