// JavaScript Document
var BrowserDetect = {

	init: function () {

		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";

		this.version = this.searchVersion(navigator.userAgent)

			|| this.searchVersion(navigator.appVersion)

			|| "an unknown version";

		this.OS = this.searchString(this.dataOS) || "an unknown OS";

	},

	searchString: function (data) {

		for (var i=0;i<data.length;i++)	{

			var dataString = data[i].string;

			var dataProp = data[i].prop;

			this.versionSearchString = data[i].versionSearch || data[i].identity;

			if (dataString) {

				if (dataString.indexOf(data[i].subString) != -1)

					return data[i].identity;

			}

			else if (dataProp)

				return data[i].identity;

		}

	},

	searchVersion: function (dataString) {

		var index = dataString.indexOf(this.versionSearchString);

		if (index == -1) return;

		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));

	},

	dataBrowser: [

		{

			string: navigator.userAgent,

			subString: "Chrome",

			identity: "Chrome"

		},

		{ 	string: navigator.userAgent,

			subString: "OmniWeb",

			versionSearch: "OmniWeb/",

			identity: "OmniWeb"

		},

		{

			string: navigator.vendor,

			subString: "Apple",

			identity: "Safari",

			versionSearch: "Version"

		},

		{

			prop: window.opera,

			identity: "Opera",

			versionSearch: "Version"

		},

		{

			string: navigator.vendor,

			subString: "iCab",

			identity: "iCab"

		},

		{

			string: navigator.vendor,

			subString: "KDE",

			identity: "Konqueror"

		},

		{

			string: navigator.userAgent,

			subString: "Firefox",

			identity: "Firefox"

		},

		{

			string: navigator.vendor,

			subString: "Camino",

			identity: "Camino"

		},

		{		// for newer Netscapes (6+)

			string: navigator.userAgent,

			subString: "Netscape",

			identity: "Netscape"

		},

		{

			string: navigator.userAgent,

			subString: "MSIE",

			identity: "Explorer",

			versionSearch: "MSIE"

		},

		{

			string: navigator.userAgent,

			subString: "Gecko",

			identity: "Mozilla",

			versionSearch: "rv"

		},

		{ 		// for older Netscapes (4-)

			string: navigator.userAgent,

			subString: "Mozilla",

			identity: "Netscape",

			versionSearch: "Mozilla"

		}

	],

	dataOS : [

		{

			string: navigator.platform,

			subString: "Win",

			identity: "Windows"

		},

		{

			string: navigator.platform,

			subString: "Mac",

			identity: "Mac"

		},

		{

			   string: navigator.userAgent,

			   subString: "iPhone",

			   identity: "iPhone/iPod"

		},

		{

			string: navigator.platform,

			subString: "Linux",

			identity: "Linux"

		}

	]



};

BrowserDetect.init();





