/**
* Generic property javascript
*/    
$(document).ready(function() {   
    /* Initialize the date picker */
    if($('.date').length) {
        $('.date').datepicker({
            showAnim: 'slideDown',
            changeMonth: true,
            changeYear: true,
            showOtherMonths: true,
            selectOtherMonths: true,
            altFormat: 'yy-mm-dd',
            dateFormat: 'yy-mm-dd',
            minDate: new Date()
            //showOn: "both",
            //buttonImage: "/images/icons/date.png",
            //buttonText: "Please Choose",
            //buttonImageOnly: false        
        });
        
        var altFormat = $( ".date" ).datepicker( "option", "altFormat" );
        $('.date').datepicker('option', 'altFormat', 'yy-mm-dd');
        var dateFormat = $( ".date" ).datepicker( "option", "dateFormat" );
        $( ".date" ).datepicker( "option", "dateFormat", 'yy-mm-dd' );    
        
        /* Allow up to 3 date ranges on one screen */
        $('#date_start, #date_end').datepicker('option', {
            beforeShow: customRange
        });
                
        $('#date_start2, #date_end2').datepicker('option', {
            beforeShow: customRange2
        });
                
        $('#date_start3, #date_end3').datepicker('option', {
            beforeShow: customRange3
        });
        
        /* Allows UNLIMITED date pickers with the prefixes */
        $('[id^=date_start_], .[id^=date_end_]').datepicker('option', {
            beforeShow: myDateRange
        });        
        
    }
    
    function myDateRange(input) {
        var inputNum = input.id;
        inputNum = inputNum.replace('date_start_','');
        inputNum = inputNum.replace('date_end_','');
        
        if (input.id == 'date_end_'+inputNum) {
        return {
          minDate: jQuery('#date_start_'+inputNum).datepicker("getDate")
        };
        } else if (input.id == 'date_start_'+inputNum) {
        return {
          maxDate: jQuery('#date_end_'+inputNum).datepicker("getDate")
        };
        }
    }

    
    function customRange(input) {

      if (input.id == 'date_end') {
        return {
          minDate: jQuery('#date_start').datepicker("getDate")
        };
      } else if (input.id == 'date_start') {
        return {
          maxDate: jQuery('#date_end').datepicker("getDate")
        };
      }
    } 
    function customRange2(input) {
      if (input.id == 'date_end2') {
        return {
          minDate: jQuery('#date_start2').datepicker("getDate")
        };
      } else if (input.id == 'date_start2') {
        return {
          maxDate: jQuery('#date_end2').datepicker("getDate")
        };
      }
    }
    function customRange3(input) {
      if (input.id == 'date_end3') {
        return {
          minDate: jQuery('#date_start3').datepicker("getDate")
        };
      } else if (input.id == 'date_start3') {
        return {
          maxDate: jQuery('#date_end3').datepicker("getDate")
        };
      }
    }
    
    function customSelect(dateText, inst) {
        if($(this).attr('id') == "date_start") {
            var newDate = new Date(dateText);
            newDate.setDate(newDate.getDate()+2);
            $('#date_end').datepicker("setDate", newDate);
        }
    }
    
    /* Initialize the date picker so that it automatically selects the next date */
    if($('.date2').length) {
        $('.date2').datepicker({
            showAnim: 'slideDown',
            changeMonth: true,
            changeYear: true,
            showOtherMonths: true,
            selectOtherMonths: true,
            altFormat: 'yy-mm-dd',
            dateFormat: 'yy-mm-dd',
            showOn: "both",
            //buttonImage: "/images/icons/date.png",
            buttonText: "Please Choose",
            buttonImageOnly: false,
            onSelect: customSelect   
        });
        
        var altFormat = $( ".date2" ).datepicker( "option", "altFormat" );
        $('.date2').datepicker('option', 'altFormat', 'yy-mm-dd');
        var dateFormat = $( ".date2" ).datepicker( "option", "dateFormat" );
        $( ".date2" ).datepicker( "option", "dateFormat", 'yy-mm-dd' );    
        
        /* Allow up to 3 date ranges on one screen */
        $('#date_start, #date_end').datepicker('option', {
            beforeShow: customRange
        });
                
        $('#date_start2, #date_end2').datepicker('option', {
            beforeShow: customRange2
        });
                
        $('#date_start3, #date_end3').datepicker('option', {
            beforeShow: customRange3
        });
        
    }                   
});

function popWindow(url, title, w,h){
    var targetWin = window.open (url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=auto, resizable=1, copyhistory=no, width='+w+', height='+h);
} 

/**
* Simple tooltip/notes. I will rework this shortly, but it should do for now.
*/
$(document).ready(function() {
    var timeoutID = null;
    var mouseontip = false;
    
    var changeTooltipPosition = function(event) {
      var tooltipX = event.pageX - 8;
      var tooltipY = event.pageY + 8;
      $('span.input-note').css({top: tooltipY, left: tooltipX});
    };
 
    var showTooltip = function(event) {
      hidetip('instant');
      window.clearTimeout(timeoutID);
      
      if($(this).next().hasClass('note')){
          $(this).next().children('.note-text').show();
      }
      if($(this).hasClass('note-icon')) {
        $(this).next().show();
      }
      
        $('span.note-text').mouseenter(function(){
            mouseontip = true;
        }).mouseleave(function(){
            mouseontip = false;  
        });        
      //changeTooltipPosition(event);
    };
    
    function hidetip(mode) {
        mode = mode || 'delayed';
        
        if(mode == 'delayed') {          
           timeoutID = window.setTimeout(checkHide, 400); 
        } else {
           $('span.note-text').hide();
        }
    }
    
    function checkHide() {
        if(mouseontip) {
            $('span.note-text').bind({
               mouseleave: hideTooltip 
            });
        } else{
            $('span.note-text').hide();
        }
    }
 
    var hideTooltip = function() {
       hidetip();
    };
 
    $("input").bind({
       //mousemove : changeTooltipPosition,
//       mouseenter : showTooltip,
       //mouseleave: hideTooltip,
       focus: showTooltip,
       blur: hideTooltip
    }); 
    $("textarea").bind({
       //mousemove : changeTooltipPosition,
//       mouseenter : showTooltip,
       mouseleave: hideTooltip,
       focus: showTooltip,
       blur: hideTooltip
    }); 
    $(".note-icon").bind({
        click: showTooltip,
        mouseenter: showTooltip,
        mouseleave: hideTooltip
    });
});
