var IS_TOUCH_DEVICE = false;

window.addEvent('domready', function() {
	if(Browser.Platform.ios || Browser.Platform.android || Browser.Platform.webos)
		IS_TOUCH_DEVICE = true;
	
	initGallery();
	initExtraContent();
	initMouseOverImages();
	preLoadImages();
	changeEmailAddresses();
	
	//$('#video-container iframe').load(function(){
});

function initExtraContent() {
	var list = $$(".extra_content");
	var il = list.length;
	for(var i = 0; i < il; i++) {
		var content = list[i];
		//content.setStyle("height", "10px");
		//content.set("html", )
		content.addEvent('click', function(event) {
			var func = moreClick.bind(this);
		    func();
		});
	}
}

function moreClick() {
	this.setStyle("height", "auto");
	this.setStyle("background-image", "none");
	this.setStyle("padding-top", "0px");
	this.setStyle("cursor", "auto");
	
	this.removeEvent('click', moreClick);
}

function changeEmailAddresses() {
	
	var list = $$("a");
	
	for(var i = 0; i < list.length; i++) {
		var anchor = list[i]; 
		var href = anchor.getProperty("href");
		
		if(href.split(" (replace-this-with-at) ").length > 1) {
			var email = href.split(" (replace-this-with-at) ").join("@");
			anchor.set("href", "mailto:" + email);
			anchor.set("html", email);
		}
	}
}

function preLoadImages() {
	var myImages = Asset.images(
			[TEMPLATE_URL+"/images/gallery_left.jpg", 
			 TEMPLATE_URL+"/images/gallery_left_over.jpg", 
			 TEMPLATE_URL+"/images/gallery_right.jpg", 
			 TEMPLATE_URL+"/images/gallery_right_over.jpg"]
	);
}

var gallery_image;

function initGallery() {
	var list = $$(".gallery_thumbnail");
	
	for(var i = 0; i < list.length; i++) {
		thumb = list[i];
		thumb.addEvent('click', function(event) {
			var func = thumbClick.bind(this);
		    func();
		});
		
		thumb.addEvent('mouseover', function(event){
			var func = thumbOver.bind(this);
		    func();
		});
		
		thumb.addEvent('mouseleave', function(event){
			var func = thumbOut.bind(this);
		    func();
		});
		
		if(thumb.getProperty("embed") != null) {
			var image = thumb.getParent().getElement("div").getElement("div").getElements("div")[thumb.getProperty("index")];
			image.set("html", thumb.getProperty("embed"));
		}
		
		if(thumb.getProperty("index") == 0) {
			thumb.fireEvent('click');
		}
		
	}
	
	var gallery_list = $$(".gallery");
	for(var i = 0; i < gallery_list.length; i++) {
		var gallery = gallery_list[i];
		var settings = GALLERY_SETTINGS[i];
		
		gallery.setProperty("alwaysarrows", settings["alwaysarrows"]);
		gallery.setProperty("nothumbs", settings["nothumbs"]);
		
		if(gallery.getProperty("nothumbs") == "true") {
			
		} else if(gallery.getElement("div").getElement("div").getElements("div").length < 2) {
			thumb = gallery.getElement(".gallery_thumbnail");
			thumb.dispose();
			gallery.getElement("div").getElement("div").setStyle("margin-bottom", "5px");
			gallery.getElement(".gallery_image_description").setStyle("margin-bottom", "5px");
		}
		
		var button_left = gallery.getElement(".gallery_button_left");
		button_left.addEvent('click', function(event) {
			var func = galleryLeftClick.bind(this);
		    func();
		});
		
		button_left.addEvent('mouseover', function(event){
			var func = galleryButtonLeftOver.bind(this);
		    func();
		});
		
		button_left.addEvent('mouseleave', function(event){
			var func = galleryButtonLeftOut.bind(this);
		    func();
		});
		
		var button_right = gallery.getElement(".gallery_button_right");
		button_right.addEvent('click', function(event) {
			var func = galleryRightClick.bind(this);
		    func();
		});
		
		button_right.addEvent('mouseover', function(event){
			var func = galleryButtonRightOver.bind(this);
		    func();
		});
		
		button_right.addEvent('mouseleave', function(event){
			var func = galleryButtonRightOut.bind(this);
		    func();
		});
		
		gallery.addEvent('mouseover', function(event){
			var func = galleryOver.bind(this);
		    func();
		});
		
		gallery.addEvent('mouseleave', function(event){
			var func = galleryOut.bind(this);
		    func();
		});
		
		 galleryCalculateButtonVisibility(gallery);
	}
}

