function print_r(theObj){
  if(theObj.constructor == Array ||
     theObj.constructor == Object){
    document.write("<ul>")
    for(var p in theObj){
      if(theObj[p].constructor == Array || theObj[p].constructor == Object){
      	document.write("<li>["+p+"] => "+typeof(theObj)+"</li>");
        document.write("<ul>")
        print_r(theObj[p]);
        document.write("</ul>")
      } else {
			document.write("<li>["+p+"] => "+theObj[p]+"</li>");
      }
    }
    document.write("</ul>")
  }
}
function contact_submit(){
	// track form submit //
}
function fireFileClear(target, trigger){
	target.setStyle('display','none')
	trigger.set('value',null)
}
function fireFileInput(e,trigger){
	var target = $('fileInfo');
	target.setStyle('display','block')
	target.addEvent('click',fireFileClear.pass([target, trigger]))
}
function initFileInput(){
	if( ! $type($('do_file'))){return false}
	var trigger = $('do_file');
	trigger.addEvent('change',fireFileInput.bindWithEvent(this,[trigger]));
	
	
}
window.addEvent('domready',initFileInput);

/* pdp overlay */
function initPDPOverlay(){
	//if( ! $type($(document.body).getElement('.initOverlay'))){return false}
	var trigger = $$('.initOverlay');
	trigger.each(function(el){
		el.addEvent('click',function(e){
			e.stop();
			var overlay = new OverlayImg(e.target.href,{ // url to your image 
		    	containerId:'overlayContainer',   // id for your container element
		    	dimmerId:'dimmer',				  // id for your dimmer/mask
		    	close:true						  // add a close button, defaults to false
		   	})
			
		})
	})
}
window.addEvent('domready',initPDPOverlay);

/* share overlay */
function initShareOverlay(){
	//if( ! $type($(document.body).getElement('.initOverlay'))){return false}
	var trigger = $$('.entry_img');
	trigger.each(function(el){
		el.addEvent('click',function(e){
			e.stop();
			var overlay = new OverlayImg(e.target.href,{ // url to your image 
		    	containerId:'overlayContainer',   // id for your container element
		    	dimmerId:'dimmer',				  // id for your dimmer/mask
		    	close:true						  // add a close button, defaults to false
		   	})
			
		})
	})
}
window.addEvent('domready',initShareOverlay);

/* timeline overlay */
function initTimelineOverlay(){
	//if( ! $type($(document.body).getElement('.initOverlay'))){return false}
	var trigger = $$('.initTimeline');
	trigger.each(function(el){
		el.addEvent('click',function(e){
			e.stop();
			var overlay = new OverlayImg('/learn/history',{ 
		    	containerId:'overlayHistContainer',
		    	dimmerId:'dimmer',
		    	close:true,
		    	type:'request'
		   	})
			
		})
	})
}
window.addEvent('domready',initTimelineOverlay);



/* *** dealer locator *** */
function dealer_locator_form(){
	var form = $('dealer-locator-search-form');
	if(! form) return false;
	var action = form.get('action');	

	form.addEvent('submit',function (e) {
		if($type(e)) e.stop();
		var data = form.toQueryString();
		// query_dealers_results //onComplete function
		var jsonRequest = new Request.JSON({url:'/index.php/locate/results',method:'post',onRequest: loadingDealerResutls,onComplete: query_dealers_results}).send(data);
		
		return false;
	});
	
}
window.addEvent('domready',dealer_locator_form);

function loadingDealerResutls() {
	// dealer-locator-results-loader
	$('dealer-locator-results').empty();
	$('dealer-locator-results-loader').removeProperty('style').clone().inject($('dealer-locator-results')).setStyle('visibility','visible');
}

