
if (typeof console == "undefined") var console = { log: function(m) {alert(m);} };
if (typeof pageTracker == "undefined") var pageTracker = { _trackEvent: function(){},_trackPageview: function() {} };

//globs
var AB = {};

$(function(){ initSite(); });

initSite = function(){

	$("#n-" + AB.page).addClass("nav-active");
	ctrlint = setInterval(function(){
		controlRoute();
		clearInterval(ctrlint);
	},100);
	$(window.location).bind("change",function(e,d){
		controlRoute();
	});
};
controlRoute = function(){
	ch = document.location.hash.split("/");
	ch[0] = ch[0].substr(1);
	r = {
		fnc: ch[0],
		met: ch[1],
		query: ch[2]
	};
	switch(r.fnc){
		case "": break;
		default: $(document).trigger("cr-" + r.fnc, r);
	}
};
controlExec = function(func, method, args){
	document.location.href = "#" + func + "/" + method + "/" + args;
};

makeVideoPlayer = function(config, download, autoplay){
	autoplay = autoplay || false;
	id = config.id || "vid"+Math.floor(Math.random()*999999);
	
	var vp = "";
	if($.browser.msie){	
		if($.flash.available){
			vp += "<div id='" + id +"'>" + 
			$.flash.create({
				swf: AB.a +'/swf/jw/player.swf',
				height: config.height,
				width: config.width,
				allowscriptaccess: "always",
				flashvars:{
					file: config.src + ".mp4",
					image: config.src + ".jpg",
					autoplay: (autoplay? "true":"false")
				}
			}) +
			"</div>";
		}else{
			vp += '<img src="'+config.src+'.jpg" width="'+config.width+'" height="'+config.height+'" alt="'+(config.title?config.title:"")+'"'+
			     'title="No video playback capabilities, please download the video below" />';
		}
		
			
	}else{
		vp+= '<video id="'+ config.id +'" width="'+config.width+'" height="'+config.height+
		'" controls preload="none"' + (autoplay?" autoplay":"")+
		' poster="'+config.src+'.jpg">'+
		'<source src="'+config.src+'.mp4"  type="video/mp4" />'+
		'<source src="'+config.src+'.ogv"  type="video/ogg" />';
		vp +='</video>';
	}
	
	if(download){
		vp += '<p>	<strong>Download Video:</strong>'+
			'<a href="'+config.src+'.MP4">"MP4"</a>'+
			'<a href="'+config.src+'.ogv">"OGG"</a>'+
		'</p>';
	}

	
	return vp;
}

makeUGVideoPlayer = function(config, download, autoplay){
	autoplay = autoplay || false;
	id = config.id || "vid"+Math.floor(Math.random()*999999);
	
	var vp = "";
	if($.browser.msie){	
		if($.flash.available){
			vp += "<div id='" + id +"'>" + 
			$.flash.create({
				swf: AB.a +'/swf/jw/player.swf',
				height: config.height,
				width: config.width,
				allowscriptaccess: "always",
				flashvars:{
					file: "http://autobarncdn.stateoftomorrow.tv/assets/" + config.mp4,
					image: "http://autobarncdn.stateoftomorrow.tv/assets/" + config.thumbnail,
					autoplay: (autoplay? "true":"false")
				}
			}) +
			"</div>";
		}else{
			vp += '<img src="http://autobarncdn.stateoftomorrow.tv/assets/'+config.thumbnail+'" width="'+config.width+'" height="'+config.height+'" alt="'+(config.title?config.title:"")+'"'+
			     'title="No video playback capabilities, please download the video below" />';
		}
		
			
	}else{
		vp+= '<video id="'+ config.id +'" width="'+config.width+'" height="'+config.height+
		'" controls preload="none"' + (autoplay?" autoplay":"")+
		' poster="http://autobarncdn.stateoftomorrow.tv/assets/'+config.thumbnail + '">'+
		'<source src="http://autobarncdn.stateoftomorrow.tv/assets/' + config.mp4 + '" type="video/mp4" />'+
		'<source src="http://autobarncdn.stateoftomorrow.tv/assets/' + config.ogv + '" type="video/ogg" />';
		vp +='</video>';
	}
	
	if(download){
		vp += '<p>	<strong>Download Video:</strong>'+
			'<a href="http://autobarncdn.stateoftomorrow.tv/assets/'+config.mp4+'">"MP4"</a>'+
			'<a href="http://autobarncdn.stateoftomorrow.tv/assets/'+config.ogv+'">"OGG"</a>'+
		'</p>';
	}

	
	return vp;
}




