// JavaScript Document
$(document).ready(function() {

	var selectedNav = $('#header .nav-container .navigation li a.selected');
	var selectedNavPos = -120;
	if(selectedNav.length > 0) {
		selectedNavPos = selectedNav.position().left - 20;
		if(selectedNav.width() > 45) {
			selectedNavPos += (selectedNav.width() - 45)/2;
		}
	}
	$('#header .nav-container').css('backgroundPosition', selectedNavPos+'px 4px');
	
    var titleBarMenuContainer = $('#titleBar .nav-container');
	if(titleBarMenuContainer.length > 0) {
		var titleBarMenu = $('#titleBar .nav-container .navigation').find('li:last-child');
		var menuWidth = titleBarMenu[0].offsetLeft + titleBarMenu.outerWidth() + 15;
		$('#titleBar .nav-container').mousemove(function(e) {
		  var left = (e.pageX - titleBarMenuContainer.offset().left) * (menuWidth-titleBarMenuContainer.width()) / titleBarMenuContainer.width();
		  titleBarMenuContainer.scrollLeft(left);
		});
		
		$('#titleBar .nav-container').bind('touchmove',function(e) {
			e.preventDefault();
			var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
			var elm = $(this).offset();
			var x = touch.pageX - elm.left;
			var y = touch.pageY - elm.top;
			if(x < $(this).width() && x > 0) {
				if(y < $(this).height() && y > 0) {
					var left = (touch.pageX - titleBarMenuContainer.offset().left) * (menuWidth-titleBarMenuContainer.width()) / titleBarMenuContainer.width();
					titleBarMenuContainer.scrollLeft(left);
				}
			}
		});
	}

	$('#testimonials .slides').after('<div id="testimonialsMenu"><ul></ul></div>');
	var slideshow = $('#testimonials .slides').cycle({ 
    	fx: 'scrollHorz', 
		easeOut: 'easeOutSine',
		timeout: 14000,
    	delay: -2000,
		sync: false,
		pager: '#testimonialsMenu ul',
        pagerAnchorBuilder: function(idx, slide) { 
			return '<li><a href="#">'+(idx+1)+'</a></li>';
        }
	});
	var images = $('#testimonials .images').cycle({ 
    	fx: 'scrollHorz',
		easeOut: 'easeOutSine',
		timeout: 14000,  
    	delay: -2000,
		speed: 750,
		sync: false,
		pager: '#testimonialsMenu ul',
        pagerAnchorBuilder: function(idx, slide) { 
			return '#testimonialsMenu ul a:eq('+idx+')';
        }
	});
	
	$('.features-example-btn').live('click', function() {
		if($("#featuresExample").length == 0)  {
			$('#fadeContent').after('<div id="featuresExample" class="hide"></div>');
			
			$.getJSON('sms-marketing-features/?mode=content&pipe=examples', function(data) {
				$.each(data, function(i,item) {
					$("<a/>").attr("rel", "featuresExample").appendTo("#featuresExample").attr("href", item[0]).attr("title", item[1]).append(
						$("<img/>").attr("src", item[0])
					);
				});
				
				$("#featuresExample a").fancybox();
				$("#featuresExample a:first").trigger('click');
			});
		} else {
			$("#featuresExample a:first").trigger('click');	
		}
		return false;
	});
	
	$('.plan li').each(function() {
		var message = $(this).attr('title') ? $(this).attr('title') : ($('.tooltip',this).html() ? $('.tooltip',this).html() : false)
		if(message)
		{
			$(this).qtip({
				content: message,
				position: {
					corner: {
						tooltip: 'leftMiddle',
						target: 'rightMiddle'
					},
					adjust: { screen: true }
				},
				style: {
					border: {
						radius: 3
					},
					padding: 10, 
					textAlign: 'left',
					tip: true,
					name: 'dark'
				 }
            });
			$(this).removeAttr('title');
		}
	});

	$('.faqItem').live('click', function() {
		loadPipe('#fadeContent', $(this).attr('href'), 'content', function() {
			$('#popupWrapper').removeClass('hide');
		});

		return false;
	});

	$('.tipItem').live('click', function() {
		loadPipe('#fadeContent', $(this).attr('href'), 'content', function() {
			$('#popupWrapper').removeClass('hide');
		});

		return false;
	});

	$('.video-ad-btn').live('click', function() {
		$.fancybox.showActivity();
		loadPipe('#fadeContent', 'sms-marketing-features/advert', 'popupContent', function() {
			$.fancybox({
				'autoScale' : true,
				'centerOnScroll': true,
				'transitionIn' : 'elastic',
				'transitionOut' : 'elastic',
				'easingIn' : 'easeOutBack',
				'easingOut' : 'easeInBack',
				'title' : $('#fadeContent .title').html(),
				'content' : $('#fadeContent .content').html()
			});
		});
		return false;
	});
	$('a.fancybox').live('mouseover', function(){ 
		$(this).fancybox({
			'transitionIn'	: 'elastic',
			'transitionOut'	: 'elastic',
			'easingIn'      : 'easeOutBack',
			'easingOut'     : 'easeInBack'
		});
	});
	
	$('.login-btn').live('click', function() {
		$.fancybox.showActivity();
		if($('#loginPopUp,#loginBox').length == 0) {
			$('#header').after('<div id="loginPopUp"></div>');
			loadPipe('#loginPopUp', 'main/login', 'loginBox', function() {
				validateForms();
				$('.qtip').qtip('hide');	
				$.fancybox.hideActivity();
			});
		} else {
			$('#loginBox').toggle();
			$('.qtip').qtip('hide');
			$.fancybox.hideActivity();
		}
		return false;
	});
	
	$('.grid1 a img').hover(function () {
    	var box = $(this).parent().parent();
		box.animate({marginTop: "-=8px", marginBottom: "+=8px", easing: "easeOutCirc"}, 100);
 	}, function () {
    	var box = $(this).parent().parent();
		box.animate({marginTop: "+=8px", marginBottom: "-=8px", easing: "easeInOutCirc"}, 400);
	});
	
	$('#gridMenu .grid1 a').click(function () {
		var section = $(this).attr('href').replace(/\/$/, "");
		//window.location.hash=section;
		$('#wrapper div.pnk-bg, #wrapper div.grey-bg, #SelectedFeatureContent').slideUp();
		if($('#SelectedFeatureContent').length == 0)
			$('#header').after('<div id="SelectedFeatureContent" class="hide"></div>');
		$('html, body').animate({scrollTop: $('#header').height()});		
		loadPipe('#SelectedFeatureContent', section, 'preContent', function(){
			$('#SelectedFeatureContent').slideDown();
		});
		return false;
 	});

	$('.cancelPopup-btn').live('click', function() {
		$('#popupWrapper').addClass('hide');
		$('.qtip').qtip('hide');
		$('#fadeContent').html(null);
		return false;
	});

	$('[placeholder]').focus(function() {
		var input = $(this);
		if (input.val() == input.attr('placeholder')) {
			input.val('');
			input.removeClass('placeholder');
		}
	}).blur(function() {
		var input = $(this);
		if (input.val() == '' || input.val() == input.attr('placeholder')) {
			input.addClass('placeholder');
			input.val(input.attr('placeholder'));
		}
	}).blur();
	$('[placeholder]').parents('form').submit(function() {
		$(this).find('[placeholder]').each(function() {
			var input = $(this);
			if (input.val() == input.attr('placeholder')) {
				input.val('');
			}
		})
	});
	
	$('.focus-txt').live('focus', function() {
		if(!$('#errorMessages').html())
		{
			$(this).val('');
		}
		$(this).removeClass("focus-txt");
	});

	$('form').live('submit', function() {
		if($(this).find('input.invalid,textarea.invalid').length > 0)
		{
			validateForms();
			return false;
		}
	});
	
	if($('#autoReplyFromNum').attr('checked'))
	{
		$('#autoReplyFrom').attr('disabled','disabled');
	}
	$('#autoReplyFromNum').click(function() {
		if($(this).attr('checked'))
		{
			$('#autoReplyFrom').val($('select#number :selected').text()).removeClass('valid').removeClass('invalid').attr('disabled','disabled');
			$('.qtip').qtip('hide');
		}
		else
		{
			$('#autoReplyFrom').removeAttr('disabled');
		}
	});

	if($('#sendFromNum').attr('checked'))
	{
		$('#from').attr('disabled','disabled');
	}
	$('#sendFromNum').click(function() {
		if($(this).attr('checked'))
		{
			loadPipe('#fromTxt', 'send', 'fromNum', function(){
				$('#from').val($('#fromTxt').html()).removeClass('valid').removeClass('invalid').attr('disabled','disabled');
			});
			$('.qtip').qtip('hide');
		}
		else
		{
			$('#from').removeAttr('disabled');
		}
	});

	$('#message').bind('focus keyup keydown', messageChars);
	messageChars();
	
	$('#sendGroup,#sendIndividual,#sendTo br').hide();
	$('#form-sendMessage label[for=sendIndividual]').html('or '+$('#form-sendMessage label[for=sendIndividual]').html()).css('cursor','pointer');
	$('#form-sendMessage label[for=sendGroup]').appendTo('#sendTo').html('or '+$('#form-sendMessage label[for=sendGroup]').html()).css('cursor','pointer');
	if($('#sendGroup').attr('checked'))
	{
		$('#form-sendMessage input[name=mobileNo]').hide();
		$('#form-sendMessage label[for=sendGroup]').hide();		
	}
	else
	{
		$('#form-sendMessage select[name=groupID]').hide();
		$('#form-sendMessage label[for=sendIndividual]').hide();
	}
	$('#form-sendMessage label[for=sendIndividual]').click(function() {
		$('#form-sendMessage input[name=mobileNo]').show();
		$('#form-sendMessage select[name=groupID]').toggle();
		$('#form-sendMessage label[for=sendIndividual]').toggle();
		$('#form-sendMessage label[for=sendGroup]').show();
		$('#form-sendMessage input[name=mobileNo]').removeClass('valid').removeClass('invalid');
		$('.qtip').qtip('hide');
		$('#sendGroup').removeAttr('checked');
		$('#sendIndividual').attr('checked','checked');
	});
	$('#form-sendMessage label[for=sendGroup]').click(function() {
		$('#form-sendMessage input[name=mobileNo]').toggle();
		$('#form-sendMessage select[name=groupID]').show();
		$('#form-sendMessage label[for=sendGroup]').toggle();
		$('#form-sendMessage label[for=sendIndividual]').show();
		$('#form-sendMessage input[name=mobileNo]').removeClass('valid').removeClass('invalid');
		$('.qtip').qtip('hide');
		$('#sendIndividual').removeAttr('checked');
		$('#sendGroup').attr('checked','checked');
	});
	$('#form-sendMessage select#groupID').change(function(){
		loadPipe('#form-sendMessage #fromTxt', 'send', 'fromTxt&groupID='+$(this).val(), function(){
			$('#form-sendMessage #from').val($('#form-sendMessage #fromTxt').html());
			$('#from').removeAttr('disabled');
			$('#sendFromNum').attr('checked', false);
		});
	});
	
	$("input[name^=selectAll]").click(function() {
		var id = $(this).attr('name').replace(/selectAll/gi, '');
		if($(this).attr('checked'))
		{
			$('input.multiSelect'+id).attr('checked', 'checked');
		}
		else
		{
			$('input.multiSelect'+id).removeAttr('checked');
		}
	});
	$("input[class^=multiSelect]").click(function() {
		$("input[name^=selectAll"+this.className.split(' ')[0].replace(/multiSelect/gi, '')+"]").removeAttr('checked');
	});

	$('.tpnk-btn').click(function() {
		if($(this).hasClass('tpnk-btn-pressed'))
		{
			$(this).removeClass('tpnk-btn-pressed');
		}
		else
		{
			$(this).addClass('tpnk-btn-pressed');			
		}
		$(this).nextALL('div.tags:first').toggle();
	});

	$('input.tagVal-btn').live('click', function() {
		$('#message').insertAtCaret($(this).attr('alt'));
		messageChars();
	});
	
	$('#schedule-btn').click(function() {
		if($('#form-sendMessage input[name=send]').val()=='Schedule send')
		{
			$('#form-sendMessage input[name=send]').val('Send now');
			$(this).val('or Schedule for later');
			$('#scheduleFor').slideUp();
			$('#sendDelayDate').val(null);
			$('#sendDelayTime').val(null);
		}
		else
		{
			var time,day,month,hour,minute;
			time = new Date();
			day = time.getDate();
			month = time.getMonth()+1;
			hour = time.getHours();
			minute = time.getMinutes();
			$('#scheduleFor').slideDown();
			$('#sendDelayDate').removeClass('focus-txt').val((day<10?'0'+day:day)+'-'+(month<10?'0'+month:month)+'-'+time.getFullYear());
			$('#sendDelayTime').removeClass('focus-txt').val((hour<10?'0'+hour:hour)+':'+(minute<10?'0'+minute:minute));
			$('#form-sendMessage input[name=send]').val('Schedule send');
			$(this).val('or Cancel scheduling');
		}
		return false;
	});
	
	
	$("table#messageList").tablesorter({
		widgets: ['zebra'],
		headers: {3:{sorter: false}}
	}); 
	$("table#contactList").tablesorter({
		widgets: ['zebra'],
		headers: {0:{sorter: false},4:{sorter: false}}
	}); 
	
	validateForms();
	
});