function query_dealers_results(json,text) {
	DEALERS = [];
	$('search-results_title').setStyle('visibility','visible');
	if(!$type(json)){
		var dealer_entry = new Element('div',{
			'class':'dealer-entry',
			'id':'no_dealer'
		}).inject(results_target,'bottom');
		
		var line_item = new Element('p',{
			'class':'no-results'
		}).inject(dealer_entry);
		line_item.appendText('No Results');
	}
	
	
	var dealers = json.dealers;
	var dealerTotal = json.dealers.length;
	
	var results_target = $('dealer-locator-results');
	results_target.scrollTo(0,0);
	results_target.empty();
	window.map.clearOverlays();
	if(dealers.length > 0){
		dealers.each(function(dealer,i){
			dealer = new Hash(dealer);
			var address = dealer.dealer_address+" "+dealer.dealer_city+", "+dealer.dealer_state+" "+dealer.dealer_postal;
			createGoogleMarker(address, dealer, results_target,i,dealerTotal);
		});
		
	}
	else{
		var dealer_entry = new Element('div',{
			'class':'dealer',
			'id':'no_dealer'
		}).inject(results_target,'bottom');
		
		var line_item = new Element('h2',{
			'class':'no-results'
		}).inject(dealer_entry);
		
		line_item.appendText('No Results');
		
	}
	
}
DEALERS = [];
function createGoogleMarker(address, dealer, results_target,i,total){
	var marker = null;
	var dealerEntry = createDealerEntry(dealer,i);
	if(window.geocoder){
		window.geocoder.getLatLng(address,function(point){
			if(point){
				// marker = new GMarker(point);
				marker = createMarker(point,i,dealerEntry);
				window.map.addOverlay(marker);
				dealerEntry.addEvent('click',function(e){
					window.map.panTo(marker.getLatLng());
					marker.openInfoWindowHtml(dealerEntry.clone());
				});
				if(i == 0){
					window.map.setCenter(marker.getLatLng(),11);
					dealerEntry.fireEvent('click');
				}
				// dealerEntry.inject(results_target,"bottom");

			}
			else{

				dealerEntry.setStyles({
					'cursor':'default',
					'opacity':0.5
				});
			}
		});	
	}
	
	DEALERS.push(dealerEntry);
	if(DEALERS.length == total){
		DEALERS.each(function(el,i,group){
			el.inject(results_target,"bottom");
		});
	}
}

// Creates a marker whose info window displays the letter corresponding
// to the given index.
// Create a base icon for all of our markers that specifies the
// shadow, icon dimensions, etc.

function createMarker(point, index, dealerEntry) {
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.shadow = "/admin/templates/resources/images/Google_Maps_Marker_Images/shadow50.png";
	baseIcon.iconSize = new GSize(20, 31);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	
  // Create a lettered icon for this point using our icon class
  var letter = String.fromCharCode("A".charCodeAt(0) + index);

  var letteredIcon = new GIcon(baseIcon);
	if(index >= 26){
		letter = 'default'; 
	}
  letteredIcon.image = "/admin/templates/resources/images/Google_Maps_Marker_Images/" + letter + ".png";

  // Set up our GMarkerOptions object
  markerOptions = { icon:letteredIcon };
  var marker = new GMarker(point, markerOptions);

  GEvent.addListener(marker, "click", function() {
  	marker.openInfoWindowHtml(dealerEntry.clone());
  });

  return marker;
}

function createDealerEntry(dealer,i) {
	var letter = String.fromCharCode("A".charCodeAt(0) + i);
	
	if(i >= 26) letter = 'default';
	
	var dealerEntry = new Element('div',{
		'class':'dealer dealer_'+i,
		'styles':{
			'background': "url(/admin/templates/resources/images/Google_Maps_Marker_Images/" + letter + ".png) no-repeat left top"
		}
	});
	
	var dealerName = new Element('h2',{
		'class': 'dealerName',
		'text': dealer.dealer_name
	}).inject(dealerEntry);
	
	var dealerAddress = new Element('p',{
			'class': 'dealerAddress',
			'text':dealer.dealer_address
	}).inject(dealerEntry);
		
	var dealerAddress = new Element('p',{
			'class': 'dealerCityStateZip',
			'text':dealer.dealer_city+", "+dealer.dealer_state+" "+dealer.dealer_postal
	}).inject(dealerEntry);
	
	var dealerPhone = new Element('p',{
		'class':'dealerPhone',
		'text':dealer.dealer_phone
	}).inject(dealerEntry);
	
	var dealerDirections = new Element('a',{
		'class':'dealerDirections',
		'text':'Get Directions',
		'target':'_blank',
		'href':'http://maps.google.com/maps?f=d&source=s_d&daddr='+dealer.dealer_address+' '+dealer.dealer_city+', '+dealer.dealer_state+' '+dealer.dealer_postal+'&hl=en&ie=UTF8&t=h&z=10'
	}).inject(dealerEntry);
	
	return dealerEntry;
	
}


