//editBlock
function initDefault(){
  $('a, area').filter(function() {
    return this.hostname && (this.hostname).split(":")[0]
    !== (location.hostname).split(":")[0]
    || $(this).attr('rel') == 'external';
  })
  .not(':has(img, div, mailto)')
  .addClass('external')
  .end()
  .click(function(e) {
    open(this.href);
    e.preventDefault();
  });
};


function initEdit(){
    $('.btn-edit').unbind();
    $('.btn-abort').parent().unbind();
    $('.btn-refresh').parent().unbind();

    //edit
    $('.btn-edit').bind('click', function(){
        var _hold = $(this).parents('.column:eq(0)');
        var _data = _hold.find('.data');
        var _edit = _hold.find('.edit-area');
        _hold.addClass('edit-data');
        _hold.find('.checkbox_list input').each(function(){
          $(this).attr('disabled', false);
        });
        return false;
    });

    //close
    $('.btn-abort').parent().bind('click', function(){
        var _hold = $(this).parents('.column:eq(0)');
        var _data = _hold.find('.data');
        var _edit = _hold.find('.edit-area');
        _hold.removeClass('edit-data');
        _hold.find('.checkbox_list input').each(function(){
          $(this).attr('disabled', true);
        });
        return false;
    });

    //save
    $('.btn-refresh').parent().bind('click', function(){
        
        var _hold = $(this).parents('.column:eq(0)');
        var _data = _hold.find('.data');
        var _edit = _hold.find('.edit-area');
        //alert($(this).parent().parent().parent().html());
        //alert($(this).closest("form").first().html());
        $(this).closest("form").submit();
        return false;
    });
}

//tooltips
function initTooltips(){
    var _allTT = [];
    $('a.btn-info, a.del-box-delete').each(function(){
        var _this = $(this);
        var _tt = _this.parent().find('div.popup-info-box, div.del-box');
        _allTT.push(_tt);
        var _close = _tt.find('.btn-close').parent();
        var _applyDel = _tt.find('.btn-apply').parent();
        _this.click(function(){
            for(var i=0; i<_allTT.length; i++) {
                    _allTT[i].hide();
            }
            _tt.show().parents('div.frame:eq(0)').css('zIndex',10);
            return false;
        });
        _close.parent().click(function(){
            _tt.hide().parents('div.frame:eq(0)').css('zIndex','');
            return false;
        });
        _applyDel.click(function(){
            if($(this).parents('tr:eq(0)').length){
                $(this).parents('tr:eq(0)').hide();
                
                // New Call the backend to delete the Whereabout
                var whereabout_id = $(this).parents('tr:eq(0)').find('#whereabout_id').attr('value');
                var action = $(this).parents('tr:eq(0)').find('#whereabout_action').attr('value');
                
                $.post(action, {id: whereabout_id, action: 'delete'} );
            }
            return false;
        })
    })
}

$.extend({
  confirmbox : function(holder, message, callbackFnk){
    var popup = $('#confirmbox').clone();
    popup.show().appendTo(holder.parent());
    popup.find('.popup-heading em').html(message['top']);
    popup.find('.popup-heading span').html(message['top2']);
    popup.find('.message p').html(message['message']);

    var tt = holder.parent().find('.popup-box');
    tt.show().closest('.frame').css('zIndex',10);

    var _close = popup.find('.btn-close').parent();
    var _applyDel = popup.find('.btn-apply').parent();
    _close.parent().click(function(){
      tt.hide().parents('div.frame:eq(0)').css('zIndex','');
      if(typeof callbackFnk == 'function'){
        callbackFnk.call(this, false);
      }
      return false;
    });
    _applyDel.click(function(){
     tt.hide().parents('div.frame:eq(0)').css('zIndex','');
      if(typeof callbackFnk == 'function'){
        callbackFnk.call(this, true);
        return false;
      }
    })

    return false;
  }
});

function initTooltipsFav(){
    var _allTT = [];
    $('a.btn-del-favorite').each(function(){
        var _this = $(this);
        var _tt = _this.parent().find('div.popup-info-box, div.del-box');
        _allTT.push(_tt);
        var _close = _tt.find('.btn-close').parent();
        var _applyDel = _tt.find('.btn-apply').parent();
        _this.click(function(){
            for(var i=0; i<_allTT.length; i++) {
                    _allTT[i].hide();
            }
            _tt.show().parents('div.frame:eq(0)').css('zIndex',10);
            return false;
        });
        _close.parent().click(function(){
            _tt.hide().parents('div.frame:eq(0)').css('zIndex','');
            return false;
        });
        _applyDel.click(function(){
            return false;
        })
    })
}

