var domainTaken = new Array();
var domainFree = new Array();
$(document).ready(function(){
	$("#view_action").empty();
	swfobject.embedSWF("/worldmap.swf", "worldMapContainer", "940", "530", "9.0.0","expressInstall.swf");
	$('#search_input').keyup(function(key){
		if(key.keyCode == 13){
			launchSearch();
		}
	});
	//On click on the button 
	$("#search_submit").click(launchSearch);
});

function launchSearch(){
	var domain = $("#search_input").val();
	if(domain != ""){
		domainTaken = new Array();
		domainFree = new Array();
		$("#view_action").empty();
		$("#search_input ").addClass('background_loader');
		domainTaken = new Array();
		domainFree = new Array();
		$("#ajax_loader_availability").empty();
		$("#ajax_loader_availability").append('<div><img alt="loader" src="/img/ajax_loader_availability1.gif"/></div>');
		document.getElementById('worldMapContainer').reset();
		var service = new Service();
		//call availability
		//
		service.from("availability").withOptions("type:region,regions:eu|aeu|gen|other|asia|prereg|wish").get(domain, addAvailabilityDomain);
		delete service;
		return false;
	}
}


function flashMapReady(){
	var options = {
			autodisplay : true,
			infoLinkText: 'get more',
			lbl_prefix : '.',
			status_default: {lbl:'Unknown', clr: '0xCCCCCC'},
			status_list : [
				{code:0, lbl:'No information', clr: '0xFFFFFF'},
				{code:1, lbl:'Free', clr: '0x66cc00'},
				{code:2, lbl:'Sedo', clr: '0Xff9900'},
				{code:3, lbl:'Taken', clr:'0xe03901'},
				{code:4, lbl:'Unavailable', clr:'0xCCCCCC'}
			]
		};
	document.getElementById('worldMapContainer').setOptions(options);
}

function infoLinkClic(link){
}

function addAvailabilityDomain(data){
}

var tabStatus = new Array();
tabStatus['free'] = new Array();
tabStatus['taken'] = new Array();
tabStatus['sedo'] = new Array();
tabStatus['timeout'] = new Array();
tabStatus['unavailable'] = new Array();
tabStatus['afternic'] = new Array();
tabStatus['blacklisted'] = new Array();

tabStatus['free'] = 1;
tabStatus['sedo'] = 2;
tabStatus['afternic'] = 2;
tabStatus['taken'] = 3;
tabStatus['timeout'] = 4;
tabStatus['unavailable'] = 4;
tabStatus['blacklisted'] = 3;


/**
 * Function call by the response of availability service
 * @param domain
 * @param status
 * @return
 */
function callbackAvailability(domain, status){
	var tldName = Utils.getTLD(domain);
	var msg = '<td class="msg" style="color:'+tabStatus[status]['color']+'">'+tabStatus[status]['msg']+'</td>';
	var link = "";
	var domainFormat = domain.replace(/\./g, "_");
	var link = {
			type: 'DL',
			value: domain
	}
	var tld = {
			lbl: tldName,
			sts: tabStatus[status],
			link: link
	}
	if(tabStatus[status] == 2 || tabStatus[status] == 3){
		domainTaken[domainTaken.length] = {
				name: domain,
				status: tabStatus[status],
				tldName: tldName
		};		
	}else{
		domainFree[domainFree.length] = {
				name: domain,
				status: tabStatus[status],
				tldName: tldName
		};			
	}

	document.getElementById('worldMapContainer').addTld(tld);
}

/**
 * Function call at the end of the response of availability service
 * @return
 */
function callbackAvailabilityFinished(){
	$("#search_input ").removeClass('background_loader');
	if(domainTaken.length > 0){
		var domainTakenJson = $.toJSON(domainTaken);
	}
	
	if(domainFree.length > 0){
		var domainFreeJson = $.toJSON(domainFree);
	}
	
	if(domainTaken.length > 0){
		var viewTaken = '<div class="span-3"><form id="viewReport" method="post" action="/report/domain_taken">'+
						'<input value=\''+domainTakenJson+'\' type="hidden" id="domainTakenJson" name="domainsJson"/>';
		if(domainFree.length > 0){
			viewTaken	  += '<input value=\''+domainFreeJson+'\' type="hidden" id="domainTmpFreeJson" name="domainsFreeJson"/>';
		}
		viewTaken	  += '<input type="submit" value="View taken" id="submit_view_taken"/>'+
						'</form></div>';
		$("#view_action").append(viewTaken);
	}
	if(domainFree.length > 0){
		var viewFree = '<div class="span-3 last"><form id="viewReport" method="post" action="/report/domain_free">'+
						'<input value=\''+domainFreeJson+'\' type="hidden" id="domainFreeJson" name="domainsJson"/>';
		if(domainTaken.length > 0){
			viewFree	  += '<input value=\''+domainTakenJson+'\' type="hidden" id="domainTmpTakenJson" name="domainsTakenJson"/>';
		}
		viewFree	  += '<input type="submit" value="View free" id="submit_view_free"/>'+
		'</form></div>';
		$("#view_action").append(viewFree);
	}
}
