/* EasternShoreHousing.com */
/*------------------------------------------------------------*/

$(document).ready(function(){
	showMe();
	initProGal();
	initTabs();
	initNav();
	$(window).load(function() {
		init();
     });
});


function init(){	
	launchListings();
	advanSearchPageInit();
	askBuilderBtns();//simplify with onClick
}




/* Hide While Loading Stuff */
/*------------------------------------------------------------*/
function showMe(){
	$('#container_main').css("visibility", "visible");
}





/* Launch listings if there are any */
/*------------------------------------------------------------*/
function launchListings(){
	var listingStatus = $('body').find('.listing-wrapper').length;
	var searchStatus = $('body').find('#search-results').length;
	if (listingStatus == '1' && searchStatus == '0'){
		setTimeout("CallListTemplate();",1000)
	}else{
		return false;
	}
}




/* Main Navigation */
/*------------------------------------------------------------*/
function initNav(){
	 $('.find_home').hover(function() {
		$(this).css("background-image","url(/images/find_down.gif)", "top");
		$(this).css("z-index","3000");
		$("#find_home_drop").css("display","block");
	      }, function() {
		$(this).css("background-image","url(/images/find_up.gif)", "top");	  
	   $("#find_home_drop").css("display","none");
	  });
	 
	  $('#find_home_drop').mouseover(function() {
		$('#find_home_drop').css("display","block");
		$('#find_home_drop').css("z-index","2000");
		$("a.find_home").css("background-image","url(/images/find_down.gif)", "top");
	   }).mouseout(function(){
	    $("#find_home_drop").css("display","none");
	  	$("a.find_home").css("background-image","url(/images/find_up.gif)", "top");
	  });
	/* ------------------------- */
	 $('.buy_home').hover(function() {
		$(this).css("background-image","url(/images/builder_down.gif)", "top");
		$(this).css("z-index","3000");
		$("#buy_home_drop").css("display","block");
	      }, function() {
		$(this).css("background-image","url(/images/builder_up.gif)", "top");	  
	   $("#buy_home_drop").css("display","none");
	  });
	 
	  $('#buy_home_drop').mouseover(function() {
		$('#buy_home_drop').css("display","block");
		$('#buy_home_drop').css("z-index","2000");
		$("a.buy_home").css("background-image","url(/images/builder_down.gif)", "top");
	   }).mouseout(function(){
	    $("#buy_home_drop").css("display","none");
	  	$("a.buy_home").css("background-image","url(/images/builder_up.gif)", "top");
	  });
	/* ------------------------- */
	   $('.my_esh').hover(function() {
		$(this).css("background-image","url(/images/esh_down.gif)", "top");
		$(this).css("z-index","10");
		$("#myesh_drop").css("display","block");
	      }, function() {
		$(this).css("background-image","url(/images/esh_up.gif)", "top");	  
	   $("#myesh_drop").css("display","none");
	  });
	
	
	  $('#myesh_drop').hover(function() {
		$(this).css("display","block");
		$("a.my_esh").css("background-image","url(/images/esh_down.gif)", "top");
		$(this).css("z-index","5");
	      }, function() {
	   $(this).css("display","none");
	   $("a.my_esh").css("background-image","url(/images/esh_up.gif)", "top");
	  });
	/* ------------------------- */ 
	   $('.blog_nav').hover(function() {
		$(this).css("background-image","url(/images/blog_down.gif)", "top");
		$(this).css("z-index","3000");
	      }, function() {
		$(this).css("background-image","url(/images/blog_up.gif)", "top");	  
	  });
}







/* Ask the Builder Profile Buttons */
/*------------------------------------------------------------*/
function askBuilderBtnsClear(){
	if ($('#builder_number_box').css('display') == 'none' || $('#contact_box').css('display') == 'none'){
		$("a.call_the_builder img").attr('src', '/images/call_up.gif');
		$("a.msg_the_builder img").attr('src', '/images/msg_up.gif');
	}
}

function askBuilderBtns(){
	$('a.close').click(function(){
		askBuilderBtnsClear();
	});
	//call
    $("a.call_the_builder img").hover(function(){
		$(this).attr('src', '/images/call_down.gif');
    },
	function(){
		if ($('#builder_number_box').css('display') == 'none'){
			$(this).attr('src', '/images/call_up.gif');
		}
    });
   
    //message
     $("a.msg_the_builder img").hover(function(){
		$(this).attr('src', '/images/msg_down.gif');
    },
	function(){
		if ($('#contact_box').css('display') == 'none'){
			$(this).attr('src', '/images/msg_up.gif');
		}
    });


}


