function GetXmlHttpObject() { 
	var objXMLHttp=null
	if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest()
	}
	else if (window.ActiveXObject) {
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp
} 

function handleHorizSliderKey(slider, ev) {
	if (gLogger) gLogger.debug("horizontal slider keypress");
	var valueNow = horizontalSlider.getValue();
	var valueMin = verticalSlider.thumb.rightConstraint;
	var valueMax = verticalSlider.thumb.leftConstraint;
	var delta = 0;
	var kc = ev.keyCode;
	if (gLogger) gLogger.debug("keycode: " + kc);
	if (kc == YAHOO.util.Key.DOM_VK_LEFT) {
		delta = -25;
	} else if (kc == YAHOO.util.Key.DOM_VK_RIGHT) {
		delta = 25;
	} else if (kc == YAHOO.util.Key.DOM_VK_HOME) {
		delta = -( valueNow - valueMin );
	} else if (kc == YAHOO.util.Key.DOM_VK_END) {
		delta = valueMax - valueNow;
	} else {
		return true;
	}
	valueNow += delta;
	horizontalSlider.setValue(valueNow, true);
	if (slider.setAttributeNS) {
	    slider.setAttributeNS("http://www.w3.org/2005/07/aaa", 
                              "valuenow", 
                              valueNow);
    }
	YAHOO.util.Event.stopEvent(ev);
	return false;
}



	var verticalSlider, horizontalSlider;
	var gLogger;
	function init() {
		if (typeof(ygLogger) != "undefined") {
			ygLogger.init(document.getElementById("logDiv"));
			gLogger = new ygLogger("slider.php");
		}
		horizontalSlider = YAHOO.widget.Slider.getHorizSlider("horizBGDiv", "horizHandleDiv", 75, 100);
		horizontalSlider.onChange = function(offsetFromStart) {
		var d=document.getElementById('gallery');
  		var pictures=d.getElementsByTagName('img'); 
		var divs=d.getElementsByTagName('div');
			
			for(var i=0;i<pictures.length;i++)
  				{
				divs[i].style.width = 105 + offsetFromStart + 'px';
				divs[i].style.height = 200 + offsetFromStart + 'px';
				pictures[i].width = 100 + offsetFromStart;
				
				}

			
			document.getElementById("horizVal").value = offsetFromStart;
			document.getElementById("horizBGDiv").title = "Drag to Resize Thumbnails";
		};			
		fn_calMonthPhotos();
	}
	function updateHoriz() {
        var fld = 0;
		var v = parseFloat(fld.value, 10);
		if ( isNaN(v) ) v = 0;
		horizontalSlider.setValue(Math.round(v));
        var newVal = horizontalSlider.getValue();
        if (v != newVal) {
            fld.value = newVal;
        }
		return false;
	}

	var liteCalDate = new Date();
	var liteCalSelected = new Array();

	window.onload = init; out_anim.animate();
	
