/*
 Jquery plug in for the Tooltip ..
*/
$(document).ready(JT_home_page);
$(document).ready(JT_event);
$(document).ready(JT_display_user);
$(document).ready(JT_event_widget);
$(document).ready(JT_my_event);
$(document).ready(JT_upcoming_event);

function JT_home_page(){
    $('.zdegree-community-calender-content > ul > li > > i').hover(function(){JT_bubble(this.id)},function(){$('#calc-pop').remove()});
}

function JT_event(){
    $('.month-calc-middle-bg >ul >li > i').hover(function(){JT_bubble(this.id)},function(){$('#calc-pop').remove()});
}

function JT_display_user(){
    $('.buddyimg > > a > img').hover(function(){JT_display_name(this.id)},function(){$('#calc-pop').remove()});
}

function JT_event_widget(){
    $('#event_widget >ul > li ').hover(function(){JT_display_event(this.id)},function(){JT_remove_event(this.id)});
}

function JT_my_event () {
    $('#myevents_side_module > ul > li > span > a  ').hover(function(){JT_display_my_event(this.id)},function(){JT_remove_event(this.id)});
}

function JT_upcoming_event () {
    $('#upevents_side_module > ul > li > span > a ').hover(function(){JT_display_upcoming_event(this.id)},function(){JT_remove_event(this.id)});
}

function JT_bubble(date) {
  // Here we find Out the ID for parent Div whether the information has to be display 
  var de = document.documentElement;
  var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  var hasArea = w - getAbsoluteLeft(date);
  if(event_class[date] == 'right') {
    var x_position_new = x_position + 90;
    var y_position_new = y_position - 3;
  } else  if(event_class[date] == 'left'){
    var x_position_new = x_position - 100;
    var y_position_new = y_position - 3;
  } else {
    var y_position_new = y_position - 5;
    var x_position_new = x_position - 30;
  }
  y_position_new += 1;
  if(navigator.appVersion.indexOf("Win")!=-1) {//For windows system the popup is coming in more height
    if(navigator.appName == 'Microsoft Internet Explorer') {
      y_position_new = y_position_new - 6;
    } else {
      y_position_new = y_position_new + 8;
    }
  } else {
    y_position_new = y_position_new + 3;
  }
  var clickElementy = getAbsoluteTop(date) - y_position_new; //set y position
  if(clickElementx) {
    $("body").append("<div id='calc-pop' style='width:300px;'><div class='calc-pop-top'><img src='images/spacer.gif' alt='Spacer' /></div><div class='calc-pop-middle'><div class='pop-heading'><a href='#'><b>"+event_title[date]+"</b></a></div><div class='pop-content'><div><span>"+event_date[date]+"</span><p><strong>Contact : </strong>"+event_contact[date]+"<br/><strong>Venue : </strong>"+event_venue[date]+"</p></div></div><em><center> Click on event name for more details.</center></em></div><div class='calc-pop-bottom'></div></div>");//right side
  } else {
    $("body").append("<div id='calc-pop' style='width:300px;'><div class='calc-pop-top'><img src='images/spacer.gif' alt='Spacer' /></div><div class='calc-pop-middle'><div class='pop-heading'><a href='#'><b>"+event_title[date]+"</b></a></div><div class='pop-content'><div><span>"+event_date[date]+"</span><p><strong>Contact : </strong>"+event_contact[date]+"<br/><strong>Venue : </strong>"+event_venue[date]+"</p></div></div><em><center> Click on event name for more details.</center></em></div><div class='calc-pop-bottom"+event_class[date]+"'></div></div>");//right side
    var arrowOffset = getElementWidth(date) - x_position_new;
    var clickElementx = getAbsoluteLeft(date) + arrowOffset; //set x position
  }
  $('#calc-pop').css({left: clickElementx+"px", top: clickElementy+"px"});
  $('#calc-pop').show();

}

