
if (!Array.prototype.inArray) {
	Array.prototype.inArray = function(element) {
		for (var i = 0; i < this.length; i++) {
			if (this[i] == element) {
				return true;
			}
		}
		return false;
	}
}


/**
* Refreshing captcha verification code
*/
function refreshCaptchaCode(verCodeField, verCodeImage){
	$.get("captcha.php", function(resCode){
			$("#"+verCodeField).val(resCode);
			$("#"+verCodeImage).attr("src", "captcha.php?code="+resCode);
	});
}


/**
* Init tabs
*/
function initTabs(){
	$(".tabs_container").each(function(){
		$(this).children("li")
			.click(function(){ changeTab($(this).attr("id")); })
			.filter(":first").click();
	});
}


/**
* Change tabs
*/
function changeTab(toShowTabID){
	var parentTabContainer = $("#"+toShowTabID).parent();
	$(parentTabContainer).children().each(function(){
		var tabID = $(this).attr("id");
		var tabContainerID = tabID.substr(0, tabID.length-4)+"_container";
		$(this).removeClass("active");
		$("#"+tabContainerID).hide();
	});
	
	var tabContainerID = toShowTabID.substr(0, toShowTabID.length-4)+"_container";
	$("#"+toShowTabID).addClass("active");
	$("#"+tabContainerID).show();
}


/**
*
*/
function initTopMembersList(){
	var memberDetails = null;
	$(".top_members_list li:not(.empty_top_friends_list)").hover(function(){
		var profileImage = $(this).children(".profile_image").val();
		memberDetails = $("<div></div>")
			.addClass("tooltip")
			.append($("<img />").attr("src", profileImage))
			.appendTo($(this));
	}, function(){
		memberDetails.remove();
		memberDetails = null;
	});
}


/**
*
*/
function initLoginBox(){
	if ($(".login_box").length) {
		$(".login_box :password").bind("keydown", function(e){
			if (e.keyCode == 13) {
				$(this).parents("form:first").submit();
			}
		});
	}
}


