var TimerDelay = null;
var showPopupDelay = null;
var hidePopupDelay = null;
var showImageDelay = null;
var hideImageDelay = null;

var delay = 200;

/*
function slideSwitch() {
  var $active = $('#slShow div.active');

  if ( $active.length == 0 ) $active = $('#slShow div:last');

  var $next =  $active.next().length ? $active.next()
      : $('#slShow div:first');
  $active.addClass('last-active');

  $next.css({opacity: 0.0})
      .addClass('active')
      .animate({opacity: 1.0}, 1000, function() {
          $active.removeClass('active last-active');
      });
}
*/

$(document).ready(function(){
    /*
    $('#slideshow').cycle({
        fx:     'fade',
        speed:  'slow',
        timeout: 5000,
        pager:  '#slider_nav',
        pagerAnchorBuilder: function(idx, slide) {
            // return sel string for existing anchor
            return '#slider_nav li:eq(' + (idx) + ') a';
        }
    });
    
   if (thisPage == "home_page") {
		setInterval( "slideSwitch()", 5000 );
	}
	*/
    var spin = $("<div class='spin'></div>").hide().appendTo("body");
    
    function isIE() {
		return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
	}
	
	function otherPopupsToBack(z_index) {
		$(".verse_popup").css({zIndex:z_index});
		$(".note_popup").css({zIndex:z_index});
		$(".strong_popup").css({zIndex:z_index});
		$(".xfull_popup").css({zIndex:z_index});
	}

    function isElementsDisplayed(element, except_id) {
    	var a=0;
    	if (except_id) {
	    	element.each(function(){
	    		if ($(this).css("display") == "block" && ($(this).attr("id") != except_id)) {
	    			a+=1;
	    		}
	    	});
	    }
	    else {
	    	element.each(function(){
	    		if ($(this).css("display") == "block") {
	    			a+=1;
	    		}
	    	});
	    }

		if (a==0) {
			return false;
		} else {
			return true;
		}
    }
    
    $(document).mouseover(function(event) {
    		
    	  var descmodTrigger = findParent($(event.target), "a.descmod_trigger");
        if (descmodTrigger.length) {
        		var id = descmodTrigger.attr("id").substr(5);
            var descmodPopupWrap = $("div#dp" + id);

            if (descmodPopupWrap.attr("_timer")) {
                clearTimeout(descmodPopupWrap.attr("_timer"));
                descmodPopupWrap.attr("_timer", "");
            }

            showPopupDelay = setTimeout(function() {
                showPopupDelay = null;

                var descmodPopupTitle;
                var descmodPopupWrapIn;
                var descmodPopup;

                function descmodResizing() {
                    if (descmodPopupWrapIn.height() > descmodPopup.outerHeight({margin: true})) {
                        descmodPopupWrapIn.css({height: descmodPopup.outerHeight({margin: true}) + 1});
                        descmodPopupWrap.css({height: descmodPopup.outerHeight({margin: true}) + descmodPopupTitle.height()});
                    }
                }

              function descmodPositioning() {
					if (isIE()) {
						xf = 15;
                    } else {
                        xf = 0;
                    }
                    
                    if (($(window).height()-event.clientY) < descmodPopupWrap.height()) {
                        descmodPopupWrap.css({position:"absolute", top: event.pageY-event.clientY+$(window).height()-descmodPopupWrap.height()-5-xf});
                    } else {
                        descmodPopupWrap.css({position:"absolute", top: event.pageY+5-xf});
                    }
                    if (($(window).width()-event.clientX) < descmodPopupWrap.width()) {
                        descmodPopupWrap.css({position:"absolute", left: event.pageX-event.clientX+$(window).width()-descmodPopupWrap.width()-5-xf});
                    } else {
                        descmodPopupWrap.css({position:"absolute", left: event.pageX+5-xf});
                    }
                    //alert(descmodPopupWrap.css("top"));
                }

                var descmodPopupWrap = $("div#dp" + id);

                if (descmodPopupWrap.css("display") == "block")
                    return;
                if (!descmodPopupWrap.length) {
                    var lHeight = 1.5;
                    fSize = 11;
                    descmodPopupTitle = $("<div class=\"descmod_popup_title\"></div>");
                    var descmodButtonSticky = $("<div class=\"descmod_button_sticky\" title=\"sticky\"></div>").addClass("descmod_button_sticky_off");
                    var descmodButtonClose = $("<div class=\"descmod_button_close\" title=\"close\"></div>");
                    var descmodBig = $("<div class=\"descmod_button_big\"></div>");
							var descmodSmall = $("<div class=\"descmod_button_small\"></div>");
							descmodPopup = $("<div class=\"descmod_content\"></div>");
                    descmodPopupWrapIn = $("<div class=\"descmod_popup_in\"></div>").css({fontSize: fSize, lineHeight: lHeight}).append(descmodPopup);
                    
                    descmodPopupWrap = $("<div class=\"descmod_popup\" id=\"dp" + id + "\" \"></div>").append(descmodPopupTitle).append(descmodPopupWrapIn).append(descmodButtonSticky).append(descmodButtonClose).append(descmodBig).append(descmodSmall).draggable({handle:'div.descmod_popup_title', cursor: 'move'}).resizable({autohide: true, knobHandles: true}).resize(function() {
                        descmodPopupWrapIn.css({height: descmodPopupWrap.height() - descmodPopupTitle.height(), width: descmodPopupWrap.width()});
                        descmodPopupTitle.css({width: descmodPopupWrap.width()});
                    });
                    $("body").append(descmodPopupWrap.css({visibility: 'hidden'}));
                    descmodPopupTitle.css({width: descmodPopupWrap.width()});
                    var descmodId = id;
                  
                    spin.css({top: event.pageY - 16, left: event.pageX}).show();
                    $.getJSON("ajax/description.php", {id: descmodId}, function(data) {
                        spin.hide();
                        var descmods = "<p>" + data['description'] + "</p>";
                        
                     	descmodPopup.html(descmods);
                        descmodPopupTitle.attr("title", descmodId).html("<b>" + descmodId + "</b>");
                        descmodResizing();
                        descmodPositioning();
                        otherPopupsToBack(90);
                        descmodPopupWrap.css({visibility: 'visible', zIndex: 95}).fadeIn("slow");
                    });
                }
                else {
                    descmodPositioning();
                    otherPopupsToBack(90);
                    descmodPopupWrap.css({zIndex: 95}).fadeIn("slow");
                }
            }, delay);
        }

        var descmodPopupWrap = findParent($(event.target), "div.descmod_popup");
        if (descmodPopupWrap.length) {
        descmodPopupWrap.addClass("descmod_on");
           if (descmodPopupWrap.attr("_timer")) {
               clearTimeout(descmodPopupWrap.attr("_timer"));
               descmodPopupWrap.attr("_timer", "");
           }
        }
	}).mouseout(function(event) {
		var descmodTrigger = findParent($(event.target), "a.descmod_trigger");
        if (descmodTrigger.length) {
            if (showPopupDelay) {
                clearTimeout(showPopupDelay);
                showPopupDelay = null;
            }
            var id = descmodTrigger.attr("id").substr(5);
            var descmodPopupWrap1 = $("div#dp" + id);
            if (descmodPopupWrap1.length && !descmodPopupWrap1.is(".descmod_sticky")) {
	            var hidePopupDelay = setTimeout(function() {
	                descmodPopupWrap1.attr("_timer", "");
	                descmodPopupWrap1.fadeOut("slow");
	            }, delay);
	            descmodPopupWrap1.attr("_timer", hidePopupDelay);
	         }
	       }
        
		var descmodPopupWrap = findParent($(event.target), "div.descmod_popup");
        var descmodPopupWrap_id = descmodPopupWrap.attr("id");
        var descmodPopupClass = $("." + descmodPopupWrap_id + "");
        if (descmodPopupWrap.length)
        descmodPopupWrap.removeClass("descmod_on");
        if (descmodPopupWrap.length && !descmodPopupWrap.is(".descmod_sticky") && (!isElementsDisplayed(descmodPopupClass))) {
            var hidePopupDelay = setTimeout(function() {
                descmodPopupWrap.attr("_timer", "");
                var id = descmodPopupWrap.attr("id").substr(2);
                descmodPopupWrap.fadeOut("slow");
            }, delay);
            descmodPopupWrap.attr("_timer", hidePopupDelay);
        }
	}).click(function(event) {
		var descmodPopupWrap = findParent($(event.target), "div.descmod_popup");
		
		if (descmodPopupWrap.length) {
         $("div.descmod_popup").css({zIndex: 90});
         descmodPopupWrap.css({zIndex: 95});
     	}
     	
     	 if ($(event.target).is("div.descmod_button_close")) {
            $(event.target).parent().removeClass("descmod_sticky").fadeOut("fast");
            $(event.target).siblings("div.descmod_button_sticky").removeClass("descmod_button_sticky_on").addClass("descmod_button_sticky_off");
        }
     	
     	if ($(event.target).is("div.descmod_button_sticky")) {
         if ($(event.target).parent().is(".descmod_sticky")) {
             $(event.target).parent().removeClass("descmod_sticky");
             $(event.target).removeClass("descmod_button_sticky_on").addClass("descmod_button_sticky_off");
         } else {
            $(event.target).parent().addClass("descmod_sticky");
 	        $(event.target).removeClass("descmod_button_sticky_off").addClass("descmod_button_sticky_on");
     		}
     	}
	});
	
	function findParent(element, parent) {
        if (!element.is(parent)) {
            element = element.parents(parent);
        }
        return element;
    }
});