/* Advanced Search Functionality */
/*------------------------------------------------------------*/
function getInfo(string,txtboxid){//this puts the string from the link into the textbox
	$(txtboxid).attr('value', string);
}

function advanSearchPageInit(){
     
      /* Search Box Drop Box */
	/*------------------------*/
	$('.s3-wrap .txt-box').blur(function() {
		setTimeout("$('.s3-box').hide();", 400);
	});
	$('.s3-wrap .txt-box').keydown(function(e) {
		var dropHeight = $(this).height()+6;//plus 4 for paddding and 2 for border thats on all boxes
		$('.s3-wrap .s3-box').css('top',dropHeight);//set the distance from top of div
		
		if (e.keyCode == 40){//down
			var started = $('.s3-box a').hasClass('selected');
			if (started == false){
				$('.s3-box a:first').addClass('selected');
				console.log('you have just began your journey');
			} else {
				var nextItem = $('.s3-box .selected').next('.s3-box a:first');
			var endOfTheRoad = $(nextItem).html();
			if (endOfTheRoad == null){//if can't go any further
				//don't do anything
				console.log('cant go any further');
			}else{
					//console.log('keep going!');
					$('.s3-box a').removeClass('selected');
					$(nextItem).addClass('selected');
					var currentDis = $(".s3-box .selected").position('.s3-box');
					var currentBoxDis = $(".s3-box").scrollTop();
					var boxOffset = $(".s3-box").offset();
					//var overallHeight = boxOffset.top;
					//console.log(boxOffset.top);
					//console.log(currentDis.top);
					//console.log(currentBoxDis);
					//if (overallHeight > 300){
					//	console.log('The list is kind of long');
						
					//}
					
					
					
					//if (currentDis >= 270 && currentBtm <= 272){
					//	console.log('TO FAR!!!!!');
					//	$(".s-box").scrollTop(272);
					//}
				}
			}
		} else if (e.keyCode == 38){//up
			var nextItem = $('.s3-box .selected').prev('.s3-box a:first');
			var endOfTheRoad = $(nextItem).html();
			if (endOfTheRoad == null){//if can't go any further
				//don't do anything
				console.log('cant go any further');
			}else{
				$('.s3-box a').removeClass('selected');
				$(nextItem).addClass('selected');
				//console.log('keep going!');
				var scrollDis = $(".s3-box .selected").position('.s3-box');
				//console.log(scrollDis.top);
				//if (scrollDis =)
			}
			
	    } else if (e.keyCode == 13){//enter
			var aString = $('.s3-box a.selected').html();
			$('#txtSearch').attr('value', aString);
			//$(txtboxid).attr('value', aString);
			
			setTimeout("$('.s3-box').hide();", 50);
		} else {
			$('.s3-box').show();			
			setTimeout("SearchCityStateZipData();", 10);			
			//console.log('SEARCH FIRED');
		}
	});     
     
     
     /* Search Box Drop Box */
	/*------------------------*/
	$('.s2-wrap .txt-box').blur(function() {
		setTimeout("$('.s2-box').hide();", 400);
	});
	$('.s2-wrap .txt-box').keydown(function(e) {
		var dropHeight = $(this).height()+6;//plus 4 for paddding and 2 for border thats on all boxes
		$('.s2-wrap .s3-box').css('top',dropHeight);//set the distance from top of div
		
		if (e.keyCode == 40){//down
			var started = $('.s2-box a').hasClass('selected');
			if (started == false){
				$('.s2-box a:first').addClass('selected');
				console.log('you have just began your journey');
			} else {
				var nextItem = $('.s2-box .selected').next('.s2-box a:first');
			var endOfTheRoad = $(nextItem).html();
			if (endOfTheRoad == null){//if can't go any further
				//don't do anything
				console.log('cant go any further');
			}else{
					//console.log('keep going!');
					$('.s2-box a').removeClass('selected');
					$(nextItem).addClass('selected');
					var currentDis = $(".s2-box .selected").position('.s2-box');
					var currentBoxDis = $(".s2-box").scrollTop();
					var boxOffset = $(".s2-box").offset();
					//var overallHeight = boxOffset.top;
					//console.log(boxOffset.top);
					//console.log(currentDis.top);
					//console.log(currentBoxDis);
					//if (overallHeight > 300){
					//	console.log('The list is kind of long');
						
					//}
					
					
					
					//if (currentDis >= 270 && currentBtm <= 272){
					//	console.log('TO FAR!!!!!');
					//	$(".s-box").scrollTop(272);
					//}
				}
			}
		} else if (e.keyCode == 38){//up
			var nextItem = $('.s2-box .selected').prev('.s2-box a:first');
			var endOfTheRoad = $(nextItem).html();
			if (endOfTheRoad == null){//if can't go any further
				//don't do anything
				console.log('cant go any further');
			}else{
				$('.s2-box a').removeClass('selected');
				$(nextItem).addClass('selected');
				//console.log('keep going!');
				var scrollDis = $(".s2-box .selected").position('.s2-box');
				//console.log(scrollDis.top);
				//if (scrollDis =)
			}
			
	    } else if (e.keyCode == 13){//enter
			var aString = $('.s2-box a.selected').html();
			$('#txtSearchForKeyword').attr('value', aString);
			//$(txtboxid).attr('value', aString);
			
			setTimeout("$('.s2-box').hide();", 50);
		} else {
			$('.s2-box').show();			
			setTimeout("SearchKeywordByKeyWithoutPopup();", 10);			
			//console.log('SEARCH FIRED');
		}
	});     
     
     /* Search Box Drop Box */
	/*------------------------*/
	$('.s1-wrap .txt-box').blur(function() {
		setTimeout("$('.s1-box').hide();", 400);
	});
	$('.s1-wrap .txt-box').keydown(function(e) {
		var dropHeight = $(this).height()+6;//plus 4 for paddding and 2 for border thats on all boxes
		$('.s1-wrap .s1-box').css('top',dropHeight);//set the distance from top of div
		
		if (e.keyCode == 40){//down
			var started = $('.s1-box a').hasClass('selected');
			if (started == false){
				$('.s1-box a:first').addClass('selected');
				console.log('you have just began your journey');
			} else {
				var nextItem = $('.s1-box .selected').next('.s1-box a:first');
			var endOfTheRoad = $(nextItem).html();
			if (endOfTheRoad == null){//if can't go any further
				//don't do anything
				console.log('cant go any further');
			}else{
					//console.log('keep going!');
					$('.s1-box a').removeClass('selected');
					$(nextItem).addClass('selected');
					var currentDis = $(".s1-box .selected").position('.s1-box');
					var currentBoxDis = $(".s1-box").scrollTop();
					var boxOffset = $(".s1-box").offset();
					//var overallHeight = boxOffset.top;
					//console.log(boxOffset.top);
					//console.log(currentDis.top);
					//console.log(currentBoxDis);
					//if (overallHeight > 300){
					//	console.log('The list is kind of long');
						
					//}
					
					
					
					//if (currentDis >= 270 && currentBtm <= 272){
					//	console.log('TO FAR!!!!!');
					//	$(".s-box").scrollTop(272);
					//}
				}
			}
		} else if (e.keyCode == 38){//up
			var nextItem = $('.s1-box .selected').prev('.s1-box a:first');
			var endOfTheRoad = $(nextItem).html();
			if (endOfTheRoad == null){//if can't go any further
				//don't do anything
				console.log('cant go any further');
			}else{
				$('.s1-box a').removeClass('selected');
				$(nextItem).addClass('selected');
				//console.log('keep going!');
				var scrollDis = $(".s1-box .selected").position('.s1-box');
				//console.log(scrollDis.top);
				//if (scrollDis =)
			}
			
	    } else if (e.keyCode == 13){//enter
			var aString = $('.s1-box a.selected').html();
			$('#txtCityStateZip').attr('value', aString);
			//$(txtboxid).attr('value', aString);
			
			setTimeout("$('.s1-box').hide();", 50);
		} else {
			$('.s1-box').show();			
			setTimeout("SearchCityStateZip();", 10);			
			//console.log('SEARCH FIRED');
		}
	});
     
        
	/* Search Box Drop Box */
	/*------------------------*/
	$('.s-wrap .txt-box').blur(function() {
		setTimeout("$('.s-box').hide();", 400);
	});
	$('.s-wrap .txt-box').keydown(function(e) {
		var dropHeight = $(this).height()+6;//plus 4 for paddding and 2 for border thats on all boxes
		$('.s-wrap .s-box').css('top',dropHeight);//set the distance from top of div
		
		if (e.keyCode == 40){//down
			var started = $('.s-box a').hasClass('selected');
			if (started == false){
				$('.s-box a:first').addClass('selected');
				console.log('you have just began your journey');
			} else {
				var nextItem = $('.s-box .selected').next('.s-box a:first');
			var endOfTheRoad = $(nextItem).html();
			if (endOfTheRoad == null){//if can't go any further
				//don't do anything
				console.log('cant go any further');
			}else{
					//console.log('keep going!');
					$('.s-box a').removeClass('selected');
					$(nextItem).addClass('selected');
					var currentDis = $(".s-box .selected").position('.s-box');
					var currentBoxDis = $(".s-box").scrollTop();
					var boxOffset = $(".s-box").offset();
					//var overallHeight = boxOffset.top;
					//console.log(boxOffset.top);
					//console.log(currentDis.top);
					//console.log(currentBoxDis);
					//if (overallHeight > 300){
					//	console.log('The list is kind of long');
						
					//}
					
					
					
					//if (currentDis >= 270 && currentBtm <= 272){
					//	console.log('TO FAR!!!!!');
					//	$(".s-box").scrollTop(272);
					//}
				}
			}
		} else if (e.keyCode == 38){//up
			var nextItem = $('.s-box .selected').prev('.s-box a:first');
			var endOfTheRoad = $(nextItem).html();
			if (endOfTheRoad == null){//if can't go any further
				//don't do anything
				console.log('cant go any further');
			}else{
				$('.s-box a').removeClass('selected');
				$(nextItem).addClass('selected');
				//console.log('keep going!');
				var scrollDis = $(".s-box .selected").position('.s-box');
				//console.log(scrollDis.top);
				//if (scrollDis =)
			}
			
	    } else if (e.keyCode == 13){//enter
			var aString = $('.s-box a.selected').html();
			$('#txtLocationDropBox').attr('value', aString);
			//$(txtboxid).attr('value', aString);
			
			setTimeout("$('.s-box').hide();", 50);
		} else {
			$('.s-box').show();			
			setTimeout("SearchLocation();", 10);			
			//console.log('SEARCH FIRED');
		}
	});
	
	/* Advanced Search Drop Down Boxes & Popup Tabs */
	/*------------------------------*/
	$('.dropper').click(function(){
		toggleBox(this);
	});
	
	function toggleBox(box){
		var sibling = $(box).next();
		var siblingState = $(sibling).css('display');
		if (siblingState == "block") {
			$(sibling).css('display', 'none');
			$(box).css('background-image', 'url(/images/arrow-closed.gif)');
		} else {
			$(box).css('background-image', 'url(/images/arrow-open.gif)');
			$(sibling).css('display', 'block');
		}
	}
	
	$('#zips-btn').click(function(){
		var zipState = $('#zips').css('display');
		if (zipState == "none"){
			$('#nbcom-btn').removeClass('active');
			$('#nearbycommunities').css('display','none');
			$('#zips').css('display','block');
			$(this).addClass('active');
		}
	});
	$('#nbcom-btn').click(function(){
		var nbcState = $('#nearbycommunities').css('display');
		if (nbcState == "none"){
			$('#zips-btn').removeClass('active');
			$('#zips').css('display','none');
			$('#nearbycommunities').css('display','block');
			$(this).addClass('active');
		}
	});
}