function initInvitation(){
	var slideSpeed = 400;
	
	$(".invite_providers_container .provider_item").click(function(){
		if ($(this).attr("id") != 'csv') {
			if (!$(".provider_logo").length)
				$("<img />").addClass("provider_logo").attr("src", $(this).attr("src")).appendTo($(".invite_provider_logo"));
			else
				$(".provider_logo").attr("src", $(this).attr("src"));
			
			$("#provider_box").val($(this).attr("id"));
			
			$(".invite_providers_list").slideToggle(slideSpeed, function(){
				$(".invite_provider_form").slideToggle(slideSpeed);
			});
		}
		else {
			if (!$(".csv_logo").length)
				$("<img />").addClass("csv_logo").attr("src", $(this).attr("src")).appendTo($(".invite_csv_logo"));
			else
				$(".csv_logo").attr("src", $(this).attr("src"));
			
			$(".invite_providers_list").slideToggle(slideSpeed, function(){
				$(".invite_csv_form").slideToggle(slideSpeed);
			});
		}
	});
	
	$(".invite_providers_container .invite_cancel_btn").click(function(){
		$(".invite_emails_list").empty();
		
		$("#send_provider_box").val("php");
		$("#send_email_box").val($("#default_email_box").val());
		
		if ($(".invite_provider_form").is(":visible")) {
			$(".invite_provider_form").slideToggle(slideSpeed, function(){
				$(".invite_providers_list").slideToggle(slideSpeed);
			});
		}
		else if ($(".invite_csv_form").is(":visible")) {
			$(".invite_csv_form").slideToggle(slideSpeed, function(){
				$(".invite_providers_list").slideToggle(slideSpeed);
			});
		}
		
		showDefaultEmails();
		showEmailsColumn();
	});
	
	$("#select_all_checkbox").click(function(){
		$(".invite_emails_list :checkbox").attr("checked", $(this).attr("checked"));
	});
	
	$("#password_box").keydown(function(evt){
		if (evt.keyCode == 13) $(".invite_login_btn").trigger("click");
	});
	
	$(".invite_login_btn").click(function(){
		$(".invite_buttons").hide();
		$(".invite_waiting").show();
		$("#password_box, #email_box").attr("disabled", true);
		
		$.ajax({
			url : "data.php?action=get_invite_list",
			dataType : "json",
			cache: false,
			type : "POST",
			data : {
				email_box : $("#email_box").val(),
				password_box : $("#password_box").val(),
				provider_box : $("#provider_box").val(),
				step : $("#step").val()
			},
			error : function(resData, status){
				resetInviteForm();
			},
			success : function(resData, status){
				if (typeof(resData) == "object") {
					if (resData.error) {
						POPUP_DIALOG.ShowPopupDialog('invite_error_dialog');
						
						resetInviteForm();
						return false;
					}
					
					var inviteData = {
						provider_box : $("#provider_box").val(),
						email_box : $("#email_box").val(),
						emails_list : resData
					}
					hideDefaultEmails();
					fillInvitationEmails(inviteData);
				}
				else {
					resetInviteForm();
				}
			}
		});
	});
	
	new AjaxUpload('invite_importcsv_btn', {
		action : 'data.php?action=get_csv_list',
		name : 'csv_file',
		autoSubmit : true,
		responseType : 'json',
		onSubmit : function(file, ext){
			if (!(ext && /^(csv)$/.test(ext))) {
				alert('Invalid file format selected');
				return false;
			}
			$(".csv_buttons").hide();
			$(".csv_waiting").show();
		},
		onComplete : function(file, resData){
			if (typeof(resData) == "object") {
				if (resData.error) {
					POPUP_DIALOG.ShowPopupDialog('invite_csv_error_dialog');
					
					resetCSVInviteForm();
					return false;
				}
				
				var inviteData = {
					provider_box : 'csv',
					email_box : $("default_email_box").val(),
					emails_list : resData
				}
				
				hideDefaultEmails();
				fillInvitationEmails(inviteData, 'csv');
			}
			else {
				resetCSVInviteForm();
			}
		}
	});
	
	
	var resetInviteForm = function(){
		$(".invite_buttons").show();
		$(".invite_waiting").hide();
		$("#password_box, #email_box").attr("disabled", false);
	}
	var resetCSVInviteForm = function(){
		$(".csv_buttons").show();
		$(".csv_waiting").hide();
	}
	
	var hideDefaultEmails = function(){
		$('.default_emails_list').hide();
	}
	var showDefaultEmails = function(){
		$('.default_emails_list').show();
	}
	var hideEmailsColumn = function(){
		$('.email_column_header').hide();
	}
	var showEmailsColumn = function(){
		$('.email_column_header').show();
	}
	
	var fillInvitationEmails = function(inviteData, type){
		type = type || 'web';
		
		$(".invite_emails_list").empty();
		
		$("#send_provider_box").val(inviteData.provider_box);
		$("#send_email_box").val(inviteData.email_box);
		
		if ( $("#send_provider_box").val() == 'facebook') {
			hideEmailsColumn();
		}
		
		var re = new RegExp(/^[.\w-]+@([\w-]+\.)+[a-zA-Z]{2,6}$/);
		
		$.each(inviteData.emails_list, function(i, contact){
			var row = $("<div>").appendTo($(".invite_emails_list"));
			
			$("<input />")
				.addClass("checkbox")
				.attr({
					type : "checkbox",
					name : "check["+i+"]",
					value : i,
					checked : true
				})
				.appendTo(row);
			
			$("<input />")
				.addClass("textfield")
				.attr({
					type : "text",
					name : "name["+i+"]"
				})
				.val(contact.name)
				.appendTo(row);
			
			$("<input />")
				.addClass("textfield")
				.attr({
					type : re.test(contact.email) ? "text" : "hidden",
					name : "email["+i+"]"
				})
				.val(contact.email)
				.appendTo(row);
		});
		
		if (type == 'web') {
			$(".invite_buttons").show();
			$(".invite_waiting").hide();
			$("#password_box, #email_box").attr("disabled", false);
		}
		else {
			$(".csv_buttons").show();
			$(".csv_waiting").hide();
		}
	}
}

function initLatestPhotos() {
	$('.photo_box').filter(':not([trip_id=0])').hover(function(){
		$(this).children('.photo_details').show();
	}, function(){
		$(this).children('.photo_details').hide();
	});
}



