var AjaxGallery = {};
var AjaxObject = {};

(function() {


AjaxGallery = {
	thumbs: true,
	element: "carrpep01",
	elementDefault: "carrpep01",
	appendCarousel: false,
	pic: 0,
	image: "imagetitle",
	title: "titulogaleria",
	select: "galleries",
	handleSuccess:function(oRequest , oParsedResponse){
		var div = document.getElementById(this.element);
		if (div && oParsedResponse.results.length > 0) {
			var el;
			var ol = document.createElement("ol");
			div.innerHTML = "";
			for (var i = 0; i < oParsedResponse.results.length; i++) {
 				el = document.createElement('li');
				if (this.thumbs && oParsedResponse.results[i].type == 'youtube') el.innerHTML = "<a href=\"#\" onclick=\"javascript:AjaxGallery.change_image_youtube('"+oParsedResponse.results[i].file+"','"+oParsedResponse.results[i].width+"','"+oParsedResponse.results[i].height+"');\"><img src=\"../gallery/thumbs/"+oParsedResponse.results[i].thumbnail_file+"\" title=\""+oParsedResponse.results[i].title+"\"></a>";
	 			else if (this.thumbs && oParsedResponse.results[i].thumbnail_file) el.innerHTML = "<a href=\"#\" onclick=\"javascript:AjaxGallery.change_image('"+oParsedResponse.results[i].file+"');\"><img src=\"../gallery/thumbs/"+oParsedResponse.results[i].thumbnail_file+"\" title=\""+oParsedResponse.results[i].title+"\"></a>";
				else if (!this.thumbs && oParsedResponse.results[i].file) el.innerHTML = "<a href=\"../gallery/"+oParsedResponse.results[i].file+"\"><img src=\"../gallery/"+oParsedResponse.results[i].file+"\" title=\""+oParsedResponse.results[i].title+"\"></a>";
				ol.appendChild(el);
			}
			div.appendChild(ol);
			if (AjaxGallery.appendCarousel) {
				AjaxGallery.carousel = new YAHOO.widget.Carousel(this.element, { 
					isCircular: true, 
					animation: { speed: 0.5 },
					numVisible: 1 });
				AjaxGallery.carousel.scrollTo(AjaxGallery.pic, true);
 				setTimeout("AjaxGallery.carousel.render()", 100); // get ready for rendering the widget
 				setTimeout("AjaxGallery.carousel.show()", 200);   // display the widget
// 				setTimeout("AjaxGallery.carousel.beforeShow.subscribe(alert('asdfklajfa'))", 250);
				AjaxGallery.element = this.elementDefault;
				AjaxGallery.thumbs = true;
				AjaxGallery.appendCarousel = false;
//  				setTimeout("myPanel.doCenterOnDOMEvent()", 300);
				setTimeout("myPanel.show()", 300);
			}
		}
	},
	
	handleFailure:function(oRequest , oParsedResponse){ 
		// Failure handler 
 		alert ("ERROR IN XML REQUEST FOR IMAGES");
// 		alert (oParsedResponse.length);
	},
	
	startRequest:function(category) {

		var url = "../gallery/gallery_"+category+".xml";
		if (typeof HOTELMANAGER.lang.actual != 'undefined') url = "../gallery/gallery_"+category+"_"+HOTELMANAGER.lang.actual+".xml";
		var invData = new YAHOO.util.DataSource(url);
		invData.responseType = YAHOO.util.DataSource.TYPE_XML;
		invData.maxCacheEntries = 4;
	
		invData.responseSchema = {
			resultNode: "image",
			fields: [
				{ key: "id" },
				{ key: "file" },
				{ key: "title" },
				{ key: "type" },
				{ key: "name" },
				{ key: "thumbnail_id" },
				{ key: "thumbnail_file" },
				{ key: "thumbnail_type" },
				{ key: "width" },
				{ key: "height" }
			],
			metaNode : "ResultSet"
		};
		invData.sendRequest("", callback_gallery);
		var sel = document.getElementById(AjaxGallery.select);
		document.getElementById(AjaxGallery.title).innerHTML = sel.options[sel.selectedIndex].text;
	},

	change_image: function (image) {
		document.getElementById(AjaxGallery.image).innerHTML = "<img src=\"../gallery/"+image+"\">";
		//document.getElementById(AjaxGallery.image).firstChild.innerHTML = "<img src=\"../gallery/"+image+">";
	},

	change_image_youtube: function (youtubeid, width, height) {
		if (!width) width = 582;
		if (!height) height = 330;

		var params = { allowScriptAccess: "always" };
		var atts = { id: 'youtubeapi' };
		//var div = document.createElement('div');
		//div.id="youtube_div";
		document.getElementById(AjaxGallery.image).innerHTML = '<div id="youtube_div"></div>';
		swfobject.embedSWF("http://www.youtube.com/v/"+youtubeid+"&enablejsapi=1&playerapiid=ytplayer&rel=0", "youtube_div", width, height, "8", null, null, params, atts);
                //document.getElementById(AjaxGallery.image).firstChild.firstChild.src = "../gallery/"+image;
        },

	load_image: function (pic_id) {
	//Panel
	myPanel = new YAHOO.widget.Panel("contentyui", {
// 		fixedcenter: true,
		constraintoviewport: true,
		underlay:"shadow",
		close:true,
		visible:false,
		modal: true,
		draggable:true,
// 		firstVisible: 2,
		effect:[{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.5},
			{effect:YAHOO.widget.ContainerEffect.SLIDE,duration:0.5}]
		}
	);
	myPanel.setHeader("Image gallery...");
 	myPanel.setBody('<img src="http://us.i1.yimg.com/us.yimg.com/i/us/per/gr/gp/rel_interstitial_loading.gif" />');
	myPanel.setBody('');
	myPanel.cfg.setProperty("underlay","matte");
	myPanel.render(document.body);

	var sel = document.getElementById("galleries");
	var divcarousel = document.createElement("div");
	divcarousel.id = "carousel";
 	divcarousel.style.visibility = "hidden";

	myPanel.appendToBody(divcarousel);
 	myPanel.beforeShowEvent.subscribe(function (){
		document.getElementById("carousel").style.visibility = "visible";
		AjaxGallery.carousel.hide();
	});
 	myPanel.beforeHideEvent.subscribe(function (){
 		document.getElementById("carousel").style.visibility = "hidden";
		AjaxGallery.carousel.hide();

	});
 	AjaxGallery.thumbs = false;
 	AjaxGallery.element = "carousel";
	AjaxGallery.appendCarousel = true;
	AjaxGallery.pic = pic_id;
 	AjaxGallery.startRequest(sel.options[sel.selectedIndex].value);
	}
};

var callback_gallery = {
	success:AjaxGallery.handleSuccess,
	failure:AjaxGallery.handleFailure,
	scope: AjaxGallery,
	timeout: 5000,
	cache:false
};

AjaxObject = {
	select: "galleries",
	handleSuccess:function(oRequest , oParsedResponse){
		var sel = document.getElementById(AjaxObject.select);
		var titulo = document.getElementById(AjaxObject.title);
		if (sel && oParsedResponse.results.length > 0) {
			var option;
			for (var i = 0; i < oParsedResponse.results.length; i++) {
				option = document.createElement('option');
				option.text = oParsedResponse.results[i].name;
				option.value = oParsedResponse.results[i].id;
				sel.options.add(option);
				if (i == 0) AjaxGallery.startRequest(oParsedResponse.results[i].id);
			}
		}

// 		load_image();
	},

	handleFailure:function(oRequest , oParsedResponse){ 
		// Failure handler 
		alert ("ERROR IN XML REQUEST FOR SELECT");
	},

	startRequest:function(id,ElId) {

		if (ElId) AjaxGallery.image = ElId;

		var url = "../gallery/gallery_categories_"+id+".xml";
		if (typeof HOTELMANAGER.lang.actual != 'undefined') url = "../gallery/gallery_categories_"+id+"_"+HOTELMANAGER.lang.actual+".xml";
		var invData = new YAHOO.util.DataSource(url);
		invData.responseType = YAHOO.util.DataSource.TYPE_XML;
		invData.maxCacheEntries = 4;

		invData.responseSchema = {
			resultNode: "category",
			fields: [
					{ key: "name" },
					{ key: "id" }
				],
			metaNode : "ResultSet"
		};
		invData.sendRequest("", callback);
	}
};

var callback = {
	success:AjaxObject.handleSuccess,
	failure:AjaxObject.handleFailure,
	scope: AjaxObject,
	timeout: 5000,
	cache:false
};

})();