/* Advanced Search Tabs (toggle) */
/*------------------------------------------------------------*/

function searchKeySwitch() {
   $(".keyTab a").css("background", "url(/images/keywordtab_up.gif) no-repeat top");
   $(".locationTab a").css("background", "url(/images/locationtab_dwn.gif) no-repeat top");
   $("#keywords").css("display", "block");
   $("#location").css("display", "none");

}
function searchLocSwitch() {
	$(".keyTab a").css("background", "url(/images/keywordtab_dwn.gif) no-repeat top");
   $(".locationTab a").css("background", "url(/images/locationtab_up.gif) no-repeat top");
   $("#keywords").css("display", "none");
   $("#location").css("display", "block");
}




function getDetails(){
	var comName = $(".comName").parent().text();
	$('.getCommname').html(comName);
	//alert(comName);
}

function setRoomDetails() {
	var roomArray = $("#room_details .detail");//get num of details
	 for ( var i=0, len=roomArray.length; i<len; ++i ){
		 $(roomArray[i]).addClass(".detail"+i);//set each detail block it's own unique class
	 }
	//alert( $("#room.detail").parent().text() );
}





/* Listings Script */
/*------------------------------------------------------------*/
function hideDrops() {
	var multipleControls = $(".multiplecontrols > a");
	var currentItemControl = -1;
	var gmap = $("#gmlb_overlay");
	multipleControls.each(function(i){
		var className = "."+this.rel;
		var parent = $(this).parent().parent();
		var slideObj = parent.siblings(className);

		//unbind old click events
		$(this).unbind('click');
		
		if(className == ".send_extended"){
			$(this).click(function(){
				$(this).parent().parent().parent().addClass('selected-block');
				if (varFromType == '4'){
					$(this).unbind('click');
					$('.list_block').removeClass('selected-block');
				}
			});
		}
		if(className == ".request_info"){
			$(this).click(function(){
				$(this).parent().parent().parent().addClass('selected-block');
				if (varFromType == '4'){
					$(this).unbind('click');
					$('.list_block').removeClass('selected-block');
				}
			});
		}
		if(className == ".gmap"){
			$(this).click(function(){
				if(currentItemControl==i){
					$('.list_block').removeClass('selected-block');
					slideObj.slideUp('slow');
					currentItemControl = -1;
				}else{
					$(this).parent().parent().parent().addClass('selected-block');
					slideObj.slideDown('slow');
					hideOpenDrops(currentItemControl, multipleControls);
					$('#gmlb_overlay').prependTo(slideObj); 
					gm_ShowMap(this);
					currentItemControl = i;
				}
				return false;
			});
		
		}else{
			$(this).click(function(){
				$('.list_block').removeClass('selected-block');
				var display = slideObj.css("display");
				if(display == "none"){
					hideOpenDrops(currentItemControl, multipleControls);
					slideObj.slideDown('slow');
					currentItemControl = i;
					$(this).parent().parent().parent().addClass('selected-block');
				}else{
					slideObj.slideUp('slow');
					$('.list_block').removeClass('selected-block');
				}
				return false;
			});
		}
	});
}
function hideOpenDrops(currentItemControl, multipleControls){
	if(currentItemControl > -1){
		var openControl = multipleControls[currentItemControl];
		var openClassName = "."+openControl.rel;
		var openParent = $(openControl).parent().parent();
		var openSlideObj = openParent.siblings(openClassName);
		openSlideObj.slideUp('slow');
	}
}
function gmLb_restart(){
	gmlb_width=554;
	gmlb_height=277;
	gmOverlay;
	gmContainer;
	gmMap;
	gmLabel;
	gmMapObject = null;
	gm_zoom;
	gm_mapType;
	gm_close;
	gm_marker = null;
	$("#gmlb_overlay").remove();
}



