function initSlider(){
	
	$("#slider-range-min").slider({
		range: "min",
		value: 30,
		min: 5,
		max: 50,
		slide: function(event, ui) {
			$("#amount").val(ui.value+' miles').css({
				left: $('a.ui-slider-handle').css('left')
			});
		}
 	});

	$("#amount").val($("#slider-range-min").slider("value")+' miles').css({
		left: $('a.ui-slider-handle').css('left')
	});
        


}

// FUNCTION NAME: setSlider
// FUNCTION PURPOSE: to visually set the position of the slider and set the value.
// FUNCTION INTERFACE: function setSlider(value)
//                     value: value to set the slider to
// DATE: July 23, 2010
function setSlider(value)
{
    $( "#slider-range-min" ).slider( "option", "value", value);

    $("#amount").val($("#slider-range-min").slider("value")+' miles').css({
            left: $('a.ui-slider-handle').css('left')
    });
        

}
// FUNCTION NAME: synchAmenity
// FUNCTION PURPOSE: keeps checkboxes in synch with users session.
// FUNCTION INTERFACE: function synchAmenity(amenities)
//                     amenities: amenity decimal digit.
// DATE: July 23, 2010
function synchAmenity(amenities)
{

    var amenityIdList =new Array(
			"aaa_amenity",
			"airport_amenity",
			"amusement_amenity",
			"breakfast_amenity",
			"business_amenity",
			"channels_amenity",
			"coffee_amenity",
			"cleaning_amenity",
			"blowdry_amenity",
			"fitness_amenity",
			"golf_amenity",
			"handicapped_amenity",
			"internet_amenity",
			"iron_amenity",
			"kids_amenity",
			"vehicle_amenity",
			"localcalls_amenity",
			"microwave_amenity",
			"news_amenity",
			"nonsmoking_amenity",
			"pets_amenity",
			"pool_amenity",
			"fridge_amenity",
			"restaurant_amenity",
			"shopping_amenity",
			"valet_amenity",
			"waterview_amenity",
			"wifi_amenity"
	);

   // convert amenity decimal to binary
   amenityString = amenities +'';
   amenityDigit = amenityString;
   amenityString = parseInt(amenityString);
   binaryString = amenityString.toString(2);

   // check boxes that are needed to be checked
   box = 0;
   for(var i = (binaryString.length - 1); i >= 0; i--)
   {
       // if bit is set to 1, then that amenity has been selected.
       if(binaryString[i] == '1')
       {
           boxId = amenityIdList[box];
           $('input[id=' + boxId + ']').attr('checked', true);

       }
       box++;
   }
}
function escapeHTMLEncode(str) {
  //var div = document.createElement('div');
  //var text = document.createTextNode(str);
  //div.appendChild(text);
  //return div.innerHTML;
  var encodedStr = str.replace('&', '%26');
 encodedStr = encodedStr.replace(/\//g,"%2F");
 encodedStr = encodedStr.replace(/\?/g,"%3F");
 encodedStr = encodedStr.replace(/=/g,"%3D");
 encodedStr = encodedStr.replace(/&/g,"%26");
 encodedStr = encodedStr.replace(/@/g,"%40");
  return encodedStr;


 }

function AccountAction(str)
{
    if(str == 'flash-guide')
    {        
		deleteCookie('roomsaver_member');
		deleteCookie('roomsaver_member_name');	        

        // show full form elements
        document.getElementById('new_user_flash_guide').value = 1;
        document.getElementById('city_guide_pickup').style.display = 'block';
        document.getElementById('zip_guide_pickup').style.display = 'block';
        document.getElementById('phone_guide_pickup').style.display = 'block';
        document.getElementById('cityLbl').style.display = 'block';
        document.getElementById('zipLabel').style.display = 'block';
        document.getElementById('phoneLabel').style.display = 'block';
        document.getElementById('email_guide_pickup').value = "";
        document.getElementById('not-me-guide-span').display = 'none';
        document.getElementById('email_guide_pickup').value = "Enter your account email.";document.getElementById('not-me-guide-span').innerHTML = "<a href=\"javascript: void(0)\" onclick=\"AccountAction('account')\">(Member?)</a>";
        document.getElementById('new_user_flash_guide').value = 1;

    } else if(str == 'account')
    {
        // user email is set
        document.getElementById('city_guide_pickup').style.display = 'none';
        document.getElementById('zip_guide_pickup').style.display = 'none';
        document.getElementById('phone_guide_pickup').style.display = 'none';
        document.getElementById('cityLbl').style.display = 'none';
        document.getElementById('zipLabel').style.display = 'none';
        document.getElementById('phoneLabel').style.display = 'none';

         // not new user, so flag set to 0
        document.getElementById('new_user_flash_guide').value = 0;
        document.getElementById('not-me-guide-span').display = 'block';
        document.getElementById('email_guide_pickup').value = "Enter your account email.";document.getElementById('not-me-guide-span').innerHTML = "<a href=\"javascript: void(0)\" onclick=\"AccountAction('flash-guide')\">(Not Me)</a>";
        
    }

}
function couponAction() {

    var error    = "";
    var email    = "email=" + $('#email_coupon-form').val() + "&";
    var friendEmail    = "friendEmail=" + $('#friendEmail_coupon-form').val() + "&";
    var message = "messageCoupon=" + escapeHTMLEncode($('#message_coupon-form').val()) + "&";
    var link = "linkCoupon=" + escapeHTMLEncode($('#coupon-form-link').val());

    error = spamCheck($("#sp_value_email").val());
    
    if(error == "") {
	    element_list = email + friendEmail + message + link;
	
	    $.ajax({
			'async': false,
			'url': '/ajax/lookup/type/coupon/',
			'data': element_list,
			'dataType': 'json',
			'type': 'POST',
			'success': function (data) {
		    	if(data['error'] != "") {
		    		error = data['error'];
		    	}
		    }
		});
    }
    return error;
}

function contactUsAction() {

	var error    = "";
	var email    = "email=" + $('#email').val() + "&";
	var comments  = "comments=" + $('#comments').val() + "&";
	var subject  = "subject=" + $('#subject').val() + "&";
	var subject2= "subject2=" + $('#subject2').val() + "&";
    var city_state = "city=" + $('#city_contact_us').val() + "&";
	var name  = "name=" + escapeHTMLEncode($('#name').val()) + "&";
    var property_name = "property_name=" + $('#property_name').val() + "&";
    var city_state = "city=" + $('#city_contact_us').val();
	
	error = spamCheck($("#sp_value_contact").val());
	if(error == "") {
		element_list= email + comments + subject + subject2 + name + property_name + city_state;
	
		$.ajax({
			'async': false,
			'url': '/ajax/lookup/type/contact_us/',
			'data': element_list,
			'dataType': 'json',
			'type': 'POST',
		    //'error': function (data,textStatus,errorThrown) {alert(data.responseText + textStatus + errorThrown);},
			'success': function (data) {
		    	if(data['error'] != "") { 
		    		error = data['error'];
		    	} else
	                {
	                    Contact(this); // S Code analytics code.
	                }
		    }
		});
	}
	return error;
}
//******************************************************************************
// FUNCTION NAME: Show
// FUNCTION PURPOSE: toggles visibility of element passed in
// FUNCTION INTERFACE: Show(element)
//                     element: id of element to be toggled.
// PROGRAMMER: Jordan Lewis
// DATE: June 29th, 2010
// RETURN: void
//******************************************************************************
function Show(element) {

    if(document.getElementById(element).style.display == 'none') {
        document.getElementById(element).style.display = 'block';
        if(element == 'restrauntList')
            document.getElementById('closeGuidesImg').style.display = 'block';
    }
    else {
        document.getElementById(element).style.display = 'none';
        if(element == 'restrauntList')
            document.getElementById('closeGuidesImg').style.display = 'none';
    }
}

function addHotelAction() {

	var error    = "";
        var custId = "custId=" + $('#custId_add_hotel').val() + "&";
	var email    = "email=" + $('#email_add_hotel').val() + "&";
	var comments  = "comments=" + $('#comments_add_hotel').val() + "&";
	var subject  = "subject=" + $('#subject_add_hotel').val() + "&";
	var subject2= "subject2=" + $('#subject2_add_hotel').val() + "&";
        var phoneNumber = "phoneNumber=" + $('#phone_add_hotel').val() + "&";
        var cityState = "cityState=" + $('#cityState_add_hotel').val() + "&";
	var hotel  = "hotel=" + escapeHTMLEncode($('#hotel_add_hotel').val());

	error = spamCheck($("#sp_value_modify").val());
	
	if(error == "") {
	
		element_list= custId + email + comments + subject + subject2 + phoneNumber + cityState + hotel;
	
		$.ajax({
			'async': false,
			'url': '/ajax/lookup/type/add_hotel/',
			'data': element_list,
			'dataType': 'json',
			'type': 'POST',
		    //'error': function (data,textStatus,errorThrown) {alert(data.responseText + textStatus + errorThrown);},
			'success': function (data) {
		    	if(data['error'] != "") { 
		    		error = data['error'];
		    	} else
	                {
	                    AddHotel(this); // S Code analytics code.
	                }
		    }
		});
	}
	return error;
}

/** non-multi checkbox **/
function getCheckboxValue(id,name) {
    
	var checkboxValue = "0";
	if($('#'+ id +':checked').length == 1){
    	checkboxValue = "1";
    }
	return checkboxValue;
}


function pickupGuideAction() {

	var error    = "";
	var email    = "email=" + $('#email_guide_pickup').val() + "&";
	var name  = "name=" + $('#name_guide_pickup').val() + "&";
    var city = "city=" + $('#city_guide_pickup').val() + "&";
    var zip = "zip=" + $('#zip_guide_pickup').val() + "&";
    var phone = "phone=" + $('#phone_guide_pickup').val() + "&";
	var state_select  = "state_select=" + $('#statelist_guide_pickup').val() + "&";

    var new_user = "new_user=" + $('#new_user_flash_guide').val() + "&";
    var newMember = "new=" + $('#new_user_flash_guide').val() + "&";
    
    var soldDotCom = "soldDotCom=" + getCheckboxValue('soldDotCom-guide', 'soldDotCom-guide') + "&";
    var privacyPolicy = getCheckboxValue("privacy_policy_pickup","privacy_policy_pickup");
    privacyPolicy = "privacyPolicy=" + privacyPolicy;
    
    
	error = spamCheck($("#sp_value_guide").val());
	
	if(error == "") {

	    element_list = email + name + city + zip + new_user + phone + state_select + newMember + soldDotCom + privacyPolicy;

		$.ajax({
			'async': false,
			'url': '/ajax/lookup/type/pickup_guide/',
			'data': element_list,
			'dataType': 'json',
			'type': 'POST',
		    //'error': function (data,textStatus,errorThrown) {alert(data.responseText + textStatus + errorThrown);},
			'success': function (data) {
		    	if(data['error'] != "") {
		    		error = data['error'];
		    	} else {
	                // process tracking only on success.
	                trackGuideSubscription($('#statelist_guide_pickup').val());
	
	                // log new user creditials in cookie.
	                if(error == "") {// check to see if new user was created and that no error occured.
	                
	            		deleteCookie('roomsaver_member');
	            		deleteCookie('roomsaver_member_name');
	            		
	                	// new user added set cookie on computer
	                    setCookie("roomsaver_member", $('#email_guide_pickup').val(), 100000);
	                    setCookie("roomsaver_member_name", $('#name_guide_pickup').val(), 100000);
	
	                    if(new_user == "1") {
	                    	emailOptIn(this);
	                    }
	                }
	             }
		    }
		});
	}

	return error;
}

// FUNCTION: trackGuideSubscription
// FUNCTION PURPOSE: Handle tracking of guides
// DATE: July 9, 2010
function trackGuideSubscription(states)
{
    if(states == null) // in case nothing has been selected.
        return;
    
    if(states.length > 1) {

        // submit for each state.
        for(var i = 0; i < states.length; i++)
        {
            var state_name = $("#statelist_guide_pickup option[value='" +states[i]+ "']").text();
            GuideSubscribe(this, state_name);
        }

    } else {
        state_name = $("#statelist_guide_pickup option[value='" +states+ "']").text();
        GuideSubscribe(this, state_name);
    }

}

function spamCheck(spValue) {

	var error = "";
	if(spValue != "") {
        error = "An error has occured (code 2000).";
    }
	return error;
}

function memberSignupAction(mobileSite) {

	var error      = "";
	var email      = "email=" + $('#email_member').val() + "&";
	var name       = "name=" + $('#name_member').val() + "&";
	var cityState  = "cityState=" + $('#city_member').val() + "&";
	var zip        = "zip=" + $('#zip_member').val() + "&";
	var phone      = "phone=" + $('#phone_member').val() + "&";
	
	var soldDotCom = "soldDotCom=" + getCheckboxValue('soldDotCom-signup-popup', 'soldDotCom-signup-popup') + "&";
	
	if(mobileSite==1) {
		var emailAlert =  "&" + "emailAlert=" + getCheckboxValue('emailAlert','emailAlert');
	}
	
	var privacyPolicy = getCheckboxValue("privacy_policy_member","privacy_policy_member");
    privacyPolicy = "privacyPolicy=" + privacyPolicy;
    
    error = spamCheck($("#sp_value_member").val());
    
    if(error == "") {
		element_list = email + name + cityState + zip + phone + soldDotCom + privacyPolicy;
		
		if(mobileSite==1) {
			element_list += emailAlert;
		}
		
		$.ajax({
			'async': false,
			'url': '/ajax/lookup/type/member_signup/',
			'data': element_list,
			'dataType': 'json',
			'type': 'POST',
		    //'error': function (data,textStatus,errorThrown) {alert(data.responseText + textStatus + errorThrown);},
			'success': function (data) { 
		    	if(data['error'] != "") { 
		    		error = data['error'];
		    	}
		    }
		});	
    }
    
	if(error == "") {
		emailOptIn(this); // track successful optins
		if(mobileSite==1) {
        	// redirect to success page
        	return true;
        }
		deleteCookie('roomsaver_member');
		deleteCookie('roomsaver_member_name');	
		setCookie("roomsaver_member", $('#email_member').val(), 100000);
		setCookie("roomsaver_member_name", $('#name_member').val(), 100000);
	} else if(mobileSite==1) {
		// if mobile site and has error message	
		$('#error-member-signup').html(error);
		return false;
		
	}
	return error;
}


function memberSignupAction2() {

	var error      = "";
	var email      = "email=" + escape($('#email_member2').val()) + "&";
	var name       = "name=" + escape($('#name_member2').val()) + "&";
	var password   = "password=" + escape($('#password').val()) + "&";
	var emailAlert = "emailAlert=" + getCheckboxValue('emailAlert','emailAlert') + "&";
	var soldDotCom = "soldDotCom=" + getCheckboxValue('soldDotCom', 'soldDotCom') + "&";
	var confirmPassword = "confirmPassword=" + escape($('#confirmPassword').val());

    error = spamCheck($("#sp_value_member2").val());
    
    if(error == "") {
		element_list = email + name + password + emailAlert + soldDotCom + confirmPassword;
		
		//alert(element_list);
		
		$.ajax({
			'async': false,
			'url': '/ajax/lookup/type/member_signup2/',
			'data': element_list,
			'dataType': 'json',
			'type': 'POST',
		    'error': function (data,textStatus,errorThrown) {alert(data.responseText + textStatus + errorThrown);},
			'success': function (data) {
		    	if(data['error'] != "") { 
		    		error = data['error'];
		    	}
		    }
		});
    }
    
	if(error == "") {

		emailOptIn(this); // track successful optins
	} else {

		$('#error-member-signup2').html(error);
		return false;
		
	}
	return error;
}

function saveHotel(companyId,redirectUrl,isLoggedIn) {
	var error      = "";
	if(isLoggedIn==0) {
		window.location = "/member/?redirect_url=" + redirectUrl;
		return true;
	}
	
	element_list = "companyId=" + companyId + "&" + 
					"redirect_url=" + redirectUrl;

	$.ajax({
		'async': false,
		'url': '/ajax/lookup/type/save_hotel/',
		'data': element_list,
		'dataType': 'json',
		'type': 'GET',
	    //'error': function (data,textStatus,errorThrown) {alert(data.responseText + textStatus + errorThrown);},
		'success': function (data) {
	    	if(data['error'] != "") { 
	    		error = data['error'];
	    	}
	    }
	});	

	var msg = "";
	if(error == "") {
		msg = "Hotel Saved!"; 
		$('#delete-save-search-button').show();
		$('#save-hotel-msg').html(msg);
	} else {
		alert(error);
	}
	
	return error;
}



function deleteSavedHotel(companyId,redirectUrl,isLoggedIn) {
	var error      = "";
	
	if(isLoggedIn == 0) {
		window.location = "/member/?redirect_url=" + redirectUrl;
		return true;
	} else {
		// user is logged in
		var answer = confirm("Are you sure you want to delete this hotel saved?");
		if(answer) {
		
			element_list = "id=" + companyId + "&" + 
								"redirect_url=" + redirectUrl;

			$.ajax({
				'async': false,
				'url': '/member/delete-saved-hotel/',
				'data': element_list,
				'dataType': 'json',
				'type': 'GET',
				//'error': function (data,textStatus,errorThrown) {alert(data.responseText + textStatus + errorThrown);},
				'success': function (data) {
					if(data['error'] != "") { 
						error = data['error'];
					}
				}
			});	
		
			if(error == "") {
				location.reload();
			} else {
				alert(error);
			}
		} // if answer
	} // else user is logged in
	return error;
}

function redirectSearch(searchBoxId, searchType) {

	if(searchBoxId.indexOf("#") != 0) {
		searchBoxId = '#' + searchBoxId;
	}
	
	var sort = "";
	if($('#search_form_sort').val() != null && $('#search_form_sort').val() != '') {
		sort = '&sort=' + $('#search_form_sort').val();
	}

	var distance = "";
	//if($('#distance').val() != null && $('#distance').val() != '') {
		//distance = '&radius=' + $('#distance').val();
	//}
        if($('#amount').val() != null && $('#amount').val() != '')
        {
            distance = '&radius=' + getNumberFromRadius($('#amount').val());
        }

	var amenity = "";
	if($('#amenity').val() != null && $('#amenity').val() != '') {
		amenity = '&amenity=' + $('#amenity').val();
	}		
	var searchStr = $(searchBoxId).val();

	// trim spaces at beginning and end
	searchStr = 'value=' + searchStr.replace(/^\s+|\s+$/g,"");
	
	var hotelname = "";
	if($('#hotel_name_search').val() != null && $('#hotel_name_search').val() != '') {
		hotelname = '&hotelname=' + $('#hotel_name_search').val();
	}

	element_list = searchStr + sort + distance + amenity + hotelname;
  //alert(element_list);
	var ajaxUrl = '/ajax/lookup/type/search_city_redirect/'; 

	// zip search or city search
//	if(searchType == "zip") {
//		//ajaxUrl = '/ajax/lookup/type/search_zip_redirect/value/' + $(searchBoxId).val() + '/' + sort
//		ajaxUrl = '/ajax/lookup/type/search_zip_redirect/value/32821/' + sort
//	} 

	$.ajax({
		'url': ajaxUrl,
		'data': element_list,
		'dataType': 'text',
		'type': 'POST',
		'success': function (data) {
			window.location=data;
		}
	});
	
}

// FUNCTION NAME: getNumberFromRadius
// FUNCTION PURPOSE: to rip the number from the radius string on advanced searches.
// DATE: July 14th
function getNumberFromRadius(radiusString)
{
    var validNumbers = "0123456789.";
    var number = ""; // will be string for pass via query string.
    var isNumber = true;
    var temp;

    for(i = 0; i < radiusString.length && isNumber == true; i++)
    {
         temp = radiusString.charAt(i);

         if(validNumbers.indexOf(temp) == -1)
            isNumber = false; // break loop
         else
             number += temp;
    }

    return number;

}

/**
 * AutoComplete Field - JavaScript Code
 *
 * This is a sample source code provided by fromvega.
 * Search for the complete article at http://www.fromvega.com
 *
 * Enjoy!
 *
 * @author fromvega
 *
 */
//eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('1.a.1g=1.a.f;1.a.Y=1.a.t;1.a.f=e(){6(2[0]==g)9 r.T||1.p&&7.z.1b||7.d.1b;6(2[0]==7)9 14.11(7.d.1n,7.d.G);9 2.1g(W[0])};1.a.t=e(){6(2[0]==g)9 r.V||1.p&&7.z.U||7.d.U;6(2[0]==7)9 14.11(7.d.1j,7.d.D);9 2.Y(W[0])};1.a.T=e(){9 2[0]==g||2[0]==7?2.f():2.3(\'o\')!=\'B\'?2[0].G-(4(2.3("k"))||0)-(4(2.3("1d"))||0):2.f()+(4(2.3("N"))||0)+(4(2.3("1c"))||0)};1.a.V=e(){9 2[0]==g||2[0]==7?2.t():2.3(\'o\')!=\'B\'?2[0].D-(4(2.3("i"))||0)-(4(2.3("18"))||0):2.f()+(4(2.3("J"))||0)+(4(2.3("16"))||0)};1.a.1s=e(){9 2[0]==g||2[0]==7?2.f():2.3(\'o\')!=\'B\'?2[0].G:2.f()+(4(2.3("k"))||0)+(4(2.3("1d"))||0)+(4(2.3("N"))||0)+(4(2.3("1c"))||0)};1.a.1r=e(){9 2[0]==g||2[0]==7?2.t():2.3(\'o\')!=\'B\'?2[0].D:2.f()+(4(2.3("i"))||0)+(4(2.3("18"))||0)+(4(2.3("J"))||0)+(4(2.3("16"))||0)};1.a.h=e(){6(2[0]==g||2[0]==7)9 r.1p||1.p&&7.z.h||7.d.h;9 2[0].h};1.a.j=e(){6(2[0]==g||2[0]==7)9 r.1l||1.p&&7.z.j||7.d.j;9 2[0].j};1.a.1k=e(c,F){u x=0,y=0,8=2[0],5=2[0],s=E,C=E,n,l=0,m=0,c=1.S({R:q,P:q,1h:E,A:q},c||{});1f{x+=5.1x||0;y+=5.1w||0;6(1.b.v||1.b.M){u L=4(1.3(5,\'k\'))||0;u K=4(1.3(5,\'i\'))||0;x+=K;y+=L;6(1.b.v&&5!=8&&1.3(5,\'1a\')!=\'19\'){x+=K;y+=L}6(1.3(5,\'w\')==\'1e\')s=q;6(1.3(5,\'w\')==\'1v\')C=q}6(c.A){n=5.17;1f{l+=5.h||0;m+=5.j||0;5=5.1u;6(1.b.v&&5!=8&&5!=n&&1.3(5,\'1a\')!=\'19\'){x+=4(1.3(5,\'i\'))||0;y+=4(1.3(5,\'k\'))||0}}15(n&&5!=n)}Q 5=5.17;6(5&&(5.13.12()==\'d\'||5.13.12()==\'1q\')){6((1.b.H||(1.b.M&&1.p))&&1.3(8,\'w\')!=\'1e\'){x+=4(1.3(5,\'10\'))||0;y+=4(1.3(5,\'Z\'))||0}6((1.b.v&&!s)||(1.b.M&&1.3(8,\'w\')==\'1o\'&&(!C||!s))){x+=4(1.3(5,\'i\'))||0;y+=4(1.3(5,\'k\'))||0}1m}}15(5);6(!c.R){x-=4(1.3(8,\'10\'))||0;y-=4(1.3(8,\'Z\'))||0}6(c.P&&(1.b.H||1.b.O)){x+=4(1.3(8,\'i\'))||0;y+=4(1.3(8,\'k\'))||0}Q 6(!c.P&&!(1.b.H||1.b.O)){x-=4(1.3(8,\'i\'))||0;y-=4(1.3(8,\'k\'))||0}6(c.1h){x+=4(1.3(8,\'J\'))||0;y+=4(1.3(8,\'N\'))||0}6(c.A&&1.b.O&&1.3(8,\'o\')==\'1t\'){l-=8.h||0;m-=8.j||0}u I=c.A?{X:y-m,1i:x-l,j:m,h:l}:{X:y,1i:x};6(F){1.S(F,I);9 2}Q{9 I}};',62,96,'|jQuery|this|css|parseInt|parent|if|document|elem|return|fn|browser|options|body|function|height|window|scrollLeft|borderLeftWidth|scrollTop|borderTopWidth|sl|st|op|display|boxModel|true|self|absparent|width|var|mozilla|position|||documentElement|scroll|none|relparent|offsetWidth|false|returnObject|offsetHeight|safari|returnValue|paddingLeft|bl|bt|msie|paddingTop|opera|border|else|margin|extend|innerHeight|clientWidth|innerWidth|arguments|top|_width|marginTop|marginLeft|max|toLowerCase|tagName|Math|while|paddingRight|offsetParent|borderRightWidth|visible|overflow|clientHeight|paddingBottom|borderBottomWidth|absolute|do|_height|padding|left|scrollWidth|offset|pageYOffset|break|scrollHeight|static|pageXOffset|html|outerWidth|outerHeight|inline|parentNode|relative|offsetTop|offsetLeft'.split('|'),0,{}))
function setAutoComplete(field_id, results_id){
	// global variables
	var acListTotal   =  0;
	var acListCurrent = -1;
	var acDelay		  = 0;
	var acSearchId	  = null;
	var acResultsId	  = null;
	var acSearchField = null;
	var acResultsDiv  = null;
	// initialize vars
	acSearchId  = "#" + field_id;
	acResultsId = "#" + results_id;

	if(!$(acSearchId).length) return;
	
	var urlStr = document.URL;

	urlStr = urlStr.replace(/http(s)?:\/\//i,"");
	var indexOfSlash = urlStr.indexOf("/");

	// home page search box, add extra class for a wider box
	// if first occurance of slash + 1 equals length of url
	var widthClass = "";
	if( (indexOfSlash + 1)  == urlStr.length) {
		widthClass = " wider";
	}
	
	// create the results div
	$("body").append('<div id="' + results_id + '" class="autocompletediv' + widthClass + '"></div>');

	// register mostly used vars
	acSearchField	= $(acSearchId);
	acResultsDiv	= $(acResultsId);

	// reposition div
	repositionResultsDiv();
	acSearchField.attr('autocomplete','off');
	
	// on blur listener
	acSearchField.blur(function(){setTimeout(clearAutoComplete, 200)});

	// on key up listener
	acSearchField.keyup(function (e) {

		// get keyCode (window.event is for IE)
		var keyCode = e.keyCode || window.event.keyCode;
		var lastVal = acSearchField.val();

		// check an treat up and down arrows
		if(updownArrow(keyCode)){
			return;
		}

		// check for an ENTER or ESC
		if(keyCode == 13 || keyCode == 27){	
			clearAutoComplete();
			return;
		}
		
		// alpha numeric, numberpad 0-9, numberpad subtract, comma, dash, space, backspace, delete (respectively)
		if( !isEmpty(lastVal) 
			&& ( (keyCode > 47 && keyCode < 91) 
				|| (keyCode > 95 && keyCode < 106) 
				|| (keyCode == 109) ||  keyCode == 188  
				|| keyCode == 189 || keyCode == 32 
				|| keyCode == 8 || keyCode == 46) ) {
				
				autoComplete(lastVal,acSearchId);
		}
	});

	// treat the auto-complete action (delayed function)
	function autoComplete(lastValue,acSearchId)
	{
		// get the field value
		var part = acSearchField.val();

		// if it's empty clear the resuts box and return
		if(part == ''){
			clearAutoComplete();
			return;
		}
		// if it's equal the value from the time of the call, allow
		if(lastValue != part){
			return;
		}

		element_list = 'value=' + part;		
		$.ajax({
		'url': '/ajax/lookup/type/search_city/',
		'data': element_list,
		'dataType': 'json',
		'type': 'POST',
	    //'error': function (data,textStatus,errorThrown) {alert(data.responseText + textStatus + errorThrown);},
		'success': function (data) {
	    	//alert('success'+data);
			//format: data=["green","grey","gold, gold"];	
		
			if(data != null) {
			
				var ansLength = data.length;
			
				// if there are results populate the results div
				if(ansLength > 0){
	
					var newData = '';
	
					// create a div for each result
					for(i=0; i < ansLength; i++) {
						newData += '<div class="unselected">' + data[i] + '</div>';
					}
	
					// update the results div
					acResultsDiv.html(newData);
					acResultsDiv.css("display","block");
					
					// for all divs in results
					var divs = $(acResultsId + " > div");
				
					// on mouse over clean previous selected and set a new one
					divs.mouseover( function() {
						divs.each(function(){this.className = "unselected";});
						this.className = "selected";
					})
				
					// on click copy the result text to the search field and hide
					divs.click( function() {
						acSearchField.val(this.childNodes[0].nodeValue);
						//redirectSearch(acSearchId);
						clearAutoComplete();
					});
	
				} else {
					clearAutoComplete();
				}	
			}
		}
	});		
	}
	
	/**
	 * checks for empty string "" and empty string with a number of spaces and null string. 
	 * @param str
	 * @return
	 */
	function isEmpty( str ){
	    if(str == null) {
	    	return true;
	    }
		var strRE = /^[\s ]*$/gi;
	    return strRE.test( str );
	}

	// clear auto complete box
	function clearAutoComplete()
	{
		acResultsDiv.html('');
		acResultsDiv.css("display","none");
	}

	// reposition the results div accordingly to the search field
	function repositionResultsDiv()
	{
		// get the field position
		var sf_pos    = acSearchField.offset();
		var sf_top    = sf_pos.top;
		var sf_left   = sf_pos.left;

		// get the field size
		var sf_height = acSearchField.height();
		var sf_width  = acSearchField.width();

		// apply the css styles - optimized for Firefox
		acResultsDiv.css("position","absolute");
		acResultsDiv.css("left", sf_left - 2);
		acResultsDiv.css("top", sf_top + sf_height + 5);
		acResultsDiv.css("width", sf_width - 2);
	}

	// treat up and down key strokes defining the next selected element
	function updownArrow(keyCode) {
		if(keyCode == 40 || keyCode == 38){

			if(keyCode == 38){ // keyUp
				if(acListCurrent == 0 || acListCurrent == -1){
					acListCurrent = acListTotal-1;
				}else{
					acListCurrent--;
				}
			} else { // keyDown
				if(acListCurrent == acListTotal-1){
					acListCurrent = 0;
				}else {
					acListCurrent++;
				}
			}

			// loop through each result div applying the correct style
			acResultsDiv.children().each(function(i){
				if(i == acListCurrent){
					acSearchField.val(this.childNodes[0].nodeValue);
					this.className = "selected";
				} else {
					this.className = "unselected";
				}
			});

			return true;
		} else {
			// reset
			acListCurrent = -1;
			return false;
		}
	}
}


function sortSubmit(searchType, distance, amenity, hotelname) {
	// assign value of select drop down to hidden input in search box, then submit
	var sortBy = $('#sort_by').val();
	
	if(sortBy == 'rate_asc') {
		sortBy = 'rate';
	} else if(sortBy == 'hotel_name_asc') {
		sortBy = 'hotelname';
	} 

	$('#search_form_sort').val(sortBy);
	$('#distance').val(distance);
	$('#amenity').val(amenity);
	$('#hotel_name_search').val(hotelname);

	redirectSearch('search_box',searchType);
	return false;
}


function advancedSearchSubmit() {
	
	if($('#search_box').val() == '') {
		alert("Please enter City State in textbox.");
		return false;
	}
	
	var distance = $('#amount').val();
	var indexOfSpace = distance.lastIndexOf(' ');
	$('#distance').val(distance.substring(0,indexOfSpace));
	
	// amenities
	var amenityDecimal = 0;
	
	var amenityList =new Array(
			"aaa_amenity",
			"airport_amenity",
			"amusement_amenity",
			"breakfast_amenity",
			"business_amenity",
			"channels_amenity",
			"coffee_amenity",
			"cleaning_amenity",
			"blowdry_amenity",
			"fitness_amenity",
			"golf_amenity",
			"handicapped_amenity",
			"internet_amenity",
			"iron_amenity",
			"kids_amenity",
			"vehicle_amenity",
			"localcalls_amenity",
			"microwave_amenity",
			"news_amenity",
			"nonsmoking_amenity",
			"pets_amenity",
			"pool_amenity",
			"fridge_amenity",
			"restaurant_amenity",
			"shopping_amenity",
			"valet_amenity",
			"waterview_amenity",
			"wifi_amenity"	
	);	
	
	var currAmenityId = "";
	
	var i=0;
	for (i=0; i < amenityList.length; i++) {
		
		currAmenityId = '#' + amenityList[i];
		if($(currAmenityId).attr('checked')) {
			amenityDecimal += Math.pow(2,i);
		}
	}
	
	if(amenityDecimal != 0) {
		$('#amenity').val(amenityDecimal);
	}
	
	var hotelname = $('#hotel_name').val();
	$('#hotel_name_search').val(hotelname);
	
	redirectSearch('search_box');
}

// autocomplete init
function initAutoComplete() {
	setAutoComplete("search_box", "results");
	//setAutoComplete("search_box_lite", "results1");
}
 
function showRecaptcha(element,publicKey) {

	  Recaptcha.create(publicKey, element, {
	        theme: 'red',
	        tabindex: 0,
	        callback: Recaptcha.focus_response_field
	  });		
}

function popupSendEmail() {
	
	$('#submit_coupon').click(function() {
		var error = "";
		error = couponAction();
		
		if(error != "") {
			$('#error-coupon').html(error);
		} else {
			$('#submit_coupon').click('');
			document.getElementById('popup-8').innerHTML = document.getElementById('popup-9').innerHTML;
		}
	});
	
	$('#popup-8').removeClass('popup');
	$('#popup-8').modal({autoResize: true,
		onClose: function(dialog) {
			$.modal.close();
			$('#popup-8').addClass('popup'); 
		}
	});
	
}

function popupMemberSignupForm(publicKey, hotelName, companyId) {

	// cookie is set after user singleopt in email alert. cookie is never unset
	var rsMemberCookie    = getCookie("roomsaver_member");
	
	// cookie set when user closes email alert popup when printing details or coupon page.
	// cookie unset when browser is closed.
	var rsMemberCookieTmp = getCookie("roomsaver_member_tmp");    

	$('#create-new-account').click(function() {
		
		var error      = "";
		var email      = "email=" + escape($('#email_member2').val()) + "&";
		var name       = "name=" + escape($('#name_member').val()) + "&";
		var password   = "password=" + escape($('#password').val()) + "&";
		var emailAlert = "emailAlert=" + getCheckboxValue('emailAlert','emailAlert') + "&";
		//var soldDotCom = "soldDotCom=" + getCheckboxValue('soldDotCom', 'soldDotCom') + "&";
		var confirmPassword = "confirmPassword=" + escape($('#confirmPassword').val());
				
		element_list = email + name + password + emailAlert + confirmPassword + "&soldDotCom=0";
		
		$.ajax({
			'async': false,
			'url': '/ajax/lookup/type/member_signup2/',
			'data': element_list,
			'dataType': 'json',
			'type': 'POST',
			//'error': function (data,textStatus,errorThrown) {alert(data.responseText + textStatus + errorThrown);},
			'success': function (data) { 
				if(data['error'] != "") { 
					error = data['error'];
				}
			}
		});	
		
		if(error == "") {
			emailOptIn(this); // track successful optins
			
			deleteCookie('roomsaver_member');
			deleteCookie('roomsaver_member_name');
			setCookie("roomsaver_member", $('#email_member').val(), 100000);
			setCookie("roomsaver_member_name", $('#name_member').val(), 100000);
			
			document.getElementById('popup-20').innerHTML = document.getElementById('popup-21').innerHTML;
		} else {
			$('#error-member-signup').html(error);
		}
	}); 
	if(rsMemberCookie == -1 && rsMemberCookieTmp == -1) {
		$('#memberSignupLink').click(function() {
		  	print(); 
		  	printCoupon(this,"'" + hotelName + "'", companyId);
		  	//popupOnClick('" + publicKey + "', 'member-signup-form', 'signup-member-form-status','error-member-signup');
		  	$('#popup-20').removeClass('popup');
		  	$('#popup-20').modal({onClose: function(dialog){
				setCookie('roomsaver_member_tmp', 'blockEmailAlertPopup', null);
				$.modal.close();
				$('#popup-20').addClass('popup');
				
			},autoResize: true});
		  	//('#popup-20').addClass('link-popup');
		  	
		});
		//$('#memberSignupLink').attr('href', '#popup-20');
		//$('#memberSignupLink').addClass('link-popup');
	
	} else {
		$('#memberSignupLink').click(function() {
		  	print(); 
		  	printCoupon(this,"'" + hotelName + "'", companyId);
		});
	}
}

function popupOnClick(publickey, formId, formStatusId, errorId) {
	
	document.getElementById(formId).reset();
	//showRecaptcha(recaptchaId,publickey);
	formStatusId = '#' + formStatusId
	$(formStatusId).val('active');
	
	errorId = '#' + errorId
	$(errorId).html('');
}

// Video text button cookie setting
function videoIntroOnClick() {
	// show video
	show_elements('VideoContainer');
	// For ff,safari,chrome---Video text button remove glowing effect when the user click button once, after they click again the glowing effect won't show up.
	$('a').removeClass('shadow');
	//For IE---Video text button remove glowing effect
	$('a').removeClass('shadow-ie');
	// set a cookie when user see the video at first time 
//	$('#videointro').click(function() {
	setCookie('roomsaver_video_intro', '1', null);
	$('#ie-getToKnowUs').hide();
//	});
}

function pageRedirect(page) {
	window.location = page;
}

//auto play video when go back to homepage
function autoPlayVideo(pageName){
  
  var videoCookieAutoplay = getCookie('roomsaver_video_autoplay');
  
  if(videoCookieAutoplay == 1 && pageName == "home") {
		show_elements('VideoContainer');
		deleteCookie('roomsaver_video_autoplay');
  }
}

// if roomsaver_video_intro is set, don't highlight link
// otherwise highlight link
function getToKnowUsLinkHighlight() {
	
	var videoCookie = getCookie('roomsaver_video_intro');
	if(videoCookie == 1) {
		// if cookie set, don't highlight link
		
		// For ff,safari,chrome---Video text button remove glowing effect when the user click button once, after they click again the glowing effect won't show up.
		$('a').removeClass('shadow');
		//For IE---Video text button remove glowing effect
		$('a').removeClass('shadow-ie');
		$('#ie-getToKnowUs').hide();
	}
}

$(document).ready(function(){
	initAutoComplete();
	if($("#slider-range-min").length > 0) initSlider();
});

$(document).ready(function () {	
	if($('#homeAdvancedSearch .check-col').length != 0){ // home page advanced search column splitter
		$('#homeAdvancedSearch .check-col').easyListSplitter({ 
			colNumber: 2
		});
	}
	
});