function Store_Search(config){
	this.config = config;
	if(this.config.currentStore === undefined) { this.config.currentStore =""}
	var ref = this;
	$(document).bind("cr-storesearch",function(e,d){
		ref.search(r);
	});
	return this;
};

Store_Search.prototype.search = function(d) {
	//console.log("Searching: " + d.met + " at " + d.query);
	if(d.limit === undefined) d.limit = 50;
	
	switch(d.met){
		
		case "state": this._stateSearch(d.query,d.limit); break;
		case "post": this._postSearch(d.query,d.limit); break;
	}
};
Store_Search.prototype._stateSearch = function(query,limit) {
	var thisRef = this;
	$.post("./store/f/get_close_stores", {by:"STATE", q:query, l:limit},function(d){
		thisRef._searchResult(d);
	},"json");
};

Store_Search.prototype._postSearch = function(query,limit) {
	var thisRef = this;
	$.post("./store/f/get_close_stores", {by:"POST", q:query, l:limit},function(d){
		thisRef._searchResult(d);
	},"json");
};

Store_Search.prototype._searchResult = function(d){
	var result = d;
	var ref = this;
	var count = 0;
	$(this.config.message).empty().append("<h5>Results:</h5>See stores near " + d.q.toUpperCase() + " below");

	$(this.config.list).fadeOut(100,function(){
		$(this).empty();
		
		if(result.list.length == 0){
			$(this).append("Sorry, no stores found");
		}
		else{
			for(var li in result.list){
				count++;
				var id = result.list[li].item;
				li = result.list[li];
				cs = (ref.config.currentStore != "" && li.nameid == ref.config.currentStore ? " class='store-current'" : "");
				html = "<li"+ cs +" id='l-"+ id+"'><a href='" + AB.a + "store/" + id + "'><h5>" + li.store_name + "</h5><p>" + li.address + "</p><p class='slocate-phone'>" + li.phone + "</p>";
				if(li.distance !== undefined && cs == ""){
					dis = (li.distance * 1.609344).toPrecision(4); // mi > km
					html += "<p class='slocate-distance'>"+ dis +" km</p>";
				}
				html += "</a></li>";
				$(this).append(html);
				
				if(window.map !== undefined && cs == ""){
					var latlng = new google.maps.LatLng(li.latitude, li.longitude);
					var ab_marker = new google.maps.Marker({
						position: latlng,
						map: window.map,
						icon: AB.a + "/img/storepage/gmapicon-other.png",
						store_name: li.nameid
					});
					
					google.maps.event.addListener(ab_marker,"click",function(){
						$("li",ref.config.list).removeClass("store-click");
						$("#l-" + this.store_name).addClass("store-click");
					});
				}
			}
			vh = 100;//$("#slocate-list-box li").height();
			var nh = (count == 5 ? vh : (Math.floor(count/5)*vh) + vh );
			$(".section-storelist").height(nh);
		}
		$(this).fadeIn(150);
		$(document).scrollTop(500);
		
	});
};