/* Gallery in Profile Pages */
/*------------------------------------------------------------*/

function initProGal(){
 
 jQuery('#main_gal').jcarousel({visible: 4});//init main jcarousel
  
  var links = $("#main_gal img");

  links.each(function(i){
	var randomSteez = Math.round(20 + Math.random()*(20-32));
	var o = $(this).attr("rel");//tite
	var n = $(this).attr("alt");//description
	var s = $(this).attr("src");//src
	var comName = $(this).attr("rev");
	var leCloud = $("#cloud").append('<a class="pic' + i + '" rel="' + n + '" rev="' + s + '" onclick="/* centerPopup(); */" name="' + o + '" class="pic' + i + '" style="font-size: ' + randomSteez + 'px;">' + o + '</a> ');

	if(i==0){
		$('#pop_cap').html(n);
        $('#pop_title').html(o);
		$('#img_gal .title').html(o);
		$('#pop_img').html('<img class="photo'+ i +'" src="'+ s + '" alt="' + o + '" width= "500px" />');
		$('#imageViewer #button').html('<img class="photo'+ i +'" src="'+ s + '" alt="' + o + '" width= "460px" />');
  		$('#img_gal h3').html(comName);
  		$('p.caption').html(n);
	}

	$(".pic"+i).click (function(){
			$('#pop_cap').html(n);
	        $('#pop_title').html(o);
			$('#img_gal .title').html(o);
			$('#pop_img').html('<img class="photo'+ i +'" src="'+ s + '" alt="' + o + '" width= "500px" />');
	 });

  });
    //makes thumbnail appear in main viewer when rolled over
  $(links).mouseover(function(){
    var image = $(this).attr("src");
	var caption = $(this).attr("alt");
	var title = $(this).attr("rel");
	var comName = $(this).attr("rev");
	$('#imageViewer #button').html('<img src="'+ image + '" alt="' + caption + '" height= "310px" />');
	$('#pop_img').html('<img src="'+ image + '" alt="' + caption + '" width= "500px" />');
    $('#pop_cap').html(caption);
    $('#pop_title').html(title);
	$('p.caption').html(caption);
	$('#img_gal .title').html(title);
	$('#img_gal h3').html(comName);
  });
  
}