jcCForms = new Class({



	//Agrega|Inserta captcha en el formulario...

		addCaptcha: function(table){

			var divContainer = new Element('div',{

				styles : {

					'background'	: 'url(http://ftpmundocuervo.com/images/securebar_fnd.png) no-repeat',

					'width'			: '86px',

					'height'		: '23px'					

				}

			});

			

			var divSlider = new Element('div',{

				id 					: 'slider',

				styles : {

					'width'			: '76px',

					'height'		: '23px',

					'padding-top'	: '2px',

					'position'		: 'relative',

					'padding-left'	: '3px'

				}			

			});

			

			var divKnob = new Element('div',{

				styles : {

					'background'	: 'url(http://ftpmundocuervo.com/images/securebar_movil_1.png)',

					'width'			: '41px',

					'height'		: '19px',

					'cursor'		:'move'

				}			

			});

			

			var inpHidden = new Element('input',{

				type 				: 'text',

				display				: 'block',

				value				: '',

				name				: 'securebar',

				id					: 'securebar',

				styles				: {

					'dispay'		: 'block',
					'width'			: '2px',
					'height'		: '2px',					
					'opacity'		: '.0',

					'-moz-opacity'	: '.0',

					'filter'		: 'alpha(opacity=0)'

   				},

				dir					: 'jcCForms.evalCaptcha(this)'

			});

			

			var spanLegend = new Element('span',{

				html				: 'Slide to unlock',

				styles				: {

					'display'		: 'block',

					'position'		: 'absolute',

					'left'			: '90px',

					'width'			: '360px',

					'top'			: '5px',

					'color'			: '#5a5a5a',

					'font-weight'	: 'bold',

					'font-size'		: '10px'

				}

			});

			

			var trTable = new Element('tr',{

				html				: '<td style="color:#000000;">Captcha:</td><td id="secureBarHere">&nbsp;</td>'

			});

			

			

			//Armo la estrucutura de elementos que conformar&aacute;n "securbar" para despu&eacute;s

			//adoptarla en el elemento form...

			divSlider.adopt(divKnob);

			divSlider.adopt(inpHidden);

			divSlider.adopt(spanLegend);

			divContainer.adopt(divSlider);

			

			if(BrowserDetect.browser == 'Explorer')

			{

				table.getElement('tbody').adopt(trTable);

			}

			else

			{

				var lastTr = table.getElement('tbody').getLast('tr');

				trTable.inject(lastTr,'after');

			}

			

			

			$('secureBarHere').adopt(divContainer);

			

			//Le doy funcionalidad a "secure bar"...

			var slider = divSlider;

			new Slider(slider, divKnob, {

				range: [0, 1],

				initialStep: 0,

				onChange: function(value){

					if(value == 1)

					{

						$('securebar').set('value',1);

						divKnob.setStyle('background','url(http://ftpmundocuervo.com/images/securebar_movil_2.png)');

					}

					else

					{

						$('securebar').set('value','');

						divKnob.setStyle('background','url(http://ftpmundocuervo.com/images/securebar_movil_1.png)');

					}

				}

			});

		},

		







		

	//Agrega checkbox de T&eacute;rminos y condiciones...

		addTerms: function(table){

			

			var trTable = new Element('tr',{

				html				: '<td>&nbsp;</td><td style="padding-top:7px;"><input type="checkbox" name="chkterms" id="chkterms"><span style="color:#ffffff;">I agree</span> <a style="color:#E2D390; cursor:pointer;" onclick="jcCForms.goPop(document.terms,\'Terms and Conditions\');">Terms and Conditions</a></td>'

			});

			

			if(BrowserDetect.browser == 'Explorer')

			{

				table.getElement('tbody').adopt(trTable);	

			}

			else

			{

				var lastTr = table.getElement('tbody').getLast('tr');

				trTable.inject(lastTr,'after');

			}

		},

		

		

	//Lanza el pop ...

		goPop: function(html,title){

			

			//Scroll en Y...

			document.scrollY = window.pageYOffset;

			var winScroller = new Fx.Scroll(window);



			$('popBox').getElement('h2').set('html',title);

			$('popBox').getElement('#popContent').set('html',html);

			

			setTimeout(function(){

				//Dimensiones del pop

					var thePop = document.getElementById('popBox');

					var x = thePop.offsetWidth;

					var x = 400;

					var y = thePop.offsetHeight;

					var y = 300;

				

				//Posici&oacute;n centro del elemento..

					if(BrowserDetect.browser == 'Explorer')

					{

						$('popBox').setStyles({

							'display'		: 'block',

							'position'	 	: 'fixed',

							'top' 		 	: '50%',

							'left'		 	: '50%',

							'margin-top' 	: '-400px',

							'margin-left'	: '100px',

							'margin-bottom' : '30px',

							'z-index'	 	: '9999',

							'max-width'		: '400px'

						});	

					}

					else

					{

						$('popBox').setStyles({

							'display'		: 'block',

							'position'	 	: 'fixed',

							'top' 		 	: '50%',

							'left'		 	: '50%',

							'margin-top' 	: '-'+(x/2)+'px',

							'margin-left'	: '-'+(y/2)+'px',

							'margin-bottom' : '30px',

							'z-index'	 	: '9999',

							'max-width'		: '400px'

						});		

					}

			},500);

		},

		

		

	//Crea el pop donde se lanzar&aacute;n los t&eacute;rminos...

		createPop: function(table){

			

			var divPopBox = new Element('div',{

				id					: 'popBox',

				styles: {

					'display'		: 'none',

					'position'		: 'absolute',

					'background'	: '#fff',

					'top'			: '100px',

					'left'			: '50px',

					'z-index'		: '99999',

					'box-shadow'	: '1px 2px 7px 2px #999',

					'border-radius'	: '5px',

					'width'			: '360px'

				}

			});

	

			var divClose = new Element('div',{

				styles: {

					'width'				: '14px',
					'height'			: '14px',
					'padding'			: '2px',
					'margin'			: '0',
					'margin-right'		: '-1px',
					'float'				: 'right',
					'position'			: 'relative',
					'z-index'			: '10',
					'top'				: '5px',
					'right'				: '5px',
					'background-color'	: '#000000',
					'border-radius'		: '2px',
					'cursor'			: 'pointer'

				}

			});

			

			var imgClose = new Element('img',{

				src					: 'http://ftpmundocuervo.com/images/close.png',

				events				: {

					click: function(){

						jcCForms.closePop();

       				}

				}

			});	

			

			var divData = new Element('div',{

				styles: {

					'position'		: 'relative',

					'border-radius'	: '5px',

					'background'	: '#fbf9f9',

					'border'		: '1px solid #d3d2d2'

				}

			});

			

			var h2Title = new Element('h2',{

				styles				: {

					'display'		: 'block',

					'font-size'		: '18px',

					'padding'		: '20px 5px 5px 20px',

					'margin'		: '0px'

				}

			});

			

			var divContent = new Element('div',{

				id					: 'popContent',

				styles: {

					'color'			: '#8c8c8a',

					'padding'		: '20px',

					'font-size'		: '10px',

					'border-radius'	: '5px',
					
					'text-align'	: 'justify',

					'padding-top'	: '0px'

				}

			});

			

			var divClear = new Element('div',{

				styles: {

					'clear'			: 'both'

				}

			});

			

			//Crea la estructura del pop...

			divClose.adopt(imgClose);

			divPopBox.adopt(divClose);

			divData.adopt(h2Title);

			divData.adopt(divContent);

			divPopBox.adopt(divData);

			divPopBox.adopt(divClear);

			$$('body').adopt(divPopBox);	

		},

		









	//Cierra el pop...

		closePop: function(){

			$('popBox').setStyle('display','none');

		},







	//Evalúa el formulario...

		evalForm: function(table,form,mode,ocf,wcf){

			setTimeout(function(){

				if(form)

				{

					//Genera un array de los elementos del formulario [inputs, selects, textareas, radios, checks]...

						var fieldsOnForm = table.getElements('input, select, textarea');

					

					//Agrega la clase evalForm a todos los [inputs, selects, textareas, radios, checks] del form...

						fieldsOnForm.each(function(field){

							field.addClass('evalForm')

						});

						

					//Encuentra todos los elementos con clase "evalForm" y los retomo en orden de aparici&oacute;n...

						var fieldsToEval = table.getElements('.evalForm');

						

					//Detiene el submit hasta que los campos sean validados...

						form.addEvent('submit',function(event){							

							var goSubmit = true;

							

							//Validaciones...

								fieldsToEval.each(function(el){

									//Prioridad si el campo debe ser validado con una funci&oacute;n especial...

									if(el.get('dir') && goSubmit)

									{

										var dirfunction = el.get('dir');

										var params = dirfunction.split('(');

										var funct  = params[0];

											params = params[1].split(')');

											params = params[0];

										if(params == '')

											var fun = ''+funct+'("'+el.get('id')+'")';

										else

											var fun = ''+funct+'("'+el.get('id')+'",'+params+')';

		

										if(!eval(fun))

										{

											goSubmit = false;

											event.stop();

										}

									}

									

									//Si el campo no tiene una validaci&oacute;n especial...

									if(!el.get('dir') && !el.get('disabled') && goSubmit && !el.hasClass('displayNone'))

									{

										if(el.getParent('td'))

											var whatkind = el.getParent('td').getPrevious('td').get('html').toLowerCase();

		

										switch(el.get('type'))

										{

											case "text":

												if(el.get('value')=='' && goSubmit)

												{

													jcCForms.fxFieldError(el);

													jcCForms.goPop('Complete this field.','Required field');

													goSubmit = false;

													event.stop();

												}

												else

												{													

													if((whatkind.search('user') != '-1' || whatkind.search('usuario') != '-1' || whatkind.search('apellido') != '-1' || whatkind.search('nombre') != '-1' || whatkind.search('pass') != '-1') && goSubmit)

													{

														if(!(/^([a-zA-Z.&aacute;&eacute;í&oacute;ú&aacute;&eacute;Í&oacute;ÚñÑ]+\s{0,1})+$/.test(el.get('value'))))

														{

															jcCForms.fxFieldError(el);

															jcCForms.goPop('Only alfanumeric characters, and only one blanc space at time.','Required field');

															goSubmit = false;

															event.stop();

														}

													}

													if((whatkind.search('email') != '-1' || whatkind.search('mail') != '-1') && goSubmit)

													{

														if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(el.get('value'))))

														{

															jcCForms.fxFieldError(el);

															jcCForms.goPop('Email invalid.','Required field');

															goSubmit = false;

															event.stop();

														}

													}

													if(whatkind.search('lada') != '-1' && goSubmit)

													{

														if(!(/(^[0-9]*)+$/.test(el.get('value'))))

														{

															jcCForms.fxFieldError(el);

															jcCForms.goPop('Only Numbers.','Required field');

															goSubmit = false;

															event.stop();

														}

														else if(el.get('value').length < 2)

														{

															jcCForms.fxFieldError(el);

															jcCForms.goPop('At least 2 digits','Required field');

															goSubmit = false;

															event.stop();

														}

													}

													if((whatkind.search('telefono') != '-1' || whatkind.search('phonenumber') != '-1') && goSubmit)

													{

														if(!(/(^[0-9]*)+$/.test(el.get('value'))))

														{

															jcCForms.fxFieldError(el);

															jcCForms.goPop('Only Numbers.','Required field');

															goSubmit = false;

															event.stop();

														}

														else if(el.get('value').length < 8)

														{

															jcCForms.fxFieldError(el);

															jcCForms.goPop('At least 8 digits.','Required field');

															goSubmit = false;

															event.stop();

														}

													}

												}

											break;

											case "password":

												if(el.get('value')=='' && goSubmit)

												{

													jcCForms.fxFieldError(el);

													jcCForms.goPop('Complete this field.','Required field');

													goSubmit = false;

													event.stop();

												}

											break;

											case "select-one":

												if((el.get('value')=='' || el.get('value')=='0') && goSubmit)

												{

													jcCForms.fxFieldError(el);

													jcCForms.goPop('Select an option.','Required field');

													goSubmit = false;

													event.stop();

												}

											break;

											case "textarea":

												if(el.get('value')=='' && goSubmit)

												{

													jcCForms.fxFieldError(el);

													jcCForms.goPop('Complete this field.','Required field');

													goSubmit = false;

													event.stop();

												}

											break;

											case "checkbox":

												if(el.get('checked')==false && goSubmit)

												{

													jcCForms.goPop('Select the checkbox','Required field');

													goSubmit = false;

													event.stop();

												}

											break;

											case "radio":

												if(el.get('checked')==false && goSubmit)

												{

													jcCForms.goPop('Complete this field.','Required field');

													goSubmit = false;

													event.stop();

												}

											break;

										}

									}

								});

								if(goSubmit == true)

								{

									switch (mode)

									{

										

										case 'ajax':

										

											if(wcf)

											eval(wcf);

											

											new Request.HTML({

												method: 'post', 

												url: form.get('action'),

												data: form.toQueryString(),

												onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript)

												{

													//Javascript...

													eval(responseJavaScript);

		

													if(ocf)

													eval(ocf)

												}

											}).send();

										break;

										

										case 'submit':

											//form.submit();

										break;

									}

								}

						});

				}

			},1000);

		},

		

		

		

		fxFieldError: function(el){

			el.tween('background-color', '#AA4B4B');

			setTimeout(function(){el.tween('background-color', '#111111');},500);

			el.focus();

		},

		

		

		

		

		evalCaptcha: function(el){

			if($(''+el+'').get('value') == '')

			{

				jcCForms.goPop('Slide to unlock.','Required field');

				return false;

			}

			else

				return true;

		}



		

});