function galleryCalculateButtonVisibility(gallery) {
	var always_show = gallery.getProperty("alwaysarrows") == "true" ? true : false;
	
	var index = Number(gallery.getProperty("last_index"));
	var max = gallery.getElements(".gallery_thumbnail").length;
	var left = gallery.getElement(".gallery_button_left");
	var right = gallery.getElement(".gallery_button_right");
	var height = gallery.getProperty("image_height");
	
	var over = gallery.getProperty("over");
	if(over == null || over == "false")
		over = false;
	else
		over = true;
	
	if(over || IS_TOUCH_DEVICE || always_show) {
		if(index == 0)
			left.setStyle("visibility", "hidden");
		else
			left.setStyle("visibility", "visible");
		
		if(index >= max - 1)
			right.setStyle("visibility", "hidden");
		else
			right.setStyle("visibility", "visible");
	} else {
		left.setStyle("visibility", "hidden");
		right.setStyle("visibility", "hidden");
	}
	
	left.setStyle("top", (height/2-30)+"px");
	right.setStyle("top", (height/2-90)+"px");
}

function galleryOver() {
	this.setProperty("over", "true");
	galleryCalculateButtonVisibility(this);
}

function galleryOut() {
	this.setProperty("over", "false");
	galleryCalculateButtonVisibility(this);
}

function galleryButtonLeftOver() {
	if(IS_TOUCH_DEVICE == false)
		this.setStyle("background-image", 'url("'+TEMPLATE_URL+'/images/gallery_left_over.jpg")');
}

function galleryButtonLeftOut() {
	this.setStyle("background-image", 'url("'+TEMPLATE_URL+'/images/gallery_left.jpg")');
}

function galleryButtonRightOver() {
	if(IS_TOUCH_DEVICE == false)
		this.setStyle("background-image", 'url("'+TEMPLATE_URL+'/images/gallery_right_over.jpg")');
}

function galleryButtonRightOut() {
	//alert('url('+TEMPLATE_URL+'"/images/gallery_right.jpg")');
	this.setStyle("background-image", 'url("'+TEMPLATE_URL+'/images/gallery_right.jpg")');
}

function galleryLeftClick() {
	var thumbnails = this.getParent().getParent().getElements(".gallery_thumbnail");
	var last_index = this.getParent().getParent().getProperty("last_index");
	var next_index = Number(last_index)-1;
	var thumbnail = thumbnails[next_index];
	thumbnail.fireEvent('click');
}

function galleryRightClick() {
	var thumbnails = this.getParent().getParent().getElements(".gallery_thumbnail");
	var last_index = this.getParent().getParent().getProperty("last_index");
	var next_index = Number(last_index)+1;
	var thumbnail = thumbnails[next_index];
	thumbnail.fireEvent('click');
}

function thumbOver() {
	var img = this.getElement("img");
	img.setStyle("width", 144);
	img.setStyle("margin-left", "-2px");
	img.setStyle("height", 83);
	img.setStyle("margin-top", "-2px");
	this.setStyle("margin-right", "10px");
	this.setStyle("margin-bottom", "10px");
}

function thumbOut() {
	var img = this.getElement("img");
	img.setStyle("width", 140);
	img.setStyle("margin-left", "0px");
	img.setStyle("height", 79);
	img.setStyle("margin-top", "0px");
	this.setStyle("margin-right", "10px");
	this.setStyle("margin-bottom", "10px");
}

var gallery_offset = 0;
var last_index = 0;
var animating = false;

function thumbClick() {
	var gallery = this.getParent();
	var label = this.getProperty("label");
	var index = this.getProperty("index");
	var embed = this.getProperty("embed");
	var container = this.getParent().getElement("div").getElement("div");
	var images = container.getElements("div");
	var image = images[index];
	var image_height = image.getProperty("height");
	var description = this.getParent().getElement(".gallery_image_description");
	var last_index = gallery.getProperty("last_index");
	if(last_index = null)
		last_index = 0;
		
	if(label == null)
		label = "&nbsp;";
	description.set("html", label);
	container.setStyle("margin-left", (-index*890)+"px");
	
	container.getParent().getParent().setStyle("background-position", "0px "+(image_height - 505)+"px");
	last_index = index;
	gallery.setProperty("last_index", last_index)
	gallery.setProperty("image_height", image_height)
	galleryCalculateButtonVisibility(gallery);
}

function imageLoaded() {
	var ypos = (this.height-503);
	this.gallery.setStyle("background-position", "0px "+ypos+"px");
}

function initMouseOverImages() {
	var images = $$(".grid-image");
	var il = images.length;
	for(var i = 0; i < il; i++) {
		var image = images[i].getElement("a").getElement("img");
		image.addEvent('mouseover', function(event){
			var func = imageOver.bind(this);
		    func();
		});
		
		image.addEvent('mouseleave', function(event){
			var func = imageOut.bind(this);
		    func();
		});
	}
}

function imageOver() {
	this.setProperty("width", 302);
	this.setProperty("height", 173);
	this.setStyle("margin-top", "-6px");
	this.setStyle("margin-left", "-6px");
	
	var parent = this.getParent().getParent().getParent();
	parent.setStyle("width", 300);
}

function imageOut() {
	this.setProperty("width", 290);
	this.setProperty("height", 163);
	this.setStyle("margin-top", "0px");
	this.setStyle("margin-left", "0px");
	
	var parent = this.getParent().getParent().getParent();
	parent.setStyle("width", 290);
}
