/**
 * @author Arturas Paleicikas <arturas.paleicikas@metasite.net>
 */

var Common ={
	init: function(params){
		this.params = params;
		var $Common = this;

		$Common.initCalendar();
		$Common.initPush();
		$Common.initNavigation();
		$Common.initPrint();
		$Common.initClearInput();
		$Common.initFooterFloat();
	},

	// navigation
	initNavigation: function(){
		var $Common = this;
		var $obj = $Common.params.navigation;

		$('ul.navMain li[@id^=navItem]', $obj)
			.hover(function(){
				$(this).addClass('navHover');
				$('ul', this).show();
			}, function(){
				$(this).removeClass('navHover');
				$('ul', this).hide();
			});
	},

	// calendar
	initCalendar: function(){
		var $Common = this;
		var curdate = new Date();
		$('input.callCalendar').datepicker(
				$.extend(
					{
						dateFormat:'yy-mm-dd',
						showOn:'both',
						buttonImageOnly:true,
						buttonImage:'img/common/calendar.gif',
						minDate: new Date(curdate.getFullYear(), (curdate.getMonth()-1), 1),
						maxDate: new Date()
					},
					$.datepicker.regional[$Common.params.lang]
				)
			);

			$('input.callCalendarToFuture').datepicker(
				$.extend(
					{
						dateFormat:'yy-mm-dd',
						showOn:'both',
						buttonImageOnly:true,
						buttonImage:'img/common/calendar.gif',
						minDate: new Date(),
						maxDate: new Date((curdate.getFullYear()+1), curdate.getMonth(), curdate.getDate()-1)
					},
					$.datepicker.regional[$Common.params.lang]
				)
			);
	},

	// send sms push
	initPush: function(){
		var $Common = this;
		var $items = $('a.callSmsPush');

		$items
			.click(function(e){
				var groupName = $(this).attr('name') || null;
				var gsm_prefix = $Common.params.gsm_prefix;
				if(!groupName)
					return;

				if(!this.$tooltip)
				{
					var form = [];
					form.push('<div id="tooltipPush">');
					form.push('<form method="post">');
						form.push('<input type="text" name="info[]" value="'+ gsm_prefix +'" maxlength="12" class="field" />');
						form.push('<input type="image" src="img/common/go.jpg" class="submit" value="&raquo;" alt="&raquo;" />');
						form.push('<a href="#" class="close"><img src="img/common/close_big.gif" alt="" /></a>');
					form.push('</form>');
					form.push('</div>');

					var $tooltip = $(form.join(' '))
						.find('a.close')
						.unbind('click')
						.click(function(){
							$tooltip.hide();
							return false;
						})
						.end()
						.find('form')
						.unbind('submit')
						.submit(function(z){
							var uri = $Common.params.lang +'/c/push/'+ groupName;
							var $input = $tooltip.find('input[@type=text]');
							var msisdn = $input.val();

							if(/^(\d{11})+$/.test(msisdn)){
								$.post(uri, {'data[msisdn]':msisdn}, function(data){
									switch(data){
										case true:
										$input.val(gsm_prefix);
										$tooltip.hide();
										break;

										default:
										$input.addClass('error');
										break;
									}
								}, 'json');
							} else {
								$input.addClass('error');
							}

							return false;
						})
						.end()
						.hide()
						.appendTo('body');

					this.$tooltip = $tooltip;
				}

				var x = (e.pageX || (e.clientX ? e.clientX + document.body.scrollLeft : 0)) + 10;
				var y = (e.pageY || (e.clientY ? e.clientY + document.body.scrollTop : 0)) + 10;

				this.$tooltip
					.show()
					.css({
						left:x +'px',
						top:y +'px',
						position:'absolute'
					})
					.find('input[@type=text]')
					.removeClass('error');

				return false;
			});
			
	},
	
	initFooterFloat: function(){
		var B = this;
		
		B.footerFloat();
		$(window).scroll(function(){
			B.footerFloat();
		});
	
		$(window).resize(function() {
			B.footerFloat();
		});	
	},
	
	footerFloat: function(){
		var $float_pos = $(window).height() - 60;
		$("#footer-float-banner").css("top", $float_pos);
	},
	
	// print
	initPrint: function(){
		$('.callPrintView')
			.click(function(){
				if(window.Print)
					window.Print.open();
				return false;
			});
	},

	initClearInput: function(){
		$('.callOnClickClear')
			.click(function(){
				$(this)
					.val('')
					.unbind('click');

				return false;
			});
	}
};