// calendar	

	function fn_liteCalDateMonthNext() {
			fn_liteCalClearDay();
			liteCalDate.setMonth(liteCalDate.getMonth() + 1);
			fn_calMonthPhotos();
	}
	
	function fn_liteCalDateMonthBack() {
			fn_liteCalClearDay();
			liteCalDate.setMonth(liteCalDate.getMonth() - 1);
			fn_calMonthPhotos();	
	}
	
	function fn_liteCalDateYearNext() {
			fn_liteCalClearDay();
			liteCalDate.setYear(liteCalDate.getFullYear() + 1);
			fn_calMonthPhotos();	
	}

	function fn_liteCalDateYearBack() {
			fn_liteCalClearDay();
			liteCalDate.setYear(liteCalDate.getFullYear() - 1);
			fn_calMonthPhotos();
	}

	function fn_liteCalGetMonthName(monthNumber) {
		var monthName;
		
		switch (monthNumber) {
			case 0:		monthName = 'January';
						break;
			case 1: 	monthName = 'February';
						break;
			case 2:		monthName = 'March';
						break;
			case 3: 	monthName = 'April';
						break;
			case 4: 	monthName = 'May';
						break;
			case 5: 	monthName = 'June';
						break;
			case 6:  	monthName = 'July';
						break;
			case 7:		monthName = 'August';
						break;
			case 8:		monthName = 'September';
						break;
			case 9:		monthName = 'October';
						break;
			case 10:	monthName = 'November';
						break;
			case 11:	monthName = 'December';
						break;
		}
		
		return monthName;
	}

	
	function fn_liteCalGetMonthDays(monthNumber) {
	
		var monthDays;
		
		switch (monthNumber) {
			case 0:		monthDays = 31;
						break;
			case 1: 	if (liteCalDate.getFullYear() % 4 == 0) {
							if (liteCalDate.getFullYear() % 100 == 0 ) {
								if (liteCalDate.getFullYear() % 400 == 0) {
									monthDays = 29;
								}
								else {
									monthDays = 28;
								}
							}
							else {
								monthDays = 29;
							}
						}
						else {
							monthDays = 28;
						}
						break;
			case 2:		monthDays = 31;
						break;
			case 3: 	monthDays = 30;
						break;
			case 4: 	monthDays = 31;
						break;
			case 5: 	monthDays = 30;
						break;
			case 6:  	monthDays = 31;
						break;
			case 7:		monthDays = 31;
						break;
			case 8:		monthDays = 30;
						break;
			case 9:		monthDays = 31;
						break;
			case 10:	monthDays = 30;
						break;
			case 11:	monthDays = 31;
						break;
		}
		
		return monthDays;
	
	}
	
		function fn_liteCalRemoveDates(row) {
		var cells = document.getElementById(row).getElementsByTagName('td');
		for (var i=0; i < cells.length; i++) {
			cells[i].innerHTML = '';				
		}
		document.getElementById(row).style.visibility = 'visible';
	}
	
	function fn_liteCalDrawDays() {
			if (xmlMonthPhotos.readyState==4 || xmlMonthPhotos.readyState=="complete") { 
				if (xmlMonthPhotos.status == 200) {
						var response = xmlMonthPhotos.responseXML;
						var photoDays = response.getElementsByTagName('day');
			
						fn_liteCalRemoveDates('week0');
						fn_liteCalRemoveDates('week1');
						fn_liteCalRemoveDates('week2');
						fn_liteCalRemoveDates('week3');
						fn_liteCalRemoveDates('week4');
						fn_liteCalRemoveDates('week5');
					
						document.getElementById("liteCalCurrentMonth").className = "liteCalCurrentMonth";
						var rowNumber = 0;
						var rowDay = new Date(liteCalDate);
						rowDay.setDate(1);
					
						var offset = rowDay.getDay();
						if (offset == 0) {
							offset = 7;
						}
					
						if (rowDay.getDay() == 1 && fn_liteCalGetMonthDays(liteCalDate.getMonth()) == 28) {
							document.getElementById("week4").style.visibility = "hidden";
						}
						else {
							document.getElementById("week4").style.visibility = "visible";
						}
				
						offset = offset - 1;
					
						for (var i=0; i < 6; i++) {
						
							var row = "week" + rowNumber;
						
							var days = document.getElementById(row).getElementsByTagName('td');		
						
							for(var y=0;y < days.length; y++) {
								if (y > offset || row != 'week0') {
									if (days[y].className == 'liteCal_day') {
										if (rowDay.getMonth() == liteCalDate.getMonth() && rowDay.getDate() <= fn_liteCalGetMonthDays(liteCalDate.getMonth()) ){
											days[y].innerHTML = rowDay.getDate();
											days[y].style.color = "#666666";
											days[y].style.fontWeight = "normal";
											for (var z=0; z < photoDays.length; z++) {
												if (photoDays[z].firstChild.data == rowDay.getDate()) {
													days[y].style.color = "#000";
													days[y].style.fontWeight = "bold";
													var dd = "hi";
													days[y].setAttribute("onclick", 'window.location="/gallery/date/'+rowDay.getFullYear()+ '-' + (rowDay.getMonth()+1) + '-' + rowDay.getDate() + '/";');
												}
											}
											rowDay.setDate(rowDay.getDate() + 1);
										}
										else {
											if (rowNumber == 3) {
												document.getElementById('week4').style.visibility = 'hidden';
												document.getElementById('week5').style.visibility = 'hidden';
											}
										
											if (rowNumber == 4) {
											
												document.getElementById('week5').style.visibility = 'hidden';
											
											}
										
										
										}
									}
								
								}
							}
						
							rowNumber ++;
						
						
						}
					
						document.getElementById('liteCalCurrentMonth').innerHTML = fn_liteCalGetMonthName(liteCalDate.getMonth())  + " " + liteCalDate.getFullYear();
						
				}
			}
					
	}
	
function fn_liteCalSelectDay(day) {
	if (day.innerHTML != '') {
		fn_liteCalClearDay();
		day.className = 'liteCal_day_selected';
		liteCalSelected[0] = new Date(liteCalDate.setDate(day.innerHTML));
		fn_calCountPhotos();
	}
}
	