var POPUP_DIALOG = function(){
	var initPopupDialog = function(){
		$(".popup_bordered_box")
			.find(".close")
				.click(closePopupDialog)
			.end()
			.appendTo("body");
		
		if ($("#error_popup_dialog").length) showPopupDialog('error_popup_dialog');
	}
	
	var closePopupDialog = function(){
		$(".popup_bordered_box").hide();
		$("#page_overlay").remove();
	}
	
	var showPopupDialog = function(popupDialogID){
		$("<div></div>")
			.attr("id", "page_overlay")
			.css({
				position : "absolute",
				left : 0,
				top : 0,
				width : $("body").width(),
				height : $("body").height(),
				backgroundColor : "#000",
				opacity : 0.8,
				zIndex : 100
			})
			.click(function(){
				$(".popup_bordered_box").find(".close").trigger('click');
			})
			.appendTo("body");
		
		if ($("#"+popupDialogID).length) {
			$("#"+popupDialogID)
				.css({
					top : $(document).scrollTop() + (($(window).height() - $("#"+popupDialogID).height()) / 2)
				})
				.show();
		}
		else {
			$(".popup_bordered_box")
				.css({
					top : $(document).scrollTop() + (($(window).height() - $("#"+popupDialogID).height()) / 2)
				})
				.show();
		}
	}
	
	return {
		InitPopupDialog : initPopupDialog,
		ShowPopupDialog : showPopupDialog,
		ClosePopupDialog : closePopupDialog
	}
}();

$(document).ready(function(){
	$("#header h1").click(function(){ document.location.href = "./"; });
	$(".button").filter(".submit").click(function(){
		$(this).parents("form:last")[0].submit();
	});
	$("#dedicated_link").click(function(){
		return false;
	}).hover(function(){
		if ($('.dedicated_link_tooltip').length) {
			var y = parseInt($('.dedicated_link_tooltip').css('top'));
			$('.dedicated_link_tooltip').css({
				top : y - 5,
				opacity : 0
			}).show();
			$('.dedicated_link_tooltip').stop().animate({
				top : y,
				opacity : 1
			}, 300);
		}
		else {
			$('<div>').addClass('dedicated_link_tooltip').css({
				top : $(this).position().top,
				left : $(this).position().left,
				marginLeft : -(150 - $(this).width())/2,
				opacity : 0
			})
			.append($('<div>').html($('#dedicated_link_text').val()))
			.appendTo('body');
			
			var y = parseInt($('.dedicated_link_tooltip').css('top'));
			$('.dedicated_link_tooltip').css('top', y - 5);
			$('.dedicated_link_tooltip').stop().animate({
				top : y,
				opacity : 1
			}, 300);
		}
	}, function(){
		$('.dedicated_link_tooltip').stop().animate({
			opacity : 0
		}, 300, function(){ $(this).hide() });
	});
	
	$("#code_refresh_register span").click(function(){ refreshCaptchaCode('registration_id', 'registration_img'); });
	$("#code_refresh_forgotpass span").click(function(){ refreshCaptchaCode('forgotpass_id', 'forgotpass_img'); });
	
	$(".photo_box").click(function(){ 
		if ($(this).attr("trip_id") > 0)
			document.location.assign("trip.php?trip_id="+$(this).attr("trip_id")); 
	});
	
	$("#forgotpass_link").click(function(){
		$("#first_page_register_box").slideUp(function(){
			$("#first_page_forgotpass_box").slideDown();
			document.location.hash = "#forgotpass";
		});
		return false;
	});
	$(".forgotpass_back_registration").click(function(){
		$("#first_page_forgotpass_box").slideUp(function(){
			$("#first_page_register_box").slideDown();
			document.location.hash = "#register";
		});
		return false;
	});
	if (document.location.hash == "#forgotpass") $("#forgotpass_link").trigger("click");
	
	initLoginBox();
	initTabs();
	initTopMembersList();
	initLatestPhotos();
	
	POPUP_DIALOG.InitPopupDialog();
});

/**
* Dynamicaly inserting flash object
*/
function InsertFlashObject(url, styles, flashvars){ // { userId : 45 }
	var obj = '<div style="width:'+styles.width+'px; height:'+styles.height+'px; margin:0px auto; ">'+
						'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+styles.width+'" height="'+styles.height+'" id="">'+
						'<param name="allowScriptAccess" value="sameDomain" />'+
						'<param name="allowFullScreen" value="false" />'+
						'<param name="movie" value="'+url+'" />'+
						'<param name="quality" value="high" />'+
						'<param name="bgcolor" value="#efefef" />'+
						'<param name="wmode" value="transparent" />'+
						'<param name="flashvars" value="user_id='+flashvars.userId+'" />'+
						'<embed src="'+url+'" flashvars="user_id='+flashvars.userId+'" quality="high" wmode="transparent" bgcolor="#efefef" width="'+styles.width+'" height="'+styles.height+'" name="" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'+
						'</object>'+
						'</div>';
	document.write(obj);
}

function openTerms(){
	window.open('terms.php', '', 'width=1000,height=600,scrollbars=1');
}

function openPolicy(){
	window.open('policy.php', '', 'width=1000,height=600,scrollbars=1');
}