var teraBitzGlobal = {};
function $tb() {
    	var elements = [];
	   for (var i = 0; i < arguments.length; i++) {
	       	var element = arguments[i];
		      if (typeof element == 'string'){
			     element = document.getElementById(element);
			  }
		      if (arguments.length == 1){
                 return element;
			  }
		      elements.push(element);
           }
	       return elements;
}

function trimtb(str){
   if((str === null) || ( str !== null && str.length === 0) || typeof(str)==="undefined"){
   	   return "";
   }
   return(str.replace(/^\s+|\s+$/g, '')) ;
}
    
function getElementHeighttb(Elem){
		var elem;
		if(document.getElementById) {
			elem = document.getElementById(Elem);
		} else if (document.all){
			elem = document.all[Elem];
		}
		xPos = elem.offsetHeight;
		var borderTop = parseInt($tb("terabitzFrame").style.borderTopWidth.replace("px",""));
		var borderBottom = parseInt($tb("terabitzFrame").style.borderBottomWidth.replace("px",""));
		borderTop = (isNaN(borderTop))?0:borderTop;
		borderBottom = (isNaN(borderBottom))?0:borderBottom;
		xPos = xPos-borderTop-borderBottom;

		return xPos;
}

function getElementWidthtb(Elem){
		var elem;
		if(document.getElementById) {
			elem = document.getElementById(Elem);
		} else if (document.all){
			elem = document.all[Elem];
		}
		xPos = elem.offsetWidth;
		var borderLeft = parseInt($tb("terabitzFrame").style.borderLeftWidth.replace("px",""));
		var borderRight = parseInt($tb("terabitzFrame").style.borderRightWidth.replace("px",""));
		borderLeft = (isNaN(borderLeft))?0:borderLeft;
		borderRight = (isNaN(borderRight))?0:borderRight;
		xPos = xPos-borderLeft-borderRight;
		return xPos;
 }

function loadNeighborhoodtb(lat,longi){
	  // Call a service
		var request = "http://geo.localsearchmaps.com/?format=json&lat="+lat+"&long="+longi+"&cb=makeFrameUrlterabitz";
		var head = document.getElementsByTagName("head").item(0);
	    var script = document.createElement("script");
		script.setAttribute("type", "text/javascript");
	    script.setAttribute("src", request);
		head.appendChild(script);
}
  
function makeFrameUrlterabitz(data){
        if(data.street){
            data.address = (data.street)?data.street:"";
        }
        else{
            data.address = (data.address)?data.address:"";
        }
        data.city = (data.city)?data.city:"";
        data.state = (data.state)?data.state:"";
        data.zip = (data.zip)?data.zip:"";
        data.price = (data.price)?data.price:"";
        data.beds = (data.beds)?data.beds:"";
        data.baths = (data.baths)?data.baths:"";
        data.latitude = (data.latitude)?data.latitude:"";
        data.longitude = (data.longitude)?data.longitude:"";
        data.isBub = (data.isBub)?data.isBub:"";
        data.isAds = (data.isAds)?data.isAds:"";
        data.setBitz = (data.setBitz)?data.setBitz:"";
        data.setList = (data.setList)?data.setList:"";        
		data.photourl = (data.photourl)?data.photourl:"http://gabriels.terabitz.com/wt/frontdoor/images/listing/noImageThmb.jpg";
		data.sqft = (data.sqft)?data.sqft:"";
		data.detailurl = (data.detailurl)?data.detailurl:"";
        if((data.city && data.state)===false){
            if(!data.zip){
                alert("Sorry we could not validate this address.");
            }
        }
		data.category=(data.category)?data.category:"";
		data.isGroups=(data.isGroups)?data.isGroups:"0";
        var queryStrAddr = "&address="+escape(data.address)+","+escape(data.city)+","+escape(data.state)+","+escape(data.zip)+","+data.price+","+data.beds+","+data.baths+","+data.latitude+","+data.longitude;
        var bitNames = "";
		var bitUrl;
        if(teraBitzGlobal.options.bitNames && trimtb(teraBitzGlobal.options.bitNames)!==""){
            bitUrl = "&widgetnames="+teraBitzGlobal.options.bitNames;
        }
        else{
            bitUrl = "";
        }
	    var hwUrl = "&width="+teraBitzGlobal.options.width+"&height="+teraBitzGlobal.options.height;
        var extraUrl = "photourl="+encodeURI(data.photourl)+"&sqft="+data.sqft+"&deturl="+encodeURI(data.detailurl)+"&cat="+data.category;
        var host = (teraBitzGlobal.options.host)?teraBitzGlobal.options.host:"http://gabriels.terabitz.com";
        var settings = "&isAds="+data.isAds+"&setBitz="+data.setBitz+"&setList="+data.setList+"&isBub="+data.isBub+"&group="+data.isGroups;
        var finalUrl = host+"/exploreNHood/index.php?"+extraUrl+queryStrAddr+bitUrl+hwUrl+settings+"&frmUrl=API";
		if(top.frames[data.id]){
            top.frames[data.id].location.replace(finalUrl);
        }
        else{
            $tb(data.id).src=finalUrl;
        }
    }
    
	function makeTerabitzFrame(options){
        teraBitzGlobal.options = options;
		if(!$tb(options.id)){
            alert("Please Specify ID of the iframe.");
            return false;
        }
        if(options.isAds == "1"){
			teraBitzGlobal.options.width=(options.width)?(parseInt(options.width)):(getElementWidthtb(options.id));
	    }
        else{
        	teraBitzGlobal.options.width=(options.width)?options.width:getElementWidthtb(options.id);
	    }
        
        var height = (options.height)?options.height:getElementHeighttb(options.id);
        teraBitzGlobal.options.height= height;
        
            makeFrameUrlterabitz(options);
        
	}