function messageChars()
{
	if($('#message').length == 1)
	{
		var s, charRemain, charCount, maxTxts=4;
		s = $('#msgStats').find('strong');
		charCount = $('#message').val().length;
		charRemain = (maxTxts>1?153*maxTxts:160)-charCount;
		s.eq(0).html(charRemain < 0 ? 0 : charRemain);
		s.eq(1).html(1+Math.floor((charCount-1)/(charCount>160?153:160)));
		
		if(charRemain < 0)
		{
			$('#charLimitExceeded').remove();
			$('#msgStats').append(' <span id="charLimitExceeded" class="pink-txt">Exceeded limit by <strong class="exChars">'+Math.abs(charRemain)+'</strong> characters</span>');
		}
		else
		{
			$('#charLimitExceeded').remove();		
		}
	}
}

function loadPipe(field, section, q, callback)
{
	$(field).load(section+'/?mode=content&pipe='+q, function(){
		if(typeof callback == "function")
		{
			callback();
		}
	});
}

function popup(section, pipe)
{
	loadPipe('#fadeContent', section, pipe, function() {
		$('#popupWrapper').removeClass('hide');
		validateForms();
		$('.qtip').qtip('hide');
	});
}

function validateForms()
{
	$("form[id^=form-]").each(function() {
		$(this).validate({
			invalid: function(field, errorMsg){
				field.removeClass("valid").removeClass("invalid").addClass("invalid");
				if(field.data("qtip")){
					field.qtip('api').updateContent(errorMsg);
				}
				else
				{
					field.qtip({
						content: errorMsg,
						position: {
							adjust: { screen: true }
						},
						show: { 
							ready: true,
							solo: true,
							when: { event: 'click' }
						},
						hide: { when: { event: 'click' } },
						style: {
							border: {
								radius: 3
							},
							padding: 10,
							background: '#FFFFFF',
							textAlign: 'center',
							tip: true, 
							name: 'red'
						}
					});
				}
				field.qtip('enable');
			},
			valid: function(field){
				field.removeClass("invalid").removeClass("valid").addClass("valid");
				if(field.data("qtip"))
				{
					field.qtip("hide").qtip("disable");
				}
			}
		});
	});
}

$.fn.insertAtCaret = function (myValue) {
	return this.each(function(){
			//IE support
			if (document.selection) {
					this.focus();
					sel = document.selection.createRange();
					sel.text = myValue;
					this.focus();
			}
			//MOZILLA / NETSCAPE support
			else if (this.selectionStart || this.selectionStart == '0') {
					var startPos = this.selectionStart;
					var endPos = this.selectionEnd;
					var scrollTop = this.scrollTop;
					this.value = this.value.substring(0, startPos)+ myValue+ this.value.substring(endPos,this.value.length);
					this.focus();
					this.selectionStart = startPos + myValue.length;
					this.selectionEnd = startPos + myValue.length;
					this.scrollTop = scrollTop;
			} else {
					this.value += myValue;
					this.focus();
			}
	});
};
