$(function() {
	/////////////////////
	// HORIZONTAL TABS
	/////////////////////
	$('#horizontal_links td.dl_inactive').live('click', function() {
		//act as a link and not a ajax tab
		if($(this).hasClass('dl_btn')) {
			return true;	
		}
		
		$('#horizontal_links td.dl_active').removeClass('dl_active').addClass('dl_inactive');
		$(this).addClass('dl_active').removeClass('dl_inactive');
		
		$('.dl_sub div').hide();

		tdClicked = $(this).attr('id');
			$('.dash_entry').slideUp('slow');
			$('#'+tdClicked+'_content').slideDown('slow');
			$('#'+tdClicked+'_sublinks').show();
		return false;
	});
	
	/////////////////////
	// FORM ELEMENTS
	/////////////////////
	//$('input[type="checkbox"]').niceCheckbox();
	
	//FF or Chrome
	if($('.menu').length >= 1) {
		if($.browser.mozilla || $.browser.chrome || $.browser.safari) {
			$(".wysiwyg").wysiwyg({
					css : { fontFamily: 'Verdana, Arial, Tahoma', fontSize : '12px'},
					rmUnusedControls: true,
					autoGrow : true,
					resizeOptions : true,
					controls: {
						bold: { visible : true },
						italic: { visible : true },
						underline     : { visible : true },
						strikeThrough : { visible : true },
						insertOrderedList: { visible : true }
					}
				});
		}
		//IE > 8
		if($.browser.msie && parseFloat($.browser.version.slice(0,1)) >= 8 ) {
			$(".wysiwyg").wysiwyg({
					rmUnusedControls: true,
					autoGrow : true,
					resizeOptions : true,
					controls: {
						bold: { visible : true },
						italic: { visible : true },
						underline     : { visible : true },
						strikeThrough : { visible : true }				}
				});
		}
	}
	
	
	$('.phoneMask').mask("(999) 999-9999",{placeholder:" "});
	$("form").keypress(function(e) {
		if (e.which == 13) {
			var $targ = $(e.target);
	
			//Search Bar and Send Me Updates
			if(	e.target.id === 'searchBar' || 
				e.target.id === 'searchBarDocuments' || 
				e.target.id === 'sendMeUpdatesInput' || 
				e.target.id === 'loginForm') {
				return true;	
			}
			
			if (!$targ.is("textarea") && !$targ.is(":button,:submit")) {
				var focusNext = false;
				$(this).find(":input:visible:not([disabled],[readonly]), a").each(function(){
					if (this === e.target) {
						focusNext = true;
					}
					else if (focusNext){
						$(this).focus();
						return false;
					}
				});
	
				return false;
			}
			
			
		}
	});
	
	//DATE PICKER
	var dates = $('#startDate, #endDate').datepicker({
		//minDate: 0,
		changeMonth: true,
		onSelect: function( selectedDate ) {
			var option = this.id == "startDate" ? "minDate" : "maxDate",
				instance = $( this ).data( "datepicker" );
				date = $.datepicker.parseDate(
					instance.settings.dateFormat ||
					$.datepicker._defaults.dateFormat,
					selectedDate, instance.settings );
			dates.not( this ).datepicker( "option", option, date );
			$('#repeatStartDate').text($('#startDate').val());
		}
	});
	
	//TIME PICKER
	// Use default settings
	if( jQuery.isFunction(jQuery.fn.timePicker) ) {
		$("#startTime, #endTime").timePicker({
		  show24Hours: false,
		  step: 15
		});
		
		// Store time used by duration.
		var oldTime = $.timePicker("#startTime").getTime();
		
		// Keep the duration between the two inputs.
		$("#startTime").change(function() {
		  if ($("#endTime").val()) { // Only update when second input has a value.
			// Calculate duration.
			var duration = ($.timePicker("#endTime").getTime() - oldTime);
			var time = $.timePicker("#startTime").getTime();
			// Calculate and update the time in the second input.
			$.timePicker("#endTime").setTime(new Date(new Date(time.getTime() + duration)));
			oldTime = time;
		  }
		});
		// Validate.
		$("#endTime").change(function() {
		  if($.timePicker("#startTime").getTime() > $.timePicker(this).getTime()) {
			$(this).addClass("timeError");
		  }
		  else {
			$(this).removeClass("timeError");
		  }
		});
	}
		
	/*IN-FIELD TEXT*/
	function buildInFieldOverlay(obj) {
		titleText = obj.attr('title');
		if(titleText != '') {
			hideClass = '';
			if(obj.val() != '') {
				hideClass = ' hide';
			}
			
			obj.wrap('<div class="inFieldTextWrapper">')
				.after('<div class="inFieldText'+hideClass+'">'+titleText+'</div>');
		}
	}
	$('input[type="text"]').each(function() {
		buildInFieldOverlay($(this));
	});
	$('.inFieldText').click(function() {
		$(this).fadeOut('slow');
		$(this).siblings('input[type="text"]').focus();
	});
	$('input[type="text"]').focus(function() {
		$(this).siblings('.inFieldText').fadeOut('slow');
	});
	$('input[type="text"]').focusout(function() {
		if($(this).val() == '') { 
			$(this).siblings('.inFieldText').fadeIn('slow'); 
		}
	});
	
	//Date Picker
	$('.datepicker').datepicker({
		  showOn: "both",
		  buttonImage: "/images/nav_calendar.gif",
		  buttonImageOnly: true
	  });
	
	///////////////////////
	// MENU CONTROLS
	///////////////////////
	$('.menuHeader').mouseover(function() {
		$(this).find('a').css('color','#6499BB');
	}).mouseout(function() {
		$(this).find('a').css('color','');
	});
	$('.menuHeader').click(function() {
		var obj = $(this);
		var objLinkURL = obj.find('a').attr('href');
		
		//show calendar
		if(obj.find('a').html() == 'calendar') {
			return false;	
		}
		
		if(objLinkURL != 'javascript:void(0);') {
			window.location = objLinkURL;	
			return true;
		}
		
		if(obj.next('.menuHeaderSub').is(':visible')) {
			$('.menuHeader').next('.menuHeaderSub').slideUp('slow');
		} else {
			$('.menuHeader').next('.menuHeaderSub').slideUp('slow');
			obj.next().slideDown('slow');
		}
		
		return false;
	});
	

	/////////////////////////////////
	// THINGS TO DO
	/////////////////////////////////
	/*Thing To Do DISAPPEAR*/
	function slideUpToDo(parentObj) {
		
		if(parentObj.next().next().next().hasClass('todosLogFooter') && parentObj.prev().hasClass('todoTagFilled')) {
			parentObj.addClass('todoRemoveItem');
			parentObj.next().addClass('todoRemoveItem');
			parentObj.next().next().addClass('todoRemoveItem');
			parentObj.next().next().next().addClass('todoRemoveItem');
			parentObj.next().next().next().nextUntil(':not(br)').addClass('todoRemoveItem');
			parentObj.prev().addClass('todoRemoveItem');
		} else if(parentObj.prev().hasClass('todoTagFilled')) {
			parentObj.addClass('todoRemoveItem');
			parentObj.next().addClass('todoRemoveItem');
			parentObj.next().next().addClass('todoRemoveItem');
		} else {
			parentObj.addClass('todoRemoveItem');
			parentObj.next().addClass('todoRemoveItem');
			parentObj.prev().addClass('todoRemoveItem');
		}

		$('.todoRemoveItem').slideUp('slow', function() {
			$('.todoRemoveItem').remove();
		});
		
	}
	/*TO-DO DELETE*/
  	$('.todoDelete').live('click', function() {
		var parentObj = $(this).parents('div.todosLog');
		var isRepeat = $(this).attr('tdrepeat');
		var tdid = $(this).attr('tdid');
		
		$('#alertWrapper').remove();
		$.post('/jquery/scripts/todo_deleteAlert.php',
				{ tdid:tdid, repeat:isRepeat },
				function(html) {
					$('body').append(html);
					
					leftPos = $(window).width() / 2;
					leftPos = leftPos - $('#alertBox').width() / 2;
					
					topPos = $(window).height() / 2;
					topPos = topPos + $(window).scrollTop() - $('#alertWrapper').height() / 2;
		
					$('#alertWrapper').css('position', 'absolute');
					$('#alertWrapper').css('top', topPos+'px');
					$('#alertWrapper').css('left', leftPos+'px');
					
					$('.deleteToDoCancel').live('click', function() { 
						todoAlertBtnClicked(null, null, null);
					});
					
					$('#deleteToDoRepeat').live('click', function() { 
						todoAlertBtnClicked(tdid, 'yes', parentObj);
					});
					
					$('#deleteToDoSingle').live('click',  function() {
						todoAlertBtnClicked(tdid, 'no', parentObj);
					});
				},
				'html'
		);
			
		return false;
	});
	function todoAlertBtnClicked(tdid, isRepeat, parentObj) {
		if(tdid != null) {
			$.post('/jquery/scripts/todo_delete.php',
					{ tdid:tdid, repeat:isRepeat },
					function(json) {
						if(json.error != '') {
							jAlert(json.error, 'Error');	
						} else {
							if(isRepeat == 'yes') {
								location.reload();
							} else {
								slideUpToDo(parentObj);	
							}
						}
					},
					'json'
			);
		}
		
		$('.deleteToDoCancel').die('click');	
		$('#deleteToDoRepeat').die('click');	
		$('#deleteToDoSingle').die('click');
		$('#alertWrapper').remove();
		
	}
  	/*END - TO-DO DELETE*/

	//Thing To Do COMPLETE
	$('.todoComplete').live('click', function() {
		var obj = $(this);
		parentObj = obj.parents('div.todosLogWrapper');
		tdid = obj.attr('tdid');
		action = obj.attr('action');
		obj.hide();
		
		if(action == 'complete') {
			//complete things to do
			$.post('/jquery/scripts/todo_complete.php',
					{ tdid:tdid, action:'complete' },
					function(json) {
						if(json.error != '') {
							jAlert(json.error, 'Error');
							$(this).show();	
						} else {
							slideUpToDo(parentObj);	
						}
					},
					'json'
			);
		} else {
			jConfirm('Is it okay to undo this completed item?', 'Undo Thing To Do', function(e) {
				if(e == true) {
					//undo complete things to do
					$.post('/jquery/scripts/todo_complete.php',
							{ tdid:tdid, action:'uncomplete' },
							function(json) {
								if(json.error != '') {
									jAlert(json.error, 'Error');
									$(this).show();	
								} else {
									slideUpToDo(parentObj);	
								}
							},
							'json'
					);	
				} else {
					obj.show();
				}
			});
			
		}

		
		return false;
	});
	
	/////////////////////////////////
	// QUICK LINKS HEADER DROP DOWN
	/////////////////////////////////
	$('#tbQuickLinks').click(function() {
	  $('#tbLogoutBox, #tbCalendarBox, #tbFacebookBox').hide();
	  $('#tbQuickLinksBox').slideToggle('slow');
	  return false;
	});
	$('#tbLogout').click(function() {
	  $('#tbQuickLinksBox, #tbCalendarBox, #tbFacebookBox').hide();
	  $('#tbLogoutBox').slideToggle('slow');
	  return false;
	});
	$('.tbCalendar').click(function() {
	  $('#tbQuickLinksBox, #tbLogoutBox, #tbFacebookBox').hide();
	  $('#tbCalendarBox').slideToggle('slow', function() {
		  $('#calendar').fullCalendar('render');
	  });
	  return false;
	});
	$('#tbFacebook').click(function() {
	  $('#tbQuickLinksBox, #tbLogoutBox, #tbCalendarBox').hide();
	  $('#tbFacebookBox').slideToggle('slow');
	  return false;
	});
  

	/////////////////////////////////
	// NOTE DELETE
	/////////////////////////////////
	$('.noteDelete').live('click', function() {
		obj = $(this);
		nid = obj.attr('nid');
		
		jConfirm('Is it okay to delete this Note?', 'Delete Note', function(delNote) {
			if(delNote) {
				$.post(
					'/jquery/scripts/note_delete.php',
					{nid: nid},
					function(json) {
						obj.parents('.notesLog').slideUp('slow');
					},
					'json'
					);
			}
		});
		
		return false;
	});	



	/////////////////////////////////
	// CONTACT DELETE
	/////////////////////////////////
	$('.contactDelete').live('click', function() {
		obj = $(this);
		cid = obj.attr('cid');
		
		jConfirm('Are you sure you want to delete this contact?', 'Delete Contact', function(delContact) {
			if(delContact) {
				$.post(
					'/jquery/scripts/contact_delete.php',
					{cid: cid},
					function(json) {
						location.reload();
					},
					'json'
					);
			}
		});
		
		return false;
	});	
	
	/////////////////////////////////
	// LISTING DELETE
	/////////////////////////////////
	$('.listingDelete').live('click', function() {
		obj = $(this);
		lid = obj.attr('lid');
		
		jConfirm('Are you sure you want to delete this lising?', 'Delete Listing', function(delContact) {
			if(delContact) {
				$.post(
					'/jquery/scripts/listing_delete.php',
					{lid: lid},
					function(json) {
						location.reload();
					},
					'json'
					);
			}
		});
		
		return false;
	});	
	
	/////////////////////////////////
	// BUYER DELETE
	/////////////////////////////////
	$('.buyerDelete').live('click', function() {
		obj = $(this);
		bid = obj.attr('bid');
		
		jConfirm('Are you sure you want to delete this buyer?', 'Delete Buyer', function(delContact) {
			if(delContact) {
				$.post(
					'/jquery/scripts/buyer_delete.php',
					{bid: bid},
					function(json) {
						location.reload();
					},
					'json'
					);
			}
		});
		
		return false;
	});	

	////////////////////////////////
	// ADVANCED FILTER
	////////////////////////////////
	$('.advancedFilterBtn').live('click', function() {
		obj = $(this);
		obj.parent().addClass('infoboxHeader_BigSubFilterActive').removeClass('infoboxHeader_BigSubFilter');
		obj.addClass('advancedFilterBtnActive').removeClass('advancedFilterBtn');
		$('.advancedFilterOptionsWrapper').show();
	})
	$('.advancedFilterBtnActive').live('click', function() {
		obj = $(this);
		obj.parent().addClass('infoboxHeader_BigSubFilter').removeClass('infoboxHeader_BigSubFilterActive');
		obj.addClass('advancedFilterBtn').removeClass('advancedFilterBtnActive');
		$('.advancedFilterOptionsWrapper').hide();
	})

	////////////////////////////////
	// WINDOW SCROLL AND RESIZE
	////////////////////////////////
	$(window).bind('scroll resize', function(){
		  //back to the top
		 if($('.menu').length >= 1) {
		  if($(window).scrollTop() >= 380) {
			  menuObj = $('.menu:last');
			  if(!isScrolledIntoView(menuObj)) {
				  $('#back-to-top').show();
				  
				  contentPanelPos = $('.menu:last').offset();
				  $('#back-to-top').css('left',(contentPanelPos.left + 50)+'px');
			  } else {
				  $('#back-to-top').hide();
			  }
		  } else {
			  $('#back-to-top').hide();
		  }
		 }
		  
		  //imported save as buttons
		  if($('#importSaveAsBtns').length >= 1) {
			  saveAsBtnsObj = $('#importSaveAsBtns');
			  if(!isScrolledIntoView(saveAsBtnsObj)) {
				  buildSaveAsBtnsFix();
				  
				  $('#importSaveAsBtnsFixed').show();
			  } else {
				  $('#importSaveAsBtnsFixed').hide();
			  }
		  }
		  //contact group buttons
		  if($('#contactGroupBtns').length >= 1) {
			  saveAsBtnsObj = $('#contactGroupBtns');
			  if(!isScrolledIntoView(saveAsBtnsObj)) {
				  buildContactGroupBtnsFix();
				  
				  $('#contactGroupBtnsFixed').show();
			  } else {
				  $('#contactGroupBtnsFixed').hide();
			  }
		  }
		  //floating buttons
		  if($('#floatingBtns').length >= 1) {
			  saveAsBtnsObj = $('#floatingBtns');
			  if(!isScrolledIntoView(saveAsBtnsObj)) {
				  floatingBtnsFix();
				  
				  $('#floatingBtnsFixed').show();
			  } else {
				  $('#floatingBtnsFixed').hide();
			  }
		  }
	});
	$('#back-to-top a').live('click', function() {
		$('html, body').animate({
			scrollTop: 0
		}, 1500);
		return false;
	});
	
	/////////////////////////////////
	// Site Overlay
	/////////////////////////////////
	$('body').append('<div id="siteOverlay">&nbsp;</div>');
	
	/*
	var mousePosTracking = setInterval(mousemov, 1000);
	var mouseCounter = 0;
	var mouseX = '0';
	var mouseY = '0';
	var mousePage = window.location.pathname+window.location.search;
	$('html, body').mousemove(function(e){
		mouseX = e.pageX;
		mouseY = e.pageY;
		//console.log(mouseX+'=='+mouseY);
	});
	function mousemov() {
		offset = $('#wrapper').offset();
		bodyWidth = $('#wrapper').width();
		xcord = mouseX - offset.left; //- gives you X position
		ycord = mouseY - offset.top; //- gives you Y position
		
		xcord = Math.round(xcord);
		ycord = Math.round(ycord);
		if(xcord >= 1 && xcord <= bodyWidth && ycord >= 1) {
		 	$.post(
				'/jquery/scripts/record-mousepos.php',
				{type:'move', xcord:xcord, ycord:ycord, mousePage:mousePage}
				);
				
			mouseCounter = mouseCounter + 1;
			if(mouseCounter >= 30) {
				clearInterval(mousePosTracking);	
			}
				
		}
	}
	$('#main').click(function(e){
	   	offset = $('#wrapper').offset();
		bodyWidth = $('#wrapper').width();
	   	xcord = e.pageX - offset.left; //- gives you X position
	   	ycord = e.pageY - offset.top; //- gives you Y position
	   
	   	xcord = Math.round(xcord);
		ycord = Math.round(ycord);
		if(xcord >= 1 && xcord <= bodyWidth && ycord >= 1) {
			$.post(
				'/jquery/scripts/record-mousepos.php',
				{type:'click', xcord:xcord, ycord:ycord, mousePage:mousePage}
				);
		}
			
		return true;
	});
	*/
	

}); // end function