/* Image Preview */
/*------------------------------------------------------------*/
function imagePreview(){	
	/* CONFIG */
		
		xOffset = 200;
		yOffset = 30;
		
		// these 2 variable determine popup's distance from the cursor
		// you might want to adjust to get the right result
		
	/* END CONFIG */
	$("a.preview").hover(function(e){
		this.t = this.title;
		this.title = "";	
		var c = (this.t != "") ? "<br/>" + this.t : "";
		$("body").append("<p id='preview'><img src='"+ this.href +"' alt='Image preview' />"+ c +"</p>");								 
		$("#preview")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px")
			.fadeIn("fast");						
    },
	function(){
		this.title = this.t;	
		$("#preview").remove();
    });	
	$("a.preview").mousemove(function(e){
		$("#preview")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px");
	});			
};




/* Share This Page */
/*------------------------------------------------------------*/
function openShareThisPage(){
	centerShareBox();
	
}

function share_this_page(type, url)
{
  var u = url;
  var t = encodeURIComponent(document.title);
  
  switch (type)
  {
    case 'facebook':
      window.open('http://www.facebook.com/sharer.php?u='+ u +'&t='+ t, 'shareesh', 'toolbar=0,status=0,width=626,height=436');
      break;
    case 'google_bkmk':
      window.open('http://www.google.com/bookmarks/mark?op=edit&bkmk='+ u +'&title='+ t, 'shareesh', '_blank');
      break;
    case 'myspace':
      window.open('http://www.myspace.com/index.cfm?fuseaction=postto&u='+ u +'&t='+ t, 'shareesh', '_blank');
      break;
    case 'technorati':
      window.open('http://technorati.com/faves?add='+ u, 'shareesh', '_blank');
      break;
    case 'digg':
      window.open('http://digg.com/submit?phase=2&url='+ u +'&title='+ t, 'shareesh', '_blank');
      break;
    case 'yahoo_bkmk':
      window.open('http://us.bookmarks.yahoo.com/admin/savebm?adminAction=Add&selectall=on&url='+ u + '&title=' + t, 'shareesh', '_blank');
      break;
    case 'delicious':
      window.open('http://del.icio.us/post?url='+ u +'&title='+ t, 'shareesh', '_blank');
      break;
    case 'stumble':
      window.open('http://www.stumbleupon.com/submit?url='+ u +'&title='+ t, 'shareesh', '_blank');
      break;
    case 'friendfeed':
      window.open('http://friendfeed.com/?url='+ u +'&title='+ t, 'shareesh', '_blank');
      break;
    case 'twitter':
      window.open('http://twitter.com/home?status='+ u, 'shareesh', '_blank');
      break;
    default:
      break;
  }

  return false;
}





