// Functions for nr.com
$aboutData = Array;

function createRequestObject(){
	var request_o; 
	var browser = navigator.appName; 
	if(browser == "Microsoft Internet Explorer"){
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		request_o = new XMLHttpRequest();
	}
	return request_o; 
}
var http = createRequestObject(); 

function showHide (divId) { 
   whichDiv = document.getElementById(divId); 
   if (whichDiv.className=="divHidden") { 
      whichDiv.className="divShown";
   } 
   else { 
      whichDiv.className="divHidden";
   }  
} 

$previousMenu = "none";
$previousShow = "none";
$previousSub = "none";

function showHideMenu ($target, $source) { 
	//alert("source is: "+$source);
	if($previousMenu != "none") {
		//alert("current menu is not = to none");
		document.getElementById($previousMenu).className = "divHiddenR";
		document.getElementById($previousShow).className = "divHidden";
		//hide($currentMenu);
	}
	//alert("currentMenu is: "+$currentMenu);
	$previousMenu = $source;
	$previousShow = $target;
	document.getElementById($source).className = "selMain";
	
	//document.getElementById($source).className = "divShown selMain";
   whichDiv = document.getElementById($target); 
   if (whichDiv.className=="divHidden") { 
      whichDiv.className="divShown";
   } 
  else { 
      whichDiv.className="divHidden";
   }  
} 

function setSubMenu($what) {
	if($previousSub != "none") {
		document.getElementById($previousSub).className = "offSub";
	}
	$previousSub = $what;
	document.getElementById($what).className = "selSub";
	
	
}

function hide (divId) { 
   whichDiv = document.getElementById(divId);  
      whichDiv.className="divHidden";
} 

function show (divId) { 
   whichDiv = document.getElementById(divId);  
      whichDiv.className="divShown";
} 

$allow = true;

function handle($target, $cline){
		$cline += "&ms="+new Date().getTime();
		if($allow) {
			$allow = false;
			document.getElementById($target).innerHTML = 'working....';
			http.open('get', '../handle/?a='+$cline);
			http.onreadystatechange = function () {
				if(http.readyState == 4){
					var response = http.responseText;
					document.getElementById($target).innerHTML = response;
					if(response == "Message has been sent, thank you.") {
						//document.getElementById($target).innerHTML = 
						setTimeout('clearForm()', 1500);
						setTimeout("hide('contact')", 2000);
					}
					
					$allow = true;
					
				}
			}
			http.send(null);
		}
		else {
			document.getElementById($target).innerHTML = "an error occured, please refresh the page and try again";;
		}
}
		
function about($what) {
	$tar = "aboutText";
	document.getElementById($tar).innerHTML = $aboutData[$what-1];
	
}

function service($what) {
	$tar = "serviceText";
	document.getElementById($tar).innerHTML = $serviceData[$what-1];
	
}



$fields = Array("e", "n", "m", "o");
function clearForm() {
	for (i=0; i<$fields.length; i++) { $f = $fields[i]+"e"; document.getElementById($f).innerHTML = ""; }
	for (i=0; i<$fields.length; i++) { $w = $fields[i]; $f = document.cf[$w]; $f.value = ""; }
}
function checkForm() {
	$rem = document.getElementById('oe').innerHTML;
	$count = 0;
	for (i=0; i<$fields.length; i++) { $f = $fields[i]+"e"; document.getElementById($f).innerHTML = ""; }
	if ($rem.indexOf('select')) { document.getElementById('oe').innerHTML = $rem; }
	$name = document.cf.n.value;
	$message = document.cf.m.value;
	$office = document.cf.o.value;
		
		if (checkEmail()) { $count++; }
		if ($name.length<2) { document.getElementById('ne').innerHTML = "<font color=red>&nbsp;Please enter your name</font>"; }
		else { $count++; }
		if($message.length < 5) { document.getElementById('me').innerHTML = "<font color=red>&nbsp;Please enter your message</red>"; }
		else { $count++; }
		if($office == "") {	document.getElementById('oe').innerHTML = "<font color=red>&nbsp;Please select an office to contact</red>"; }
		else { $count++; }
		if ($count == 4) { sendForm();	}
		//else { return false; }
		
}

function checkEmail() {
	var email = document.cf.e.value;
	var eAtSymbolAt = email.indexOf('@');
	var eLastDotAt = email.lastIndexOf('.');
	var eSpaceAt = email.indexOf(' ');
	var eLength = email.length;
	if (eAtSymbolAt < 1 || eLastDotAt < eAtSymbolAt || eLength - eLastDotAt <= 2 || eSpaceAt != -1) {
		document.getElementById('ee').innerHTML = "<font color=red>&nbsp;Please amend email address</font>";
		document.cf.e.focus();
		return false;
	}else{return true;}
}

function sendForm() {
	$name = document.cf.n;
	$message = document.cf.m;
	$office = document.cf.o;
	$email = document.cf.e;
	
	$cline = "sendMessage&n="+$name.value+"&m="+$message.value+"&o="+$office.value+"&e="+$email.value;
	handle('emailErrors', $cline);
	
}

$ = function(target) {
	if(document.getElementById) {
		return document.getElementById(target);	
	}
	else { alert("Browser is not standards compliant, please consider upgrading"); }
}

var Working = '<img src="_gfx/working.gif" alt="Working..." />';

