$(function(){
	var options = { 
        beforeSubmit:  AjaxFormAction.onSubmit,  // pre-submit callback 
        success: AjaxFormAction.processJson,  	 // post-submit callback
        dataType: "json" 
	}; 
	$('.ajax_form').ajaxForm(options);
	
	//$('a#join_next').click(golf_form_submit);
	//$('form#form_join').keypress(join_form_keypress).focus();
	
	$('form#form_golf a.btn_submit').click(golf_form_submit);
	$('form.form_golf a.btn_submit').click(golf_form_submit);
	
	//$('form#form_golf').keypress(golf_form_keypress);
	
	$('form#form_login a#btn_sign_in').click(function(){
		$('form#form_login').submit();
		false;
	});
	
	$('form#form_book select#resort').change();
	
	$('form#form_forgotpw a#btn_submit').click(function(){
		$('form#form_forgotpw').submit();
		false;
	});
	
	if($('#id').val()==""){
		$("#upload").attr("disabled","disabled");
	}
	
	$('#login_box a#forgot_password').click(function(){
		$('div#quick_login_box').hide();
		$('div#forgotpw_box').show();
		return false;
	});
	
	$('#login_box a#return_to_login').click(function(){
		$('div#quick_login_box').show();
		$('div#forgotpw_box').hide();
		return false;
	});
	
	$('#form_golf select#country').change(join_switch_state_mode);
	
	$('.topmenu li#btn_popup a.btn_popup').click(toggle_login_box);
	
	$('#sidebar_post_list a.prev').click(post_list_get_page);
	$('#sidebar_post_list a.next').click(post_list_get_page);
	
	$('a#msg_save').click(function(){
		/*var ed = tinyMCE.get('body');
		ed.setProgressState(0); // Hide progress 
		$('#body').val(ed.getContent());*/
		$('#e_body').html("This message is being save now.").addClass("error");
		$('#e_to_list').html("").removeClass("error");
		$('#e_subject').html("").removeClass("error");
		$('#msg_action').val("save");
		$('form#form_compose').submit();
	});
	
	$('a#msg_send').click(function(){
		/*var ed = tinyMCE.get('body');
		ed.setProgressState(0); // Hide progress 
		$('#body').val(ed.getContent());*/
		$('#e_body').html("This message is being sent now.").addClass("error");
		$('#e_to_list').html("").removeClass("error");
		$('#e_subject').html("").removeClass("error");
		$('#msg_action').val("send");
		$('form#form_compose').submit();
	});
	
	
	$('form#form_golf a.popup_cancel').click(function(){
		parent.tb_remove();
	});
	
	/*$("#fore_list dl.item").hover(
		function () {$(this).addClass("item_hover");},
		function () {$(this).removeClass("item_hover");}
	);*/ 
	
	$('.myproperty a.update').click(resort_update);
	$('a.course_update').click(resort_course_update);
	$('a.course_page_update').click(resort_course_page_update);
	$('form#form_book select#resort').change(book_resort_name_change);
	
	$('form#form_golf_gallery a.btn_submit').click(golf_gallery_form_submit);
	
	$("dl.item dt").hover(
	  function () {
	    $(this).addClass("item_hoverdt");
	  },
	  function () {
	    $(this).removeClass("item_hoverdt");
	  }
	); 

	$("dl.item dd").hover(
	  function () {
	    $(this).addClass("item_hoverdd");
	  },
	  function () {
	    $(this).removeClass("item_hoverdd");
	  }
	); 
	
});

function toggle_login_box(){
	if ($('#login_box').css("display") == "none"){
		$('#login_box').slideDown(500);
		$('.topmenu li#btn_popup').removeClass("nav_close").addClass("nav_open");
	}
	else {
		$('#login_box').slideUp(500);
		$('.topmenu li#btn_popup').removeClass("nav_open").addClass("nav_close");
	}
	return false;
}

var Golf = {
	settings : {}
};

