
String.prototype.validateEmail = function() {
	var objRegExp  = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	//check for valid email
	return objRegExp.test(this);
};

String.prototype.isEmpty = function() {
    strRE = new RegExp( '^[\ ]*$', 'gi' );
    return strRE.test( this );

};

String.prototype.return2br = function() {
    return this.replace(/(\r\n|\r|\n)/g, "<br />");
};


/************************************************
DESCRIPTION: Validates that a string contains valid
  US phone pattern.
  Ex. 999-999-9999

PARAMETERS:
   strValue - String to be tested for validity

RETURNS:
   True if valid, otherwise false.
*************************************************/
String.prototype.isCanadianPhone = function() {
	 var objRegExp  = /^\d{3}\-\s?\d{3}\-\d{4}$/;

	  //check for valid canadian phone
	  //area code
	  return objRegExp.test(this);
};




//Create a new YUI instance and populate it with the required modules.
YUI({gallery : _yui_gallery_overlay_extras}).use(
		'io-form',
		'json-parse', 
		'gallery-overlay-extras',
		function (Y) {
			
			var oError;
			/*Create Overlay from script for error messages */
			Y.on('available',function(){	
				
				 oError = new Y.Overlay({
					contentBox:"#oError", 
					headerContent: 'Erreur',
					footerContent:'<input type="button" id="btnoErrorOK" value="OK" />',
					zIndex		: 100,
					centered	: true,
					constrain	: true,
					render		: true,
					visible		: false,
					plugins		: [
						{ fn: Y.Plugin.OverlayModal },
						{ fn: Y.Plugin.OverlayKeepaligned }
					]
				
				});
	
				var onoErrorOK = function(e) {oError.hide();};
		
				Y.one('#btnoErrorOK').on('click', onoErrorOK);
				
				
			},'#oError');
			
			//Menu
			Y.on('contentready',function(){	
				Y.one('#cd').setStyle('height',Y.one('#main_content').getStyle('height'));
			
			},'#cd');
			
			
			//Menu
			Y.on('contentready',function(){	
				
				
				var sous_menu = new Y.Overlay({
					contentBox:"#oSousMenu", 
				    visible:false,
				    zIndex:200
				});
				 
				sous_menu.render();
				
				/* Setup local variable for Y.WidgetPositionAlign, since we use it multiple times */
			    var WidgetPositionAlign = Y.WidgetPositionAlign;
			    var oversub = '';

				
				Y.all('#ul-main-menu img').on('mouseover',function(e){
					e.preventDefault();
					
					id = e.currentTarget.get('id');
					
					if(id != 'menu-'+_menu){
						sous_menu.hide();
						src = e.currentTarget.get('src');

						parts = src.split('/');

						image = parts[parts.length-1];
						
						aimage = image.split('.');
						
						image_name = aimage[0];
						image_ext = aimage[1];
						
						if(image_name.indexOf('_r') == -1){
							e.currentTarget.set('src','images/'+image_name+'_r'+'.png');
							e.currentTarget.setStyle('zIndex','0');
						}
						
					}
					switch(id){
					
						case 'menu-3'://Services
							sous_menu.set("align", {node:"#menu-3", points:[WidgetPositionAlign.TC, WidgetPositionAlign.BC]});
							
							var x = parseInt(sous_menu.get("x")+6);
						    var y = parseInt(sous_menu.get("y")-27);
						    oversub = id;
						    sous_menu.move(x,y);
						    
						    var sous_menu_html = '<ul>';
						    sous_menu_html += '<li><a href="services/metamorphose" class="txt_main_sub_nav">Métamorphose</a></li>';	
						    sous_menu_html += '<li><a href="services/blanchiment" class="txt_main_sub_nav">Blanchiment</a></li>'	
						    sous_menu_html += '<li><a href="services/cerec3d" class="txt_main_sub_nav">CEREC-3D : La révolution</a></li>'
						    sous_menu_html += '<li><a href="services/endodontie" class="txt_main_sub_nav">Endodontie</a></li>'
						    sous_menu_html += '<li><a href="services/bijou_dentaire" class="txt_main_sub_nav">Bijou dentaire</a></li>'
						    sous_menu_html += '<li><a href="services/implants" class="txt_main_sub_nav">Implants</a></li>'
						    sous_menu_html += '<li><a href="services/laser" class="txt_main_sub_nav">Laser</a></li>'
						    sous_menu_html += '<li><a href="services/orthodontie" class="txt_main_sub_nav">Orthodontie</a></li>'
						    sous_menu_html += '<li><a href="services/paradontie" class="txt_main_sub_nav">Paradontie</a></li>'
						    sous_menu_html += '<li><a href="services/plaques_occlusales" class="txt_main_sub_nav">Plaques occlusales</a></li>'											    	
						    sous_menu_html += '</ul>';
						    
						    sous_menu.set('bodyContent',sous_menu_html);
						    e.currentTarget.setStyle('zIndex','100');
							sous_menu.show();
							break;
							
						case 'menu-5'://Nos Conseils
							sous_menu.set("align", {node:"#menu-5", points:[WidgetPositionAlign.TC, WidgetPositionAlign.BC]});
							
							var x = parseInt(sous_menu.get("x")+6);
						    var y = parseInt(sous_menu.get("y")-27);
						    oversub = id;
						    sous_menu.move(x,y);
						    
						    var sous_menu_html = '<ul>';
						    sous_menu_html += '<li><a href="conseils/hypersensibilite_dentaire" class="txt_main_sub_nav">HYPERSENSIBILITÉ DENTINAIRE</a></li>';	
						    sous_menu_html += '<li><a href="conseils/percage_buccal" class="txt_main_sub_nav">PERÇAGE BUCCAL</a></li>'	
						    sous_menu_html += '<li><a href="conseils/dents_deplacees" class="txt_main_sub_nav">DENTS DÉPLACÉES</a></li>'
						    sous_menu_html += '<li><a href="conseils/dents_sorties" class="txt_main_sub_nav">DENTS SORTIES DE LA BOUCHE</a></li>'
						    sous_menu_html += '<li><a href="conseils/enflure" class="txt_main_sub_nav">ENFLURE</a></li>'
						    sous_menu_html += '<li><a href="conseils/saignement" class="txt_main_sub_nav">SAIGNEMENT</a></li>'
						    sous_menu_html += '<li><a href="conseils/conseil_pour_bebe" class="txt_main_sub_nav">QUELQUES CONSEILS POUR BÉBÉ</a></li>'
						    sous_menu_html += '<li><a href="conseils/fromage_carie" class="txt_main_sub_nav">FROMAGE ET LA CARIE</a></li>'
						    sous_menu_html += '<li><a href="conseils/extractions_dents_sagesse" class="txt_main_sub_nav">EXTRACTIONS DENTS DE SAGESSE</a></li>'
						    sous_menu_html += '<li><a href="conseils/hygiene" class="txt_main_sub_nav">HYGIÈNE</a></li>'											    	
					    	sous_menu_html += '<li><a href="conseils/premiere_visite" class="txt_main_sub_nav">PREMIÈRE VISITE</a></li>'											    	
						    sous_menu_html += '<li><a href="conseils/protecteur_buccal" class="txt_main_sub_nav">PROTECTEUR BUCCAL</a></li>'											    	
						    sous_menu_html += '<li><a href="conseils/protheses_partielles_amovibles" class="txt_main_sub_nav">PROTHÈSES PARTIELLES AMOVIBLES</a></li>'											    	
						    sous_menu_html += '<li><a href="conseils/protheses_completes" class="txt_main_sub_nav">PROTHÈSES COMPLÈTES</a></li>'											    	
							sous_menu_html += '<li><a href="conseils/protheses_partielles_fixes" class="txt_main_sub_nav">PROTHÈSES PARTIELLES FIXES</a></li>'											    	
							sous_menu_html += '<li><a href="conseils/le_scellant" class="txt_main_sub_nav">SCELLANT</a></li>'		
							sous_menu_html += '<li><a href="conseils/autres_technologies" class="txt_main_sub_nav">AUTRES TECHNOLOGIES UTILISÉES</a></li>'											    	
							sous_menu_html += '</ul>';
						    
						    sous_menu.set('bodyContent',sous_menu_html);
						    e.currentTarget.setStyle('zIndex','100');
							sous_menu.show();
							break;
								
						default:
							break;
					
					}
					
					
				});
				
				Y.one('#oSousMenu').on('mouseover',function(e){
					switch(oversub){
					
						case 'menu-3'://Services
							
							if(oversub != 'menu-'+_menu){
							
								Y.one('#menu-3').set('src','images/main_nav_3_r'+'.png');
								Y.one('#menu-3').setStyle('zIndex','100');
							}
							break;
							
						case 'menu-5'://Nos Conseils
							if(oversub != 'menu-'+_menu){
								Y.one('#menu-5').set('src','images/main_nav_5_r'+'.png');
								Y.one('#menu-5').setStyle('zIndex','100');
							}
							break;	
							
					}
					sous_menu.show();
					
					
				});
				Y.one('#oSousMenu').on('mouseout',function(e){
					switch(oversub){
					
						case 'menu-3'://Services
							if(oversub != 'menu-'+_menu){
								Y.one('#menu-3').set('src','images/main_nav_3'+'.png');
								Y.one('#menu-3').setStyle('zIndex','0');
							}
							break;
							
						case 'menu-5'://Nos Conseils
							if(oversub != 'menu-'+_menu){
								Y.one('#menu-5').set('src','images/main_nav_5'+'.png');
								Y.one('#menu-5').setStyle('zIndex','0');
							}
							break;
								
					}
					
					sous_menu.hide();
					
					
				});
				
				Y.all('#ul-main-menu img').on('mouseout',function(e){
					e.preventDefault();
					
					id = e.currentTarget.get('id');
					
					if(id != 'menu-'+_menu){
						sous_menu.hide();
						src = e.currentTarget.get('src');
						src = e.currentTarget.get('src');
	
						parts = src.split('/');
	
						image = parts[parts.length-1];
						
						aimage = image.split('.');
						
						image_name = aimage[0].substring(0,(aimage[0].length-2));
						
						image_ext = aimage[1];
						
						e.currentTarget.set('src','images/'+image_name+'.png');
						e.currentTarget.setStyle('zIndex','0');
						
					}
				});
				
				
				switch(parseInt(_menu,10)){
				
					case 1:
						Y.one('#menu-1').set('src','images/main_nav_1_s.png');
						Y.one('#menu-1').setStyle('zIndex','5');
						
						break;
						
					case 2:
						Y.one('#menu-2').set('src','images/main_nav_2_s.png');
						Y.one('#menu-2').setStyle('zIndex','5');
						
						break;
						
					case 3:
						Y.one('#menu-3').set('src','images/main_nav_3_s.png');
						Y.one('#menu-3').setStyle('zIndex','5');
						
						break;
						
					case 4:
						Y.one('#menu-4').set('src','images/main_nav_4_s.png');
						Y.one('#menu-4').setStyle('zIndex','5');
						
						break;
						
					case 5:
						Y.one('#menu-5').set('src','images/main_nav_5_s.png');
						Y.one('#menu-5').setStyle('zIndex','5');
						
						break;
						
					case 6:
						Y.one('#menu-6').set('src','images/main_nav_6_s.png');
						Y.one('#menu-6').setStyle('zIndex','5');
						
						break;
				
				}
				
				
				Y.one('#ul-main-menu').setStyle('display','block');
				
			},'#oSousMenu');
			
			
			
			//SEND MAIL
			
			var Contact = {

					success : function(ioId, o) {
						//Y.one('#_form').reset();

						if (o.responseText !== undefined) {
							var data = [];

							// Process the JSON data returned from the
							// server
							try {
								data = o.responseText;

								oError.set("headerContent", 'Message');
								oError.set("bodyContent", data);
								oError.show().syncUI();

							} catch (e) {
								oError.set("headerContent", 'Erreur');
								oError.set("bodyContent",e.message);
								oError.show().syncUI();
								
								return;
							}

						}
					},

					failure : function(id, o, args) {
						if (o.responseText !== undefined) {
							var data = o.responseText; // Response data.
							oError.set("headerContent", 'Erreur');
							oError.set("bodyContent",data);

							oError.show().syncUI();

						}
					}
				};

				

				// Handler to make our XHR request when the button is
				// clicked:
				function sendMail() {

					if (Y.one('#txt_nom').get('value').isEmpty() || Y.one('#txt_nom').get('value') == 'NOM') {
						oError.set("headerContent", 'Erreur');
						oError.set("bodyContent", 'Vous devez inscrire votre nom');
						oError.show().syncUI();
						return;
						

					} 
					if (!Y.one('#txt_email').get('value').validateEmail()) {
						oError.set("headerContent", 'Erreur');
						oError.set("bodyContent", 'Vous devez fournir une adresse électronique');
						oError.show().syncUI();
						return;

					} 
					
					var cfg = {
							method : "POST",
							form : {
								id : 'form-contact'
							},
							on : {
								success : Contact.success,
								failure : Contact.failure

							},
							context : Contact,
							timeout : 3000
						// Abort the transaction, if it is still pending, after
						// 3000ms.
						};
					
					// Start the transaction.
					var request = Y.io('ajax_contact', cfg);
					
				}
				
				function btnSendMailHandler(e) {
					// Make a request when the button is clicked:
					// Make a request when the button is clicked:
					Y.one('#btnsubmit').on('click', sendMail);
					Y.one('#btnsubmit').setStyle('visibility', 'visible');
				}

				// assign 'contentready' handler:
				Y.on("contentready", btnSendMailHandler, "#btnsubmit");
				

				// Handler to make our XHR request when the button is
				// clicked:
				function sendConcours() {

					if (Y.one('#txt_nom').get('value').isEmpty() || Y.one('#txt_nom').get('value') == 'NOM') {
						oError.set("headerContent", 'Erreur');
						oError.set("bodyContent", 'Vous devez inscrire votre nom');
						oError.show().syncUI();
						return;
						

					} 
					if (!Y.one('#txt_email').get('value').validateEmail()) {
						oError.set("headerContent", 'Erreur');
						oError.set("bodyContent", 'Vous devez fournir une adresse électronique');
						oError.show().syncUI();
						return;

					} 
					if (Y.one('#txt_phone').get('value').isEmpty() || Y.one('#txt_phone').get('value') == 'TÉLÉPHONE') {
						oError.set("headerContent", 'Erreur');
						oError.set("bodyContent", 'Vous devez inscrire votre téléphone');
						oError.show().syncUI();
						return;
						

					} 
					var cfg = {
							method : "POST",
							form : {
								id : 'form-concours'
							},
							on : {
								success : Contact.success,
								failure : Contact.failure

							},
							context : Contact,
							timeout : 3000
						// Abort the transaction, if it is still pending, after
						// 3000ms.
						};
					
					// Start the transaction.
					var request = Y.io('ajax_contact/concours', cfg);
					
				}
				
				function btnSendConcoursHandler(e) {
					// Make a request when the button is clicked:
					// Make a request when the button is clicked:
					Y.one('#btnsubmitconcours').on('click', sendConcours);
					Y.one('#btnsubmitconcours').setStyle('visibility', 'visible');
				}

				// assign 'contentready' handler:
				Y.on("contentready", btnSendConcoursHandler, "#btnsubmitconcours");
					
				
				Y.on("focus", 
					function(e){
						if(e.currentTarget.get('value') == 'NOM'){
							e.currentTarget.set('value','');
						}
				}, "#txt_nom");
			
				Y.on("blur", 
					function(e){
						if(e.currentTarget.get('value') == ''){
							e.currentTarget.set('value','NOM');
						}
				}, "#txt_nom");
				
				Y.on("focus", 
					function(e){
						if(e.currentTarget.get('value') == 'ADRESSE ÉLECTRONIQUE'){
							e.currentTarget.set('value','');
						}
				}, "#txt_email");
			
				Y.on("blur", 
					function(e){
						if(e.currentTarget.get('value').isEmpty()){
							e.currentTarget.set('value','ADRESSE ÉLECTRONIQUE');
						}
				}, "#txt_email");
				
				Y.on("focus", 
					function(e){
						if(e.currentTarget.get('value') == 'TÉLÉPHONE'){
							e.currentTarget.set('value','');
						}
				}, "#txt_phone");
			
				Y.on("blur", 
					function(e){
						if(e.currentTarget.get('value').isEmpty()){
							e.currentTarget.set('value','TÉLÉPHONE');
						}
				}, "#txt_phone");
				
				
				Y.on("focus", 
					function(e){
						if(e.currentTarget.get('value') == 'MESSAGE'){
							e.currentTarget.set('value','');
						}
				}, "#txt_message");
			
				Y.on("blur", 
					function(e){
						if(e.currentTarget.get('value').isEmpty()){
							e.currentTarget.set('value','MESSAGE');
						}
				}, "#txt_message");				
		});


