// Change these
var rotatetime = 5000; // Time for each image to be displayed in milliseconds
var fadetime = 1000; // Time for cross-fade in milliseconds

// Don't touch these!
var rotateimgs = new Array();
var pos = 0;
var go;
var inprogress = 0;

function searchbox(mode) {
	if(mode == 1) {
		if($('search').value == $('defsearch').value) $('search').value = "";
	}
	else {
		if($('search').value == "") $('search').value = $('defsearch').value;
	}
}

var map;
var infowindow;
var maploaded = 0;
var mapzoom = 0;
var pointsarray = [];
var areasarray = [];
var shownlayers = [];
var infowindows = [];

function checkall() { }

function showtoggle(catid) {
	if($('cat_' + catid).checked == true) {
		for (var i = 0; i < pointsarray.length; i++) {
			if(pointsarray[i].myCat == catid) pointsarray[i].setVisible(true);
		}
		for (var i = 0; i < areasarray.length; i++) {
			if(areasarray[i].myCat == catid) areasarray[i].setMap(map);
		}
	}
	else {
		for (var i = 0; i < pointsarray.length; i++) {
			if(pointsarray[i].myCat == catid) {
				infowindows[i].close(map,pointsarray[i]);
				pointsarray[i].setVisible(false);
			}
		}
		for (var i = 0; i < areasarray.length; i++) {
			if(areasarray[i].myCat == catid) areasarray[i].setMap(null);
		}
	}
}
function closeinfo() {
	for (var i = 0; i < pointsarray.length; i++) infowindows[i].close(map,pointsarray[i]);
}

function initialize() {
	if($('map_canvas')) {
		var latlng = new google.maps.LatLng(56.197196,-3.173101);
		var myOptions = {
			zoom: 8,
			center: latlng,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		map = new google.maps.Map($('map_canvas'), myOptions);
		google.maps.event.addListener(map, 'tilesloaded', function() { maploaded = 1; });
		google.maps.event.addListener(map, 'click', function() { closeinfo(); });
	}
}

function dopoint(title, place, image, text, catid, isaddress) {
	if(isaddress == 1) {
		var geocoder = new google.maps.Geocoder();
		geocoder.geocode( { 'address': place}, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
				if(text != '') var infowindow = new google.maps.InfoWindow({ content: text, maxWidth: 350 });
				var marker = new google.maps.Marker({
					position: results[0].geometry.location,
					map: map,
					title: title,
					icon: image
				});
				marker.myCat = catid;
				pointsarray.push(marker);
				if(text != '') {
					infowindows.push(infowindow);
					google.maps.event.addListener(marker, 'click', function() { closeinfo(); infowindow.open(map,marker); });
				}
			}
		});
	
	}
	else {
		var infowindow = new google.maps.InfoWindow({ content: text, maxWidth: 350 });
		place = place.split(",");
		var useplace = new google.maps.LatLng(place[0], place[1]);
		var marker = new google.maps.Marker({
			position: useplace,
			map: map,
			title: title,
			icon: image
		});
		marker.myCat = catid;
		pointsarray.push(marker);
		if(text != '') {
			infowindows.push(infowindow);
			google.maps.event.addListener(marker, 'click', function() { closeinfo(); infowindow.open(map,marker); });
		}
	}
}

function dopolypoint(title, place, image, text, catid) {
	var infowindow = new google.maps.InfoWindow({ content: text, maxWidth: 350 });
	var marker = new google.maps.Marker({
		position: place,
		map: map,
		title: title,
		icon: image
	});
	marker.myCat = catid;
	pointsarray.push(marker);
	infowindows.push(infowindow);
	google.maps.event.addListener(marker, 'click', function() { closeinfo(); infowindow.open(map,marker); });
}

function dopolygon(points, title, image, text, catid) {
	var polygon = new google.maps.Polygon({
		paths: points,
		strokeColor: "#7ac142",
		strokeOpacity: 0.8,
		strokeWeight: 2,
		fillColor: "#7ac142",
		fillOpacity: 0.35
	});
	polygon.myCat = catid;
	polygon.setMap(map);
	areasarray.push(polygon);
	var bounds = new google.maps.LatLngBounds();
	for (var i = 0; i < points.length; i++) {
		bounds.extend(points[i]);
	}
	dopolypoint(title, bounds.getCenter(), image, text, catid);
}

function dobounds() {
	var bounds = new google.maps.LatLngBounds();
	for(var i = 0; i < pointsarray.length; i++) {
		bounds.extend(pointsarray[i].position);
	}
	map.fitBounds(bounds);
	if(pointsarray.length == 1) map.setZoom(8);
	setTimeout(function() { mapzoom = 1; checkall(); }, 500);

}

function checkbounds() {
	if(pointsarray.length == points) dobounds();
	else setTimeout(function() { checkbounds(); }, 100);
}

function checkmap() {
	if(maploaded == 1) {
		domap();
		checkbounds();
	}
	else setTimeout(function() { checkmap(); }, 100);
}

function getimages(div) {
	var container = $(div);
	if(div == "imgrotate") var useel = "IMG";
	else var useel = "A";
	for(var i = 0; i < container.childNodes.length; i++) {
		if(container.childNodes[i].nodeName == useel) {
			container.childNodes[i].id = "fadeimg_" + i;
			$('fadeimg_' + i).style.display = "none";
			rotateimgs[rotateimgs.length] = container.childNodes[i];
			if(rotateimgs.length == 1) container.childNodes[i].style.display = "block";
		}
	}
	if(rotateimgs.length > 1) go = setInterval(rotateimages, rotatetime + fadetime);
}

