	$(function(){
					initiateNeccessaryEvents();
					initiateLoginEvents();
					var cityDropDownValues = new Array();					
					var search_text = '';
					window.setTimeout(function(){ initiateBasicThings();}, 4000);
					$("#add_comp_proceed").click(function(){
						  var cityName	=	$("#add_comp_city").val();
						  var companyName = $("#add_comp_rest_name").val();
						  cityName = $.trim(cityName);
						  companyName = $.trim(companyName);
						  if(cityName.length <= 3 || (cityName == $("#add_comp_city").attr('focusblur'))){
							showFloatingError("#add_company_city_error","#add_comp_city",errorMessages.city_selection);
							return false;
						  }
						  if(companyName.length <= 3  || (companyName == $("#add_comp_rest_name").attr('focusblur'))){
							  showFloatingError("#add_company_name_error","#add_comp_rest_name",errorMessages.company_selection);
							return false;
						  }
					$.ajax({
						   type: "POST",
						   url: ajaxURL + "/ajx_company/checkCityCompanyExists/",
						   data: { city_ID : $("#add_comp_city").val(), company_name : companyName },
						   async: false,
						   dataType : 'json',
						   success: function(msg){
							   if(msg.success == false){
								   showFloatingError("#add_company_city_error","#add_comp_city",msg.error);
								   return false;
							   }else{
								   if(msg.isSuccess == true){
									   alert(msg.isSuccessMessage);
									   window.location = '/members/';
									   return false;
								   }else if(msg.isLoginRequired == true){
									   closePopup();
										openPopup('#member_login_panel');
										return;
								   }
								   openPopup('#add_company_popup');
								   $("#add_company_popup_name").val($("#add_comp_rest_name").val());
								   $("#add_company_popup_city").val($("#add_comp_city").val());
							   }
						   }
						   });
					
					});
					//*** City AutoComplete ****/
					$(".companyCityDropdown").autocomplete({
								close : function(event, ui){
											 var sCity = $(".companyCityDropdown").val();
											  if(jQuery.inArray(sCity,cityDropDownValues) < 0){											  		
											  		$(".companyCityDropdown").val(cityDropDownValues[0]);	
											  }
											  var cur_city = $('.companyCityDropdown').val();
											  var company_ID = $(".companyCityDropdown").attr('company_ID');
											  $.ajax({
													 url : ajaxURL + '/ajx_company/changeCompanyCity',
													 type : 'POST',
													 data : {cityName : cur_city, company_ID : company_ID},
													 success : function(msg){
														 if(msg != 'error')
														 	$(".companyCityDropdown").val(msg);
													 }
													 });
										   },
								source: function( request, response ) {
									$.ajax({
										   url: ajaxURL + "/ajx_company/get_cities/",
										   type : "POST",
										   dataType : 'json',
										   data: {  term: request.term },
										   success: function( data ) {
										   	response( $.map( data, function( item ) {
										   		if(jQuery.inArray(item.name,cityDropDownValues) < 0){
										   			cityDropDownValues.push(item.name);										   								
										   		}																				
													return {
														label: item.name,
														value: item.name
													}
										   		}));
										   }
										   });
							},
							minLength: 2				
					});
					$(".cityDropdown,.companyCityDropdown").blur(function(){
							var sCity = $(this).val();
							if(cityDropDownValues.length == 0)
							$(this).val('Stockholm / Stockholms Lan / Sverige');
							else
								if(jQuery.inArray(sCity,cityDropDownValues) < 0)
									$(this).val(cityDropDownValues[0]);
							cityDropDownValues = new Array();
							
							var cur_city = $(".cityDropdown").val();
											  $.ajax({
													 url : ajaxURL + '/ajx_company/cityContainsCompanies',
													 type : 'POST',
													 data : {cityName : cur_city},
													 success : function(msg){
														 if(msg != 'error')
														 	$("#city_results").html(msg);
													 }
													 });
								
					});
					$(".cityDropdown").autocomplete({
								close : function(event, ui){											  
											  var sCity = $(".cityDropdown").val();
											  if(jQuery.inArray(sCity,cityDropDownValues) < 0){											  		
											  		$(".cityDropdown").val(cityDropDownValues[0]);	
											  }
											  
										   },
								source: function( request, response ) {
									$.ajax({
										   url: ajaxURL + "/ajx_company/get_cities/",
										   type : "POST",
										   dataType : 'json',
										   data: {  term: request.term },
										   success: function( data ) {
										   	response( $.map( data, function( item ) {
										   		if(jQuery.inArray(item.name,cityDropDownValues) < 0){
										   			cityDropDownValues.push(item.name);										   								
										   		}								
													return {
														label: item.name,
														value: item.name
													}
										   		}));
										   }
										   });
							},
							minLength: 2				
					});
					//*** Company AutoComplete ****/
					var frontSelectedCompanies = new Array();
					$("#add_comp_rest_name").autocomplete({
								close : function(event, ui){
											  var cur_company = $("#add_comp_rest_name").val();
											  var cur_city = $(".cityDropdown").val();
											  if(frontSelectedCompanies.length > 0 && jQuery.inArray(cur_company,frontSelectedCompanies) < 0){
												  cur_company	=	frontSelectedCompanies[0];
												  $("#add_comp_rest_name").val(cur_company);												  
											  }
											  $.ajax({
													 url : ajaxURL + '/ajx_company/getCompanyMemberNumber',
													 type : 'POST',
													 data : {companyName : cur_company, cityName : cur_city},
													 success : function(msg){
														 if(msg != 'error')
														 	$("#company_results").html(msg);
													 }
													 });
							   },
								source: function( request, response ) {
									$.ajax({
										   url: ajaxURL + "/ajx_company/company_autoComplete/",
										   type : "POST",
										   dataType : 'json',
										   data: {  term: request.term, city : $("#add_comp_city").val() },
										   success: function( data ) {
										   	frontSelectedCompanies = null;
										   	frontSelectedCompanies = new Array();
											   response( $.map( data, function( item ) {
											   	frontSelectedCompanies.push(item.name);
													return {
														label: item.name,
														value: item.name
													}
										   		}));
										   }
										   });
							},
							minLength: 2				
					});
			   });