// slideBlock (advanced search)
function initSlideBlock(){
	// Slide effect
	var _parentSlide = 'div.slide-block';
	var _linkSlide = 'a.open-close';
	var _slideBlock = 'div.block';
	var _openClassS = 'active';
	var _textOpenS = 'Advanced Search';
	var _textCloseS = 'Close Advanced Search';
	var _durationSlide = 500;

	$(_parentSlide).each(function(){
		if (!$(this).is('.'+_openClassS)) {
			$(this).find(_slideBlock).css('display','none');
		}
	});
	$(_linkSlide,_parentSlide).click(function(){
		if ($(this).parents(_parentSlide).is('.'+_openClassS)) {
			$(this).parents(_parentSlide).removeClass(_openClassS);
			$(this).parents(_parentSlide).find(_slideBlock).slideUp(_durationSlide);
			$(this).text(_textOpenS);
		} else {
			$(this).parents(_parentSlide).addClass(_openClassS);
			$(this).parents(_parentSlide).find(_slideBlock).slideDown(_durationSlide);
			$(this).text(_textCloseS);
		}
		return false;
	});
}

//datapicker
function initDataPicker(){

if (typeof($().datepicker) == 'function') {
    
		var _dayNamesShort = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    var _monthNamesShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var _monthNumbers= {'Jan' : 1, 'Feb' : 2, 'Mar' : 3, 'Apr' : 4, 'May' : 5, 'Jun' : 6, 'Jul' : 7, 'Aug' : 8, 'Sep' : 9, 'Oct' : 10, 'Nov' : 11, 'Dec' : 12};
		var _dayNamesMin = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];

		$('input.date-popup:not(#period-from, #period-to)').datepicker({
			dateFormat: 'M d yy',
			showButtonPanel: true,
			dayNamesShort: _dayNamesShort,
			dayNamesMin: _dayNamesMin,
			isRTL: true
		});
		var _firstDTP = $('#period-from');
		var _secondDTP = $('#period-to');

		function initFirstDatepicker(_date){
			_firstDTP.datepicker( 'destroy' ).datepicker({
				dateFormat: 'M dd yy',

				dayNamesMin: _dayNamesMin,
				showButtonPanel: true,
				isRTL: true,
				//maxDate: _date,
				dayNamesShort: _dayNamesShort,
				onSelect: function(dateText, inst) {
					var _dateText = dateText.split(' ');
					var _month = _dateText[0];
          _month = _monthNumbers[_month]-1;
					var _day = _dateText[1];
					if (_day.length == 2 && parseInt(_day) == 0) _day = parseInt(_day.substr(1)) + 1;
         
					else _day = parseInt(_day) + 1;
					_date = new Date(parseInt(_dateText[2]), _month, _day);
					_secondDTP.datepicker( 'destroy' ).datepicker({
						dateFormat: 'M dd yy',
						dayNamesMin: _dayNamesMin,
						showButtonPanel: true,
						isRTL: true,
						//minDate: _date,
						dayNamesShort: _dayNamesShort,
						onSelect: function(dateText, inst) {
							var _dateText = dateText.split(' ');
							var _month = _dateText[0];
              _month = _monthNumbers[_month]-1;
							_day = _dateText[1];
							if (_day.length == 2 && parseInt(_day) == 0) _day = parseInt(_day.substr(1)) - 1;
							else _day = parseInt(_day) - 1;
							_date = new Date(parseInt(_dateText[2]), _month, _day);
							initFirstDatepicker(_date);

              if(_firstDTP.datepicker('getDate')){
                var tmptime = _firstDTP.datepicker('getDate');

                if(tmptime.getTime() > _date.getTime()){
                  _firstDTP.datepicker( 'setDate' , _date);
                }
              }
						}
					});

          if(_date && _secondDTP.datepicker('getDate')){
            var tmptime = _secondDTP.datepicker('getDate');
            if(tmptime.getTime() < _date.getTime()){
              _secondDTP.datepicker( 'setDate' , _date);
            }
          }
					if (_date && _secondDTP.val()=='')
						_secondDTP.datepicker( 'setDate' , _date);
					//console.log(_secondDTP.datepicker('getDate'));
					//_secondDTP.val(_secondDTP.datepicker( 'getDate' ));
				}

			});
			if (_date && _firstDTP.val()=='')
				_firstDTP.datepicker( 'setDate' , _date);
		}
		function initSecondDatepicker(_date){
			_secondDTP.datepicker( 'destroy' ).datepicker({
				dateFormat: 'M dd yy',
				dayNamesMin: _dayNamesMin,
				showButtonPanel: true,
				isRTL: true,
				//minDate: _date,
				dayNamesShort: _dayNamesShort,
				onSelect: function(dateText, inst) {
					var _dateText = dateText.split(' ');
					
					var _month = _dateText[0];
          _month = _monthNumbers[_month];
					var _day = _dateText[1];
					if (_day.length == 2 && parseInt(_day) == 0) _day = parseInt(_day.substr(1)) + 1;
					else _day = parseInt(_day) - 1;

					_date = new Date(parseInt(_dateText[2]), _month, _day);

					_firstDTP.datepicker( 'destroy' ).datepicker({
						dateFormat: 'M dd yy',
						dayNamesMin: _dayNamesMin,
						showButtonPanel: true,
						isRTL: true,
						//maxDate: _date,
						dayNamesShort: _dayNamesShort,
						onSelect: function(dateText, inst){
							var _dateText = dateText.split(' ');
              var _month = _dateText[0];
              _month = _monthNumbers[_month]-1;
              var _day = _dateText[1];
              if (_day.length == 2 && parseInt(_day) == 0) _day = parseInt(_day.substr(1)) + 1;
							else _day = parseInt(_day) + 1;
							_date = new Date(parseInt(_dateText[2]), _month, _day);
							initSecondDatepicker(_date);
              
						}
					});
					if (_date && _firstDTP.val()=='')
						_firstDTP.datepicker( 'setDate' , _date);

          if(_firstDTP.datepicker('getDate')){
            var tmptime = _firstDTP.datepicker('getDate');

            if(tmptime.getTime() > _date.getTime()){
              _firstDTP.datepicker( 'setDate' , _date);
            }
          }
				}
			})
			if (_date && _secondDTP.val()=='')
				_secondDTP.datepicker('setDate', _date);
		}

		initSecondDatepicker(false);
		initFirstDatepicker(false);
	}
}