function rotateimages() {
	if(!rotateimgs[pos + 1]) var newpos = 0;
	else var newpos = pos + 1;
	fadeimg(rotateimgs[newpos], rotateimgs[pos]);
	pos = newpos;
}

function fadeimg(el, oldel) {
	var myFade = new Fx.Tween($(el.id), {
		duration: fadetime,
		onStart: function() { inprogress = 1; },
		onComplete: function() { 
			oldel.style.display = "none";
			inprogress = 0;
		}
	});
	myFade.set('opacity', 0);
	el.style.display = "block";
	oldel.style.zIndex = 4;
	el.style.zIndex = 5;
	myFade.start('opacity', 1);
}

function fadeto(newpos) {
	if(newpos != pos && inprogress != 1) {
		fadeimg(rotateimgs[newpos], rotateimgs[pos]);
		pos = newpos;
		clearInterval(go);
	}
	else if(newpos == pos) window.location = $('featlink' + pos).href;
}

function showbox(opt, notopt) {
	$(opt + 'box').style.display = "block";
	$(notopt + 'box').style.display = "none";
	$(opt + 'tab').className = "boxtab tabselect";
	$(notopt + 'tab').className = "boxtab";
}

function checksize(el) {
	var oh = $(el).style.height;
	oh = oh.replace(/px/g, "");
	$(el).style.height = "1px";
	if($(el).scrollHeight < 32) var nh = 32;
	else var nh = $(el).scrollHeight;
	$(el).style.height = nh + "px";
	var hc = nh-oh;
/*	var mh = $(el).parentNode.parentNode.parentNode.style.height;
	mh = mh.replace(/px/g, "");
	$(el).parentNode.parentNode.parentNode.style.height = ((mh * 1) + (hc * 1)) + "px"; */
}

function agentchk() {
	if($('agentid').value == "-1") $('agentother').style.display = "block";
	else $('agentother').style.display = "none";
}
function doreload(prodid, img) {
	var poststr = "id=" + prodid + "&img=" + img;
	doajax('ssba-newimage.php', poststr);
}
function addimg(img) {
	newimg = document.createElement("a");
	newimg.href = "#";
	newimg.id = "thumb_" + img;
	newimg.className = "thumbimage";
	newimg.innerHTML = "<img src=\"../products/" + img + "-small.jpg\" alt=\"Uploaded image\"\/>";
	$('thumbnails').appendChild(newimg);
	$('fl_loading').style.display = "none";
	newimg.addEvent('click', function() {
		selectimg(img);
		return false;
	});
}
function imgmove(sel, dir) {
	var table = $('curimages');
	var totrows = table.rows.length;
	var done;
	
	for(var i = 0; i < totrows; i++) {
		if(table.rows[i].id == 'row_' + sel) var usesel = i;
	}
	
	if(dir == 'up') {
		if(usesel == 1) showmsg('alert<><><>You cannot move up the first image.');
		else {
			var swapwith = usesel - 1;
			table.rows[swapwith].parentNode.insertBefore(table.rows[usesel],table.rows[swapwith]);
			done = 1;
		}
	}
	else {
		if(usesel == table.rows.length - 1) showmsg('alert<><><>You cannot move down the last image.');
		else {
			var swapwith = usesel + 1;
			table.rows[usesel].parentNode.insertBefore(table.rows[swapwith],table.rows[usesel]);
			done = 1;
		}
	}
	if(done == 1) {
		var imgsel = table.rows[usesel].firstChild.id.replace(/img_/, '');
		var imgswap = table.rows[swapwith].firstChild.id.replace(/img_/, '');
	}
}
function imageloaded(response) {
	var respbits = response.split('<><>');
	var tbl = $('curimages');
	var newrow = tbl.rows.length;
	var row = tbl.insertRow(newrow);
	row.innerHTML = respbits[1].replace(/#rowpos#/g, newrow);
	row.id = 'row_' + newrow;
	if(newrow == 1) $('default_' + respbits[0]).checked = "checked";
}

function imgdel(img) {
	if($('default_' + img).checked && $('listlen').value != 1) showmsg('alert<><><>You cannot delete the default image unless it is the only image available.');
	else {
		var rowid = $('img_' + img).parentNode.id;
		$(rowid).parentNode.removeChild($(rowid));
		var listdel = $('imgdeleted');
		var dellen = listdel.options.length;
		listdel.options[dellen] = new Option(img, img, 1, 1);
	}
	$('listlen').value = $('listlen').value - 1;
}
function mapchk() {
//	if(mapzoom == 1) showbox('list', 'map');
//	else setTimeout(function() { mapchk(); }, 250);
}

function typechk() {
	if($('proptype').value == 0) {
		$('agebox').style.display = "none";
		$('useclassbox').style.display = "block";
	}
	else {
		$('agebox').style.display = "block";
		$('useclassbox').style.display = "none";
	}
}
function looking() {
	if($('lookingfor').value == "0") {
		$('proptypes_0').checked = true;
		for(var i = 1; i < 6; i++) $('proptypes_' + i).checked = false;
		$('propopts').style.display = "none";
		$('landopts').style.display = "block";
	}
	else {
		$('proptypes_0').checked = false;
		$('propopts').style.display = "block";
		$('landopts').style.display = "none";
	}
}
window.addEvent('domready', function() {
	if($('mainimg')) getimages('mainimg');
	if($('imgrotate')) getimages('imgrotate');
	if($('maptab')) mapchk();
});
