/**
 * dboytsov.
 * Copy past from /ndobin/base.js
 * 
 * HomeAway namespace
 */

//var $ = jQuery.noConflict();

var ha = {
strings: {},
	settings: {},
    
    util: {
    	isInt: function(c){ return((c>="0")&&(c<="9")) },
    	initToggles: function(){
			$(".expand .content").addClass("hidden");
			$(".expand .show").removeClass("hidden");
			$(".expand .action").bind("click", function(){
				var el = $(this).parent("div.container").children("div.content");
				if(el.hasClass("hidden")){
					el.removeClass("hidden");
					$(this).addClass("open");
				}
				else{
					el.addClass("hidden");
					$(this).removeClass("open");
				}
			});
		},
		initPopupUrls: function(){
			$(".popup-url").bind("click", function(){
				window.open(this.href);
				return false;
			});
		},	
		initSearchSwap: function(){
			if($("#searchKeywords").val() == ""){ 
				$("#searchKeywords").addClass("default");
				$("#searchKeywords").val($("#searchKeywords").attr("rel"));
			}
			else if($("#searchKeywords").val() != $("#searchKeywords").attr("rel")){
				$("#searchKeywords").val($("#searchKeywords").attr("rel"));
			}
			$("#searchKeywords").focus(function(){
				var val = $(this).val();
				$(this).removeClass("default");	
				if($(this).attr("rel") == $(this).val()){
					$(this).val("");
				}
			});
			$("#searchKeywords").blur(function(){
				var val = $(this).val();
				$(this).removeClass("default");
				if($(this).val() == ""){
					$(this).addClass("default");
					$(this).val($(this).attr("rel"));
				}
			});
			$("#startDateInput, #endDateInput").each(function(){
				if ($(this).val() == "" || $(this).val().indexOf("/") == -1){
					$(this).val($(this).attr("rel"));
					$(this).addClass("default");
				}
			});

			if($("#searchKeywordsWidget").val() == ""){ 
					$("#searchKeywordsWidget").addClass("default");
					$("#searchKeywordsWidget").val($("#searchKeywordsWidget").attr("rel"));
				}
				else if($("#searchKeywordsWidget").val() != $("#searchKeywordsWidget").attr("rel")){
					$("#searchKeywordsWidget").val($("#searchKeywordsWidget").attr("rel"));
					$("#searchKeywordsWidget").attr("rel");
				}
				$("#searchKeywordsWidget").focus(function(){
					var val = $("#searchKeywordsWidget").val();
					$("#searchKeywordsWidget").removeClass("default");	
					if($("#searchKeywordsWidget").attr("rel") == $("#searchKeywordsWidget").val()){
						$("#searchKeywordsWidget").val("");
					}
				});
				$("#searchKeywordsWidget").blur(function(){
					var val = $("#searchKeywordsWidget").val();
					$("#searchKeywordsWidget").removeClass("default");
					if($("#searchKeywordsWidget").val() == ""){
						$("#searchKeywordsWidget").addClass("default");
						$("#searchKeywordsWidget").val($("#searchKeywordsWidget").attr("rel"));
					}
				});
				
		},
		
		    initSubmit: function(){
				$('.searchKeywords').keyup(function(e){
		        		e = e || window.event;
		        		var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
		        		if (keyCode == 13) {
		        			ha.util.submit(e);
		        		}
		       	 });
				// this function attaches the submit function to the submit button of search froms
				$('form[id=keywordSearchForm],form[id=widget-search-form]').each(function(){
					$(this).submit(function(){ return false; });
		
					$('.search-submit-button', $(this)).click(function(e){
						ha.util.submit(e);
					});
				});
		    },
		
		    submit: function(e){
				// this function checks the search form keyword value against the defualt value to make sure the default value isnt passed when the user hasnt entered a keyword
		        alert(1);
				var formObj = $(e.target).parents('form'); //gets the parent form of the submit button clicked
				var keywords = $("input[name=keywords]", formObj).val();    //gets the value of the forms keyword input	
				var defaultMessage = $("input[rel]", formObj).attr("rel");	 //gets the default value of the keyword input
		
				var arrival = $("input[name=startDateInput]", formObj).val();
				var departure = $("input[name=endDateInput]", formObj).val();
		
				if ($.trim(keywords) != "" && keywords != defaultMessage) {
					keywords = "/keywords:" + encodeURIComponent(keywords);
				} else {
					keywords = "";
				}
		
				var url = brand.siteDomain + '/search';
				      url += keywords;
				      url += ha.util.dateParam($("input[name=startDateInput]", formObj) ,'arrival');
				      url += ha.util.dateParam($("input[name=endDateInput]", formObj), 'departure');
		
				window.location = url;
		    },
		
		    // return a formatted url param for a given search date string
		    dateParam: function(o,s){
				if ((typeof $(o).val() == "undefined") || (ha.util.delim($(o).val()) == "")){
		  			return "";
		  		} else if ($(o).val() != ha.strings.dateInputHelpText) {
		  			if (ha.strings.dateInputHelpText == 'mm/dd/yyyy') {
		  				var parts = $(o).val().split("/")
		  				return '/' + s + ':' + parts[2] + '-' + parts[0] + '-' + parts[1];
		  			}
		  			return '/' + s + ':' + $(o).val().split("/").reverse().join("-");
		  		}
		  		return "";
		 },
		    
		    // set the date string delimiters
		    delim: function(s){
				if (s.indexOf("/") == -1) {
					if(s.indexOf("-") > -1) s = s.replace(/-/g, "/");
					else if(s.indexOf(".") > -1) s = s.replace(/\./g, "/");
					else s = "";
				}
				return s;
		    }
		}
    
    
};

