/*
 * Skiers Lounge plugin for Skiinfo
 *
 */

if($j && Skiinfo) {

// Extend the Skiinfo object
// We only have one instance, so we don't need to prototype
Skiinfo.Lounge = {
	/*
	showWallReplyForm: function(elementId) {
		var comment = $j('#'+elementId).append('<');		
	}*/
		
	reportContent: function(params) {
		// create the dialog div and append to body
		if($j('#reportContentDialog').size()==0) {
			createDialog();
		}
		var dialog = $j('#reportContentDialog');
		
		dialog.find('input[name=email]').val('');
		dialog.find('textarea[name=message]').val('');
		dialog.find('input[type=submit]').removeAttr("disabled").removeClass("disabled").val(Skiinfo.getTr('global.submit'));
		dialog.find('input[name=type]').val(params.type);
		dialog.find('input[name=typeId]').val(params.id);
		dialog.find('#reportContentProgressBar').hide();
		
		dialog.jqmShow();
	
		function createDialog() {
			// Create the hidden div that will be displayed as a dialog.
			// All form fields will be filled out by Skiinfo.Lounge.reportContent.
			
			var dialog = $j('<div class="jqmWindow" id="reportContentDialog">' +
			     '<form name="reportContentForm" action="/lounge/ajax" method="POST" onsubmit="if (document.getElementById(\'repContMessage\').value.length>3){return true;}else{return false;}">' +
			       '<h3>' + Skiinfo.getTr('product.lounge.ReportContent') + '</h3>' +	
			       '<input type="hidden" name="action" value="reportContent" />' +
			       '<input type="hidden" name="type" value="" />' +
			       '<input type="hidden" name="typeId" value="repContId" />' +
			       '<ul>' +
			         '<li><label for="repContEmail">'+Skiinfo.getTr('global.Email')+'</label><input type="text" name="email" id="repContEmail" /></li>' +
			         '<li><label for="repContMessage">'+Skiinfo.getTr('product.lounge.ReportContentMessage')+'</label><textarea name="message" id="repContMessage" onkeyup="if (this.value.length>3){document.getElementById(\'repContErr\').style.display=\'none\';document.getElementById(\'repContSubmit\').style.display=\'block\';}else{document.getElementById(\'repContErr\').style.display=\'block\';document.getElementById(\'repContSubmit\').style.display=\'none\';}"></textarea></li>' +
			         '<li><div id="repContErr" style="display:block;;padding-left:130px">'+Skiinfo.getTr('product.lounge.ReportContent.WriteYourMessage')+'</div></li>' +
					  '<li>' +
			           '<input class="submit" type="submit" value="'+Skiinfo.getTr('global.submit')+'" id="repContSubmit" style=\'display:none;\'/>' +
			           '<img id="reportContentProgressBar" src="/gifs/7/ajax/8-0.gif" style="display:none;" alt="" />' +
			           '<a href="#" class="jqmClose">'+Skiinfo.getTr('global.Close')+'</a>' +
			         '</li>' +
			       '</ul>' +
			     '</form>' +
			   '</div>'
			);
			$j('body').append(dialog);
			dialog.jqm({trigger: false});
			dialog.find('form').ajaxForm({
				beforeSubmit:  showProgressBar,
        		success:       showThankYou
			});
			
		}
		
		function showProgressBar(formData, jqForm, options) {
			jqForm.find('input[type=submit]').attr('disabled', true).addClass("disabled").val(Skiinfo.getTr('product.lounge.Sending') + '...');
			jqForm.find('#reportContentProgressBar').show();
		}
		
		// this is the callback after the form has been submitted
		function showThankYou(responseText, statusText) {
			$j('#reportContentDialog').jqmHide();
            alert(Skiinfo.getTr('product.lounge.ReportContentThankYou')); 
		}
	},

	
	inviteAFriend: function() {
		// create the dialog div and append to body
		if($j('#inviteAFriendDialog').size()==0) {
			createDialog();
		}
		var dialog = $j('#inviteAFriendDialog');
		
		dialog.find('input[name=email]').val('');
		dialog.find('textarea[name=message]').val('');
		dialog.find('input[type=submit]').removeAttr("disabled").removeClass("disabled").val(Skiinfo.getTr('global.submit'));
		dialog.find('#inviteAFriendProgressBar').hide();
		
		dialog.jqmShow();
	
		function createDialog() {
			// Create the hidden div that will be displayed as a dialog.
			// All form fields will be filled out by Skiinfo.Lounge.inviteAFriend.
			
			var dialog = $j('<div class="jqmWindow" id="inviteAFriendDialog">' +
			     '<form name="inviteAFriendForm" action="/lounge/ajax" method="POST">' +
			     '<h3>' + Skiinfo.getTr('product.lounge.InviteAFriend') + '</h3>' +
			       '<input type="hidden" name="action" value="inviteAFriend" />' +
			       '<ul>' +
			         '<li><label for="invFrndEmail">'+Skiinfo.getTr('global.Email')+'</label><input type="text" name="email" id="invFrndEmail" /></li>' +
			         '<li><label for="invFrndMessage">'+Skiinfo.getTr('product.lounge.InviteAFriendMessage')+'</label><textarea name="message" id="invFrndMessage"></textarea></li>' +
			         '<li>' +
			           '<input class="submit" type="submit" value="'+Skiinfo.getTr('global.submit')+'" />' +
			           '<img id="inviteAFriendProgressBar" src="/gifs/7/ajax/8-0.gif" style="display:none;" alt="" />' +
			           '<a href="#" class="jqmClose">'+Skiinfo.getTr('global.Close')+'</a>' +
			         '</li>' +
			       '</ul>' +
			     '</form>' +
			   '</div>'
			);
			$j('body').append(dialog);
			dialog.jqm({trigger: false});
			dialog.find('form').ajaxForm({
				beforeSubmit:  showProgressBar,
        		success:       showThankYou
			});
			
		}
		
		function showProgressBar(formData, jqForm, options) {
			jqForm.find('input[type=submit]').attr('disabled', true).addClass("disabled").val(Skiinfo.getTr('product.lounge.Sending') + '...');
			jqForm.find('#inviteAFriendProgressBar').show();
		}
		
		// this is the callback after the form has been submitted
		function showThankYou(responseText, statusText) {
			$j('#inviteAFriendDialog').jqmHide();
            alert(Skiinfo.getTr('product.lounge.InviteAFriendThankYou')); 
		}
	},

	
	tipAFriend: function(title) {
		// create the dialog div and append to body
		if($j('#tipAFriendDialog').size()==0) {
			createDialog();
		}
		var dialog = $j('#tipAFriendDialog');
		
		dialog.find('input[name=email]').val('');
		dialog.find('input[name=title]').val(title);
		dialog.find('textarea[name=message]').val('');
		dialog.find('input[type=submit]').removeAttr("disabled").removeClass("disabled").val(Skiinfo.getTr('global.submit'));
		dialog.find('#tipAFriendProgressBar').hide();
		
		dialog.jqmShow();
	
		function createDialog() {
			// Create the hidden div that will be displayed as a dialog.
			// All form fields will be filled out by Skiinfo.Lounge.tipAFriend.
			
			var dialog = $j('<div class="jqmWindow" id="tipAFriendDialog">' +
			     '<form name="tipAFriendForm" action="/lounge/ajax" method="POST">' +
			     '<h3>' + Skiinfo.getTr('product.lounge.TipAFriend') + '</h3>' +
			       '<input type="hidden" name="action" value="tipAFriend" />' +
			       '<input type="hidden" name="title" value="" />' +
			       ( Skiinfo.getTr('product.lounge.TipAFriendHelp') != 'product.lounge.TipAFriendHelp' ? '<div class="tipFrndHelp">' + Skiinfo.getTr('product.lounge.TipAFriendHelp') + '</div>' : '') +
			       '<ul>' +
			         '<li><label for="tipFrndEmail">'+Skiinfo.getTr('global.Email')+'</label><input type="text" name="email" id="tipFrndEmail" /></li>' +
			         '<li><label for="tipFrndMessage">'+Skiinfo.getTr('product.lounge.TipAFriendMessage')+'</label><textarea name="message" id="tipFrndMessage"></textarea></li>' +
			         '<li>' +
			           '<input class="submit" type="submit" value="'+Skiinfo.getTr('global.submit')+'" />' +
			           '<img id="tipAFriendProgressBar" src="/gifs/7/ajax/8-0.gif" style="display:none;" alt="" />' +
			           '<a href="#" class="jqmClose">'+Skiinfo.getTr('global.Close')+'</a>' +
			         '</li>' +
			       '</ul>' +
			     '</form>' +
			   '</div>'
			);
			$j('body').append(dialog);
			dialog.jqm({trigger: false});
			dialog.find('form').ajaxForm({
				beforeSubmit:  showProgressBar,
        		success:       showThankYou
			});
			
		}
		
		function showProgressBar(formData, jqForm, options) {
			jqForm.find('input[type=submit]').attr('disabled', true).addClass("disabled").val(Skiinfo.getTr('product.lounge.Sending') + '...');
			jqForm.find('#tipAFriendProgressBar').show();
		}
		
		// this is the callback after the form has been submitted
		function showThankYou(responseText, statusText) {
			$j('#tipAFriendDialog').jqmHide();
            alert(Skiinfo.getTr('product.lounge.TipAFriendThankYou')); 
		}
	},
	
	
	initWindow : function(windowName, parameters) {
		// create the dialog div and append to body
		if($j('#' + windowName + 'Dialog').size()==0) {
			createDialog();
		}
		var dialog = $j('#' + windowName + 'Dialog');
		
		var url = '/lounge/ajax?action=init' + windowName + 'Window';
		if(parameters) {
			for(key in parameters) {
				url += '&' + key + '=' + parameters[key];
			}	
		}
		dialog.jqm({ajax: url, onLoad: initProgressBar});
		dialog.jqmShow();
	
		function createDialog() {
			// Create the hidden div that will be displayed as a dialog.
			// All form fields will be filled out by Skiinfo.Lounge.tipAFriend.
			
			var dialog = $j('<div class="jqmWindow" id="' + windowName + 'Dialog">' +
				 '<img id="progressBar" src="/gifs/7/ajax/8-0.gif" alt="Loading..." />' +
			     '<a href="#" class="jqmClose">'+Skiinfo.getTr('global.Close')+'</a>' +
			   '</div>'
			);
			$j('body').append(dialog);
		}

		function initProgressBar() {
			$j(this).find('input[type=submit]').click(function () {
				$j(this).addClass("disabled").val(Skiinfo.getTr('product.lounge.Sending') + '...');
				$j(this).parent().find('#progressBar').show();
			});
		}

		return false;	
	},
	
	
	deletePrvMsg : function(messageId) {
		$j('#message' + messageId).fadeOut('normal');
		$j.ajax({
			type: "POST",
			url: "/lounge/ajax",
			data: "action=deleteMessage&messageId=" + messageId,
			success: function(){
				$j('#message' + messageId).slideUp('normal');
			},
			error: function(){
				$j('#message' + messageId).fadeIn('normal');
			}
		});
	},
	
	deleteSkiTrip : function(skiTripId) {
		if(confirm(Skiinfo.getTr('product.skidays.DeleteAreYouSure'))) {
			$j('#skiTrip' + skiTripId).fadeOut('normal');
			$j.ajax({
				type: "POST",
				url: "/lounge/ajax",
				data: "action=deleteSkiTrip&skiTripId=" + skiTripId,
				success: function(){
					$j('#skiTrip' + skiTripId).slideUp('normal');
				},
				error: function(){
					$j('#skiTrip' + skiTripId).fadeIn('normal');
				}
			});
		}
	},

	sendPrvMsg : function(toUserId, toUserNick) {
		// create the dialog div and append to body
		if($j('#sendPrvMsgDialog').size()==0) {
			createDialog();
		}
		var dialog = $j('#sendPrvMsgDialog');
		
		dialog.jqm({ajax: '/lounge/ajax?action=initPrvMsgWindow&toUserId=' + toUserId, trigger: false, onLoad: initForm});
		dialog.jqmShow();
	
		function createDialog() {
			// Create the hidden div that will be displayed as a dialog.
			// All form fields will be filled out by Skiinfo.Lounge.tipAFriend.
			
			var dialog = $j('<div class="jqmWindow" id="sendPrvMsgDialog">' +
			     '<img id="progressBar" src="/gifs/7/ajax/8-0.gif" alt="Loading..." />' +
			     '<a href="#" class="jqmClose">'+Skiinfo.getTr('global.Close')+'</a>' +
			   '</div>'
			);
			$j('body').append(dialog);
		}

		function initForm() {
			$j(this).find('form').ajaxForm({
				beforeSubmit:  showProgressBar,
        		success:       showThankYou
			});
		}
		
		function showProgressBar(formData, jqForm, options) {
			jqForm.find('input[type=submit]').attr('disabled', true).addClass("disabled").val(Skiinfo.getTr('product.lounge.Sending') + '...');
			jqForm.find('#progressBar').show();
		}
		
		function showThankYou(responseText, statusText) {
			$j('#sendPrvMsgDialog').jqmHide();
            //alert(Skiinfo.getTr('product.lounge.Info.MessageIsSent')); 
		}

		return false;	
	},

	
	initMemberSearchEvents: function() {
		if($j('#lounge_Header').size()==0) return;
		$j('#lounge_Header input[name=serachPattern]').focus(function() {
		   if($j(this).val() == Skiinfo.getTr('product.lounge.MembersSearch')) $j(this).val('');
		});
		$j('#lounge_Header input[name=serachPattern]').blur(function() {
		    if($j(this).val() == '') $j(this).val(Skiinfo.getTr('product.lounge.MembersSearch'));
		});
	},


	doAutoLink: function () {
		$j('.autoLink').each(function () {
			var text = $j(this).html();
			var tagName = $j(this).attr('tagName');
			var className = $j(this).attr('className');
			text = text.replace(/(^|[^"])(https?\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g,'$1<a href="$2" rel="nofollow" target="_blank">$2</a>');
			text = text.replace(/(^|[^"\/])(www\.[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g,'$1<a href="http://$2" rel="nofollow" target="_blank">$2</a>');
			$j(this).replaceWith('<' + tagName + ' class="' + className + '">' + text + '</' + tagName + '>');
			// http://www.quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html
		});
	}
};

// document.ready
$j(function(){
	Skiinfo.initDynamicCountryDestSelectors('#imageCountryCode', '#imageDestId');
	Skiinfo.initDynamicCountryDestSelectors('#videoCountryCode', '#videoDestId');
	Skiinfo.initDynamicCountryDestSelectors('#blogEntryCountryCode', '#blogEntryDestId');
	Skiinfo.Lounge.doAutoLink();
});

}