/* add to cart validation */
function isUnsignedInteger(s) {
  return (s.toString().search(/^[0-9]+$/) == 0);
}

function updateFormValidation(e, trigger, targetInputs) {
	e.stop();
	var qty_flag = false
	targetInputs.each(function(el){
		if(el.value != 0 && isUnsignedInteger(el.value)){
			qty_flag = true;
		}
	})
	if(qty_flag == true){
		trigger.disabled = false;
		trigger.addClass('active')
		//trigger.fade('1');
	}else{
		trigger.disabled = true;
		trigger.removeClass('active')
		//trigger.fade('.5');
		return false;
	}
}

function initAddCartValidation(el) {
	if( ! $('add_to_cart_form')){return false;}
	var target = $('add_to_cart_form');
	var submitForm = function(){target.submit()}
	var trigger = target.getElement('input[type="submit"]');
	//trigger.fade('.5');
	trigger.disabled = true;
	targetInputs = $$('.qty')
	targetInputs.each(function(el){
		el.addEvents({
			'keyup':updateFormValidation.bindWithEvent(this,[trigger, targetInputs])
		})
	})
}
window.addEvent('domready', initAddCartValidation);

function testFlashPlayerVersion(versionNum){
	if (isNaN(versionNum)) versionNum = 10;
	if(Browser.Plugins.Flash.version == 0) return false;
	if(Browser.Plugins.Flash.version < versionNum && Browser.Plugins.Flash.version > 0){
		var closeOl = new Element('span',{
			id:'nothanks',
			html:'No Thanks',
			events:({
				'click': function(){/*console.log('close me')*/}
			})
		})
		var getTen = new Element('div', {
			id:'getFlashTen',
			html:'<p>This site uses Adobe\'s Flash Player Version 10 <br /> <a href="http://www.adobe.com/products/flashplayer/" target="_blank">Download Now</a> | <a href="#">No Thanks</span></p>'
		})
		getTen.getFirst().getLast().addEvent('click', function(){closeFrameOverlay($('dimemr'),getTen)})
		overlayCenterElement(getTen);
		return false;
	}
	else{
		return true;
	}
}
function homeMarquee(){
	
	
}

function homeMarquee(){
	if( ! $('home_flash')){return false;}
	var swiffTest = testFlashPlayerVersion(10);
	if(!$type(swiffTest)) return 0;
	var target = $('home_flash');

	var wwSwf = new Swiff('/resources/swf/HomeProductRotator.swf', {
		id: 'marquee',
	    width: 970,
	    height: 480,
	    params: {
	        wmode: 'transparent',
	        allowScriptAccess: 'always',
			scale: 'noscale'
	    },
	    vars: {
	        basePath: '/admin/templates/resources/swf/wellwishes.swf'
    	}
	});
	target.empty();
	target.adopt(wwSwf);

};
window.addEvent('domready',homeMarquee);

/* remove input copy */
function clearTextField(e){
	var value = e.target.value || e.target.text ;
	e.target.set('value','');
	e.target.addEvent('blur',function(e){
		if(e.target.value == '' || e.target.text == ''){
			e.target.set('value',value);
		}
	})
}

function initTextFields(){
	//var fields = $(document.body).getElements('input[type="text"]:not(form input)');
	var fields = [$('my_email')];
	fields.each(function(el){
		el.addEvents({
			'focus':clearTextField.bindWithEvent(this,[el])
		})
	})
}
window.addEvent('domready',initTextFields); 





