
/* Copyright © Cigars International. All Rights Reserved. */

var cVegas = (function($, v){

var i, l, hrefArray, hrefQuery, key, value, request,
	_page, _setRetailerList,
	_retailers, 
	_DOMIsLoaded = false;

// If the server does not provide a global cFest object, 
// create a module to close over and return that new object.

v = v || {};

// Generate empty references if no page data is provided.

if( !v.page ){
	v.page = {
		name: '',
		type: '',
		fileName: ''
	}
}

// Generate an associative array of URL variables if the server has not provided one.

if( !v.page.httpRequest ){
	v.page.httpRequest = request = {};
	hrefArray = window.location.href.split('?');
	
	if( hrefArray[1] ){
		hrefArray = hrefArray[1].split('&');
		
		for( i = 0, l = hrefArray.length; i < l; i++ ){
			hrefQuery = hrefArray[i].split('=');
			key = hrefQuery[0].toLowerCase();
			value = hrefQuery[1].toLowerCase();
			request[ key ] = value;
		}
	}
}

_setRetailerList = function(){
	var i, l, retailer, company, url, phone, address1, address2, address3, 
		el, dialog,
		retailers = _retailers,
		html = [];
	
	for( i = 0, l = retailers.length; i < l; i++ ){
		retailer = retailers[i];
		if( retailer && retailer.company ){
			name = '<span class="retailer-company">' + retailer.company + '</span>';
			url = retailer.url ? ('<a class="retailer-url" href="http://' + retailer.url + '" target="_blank">' + retailer.url + '</a>') : '';
			address1 = retailer.address1 ? ('<span class="retailer-address1">' + retailer.address1 + '</span>') : '';
			address2 = retailer.address2 ? ('<span class="retailer-address2">' + retailer.address2 + '</span>') : '';
			address3 = retailer.address3 ? ('<span class="retailer-address3">' + retailer.address3 + '</span>') : '';
			phone = retailer.phone ? ('<span class="retailer-phone">' + retailer.phone + '</span>') : '';
			html.push( '<div class="retailer">' + name + url + address1 + address2 + address3 + phone + '</div>' );
		}
	}
	
	retailers = $( html.join('') );
	
	el = $('#retailersPreview').prepend( retailers.slice(0,2).clone() );
	
	dialog = $('<div></div>').append( retailers ).appendTo( el ).dialog({
		autoOpen: false,
		resizable: false,
		width: 350,
		height: 500,
		title: '5 Vegas Retailers',
		dialogClass: 'retailers-dialog'
	});
	
	$('#retailers .ui-button').click(function(){
		dialog.dialog('open');
	});
};

_page = v.page.name;

if( _page == 'Home Page' || _page == 'Coming Soon' || _page == 'Contact Us' )
{
	$.ajax({
		url: 'retailers.txt',
		dataType: 'json',
		success: function( data, textStatus, jqXHR )
		{
			_retailers = data.retailers.slice(0);
			if( _DOMIsLoaded )
			{
				_setRetailerList();
			}
		}
	});
}

// Manipulate the DOM as soon as the header elements are created
// using a pseudo DOMContentLoaded event triggered by a script event in the document.

$(document).bind('body.DOMContentLoaded', function( e ){
	var wallpaperLinks, wallpaperTitle, wallpaperThumbnail;
	
	_DOMIsLoaded = true;
	
	if( _page == 'Wallpaper' )
	{
		wallpaperTitle = $('#wallpaper-title');
		wallpaperLinks = $('#wallpaper-links a');
		wallpaperThumbnail = $('#wallpaper-thumbnail');
		
		$('#slideshow').show().slideshow({
			auto: true,
			autoInterval: 4000,
			pauseOnHover: false,
			controls: 'auto bullets',
			hidePrevNextTabs: true,
			size: '890 437',
			select: function( e, ui ){
				var url = $(ui.next).children().attr('src').split('.'),
					src = url[0] + '-',
					ext = '.' + url[1],
					title = ui.next.title || 'Wallpaper';
				
				wallpaperTitle.text( title );
				
				wallpaperThumbnail[0].src = src + 'thumb' + ext;
				wallpaperThumbnail.parent()[0].href = src + '1280' + ext;
				
				wallpaperLinks[0].href = src + '320'  + ext;
				wallpaperLinks[1].href = src + '640'  + ext;
				wallpaperLinks[2].href = src + '1280' + ext;
				wallpaperLinks[3].href = src + '1920' + ext;
			}
		});
	}
	else if( _page == 'Home Page' || _page == 'Coming Soon' || _page == 'Contact Us' )
	{
		$('#contactForm').submit(function(){
			var RegExp = /^\w+([\.&-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
	
			if ($('#company').val().length == 0) {
				alert('Error: Company name is required.');
			}
			else if ($('#taxId').val().length == 0) {
				alert('Error: Tax License # is required.');
			}
			else if ($('#email').val().length == 0) {
				alert('Error: Email address is required');
			}
			else if (!RegExp.test($('#email').val())) {
				alert('Error: This email address is invalid.');
			}
			else {
				$.ajax({
					url: '/Email.aspx',
					type: 'POST',
					data: {
						company: $('#company').val(),
						taxId: $('#taxId').val(),
						email: $('#email').val()
					},
					success: function (data) {
						alert('Thank you. Your request has been received.');
					}
				});
			}
			return false;
		});
		
		$('#body-section-overLayer .ui-button').show().each(function(){
			if ( this.firstChild ){
				$(this).html( $(this.firstChild).text() );
			}
		}).button();
		
		if( _retailers ){
			_setRetailerList();
		}
	}
});

return v;

})(jQuery, cVegas);