var AjaxFormAction = {
		
	onSubmit : function (formData, jqForm, options){
		$('.message').html('').removeClass('message');
	},
	
	processJson: function (data) {
		//$('.error').removeClass('error');
		if (data.action == "redirect"){
			window.location = data.url;
		}
		else if (data.action == "refresh"){
			window.location.reload();
		}
		else if (data.action == "refresh_parent"){
			parent.location.reload();
		}
		else if (data.action == "close_thickbox"){
			tb_remove();
		}
		else if (data.action == "close_iframe"){
			parent.tb_remove();
		}
		else if (data.action == "insert_success"){
			$(".error").html("").removeClass("error");
			for (var key in data.errors){
				$("#" + key).val(data.errors[key]);
			}
			$("#e_insert").html("Insert success").addClass("error");

			$("#upload").removeAttr("disabled","disabled");
			
		}
		else if (data.action == "success"){
			$("#" + data.id).html(data.message).addClass("error");
			$('#' + data.form_name).clearForm();
			for (var key in data.params){
				var _id = "#" + key; 
				if ($(_id).is("input")){
					$(_id).val(data.params[key]);
				}
				else {
					$(_id).html(data.params[key]);	
				}
			}
		}
		else {
			$(".error").html("").removeClass("error");
			for (var key in data.errors){
				$("#e_" + key).html(data.errors[key]).addClass("error");
			}
		}
	}
}

function join_get_image_path(url){
	parent.$("#upload_pic_tag").attr("src",url);
	parent.$("#photo_url").val(url);
	parent.$("#first_name").focus();
	parent.tb_remove();
}

function join_start_upload(){
    $("#f1_upload_process").css('display','block');
    $("#f1_upload_form").css('display','none');
    return true;
}
function join_upload_error(){
	parent.parent.tb_remove();
	parent.parent.join_set_focus();
}

function join_click_qestion_checkbox()
{
	var val_list = "";
	$('input[id*=q5-]').each(function(){
		var tmp_id = $(this).attr("id");
		if($(this).attr("checked")==true)
		{
			tmp_v = tmp_id.replace('q5-','');
			if(val_list=="")
			{
				val_list = tmp_v +",";
			}
			else
			{
				val_list = val_list + tmp_v + ",";
			}
		}
	});
	$("#q5_hidden").val(val_list);
}

function join_switch_state_mode(){
	if (this.value == "US"){
		$("#state_txt_div").hide();
		$("#state_sel_div").show();
	}
	else{
		$("#state_txt_div").show();
		$("#state_sel_div").hide();
	}
}

function join_pay_now(){
	$('#in_payment').hide();
	$('#in_progress').show();
	var options = { 
		beforeSubmit:AjaxFormAction.onSubmit,  // pre-submit callback 
		success: join_payment_success,  	 // post-submit callback
		dataType: "json" 
	}; 
	$('#form_payment').ajaxSubmit(options);
}

function join_payment_success(data){
	if (data.action == "failure"){
		$('#in_payment').show();
		$('#in_progress').hide();
	}
	return AjaxFormAction.processJson(data);
}

function golf_form_submit(){
	if ($('form#form_golf').length > 0){
		$('form#form_golf').submit();
	}
	else {
		$(this).parents("form.form_golf").submit();
	}
	return false;
}

function golf_form_keypress(event){
	switch (event.keyCode) {
	case 13:
		$('form#form_golf').submit();
		break;
	}
	return true;
}


function message_delete_confirm(burl){
	if(confirm("Are you sure?"))
	{
		window.location = burl;
	}
}
function message_set_font_size(obj,size){
	$('#'+obj).css("font-size",size+'px');
}

function group_get_image_path(url){
	parent.$("#upload_pic_tag").attr("src",url);
	parent.$("#photo_url").val(url);
	parent.$("#name").focus();
	parent.tb_remove();
}

function refreshPostListCss()
{
	$("dl.item dt").hover(
	  function () {
	    $(this).addClass("item_hoverdt");
	  },
	  function () {
	    $(this).removeClass("item_hoverdt");
	  }
	); 

	$("dl.item dd").hover(
	  function () {
	    $(this).addClass("item_hoverdd");
	  },
	  function () {
	    $(this).removeClass("item_hoverdd");
	  }
	); 
}