function fn_liteCalSelectWeek(week) {
	fn_liteCalClearDay();
	var weekrow = week.parentNode;
	var weekdays = weekrow.getElementsByTagName("td");
	var x = 0;
	for (var i = 0; i < weekdays.length; i++) {
		if (weekdays[i].innerHTML.valueOf() > 0) {
			liteCalSelected[x] = new Date(liteCalDate.setDate(weekdays[i].innerHTML));
			weekdays[i].className = "liteCal_day_selected";
			x ++;
		}
	}
	fn_calCountPhotos();
}
	
	function fn_liteCalSelectMonth(month) {
		
		fn_liteCalClearDay();
		document.getElementById("liteCalCurrentMonth").className = "liteCalCurrentMonth_selected";
		var x = 0;
		for (z = 0; z < 6; z++) {
			var weekrow = document.getElementById("week" + z)
			var weekdays = weekrow.getElementsByTagName("td");
			for (var i = 0; i < weekdays.length; i++) {
				if (weekdays[i].innerHTML.valueOf() > 0) {
					liteCalSelected[x] = new Date(liteCalDate.setDate(weekdays[i].innerHTML));
					weekdays[i].className = "liteCal_day_selected";
					x ++;
				 }
			}	
		}
		fn_calCountPhotos();	
	}
	
	function fn_liteCalClearDay() {
	
		fn_liteCalClearArray();
		document.getElementById("liteCalCurrentMonth").className = "liteCalCurrentMonth";
		for (var i = 0; i < 6; i++) {
			var row = document.getElementById("week" + i);
			var days = row.getElementsByTagName("td");
				for (var j = 0; j < days.length; j++) {
					if (days[j].className == "liteCal_day_selected") {
						days[j].className = "liteCal_day";
					}
				}
		}
		
	}


	function fn_liteCalClearArray() {
		liteCalSelected.length = 0;
	}
	
	var xmlCountPhotos;
	var xmlMonthPhotos;
	
	function fn_calMonthPhotos() {
			xmlMonthPhotos=GetXmlHttpObject();
			
			var url = "/gallery/monthphotos.php";
			url = url + "?year=" + liteCalDate.getFullYear() + "&month=" + (liteCalDate.getMonth() + 1);
			xmlMonthPhotos.onreadystatechange=fn_liteCalDrawDays
			xmlMonthPhotos.open("GET",url,true);
			xmlMonthPhotos.send(null);
	}
	
function collapseMenu(r, m) {
	if(r.className=="gallery-menu-title"){
		document.getElementById(m).style.display="none";
		r.className="gallery-menu-title-collapsed";
	}
	else {
		document.getElementById(m).style.display="block";
		r.className="gallery-menu-title";
	}
}


function uploadPic(){
	window.open('/gallery/upload.php', 'Upload','toolbar=0,status=0,width=800,height=600,scrollbars=1');
	return false;
	
}


var dragging; // holds details of any items 'in transit' for drag-and-drop purposes.
dragging = false; // default value - nothing being dragged.

function picShowInfo(pic) {
	picDropped();
	return true;
	
}

function picFullSize(pic) {
	picDropped();
	dragging = false; // picture's been double-clicked, so we know it's not being dragged...
	return true;
}

function picStartDrag(pic) {
	dragging = pic; // this pic is now being dragged...
	document.getElementById('user-favourites').className="active-drop-location";
}


function picEndDrag(pic) {
	picDropped();
}

function checkDrop(destination) {
	if(dragging==false) {
		
	} 
	else {
		addToFaves(dragging);
	}	
}

function picCheckMove(pic) {
	picDropped();
}

function picDropped(){
	document.getElementById('user-favourites').className="drop-location";
	dragging = false;
}



function addToFaves(pic) {
	xmlAddFave=GetXmlHttpObject();
	var url = "/gallery/addfaves.php?id=" + dragging.id.substr(3);
	xmlAddFave.onreadystatechange=updateFaves
	xmlAddFave.open("GET",url,true);
	xmlAddFave.send(null);
}

function updateFaves() {
	if (xmlAddFave.readyState==4 || xmlAddFave.readyState=="complete") { 
		if (xmlAddFave.status == 200) {
			var o = document.getElementById('user-favourites').innerHTML;
			o = o.substr(0, (o.length - 11));
			document.getElementById('user-favourites-link').innerHTML = '&nbsp;Picture added!';
			picDropped();
			var t;
			t=setTimeout('resetFaves()', 8000);
		}
	}
}

function resetFaves() {
	document.getElementById('user-favourites-link').innerHTML = '&nbsp;Favourites';
}