//***** Save Company from Popup ***************/
function savePopupCompany(){
	var company_data	=	{ company_name : $("#add_company_popup_name").val(),
							  company_address : $("#add_company_popup_address").val(),
							  company_postcode : $("#add_company_popup_postcode").val(),
							  company_city : $("#add_company_popup_city").val(),
							  owner_request : ($("#owner_request").is(":checked") ? 'yes' : 'no')
							};
	$.ajax({
		   	type : "post",
			async : false,
			url : ajaxURL + '/ajx_company/add_new_company',
			data : company_data,
			dataType : 'json',
			success : function(response){
				if(response.success == false){
					$("#add_company_popup_error").show().html(response.errors);
					return false;
				}else if(response.success == 'login'){
						closePopup();
						openPopup('#member_login_panel');
				}else{
					$("#add_company_popup_error").hide();
					$("#add_company_popup_success").show().html(response.success_msg);
					window.setTimeout(function(){ 	closePopup(); }, 1000);
					return false;
				}
			}
		   });
}
function initiateBasicThings(){
	return;
	// lets fix up some height issue
	var curr_height	=	$(".contents_mid_bg").height();
	var window_height	=	$(window).height();
	var maxTabHeight = 0;
	$(".tabs").each(function(){
						if($(this).height() > maxTabHeight)
							maxTabHeight = $(this).height();
							 });
	$(".tabs").height(maxTabHeight);
	var footer_loc	=	$(".footer").position().top;
	footer_loc	=	footer_loc+40;
	//	$(".contents_mid_bg").height(footer_loc);
	if(curr_height < window_height)
		$(".contents_mid_bg").height(window_height);
	
}
//******* Modal opening & Closing *************/
function openPopup(elemID, w, h){
	useW = false;
	useW = false;
	if(!w || typeof(w) == 'undefined') useW = false; else useW = true;
	
	if(!h || typeof(h) == 'undefined') useH = false; else useH = true;
	if(useW)
		$(elemID).width(w);
	if(useH)
		$(elemID).height(h);
	$(elemID).modal();
	Cufon.replace('h2', { fontFamily: 'bebas', 'fontSize' : '20px', 'letterSpacing' : '1px' });
}
function closePopup(){
	$(".floatingError").hide();
	$.modal.close();
}