function post_list_get_page(){
	var action = "next";
	if (this.className == "prev"){
		action = "previous";
	};
	var cur_page = $('#sidebar_post_list input#cur_page').val();
	var total_page = $('#sidebar_post_list input#total_page').val();
	
	cur_page = parseInt(cur_page);
	total_page = parseInt(total_page);
	
	var page = cur_page;
	
	if (action == "previous" && page > 1){
		page = page - 1;
	}
	if (action == "next" && page < total_page){
		page = page + 1;
	}
	
	var url = $('#sidebar_post_list input#action').val();
	
	if (cur_page != page){
		$('#sidebar_post_list input#cur_page').val(page);
		
		//$('#sidebar_post_list div.list_box').load(url, {page:page});
		
		$.post(url, {page:page} , function(data){
			$('#sidebar_post_list div.list_box').html(data);
			refreshPostListCss();
		}, 'html');
		
		
	}
	
	return false;
}


function profile_photo_preview(img, selection){
	if (!selection.width || !selection.height)
        return;
    
    var scaleX = 126 / selection.width;
    var scaleY = 168 / selection.height;
 
	$('div#preview > img').css({
		width: Math.round(scaleX * img.width) + 'px', 
		height: Math.round(scaleY * img.height) + 'px', 
		marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px', 
		marginTop: '-' + Math.round(scaleY * selection.y1) + 'px'
	}).attr('src', img.src);
	
	
}

function profile_photo_crop(img, selection){
	if (selection.width == 0 || selection.height == 0){
		$('input#crop_x1').val(0); 
		$('input#crop_y1').val(0); 
		$('input#crop_x2').val(0); 
		$('input#crop_y2').val(0);
	}
	else {
		$('input#crop_x1').val(selection.x1); 
		$('input#crop_y1').val(selection.y1); 
		$('input#crop_x2').val(selection.x2); 
		$('input#crop_y2').val(selection.y2);
	}
}

function gallery_change_photo(val){
	gallery_fade_imglist($('#img'+val));
	
	var url = $('#gallery_photo_info input#action').val();
	$('#gallery_photo_info').load(url, {photo_id: val});
}

function gallery_fade_imglist(obj){
	$('img[id*=img]').each(function(){
		$(this).removeClass("on");
	});
	obj.addClass("on");
	return false;
}

function gallery_inappropriate(val){
	var url = $('#gallery_photo_info input#inappropriate').val();
	$.post(url, {photo_id: val});
	$('#gallery_approve').show();
}

function resort_update(){
	var id = this.id;
	var cur_id = $('input#cur_detail_id').val();
	
	if (cur_id == id){
		return false;
	}
	
	$('.myproperty a.update').removeClass('on');
	$(this).addClass('on');
	
	//$('.property_top_right .text').hide('slow', function(){
	$('.property_top_right #' + cur_id + '_content').fadeOut(800, function(){
		$('.property_top_right #' + id + '_content').fadeIn(800);
		$('input#cur_detail_id').val(id);
	});
	return false;
}

function resort_course_update(){
	var id = this.id;
	var course_id = $('input#cur_course_id').val();
	if (id == course_id){
		return false;
	}
	
	$('a#' + course_id).removeClass('on');
	$('#' + course_id + "_view").fadeOut(800, function(){
		setTimeout(function(){
			resort_course_page_show(1, false);
			$('#' + id + "_view").fadeIn(800);
			$('a#' + id).addClass('on');
			$('input#cur_course_id').val(id);
			
		}, 500);
	});
	return false;
}