/* Global Static Basic Popup */
/*------------------------------------------------------------*/
function lePop(id, status) {
	//alert(status);
	if (status == 'logged'){
		//staticPopup('/popup_reg-login.aspx');
	}else{
		var pos = {
    	  sTop : function() {
    	    return window.pageYOffset || document.documentElement && document.documentElement.scrollTop ||	document.body.scrollTop;
    	  },
    	  wHeight : function() { 
    	    return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body.clientHeight;
    	  }
    	};
    	var windowWidth = document.documentElement.clientWidth;
    	var popupWidth = $(id).width();
		var elHeight = $(id).height();
    	var elTop = pos.sTop() + (pos.wHeight() / 2) - (elHeight / 2);
    	var elLeft =  (windowWidth/2) - (popupWidth/2);
    		$(id).css({
    	    	position: 'absolute',
    	    	display: 'block',
    	    	marginTop: '0',
    	    	left: elLeft,
    	    	top: elTop
    	    });
     }
}





/* AJAX Alert Popup's */
/*------------------------------------------------------------*/
var currentID;
function alertPopup(page, id) {
	currentID = id;
	if ($(id).css('display') == 'none'){//if theres already a message on page, delete.
		$(id).remove();
	}
	
	$.get(page, function(data){//get message
		$('body').append(data);
	});
	
	$("body").ajaxComplete(function(request, settings){//once the message has been gotten
        var pos = {
        	sTop : function() {
        		return window.pageYOffset || document.documentElement && document.documentElement.scrollTop ||	document.body.scrollTop;
         },
            wHeight : function() { 
       			return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body.clientHeight;
         }
        };
    	var windowWidth = document.documentElement.clientWidth;
    	var popupWidth = $(id).width();
		var elHeight = $(id).height();
    	var elTop = pos.sTop() + (pos.wHeight() / 2) - (elHeight / 2);
    	var elLeft =  (windowWidth/2) - (popupWidth/2);
    	$(id).css({
        	position: 'absolute',
        	display: 'block',
        	marginTop: '0',
        	left: elLeft,
        	top: elTop
        });
        
        var t = setTimeout("fadePopup();", 3000);
        $(id+'>.close').click(function(){//if exited early
        	$(id).remove();
        	clearTimeout(t);
        });
 	});

}
 function fadePopup(){
	$(currentID).fadeOut("slow");//fade message
 }