var jcCForms = new jcCForms();

	

/*****************************************************************************************************/



window.addEvent('domready', function() {



	document.terms  = '<div style="width:320px; max-height:300px; overflow:auto;">';

	document.terms += '<p>The personal details you share with us shall be treated by Casa Cuervo, S.A. de C.V., with address on 800 Guillermo González Camarena, ZIP 01220, México, D.F., to obtain a visit record, to get in touch with you and send you promotional and advertising information of Casa Cuervo.</p>';

	document.terms += '<br>';

	document.terms += '<p>By sharing your personal details you are granting permission to treat them according to the Privacy Warning described as before, available on front desk and at <a href="http://www.mundocuervo.com/avisoprivacidad" target="_blank" style="color:#A49974;">www.mundocuervo.com/avisoprivacidad</a></p>';

	document.terms += '</div>';

		

	$$('.errormesageNews').getNext('table').set('id','usrFormTable');

	

	if($$('form'))

	{

		$$('form').erase('onsubmit');

		$$('form').removeEvents('submit');

		//document.getElementById("frmContacto").onsubmit = null;

		jcCForms.createPop($('usrFormTable'));

		jcCForms.addCaptcha($('usrFormTable'));

		jcCForms.addTerms($('usrFormTable'));

		jcCForms.evalForm($('usrFormTable'),$$('form'),'submit',false,false);

		

		if(BrowserDetect.browser == 'Explorer')

		{

		}	

	}

});