function initiateNeccessaryEvents(){
	var SFShow = null;
	var typeShow = null;
	$("#show_special_fpdp").hover(function(){
		$("#special_features_dp").show().css({top : $(this).offset().top+23, left : $(this).offset().left});
		window.clearTimeout(SFShow);
		
	},function(){
		SFShow = window.setTimeout(function(){
					$("#special_features_dp").hide();
											},500);
	});
	$("#special_features_dp").hover(function(){
		window.clearTimeout(SFShow);
	},function(){
			SFShow = window.setTimeout(function(){
					$("#special_features_dp").hide();
											},500);
		});
		
$("#show_types_dp").hover(function(){
		$("#types_dp").show().css({top : $(this).offset().top+23, left : $(this).offset().left});
		window.clearTimeout(typeShow);
	},function(){
		typeShow = window.setTimeout(function(){
					$("#types_dp").hide();
											},500);
	});
	$("#types_dp").hover(function(){
		window.clearTimeout(typeShow);
	},function(){
			typeShow = window.setTimeout(function(){
					$("#types_dp").hide();
											},500);
		});		
	$("#show_preview_front").click(function(){
		$("#front_result_div").empty().hide();
		$("#restaurant_preview").show();
	});
	$("input[type=checkbox]",$("#special_features_dp")).change(function(){
		var checks = new Array();
		$("input[type=checkbox]:checked",$("#special_features_dp")).each(function(){
				checks.push($(this).val());
		}); 
		$.ajax({
				type : 'POST',
				url : '/restuarants/advance_search_special/',
				data : {checks : checks, start : 1},
				success : function(msg){
					$("#restaurant_preview").hide();
					$("#front_result_div").empty().append(msg).show();
					$("#front_result_div .advnc_result_box:first").show();
				},
				async : false
				
		});
	});
	$(".expand_next").live('click',function(){
			$(this).parents('div.advnc_result_box:first').next('div.advnc_result_box:first').show();
			$(this).remove();
	});
	$("input[type=checkbox]",$("#types_dp")).change(function(){
		var checks = new Array();
		$("input[type=checkbox]:checked",$("#types_dp")).each(function(){
				checks.push($(this).val());
		}); 
		$.ajax({
				type : 'POST',
				url : '/restuarants/advance_search_types/',
				data : {types : checks, start : 1},
				success : function(msg){
					$("#restaurant_preview").hide();
					$("#front_result_div").empty().append(msg).show();
					$("#front_result_div .advnc_result_box:first").show();
				},
				async : false
				
		});
	});
	$("#schedule_step1").submit(function(){ var code = validateSchedulerStep1(false); return code; });
	$("#future_schedule_step1").submit(function(){ return validateSchedulerStep1('future'); });
	//**** Focus and Blur for inputs , just add focusblur="text" attribute***/
	$(".css_button").hover(function(){ $(this).addClass('css_button_hover'); }, function(){ $(this).removeClass('css_button_hover'); });

	//****** End Focusblur events ******************************************
	$("#login_member").live('click',function(e){  e.preventDefault(); closePopup(); openPopup('#member_login_panel'); });
	$("#register_link").live('click',function(e){  $.modal.close(); e.preventDefault(); openPopup('#member_register_popup'); });
	$("#add_company_yes").click(function(){  $("#front_panel_add_rest").show(); $(this).hide(); });
	$("#member_add_restuarant").click(function(e){ e.preventDefault(); openPopup('#add_company_popup'); $("#add_company_popup_name,#add_company_popup_city").removeAttr('readonly'); });
	$(".close_box a").live('click',function(e){ e.preventDefault(); closePopup(); });
	$(".submitFormInput").keypress(function(e){
		var __hook	=	$(this).attr("buttonPress");
		if(__hook == '') return;
		if(e.keyCode == 13)
			$(__hook).click();
											});
		$('#about_dialoglink').click(function(e){
			e.preventDefault();
			openPopup('#about_dialog');
			$('html, body').animate({scrollTop:0}, 'slow');	
			return false;	
		});
		$('#management_dialoglink').click(function(e){
			e.preventDefault();
			openPopup('#management_dialog');
			$('html, body').animate({scrollTop:0}, 'slow');	
			return false;			
		});
		$('#contact_dialoglink').click(function(e){
			e.preventDefault();
			openPopup('#contact_dialog');
			$('html, body').animate({scrollTop:0}, 'slow');	
			return false;			
		});
	$("#search_name").focus(function(){
		if($(this).val() == $(this).attr('focusText')){
			$(this).val('');
			return;
		}
	});
	$("#search_name").blur(function(){
		if($(this).val() == ''){
			$(this).val($(this).attr('focusText'));
		}
	});
	$("#search_company_button,#search_company_button2").click(function(){
			var sr = $("#search_name").val();
			if(sr == $("#search_name").attr('focusText'))
				sr = '';
			var query	=	'query/' + (sr.length <= 1 ? 'blank' : sr.replace(/\s/ig,'+'));
			var selectedFilters = new Array();			
			var checks =  $("input[type=checkbox][class=restaurant_types]:checked");
			if(checks && checks.length > 0){
				checks.each(function(){
									 selectedFilters.push($(this).val().replace(/\s/ig,'+'));
									 });
			query = query + '/filters/' + selectedFilters.join(',');
			}
			var src = "/restuarants/search/";
			var screenH	=	$(window).height();
			screenH = parseInt(screenH)-100;
			if(query.length > 0)
				src = src + query;
			$.modal('<iframe src="' + src + '" height="' + (parseInt(screenH)-30) + '" width="830" style="border:0" frameborder="0">', {closeHTML:'<div class="close_box" style="margin:5px;"><a href="javascript:;"><img src="/images/close.png" alt="" /></a></div>', containerCss : {backgroundColor:"#fff", paddingTop: 20, height:(parseInt(screenH)), padding:0, width:830}, overlayClose:true});
											   });
//			$("#lang_selection").css({'position' : 'absolute', 'top' : $(".footer").offset().top+80, 'left' : $(".footer_bg").offset().left+$(".footer_bg").width()-100});
			var langTime = null;
			$("#lang_selection a:first").hover(function(){
					$("#lang_selection_dropdown").css({'top' : $("#lang_selection").offset().top-$("#lang_selection_dropdown").height()-2, 'left' : $("#lang_selection").offset().left});
					$("#lang_selection_dropdown").show();
					window.clearTimeout(langTime);
			},function(){
					langTime = window.setTimeout(function(){
						$("#lang_selection_dropdown").hide();
					},200);
			});
			$("#lang_selection_dropdown").hover(function(){
					window.clearTimeout(langTime);
			},function(){
				langTime =	window.setTimeout(function(){
						$("#lang_selection_dropdown").hide();
					},200);
			});
}
function showFloatingError(errorElem, hostElem, text){
	$(errorElem).css({'top' : $(hostElem).offset().top+($(hostElem).height()/2)-2, 'left' : $(hostElem).offset().left+($(hostElem).width()/2)}).show().html(text).fadeTo('fast',0.9);
	window.setTimeout(function(){ $(errorElem).fadeOut('slow'); }, 3000);
}

