	var builderMailArr = new Array();
	var ipTrack = new ip_tracker();
	function showBuilderMailForm(userName){
		var index = builderMailArr.length;
		builderMailArr[index] = new ip_builder();
		builderMailArr[index].userName = userName;
		builderMailArr[index].contactBuilderForm(userName);
	}
	function validateForm(frm){
		var index = frm.arrIndex.value;
		if(builderMailArr[index].validateForm(frm)) return false;
		return false;
	}
	function showBuilderResults(frm,alphabet,offset){
		var strCity= frm.city.options[frm.city.selectedIndex].value;
		localteBuilder.showResults(strCity,alphabet,offset);
	}
	function showBuilderResultsLimit(frm,alphabet,offset,limit){
		var strCity= frm.city.options[frm.city.selectedIndex].value;
		localteBuilder.showResultsLimit(strCity,alphabet,offset,limit);
	}
	function ip_builder(){
		this.mailAjax = null;
		this.mailStatus = null;
		this.successStr = "Your message has been sent ";
		this.errorStr = "Unable to access this service currently, Please try again later.";
		this.ver_errorStr = "Your code is wrong, Re-enter the verification code.";
		try{this.currentHTML = $ip("div_builderMailForm").innerHTML;}catch(e){}
		//this.buildermailURL = ip.host() + "/index.php?option=agent&page=builderemailsend&notemplate=yes";
		this.buildermailURL = ip.host() + "/enquiry/sendemailenquiry.php?";
		this.builderinfoForm = ip.host() + "/index.php?option=builder&page=builderinfo_form&notemplate=yes";
		this.builderresultURL = ip.host() + "/index.php?option=builder&page=locatebuilder_results&notemplate=yes";
		this.buildermailFormURL = ip.host() + "/builder-directory/contactbuilderform.php?";
		this.builderName = "";
		this.userName = "";
		this.builderID = "";
		this.pageFrom="";
		this.errName ="";
		this.errEmail ="";
		this.errPhone ="";
		this.errMsg ="";
		this.rowID = "";
	}
	ip_builder.prototype.validateForm = function(frm){
		if(!frm){return false;}
		if(!IsMandatory(frm.strname,"text","Please enter a name.",2)) return false;
		if(IsMin(frm.strname.value,4)) return ip.throwErr(frm.strname,"Name must contain a minimum of 4 characters.",2);
		if(!IsValidCharacters(frm.strname.value, alphabets + "&.-_ ",alphabets)) return ip.throwErr(frm.strname,"Please use only alphabets.",2);
		if(!IsMandatory(frm.stremail,"text","Please enter an e-mail ID.",2)) return false;
		if(!ip.IsValidEmail(frm.stremail.value)) return ip.throwErr(frm.stremail,"Please enter a valid e-mail ID.",2);
		if(!IsMandatory(frm.strphone,"text","Please enter a phone number.",2)) return false;
		if(!IsValidCharacters(frm.strphone.value, numbers + "- ",numbers)) return ip.throwErr(frm.strphone,"Please use only numerals.",2);
		if(IsMin(frm.strphone.value,8)) return ip.throwErr(frm.strphone,"Please check the phone number.",2);
		if(!IsMandatory(frm.txteqmsg,"textarea","Please enter your message.",2)) return false;
		if(IsMin(frm.txteqmsg.value,50)) return ip.throwErr(frm.txteqmsg,"Message should not be less than 50 characters.",2);
		if(IsMax(frm.txteqmsg.value,140)) return ip.throwErr(frm.txteqmsg,"Message cannot exceed 140 characters.",2);
		if(!IsValidCharacters(frm.txteqmsg.value, alphabets + numbers + " ,.?&/;:'!@#$%*()-_+=|\[]{}",alphabets + numbers)) return ip.throwErr(frm.txteqmsg,"Special characters are not allowed.",2);
		if(this.pageFrom=="results") this.searchSendMail(frm); else this.sendMail(frm);
		return false;
	};
	/*builder Profile Page -Send Mail*/
	ip_builder.prototype.sendMail = function(frm){
		var thisObj = this;
		this.mailAjax = new getHTTPObject();
		if(!this.mailAjax)return;
		this.errName = frm.strname.value;
		this.errEmail =frm.stremail.value;
		this.errPhone = frm.strphone.value;
		this.errMsg=frm.txteqmsg.value;
		this.builderID = frm.builderid.value;
		this.userName = frm.username.value;
		this.builderName = frm.buildername.value;
		this.url = this.buildermailURL + "&rowID="+frm.username.value+"&strname="+frm.strname.value +
			"&stremail="+frm.stremail.value +
			"&strphone="+frm.strphone.value +
			"&userid="+frm.builderid.value+
			"&buildername="+frm.buildername.value+
			"&txteqmsg="+frm.txteqmsg.value +
			"&security_code="+frm.security_code.value;
		//"&builderid="+frm.builderid.value+
		this.builderName = frm.buildername.value;
		var formHTML = $ip("div_builderMailForm").innerHTML;
		this.mailAjax.open("GET",this.url,true);
		this.mailAjax.onreadystatechange = function(){
			$ip("div_builderMailForm").innerHTML = ip.loading("Sending mail... Please wait...");
			if(thisObj.mailAjax.readyState==4){
				if( parseInt(thisObj.mailAjax.responseText) == 1 ){
					var res =thisObj.successStr + " successfully";
					ipTrack.ipMail.trackSent();
				}else if( parseInt(thisObj.mailAjax.responseText) == 2 ){
					var res =thisObj.ver_errorStr;
					thisObj.mailStatus=null;
					thisObj.mailAjax.abort();
					thisObj.showBuilderInfoForm(1);
					return;
				}else{
					var res =thisObj.errorStr;
				}
				$ip("div_builderMailForm").innerHTML = res;
				thisObj.mailStatus=1;
			}
		};
		this.mailAjax.send(null);
	};
	ip_builder.prototype.showBuilderInfoForm = function(scErr){
		var divObj = $ip("div_builderMailForm");
		this.pageFrom = "builderinfo";
		var thisObj = this;
		this.mailAjax = new getHTTPObject();
		if(!this.mailAjax)return;
		var qry="";
		if(scErr){
			qry = "&scErr=1&builderid="+this.builderID+"&strcompanyname="+this.builderName+"&strname="+this.errName+"&stremail="+this.errEmail+"&strphone="+this.errPhone+"&strmsg="+this.errMsg;
		}
		this.url = this.builderinfoForm + "&username="+this.userName+qry;
		this.mailAjax.open("GET",this.url,true);
		this.mailAjax.onreadystatechange = function(){
			divObj.style.display="";
			divObj.innerHTML = ip.loading("Loading mail Form... Please wait...");
			if(thisObj.mailAjax.readyState==4){
				var res = thisObj.mailAjax.responseText;
				divObj.innerHTML = res;
				thisObj.mailStatus=0;
				window.setTimeout(function(){
					try{
						var frm = d.frmBuilder;
						frm.security_code.focus();
						ip.changeCount(d.frmBuilder.txteqmsg,140,"divCount");
					}catch(e){}
				},2000);
			}
		};
		this.mailAjax.send(null);
	};
	/*Builder Search*/
	ip_builder.prototype.contactBuilderForm = function(userName,scErr){
		/*if(this.mailStatus){return;}*/
		/*if($ip(rowID).style.display!="none"  && !scErr){
			var frm = eval("d.frmBuilder_"+this.rowID);
			try{frm.strname.focus();}catch(e){}
			return;
		}*/
		this.pageFrom = "results";
		var thisObj = this;
		divObj =  $ip("divEmail"+thisObj.userName);
		if(!scErr && String(divObj.innerHTML).length>30){	 //If Already Opend
			try{
				this.frm.focus();
				if(this.frm.strname.value=="")this.frm.strname.focus(); else this.frm.txteqmsg.focus();
				this.divObj.style.display ="";
				return;
			}catch(e){traceErr(e,"sendSMS");return;}
		}
		this.mailAjax = new getHTTPObject();
		if(!this.mailAjax)return;
		var qry="";
		if(scErr){
			qry = "&scErr=1&strname="+this.errName+"&stremail="+this.errEmail+"&strphone="+this.errPhone+"&strmsg="+this.errMsg;
		}
		this.url = this.buildermailFormURL + "&username="+userName+"&arrIndex="+ parseInt(builderMailArr.length - 1) + qry;
		this.mailAjax.open("GET",this.url,true);
		this.mailAjax.onreadystatechange = function(){
			divObj.style.display="";
			divObj.innerHTML = ip.loading("Loading mail Form... Please wait...");
			if(thisObj.mailAjax.readyState==4){
				var res = thisObj.mailAjax.responseText;
				divObj.innerHTML = res;
				thisObj.mailStatus=0;
				window.setTimeout(function(){
					try{
						var frm = eval("d.frmBuilder_"+thisObj.userName);
						frm.strname.focus();
						ip.changeCount(frm.txteqmsg,140,"divCount"+thisObj.userName)
					}catch(e){}
				},2000);
			}
		};
		this.mailAjax.send(null);
	};
	ip_builder.prototype.searchSendMail = function(frm){
		var thisObj = this;
		this.mailAjax = new getHTTPObject();
		if(!this.mailAjax)return;
		this.errName = frm.strname.value;
		this.errEmail =frm.stremail.value;
		this.errPhone = frm.strphone.value;
		this.errMsg=frm.txteqmsg.value;
		this.url = this.buildermailURL + "&rowID="+this.rowID+"&strname="+frm.strname.value +
			"&stremail="+frm.stremail.value +
			"&strphone="+frm.strphone.value +
			"&userid="+frm.builderid.value+
			"&buildername="+frm.buildername.value+
			"&txteqmsg="+frm.txteqmsg.value+
			"&security_code="+frm.security_code.value;
		//"&builderid="+frm.builderid.value+

		this.builderName = frm.buildername.value;
		urltoenq = ip.host() + "/index.php?option=listing&page=enqtoregister&notemplate=yes&rowID="+this.rowID+"&strname="+frm.strname.value +
			"&stremail="+frm.stremail.value +
			"&strphone="+frm.strphone.value +
			"&builderid="+frm.builderid.value+
			"&buildername="+frm.buildername.value+
			"&txteqmsg="+frm.txteqmsg.value+
			"&security_code="+frm.security_code.value;
		this.convertEnqToRegBuilder(urltoenq);
		this.mailAjax.open("GET",this.url,true);
		var divObj = $ip("divEmail"+this.userName);
		this.mailAjax.onreadystatechange = function(){
			divObj.innerHTML = ip.loading("Sending mail... Please wait");
			if(thisObj.mailAjax.readyState==4){
				if( parseInt(thisObj.mailAjax.responseText) == 1 ){
					var res =thisObj.successStr + " successfully";
					ipTrack.ipMail.trackSent();
				}else if( parseInt(thisObj.mailAjax.responseText) == 2 ){
					var res =thisObj.ver_errorStr;
					thisObj.mailStatus=null;
					thisObj.contactBuilderForm("divEmail"+thisObj.userName,1);
					return;
				}else{
					var res =thisObj.errorStr;
				}
				divObj.innerHTML = "<b>" + res + "</b>";
				thisObj.mailStatus=1;
				/*window.setTimeout(function(){
					closeThis(thisObj.userName);
					thisObj.mailStatus=null;
				},5000);*/
			}
		};
		this.mailAjax.send(null);
		return false;
	};
	ip_builder.prototype.convertEnqToRegBuilder = function(urltoenq){
		httpEnq = new getHTTPObject();
		if (httpEnq){
			//$ip("mailenquiry").innerHTML = getMessage(0,"Click to Email");
			httpEnq.open("GET", urltoenq, true);
			httpEnq.onreadystatechange = function(){
				//alert(httpEnq.readyState);
				if (httpEnq.readyState == 4){
					//alert(httpEnq.responseText);return false;
					if( httpEnq.responseText != 0){
						$ip("iframeLoginWrapper").src= ip.host()+"/login_wrapper.php";
						//$ip("div_ip_username").innerHTML ='<font class="bText">Welcome '+httpEnq.responseText+' !</font>&nbsp;|&nbsp;<a href="index.php?option=member&amp;page=mypropertyhome">My Properties</a>&nbsp;| <a href="index.php?option=logout" class="Arw" title="Logout from IndiaProperty">Logout</a>';
					}
				}
			};
			httpEnq.send(null);
		}
	};
	ip_builder.prototype.showResults = function(city,alphabet,offset){
		this.mailAjax = new getHTTPObject();
		this.url = this.builderresultURL + "&city="+city;
		//alert(this.url);
		if( (typeof alphabet !="undefined") && alphabet!=""){this.url = this.url + "&char="+String(alphabet);}
		if(typeof offset !="undefined" && offset!=""){this.url = this.url + "&offset="+offset;}
		var ipCookie = new ip_cookie();
		ipCookie.setCookie("builder_city",city);
		$ip("Div_locateBuilder").innerHTML = ip.loading("Loading contents... Please wait...");
		$ip("Div_featuredBuilders").innerHTML = ip.loading("Loading contents... Please wait...");
		/*$ip("Div_locateBuilder").style.color = "rgb(255,100,0)";*/
		/*$ip("ipDiv").style.display = "";*/
		//alert(this.url);
		this.mailAjax.open("GET",this.url,true);
		thisObj = this;
		this.mailAjax.onreadystatechange = function(){
			if(thisObj.mailAjax.readyState==4){
				$ip("Div_locateBuilder").innerHTML = thisObj.mailAjax.responseText;
				/*$ip("ipDiv").style.display = "none";*/
			}
		};
		this.mailAjax.send(null);
		changeRHS(city);
	};
	ip_builder.prototype.validateContactForm = function(frm){
		if(!frm){return false;}
		if(IsEmpty(frm.strname,"text") || frm.strname.value=="Name") return ip.throwErr(frm.strname,"Please enter a name.",2);
		if(IsMin(frm.strname.value,4)) return ip.throwErr(frm.strname,"Name must contain a minimum of 4 characters.",2);
		if(!IsValidCharacters(frm.strname.value, alphabets + "&.-_ ",alphabets)) return ip.throwErr(frm.strname,"Please use only alphabets.",2);
		if(IsEmpty(frm.stremail,"text") || frm.stremail.value=="Email") return ip.throwErr(frm.stremail,"Please enter an e-mail ID.",2);
		if(!ip.IsValidEmail(frm.stremail.value)) return ip.throwErr(frm.stremail,"Please enter a valid e-mail ID.",2);
		if(IsEmpty(frm.strphone,"text") || frm.strphone.value=="Phone") return ip.throwErr(frm.strphone,"Please enter a Phone number.",2);
		if(!IsValidCharacters(frm.strphone.value, numbers + "- ",numbers)) return ip.throwErr(frm.strphone,"Please use only numerals.",2);
		if(IsMin(frm.strphone.value,8)) return ip.throwErr(frm.strphone,"Please check the phone number.",2);
		if(IsEmpty(frm.txteqmsg,"textarea") || frm.txteqmsg.value=="Message") return ip.throwErr(frm.txteqmsg,"Please enter your message.",2);
		if(IsMin(frm.txteqmsg.value,50)) return ip.throwErr(frm.txteqmsg,"Message should not be less than 50 characters.",2);
		if(IsMax(frm.txteqmsg.value,140)) return ip.throwErr(frm.txteqmsg,"Message cannot exceed 140 characters.",2);
		if(!IsValidCharacters(frm.txteqmsg.value, alphabets + numbers + " ,.?/;:'!@#$%*()-_+=|\[]{}",alphabets + numbers)) return ip.throwErr(frm.txteqmsg,"Special characters are not allowed.",2);
		this.ContactSendMail(frm);
		return false;
	};
	ip_builder.prototype.ContactSendMail = function(frm){
		var thisObj = this;
		this.mailAjax = new getHTTPObject();
		if(!this.mailAjax)return;
		this.errName = frm.strname.value;
		this.errEmail =frm.stremail.value;
		this.errPhone = frm.strphone.value;
		this.errMsg=frm.txteqmsg.value;
		this.url = this.buildermailURL + "&rowID="+this.rowID+"&strname="+frm.strname.value +
			"&stremail="+frm.stremail.value +
			"&strphone="+frm.strphone.value +
			"&userid="+frm.builderid.value+
			"&buildername="+frm.buildername.value+
			"&txteqmsg="+frm.txteqmsg.value+
			"&security_code="+frm.security_code.value;
		//"&builderid="+frm.builderid.value+
		this.builderName = frm.buildername.value;
		this.mailAjax.open("GET",this.url,true);
		var divObj = $ip("divContactForm");
		divObj.style.display ="";
		this.mailAjax.onreadystatechange = function(){
			divObj.innerHTML = ip.loading("Sending email... Please wait");
			if(thisObj.mailAjax.readyState==4){
				if( parseInt(thisObj.mailAjax.responseText) == 1 ){
					var res =thisObj.successStr + " successfully";
					ipTrack.ipMail.trackSent();
				}else if( parseInt(thisObj.mailAjax.responseText) == 2 ){
					var res =thisObj.ver_errorStr;
					thisObj.mailStatus=null;
					/*thisObj.contactBuilderForm(thisObj.userName);*/
					return;
				}else{
					var res =thisObj.errorStr;
				}
				divObj.innerHTML = res;
				thisObj.mailStatus=1;
				thisObj.mailStatus=null;
				/*window.setTimeout(function(){
					divObj.style.display ="none";
				},25000);
				*/
				/*
				window.setTimeout(function(){
					closeThis(thisObj.userName);
					thisObj.mailStatus=null;
				},5000);
				*/
			}
		};
		this.mailAjax.send(null);
		return false;
	};
	ip_builder.prototype.showResultsLimit = function(city,alphabet,offset,limit){
		this.mailAjax = new getHTTPObject();
		this.url = this.builderresultURL + "&city="+city;
		if( (typeof alphabet !="undefined") && alphabet!=""){this.url = this.url + "&char="+String(alphabet);}
		if(typeof offset !="undefined" && offset!=""){this.url = this.url + "&offset="+offset;}
		if(limit!='') this.url = this.url + "&limit="+limit;
		var ipCookie = new ip_cookie();
		ipCookie.setCookie("builder_city",city);
		$ip("Div_locateBuilder").innerHTML = ip.loading("Loading contents... Please wait...");
		/*$ip("Div_locateBuilder").style.color = "rgb(255,100,0)";*/
		/*$ip("ipDiv").style.display = "";*/
		//alert(this.url);return false;
		this.mailAjax.open("GET",this.url,true);
		thisObj = this;
		this.mailAjax.onreadystatechange = function(){
			if(thisObj.mailAjax.readyState==4){
				$ip("Div_locateBuilder").innerHTML = thisObj.mailAjax.responseText;
				/*$ip("ipDiv").style.display = "none";*/
			}
		};
		this.mailAjax.send(null);
		changeRHS(city);
	};
	ip.startMouseDetect();
	/* Start VCard */
	function showVcard(uName){
		var Obj = $ip("divVCard");
		with(Obj.style){
			display ="";
			left = ip.mouseX + "px";
			top= ip.mouseY + "px";
			innerHTML = '<span style="color:rgb(255,100,100); padding:6px 10px;">'+ip.loading("loading builder info...")+'</span>';
		}
		if(vCardTimer) clearInterval(vCardTimer);
		var aReq = new getHTTPObject();
		var url = ip.host() + "/index.php?option=builder&page=buildervcard&username="+uName+"&notemplate=yes";
		aReq.open("get",url,true);
		aReq.onreadystatechange = function(){
			if(aReq.readyState==4){
				var res = ((aReq.responseText.toLowerCase()).indexOf("error")!="-1" || "") ? '<span style="color:rgb(255,100,100); padding:6px 10px;">Sorry! Builder not found.</span>' : aReq.responseText;
				Obj.innerHTML = res;
			}
		}
		aReq.send(null);
	}
	function hideVcard(uName){
		var Obj = $ip("divVCard");
		vCardTimer = window.setInterval(
			function(){Obj.style.display="none";Obj.innerHTML ="";},3000
		);
	}
	function forceExit(e){
		clearInterval(vCardTimer);
		$ip("divVCard").style.display = "none";
		$ip("divVCard").innerHTML ="";
	}
	/*if(!ie){ if(d.captureEvents && Event.MOUSEMOVE) d.captureEvents(Event.MOUSEMOVE);}
	d.onmousemove = getMouseXY;*/
	var vCardTimer=null;
	function loadBuilderResults(params,fromChar){
		var date = new Date();
		var sReq = new getHTTPObject();
		if(String(location.href).indexOf("base.indiaproperty")!=-1){params+="&frm=1";}
		var url = ip.host() + "/builder-directory/innerbuilderresults.php?"+params+"&refer="+date.getTime();
		$ip("div_builderresults").innerHTML = ip.loading("Loading Search Results... Please wait...");
		sReq.open("get",url,true);
		sReq.onreadystatechange = function(){
			if(sReq.readyState==4){
				$ip("div_builderresults").innerHTML =sReq.responseText;
			}
		};
		sReq.send(null);
		if(!fromChar) return;
		for (var i=65; i<91; ++i) $ip("aObj"+String.fromCharCode(i)).className="";
		$ip("aObj"+params.substr(params.length-1)).className="active";
	}