/* Author:

*/







$(function() {
	
	function formHide(f) {
		var fw = $(f).innerWidth();
		var fh = $(f).innerHeight();
		var fid = $(f).attr('id');
		$(f).parent('.fwrap').remove();
		$(f).wrap(function() {
			return '<div class="fwrap '+ fid +'" style="width:'+ fw +'px;height:'+ fh +'px" />';
		});
		$(f).fadeOut(400,function() {
			if ( ! $('div.fwrap.finished').length) $('div.fwrap.'+ fid).css('background','transparent url(/cr/images/spinner.gif) no-repeat center center');
		});
	}
	function formShow(f,m,r,h) {
		$(f).parent('.fwrap').prepend(m).addClass('finished').css('background','none');
		r = typeof(r) !== 'undefined' ? r : false;
		if (r) $(f).show();
		h = typeof(h) !== 'undefined' ? h : false;
		if (h && !r) $(f).parent('.fwrap').animate({height:h+'px'},200);
	}
	
	// External Links in New Windows
	$.expr[':'].external = function(o) {
		return !o.href.match(/^mailto\:/) && (o.hostname !== location.hostname);
	};
	$('a:external').attr('target','_blank').addClass('external');
	
	// Primary Nav Functions
	$('#primary-nav > ul > li:has(ul)').addClass('parent').hoverIntent(
		function(){
			$('ul',this).slideToggle(100);
		},
		function(){
			$('ul',this).slideToggle(200);
		}
	);
	
	if ($('#feature').length) {
		$('#feature').cycle({timeout:5000});
	}
	
	if ($('#product-info').length) {
		$('#product-info .photo-pane img').hide();
		$('#product-info .pane-list').cycle({
			'before':function(ce,ne) {
				var pageCount = $(ne).index() + 1;
				var paneCount = $('#product-info .pane-list .ip').length;
				
				$('#info-nav a').removeClass('disabled');
				// Is this last?
				if (pageCount == paneCount) {
					$('#info-nav .next').addClass('disabled');
				}
				
				// Is this first?
				if (pageCount == '1') {
					$('#info-nav .prev').addClass('disabled');
				}
			},
			'after':function(ce,ne) {
				
				var pageCount = $(ne).index() + 1;
				var paneCount = $('#product-info .pane-list .ip').length;
				
				if ($('#product-info .photo-pane .info-pane-image-' + pageCount).length) {
					if ($('#product-info .photo-pane img:visible').length) {
						$('#product-info .photo-pane img:visible').fadeOut('100',function(){
							if ($('#product-info .photo-pane .info-pane-image-' + pageCount).length) {
								$('#product-info .photo-pane .info-pane-image-' + pageCount).fadeIn('50');
							}
						});
					} else {
						if ($('#product-info .photo-pane .info-pane-image-' + pageCount).length) {
							$('#product-info .photo-pane .info-pane-image-' + pageCount).fadeIn('50');
						}
					}
				}
				
				
			},
			'fx':'scrollHorz',
			'speed':400,
			'timeout':0,
			'pager':'#info-nav-pager',
			'pagerAnchorBuilder':function(i,s){
				return '<a href="#">&#8226;</a>';
			}
		});
		$('#info-nav .next,#info-nav .prev').click(function(){
			if ( ! $(this).is('.disabled')) {
				$('#product-info .pane-list').cycle($(this).attr('class'));
			}
			return false;
		});
	}
	
	if ($('body.products #content-columns').length) {
		/*
		//$('#content-columns div').hide();
		$('#more-info a').click(function() {
			$(this).toggleClass('active');
			$('#content-columns div').slideToggle(200);
			return false;
		});
		//if ($('#more-info a').length) { $('#more-info a').click(); }
		*/
	}
	
	if ($('.product-menu').length) {
		$('.product-menu .item .read-more a').append('<img src="/cr/images/general-right-arrow.png">');
	}
	
	if ($('.latest-post').length) {
		$('.latest-post .item-foot .read-more a').append('<img src="/cr/images/general-right-arrow.png">');
	}
	
	if ($('#coverage-map').length) {
	
		$('#coverage-map').gmap3(
			{ // Center & Zoom Map
				action:'init',
				mapTypeId: google.maps.MapTypeId.SATELLITE,
				center:[37.741612,-96.547852],
				zoom: 4
			}
			/*,
			{ // Add US States
				action:'addKmlLayer',
				url:'http://raven.clickrain.com/cr/kml/states-2.kml',
				options:{
					suppressInfoWindows:true,
					preserveViewport:true
				}
			},
			{ // Add France
				action:'addKmlLayer',
				url:'http://raven.clickrain.com/cr/kml/france-2.kml',
				options:{
					suppressInfoWindows:true,
					preserveViewport:true
				}
			},
			{ // Add Australia
				action:'addKmlLayer',
				url:'http://raven.clickrain.com/cr/kml/australia-2.kml',
				options:{
					suppressInfoWindows:true,
					preserveViewport:true
				}
			}
			*/
		);
		
		if (kmzList !== undefined) {
			$(kmzList).each(function(){
				if (this.kmz != '') {
					$('#coverage-map').gmap3({
						action:'addKmlLayer',
						url:'http://ravenslingshot.com'+this.kmz,
						options:{
							suppressInfoWindows:false,
							preserveViewport:true
						}
					});
				}
			});
		}
		
		// Add Australia
		/*
		$('#coverage-map').gmap3({
			action:'addKmlLayer',
			url:'http://public.clickrain.com/demo/australia.kml',
			options:{
				suppressInfoWindows:true
			}
		});
		*/
		
		// Add States
		/*
		$('#coverage-map').gmap3({
			action:'addKmlLayer',
			url:'http://public.clickrain.com/demo/states.kml',
			options:{
				suppressInfoWindows:true
			}
		});
		*/
		
		/*
		// Add Towers
		for (i = 0;i < towers.length;i++) {
			$('#coverage-map').gmap3({
				action:'addCircle',
				center:towers[i],
				radius:30.00*1609.344,
				fillColor:'#00FF00',
				fillOpacity:0.4,
				strokeWeight:0,
				strokeColor:'#00FF00'
			});
		}
		*/
		
		// Center & Zoom Map
		/*
		$('#coverage-map').gmap3({
			center: {lat:37.741612, lng:-96.547852},
			zoom: 4
		});
		*/
	}
	
	/* /// FORM SUBMISSIONS /// */

	// Track Form Loads on GA
	if ($('form').length) {
		$('form').each(function() {
			var id = $(this).attr('id');
			if (id !== '') {
				_gaq.push(['_trackEvent','Forms','Form Loaded',id]);
			}
		});
	}
	
	// Contact Form Submission
	if ($('form#contact').length)
	{
		var cFormVal = {
			debug:true,
			rules: {
				fname:'required',
				lname:'required',
				email: {
					required:true,
					email:true
				},
				message:'required'
			},
			errorClass:'invalid',
			highlight:function(e,ec) {
				$(e).addClass(ec);
			},
			unhighlight:function(e,ec) {
				$(e).removeClass(ec);
			},
			submitHandler:function(f) {
				formHide(f);
				$.ajax({
					type:'POST',
					url:$(f).attr('action'),
					dataType:'json',
					data:{
						action:'contact',
						jssub:'1',
						fname:$('input#contact-fname',f).val(),
						lname:$('input#contact-lname',f).val(),
						email:$('input#contact-email',f).val(),
						phone:$('input#contact-phone',f).val(),
						addr:$('input#contact-addr',f).val(),
						city:$('input#contact-city',f).val(),
						state:$('select#contact-state',f).val(),
						zip:$('input#contact-zip',f).val(),
						message:$('textarea#contact-message',f).val(),
						first_name:$('input#contact-first_name',f).val()
					},
					success:function(json) {
						var m = '';
						if (json.success) {
							m = '<p class="message">'+json.message+'</p> \
								<!-- Google Code for Successful Contact Conversion Page --> \
								';
								/*
								<script type="text/javascript"> \
								/\* <![CDATA[ *\/ \
								var google_conversion_id = 1018188931; \
								var google_conversion_language = "en"; \
								var google_conversion_format = "3"; \
								var google_conversion_color = "ffffff"; \
								var google_conversion_label = "zMR5CJXfnwIQg6nB5QM"; \
								var google_conversion_value = 0; \
								/\* ]]> *\/ \
								</script> \
								<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js"> \
								</script> \
								<noscript> \
								<div style="display:inline;"> \
								<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/1018188931/?label=zMR5CJXfnwIQg6nB5QM&amp;guid=ON&amp;script=0"/> \
								</div> \
								</noscript>';
								*/
							_gaq.push(['_trackEvent','Forms','Form Submitted','contact']);
						} else {
							m = '<p class="message">'+json.message+'</p>';
							_gaq.push(['_trackEvent','Forms','Form Error','contact, json error']);
						}
						//$('.ie7 #interior-content').css('margin-right','-10px');
						formShow(f,m,false,100);
					},
					error:function(x,t,e) {
						var m = '<p class="message">There was a problem submitting the form.</p>';
						formShow(f,m,true);
						//$('.ie7 #interior-content').css('margin-right','-10px');
						_gaq.push(['_trackEvent','Forms','Form Error','contact']);
					}
				});
			},
			invalidHandler: function(f,v) {
			},
			errorPlacement: function(err,el) {
			}
		};
		$('form#contact').validate(cFormVal);
		// To Make Buttons Submit Forms (IE <= 7 Only)
		// And I'm putting this at the bottom because IE doesn't even know some of the forms exist yet.
		if ($.browser.msie && parseFloat($.browser.version) <= 7) {
			$('form button').click(function() {
				$(this).parents('form').submit();
			});
		}
	}
	
	// Contact Form Submission
	if ($('form#become-a-dealer').length)
	{
		var cFormVal = {
			debug:true,
			rules: {
				fname:'required',
				lname:'required',
				email: {
					required:true,
					email:true
				},
				message:'required'
			},
			errorClass:'invalid',
			highlight:function(e,ec) {
				$(e).addClass(ec);
			},
			unhighlight:function(e,ec) {
				$(e).removeClass(ec);
			},
			submitHandler:function(f) {
				formHide(f);
				$.ajax({
					type:'POST',
					url:$(f).attr('action'),
					dataType:'json',
					data:{
						action:'become-a-dealer',
						jssub:'1',
						fname:$('input#contact-fname',f).val(),
						lname:$('input#contact-lname',f).val(),
						email:$('input#contact-email',f).val(),
						phone:$('input#contact-phone',f).val(),
						addr:$('input#contact-addr',f).val(),
						city:$('input#contact-city',f).val(),
						state:$('select#contact-state',f).val(),
						zip:$('input#contact-zip',f).val(),
						message:$('textarea#contact-message',f).val(),
						first_name:$('input#contact-first_name',f).val()
					},
					success:function(json) {
						var m = '';
						if (json.success) {
							m = '<p class="message">'+json.message+'</p> \
								<!-- Google Code for Successful Contact Conversion Page --> \
								';
								/*
								<script type="text/javascript"> \
								/\* <![CDATA[ *\/ \
								var google_conversion_id = 1018188931; \
								var google_conversion_language = "en"; \
								var google_conversion_format = "3"; \
								var google_conversion_color = "ffffff"; \
								var google_conversion_label = "zMR5CJXfnwIQg6nB5QM"; \
								var google_conversion_value = 0; \
								/\* ]]> *\/ \
								</script> \
								<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js"> \
								</script> \
								<noscript> \
								<div style="display:inline;"> \
								<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/1018188931/?label=zMR5CJXfnwIQg6nB5QM&amp;guid=ON&amp;script=0"/> \
								</div> \
								</noscript>';
								*/
							_gaq.push(['_trackEvent','Forms','Form Submitted','contact']);
						} else {
							m = '<p class="message">'+json.message+'</p>';
							_gaq.push(['_trackEvent','Forms','Form Error','contact, json error']);
						}
						//$('.ie7 #interior-content').css('margin-right','-10px');
						formShow(f,m,false,100);
					},
					error:function(x,t,e) {
						var m = '<p class="message">There was a problem submitting the form.</p>';
						formShow(f,m,true);
						//$('.ie7 #interior-content').css('margin-right','-10px');
						_gaq.push(['_trackEvent','Forms','Form Error','contact']);
					}
				});
			},
			invalidHandler: function(f,v) {
			},
			errorPlacement: function(err,el) {
			}
		};
		$('form#become-a-dealer').validate(cFormVal);
		// To Make Buttons Submit Forms (IE <= 7 Only)
		// And I'm putting this at the bottom because IE doesn't even know some of the forms exist yet.
		if ($.browser.msie && parseFloat($.browser.version) <= 7) {
			$('form button').click(function() {
				$(this).parents('form').submit();
			});
		}
	}
	
	
	// Contact Form Submission
	if ($('form#demo-account').length)
	{
		var demoFormVal = {
			debug:true,
			errorClass:'invalid',
			highlight:function(e,ec) {
				$(e).addClass(ec);
			},
			unhighlight:function(e,ec) {
				$(e).removeClass(ec);
			},
			submitHandler:function(f) {
				formHide(f);
				$.ajax({
					type:'POST',
					url:$(f).attr('action'),
					dataType:'json',
					data:{
						action:'demo-account',
						jssub:'1',
						name:$('input#name',f).val(),
						address:$('input#address',f).val(),
						phone:$('input#phone',f).val(),
						email:$('input#email',f).val(),
						dealer:$('select#dealer',f).val(),
						'qty-viper-pros':$('input#qty-viper-pros',f).val(),
						'qty-application-equip':$('input#qty-application-equip',f).val(),
						software:$('input#software',f).val(),
						'viper-info-software-rev':$('input#viper-info-software-rev',f).val(),
						'viper-info-machine-id':$('input#viper-info-machine-id',f).val(),
						'viper-info-part-number':$('input#viper-info-part-number',f).val(),
						cellular:$('select#cellular',f).val()
					},
					success:function(json) {
						var m = '';
						if (json.success) {
							m = '<p class="message">'+json.message+'</p>';
							_gaq.push(['_trackEvent','Forms','Form Submitted','demo-account']);
						} else {
							m = '<p class="message">'+json.message+'</p>';
							_gaq.push(['_trackEvent','Forms','Form Error','demo-account, json error']);
						}
						//$('.ie7 #interior-content').css('margin-right','-10px');
						formShow(f,m,false,100);
					},
					error:function(x,t,e) {
						var m = '<p class="message">There was a problem submitting the form.</p>';
						formShow(f,m,true);
						//$('.ie7 #interior-content').css('margin-right','-10px');
						_gaq.push(['_trackEvent','Forms','Form Error','demo-account']);
					}
				});
			},
			invalidHandler: function(f,v) {
			},
			errorPlacement: function(err,el) {
			}
		};
		$('form#demo-account').validate(demoFormVal);
		// To Make Buttons Submit Forms (IE <= 7 Only)
		// And I'm putting this at the bottom because IE doesn't even know some of the forms exist yet.
		if ($.browser.msie && parseFloat($.browser.version) <= 7) {
			$('form button').click(function() {
				$(this).parents('form').submit();
			});
		}
	}
	
});