function initiateLoginEvents(){

		$(".logout,#logout").live('click',function(){
				 $.ajax({
		  		 	url: ajaxURL + "/ajax_basic/do_logout/",
					type : "POST",
					dataType : 'json',
					async : false
					});
			$(".member_bar").hide();
			$(".login_bar").show();
			window.location = '/';
		});
		$("#popup_user_login").click(function(){
			  var user_email	=	$("#login_user_email").val();
			  var user_pass		=	$("#login_user_pass").val();
			  var remember = $("#login_user_remember").is(":checked") ? "yes" : "no";
			 $.ajax({
		  		 	url: ajaxURL + "/ajax_basic/do_login/",
					type : "POST",
					dataType : 'json',
					async : false,
					data: {  user_email : user_email , user_pass : user_pass, remember_me : remember },
					success: function( data ) {
						if(data.success == false){
							$("#popup_login_error").html(data.error).show();
							
						}else{
							if(data.success	==	'login_action_done'){
								alert(data.success_msg);
								//alert(current_page);

								window.location	=	'/';
							}
							$("#popup_login_error").hide();
							closePopup();
							$(".member_bar").show();
							$(".login_bar").hide();
							if(current_page == 'home')
								window.location	=	'/members/';
								else if(current_page != false)
								window.location	=	current_page;
								else
									window.location	=	'/';
						}
					}
					});
											  });
}

