// JavaScript Document

function taCount(visCnt) { 
	var taObj = event.srcElement;
	var lines = (taObj.value.length - taObj.value.length%57)/57;

	/* Grow the description box dynamically */
	taObj.style.height = 80 + (lines * 15);

	if (taObj.value.length>taObj.maxLength*1) taObj.value = taObj.value.substring(0,taObj.maxLength * 1);
	if (visCnt) visCnt.innerText = taObj.maxLength-taObj.value.length;
}

function validateImage(element) {
	
	 var filename = document.getElementById(element).value;
	 var file_array = filename.split(".");
	 var array_length = file_array.length;
	 var ext_no = array_length - 1;
	 var ext = file_array[ext_no].toLowerCase();
	 //alert(ext);
	 
	 // If no file chosen return
	 if(filename.length == 0) { return true; }
	 
	 if(ext != 'jpg' && ext != 'jpeg') {
		addComment('Only jpeg image files may be uploaded'); 
	 	return false;
	 }
	 
	 image = new Image();
	 image.src = filename;
	 
	 //alert(image.width);
	 //alert(image.height);
	 
	 if(image.height > image.width) {
		addComment('Only landscape images may be uploaded'); 
	 	return false;
	 }
	 
	 return true;
	 
 }

function saveEvent() {
	
	var elemMode = document.getElementById("state").value;
	var elemFileId = document.getElementById("file_id").value;
	var elemTitle = document.getElementById("title");
	var elemDate = document.getElementById("date");
	var time = document.getElementById("timearea").value;
	var elemDescription = document.getElementById("descriptionarea");
	var elemImage = document.getElementById("uploadimage");
	var elemMap = document.getElementById("uploadmap");
	var elemLocation = document.getElementById("location");
	var location = document.getElementById("location").value;
	var street_address = document.getElementById("street_address").value;
	var postcode = document.getElementById("postcode").value;
	var city = document.getElementById("city").value;
	var province = document.getElementById("province").value;
	var cost_of_event = document.getElementById("cost_of_event").value;
	
	
	/* Default to no error */	
	var error = false;
	var strError = "";
	elemTitle.style.background = origBackground;
	elemDescription.style.background = origBackground;
	elemDate.style.background = origBackground;
	elemLocation.style.background = origBackground;
	
	if(elemMode == 'add') {
		elemImage.style.background = origBackground;
		elemMap.style.background = origBackground;
	}

	/* Validate */
	if(elemTitle.value.length < 3) {
		strError += "Please fill in the title<br />";		
		elemTitle.style.background = errorBackground; 
		error = true;
	}
	if(elemTitle.value.length > 100) {
		strError += "Title has a limit of 100 characters<br />";		
		elemTitle.style.background = errorBackground; 
		error = true;
	}
	if(elemDate.value.length < 11) {
		strError += "Please fill in the date<br />";		
		elemDate.style.background = errorBackground; 
		error = true;
	}
	if(elemDate.value.length > 11) {
		strError += "Please enter date in the correct format<br />";		
		elemDate.style.background = errorBackground; 
		error = true;
	}
	/*if(elemImage && elemImage.value.length < 5) {
		strError += "Please select an image<br />";		
		elemImage.style.background = errorBackground; 
		error = true;
	}
	if(elemMap && elemMap.value.length < 5) {
		strError += "Please select a map<br />";		
		elemMap.style.background = errorBackground; 
		error = true;
	}*/
	if(elemDescription.value.length == 0) {
		strError += "You must enter a description<br />";		
		elemDescription.style.background = errorBackground; 
		error = true;
	}
	if(elemLocation.value.length == 0) {
		strError += "You must enter a location<br />";		
		elemLocation.style.background = errorBackground; 
		error = true;
	}
	if(elemDescription.value.length > 1500) {
		strError += "Description must be less than 1500 characters<br />";		
		elemDescription.style.background = errorBackground; 
		error = true;
	}
	if(error) {
		addComment(strError);	
		return false;
	}
	if(elemMode == 'add' && !validateImage("uploadimage")) { return false; }
	if(elemMode == 'add' && !validateImage("uploadmap")) { return false; }
	else if (elemMode == "edit") {
		
		fragment = "event.php?mode=update&file_id=" + elemFileId + 
		"&title=" + URLEncode(elemTitle.value) + 
		"&date=" + elemDate.value + 
		"&time=" + URLEncode(time) + 
		"&location=" + URLEncode(location) + 
		"&street_address=" + URLEncode(street_address) + 
		"&postcode=" + URLEncode(postcode) + 
		"&city=" + URLEncode(city) + 
		"&province=" + URLEncode(province) + 
		"&cost_of_event=" + cost_of_event +
		"&description=" + URLEncode(elemDescription.value);
		loadFragment(fragment, onEventSaved);
		return false; 
	}
	else {
		document.insert_event.submit();	
	}
}

function onEventSaved(namevaluepairs) {
	var oQuery = validateCallBackData(namevaluepairs);
	if (!oQuery) return;
	
	addComment("Event updated"); 
	// var id = oQuery['id'];
}

function doSearchEvents() {
	var elemTitle = document.getElementById("title").value;
	
	var elemMonth = document.getElementById("month");
	var month = elemMonth.options[elemMonth.selectedIndex].value;
	month == -1 ? month = "" : month = month;
	
	var elemYear = document.getElementById("year");
	var year = elemYear.options[elemYear.selectedIndex].value;
	year == -1 ? year = "" : year = year;
	
	var fragment = "event.php?mode=results&title=" + elemTitle + "&month=" + month + "&year=" + year + "&time=" + Date();
	
	loadFragmentInToElement(fragment, "searchresults");
	hideSection("searchresults",false);
}

function viewEvent(id) {
	var elem = document.getElementById("event" + id);	
	
		deleteCookie("ADVHistory.event_id");
		if(!elem) return false;
		
		if(document.getElementById("eventview_row")) {
			if(id ==  document.getElementById("eventview_row").name) {
				document.getElementById("eventview_row").parentNode.removeChild(document.getElementById("eventview_row"));
				return false;
			}
			document.getElementById("eventview_row").parentNode.removeChild(document.getElementById("eventview_row"));
		}
		
		setCookie('ADVHistory.event_id', id)
		var newTD = document.createElement("TD");
		newTD.colSpan = 4;
		
		newTD.id = "eventview_cell";
		newTD.className = "detailsview_cell";
		newTD.style.padding = "0px";

		var newTR = document.createElement("TR");
		newTR.className = "detailsbody";
		newTR.id = "eventview_row";		
		newTR.name = id; 
		newTR.style.backgroundColor = "#eef";		
		newTR.appendChild(newTD);
		elem.parentNode.insertBefore(newTR,elem.nextSibling); 

		elem.parentNode.insertBefore(newTR,elem.nextSibling); 
		loadFragmentInToElement("event.php?mode=getevent_view&id=" + id + "&date=" + Date(),"eventview_cell");
		return false;
}

function deleteEvent(file_id, image_name, image_map) {
	var ret = confirm('Are you sure you want to delete this event?');
	if(!ret) return;
	
	var fragment = "event.php?mode=delete&file_id=" + file_id + "&image_name=" + image_name + "&map_name=" + image_map;
	loadFragment(fragment, onEventDeleted);

	return false;
}

function onEventDeleted(namevaluepairs) {
	var oQuery = validateCallBackData(namevaluepairs);
	if (!oQuery) return;
	
	doSearchEvents();
}
