// DNS Lookup
var userIP;
var cache = new Array();
var inProgress = false;
var infoText = "";
var STYLE_OPEN = "<div style='overflow-x:hidden;white-space:nowrap;'>";
var STYLE_CLOSE = "</div>";

function lookup(ip) {
	lookup(ip, "", "", "");
}

function lookup(ip, browser, os, referrer, bShowExtra) {
   var url = 'FormSite?FormId=DNSLookup&IP=' + ip;
   var found = false;
   infoText = (bShowExtra ? "<br><b>Browser:</b> " + browser + ", <b>OS:</b> " + os + "<br><b>Referrer:</b> " + referrer : "");
   for(var i = 0; i < cache.length; i++) {
   	if(cache[i][0] == ip) {
   		Vromansys.InfoPanel.setText(STYLE_OPEN + cache[i][1] + infoText + STYLE_CLOSE);
   		found = true;
   	} 
   }
   if(!found) {
	var panelText = '<b>Looking Up:</b> ' + ip + "&nbsp;&nbsp;&nbsp;<img src=\"/images/icons/loading/ajax-loader-dots.gif\"><br>";
	if(!inProgress) {
   		inProgress = true;
   		Vromansys.InfoPanel.setText(STYLE_OPEN + panelText + infoText + STYLE_CLOSE);
		userIP = ip;
   		Ext.Ajax.request({
			url : "FormSite",
			params : { 	
				FormId : "DNSLookup",
				IP : ip
			},
			method: 'GET',
			success: handleSuccess,
			failure: handleFailure
		});
   	} else {
   		Vromansys.InfoPanel.setText(STYLE_OPEN + panelText + infoText + STYLE_CLOSE);
   	}
   }
}

var handleSuccess = function( result, request ){
	if(typeof(result.responseText) != "undefined") {
	 	Vromansys.InfoPanel.setText(STYLE_OPEN + result.responseText + infoText + STYLE_CLOSE);
		cache.push( new Array ( userIP, result.responseText) );
	} else {
		Vromansys.InfoPanel.setText(STYLE_OPEN + 'Could not resolve address<br>' + userIP + infoText + STYLE_CLOSE);
	}
	inProgress = false;
}

var handleFailure = function( result, request ){
	Vromansys.InfoPanel.setText(STYLE_OPEN + 'Could not resolve address<br>' + userIP + infoText + STYLE_CLOSE);
	inProgress = false;
}