var where_box_default = 'Type your Neighborhood or Area';
var for_box_default = 'e.g. coffee';

function showLoader(id)
{
	if (!id) id = 'master-directory';
	$(".loader").width($("#" + id).width());
	$(".loader").height($("#" + id).height());
	$(".loader").css("top", $("#" + id).offset().top);
	$(".loader").css("left", $("#" + id).offset().left);
	$(".loader").show();	
}

function hideLoader()
{
	$(".loader").hide();
}

$(document).ready(function(){
	
	$("#search-form").submit(function(){
		
		$("#search_go").attr('disabled', 'disabled');
		var url = '/search/?q=' + escape($("#search_q").val());
		var location = $("#search_location").val();
		if(location != 'undefined' && location != '' && location != where_box_default)
		{
			url += '&location=' + escape(location);
		}
		window.location = url;
		return false;
	});
	
	$("#search_q").focus(function(){
		if($(this).val() == for_box_default)
		{
			$(this).val('');
		}
	}).blur(function(){
		if($(this).val() == '')
		{
			$(this).val(for_box_default);
		}
	});
	
	
	/*
	 * /*.focus(function(){
		if($(this).val() == 'Type your Neighborhood or Area')
		{
			$(this).val('');
		}
	}).blur(function(){
		if($(this).val() == '')
		{
			$(this).val('Type your Neighborhood or Area');
		}
	})
	 */
	
	$("#search_location").autocomplete('/search/autocomplete', {
			minChars : 3,
			scroll: false,
			width: 228
		}).focus(function(){
			if($(this).val() == where_box_default)
			{
				$(this).val('');
			}
		}).blur(function(){
			if($(this).val() == '')
			{
				$(this).val(where_box_default);
			}
		});
});


function openFlagWindow(href)
{
	tb_show("FLAG AS INAPPROPRIATE", href, false);
}


function in_array(needle, haystack, strict) {    // Checks if a value exists in an array
    // 
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
 
    var found = false, key, strict = !!strict;
 
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
 
    return found;
}

function googleMapScrolling()
{
	$(window).scroll(function () {
		var offsets = getScrollXY();
		var YOffsetMap = $("#sidebar").offset().top;
		
		if (YOffsetMap<offsets[1])
		{
			var diff = offsets[1] - YOffsetMap + 10;
			$("#signup-box").animate({ top: diff + "px" }, { queue:false, duration:1000 });
		}
		else
		{
			$("#signup-box").animate({ top: 0 }, { queue:false, duration:1000 });
		}
	});	
}

function getScrollXY() {
	  var scrOfX = 0, scrOfY = 0;
	  if( typeof( window.pageYOffset ) == 'number' ) {
	    //Netscape compliant
	    scrOfY = window.pageYOffset;
	    scrOfX = window.pageXOffset;
	  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	    //DOM compliant
	    scrOfY = document.body.scrollTop;
	    scrOfX = document.body.scrollLeft;
	  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	    //IE6 standards compliant mode
	    scrOfY = document.documentElement.scrollTop;
	    scrOfX = document.documentElement.scrollLeft;
	  }
	  return [ scrOfX, scrOfY ];
}