// tabs function
function initTabs() {
	//$('.tabset').jqueryTabs();
}

//* jquery tabs *********************************************************************************
jQuery.fn.jqueryTabs = function(_options){
	// defaults options
	var _options = jQuery.extend({
		tabLink: false,
		onChange: null,
    forceClass: null
	},_options);

	return this.each(function(){
		var _list = $(this);
		var _tabLink = 'a.tab';
		if(_options.tabLink) _tabLink =_options.tabLink;
		var _links = _list.find(_tabLink);
		_links.each(function() {
			var _link = $(this);
			if(!_options.tabLink) var _href = _link.attr('href');
			else {
              if(_options.forceClass){
                var _href = '.'+_link.attr('title');
              } else {
                var _href = '#'+_link.attr('title');
              }
            }
			var _tab = $(_href);
			if(_link.hasClass('active')){
              _tab.show();
            }
			else _tab.hide();
			_link.click(function(){

				// tab switch
				_links.filter('.active').each(function(){
					if(!_options.tabLink) $($(this).removeClass('active').attr('href')).hide();
					else {
						var _rel = $(this).removeClass('active').attr('title');
                        if(_options.forceClass){
                          $('.'+_rel).hide();
                        } else {
                          $('#'+_rel).hide();
                        }
					}
				});
				_link.addClass('active');
				_tab.show();
				if (jQuery.isFunction(_options.onChange)) {
					_options.onChange.apply(_tab);
				}
				if(!_options.tabLink) return false;
			});
		});
	})
}

// page init
$(function(){
    
    if(typeof($().ajaxLB)=="function"){

        $('.open-popup').ajaxLB({
            initObj: '.profile-popup-link, .open-popup',
            closeLink: 'a.btn-close',
            fixed: true
        });

        $('a.open-register').ajaxLB({
            initObj: 'a.open-register',
            closeLink: 'a.btn-close',
            fixed: true
        });

        $('.profile-popup-link').ajaxLB({
            initObj: '.profile-popup-link',
            closeLink: 'a.close-popup'
        });
        $('.abo-renew').ajaxLB({
            initObj: 'abo-renew',
            ajaxURL: 'inc/paypal-popup.html',
            closeLink: 'close-popup'
        });
        
        jQuery('.response-popup').simpleLightbox({
          href: false,
          lightboxContentBlock: '.response-popup',
          onDOMreadyLoad: true,
          hideOnfadeClick: false,
          closeLink: 'a.clostbtn'
        });

        
/*
		$('body.show-del').ajaxLB({
			ajaxURL: 'inc/del-popup.html',
			onDOMreadyLoad: true,
			closeLink: '.close-popup'
		});

		$('body.show-feedback').ajaxLB({
			ajaxURL: 'inc/feedback-popup.html',
			onDOMreadyLoad: true,
			closeLink: 'a.btn-close'
		});


		$('body.show-response').ajaxLB({
			ajaxURL: 'inc/response-popup.html',
			onDOMreadyLoad: true,
			closeLink: 'a.button'
		});

		$('body.show-paypal').ajaxLB({
			ajaxURL: 'inc/paypal-popup.html',
			onDOMreadyLoad: true,
			closeLink: '.close-popup'
		});
*/
    }


	initSlideBlock();
	initTooltips();
	initEdit();

	//init table sorter
	if(typeof($().tablesorter)=='function'){
		$("table.sorttable2").tablesorter({
			sortList: [[0,1]],
			headers: {3: {sorter: false},
						4: {sorter: false},
						5: {sorter: false}
			}
		});
		$("table.result-table").tablesorter({
			sortList: [[0,1]],
			headers: {3: {sorter: false},
						4: {sorter: false},
						5: {sorter: false}
			}
		});
		$('.my-whereabouts, table.sorttable3').tablesorter({
			sortList: [[0,1]],
			headers: {4: {sorter: false},
						5: {sorter: false},
						6: {sorter: false}
			}
		});
	}
});