/* AJAX Rounded Popup */
/*------------------------------------------------------------*/
function staticPopup(page) {
	$(".ajaxStaticPopup").remove();
	$(".bg").remove();
	
	$.get(page, function(data){//get message
		$('body').append(data);
	});
	
	$(this).ajaxStop(function(request, settings){//once the message has been gotten
        var pos = {
        	sTop : function() {
        		return window.pageYOffset || document.documentElement && document.documentElement.scrollTop ||	document.body.scrollTop;
         },
            wHeight : function() { 
       			return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body.clientHeight;
         }
        };
    	var windowWidth = document.documentElement.clientWidth;
    	var popupWidth = $('.ajaxStaticPopup').width();
		var elHeight = $('.ajaxStaticPopup').height();
    	var elTop = pos.sTop() + (pos.wHeight() / 2) - (elHeight / 2);
    	var elLeft =  (windowWidth/2) - (popupWidth/2);
    	
    	$(".bg").css({ "opacity": "0.7" });
    	$('.ajaxStaticPopup').css({
        	position: 'absolute',
        	marginTop: '0',
        	left: elLeft,
        	top: elTop
        });
   		$(".ajaxStaticPopup").fadeIn("slow");
		$(".bg").fadeIn("slow");
        $('.ajaxStaticPopup .close').click(function(){//if exited early
        	$(".ajaxStaticPopup").fadeOut("slow");
        	$(".bg").fadeOut("slow");
        });
        $(this).unbind('ajaxStop');
 	});	
}

function closeAjaxPopup(){
	$(".ajaxStaticPopup").fadeOut("slow");
	$(".bg").fadeOut("slow");
}



/* Main Profile Image Gallery Popup */
/*------------------------------------------------------------*/
function loadImagePopup() {
		imageLightBox();
}
function imageLightBox(){				  
	var pos = {
      sTop : function() {
        return window.pageYOffset || document.documentElement && document.documentElement.scrollTop ||	document.body.scrollTop;
      },
      wHeight : function() { 
        return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body.clientHeight;
      }
    };
    var windowWidth = document.documentElement.clientWidth;
    var popupWidth = $("#image_popup").width();
	var elHeight = $("#image_popup").height();
    var elTop = pos.sTop() + (pos.wHeight() / 2) - (elHeight / 2) - 50;
    var elLeft =  (windowWidth/2) - (popupWidth/2);
    	$("#image_popup").css({
        	position: 'absolute',
        	marginTop: '0',
        	left: elLeft,
        	top: elTop
        });
	

	$("#backgroundPopup").css({
		"opacity": "0.7"
	});
	$("#image_popup").fadeIn("slow");
	$("#backgroundPopup").fadeIn("slow");
	
	$("#backgroundPopup").click(function(){
		closeImageLightBox();
	});
	$("#popupContactClose").click(function(){
		closeImageLightBox();
	});

}
function closeImageLightBox(){
	$("#image_popup").fadeOut("slow");
	$("#backgroundPopup").fadeOut("slow");
}




/* Google Map Enlargement Popup */
/*------------------------------------------------------------*/
function loadGooglePopup() {
		$("#MainGoogleMap").prependTo("#map_popup .innerWrap");
		growMap();
		googleLightBox();
		$(".expand").css({"display" : "none"});
		blockFix();
}
function growMap() {
		$("#MainGoogleMap").css({
			"padding-left" : "175px",
			"padding-right" : "175px",
			"padding-top" : "100px",
			"padding-bottom" : "100px",
			"border" : "2px #CCC solid"
		});
}
function googleLightBox(){				  
	var pos = {
      sTop : function() {
        return window.pageYOffset || document.documentElement && document.documentElement.scrollTop ||	document.body.scrollTop;
      },
      wHeight : function() { 
        return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body.clientHeight;
      }
    };
    var windowWidth = document.documentElement.clientWidth;
    var popupWidth = $("#map_popup").width();
	var elHeight = $("#map_popup").height();
    var elTop = pos.sTop() + (pos.wHeight() / 2) - (elHeight / 2) - 50;
    var elLeft =  (windowWidth/2) - (popupWidth/2);
    	$("#map_popup").css({
        	position: 'absolute',
        	marginTop: '0',
        	left: elLeft,
        	top: elTop
        });
	
	
	$("#map_bg").css({
		"opacity": "0.7"
	});
	$("#map_popup").fadeIn("slow");
	$("#map_bg").fadeIn("slow");
	
	$("#map_bg").click(function(){
		closeLightBox();
	});
	$("#mapPopupContactClose").click(function(){
		closeLightBox();
	});

}
function closeLightBox(){
	$("#map_popup").fadeOut("slow");
	$("#map_bg").fadeOut("slow");
	$("#map_popup .innerWrap #MainGoogleMap").prependTo("#map_place");
	$("#MainGoogleMap").css({
			"padding-left" : "0",
			"padding-right" : "0",
			"padding-top" : "0",
			"padding-bottom" : "0",
			"border-top" : "none",
			"border-bottom" : "none",
			"border-left" : "1px #CCC solid",
			"border-right" : "1px #CCC solid"
		});
	$(".expand").css({
			"display" : "block"
	});
}
function blockFix(){
	var fixWidth = window.innerWidth-1;
	window.resizeTo(window.innerWidth,window.innerHeight +153);
}