function labels(checkboxes, word, extracheckboxes, search_loc){
	var str = '';
	var bufer = new Array();
	var qbufer = new Array();
	var k = true;
	for (var i=0; i<checkboxes.length; i++)
	{
		val = $(checkboxes[i]).parent().text();
		if (!in_array($(checkboxes[i]).val(), bufer))
		{			
			bufer.push($(checkboxes[i]).val());
			if (in_array($(checkboxes[i]).val(), quadrants) || $(checkboxes[i]).val() == 's')
			{
				qbufer.push($(checkboxes[i]).val());
				if ($(checkboxes[i]).parent().text() != "Suburbs") str += ", All " + $(checkboxes[i]).parent().text() + " Neighborhoods";
				else str += ", All Suburban Neighborhoods";
			}			
			else
			{
				minbufer = $(checkboxes[i]).val().split("-");
				if (!in_array(minbufer[1], qbufer))
				{
					//alert(minbufer[1]);
					//alert(qbufer);
					str += ", " + $(checkboxes[i]).parent().text();
				}
			}
		}
	}
	
	k = true;
	if (extracheckboxes != null)
	{
		for (var i=0; i<extracheckboxes.length; i++)
		{
			val = $(extracheckboxes[i]).parent().text();
			if (!in_array($(extracheckboxes[i]).val(), bufer))
			{
				bufer.push($(extracheckboxes[i]).val());
				if (in_array($(extracheckboxes[i]).val(), quadrants))
				{
					qbufer.push(val);
					if ($(extracheckboxes[i]).parent().text() != "Suburbs") str += ", All " + $(extracheckboxes[i]).parent().text() + " Neighborhoods";
					else str += ", All Suburban Neighborhoods";
				}			
				else
				{
					minbufer = $(extracheckboxes[i]).val().split("-");
					if (!in_array(minbufer[1], qbufer))
					{
						str += ", " + $(extracheckboxes[i]).parent().text();
					}
				}
			}
		}		
	}	
	
	if (search_loc)
	{
		var search_location_val = $("#search-form #search_location").val();
		if (search_location_val != where_box_default && search_location_val != '')
		{
			if (str == '') str = "," + search_location_val;
			else str = "," + search_location_val + str;
		}
	}
	
	str = str.substr(1);
	if (str == '') str = word;
	
	return str;
}

function saveParams(objectFrom, objectTo)
{
	var checkboxes = $(objectFrom);
	var str = '';
	for (var i=0; i<checkboxes.length; i++)
	{
		str += $(checkboxes[i]).val() + "|";
	}
	str = str.substr(0, str.length-1);
	$(objectTo).val(str);
	return str;
}

function addParams(objectFrom, objectTo)
{	
	var checkboxes = $(objectFrom);
	var str = '';
	for (var i=0; i<checkboxes.length; i++)
	{
		str += $(checkboxes[i]).val() + "|";
	}
	str = str.substr(0, str.length-1);
	var total = '';
	
	if ($(objectTo).val() != '') total = $(objectTo).val() + "|" + str;
	else total = str;
	
	$(objectTo).val(total);
	
	return str;
}

function JTGUI(object, center, element_id)
{
	if ($('#JT').length == 0)
	{
		var title = "SELECT A NEIGHBORHOOD";
		if (center) title = "SELECT A BUSINESS DISTRICT";
		JT_show(object.href,object.id, title, function(){
			  var linkID = $("#aGUIselector").attr("id");
			  var height = $("#JT").height();
			  				  
			  var arrowOffset = getElementWidth(linkID) + 11;
				  
			  var clickElementx = getAbsoluteLeft(linkID) + arrowOffset - 400;
	  
			  //$('#JT').css({left: clickElementx+"px"});
			 
			  var topp = getAbsoluteTop(linkID) - height + 100;

			  
			  
			  //$('#JT').css({top : topp + "px"});
			
			   var arrowOffset = getElementWidth(linkID) + 11;
			   var arrowTop = getAbsoluteTop(linkID) - 300;
			   var clickElementx = getAbsoluteLeft(linkID) + arrowOffset - 100;    									  
			   //$('#JT').css({left: clickElementx+"px", top : arrowTop + "px"});
			   
    		   $("#JT a").click(function(){
    			  var thislinkID = $(this).attr("id");
    			  var quadrant = thislinkID.split("-");
    			  var a = false;
    			  
    			  if (thislinkID == "A") a = true;
    			  if ((quadrant[1] != undefined && quadrant[1] == "Q") || thislinkID == "Q" ||
    				  thislinkID == "A")
    			  {
    				  $("#JT").remove();
    				  JT_show(
    						  this.href,
    						  $("#aGUIselector").attr("id"),
    						  "Select a neighborood",
    						  function(data)
    						  {
    							  if (data == '')
    							  {
    								  $('#JT').remove();
    							  }
    							  else
    							  {
    								  var linkID = $("#aGUIselector").attr("id");
    								  var height = $("#JT").height();
    									  
									  var arrowOffset = getElementWidth(linkID) + 11;
    									  
									  var clickElementx = getAbsoluteLeft(linkID) + arrowOffset - 400;
										  
									  if (thislinkID == "A") 
									  {
	    								  var topp = getAbsoluteTop(linkID) - 600;
										  //$("#JT").css({width: '800px'});
									  }  
									  else var topp = getAbsoluteTop(linkID) - 200;
									  
    								  
    								  
    								  $("#JT a").click(function(){
	        								if (this.id == "back")
	        								{
	        									$('#JT').remove();
	        									JTGUI(object);
	        								}
	        								else
	        								{
	        									if(typeof(element_id) != 'undefined')
	        										$("#" + element_id).val($(this).text());
	        									else
	        										$("#search-form #search_location").val($(this).text());
	        								  	//prepopulate($(this).attr("id"));
		    			        				$('#JT').remove();	        									
	        								}
        							  }); 			        								  
    							  }
    						  }, true, true
    				  );
    			  }
    			  else
    			  {
    				  if (thislinkID == "M")
    				  {
	    				  $('#JT li').show();
	    				  $(this).hide();	    				  
    				  }
    				  else
    				  {
    					if(typeof(element_id) != 'undefined')
    						$("#" + element_id).val($(this).text());
						else
							$("#search-form #search_location").val($(this).text());
    					  //prepopulate($(this).attr("id"));
    					  $('#JT').remove();
    				  }	  
    			  }
    			  return false;
    		   });
		   }, true, true);
	   }
	   else
	   {
		   $('#JT').remove();
	   }	
}