function resort_course_page_show(page, animate){
	var course_id = $('input#cur_course_id').val();
	
	if (page == 2){
		var hide_id = 1;
		var show_id = 2;
	}
	else {
		var hide_id = 2;
		var show_id = 1;
	}
	
	if (animate == true){
		$('a#course_page_' + show_id).hide();
		$('#' + course_id + "_page_" + hide_id).fadeOut(800, function(){
		//$('#course_' + course_id + "_page_1").effect("drop", {direction:'up'}, 'slow', function(){
			setTimeout(function(){
				$('#' + course_id + "_page_" + show_id).fadeIn(800);
				$('a#course_page_' + hide_id).show();
			}, 500);
		});
	}
	else {
		$('a#course_page_' + show_id).hide();
		$('#' + course_id + "_page_" + hide_id).hide();
		$('#' + course_id + "_page_" + show_id).show();
		$('a#course_page_' + hide_id).show();
	}
}

function resort_course_page_update(){
	if (this.id == 'course_page_2'){
		resort_course_page_show(2, true);
	}
	else {
		resort_course_page_show(1, true);
	}
	return false;
}

function resort_add_to_wish_list(action, resort_id){
	$.post(action, {id: resort_id} , function(data){
		if (data.result == "success"){
			/*var font_size = $('#sidebar_scorecard span#scorecard_wish').css('font-size'); 
			$('#sidebar_scorecard span#scorecard_wish').html(data.total).css('font-size', '24px');
			setTimeout(function(){
				$('#sidebar_scorecard span#scorecard_wish').css('font-size', font_size);
			}, 1000);*/
			$(".scorecard .ico").removeClass("ico");
			$("#scorecard_wish").addClass("ico");
		}
			//alert("added to your wish list");
	}, 'json');
}

function resort_check_trip(){
	var options = { 
		beforeSubmit:AjaxFormAction.onSubmit,  // pre-submit callback 
	    success: resort_check_trip_success,  	 // post-submit callback
	    dataType: "json" 
	}; 
	if ($('input#property_code').val() == ""){
		resort_contact_desk();
		return;
	}
	$('#form_book').ajaxSubmit(options);
}

function resort_contact_desk(){
	alert("Please connect with our VIP concierge desk to organize your travel to this resort. \n Call 1.888.893.6697 or Outside the U.S. call 1.506.637.5774");
}

function resort_contact_grouptrips(){
	alert("Please contact Michael Osgood at mosgood@preferredgolf.com or 949-394-1222 to book this package.");
}

function resort_check_trip_success(data){
	$(".error").html("").removeClass("error");
	if (data.action == "failure"){
		for (var key in data.errors){
			/*alert(data.errors[key]);
			break;*/
			$("#e_" + key).html(data.errors[key]).addClass("error");
		}
	}
	else if (data.action == "success"){
		window.location = data.open_url;
	}
}

function resort_request_tee_times(){
	var options = { 
		beforeSubmit:AjaxFormAction.onSubmit,  // pre-submit callback 
	    success: resort_request_tee_times_success,  	 // post-submit callback
	    dataType: "json" 
	};
	$('#form_tee_times').validationEngine({
		promptPosition: "topLeft"
	});
	$.validationEngine.closePrompt('.formError',true)
	$('#form_tee_times').ajaxSubmit(options);
}

function resort_request_tee_times_success(data){
	if (data.action == "success"){
		parent.tb_remove();
	}
	else {
		
		for (var key in data.errors){
			$.validationEngine.buildPrompt('#' + key, data.errors[key],'error');
			break;
		}
	}
}

function resort_book_trip(){
	$('#form_save_trip #task').val("book");
	var options = { 
		beforeSubmit:AjaxFormAction.onSubmit,  // pre-submit callback 
	    success: resort_save_trip_success,  	 // post-submit callback
	    dataType: "json" 
	}; 
	$('#form_save_trip').ajaxSubmit(options);
}

function resort_save_trip(){
	var task  = $('#form_save_trip #task').val();
	$('#form_save_trip #task').val("save");
	var options = { 
		beforeSubmit:AjaxFormAction.onSubmit,  // pre-submit callback 
	    success: resort_save_trip_success,  	 // post-submit callback
	    dataType: "json" 
	}; 
	$('#form_save_trip').ajaxSubmit(options);
}

