/* Modernizr and Robert's MSIE and JS additions */
document.getElementsByTagName('html')[0].className = '';
if(navigator.userAgent.indexOf('MSIE') !== -1) {
	document.getElementsByTagName('html')[0].className = 'msie';
}
window.Modernizr=(function(P,l){var _='1.1', J={},T=true,ab=true,M=100,ad=l.documentElement,U=l.createElement("modernizr"),k=U.style,Z=l.createElement("input"),o="canvas",Y="canvastext",V="rgba",g="hsla",Q="multiplebgs",x="borderimage",D="borderradius",v="boxshadow",X="opacity",B="cssanimations",R="csscolumns",a="cssgradients",p="cssreflections",h="csstransforms",w="csstransforms3d",aa="csstransitions",F="fontface",K="geolocation",e="video",A="audio",d="input",u=d+"types",N="background",b=N+"Color",G="canPlayType",H="localstorage",j="sessionstorage",C="webworkers",O="applicationcache",c=" -o- -moz- -ms- -webkit- ".split(" "),s={},z={},r={},q,S,W,L,n=[];function y(f){k.cssText=f}function E(i,f){return y(c.join(i+";")+(f||""))}function I(i,f){return i.indexOf(f)!==-1}function ac(m,ae){for(var f in m){if(k[m[f]]!==undefined&&(!ae||ae(m[f]))){return true}}}function t(ae,m){var i=ae.charAt(0).toUpperCase()+ae.substr(1),f=[ae,"webkit"+i,"Moz"+i,"moz"+i,"o"+i,"ms"+i];return !!ac(f,m)}s[o]=function(){return !!l.createElement(o).getContext};s[Y]=function(){return !!(s[o]()&&typeof l.createElement(o).getContext("2d").fillText=="function")};s[K]=function(){return !!navigator.geolocation};s[V]=function(){y(N+"-color:rgba(150,255,150,.5)");return I(k[b],V)};s[g]=function(){y(N+"-color:hsla(120,40%,100%,.5)");return I(k[b],V)};s[Q]=function(){y(N+":url(m.png),url(a.png),#f99 url(m.png)");return/(url\s*\(.*?){3}/.test(k[N])};s[x]=function(){return t("borderImage")};s[D]=function(){return t("borderRadius","",function(f){return I(f,"orderRadius")})};s[v]=function(){return t("boxShadow")};s[X]=function(){y("opacity:.5");return I(k[X],"0.5")};s[B]=function(){return t("animationName")};s[R]=function(){return t("columnCount")};s[a]=function(){var m=N+"-image:",i="gradient(linear,left top,right bottom,from(#9f9),to(white));",f="linear-gradient(left top,#9f9, white);";y(m+i+m+"-webkit-"+i+m+"-moz-"+i+m+"-o-"+i+m+"-ms-"+i+m+f+m+"-webkit-"+f+m+"-moz-"+f+m+"-o-"+f+m+"-ms-"+f);return I(k.backgroundImage,"gradient")};s[p]=function(){return t("boxReflect")};s[h]=function(){return !!ac(["transformProperty","webkitTransform","MozTransform","mozTransform","oTransform","msTransform"])};s[w]=function(){return !!ac(["perspectiveProperty","webkitPerspective","MozPerspective","mozPerspective","oPerspective","msPerspective"])};s[aa]=function(){return t("transitionProperty")};s[F]=(function(){var i;if(!(!/*@cc_on@if(@_jscript_version>=5)!@end@*/0)){i=true}else{var aj=l.createElement("style"),ae=l.createElement("span"),ak,af,ah=false,ag=l.body,ai,m;aj.textContent="@font-face{font-family:testfont;src:url('data:font/ttf;base64,AAEAAAAMAIAAAwBAT1MvMliohmwAAADMAAAAVmNtYXCp5qrBAAABJAAAANhjdnQgACICiAAAAfwAAAAEZ2FzcP//AAMAAAIAAAAACGdseWYv5OZoAAACCAAAANxoZWFk69bnvwAAAuQAAAA2aGhlYQUJAt8AAAMcAAAAJGhtdHgGDgC4AAADQAAAABRsb2NhAIQAwgAAA1QAAAAMbWF4cABVANgAAANgAAAAIG5hbWUgXduAAAADgAAABPVwb3N03NkzmgAACHgAAAA4AAECBAEsAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAACAAMDAAAAAAAAgAACbwAAAAoAAAAAAAAAAFBmRWQAAAAgqS8DM/8zAFwDMwDNAAAABQAAAAAAAAAAAAMAAAADAAAAHAABAAAAAABGAAMAAQAAAK4ABAAqAAAABgAEAAEAAgAuqQD//wAAAC6pAP///9ZXAwAAAAAAAAACAAAABgBoAAAAAAAvAAEAAAAAAAAAAAAAAAAAAAABAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEACoAAAAGAAQAAQACAC6pAP//AAAALqkA////1lcDAAAAAAAAAAIAAAAiAogAAAAB//8AAgACACIAAAEyAqoAAwAHAC6xAQAvPLIHBADtMrEGBdw8sgMCAO0yALEDAC88sgUEAO0ysgcGAfw8sgECAO0yMxEhESczESMiARDuzMwCqv1WIgJmAAACAFUAAAIRAc0ADwAfAAATFRQWOwEyNj0BNCYrASIGARQGKwEiJj0BNDY7ATIWFX8aIvAiGhoi8CIaAZIoN/43KCg3/jcoAWD0JB4eJPQkHh7++EY2NkbVRjY2RgAAAAABAEH/+QCdAEEACQAANjQ2MzIWFAYjIkEeEA8fHw8QDxwWFhwWAAAAAQAAAAIAAIuYbWpfDzz1AAsEAAAAAADFn9IuAAAAAMWf0i797/8zA4gDMwAAAAgAAgAAAAAAAAABAAADM/8zAFwDx/3v/98DiAABAAAAAAAAAAAAAAAAAAAABQF2ACIAAAAAAVUAAAJmAFUA3QBBAAAAKgAqACoAWgBuAAEAAAAFAFAABwBUAAQAAgAAAAEAAQAAAEAALgADAAMAAAAQAMYAAQAAAAAAAACLAAAAAQAAAAAAAQAhAIsAAQAAAAAAAgAFAKwAAQAAAAAAAwBDALEAAQAAAAAABAAnAPQAAQAAAAAABQAKARsAAQAAAAAABgAmASUAAQAAAAAADgAaAUsAAwABBAkAAAEWAWUAAwABBAkAAQBCAnsAAwABBAkAAgAKAr0AAwABBAkAAwCGAscAAwABBAkABABOA00AAwABBAkABQAUA5sAAwABBAkABgBMA68AAwABBAkADgA0A/tDb3B5cmlnaHQgMjAwOSBieSBEYW5pZWwgSm9obnNvbi4gIFJlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgT3BlbiBGb250IExpY2Vuc2UuIEtheWFoIExpIGdseXBocyBhcmUgcmVsZWFzZWQgdW5kZXIgdGhlIEdQTCB2ZXJzaW9uIDMuYmFlYzJhOTJiZmZlNTAzMiAtIHN1YnNldCBvZiBKdXJhTGlnaHRiYWVjMmE5MmJmZmU1MDMyIC0gc3Vic2V0IG9mIEZvbnRGb3JnZSAyLjAgOiBKdXJhIExpZ2h0IDogMjMtMS0yMDA5YmFlYzJhOTJiZmZlNTAzMiAtIHN1YnNldCBvZiBKdXJhIExpZ2h0VmVyc2lvbiAyIGJhZWMyYTkyYmZmZTUwMzIgLSBzdWJzZXQgb2YgSnVyYUxpZ2h0aHR0cDovL3NjcmlwdHMuc2lsLm9yZy9PRkwAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMAA5ACAAYgB5ACAARABhAG4AaQBlAGwAIABKAG8AaABuAHMAbwBuAC4AIAAgAFIAZQBsAGUAYQBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABlACAAdABlAHIAbQBzACAAbwBmACAAdABoAGUAIABPAHAAZQBuACAARgBvAG4AdAAgAEwAaQBjAGUAbgBzAGUALgAgAEsAYQB5AGEAaAAgAEwAaQAgAGcAbAB5AHAAaABzACAAYQByAGUAIAByAGUAbABlAGEAcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAEcAUABMACAAdgBlAHIAcwBpAG8AbgAgADMALgBiAGEAZQBjADIAYQA5ADIAYgBmAGYAZQA1ADAAMwAyACAALQAgAHMAdQBiAHMAZQB0ACAAbwBmACAASgB1AHIAYQBMAGkAZwBoAHQAYgBhAGUAYwAyAGEAOQAyAGIAZgBmAGUANQAwADMAMgAgAC0AIABzAHUAYgBzAGUAdAAgAG8AZgAgAEYAbwBuAHQARgBvAHIAZwBlACAAMgAuADAAIAA6ACAASgB1AHIAYQAgAEwAaQBnAGgAdAAgADoAIAAyADMALQAxAC0AMgAwADAAOQBiAGEAZQBjADIAYQA5ADIAYgBmAGYAZQA1ADAAMwAyACAALQAgAHMAdQBiAHMAZQB0ACAAbwBmACAASgB1AHIAYQAgAEwAaQBnAGgAdABWAGUAcgBzAGkAbwBuACAAMgAgAGIAYQBlAGMAMgBhADkAMgBiAGYAZgBlADUAMAAzADIAIAAtACAAcwB1AGIAcwBlAHQAIABvAGYAIABKAHUAcgBhAEwAaQBnAGgAdABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAAAAAAgAAAAAAAP+BADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQACAQIAEQt6ZXJva2F5YWhsaQ==')}";l.getElementsByTagName("head")[0].appendChild(aj);ae.setAttribute("style","font:99px _,serif;position:absolute;visibility:hidden");if(!ag){ag=ad.appendChild(l.createElement(F));ah=true}ae.innerHTML="........";ae.id="fonttest";ag.appendChild(ae);ak=ae.offsetWidth;ae.style.font="99px testfont,_,serif";i=ak!==ae.offsetWidth;var f=function(){i=J[F]=ak!==ae.offsetWidth;ad.className=ad.className.replace(/(no-)?font.*?\b/,"")+(i?" ":" no-")+F;ai&&(m=true)&&ai(i);ah&&setTimeout(function(){ag.parentNode.removeChild(ag)},50)};setTimeout(f,M)}J._fontfaceready=function(al){(m||i)?al(i):(ai=al)};return function(){return i||ak!==ae.offsetWidth}})();s[e]=function(){var i=l.createElement(e),f=!!i[G];if(f){f=new Boolean(f);f.ogg=i[G]('video/ogg; codecs="theora, vorbis"');f.h264=i[G]('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')}return f};s[A]=function(){var i=l.createElement(A),f=!!i[G];if(f){f=new Boolean(f);f.ogg=i[G]('audio/ogg; codecs="vorbis"');f.mp3=i[G]("audio/mpeg3;");f.wav=i[G]('audio/wav; codecs="1"');f.m4a=i[G]("audio/x-m4a;")}return f};s[H]=function(){return"localStorage" in P};s[j]=function(){return"sessionStorage" in P};s[C]=function(){return !!P.Worker};s[O]=function(){return !!P.applicationCache};for(L in s){if(s.hasOwnProperty(L)){n.push((!(J[L]=s[L]())&&ab?"no-":"")+L)}}J.addTest=function(f,i){if(this.hasOwnProperty(f)){}i=!!(i());ad.className+=" "+(!i&&ab?"no-":"")+f;J[f]=i};J[d]=(function(m){for(var f in m){r[m[f]]=!!(m[f] in Z)}return r})("autocomplete autofocus list placeholder max min multiple pattern required step".split(" "));J[u]=(function(m){for(var f in m){Z.setAttribute("type",m[f]);z[m[f]]=!!(Z.type!=="text")}return z})("search tel url email datetime date month week time datetime-local number range color".split(" "));y("");U=Z=null;if(T&&!(!/*@cc_on!@*/0)){q="abbr article aside audio canvas datalist details eventsource figure footer header hgroup mark menu meter nav output progress section time video".split(" ");W=q.length+1;while(--W){S=l.createElement(q[W])}S=null}J._enableHTML5=T;J._enableNoClasses=ab;J._version=_;(function(f,i){f[i]=f[i].replace(/\bno-js\b/,"js")})(ad,"className");ad.className+=" "+n.join(" ");return J})(this,this.document);

DP = {
	hasGeoloc: false,
	hasAskedGeo: false,
	initialize: function() {
		window.onload = function() {
			DP.start();
		}
	}(),
	start: function() {
		var tmp_pos, a = document.getElementsByTagName('a'), len = a.length, cnt;
		if(navigator.userAgent.indexOf('MSIE') !== -1) {
		}
		if(document.getElementById('cta_form')) {
			document.getElementById('cta_form').onsubmit = DP.sendShortForm;
//			This has problems in FF 3.6.3.
//			START GEOLOCATION
			if(document.getElementById('cta_form').elements['problem']) {
				document.getElementById('cta_form').elements['problem'].onfocus = function() {
					if(DP.hasAskedGeo === false) {
						if(DP.hasGeoloc === false && document.cookie.indexOf('geolocation') === -1 && navigator.geolocation) {
							if(confirm('DataPerk would like to gather your location to help us better plan how to help you.  Would you like to share your location with us?')) {
								navigator.geolocation.getCurrentPosition(
									function(position){
										if(position && position.coords) {
											DP.hasGeoloc = position;
											if(document.getElementById('cta_form') && document.getElementById('cta_form').elements['geolocation']) {
												document.getElementById('cta_form').elements['geolocation'].value = position.coords.latitude + ',' + position.coords.longitude;
												tmp_pos = document.createElement('script');
												tmp_pos.src='/jsonp.php?jsonp=DP.setGeoLocation&geoloc=' + escape(document.getElementById('cta_form').elements['geolocation'].value) + '&url=' + escape('http://maps.google.com/maps/geo?q=' + escape(document.getElementById('cta_form').elements['geolocation'].value) + '&output=json');
												document.body.appendChild(tmp_pos);
											}
										} else {
											document.cookie = 'geolocation=false;';
										}
									}
								);
							} else {
								document.cookie = 'geolocation=false;';
							}
							DP.hasAskedGeo = true;
						}
					}
					if(document.cookie.indexOf('geolocation') !== -1 && document.getElementById('cta_form') && document.getElementById('cta_form').elements['geolocation']) {
						tmp_pos = eval('(' + document.cookie.split('geolocation=')[1].split(';')[0] + ')');
		
						if(tmp_pos !== false) {
							document.getElementById('cta_form').elements['geolocation'].value = tmp_pos.lat + ',' + tmp_pos.long;
							tmp_pos = document.createElement('script');
							tmp_pos.src='/dpbeta/jsonp.php?jsonp=DP.setGeoLocation&url=' + escape('http://maps.google.com/maps/geo?q=' + escape(document.getElementById('cta_form').elements['geolocation'].value) + '&output=json');
							document.body.appendChild(tmp_pos);
						}
					}
				}
			}
//			END GEOLOCATION
		}
		for(cnt = 0; cnt < len; cnt++) {
			if(a[cnt].className.indexOf('form-link') !== -1) {
				a[cnt].onclick = function(e) {
						var e = e ? e : window.event;
						if(document.getElementById('cta_form')) {
							e.returnValue = false;
							try {
								e.preventDefault();
							} catch(err){}
							document.getElementById('cta_form').elements[0].focus();
						}
					};
			}
			if(navigator.userAgent.indexOf('MSIE 6') === -1 && 
				a[cnt].getAttribute('rel') && 
				a[cnt].getAttribute('rel').toLowerCase() === 'lightbox') {
					a[cnt].onclick = DP.showLightBox;
			}
		}
	},
	showLightBox: function(e) {
		e = e || event;
		var t = e.target || e.srcElement,
			lb = document.createElement('div'),
			lbc = document.createElement('div'),
			im = document.createElement('img'),
			cl = document.createElement('div'),
			imgOnload = function(el) {
				if(this.parentNode) {
					el = this;
				}
				var pnw = el.parentNode.offsetWidth,
					pnh = el.parentNode.offsetHeight,
					myw = el.offsetWidth,
					myh = el.offsetHeight;
				im.loaded = true;
				if(el.offsetWidth > pnw) {
					el.style.width = (pnw-40)+"px";
					el.style.height = (myh*el.offsetWidth/myw)+"px";
				}
				myw = el.offsetWidth;
				myh = el.offsetHeight;
				if(el.offsetHeight > pnh) {
					el.style.height = (pnh-40)+"px";
					el.style.width = (myw*el.offsetHeight/myh)+"px";
				}
				el.style.marginLeft = '-' + Math.round(el.offsetWidth/2) + 'px';
				el.style.marginTop = '-' + Math.round(el.offsetHeight/2) + 'px';
				document.getElementById('lightbox-close').style.marginTop = '-' + Math.round(el.offsetHeight/2+12) + 'px';
				document.getElementById('lightbox-close').style.marginLeft = Math.round(el.offsetWidth/2-12) + 'px';
				DP.fadeIn(document.getElementById('lightbox-close'));
				DP.fadeIn(el);
			},
			imgOnloadWait = function(el) {
				var c = 0, doWait = function() {
					if(c < 3) {
						c++;
						setTimeout(doWait, 1000);
					} else {
						if(!!el.loaded === false) {
							document.title = 'Force Load: ' + el.loaded;
							imgOnload(el);
						}
					}
				};
				doWait();
			};
		e.returnValue = false;
		e.cancelBubble = true;
		if(e.preventDefault) {
			e.preventDefault();
			e.stopPropagation();
		}
		if(t.nodeName.toLowerCase() === 'img') {
			while(t.nodeName.toLowerCase() !== 'a' && t.parentNode) {
				t = t.parentNode;
			}
		}
		if(document.getElementById('lightbox')) {
			document.getElementById('lightbox').parentNode.removeChild(document.getElementById('lightbox'));
		}
		cl.id = 'lightbox-close';
		cl.innerHTML = '&times;';
		lb.id = 'lightbox';
		lbc.id = 'lightbox-overlay';
		lb.appendChild(lbc);
		im.src = t.href;
		im.onload = imgOnload;
		lb.appendChild(im);
		lb.onclick = function(){DP.fadeOut(document.getElementById('lightbox'), true);};
		lb.style.opacity = 0;
		lb.appendChild(cl);
		document.body.appendChild(lb);
		DP.fadeIn(lb);
		imgOnloadWait(im);
	},
	setGeoLocation: function(json) {
		try {
			DP.hasGeoloc = json.Placemark[0].address;
			document.getElementById('cta_form').elements['location'].value = json.Placemark[0].address;
		} catch(err){}
	},
	sendShortForm: function(e) {
		var scp = document.createElement('script'),
			ol = document.createElement('div'),
			f = document.getElementById('cta_form'),
			prob = f.elements['problem'],
			info = f.elements['contact_info'],
			len = f.elements.length,
			i = 0, ret = '?date=' + new Date() + '&ajax=true';
		if(!e){e=window.event;}
		if(!info.value.match(/\w+.*?\d{3}.*?\d{4}/) && !info.value.match(/.*?@.*?\..*/)) {
			alert('You must enter a name and phone number, or an e-mail address so that we can get in touch with you.');
			info.focus();
			if(e.preventDefault) {
				e.preventDefault();
			}
			e.returnValue = false;
			return false;
		}
		if(prob.value == '') {
			if(!info.value.match(/\w+.*?\d{3}.*?\d{4}/)) {
				alert('You must enter your name and phone number if you don\'t want to specify your problem.');
				return false;
			} else { 
				if(!confirm('You didn\'t mention how we can help you.  If you\'d rather us go ahead and call, click "OK".  If you\'d like to provide any detail about your problem, click "Cancel" to fill add information and we may be able to assist you quicker.')) {
					prob.focus();
					if(e.preventDefault) {
						e.preventDefault();
					}
					e.returnValue = false;
					return false;
				} else {
					prob.value = 'The user opted to not specify a problem.  Please contact him or her for more detail.';
				}
			}
		}
		if(e.preventDefault) {
			e.preventDefault();
		}
		e.returnValue = false;
		for(i=0; i < len; i++) {
			if(f.elements[i].name != '') {
				ret += '&' + escape(f.elements[i].name) + '=' + escape(f.elements[i].value);
			}
		}
		scp.src = f.action + ret;
		document.body.appendChild(scp);
		ol.id="form_overlay";
		//f.parentNode.appendChild(ol);
		//DP.slideIn(ol);
		if(document.getElementById('errors')) {
			DP.fadeOut(document.getElementById('errors'), true);
		}
		DP.fadeOut(f);
	},
	getShortForm: function(ret) {
		var ol = document.getElementById('form_overlay'),
			f = document.getElementById('cta_form');
		if(ret == 1) {
			f.innerHTML = '<h2>Thanks!</h2><p>Thanks for getting in touch with DataPerk.  We\'ll get back to as soon as we can.</p><p>If you\'re in a hurry, call us now at (205) 879-4600.</p>';
		}
		//DP.slideOff(ol, true);
		//DP.fadeOut(ol, false, 80);
		DP.fadeIn(f);
		if(ret !== 1) {
			alert('The following errors were found: ' + ret + '\n\nPlease fix these problems and try again.');
		}
	},
	slideOff: function(el, remove) {
		var undef, endLeft = el.parentNode.offsetWidth,
			startLeft = el.offsetLeft,
			doSlideOff = function() {
				if(!el){return false;}
				if(el.offsetLeft < endLeft) {
					el.style.marginLeft = (el.offsetLeft+20) + 'px';
					setTimeout(doSlideOff, 1);
				} else {
					if(undef !== remove && remove !== false) {
						el.parentNode.removeChild(el);
					} else {
						el.style.opacity = 0;
						el.style.filter = 'progid:DXImageTransform.Microsoft.alpha(opacity=0)';
					}
				}
			};
		doSlideOff();
	},
	slideIn: function(el) {
		var doSlideIn = function() {
				if(!el){return false;}
				if(el.offsetLeft-20 > 0) {
					el.style.marginLeft = (el.offsetLeft-20) + 'px';
					setTimeout(doSlideIn, 1);
				} else {
					el.style.marginLeft = '0px';
				}
			};
		el.style.marginLeft = el.parentNode.offsetWidth + 'px';
		doSlideIn();
	},
	fadeIn: function(el) {
		var cnt = 0,
			doFadeIn = function() {
				if(!el){return false;}
				if(cnt+10 < 100) {
					el.style.opacity = cnt/100;
					el.style.filter = 'progid:DXImageTransform.Microsoft.alpha(opacity=' + cnt + ')';
					cnt += 10;
					setTimeout(doFadeIn, 10);
				} else {
					el.style.opacity = 1;
					el.style.filter = 'progid:DXImageTransform.Microsoft.alpha(opacity=100)';
				}
			};
		doFadeIn();
	},
	fadeOut: function(el, remove, init) {
		var undef, cnt = init === undef ? 100 : init,
			doFadeOut = function() {
				if(!el){return false;}
				if(cnt-10 > 0) {
					el.style.opacity = cnt/100;
					el.style.filter = 'progid:DXImageTransform.Microsoft.alpha(opacity=' + cnt + ')';
					cnt -= 10;
					setTimeout(doFadeOut, 10);
				} else {
					if(undef !== remove && remove !== false) {
						el.parentNode.removeChild(el);
					} else {
						el.style.opacity = 0;
						el.style.filter = 'progid:DXImageTransform.Microsoft.alpha(opacity=0)';
					}
				}
			};
		doFadeOut();
	},
	ieMenuFix: function() {
		document.getElementById('nav').style.zIndex = '20';
	}
};
