﻿google.load("dojo", "1.3");
google.load("yui", "2.7");

function init() { 
    var oYUILoader = new YAHOO.util.YUILoader({ 
	        onSuccess: function() {
				var Dom = YAHOO.util.Dom,
					Event = YAHOO.util.Event,
					Scroll = YAHOO.util.Scroll,
					oScrollLft = new Scroll(
						"village",
						{
							scroll: {
								by: [-100, 0]
							}
						}
					),
					oScrollRgt = new Scroll(
						"village",
						{
							scroll: {
								by: [100, 0]
							}
						}
					),
					oPanel = new YAHOO.widget.Panel(
						"panel",
						{
							fixedcenter: true,
							width: "660px",
							height: "543px",
							modal: true
						}
					),
					oDialog = new YAHOO.widget.Dialog(
						"dialog",
						{
							fixedcenter: true,
							width: "440px",
							modal: true,
							buttons: [
								{
									text: "Wyślij",
									handler: function() {
										this.submit();
									}
								}
							]
						}
					);
					fnHandleClick = function(e) {
						var oTarget = Event.getTarget(e),
							sAlt = oTarget.alt,
							oObject = {},
							sUrl = "",
							oDialogEl;
						
						Dom.setStyle([oTarget, document.body], "cursor", "wait");
						
						switch (sAlt) {
							case "O ośrodku":
								oObject = oPanel;
								sUrl = "o_osrodku.php";
								break;
								
							case "Galeria":
								oObject = oPanel;
								sUrl = "galeria.php";
								break;
								
							case "Jak dojechać":
								oObject = oPanel;
								sUrl = "jak_dojechac.php";
								break;
								
							case "Kontakt":
								oDialogEl = document.getElementById("dialog");

								if (!oDialogEl) {
									dojo.require("dijit.form.TextBox");
									dojo.require("dijit.form.ValidationTextBox");
									dojo.require("dijit.form.SimpleTextarea");
								}
								oObject = oDialog;
								sUrl = "kontakt.php";
								break;
						}
								
						if (sUrl != "") {
							if (sAlt != "Kontakt" || (sAlt == "Kontakt" && !oDialogEl)) {
								YAHOO.util.Connect.asyncRequest(
									"GET",
									sUrl,
									{
										success: function(oResponse) {
											var sResponseText = oResponse.responseText,
												// KeyListener,
												// oESCKeyListener,
												oGalleryTabView,
												Tab = YAHOO.widget.Tab;
											
											if (sResponseText !== undefined) {
												/*
												KeyListener = YAHOO.util.KeyListener,
												oESCKeyListener = new KeyListener(
													document,
													{
														keys: KeyListener.KEY.ESCAPE
													},
													{
														fn: oObject.hide,
														scope: oObject,
														correctScope: true
													}
												);
												oObject.cfg.queueProperty("keylisteners", oESCKeyListener);
												*/
												oObject.setHeader(sAlt);
												oObject.setBody(sResponseText);
												oObject.render(document.body);
												if (sAlt == "Galeria") {
													oGalleryTabView = new YAHOO.widget.TabView("gallery");
												}
												if (sAlt == "Kontakt") {
													dojo.addOnLoad(function() {
														var	oSenderTextBox = new dijit.form.TextBox(
																{
																	name: "sender",
																	trim: true,
																	propercase: true
																},
																"sender"
															),
															oEmailValidationTextBox = new dijit.form.ValidationTextBox(
																{
																	name: "email",
																	trim: true,
																	required: true,
																	invalidMessage: "Wartość tego pola nie może być pusta i musi być poprawnym adresem e-mail.",
																	regExp: "^[a-z0-9._%+-]+@[a-z0-9-]+\.[a-z]{2,4}$"
																},
																"email"
															),
															oPhoneValidationTextBox = new dijit.form.ValidationTextBox(
																{
																	name: "phone",
																	trim: true,
																	maxLength: 9,
																	required: true,
																	invalidMessage: "Wartość tego pola nie może być pusta, może zawierać tylko 9 cyfr oraz nie może rozpoczynać się od 0.",
																	regExp: "^[1-9]{1}[0-9]{8}$"
																},
																"phone"
															);
															oTextTextarea = new dijit.form.SimpleTextarea(
																{
																	name: "text",
																	trim: true
																},
																"text"
															);
													});
												}
											} else {
												// TO DO
											}
										},
										failure: function(oResponse) {
											if (oResponse.responseText !== undefined) {
												// TO DO
											}
										}
									}
								);
							}
							Dom.setStyle([oTarget, document.body], "cursor", "default");
							oObject.show();
						}
					};
				

				Event.on(["o_osrodku", "galeria", "jak_dojechac", "kontakt"], "click", fnHandleClick);
				Event.on("scroll_lft", "click", function() {
					oScrollLft.animate();
				});
				Event.on("scroll_rgt", "click", function() {
					oScrollRgt.animate();
				});
				oDialog.hideEvent.subscribe(function() {
					Dom.removeClass(["widget_email", "widget_phone"], "dijitTextBoxError dijitError");
					document.contact_form.reset();
				});
	        },
	        combine: true,
	        allowRollup: true,
	        require: [
				"yuiloader-dom-event",
				"animation",
				"connection",
				"element",
				"button",
				"container",
				"tabview"
			]
	    });
 
	oYUILoader.insert(); 
}; 

google.setOnLoadCallback(init);
