function Trim(STRING){
	STRING = LTrim(STRING);
	return RTrim(STRING);
}

function RTrim(STRING){
	while(STRING.charAt((STRING.length -1))==" "){
		STRING = STRING.substring(0,STRING.length-1);
	}
	return STRING;
}

function LTrim(STRING){
	while(STRING.charAt(0)==" "){
		STRING = STRING.replace(STRING.charAt(0),"");
	}
	return STRING;
}

function isCurrency (sString) {
	return RegExp(/^\$?\d+(\.\d{2})?$/).test(String(sString).replace(/^\s+|\s+$/g, ""));
}

function getObject(elementId) { if (document.getElementById) { return document.getElementById(elementId); } else if (document.all) { return document.all[elementId]; } else if (document.layers) { return document.layers[elementId]; } }
function checkstr(rex, str) { if (rex == null || rex == "" || str == null || str == "") return false; for (var i=0; i < str.length; i++ )  { if( rex.indexOf(str.substring(i,i+1)) < 0) return false; } return true; }
function checknumeric(num) { if (isNaN(num)) return false; return true; }
function checkchar(str) { if (checkstr('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', str)) return true; return false; }
function checkemail(email) { if (email.length == 0) return false; if (email.indexOf("@") < 0) return false; if (email.indexOf(".") < 0) return false; if (!checkstr('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_-.@', email)) return false; if (email.search(/(\S+)@(\S+)\.(\S+)/) == -1) return false; return true; }
function GetXMLHttpRequest() { var xmlreq = false; if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { try { xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { } } } return xmlreq; }
function urlEncode(str){ str=escape(str); str=str.replace(new RegExp('\\+','g'),'%2B'); return str.replace(new RegExp('%20','g'),'+'); }
function urlDecode(str){ str=str.replace(new RegExp('\\+','g'),' '); return unescape(str); }


function imgError(source){
	source.src = "http://www.newstarrealty.com/photo/noimage.gif";
	source.onerror = "";
	source.title = "";
	return true;
}


// var arrayPageSize = getPageSize();
// width : arrayPageSize[0], height : arrayPageSize[1]
// div.style.height = (arrayPageSize[1] + 'px');
function getPageSize(){

	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}


//Multi-Purpose Form Fields Checking function
var oXMLHTTP = GetXMLHttpRequest();
var formname = "";

function checkFormMail(form) {	

	formname = "";
	var errMsg = "";
	var poststr = "";	
	
	var regName = new RegExp(/^([a-zA-Z]+|[a-zA-Z]+\s[a-zA-Z]+)$/);
	var regEmail = new RegExp(/^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z]{2,4}(.[a-zA-Z]{2})?$/);	
   
	if (!(regName.test(form.name.value)))        
		errMsg = errMsg + '\n- Name';

	if (!(regEmail.test(form.email.value)))
		errMsg = errMsg + '\n- Email Address';

	//Some forms do not have phone number field so check if it is there first.
	if (form.phone != null){
		if (form.phone.value.search(/\d{3}\-\d{3}\-\d{4}/) == -1)
			errMsg = errMsg + '\n- Phone Number';
	}

	if (errMsg != '') {
		errMsg = 'Please complete the followings fields again.' + errMsg;
		alert(errMsg);
		return false;
	} else {
		isSaveProp = false;
		for (var i = 0; i < form.elements.length; i++) {
			if(form.elements[i].name == "formname"){
				formname = escape(form.elements[i].value);
				if(formname == 'saveProperty')
					isSaveProp = true;
			}
			if(i > 0) {                                  
				if (form.elements[i].name == "besttime"){
					if (form.elements[i].checked)
						poststr +=  "&"  + form.elements[i].name + "=" + escape(form.elements[i].value); 
				} else {
					poststr += "&" + form.elements[i].name + "=" + escape(form.elements[i].value);
				}
			}else {
				poststr += form.elements[i].name + "=" + escape(form.elements[i].value); 
			}                
		}
		if(isSaveProp)			
			makePOSTRequest('http://www.newstarrealty.com/lib/process_save_property.asp', poststr);		
		else			
			makePOSTRequest('http://www.newstarrealty.com/lib/process_form.asp', poststr);		
		return false;
	}
}

//AJAX Form Submission
function makePOSTRequest(URL, parameters) {
	oXMLHTTP.onreadystatechange = displayResult;
	oXMLHTTP.open( "POST", URL, true );
	oXMLHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	oXMLHTTP.setRequestHeader("Content-length", parameters.length);       
	oXMLHTTP.send(parameters);        
}

function displayResult() {	
	div_form	 = formname + '_form';
	div_result	 = formname + '_result';
	div_status	 = formname + '_status';
	close_button = formname + '_close_button';
	
	//alert(div_form + " " + div_result + " " + div_status);

	document.getElementById(div_form).style.display = 'none';
	document.getElementById(div_result).style.display = 'inline';
	document.getElementById(div_status).innerHTML = "<font color=blue>Sending email ...</font>"; 
	
	if (oXMLHTTP.readyState == 4) {
		//alert(oXMLHTTP.status);
		if (oXMLHTTP.status == 200) {			
			document.getElementById(div_status).innerHTML = oXMLHTTP.responseText; 
			if (oXMLHTTP.responseText == "fail") 
				document.getElementById(div_status).innerHTML = "<font color='red'>There was a problem sending your request.</font>";                
			else 
				document.getElementById(div_status).innerHTML = "Your request was successfully sent.";                        
		} else 
				document.getElementById(div_status).innerHTML = "<font color='red'>There was a problem sending your request.</font>";
		document.getElementById(close_button).style.display = "";
	}      
}

//Toggles display of pulldown menus in a given form.
function togglePullDownDisplay(form, visibility){
	if (!window.XMLHttpRequest) { // IE6, older browsers		
		var elements = form.elements;
		for (e = 0; e < elements.length; e++)
		{				
			if (elements[e].type == "select-one")
			{
				elements[e].style.visibility = visibility;
			}
		}	
	}
}