function JT_display_name(image_id) {
  // Here we find Out the ID for parent Div whether the information has to be display 
  var de = document.documentElement;
  var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  var hasArea = w - getAbsoluteLeft(image_id);
  /*if(navigator.appVersion.indexOf("Win")!=-1) {//For windows system the popup is coming in more height
    if(navigator.appName == 'Microsoft Internet Explorer') {
      y_position_new = y_position - 12;
    } else {
      y_position_new = y_position - 6;
    }
  } else {
    y_position_new = y_position + 3;
  }*/
  y_position_new = y_position + 50;
  x_position_new = x_position -70;
  var clickElementy = getAbsoluteTop(image_id) - y_position_new; //set y position
  if(clickElementx) {
    $("body").append("<div id='calc-pop' class='user_name_popup' style='width:auto;height:auto;'>"+user_data[image_id]+"</div>");//right side
  } else {
    $("body").append("<div id='calc-pop' class='user_name_popup' style='width:auto;height:auto;'>"+user_data[image_id]+"<br/>"+user_slogan[image_id]+"</div>");//right side
    var arrowOffset = getElementWidth(image_id) - x_position_new;
    var clickElementx = getAbsoluteLeft(image_id) + arrowOffset; //set x position
  }
  $('#calc-pop').css({left: clickElementx+"px", top: clickElementy+"px"});
  $('#calc-pop').show();

}

function JT_display_event (image_id) {
  // Here we find Out the ID for parent Div whether the information has to be display 
  var de = document.documentElement;
  var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  var hasArea = w - getAbsoluteLeft(image_id);
  var de = document.documentElement;
  var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  var hasArea = w - getAbsoluteLeft(date);
  if(event_class[date] == 'right') {
    var x_position_new = x_position + 90;
    var y_position_new = y_position - 3;
  } else  if(event_class[date] == 'left'){
    var x_position_new = x_position - 100;
    var y_position_new = y_position - 3;
  } else {
    var y_position_new = y_position - 5;
    var x_position_new = x_position - 30;
  }
  if(navigator.appVersion.indexOf("Win")!=-1) {//For windows system the popup is coming in more height
    if(navigator.appName == 'Microsoft Internet Explorer') {
      y_position_new = y_position_new - 6;
    } else {
      y_position_new = y_position_new - 6;
    }
  } else {
    y_position_new = y_position_new + 3;
  }
  var clickElementy = getAbsoluteTop(date) - y_position_new; //set y position
  if(clickElementx) {
    var html_data = '<div style="background:red; width:auto; height:auto;">'+date_day[image_id]+'</div>';
    for (var i = 0; i < event_widget_title[image_id].length; i++ ) {
      html_data += '<div style="background:lime; width:auto; height:auto;">'+event_widget_title[image_id][i]+'</div>';
    }
    $("body").append("<div id='calc-pop' class='user_name_popup' style='width:auto;height:auto;'>"+html_data+"</div>");//right side
  } else {
    var html_data = '<div style="width:auto; height:auto;">'+date_day[image_id]+'</div>';
    for (var i = 0; i < event_widget_title[image_id].length; i++ ) {
      html_data += '<div style="width:auto; height:auto;">'+event_widget_title[image_id][i]+'</div>';
    }
    $("body").append("<div id='calc-pop' class='user_name_popup' style='width:auto;height:auto;'>"+html_data+"</div>");//right side
    var arrowOffset = getElementWidth(image_id);
    var clickElementx = getAbsoluteLeft(image_id) + arrowOffset; //set x position
  }
  $('#calc-pop').css({left: clickElementx+"px", top: clickElementy+"px"});
  $('#calc-pop').show();

}

function JT_remove_event(div_id) {
  $('#calc-pop').remove()
}

function JT_display_my_event(div_id) {
  if (div_id == 'month') {
    return;
  }
  // Here we find Out the ID for parent Div whether the information has to be display 
  var de = document.documentElement;
  var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  var hasArea = w - getAbsoluteLeft(div_id);
  if(navigator.appVersion.indexOf("Win")!=-1) {//For windows system the popup is coming in more height
    if(navigator.appName == 'Microsoft Internet Explorer') {
      x_side_position_new = x_side_position - 10;
//       y_side_position_new = y_side_position - 10;
    } else {
      x_side_position_new = x_side_position - 12;
//       y_side_position_new = y_side_position - 15;
    }
  } else {
    x_side_position_new = x_side_position;
//     y_side_position_new = y_side_position - 15;
  }
  var clickElementy = getAbsoluteTop(div_id)-x_side_position_new; //set y position
  if(clickElementx) {
    $("body").append("<div id='calc-pop'><div class='calc-pop-top'><img src='images/spacer.gif' alt='Spacer' /></div><div class='calc-pop-middle'><div class='pop-heading'><a href='#'><b>"+my_event_title[div_id]+"</b></a></div><div class='pop-content'><div><span>"+my_event_date[div_id]+"</span><p><strong>Contact : </strong>"+my_event_contact[div_id]+"<br/><strong>Venue : </strong>"+my_event_venue[div_id]+"</p></div></div><em><center> Click on event name for more details.</center></em></div><div class='"+pop_my_bottom_class+"'></div></div>");//right side
  } else {
    $("body").append("<div id='calc-pop'><div class='calc-pop-top'><img src='images/spacer.gif' alt='Spacer' /></div><div class='calc-pop-middle'><div class='pop-heading'><a href='#'><b>"+my_event_title[div_id]+"</b></a></div><div class='pop-content'><div><span>"+my_event_date[div_id]+"</span><p><strong>Contact : </strong>"+my_event_contact[div_id]+"<br/><strong>Venue : </strong>"+my_event_venue[div_id]+"</p></div></div><em><center> Click on event name for more details.</center></em></div><div class='"+pop_my_bottom_class+"'></div></div>");//right side
    var arrowOffset = getElementWidth(div_id) - y_side_position;
    var clickElementx = getAbsoluteLeft(div_id) + arrowOffset; //set x position
  }
  $('#calc-pop').css({left: clickElementx+"px", top: clickElementy+"px"});
  $('#calc-pop').show();

}