// new datepicker
ha.util.datepicker = {

	init: function(){
		$("form").each(function(){
			var $form = $(this);
		 	if ($(".datepicker-start", $form).length > 0 && $(".datepicker-end", $form).length > 0){
		 		$(".datepicker").each(function(){
		 			$(this).data("previous_value", $(this).val());
		 		});
				$('.datepicker-start', $form).datepicker({ 
					showAnim:"",
					minDate: 0,
					beforeShow: function() {
						setTimeout(function() {
								$('#ui-datepicker-div').css({zIndex:1500000});
						}, 10);
					},
					
					onSelect: function(){
						// if end start is cleared, clear end date too
						if(!$(this).val()){
							$(".datepicker-end", $form).val("");
						}
						ha.util.datepicker.updateDates($(this));

					},
					onClose:function(){
						// if the value changed, show the end date
						if($(this).val() && $(this).attr("rel") != $(this).val() && $(this).data("previous_value") != $(this).val()){
							var end = $('.datepicker-end', $form);
							setTimeout("$(\"#" + end.attr("id") + "\").focus()", 1);
						}
						$(this).data("previous_value", $(this).val());
					}
				});
				$('.datepicker-end', $form).datepicker({
				
					showAnim: "",
					minDate: +1,
					beforeShow: function() {
						setTimeout(function() {
							$('#ui-datepicker-div').css({zIndex:1500000});
						}, 10);
					},
					onSelect: function(){
						// if end date is cleared, clear start date too
						if(!$(this).val()){
							$(".datepicker-start", $form).val("").data("previous_value", "");
						}
						ha.util.datepicker.updateDates($(this));
					},
					onClose:function(){
						if(!$(".datepicker-start", $form).val() && $(this).val()){
							var start = $('.datepicker-start', $form);
							setTimeout("$(\"#" + start.attr("id") + "\").focus()", 1);
						}
						if ($("body.search-page").length > 0){
							ha.page.search.update(search.baseUrl);
						}
					}
				});
				$('.datepicker-end', $form).click(function(dateText, inst) { 
					var sv = $('.datepicker-start', $form).val();
					if (sv == '' || sv == $('.datepicker-start', $form).attr("rel")){
						$('.datepicker-end', $form).trigger('blur');
						$('.datepicker-start', $form).trigger('focus');
					}
				});
			} else if ($(".datepicker-start", $form).length > 0) {
				$('.datepicker-start', $form).datepicker({
					maxDate: -1, 
					showAnim: "",
					onClose:function(){
						if($(this).parents('#reviewForm').length > 0){
							$('#nameOnContract').focus();							
						}
					}
				});
				$(".datepicker", $form).change(function(){ ha.util.datepicker.updateStartDate(); });
			}
		});
	 	$('#ui-datepicker-div.ui-helper-clearfix').hide();
		
	},
	
	which: function(el){
		return $(el).attr("class").indexOf("datepicker-start") > -1 
			? "start" : $(el).attr("class").indexOf("datepicker-end") > -1 
				? "end" : null;
	},
	
	other: function(el, which){
		return $(el).parents("form").find("." + which);
	},
		
	updateDates: function(el) {
		$('#ui-datepicker-div.ui-helper-clearfix').show();
		
		var which = ha.util.datepicker.which(el);
		
		if(which == null){
			alert("no start or end date was found");
			return;
		}
		
		var start, end;

		if(which == "start"){
			start = el;
			end = ha.util.datepicker.other(el, "datepicker-end");
		}
		else{
			start = ha.util.datepicker.other(el, "datepicker-start");
			end = el;
		}
		
		if(start == null || end == null){
			alert("datepicker could not execute");
			return;
		}

		var startDate = start.datepicker("getDate");
		var startTime = startDate != null ? startDate.getTime() : 0;
		var endDate = end.datepicker("getDate");
		var endTime = endDate != null ? endDate.getTime() : 0;
		
		if (which == "start" && startTime > endTime){
			var endDate = startDate;
			endDate.setDate(startDate.getDate() + 1);
			if(endTime <= startTime){
				end.datepicker('setDate', endDate);
			}
			end.datepicker('option', 'minDate', endDate);
		} else if (startDate != null) {
			var minDate = startDate;
			minDate.setDate(startDate.getDate() + 1);
			end.datepicker('option', 'minDate', minDate);
		}
		
		$('.datepicker').each(function(){
			if ($(this).val() && $(this).val() == $(this).attr("rel")){alert('hi Im defualt');
				$(this).addClass("default");
			}
			else{
				$(this).removeClass("default"); 
			}
		});
		
	},
	
	updateStartDate: function() {
		$('#ui-datepicker-div.ui-helper-clearfix').css('display','block');
		if(typeof($("#startDateInput").attr("rel")) != 'undefined'){
			if ($("#startDateInput").val() != $("#startDateInput").attr("rel")){
				$("#startDateInput").removeClass("default"); 
			}
		}
	}
};
// end new datepicker

