/***********************************************
*	Global Javascript File
************************************************/
	function addLoadEvent(func) {
	  var oldonload = window.onload;
	  if (typeof window.onload != 'function') {
	    window.onload = func;
	  } else {
	    window.onload = function() {
	      if (oldonload) {
	        oldonload();
	      }
	      func();
	    }
	  }
	}
	
	function addResizeEvent(func) {
	  var oldonresize = window.onresize;
	  if (typeof window.onresize != 'function') {
	    window.onresize = func;
	  } else {
	    window.onresize = function() {
	      if (oldonresize) {
	        oldonresize();
	      }
	      func();
	    }
	  }
	}
	
	function addClickEvent(e,func) {
	  if (typeof e.onclick !== 'function') { e.onclick = func; } 
	    else { e.oldclick = e.onclick; e.onclick = function() { this.oldclick(); func();}}}
	

	
	function getHeight() {
		var myWidth = 0, myHeight = 0;
		  if( typeof( window.innerWidth ) == 'number' ) {
		    //Non-IE
		    myWidth = window.innerWidth;
		    myHeight = window.innerHeight;
		  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		    //IE 6+ in 'standards compliant mode'
		    myWidth = document.documentElement.clientWidth;
		    myHeight = document.documentElement.clientHeight;
		  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		    //IE 4 compatible
		    myWidth = document.body.clientWidth;
		    myHeight = document.body.clientHeight;
		  }
		return myHeight;
	}
	
	function getWidth() {
		var myWidth = 0, myHeight = 0;
		  if( typeof( window.innerWidth ) == 'number' ) {
		    //Non-IE
		    myWidth = window.innerWidth;
		    myHeight = window.innerHeight;
		  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		    //IE 6+ in 'standards compliant mode'
		    myWidth = document.documentElement.clientWidth;
		    myHeight = document.documentElement.clientHeight;
		  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		    //IE 4 compatible
		    myWidth = document.body.clientWidth;
		    myHeight = document.body.clientHeight;
		  }
		return myWidth;
	}
	
	var win=null;
	function NewWindow(mypage,myname,w,h,scroll,pos){
	if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
	if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
	else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
	settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
	win=window.open(mypage,myname,settings);}
	
	/*****************************************************
	*	Query String Modifiers
	******************************************************/
	var qs = location.search.substring(1);
	var nv = qs.split('&');
	var url = new Object();
	for(i = 0; i < nv.length; i++)
	{
	  eq = nv[i].indexOf('=');
	  url[nv[i].substring(0,eq).toLowerCase()] = unescape(nv[i].substring(eq + 1));
	}
	
	function modify_url_query_string(key, value,qs) {
		var url = new String(qs);
		var oldurl = new String(url);
		try {
			var re = RegExp("(\&" + key + "|\\?" + key + ")\=([^\&]*)", "i");
			var ar = re.exec(url);
			var before = escape(ar[0]);
			var after = escape(ar[1] + "=" + value + "&");
			var re = RegExp(before, "i");
			url = unescape(escape(url).replace(re, after));
		} catch (e) { }
		url = url.toLowerCase() == oldurl.toLowerCase() ? oldurl  + "&" + key + "=" + value + "&" : url;
		return url.replace(/([\&]+)/, "&");
	}
	
	function submit_location_form() {
		var zip = document.getElementById('narrow_zip').value;
		var url = modify_url_query_string('zip', zip, document.location.href );
		return modify_url_query_string('radius', document.getElementById('narrow_radius').value, url);
		
	}
	
	/*****************************************************
	*	Slideshow Functions to work with scriptaculous
	******************************************************/
	function start_slideshow(start_frame, end_frame, delay) {
		setTimeout(switch_slides(start_frame,start_frame,end_frame, delay), delay);
    }

	function switch_slides(frame, start_frame, end_frame, delay) {
		return (function() {
		Effect.Fade('slideshow' + frame);
		if (frame == end_frame) { frame = start_frame; } else { frame = frame + 1; }
			setTimeout("Effect.Appear('slideshow" + frame + "');", 850);
			setTimeout(switch_slides(frame, start_frame, end_frame, delay), delay + 850);
		})
	}
	
	function toggle_nav(id) {
		var e = document.getElementById(id);
		
		if(e.style.display == 'none') {
			e.style.display = "";
			e.style.visibility = "visible";
		} else {
			e.style.display = "none";
			e.style.visibility = "hidden";		
		}
		
		return (false);
	}
	
	function checkApplication(id) {
		
		if(id == null) {
			id = "";
		}

		var form = document.getElementById('apply_form' + id);
		var firstname = document.getElementById('app_firstname' + id).value;
		var lastname = document.getElementById('app_lastname' + id).value;
		var email = document.getElementById('app_email' + id).value;
		var telephone = document.getElementById('app_telephone' + id).value;
		var address = document.getElementById('app_address' + id).value;
		var city = document.getElementById('app_city' + id).value;
		var state = document.getElementById('app_state' + id).value;
		var zipcode = document.getElementById('app_zipcode' + id).value;
		var website = document.getElementById('app_website' + id).value;
		var coverletter = document.getElementById('app_coverletter' + id).value;
		
		var error = 0;
		
		if(firstname.length==0) {
			return alert("Please enter a first name.");
		}
		
		if(lastname.length == 0) {
			return alert("Please enter a last name.");
		}
		
		if(email.length == 0) {
			return alert("Please enter an email address.");
		}
		
		if(address.length == 0) {
			return alert("Please enter your address.");
		}
		
		if(city.length == 0) {
			return alert("Please enter your city.");
		}
		
		if(state.length == 0) {
			return alert("Please enter your state.");
		}
		
		if(zipcode.length == 0) {
			return alert("Please enter your zip code.");
		}
		
		if(coverletter.length == 0) {
			return alert("Please enter your cover letter. Applications without a cover letter will not be considered.");
		}
		
		form.submit();
	}
	
	/*****************************************************
	*	Load News Articles
	******************************************************/
	function loadDate(id,value) {
		var date = document.getElementById('dd_date_hidden').value;
		var type = document.getElementById('dd_type_hidden').value;
		select(id,value);
		loadNews(value,type);
	}
	
	function loadType(id,value) {
		var date = document.getElementById('dd_date_hidden').value;
		var type = document.getElementById('dd_type_hidden').value;
		select(id,value);
		loadNews(date,value);
	}
	
	var xmlHTTPNews

	function loadNews(date,type){

		var news = document.getElementById("news_items");
		var loading = document.getElementById("loading");
		news.style.display = 'none';
		loading.style.display = 'block';

		xmlHTTPNews = GetXmlHttpObjectM()

		if (xmlHTTPNews == null){
			alert ("Your browser does not support this website.")
			return
		} 

		var url="news.php?cmd=loadnews"
		url=url+"&date="+ escape(date);
		url=url+"&type="+ escape(type);
	
		xmlHTTPNews.onreadystatechange=stateChangedNews
		xmlHTTPNews.open("GET",url,true)
		xmlHTTPNews.send(null)

	} 

	function stateChangedNews() { 
		if (xmlHTTPNews.readyState==4 || xmlHTTPNews.readyState=="complete"){ 
			var news = document.getElementById("news_items");
			var loading = document.getElementById("loading");
			loading.style.display = 'none';
			news.innerHTML= xmlHTTPNews.responseText;
			Effect.Appear(news);
		} 
	}
	
	/*****************************************************
	*	Load Case Studies
	******************************************************/
	function loadCase(id,value) {
		select(id,value);
		document.location.href = '?cmd=view&text=' + escape(value);
	}
	
	function loadMobileCase(id,value) {
		select(id,value);
		document.location.href = '?cmd=casestudies&text=' + escape(value);
	}
	
	function loadClient(id,value) {
		var client = document.getElementById('dd_client_hidden').value;
		var industry = document.getElementById('dd_industry_hidden').value;
		var service = document.getElementById('dd_service_hidden').value;
		
		select(id,value);
		loadCases(value,industry,service);
	}

	function loadIndustry(id,value) {
		var client = document.getElementById('dd_client_hidden').value;
		var industry = document.getElementById('dd_industry_hidden').value;
		var service = document.getElementById('dd_service_hidden').value;
		
		select(id,value);
		loadCases(client,value,service);
	}
	
	function loadService(id,value) {
		var client = document.getElementById('dd_client_hidden').value;
		var industry = document.getElementById('dd_industry_hidden').value;
		var service = document.getElementById('dd_service_hidden').value;
		
		select(id,value);
		loadCases(client,industry,value);
	}
	
	var xmlHTTPCases

	function loadCases(client,industry,service){
		
		var cases = document.getElementById("case_studies");
		var loading = document.getElementById("loading");
		cases.style.display = 'none';
		loading.style.display = 'block';
		
		xmlHTTPCases = GetXmlHttpObjectM()

		if (xmlHTTPCases == null){
			alert ("Your browser does not support this website.")
			return
		} 

		var url="casestudies.php?cmd=loadcases"
		url=url+"&client="+ escape(client);
		url=url+"&industry="+ escape(industry);
		url=url+"&service="+ escape(service);

		xmlHTTPCases.onreadystatechange=stateChangedCases
		xmlHTTPCases.open("GET",url,true)
		xmlHTTPCases.send(null)

	} 

	function stateChangedCases() { 
		if (xmlHTTPCases.readyState==4 || xmlHTTPCases.readyState=="complete"){ 
			var cases = document.getElementById("case_studies");
			var loading = document.getElementById("loading");
			loading.style.display = 'none';
			cases.innerHTML= xmlHTTPCases.responseText;
			Effect.Appear(cases);
		} 
	}

	/*****************************************************
	*	Submit Inquiry Function AJAX
	******************************************************/
	var xmlHTTPInquiry

	function submitInquiry(name,email,comments){

	if (name.length==0){ 
		return alert('Please enter your name.');
	}

	if (email.length==0){ 
		return alert('Please enter your email address.');
	}
	
	if (comments.length==0){ 
		return alert('Please enter some comments.');
	}

	xmlHTTPInquiry = GetXmlHttpObjectM()

	if (xmlHTTPInquiry == null){
		alert ("Your browser does not support this website.")
		return
	} 

	var url="index.php?cmd=inquiry_process"
	url=url+"&name="+ escape(name);
	url=url+"&email="+ escape(email);
	url=url+"&comments="+ escape(comments);

	xmlHTTPInquiry.onreadystatechange=stateChangedInquiry
	xmlHTTPInquiry.open("GET",url,true)
	xmlHTTPInquiry.send(null)

	} 

	function stateChangedInquiry() { 
		if (xmlHTTPInquiry.readyState==4 || xmlHTTPInquiry.readyState=="complete"){ 
			document.getElementById("services_inquiry").innerHTML= xmlHTTPInquiry.responseText
		} 
	} 
	
	/*****************************************************
	*	HTTP Request Function
	******************************************************/
	function GetXmlHttpObjectM() { 
		var objXMLHttp=null

		if (window.XMLHttpRequest) {
			objXMLHttp=new XMLHttpRequest()
		}else if (window.ActiveXObject) {
			objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
		}

		return objXMLHttp
	}
	
	/***********************************************
	* Google Maps API Javascript + Other
	************************************************/
	function toggleMap() {
		var attrb = document.getElementById("map");
		if(attrb.style.display == 'block') {
			attrb.style.display = 'none';
			document.getElementById('hideshow').innerHTML = '+ SHOW MAP';
		} else {
			attrb.style.display = 'block';
			document.getElementById('hideshow').innerHTML = '- HIDE MAP';
		}
	}
	
	function turnOffMap() {
		var attrb = document.getElementById("map");
		attrb.style.display = 'none';
		document.getElementById('hideshow').style.display = 'none';	
	}
	
	// Creates a marker at the given point with the given number label
	function createMarker(point, html) {
		var marker = new GMarker(point);
		GEvent.addListener(marker, "click", function() {
		  marker.openInfoWindowHtml(unescape(html));
		});
		return marker;
	}
	
	function stripslashes(str) {
		str=str.replace(/\\'/g,'\'');
		str=str.replace(/\\"/g,'"');
		str=str.replace(/\\\\/g,'\\');
		str=str.replace(/\\0/g,'\0');
		return str;
	}

	// push and shift for IE5
	function Array_push() {
		var A_p = 0
		for (A_p = 0; A_p < arguments.length; A_p++) {
			this[this.length] = arguments[A_p]
		}
		return this.length
	}

	if (typeof Array.prototype.push == "undefined") {
		Array.prototype.push = Array_push
	}

	function Array_shift() {
		var A_s = 0
		var response = this[0]
		for (A_s = 0; A_s < this.length-1; A_s++) {
			this[A_s] = this[A_s + 1]
		}
		this.length--
		return response
	}

	if (typeof Array.prototype.shift == "undefined") {
		Array.prototype.shift = Array_shift
	}
	