function JT_display_upcoming_event(div_id) {
  if (div_id == 'month') {
    return;
  }
  if(document.getElementById('calc-pop')) return;
  // Here we find Out the ID for parent Div whether the information has to be display 
  var de = document.documentElement;
  var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; 
  var hasArea = w - getAbsoluteLeft(div_id);
  if(navigator.appVersion.indexOf("Win")!=-1) {//For windows system the popup is coming in more height
    if(navigator.appName == 'Microsoft Internet Explorer') {
      x_side_position_new = x_upcoming_mod_position - 10;
//       y_side_position_new = y_side_position - 10;
    } else {
      x_side_position_new = x_upcoming_mod_position - 12;
//       y_side_position_new = y_side_position - 15;
    }
  } else {
    x_side_position_new = x_upcoming_mod_position;
//     y_side_position_new = y_side_position - 15;
  }
  var clickElementy = getAbsoluteTop(div_id)-x_side_position_new; //set y position
  if(clickElementx) {
    $("body").append("<div id='calc-pop'><div class='calc-pop-top'><img src='images/spacer.gif' alt='Spacer' /></div><div class='calc-pop-middle'><div class='pop-heading'><a href='#'><b>"+up_event_title[div_id]+"</b></a></div><div class='pop-content'><div><span>"+up_event_date[div_id]+"</span><p><strong>Contact : </strong>"+up_event_contact[div_id]+"<br/><strong>Venue : </strong>"+up_event_venue[div_id]+"</p></div></div><em><center> Click on event name for more details.</center></em></div><div class='"+pop_up_bottom_class+"'></div></div>");//right side
  } else {
    $("body").append("<div id='calc-pop'><div class='calc-pop-top'><img src='images/spacer.gif' alt='Spacer' /></div><div class='calc-pop-middle'><div class='pop-heading'><a href='#'><b>"+up_event_title[div_id]+"</b></a></div><div class='pop-content'><div><span>"+up_event_date[div_id]+"</span><p><strong>Contact : </strong>"+up_event_contact[div_id]+"<br/><strong>Venue : </strong>"+up_event_venue[div_id]+"</p></div></div><em><center> Click on event name for more details.</center></em></div><div class='"+pop_up_bottom_class+"'></div></div>");//right side
    var arrowOffset = getElementWidth(div_id) - y_upcoming_mod_position;
    var clickElementx = getAbsoluteLeft(div_id) + arrowOffset; //set x position
  }
  $('#calc-pop').css({left: clickElementx+"px", top: clickElementy+"px"});
  $('#calc-pop').show();

}

function getElementWidth(objectId) {
  x = document.getElementById(objectId);
  return x.offsetWidth;
}

function getAbsoluteLeft(objectId) {
  // Get an object left position from the upper left viewport corner
  o = document.getElementById(objectId)
  oLeft = o.offsetLeft            // Get left position from the parent object
  while(o.offsetParent!=null) {   // Parse the parent hierarchy up to the document element
    oParent = o.offsetParent    // Get parent object reference
    oLeft += oParent.offsetLeft // Add parent left position
    o = oParent
  }
  return oLeft
}

function getAbsoluteTop(objectId) {
  // Get an object top position from the upper left viewport corner
  o = document.getElementById(objectId)
  oTop = o.offsetTop            // Get top position from the parent object
  while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
    oParent = o.offsetParent  // Get parent object reference
    oTop += oParent.offsetTop // Add parent top position
    o = oParent
  }
  return oTop
}