jQuery(function($){
	$.datepicker.regional['en-US'] = {
		closeText: 'Çàêðûòü',
		prevText: 'Ïðåä',
		nextText: 'Ñëåä',
		clearText: 'Î÷èñòèòü',
                monthNames: ['ßíâàðü','Ôåâðàëü','Ìàðò','Àïðåëü','Ìàé','Èþíü', 'Èþëü','Àâãóñò','Ñåíòÿáðü','Îêòÿáðü','Íîÿáðü','Äåêàáðü'],
                monthNamesShort: ['ßíâ', 'Ôåâ', 'Ìàð', 'Àïð', 'Ìàé', 'Èþí','Èþë', 'Àâã', 'Ñåï', 'Îêò', 'Íîÿ', 'Äåê'],
                dayNames: ['Âîñêðåñåíüå', 'Ïîíåäåëüíèê', 'Âòîðíèê', 'Ñðåäà', '×åòâåðã', 'Ïÿòíèöà', 'Ñóááîòà'],
		dayNamesShort: ['Âñê', 'Ïíò', 'Âòð', 'Ñðä', '×òâ', 'Ïòí', 'Ñáò'],
		dayNamesMin: ['Âñ','Ïí','Âò','Ñð','×ò','Ïò','Ñá'],
		weekHeader: 'Íä',
		dateFormat: 'dd/mm/yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		showButtonPanel: true,
                currentText: 'Ñåãîäíÿ',
		yearSuffix: ''                
	};
	$.datepicker.setDefaults($.datepicker.regional['en-US']);
        
});



$(document).ready(function(){
    
        $('.listing').bind('mouseover', function(){
            $('.listing.on').removeClass('on');
            $(this).addClass('on');
        });
        $('.listing').bind('mouseout', function(){
            $(this).removeClass('on');
        }) 
        $('.listing').bind('click' ,function(){            
            var href = $(this).find('a.listing-url');
            href = href[0];
            href = $(href).attr('href');
            window.location = href;
        });
        
})