var banner_complete = function(){
	slide.stopSlideshow();
	slide.goRight();
	
	//slide.startSlideshow();
	
}
function Sot_Slider(config){
	this.v = {
		s : $("#"+config.id),
	 	h : config.height,
		w : config.width,
		t : (config.thumbs===undefined ? true : config.thumbs),
		slides : [],
		currentSlide : 0,
		showInterval : 15000,
		showInt : 0,
		autoStart : (config.auto===undefined ? true : config.auto)
	};
	sliderRef = this;
	
	//console.log("Making a slider: " + config.id + " | " + this.v.h +"x"+this.v.w+" | Thumbs [" + (this.v.t?"on":"off") + "]");
	this.v.s.width(this.v.w).height(this.v.h);
	this.v.s.append("<a href='#' class='sliderNav sliderNavLeft'></a><a href='#' class='sliderNav sliderNavRight'></a>");
	if(this.v.t){
		this.v.s.append("<div id='s-quicknav'></div>");
	}
	
	
	var i=0;
	$(".slide-item",this.v.s).each(function() {
		
		$(this).hide().width(sliderRef.v.w).height(sliderRef.v.h);
		sliderRef.v.slides.push(this);
		if(sliderRef.v.t){
			$("#s-quicknav").append("<a href='#' alt='"+i+"' class='s-quicknav-item'><span class='s-quicknav-fill></span></a>");
		}
		i+=1;
	});
	
	$(this.v.slides[this.v.currentSlide]).show();
	this.updateQuickNav();
	if(this.v.autoStart){
		this.startSlideshow();
	}
	
	//Binds
	
	$(".sliderNavRight",this.v.s).click(function() {
		sliderRef.goRight();
		sliderRef.stopSlideshow();
	});
	$(".sliderNavLeft",this.v.s).click(function() {
		sliderRef.goLeft();
		sliderRef.stopSlideshow();
	});
	$("a","#s-quicknav").click(function() {
		sliderRef.jumpTo($(this).attr("alt"));
		sliderRef.stopSlideshow();
	});
}
Sot_Slider.prototype.goRight = function(jump){
	var l = this.v.slides.length;
	var c = this.v.currentSlide;
	if(jump === undefined){
		var go = ( ((c+1)<l)? (c+1) : (0)  );
	}else{
		var go = jump;
	}
	//console.log("Going Right : " + l + "/" + c + "/" + go);
	
	$(this.v.slides[c]).stop().animate({left:this.v.w*-1},1000,function(){$(this).hide();});
	$(this.v.slides[go]).show().stop().css('left',this.v.w).animate({left:0},1000);
	
	this.v.currentSlide = go;
	this.updateQuickNav();
	
	if($(this.v.slides[c]).hasClass(".movie")){
		$(this.v.slides[c], ".movie").flash(function(){
			this.StopPlay();
		});
	}
	if($(this.v.slides[go]).hasClass(".movie")){
		$(this.v.slides[go], ".movie").flash(function(){
			this.GotoFrame(0);
			this.Play();
		});
	}
	$(this.v.slides[go], ".movie").flash(function(){
		this.GotoFrame(0);
		this.Play();
	});
	
};
Sot_Slider.prototype.goLeft = function(jump){
	var l = this.v.slides.length;
	var c = this.v.currentSlide;
	if(jump === undefined){
		var go = ( ((c-1)>=0)? (c-1) : (l-1)  );
	}else{
		var go = jump;
	}
	//console.log("Going Left : " + l + "/" + c + "/" + go);
	
	$(this.v.slides[c]).stop().animate({left:this.v.w},1000,function(){$(this).hide();});
	$(this.v.slides[go]).show().stop().css('left',this.v.w*-1).animate({left:0},1000);
	
	this.v.currentSlide = go;
	this.updateQuickNav();
};
Sot_Slider.prototype.jumpTo = function(where){
	if(where == this.v.currentSlide) return;
	if(where > this.v.currentSlide){
		this.goRight(where);
	}
	else{
		this.goLeft(where);
	}
};
Sot_Slider.prototype.updateQuickNav = function() {
	if(!this.v.t) return;
	$("a","#s-quicknav").removeClass("s-quicknav-active");
	$("a","#s-quicknav").eq(this.v.currentSlide).addClass("s-quicknav-active");
};
Sot_Slider.prototype.startSlideshow = function() {
	this.v.showInt = setInterval(function(){sliderRef.goRight();},this.v.showInterval);
};
Sot_Slider.prototype.stopSlideshow = function() {
	clearInterval(this.v.showInt);
};


var submit_form = function(form_id){
	data = $("#"+form_id).serializeArray();
	$.post(AB.a + "form/" + form_id,{subdata:data,form:form_id}, function(d){process_form(d);},"json");
}
var process_form = function(data){
	var d = data;
	if(data.error){
		$(".response-box","#"+data.form).hide().html(d.msg).addClass( "fbad" ).fadeIn(100);
	}else{
		$("#"+data.form).fadeOut(100,function(){$(this).html(d.msg).addClass("fgood").fadeIn(100) });
	}
	
}