//*** Registeration ****/
function registerMemberPopup(){
	var first_name	=	$('#rmember_first_name').val();
	var last_name	=	$('#rmember_last_name').val();
	var email	=	$('#rmember_email').val();
	var password	=	$('#rmember_password').val();
	var queryData	=	{ 'first_name' : first_name, 'last_name' : last_name, 'email' : email, 'password' : password};
	
	$.ajax({
		   	url  : ajaxURL + '/ajax_basic/register_user',
			type : 'POST',
			async : false,
			data : queryData,
			dataType : 'json',
			success : function(response){
				if(response.error == true){
						if(response.firstname_error == true)
							showFloatingError("#register_firstname_error","#rmember_first_name",response.firstname_error_msg);
						if(response.email_error	==	true)
							showFloatingError("#register_email_error","#rmember_email",response.email_error_msg);
						if(response.password_error == true)
							showFloatingError("#register_password_error","#rmember_password",response.password_error_msg);
						if(response.register_error == true)
							showFloatingError("#register_register_error","#register_error",response.register_error_msg);
						return false;
				}else{
					closePopup();
					window.location = '/members/setProfession/';
					//openPopup('#member_login_panel');
				}
				
			}
		   });
	
}
function createGallery(element, previews){
	$('a',$(element)).each(function(){
					$(this).click(function(e){
										   e.preventDefault();
										   elemID	=	$(this).attr('href').replace('#','');
										   $('li',$(previews)).hide();
										   $('li#' + elemID).show();
										   });
	});
}
function validateSchedulerStep1(future){
		var returnCode = true;
		if(future == false){
		var company_ID = $("#sch_company_ID option:selected").val();
		var start_time	=	$("#sch_start_time option:selected").val();
		var end_time = $("#sch_end_time option:selected").val();
		var type_name	=	$("#sch_type_name").val();
		}else if(future == 'future'){
			var company_ID = $("#sch_future_company_ID option:selected").val();
			var start_time	=	$("#sch_future_start_time option:selected").val();
			var end_time = $("#sch_future_end_time option:selected").val();
			var type_name	=	$("#sch_future_type_name").val();
		}
		var msg = new Array();
		if(company_ID == '' || company_ID <= 0 ){
			msg.push('Please select a restaurant');
			returnCode = false;
		}
		if(start_time == ''){
			msg.push('Please select your start time');
			returnCode = false;
		}
		if(end_time == ''){
			msg.push('Please select your end time');
			returnCode = false
		}
		if(start_time != '' && end_time != ''){
			if(start_time == end_time){
				msg.push('start and end time can not be same');
				returnCode = false;
			}
			var st_code = start_time.replace(/:/g,'.');
			var en_code = end_time.replace(/:/g,'.');
			st_code = parseFloat(st_code);
			en_code = parseFloat(en_code);
			
		}
		if(type_name.length <= 2){
			msg.push('You must enter first tpe name for this schedule');
			returnCode = false;
		}
		if(returnCode == false)
			alert(msg.join("\n"));
		return returnCode;
	}
	
	/*
$(function(){
		   var hlist = '';
		   var dd = $("<div/>").append(hlist);
		   $("body").css('background','').empty();
		   $("ul li",dd).each(function(){
									   query = "INSERT INTO city_list(city_name,state_name) VALUES('" + $(this).text() + "','Sindh');";
									   $("body").append(query).append("<br>");
									   });
		   }); */