////////////////////////////////
// Scroll View
////////////////////////////////
function isScrolledIntoView(elem) {
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();

    var elemTop = $(elem).offset().top;
    var elemBottom = elemTop + $(elem).height();

    return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom));
}
function floatingBtnsFix(elem) {
    if($('#floatingBtnsFixed').length <= 0) {
		$('body').append('<div id="floatingBtnsFixed">'+$('#floatingBtns').html()+'</div>');
	}
	contentPanelPos = $('#contentpanel').offset();
	$('#floatingBtnsFixed').css('left',contentPanelPos.left+'px');
}


jQuery.fn.centerHeight = function () {
    this.css("top", (($(window).height() - this.outerHeight()) / 2) + $(window).scrollTop() + "px");
    return this;
}
jQuery.fn.centerWidth = function () {
    this.css("left", (($(window).width() - this.outerWidth()) / 2) + $(window).scrollLeft() + "px");
    return this;
}
jQuery.fn.ucwords = function() {
  return this.each(function(){
    var val = $(this).text(), newVal = '';
    val = val.split(' ');

    for(var c=0; c < val.length; c++) {
      newVal += val[c].substring(0,1).toUpperCase() + val[c].substring(1,val[c].length) + (c+1==val.length ? '' : ' ');
    }
    $(this).text(newVal);
  });
}