function JTremove()
{
	$('#JT').remove();
}

function fixParams(object)
{
	var value = $(object).val();
	if (value.substr(0, 1) == "|") value = value.substr(1);
	if (value.substr(value.length-1) == "|") value = value.substr(0, value.length-1);
	
	$(object).val(value);
}

function addFriend(user_id, el)
{
	$.get("/users/friendrequest/id/" + user_id, function(data){
		if(data == 1)
		{	
			$(el).parent().html('Your request was sent');
			//$('#request-text').html('Your request was sent');
		}	
		else if(data == 2)
		{	
			$(el).parent().html('Your request was sent');
			//$('#request-text').html('Request was accepted');
		}
		else alert("Something was wrong, please contact administrator!"); 
	});
}

function acceptFriend(user_id, el)
{
	$.get("/users/friendrequest/id/" + user_id, function(data){
		if(data == 1)
		{	
			$(el).parent().html('Not Accepted');
			//$('#request-text').html('Your request was sent');
		}	
		else if(data == 2)
		{	
			$(el).parent().html('Accepted');
			//$('#request-text').html('Request was accepted');
		}
		else alert("Something was wrong, please contact administrator!"); 
	});
}
/*
 * Alternative variant of addFriend function
 * els - jQuery selection of buttons
 * msgs - jQuery selection of message place holders
 */
function addFriendAlt(user_id, els, msgs)
{
	$.get("/users/friendrequest/id/" + user_id, function(data){
		if(data == 1)
		{
			els.hide();
			msgs.html('Your request was sent');
		}	
		else if(data == 2)
		{	
			els.hide();
			msgs.html('Request was accepted');
		}
		else alert("Something was wrong, please contact administrator!"); 
	});
}

function myCustomOnChangeHandler(e)
{
	if (e.type == 'keyup')
	{
		//alert(tinyMCE.activeEditor.getContent({format : 'text'}));
		var content = tinyMCE.activeEditor.getContent();
		$(content).remove('br');
		//if ($(content).html() );
		//console.log(content);
		var id = tinyMCE.activeEditor.id;
		var editor = tinyMCE.activeEditor.getContainer();
		
		var length = content.length - 7;
		if (length < 0) length = 0;  
		if (length>2000){
			length = 2000;
			$("iframe", editor).contents().find("#tinymce").html('<p>' + $(content).text().substr(0,2000) + '<br mce_bogus="1"/></p>');
		}		
		
		$("#" + id + "-word-count", editor).text(2000 - length);
	}
}