
var numSyndaFound = 0;
var numSyndaSearched = 0;


// Register global responders that will occur on all AJAX requests
Ajax.Responders.register({
	onCreate: function(request) {
		request['timeoutId'] = window.setTimeout(
			function() {
				if (callInProgress(request.transport)) {
					request.transport.abort();
					if (request.options['onFailure']) {
						request.options['onFailure'](request.transport, request.json);
					}
				}
			},
			15000
		);
	},
	onComplete: function(request) {
		window.clearTimeout(request['timeoutId']);
	}
});


function callInProgress (xmlhttp) {
	switch (xmlhttp.readyState) {
		case 1: case 2: case 3:
			return true;
			break;
		// Case 4 and 0
		default:
			return false;
			break;
	}
}



function syndaSearch()
{
	var address = $('UclSyndicationTool1_txtAddress');
	var city = $('UclSyndicationTool1_txtCity');
	var state = $('UclSyndicationTool1_ddlState');
	var postal = $('UclSyndicationTool1_txtZip');
	var price = $('UclSyndicationTool1_txtPrice');
	
	
	if(address.value == ''){
		shakeInput(address);
		return false;
	}else{
		address.style.borderColor = '';
	}
	
	if(city.value == ''){
		shakeInput(city);
		return false;
	}else{
		city.style.borderColor = '';
	}
	
	if(state.options[state.selectedIndex].value == ''){
		shakeInput(state);
		return false;
	}else{
		state.style.borderColor = '';
	}
	
	if(postal.value == ''){
		shakeInput(postal);
		return false;
	}else{
		postal.style.borderColor = '';
	}
	
	if(price.value == ''){
		shakeInput(price);
		return false;
	}else{
		price.style.borderColor = '';
	}

    //alert('sdsd');
	ShowLoadingImage();
    //alert('12312');
//	
//	$('grade').className = '';
//	$('bottom-grade').className = '';
//	$('bottom-results').innerHTML = '';
	
//	numSyndaFound = 0;
//	numSyndaSearched = 0;
//	
//	searchService('trulia');
//	searchService('google');
//	searchService('vast');
//	searchService('oodle');
//	searchService('hotpads');
//	searchService('olx');
//	searchService('frontdoor');
//	searchService('lycos');
//	searchService('zillow');
//	searchService('yakaz');
	
//	new Effect.ScrollTo('bottom-grade',{offset:-500});
	return true;
}

function ShowLoadingImage()
{
    var arrTd=document.getElementsByTagName('td');
    for(var i=0;i<=arrTd.length-1;i++)
    {
        if(arrTd[i].getAttribute('LoadingImage')=='true')
        {
            arrTd[i].style.backgroundImage='url(images/syndasearch/chk-pending.png)';
        }
    }

    var arrImage=document.getElementsByTagName('img');
    //alert(arrImage.length);
    for(var i=0;i<=arrImage.length-1;i++)
    {
        if(arrImage[i].getAttribute('LoadingImage')=='true')
        {
            arrImage[i].style.display='block';
        }
    }
}


function searchService(service)
{
	var cell = $('synda-result-'+service);
	
	cell.className = 'pending';
	cell.innerHTML = '<img src="/images/syndasearch/loading.gif" />';
	
	
	new Ajax.Request("/syndasearch.ajax.php", {

		onSuccess : function(resp) {
			var data = resp.responseText.evalJSON();

			cell.innerHTML = '';
			
			if(data.result == 'found'){
				cell.className = 'found';
				cell.innerHTML = '<a target="_blank" href="'+data.url+'"></a>';
				numSyndaFound++;
			}else if(data.result == 'possible'){
				cell.className = 'possible';
				cell.innerHTML = '<a target="_blank" href="'+data.url+'"></a>';
				numSyndaFound++;
			}else{
				cell.className = 'notfound';
			}
			
			numSyndaSearched++;
			
			assignGrade();
		},

		onFailure : function(resp) {
			cell.innerHTML = '';
			cell.className = 'notfound';
			
			numSyndaSearched++;
			
			assignGrade();
		},

		method:'post',
		requestHeaders: {Accept: 'application/json'},
		parameters : Form.serialize($('syndasearch-form')) + '&service='+service

	});

}



function assignGrade()
{
	if(numSyndaSearched == 10)
	{
		var grade = $('grade');
		var gradeBottom = $('bottom-grade');
		var gradeClass = '';
		var msg = '';
		
		var msg1 = '<strong>Congratulations! All or most of the major real estate portals have syndicated your property listing.</strong> So tell your real estate agent &quot;goodjob!&quot; (Or if you\'re a real estate agent yourself, pat yourself on the back!)';
		var msg2 = '<strong>Your property has achieved a significant presence across major online real estate listings sites, but many of the high-traffic portals are not listing your property.</strong> You may want to consider <a href="/addlisting.html">adding your property to International Listings</a> to get more exposure.';
		var msg3 = '<strong>Your property lacks a significant presence across major online real estate listings sites.</strong> This may be because it\'s a new listing (the syndication process can take 2-6 weeks). If it\'s not a new listing, however, you may want to consider <a href="/addlisting.html">adding your property to International Listings</a> to get more exposure.';
		
		if(numSyndaFound == 10){
			gradeClass = 'a-plus';
			msg = msg1;
		}else if(numSyndaFound == 9){
			gradeClass = 'a';
			msg = msg1;
		}else if(numSyndaFound == 8){
			gradeClass = 'a-minus';
			msg = msg1;
		}else if(numSyndaFound == 7){
			gradeClass = 'b-plus';
			msg = msg2;
		}else if(numSyndaFound == 6){
			gradeClass = 'b';
			msg = msg2;
		}else if(numSyndaFound == 5){
			gradeClass = 'b-minus';
			msg = msg2;
		}else if(numSyndaFound == 4){
			gradeClass = 'c-plus';
			msg = msg3;
		}else if(numSyndaFound == 3){
			gradeClass = 'c';
			msg = msg3;
		}else if(numSyndaFound == 2){
			gradeClass = 'c-minus';
			msg = msg3;
		}else if(numSyndaFound == 1){
			gradeClass = 'd';
			msg = msg3;
		}else if(numSyndaFound == 0){
			gradeClass = 'f';
			msg = msg3;
		}
		
		//grade.className = gradeClass;
		gradeBottom.className = gradeClass;
		
		$('bottom-results').innerHTML = msg;
		
	}
}