/* Clear Carousel On Page Change in Listings */
/*------------------------------------------------------------*/
function clearCarousel() {
	$('img_extended').empty();
	//alert("test");
}



/* Print */
/*------------------------------------------------------------*/
function printWindow(){
   bV = parseInt(navigator.appVersion)
   if (bV >= 4) window.print()
}



/* jQuery Tabs */
/*------------------------------------------------------------*/
function initTabs(){
		$("ul.tabs").tabs({});
	
	    $("ul.fake").tabs(
	        defaults = {
	             navClass: 'ui-tabs-nav-fake',
	             selectedClass: 'ui-tabs-selected-fake',
	             unselectClass: 'ui-tabs-unselect-fake',
	             disabledClass: 'ui-tabs-disabled-fake',
	             panelClass: 'ui-tabs-panel-fake',
	             hideClass: 'ui-tabs-hide-fake',
	             loadingClass: 'ui-tabs-loading-fake'
	         }
	    );
		$(".searchTabs2 ul").tabs(
			 defaults = {
	             navClass: 'ui-tabs-nav-search',
	             selectedClass: 'ui-tabs-selected-search',
	             unselectClass: 'ui-tabs-unselect-search',
	             disabledClass: 'ui-tabs-disabled-search',
	             panelClass: 'ui-tabs-panel-search',
	             hideClass: 'ui-tabs-hide-search',
	             loadingClass: 'ui-tabs-loading-search'
	         }
	    );
}




/* jQuery Lazy Loader */
/*------------------------------------------------------------*/
(function($) {
    
    $.fn.lazyload = function(options) {
        var settings = {
            threshold : 0,
            failurelimit : 0
        };
                
        if(options) {
            $.extend(settings, options);
        };

        /* Fire one scroll event per scoll. Not one scroll event per image. */
        var elements = this;
        if (!settings.event) {
            $(window).bind("scroll", function(event) {
                var counter = 0;
                elements.each(function() {
                    if (!$.belowthefold(this, settings) 
                        && !$.rightoffold(this, settings)) {
                            $(this).attr("src", $(this).attr("original"));
                            this.loaded = true;
                    } else {
                        if (counter++ > settings.failurelimit) {
                            return false;
                        };
                    }
                });
                /* Remove image from array so it is not looped next time. */
                var temp = $.grep(elements, function(element) {
                    return !element.loaded;
                });
                elements = $(temp);
            });
        };

        return this.each(function() {
            var self = this;
        
            /* TODO: why to use attr? Possible memory leak. */
            $(self).attr("original", $(self).attr("src"));
            if (settings.event || $.belowthefold(self, settings) 
                               || $.rightoffold(self, settings)) {
                if (settings.placeholder) {
                    $(self).attr("src", settings.placeholder);                    
                } else {
                    $(self).removeAttr("src");
                }
                self.loaded = false;
            } else {
                self.loaded = true;
            }

            if (settings.event) {
                $(self)[settings.event](function(event) {
                    if (!self.loaded) {
                        $(self).attr("src", $(self).attr("original"));   
                        self.loaded = true;
                    };
                });
            };
        });

    };

    /* Convenience methods in jQuery namespace.           */
    /* Use as  $.belowthefold(element, {threshold : 100}) */

    $.belowthefold = function(element, settings) {
        var fold = $(window).height() + $(window).scrollTop();
        return fold <= $(element).offset().top - settings.threshold;
    }
    
    $.rightoffold = function(element, settings) {
        var fold = $(window).width() + $(window).scrollLeft();
        return fold <= $(element).offset().left - settings.threshold;
    }
    
    /* Custom selectors for your convenience.   */
    /* Use as $("img:belowthefold").something() */

    $.extend($.expr[':'], {
        belowthefold : "$.belowthefold(a, {threshold : 0})",
        abovethefold : "!$.belowthefold(a, {threshold : 0})",
        rightoffold  : "$.rightoffold(a, {threshold : 0})",
        leftoffold   : "!$.rightoffold(a, {threshold : 0})"
    });
    
})(jQuery);