var Elem = {
	shown : "elemShown"
	,
	hidden : "elemHidden"
	,
	show : function(target) {
		$(target).className = this.shown;
	}
	,
	hide : function(target) {
		$(target).className = this.hidden;	
	}
	,
	showHide : function(target) {
		var current = $$(target).className;
		if(current == this.hidden) {
			this.show(target);	
		}
		else {
			this.hide(target);
		}
	}
}

var EditorRB = {
	get : function(target) {
		return tinyMCE.editors[target].getContent();	
	}
	,
	set : function(target, content) {
		tinyMCE.editors[target].setContent(content);	
	}	
}

var FormRB = {
	length : "1"
	,
	check : function(target, fields) {
		var check = Array();
		var f = document.forms[target];
		for(i=0; i<fields.length; i++) {
			var field = fields[i];
			var elem = f.elements[field];
			var value = elem.value;
			var defaultValue = elem.defaultValue;
			
		if(field.toLowerCase().indexOf("email") != -1) {
				if(!this.email(target, field)) {
					check.push(field);	
					continue;
				}
			}
		if( (value.length < this.length)  ) {
				check.push(field);	
			}
		
		}
		
		if(check.length == 0) {
			return true;	
		}
		else {
			var out = "Please amend the following before submitting:\n";
			for(i=0; i<check.length; i++) {
				out +=  check[i]+" \n";
			}
			alert(out);
			f.elements[check[0]].focus();
			return false;	
		}
	}	
	,
	email : function(target, field) {
		var email = document.forms[target].elements[field].value;
		var atSym = email.indexOf('@');
		var dot = email.lastIndexOf('.');
		var space = email.indexOf(' ');
		var len = email.length;
		if (atSym < 1 || dot < atSym || len - dot <= 2 || space != -1) {
			return false;
		}
		else { 
			return true; 
		}
	}
	,
	values : function(target) {
		var f = document.forms[target];
		var out = "";
		for(i=0; i<f.elements.length; i++) {
			var elem = f.elements[i].name;
			var value = f.elements[i].value;
			out += "&"+elem+"="+value;
		}
		return out;	
	}
	,
	toggle : function(id) {
		var elem = $(id);
		if(elem.checked) { elem.checked = false; }
		else { elem.checked = true; }
	}
}

function AjaxRB() {
	
	this.setup = function() {
		var requestObj;
		try {
			requestObj = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e) {
			requestObj = new XMLHttpRequest();
		}
		return requestObj;
	}
	
	this.get = function(url, func) {
		var http = this.setup();
		http.open("GET", url, true);
		http.onreadystatechange = function() { func(http); }
		http.send(null);
	}
	
	this.post = function(url, func) {
		var http = this.setup();
		var parts = url.split("?");
		var script = parts[0]; 	url = parts[1];
		http.open("POST", script, true);
		http.onreadystatechange = function() {func(http); }
		http.setRequestHeader("Content-Length", script.length + url.length + 100);
		http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http.setRequestHeader("ENCTYPE", "plain/text");
		http.send(url);
	}
}

function Redirect(url) {
	location.href = url;	
}

function ConfirmRB(url, message) {
	if(confirm(message)) {
		Redirect(url);	
	}
}

var DataRB = {
	encode : function(str) {
		var result = "";
		for (i = 0; i < str.length; i++) {
			if (str.charAt(i) == " ") {
				result += "+";
			}
			else {
				result += str.charAt(i);
			}
		}
		return escape(result);
	}
	,
	decode : function(str) {
		var result = str.replace(/\+/g, " ");
		return unescape(result);
	}
}


function ReplaceRB(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

function QueryStringRB (theArgName) {
	sArgs = location.search.slice(1).split('&');
		r = '';
		for (var i = 0; i < sArgs.length; i++) {
			if (sArgs[i].slice(0,sArgs[i].indexOf('=')) == theArgName) {
					r = sArgs[i].slice(sArgs[i].indexOf('=')+1);
					break;
			}
		}
		return r;
	return (r.length > 0 ? unescape(r).split(',') : '')
}

function GMapLoad() {
	
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(37.4419, -122.1419), 13);
      }
    }
	
function CheckBrowser() {
	
var as = document.getElementsByTagName("a"); 
for (var i = 0; i < as.length; i++) { 
    var href = as[i].href; 
	
    if ( href.indexOf("#") != -1) { 
        as[i].href = "javascript:;";
    }
}
	
}


var TableRB = {
	odd : "odd",
	even : "even",
	applyStyles : function(target) {
		if(document.getElementById(target)) {
			var table = $(target);
			table.style.borderCollapse = "collapse";
			var classes = table.className;
			table.className = "list "+classes
			var odd = true;
			if(table.tBodies[0]) {
				for(t=0; t<table.tBodies[0].rows.length; t++) {
					var tr = table.tBodies[0].rows[t];
					tr.id = t+"row";
					var cls = "";
					if(odd) { cls = this.odd; odd = false; }
					else { cls = this.even; odd = true; }
					tr.className = cls;
					tr.temp = cls;
					tr.onmouseover = ( function() { this.className = "highlight"; } )
					tr.onmouseout = ( function() { this.className = this.temp; } )
					
				}
			}
		}
	}
}


GenerateKey = function() {
	chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
	pass = "";
	for(x=0;x<100;x++)
	{
	i = Math.floor(Math.random() * 62);
	pass += chars.charAt(i);
	}
	return pass;
}







	