function resort_save_trip_success(data){
	if (data.result == "success"){
		/*var font_size = $('#sidebar_scorecard span#scorecard_trips').css('font-size'); 
		$('#sidebar_scorecard span#scorecard_trips').html(data.total).css('font-size', '24px');
		setTimeout(function(){
			$('#sidebar_scorecard span#scorecard_trips').css('font-size', font_size);
		}, 1000);*/
		$(".scorecard .ico").removeClass("ico");
		$("#scorecard_trips").addClass("ico");
		$('#form_save_trip #trip_id').val(data.id);
		$('#form_save_trip #task').val(data.task);
	}
}

function package_make_order(){
	alert("Have you registered for your complimentary Preferred Golf Club membership? If not, please click on the Join Now link to activate your membership.");
	$('form#form_golf').submit();
}

function scoreboard_show_invite_dialog(){
	return tb_show("Invite My Friends", Golf.settings.basePath + "member/invite?keepThis=true&TB_iframe=true&height=240&width=335", false);
}

function resort_print_my_gataway(param){
	return tb_show("Print My Getaway", Golf.settings.basePath + "member/invite?keepThis=true&TB_iframe=true&height=240&width=335", false)
}

function golf_gallery_form_submit(){
	var error = false;
	if ($('#upload').val()==""){
		$('#e_upload').html("Please select a photo").addClass("error");
		error = true;
	}
	else{
		$('#e_upload').html("").removeClass("error");
	}
	
	if ($('#title').val()==""){
		$('#e_title').html("Please enter the title").addClass("error");
		error = true;
	}
	else if ($('#title').val().length>25){
		$('#e_title').html("The title must less than 25 charactors").addClass("error");
		error = true;
	}
	else{
		$('#e_title').html("").removeClass("error");
	}
	
	if ($('#note').val()==""){
		$('#e_note').html("Please enter the note").addClass("error");
		error = true;
	}
	else if ($('#note').val().length>150){
		$('#e_note').html("The note must less than 150 charactors").addClass("error");
		error = true;
	}
	else{
		$('#e_note').html("").removeClass("error");
	}
	
	if (!error){
		$('form#form_golf_gallery').submit();
	}
	return false;
}

function topmenu_show_email_dialog(){
	return tb_show("YOU'RE GONNA LOVE THIS BOOK", Golf.settings.basePath + "member/order-directory?keepThis=true&TB_iframe=true&height=180&width=300", false);
}

function resort_share_friend(url){
	return tb_show("Share this Trip", Golf.settings.basePath + "getaway/to-friend?"+url+"&keepThis=true&TB_iframe=true&height=240&width=355", false);
}

function request_offer_email(url){
	return tb_show("Beat The Package Guarantee", Golf.settings.basePath + "offer/request-offer?"+url+"&keepThis=true&TB_iframe=true&height=240&width=355", false);
}

function book_resort_name_change(){
	if (this.value == ""){
		$('input#city').val("");
		$('input#state').val("");
		$('input#country').val("");
		$('input#offer_code').val("");
		return true;
	}
	$.post(Golf.settings.basePath + "resort/location", {resort_id: this.value} , function(data){
		if (data.result == "success"){
			$('input#city').val(data.city);
			$('input#state').val(data.state);
			$('input#country').val(data.country);
			$('input#offer_code').val(data.offer_code);
		}
		else {
			$('input#city').val("");
			$('input#state').val("");
			$('input#country').val("");
			$('input#offer_code').val("");
		}
	}, 'json');
}

function resort_photo_share_friend(resort_id, photo_id){
	return tb_show("SEND TO FRIEND", Golf.settings.basePath + "resort/send-resort-photo?id="+resort_id+"&photo_id="+photo_id+"&keepThis=true&amp;TB_iframe=true&amp;height=250&amp;width=355", false);
}

function print_my_getway(val){
	return tb_show("PRINT MY GETAWAY", Golf.settings.basePath + "getaway/print?"+val+"&keepThis=true&amp;TB_iframe=true&amp;height=535&amp;width=706", false);
}

