/*
 * SimpleModal tellAFriend Form
 * http://www.ericmmartin.com/projects/simplemodal/
 * http://code.google.com/p/simplemodal/
 *
 * Copyright (c) 2010 Eric Martin - http://ericmmartin.com
 *
 * Licensed under the MIT license:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Revision: $Id: tellAFriend.js 243 2010-03-15 14:23:14Z emartin24 $
 *
 */

jQuery(function ($) {	
				
	var url='';
 var premise_id='';
	var h='';
	var flag;
	var error=0;
	var getUrl;
	var premisesId='';
	var border='1px solid red';
	var tellAFriend = {
		message: null,
		init: function () {			
			if($('#premisesIdSession').val()!='' && document.getElementById('premisesIdSession')!=null) {
				$(window).load(function(e) {
					url='premises-book-now.php';
					premisesId=$('#premisesIdSession').val();
					h=500;
					flag=2;
					getUrl=url+'?premisesId='+premisesId;		
					e.preventDefault();
					// load the tellAFriend form using ajax
					$.get(getUrl, function(data){
						// create a modal dialog with the data							
						$(data).modal({
							closeHTML: "<a href='javascript:void(0);' title='Close' class='modal-close'></a>",
							position: ["3%",],
							overlayId: 'tellAFriend-overlay',
							containerId: 'tellAFriend-container',
							onOpen: tellAFriend.open,
							onShow: tellAFriend.show,
							onClose: tellAFriend.close
						});
					});
				});
			} 
			$('.tell-a-friend,.book-now').click(function (e) {
				url=$(this).attr('href');
				if(url=='premises-book-presentation.php') {
					var id=$(this).attr('id');
					var idArray=id.split('&');
					var premisesId=idArray[0];
					var date=idArray[1];
					flag=1;
					h=420;
					getUrl=url+'?premisesId='+premisesId+'&date='+date;
				} else if(url=='premises-book-now.php') {
					premisesId=$(this).attr('id');
					flag=2;
					h=500;
					getUrl=url+'?premisesId='+premisesId;					
				} else if(url=='vr-tour.php') {
					premisesId=$(this).attr('id');
					flag=3;
					h=550;
					getUrl=url;
					if(premisesId=='event') getUrl+='?event=onchange';
					else getUrl+='?premises_id='+premisesId;
				}else if(url=='local-display-book-now.php') {
					var id=$(this).attr('id');
					var idArray=id.split('&');
					var premisesId=idArray[0];
					var date=idArray[1];
					flag=4;
					h=420;
					getUrl=url+'?premisesId='+premisesId+'&date='+date;				
				}				
				else {
					flag=0;
					h=400;
					getUrl=url;
				}
				e.preventDefault();
				// load the tellAFriend form using ajax
				if(flag==3) {
					$.get(getUrl, function(data){
						// create a modal dialog with the data
						
						$(data).modal({
							closeHTML: "<a href='javascript:void(0);' title='Close' class='modal-close'></a>",
							position: ["3%",],
							overlayId: 'tellAFriend-vr-tour-overlay',
							containerId: 'tellAFriend-vr-tour-container',
							onOpen: tellAFriend.open,
							onShow: tellAFriend.show,
							onClose: tellAFriend.close
						});
					});
				} else {
					 premise_id=this.id;
					$.get(getUrl, function(data){
						// create a modal dialog with the data							
						$(data).modal({
							closeHTML: "<a href='javascript:void(0);' title='Close' class='modal-close'></a>",
							position: ["3%",],
							overlayId: 'tellAFriend-overlay',
							containerId: 'tellAFriend-container',
							onOpen: tellAFriend.open,
							onShow: tellAFriend.show,
							onClose: tellAFriend.close
						});
					});
				}
				var browser=navigator.userAgent;
				if(browser.indexOf('IE 6.0')!=-1) {
					//pngfix();
				}
			});
		},
		open: function (dialog) {
			// add padding to the buttons in firefox/mozilla
			if ($.browser.mozilla) {
				$('#tellAFriend-container .tellAFriend-button').css({
					'padding-bottom': '2px'
				});
			}
			// input field font size
			if ($.browser.safari) {
				$('#tellAFriend-container .tellAFriend-input').css({
					'font-size': '.9em'
				});
			}

			// dynamically determine height
			if ($('#tellAFriend-subject').length) {
				h += 26;
			}
			if ($('#tellAFriend-cc').length) {
				h += 22;
			}			
			if(flag==3) {
				var title = $('#tellAFriend-vr-tour-container .tellAFriend-vr-tour-title').html();
				$('#tellAFriend-vr-tour-container .tellAFriend-vr-tour-title').html('Loading...');
				dialog.overlay.fadeIn(200, function () {
					dialog.container.fadeIn(200, function () {
						dialog.data.fadeIn(200, function () {
							$('#tellAFriend-vr-tour-container .tellAFriend-vr-tour-content').animate({
								height: h
							}, function () {
								if(flag==1 || flag==2 || flag==4)  {
									
									$("#date").datepicker({
										showOn: 'button',
										buttonImage: 'skin/images/datePicker/calendar.gif',
										buttonImageOnly: true
									});
								}
								$('#tellAFriend-vr-tour-container .tellAFriend-vr-tour-title').html(title);
								$('#tellAFriend-vr-tour-container form').fadeIn(200, function () {
									$('name').focus();
	
									$('#tellAFriend-vr-tour-container .tellAFriend-vr-tour-cc').click(function () {
										var cc = $('#tellAFriend-vr-tour-container #tellAFriend-vr-tour-cc');
										cc.is(':checked') ? cc.attr('checked', '') : cc.attr('checked', 'checked');
									});
	
									// fix png's for IE 6
									if ($.browser.msie && $.browser.version < 7) {
										$('#tellAFriend-vr-tour-container .tellAFriend-vr-tour-button').each(function () {
											if ($(this).css('backgroundImage').match(/^url[("']+(.*\.png)[)"']+$/i)) {
												var src = RegExp.$1;
												$(this).css({
													backgroundImage: 'none',
													filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' +  src + '", sizingMethod="crop")'
												});
											}
										});
									}
								});
							});
						});
					});
				});
			} else {
				var title = $('#tellAFriend-container .tellAFriend-title').html();				
				$('#tellAFriend-container .tellAFriend-title').html('Loading...');
				dialog.overlay.fadeIn(200, function () {
					dialog.container.fadeIn(200, function () {
						dialog.data.fadeIn(200, function () {
							$('#tellAFriend-container .tellAFriend-content').animate({
								height: h
							}, function () {
								if(flag==1 || flag==2 || flag==4) {
									//alert(clsspt1);
									//alert(clsspt[1]);
					
									$("#date").datepicker({
										showOn: 'button',
										buttonImage: 'skin/images/datePicker/calendar.gif',
										buttonImageOnly: true
									});
								}
								$('#tellAFriend-container .tellAFriend-title').html(title);
								$('#tellAFriend-container form').fadeIn(200, function () {
									$('name').focus();
	
									$('#tellAFriend-container .tellAFriend-cc').click(function () {
										var cc = $('#tellAFriend-container #tellAFriend-cc');
										cc.is(':checked') ? cc.attr('checked', '') : cc.attr('checked', 'checked');
									});
	
									// fix png's for IE 6
									if ($.browser.msie && $.browser.version < 7) {
										$('#tellAFriend-container .tellAFriend-button').each(function () {
											if ($(this).css('backgroundImage').match(/^url[("']+(.*\.png)[)"']+$/i)) {
												var src = RegExp.$1;
												$(this).css({
													backgroundImage: 'none',
													filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' +  src + '", sizingMethod="crop")'
												});
											}
										});
									}
								});
							});
						});
					});
				});
			}
		},
		show: function (dialog) {
			$('#tellAFriend-container .tellAFriend-send').click(function (e) {
				e.preventDefault();
				var data;
				if(flag==1 || flag==2 || flag==4) {
					if(premisesId=='')
					{
						
					premisesId=premise_id;
					}else
					{
						premisesId=premisesId;
						
					}
					data=$('#tellAFriend-container form').serialize() + '&action=send&premisesId='+premisesId;					
				} else {
					data=$('#tellAFriend-container form').serialize() + '&action=send';
				}				
				// validate form
				if (tellAFriend.validate()) {
					var msg = $('#tellAFriend-container .tellAFriend-message');
					msg.fadeOut(function () {
						msg.removeClass('tellAFriend-error').empty();
					});
					$('#tellAFriend-container .tellAFriend-title').html('Sending...');
					$('#tellAFriend-container form').fadeOut(200);
					$('#tellAFriend-container .tellAFriend-content').animate({
						height: '80px',
						padding: '35px 0px 10px 30px'
					}, function () {
						$('#tellAFriend-container .tellAFriend-loading').fadeIn(200, function () {
							$.ajax({
								url: url,
								data: data,
								type: 'post',
								cache: false,
								dataType: 'html',
								success: function (data) {
									
									if(data==1) {
										
										if(flag==4)
										{										
										  $('#tellAFriend-container .tellAFriend-loading').fadeOut(200, function () {
											//$('#tellAFriend-container .tellAFriend-title').html('Någon av våra medarbetare kontaktar dig inom 24 timmar.');
											$('#tellAFriend-container .tellAFriend-title').html('Någon av våra medarbetare är på plats välkommen.');
											//msg.html(data).fadeIn(200);
										  });
										}
										else
										{
											$('#tellAFriend-container .tellAFriend-loading').fadeOut(200, function () {
											$('#tellAFriend-container .tellAFriend-title').html('Din förfrågan är nu skickad<br/> <span style="font-style:normal;">Någon av våra medarbetare hör av sig inom kort.</span> ');
											//msg.html(data).fadeIn(200);
										  });
										}
										  
									} else if(data==0) {
										
										$('#tellAFriend-container .tellAFriend-loading').fadeOut(200, function () {
											$('#tellAFriend-container .tellAFriend-title').html('E-Mail har inte skickats.');
											//msg.html(data).fadeIn(200);
										});
									}
									else{
										$('#tellAFriend-container .tellAFriend-loading').fadeOut(200, function () {
											//$('#tellAFriend-container .tellAFriend-title').html('Någon av våra medarbetare kontaktar dig inom 24 timmar.');
											$('#tellAFriend-container .tellAFriend-title').html('Någon av våra medarbetare är på plats välkommen.');											
											//msg.html(data).fadeIn(200);
										});
										}
								},
								error: tellAFriend.error
							});
						});
					});
				}
				else {
					if ($('#tellAFriend-container .tellAFriend-message:visible').length > 0) {
						if(error==5) {
							hei='100px';
						} else if(error==4) {
							hei='80px';
						} else if(error==3) {
							hei='60px';
						} else if(error==2) {
							hei='40px';
						} else if(error==1) {
							hei='20px';
						}
						var msg = $('#tellAFriend-container .tellAFriend-message div');
						$('.tellAFriend-message').css('height',hei);
						msg.fadeOut(200, function () {
							msg.empty();
							tellAFriend.showError();
							tellAFriend
							msg.fadeIn(200);
						});
					}
					else {
						var hei='';
						if(flag==1 || flag==2 || flag==4) {
							if(error==5) {
								hei='100px';
							} else if(error==4) {
								hei='80px';
							} else if(error==3) {
								hei='60px';
							} else if(error==2) {
								hei='40px';
							} else if(error==1) {
								hei='20px';
							}
						} else {
							var hei='50px';
						}
						$('#tellAFriend-container .tellAFriend-message').animate({
							height: hei
						}, tellAFriend.showError);
					}
					
				}
			});
		},
		close: function (dialog) {
			if(flag==3) {
				$('#vrTourForm').html('');
				$('#tellAFriend-vr-tour-container .tellAFriend-vr-tour-message').fadeOut();
				$('#tellAFriend-vr-tour-container .tellAFriend-vr-tour-title').html('');
				$('#tellAFriend-vr-tour-container form').fadeOut(200);
				$('#tellAFriend-vr-tour-container .tellAFriend-vr-tour-content').animate({
					height: 40
				}, function () {
					dialog.data.fadeOut(200, function () {
						dialog.container.fadeOut(200, function () {
							dialog.overlay.fadeOut(200, function () {
								$.modal.close();								
							});
						});
					});
				});
			} else if(flag==1 || flag==4){ 
				$('#tellAFriend-container .tellAFriend-message').fadeOut();
				$('#tellAFriend-container .tellAFriend-title').html('');
				$('#tellAFriend-container form').fadeOut(200);
				$('#tellAFriend-container .tellAFriend-content').animate({
					height: 40
				}, function () {
					dialog.data.fadeOut(200, function () {
						dialog.container.fadeOut(200, function () {
							dialog.overlay.fadeOut(200, function () {
								//$.modal.close();
								window.location.reload();
							});
						});
					});
				});							
			} else { 
				$('#tellAFriend-container .tellAFriend-message').fadeOut();
				$('#tellAFriend-container .tellAFriend-title').html('');
				$('#tellAFriend-container form').fadeOut(200);
				$('#tellAFriend-container .tellAFriend-content').animate({
					height: 40
				}, function () {
					dialog.data.fadeOut(200, function () {
						dialog.container.fadeOut(200, function () {
							dialog.overlay.fadeOut(200, function () {
								$.modal.close();
							});
						});
					});
				});							
			}
		},
		error: function (xhr) {
			alert(xhr.statusText);
		},
		validate: function () {
			error=0;
			tellAFriend.message = '';
			if(flag==0) {
				if (!$('#name').val() || $('#name').val()=='Namn') {
					//tellAFriend.message += 'Tipsa en v&auml;n...<br />';
					tellAFriend.message += 'Du har inte fyllt i ditt namn<br />';
					//error++;
					//$('#name').css('border',border);
				} else {
					//$('#name').css('border','medium none');
				}
				
				
				
				var email = $('#email').val();
				if (!email || email=='E-post') {
					error++;
					//$('#email').css('border',border);
					tellAFriend.message += 'E-post kr&auml;vs.<br />';
				}
				else if (!tellAFriend.validateEmail(email)) {
					error++;
					//$('#email').css('border',border);
					tellAFriend.message += 'E-post &auml;r ogiltig.<br />';
				} else {
					//$('#email').css('border','medium none');
				}
	
				/*if (!$('#message').val() || $('#message').val()=='Meddelande') {
					error++;
					$('#message').css('border',border);
					//tellAFriend.message += 'Meddelande kr&auml;vs.';
				} else {
					$('#message').css('border','medium none');
				}*/
	
				if (tellAFriend.message.length>0) {
					return false;
				}
				else {
					return true;
				}
			} else if(flag==1 || flag==4) {
				var emailCheck=/^([a-zA-Z_0-9.]{1,})(\@)([a-zA-Z0-9_]{1,})(\.)([a-zA-Z0-9.]{1,})$/;
				var telephoneCheck=/^([0-9-]{1,})$/;
				var dateCheck=/^([0-9]{4})(\-)([0-9]{1,})(\-)([0-9]{1,})$/;
				if (!$('#date').val() || $('#date').val()=='Datum') {
					tellAFriend.message += 'V&auml;lj ett datum<br />';
					error++;
					//$('#name').css('border',border);
				} else {
					//$('#name').css('border','medium none');
				}
				
				if (!$('#name').val() || $('#name').val()=='Namn') {
					//tellAFriend.message += 'Tipsa en v&auml;n...<br />';
					tellAFriend.message += 'Du har inte fyllt i ditt namn<br />';
					error++;
					//$('#name').css('border',border);
				} else {
					//$('#name').css('border','medium none');
				}
				
				if (!$('#school').val() || $('#school').val()=='Skola') {
					tellAFriend.message += 'Ange ett skola<br />';
					error++;
					//$('#name').css('border',border);
				} else {
					//$('#name').css('border','medium none');
				}
				
				/*if (!$('#number').val() || $('#number').val()=='Antal personer som medverkar p visningen') {
					tellAFriend.message += 'Ange ett nummer<br />';
					error++;
					//$('#name').css('border',border);
				} else if(isNaN($('#number').val())) {
					tellAFriend.message += 'Ange ett nummer<br />';
					error++;
					//$('#name').css('border','medium none');
				}*/
	
				var email = $('#email').val();
				if (!email || email=='E-post') {
					error++;
					//$('#email').css('border',border);
					tellAFriend.message += 'E-post kr&auml;vs.<br />';
				}
				else if (!tellAFriend.validateEmail(email)) {
					error++;
					//$('#email').css('border',border);
					tellAFriend.message += 'E-post &auml;r ogiltig.<br />';
				} else {
					//$('#email').css('border','medium none');
				}
				
				var phone = $('#phone').val();
				if (!phone || phone=='Telefon') {
					error++;
					//$('#email').css('border',border);
					tellAFriend.message += 'Fyll i din telefon.<br />';
				}
				else if (!telephoneCheck.test(phone)) {
					error++;
					//$('#email').css('border',border);
					tellAFriend.message += 'Ogiltig telefon.<br />';
				} else {
					//$('#email').css('border','medium none');
				}
	
				if (tellAFriend.message.length > 0) {
					return false;
				}
				else {
					return true;
				}
			} else if(flag==2) {
				var emailCheck=/^([a-zA-Z_0-9.]{1,})(\@)([a-zA-Z0-9_]{1,})(\.)([a-zA-Z0-9.]{1,})$/;
				var telephoneCheck=/^([0-9-]{1,})$/;
				var dateCheck=/^([0-9]{4})(\-)([0-9]{1,})(\-)([0-9]{1,})$/;
				if (!$('#date').val() || $('#date').val()=='Datum') {
					tellAFriend.message += 'V&auml;lj ett datum<br />';
					error++;
					//$('#name').css('border',border);
				} else {
					//$('#name').css('border','medium none');
				}
				
				if (!$('#name').val() || $('#name').val()=='Namn') {
					//tellAFriend.message += 'Tipsa en v&auml;n...<br />';
					tellAFriend.message += 'Du har inte fyllt i ditt namn<br />';
					error++;
					//$('#name').css('border',border);
				} else {
					//$('#name').css('border','medium none');
				}
				
				if (!$('#school').val() || $('#school').val()=='Skola') {
					tellAFriend.message += 'Ange ett skola<br />';
					error++;
					//$('#name').css('border',border);
				} else {
					//$('#name').css('border','medium none');
				}
	
				var email = $('#email').val();
				if (!email || email=='E-post') {
					error++;
					//$('#email').css('border',border);
					tellAFriend.message += 'E-post kr&auml;vs.<br />';
				}
				else if (!tellAFriend.validateEmail(email)) {
					error++;
					//$('#email').css('border',border);
					tellAFriend.message += 'E-post &auml;r ogiltig.<br />';
				} else {
					//$('#email').css('border','medium none');
				}
				
				var phone = $('#phone').val();
				if (!phone || phone=='Telefon') {
					error++;
					//$('#email').css('border',border);
					tellAFriend.message += 'Fyll i din telefon.<br />';
				}
				else if (!telephoneCheck.test(phone)) {
					error++;
					//$('#email').css('border',border);
					tellAFriend.message += 'Ogiltig telefon.<br />';
				} else {
					//$('#email').css('border','medium none');
				}
				
				if (tellAFriend.message.length > 0) {
					return false;
				}
				else {
					return true;
				}
			}
		},
		validateEmail: function (email) {
			var at = email.lastIndexOf("@");

			// Make sure the at (@) sybmol exists and  
			// it is not the first or last character
			if (at < 1 || (at + 1) === email.length)
				return false;

			// Make sure there aren't multiple periods together
			if (/(\.{2,})/.test(email))
				return false;

			// Break up the local and domain portions
			var local = email.substring(0, at);
			var domain = email.substring(at + 1);

			// Check lengths
			if (local.length < 1 || local.length > 64 || domain.length < 4 || domain.length > 255)
				return false;

			// Make sure local and domain don't start with or end with a period
			if (/(^\.|\.$)/.test(local) || /(^\.|\.$)/.test(domain))
				return false;

			// Check for quoted-string addresses
			// Since almost anything is allowed in a quoted-string address,
			// we're just going to let them go through
			if (!/^"(.+)"$/.test(local)) {
				// It's a dot-string address...check for valid characters
				if (!/^[-a-zA-Z0-9!#$%*\/?|^{}`~&'+=_\.]*$/.test(local))
					return false;
			}

			// Make sure domain contains only valid characters and at least one period
			if (!/^[-a-zA-Z0-9\.]*$/.test(domain) || domain.indexOf(".") === -1)
				return false;	

			return true;
		},
		showError: function () {
			$('#tellAFriend-container .tellAFriend-message')
				.html($('<div class="tellAFriend-error" align="left"></div>').append(tellAFriend.message))
				.fadeIn(200);
		}
	};

	tellAFriend.init();
});
	
