/* global vars */
var topicWindow;
var joinWindow;
var avail_width = screen.availWidth;
var avail_height = screen.availHeight;
var nonnum = /([^0-9])/;
var oTopNav1, oTopNav2, oTopNav3, oTopNav4;
var oMenu1, oMenu2, oMenu3, oMenu4;
var oEmail, oEmailBttn;
var oNotify, oNotifyBttn;
/* end globals */

var findPos = function (obj) {
  var curleft=0, curtop=0;
  if (obj.offsetParent) {
    do {
      curleft += obj.offsetLeft;
      curtop  += obj.offsetTop;
    } while (obj = obj.offsetParent);
    return [curleft,curtop];
  }
}

var menuControl = {
  t: null,
  oMenu: null,
  menuID: '',
  targetMenuID: '',
  positionMenu: function() {
    if (!menuControl.oMenu) {
//alert("IN POSITION MENU -- MENU OBJECT NOT FOUND");
      return;
    }
    var menu1_anchor = document.getElementById("menu1_anchor");
    var menu1_anchor_pos = findPos(menu1_anchor);
    var menuLeft = (menu1_anchor_pos[0] - 10) + 'px';
    
    menuControl.oMenu.style.position="absolute";
    switch (menuControl.menuID) {
      case "news1": menuControl.oMenu.style.top="75px"; break;
      case "news2": menuControl.oMenu.style.top="140px"; break;
      case "news3": menuControl.oMenu.style.top="196px"; break;
      case "news4": menuControl.oMenu.style.top="252px"; break;
      case "news5": menuControl.oMenu.style.top="305px"; break;
      case "menu1": 
        menuControl.oMenu.style.height="405px";
        menuControl.oMenu.style.left = menuLeft;
				menuControl.oMenu.style.top="156px";
	break;
      case "menu2":
        menuControl.oMenu.style.height="310px";
        menuControl.oMenu.style.left = menuLeft;
				menuControl.oMenu.style.top="156px";
	break;
      case "menu3":
        menuControl.oMenu.style.height="480px";
        menuControl.oMenu.style.left = menuLeft;
				menuControl.oMenu.style.top="156px";
	break;
      case "menu4":
        menuControl.oMenu.style.height="400px";
        menuControl.oMenu.style.left = menuLeft;
				menuControl.oMenu.style.top="156px";
	break;
    } // switch
    
    menuControl.oMenu.style.display="block";
  },
  contentDisplayControl: function() {
    var e = EventUtil.getEvent();
    menuControl.menuID = (e.currentTarget.id) ? e.currentTarget.id :  menuControl.targetMenuID; //e.relatedTarget.id.substr(0,5);
    menuControl.oMenu = document.getElementById(menuControl.menuID);
    switch (e.type) {
      case 'mouseover':
				menuControl.oMenu.style.display="block";//menuControl.positionMenu();
				break;
      case 'mouseout':
				//if (menuControl.t) {
			    //  clearTimeout(menuControl.t);
				//}
				menuControl.oMenu.style.display = "none";
				menuControl.oMenu = null;
				//e.target.style.display="none";
        break;
    }
  },
  targetContentDisplayControl: function() {
    var e = EventUtil.getEvent();
    menuControl.menuID = (e.target) ? e.target.id.substr(0,5) : "";
    menuControl.targetMenuID = menuControl.menuID;
    menuControl.oMenu = document.getElementById(menuControl.menuID);
    switch (e.type) {
      case 'mouseover':
				menuControl.t = setTimeout("menuControl.positionMenu()", 500);
				break;
      case 'mouseout':
				if (menuControl.t) {
          clearTimeout(menuControl.t);
				}
				menuControl.oMenu.style.display = "none";
				//menuControl.oMenu = null;
				//e.target.style.display="none";
        break;
    } // switch
  },
  handleEvent: function() {
    var oEvent = EventUtil.getEvent();
    var oTextbox = document.getElementById("txt1");
    oTextbox.value += "\n>" + oEvent.type;
    oTextbox.value += "\n    target is " + oEvent.target.tagName;
    if (oEvent.relatedTarget) {
      oTextbox.value += "\n    relatedTarget is " + oEvent.relatedTarget.tagName;
    }
  },
  showEmailForm: function() {
    var oForm = document.getElementById("email_response");
    if (oForm.style.display == "none") {
      oForm.style.display = "block";
    } else {
      oForm.style.display = "none";
    }
  },
  
  showNotifyForm: function() {
    var oForm = document.getElementById("notify_response");
    if (oForm.style.display == "none") {
      oForm.style.display = "block";
    } else {
      oForm.style.display = "none";
    }
  },
  emailValidate: function(formData, jqForm, options) {
    var form = jqForm[0]; 
    if (!form.sender_email.value) {     
    //if (0 == $('#sender_email').attr('value').length) {
      alert("Please enter the sender's email address.");
      return false;
    } else if (form.sender_email.value.indexOf("@") == -1) {
      alert ("Sender email address is not valid");
      return false;
    }
    if (!form.recipient_email.value) {     
    //if (0 == $('#recipient_email').attr('value').length) {
      alert("Please enter the recipient's email address.");
      return false;
    } else if (form.recipient_email.value.indexOf("@") == -1) {
      alert ("Recipient email address is not valid");
      return false;
    }
    /* treat email_comments as optional */
    //email_document_contents
    return true;
  },  
  notifyValidate: function(formData, jqForm, options) {
    var form = jqForm[0]; 
    if (!form.notify_email.value) {     
    //if (0 == $('#notify_email').attr('value').length) {
      alert("Please enter an email address for notification.");
      return false;
    } else if (form.notify_email.value.indexOf("@") == -1) {
      alert ("Email address is not valid");
      return false;
    } else {
      //alert("the target address is " + options.url);
      return true;
    }
  },
  emailShowResponse: function(responseText, statusText, xhr, $form) {
    document.getElementById("sender_email_label").style.visibility = 'hidden';
    document.getElementById("sender_email").style.display = 'none';
    document.getElementById("recipient_email_label").style.visibility = 'hidden';
    document.getElementById("recipient_email").style.display = 'none';
    document.getElementById("email_comments_label").style.visibility = 'hidden';
    document.getElementById("email_comments").style.display = 'none';
    document.getElementById("email_submit").style.visibility = 'hidden';
  },
  notifyShowResponse: function(responseText, statusText, xhr, $form) {
    document.getElementById("notify_email_label").style.visibility = 'hidden';
    document.getElementById("notify_email").style.display = 'none';
    document.getElementById("notify_submit").style.visibility = 'hidden';
  }
}; // end menuControl      

var EventUtil = {
  addEventHandler: function (oTarget, sEventType, fnHandler) {
    if (oTarget.addEventListener) {
      oTarget.addEventListener(sEventType, fnHandler, false);
    } else if (oTarget.attachEvent) {
      oTarget.attachEvent("on" + sEventType, fnHandler);
    } else {
      oTarget["on" + sEventType] = fnHandler;
    }
  },

  formatEvent: function (oEvent) {
    if (isIE && isWin) {
      oEvent.charCode = (oEvent.type == "keypress") ? oEvent.keyCode : 0;
      oEvent.eventPhase = 2;
      oEvent.isChar = (oEvent.charCode > 0);
      oEvent.pageX = oEvent.clientX + document.body.scrollLeft;
      oEvent.pageY = oEvent.clientY + document.body.scrollTop;
      oEvent.preventDefault = function () {
        this.returnValue = false;
      };

      if (oEvent.type == "mouseout") {
        oEvent.relatedTarget = oEvent.toElement;
      } else if (oEvent.type == "mouseover") {
        oEvent.relatedTarget = oEvent.fromElement;
      }

      oEvent.stopPropagation = function () {
        this.cancelBubble = true;
      };

      oEvent.target = oEvent.srcElement;
      oEvent.time = (new Date).getTime();
    }
    return oEvent;
  },
  
  getEvent: function() {
    if ('undefined' !== typeof window.event) {
      return this.formatEvent(window.event);
    } else {
      return EventUtil.getEvent.caller.arguments[0];
    }
  },
 
  removeEventHandler: function (oTarget, sEventType, fnHandler) {
    if (oTarget.removeEventListener) {
      oTarget.removeEventListener(sEventType, fnHandler, false);
    } else if (oTarget.detachEvent) {
      oTarget.detachEvent("on" + sEventType, fnHandler);
    } else { 
      oTarget["on" + sEventType] = null;
    }
  }
}; // end EventUtil

/* PDF WINDOW CONTROL FOR congressletter */
   var pdfWindow;
   var left = (screen.availWidth) ? screen.availWidth - 445 : 10;
   function showPDF(pdfLink) {
     if (pdfWindow && !pdfWindow.closed)
       pdfWindow.close();
     pdfWindow = window.open(pdfLink,'congress_letter','HEIGHT=660,WIDTH=520,MENUBAR=0,TITLEBAR=0,SCROLLBARS=1,STATUS=0,SCREENX='+left+',LEFT='+left+',SCREENY=90,TOP=90,RESIZABLE');
     if(!pdfWindow.opener)
       pdfWindow.opener = window;
   }

/* PRESS ROOM SIGN UP */
function joinlist() {
  if (joinWindow && !joinWindow.closed)
  joinWindow.close();
  joinWindow = window.open('http://www.cuna.org/press/join_frm.htm','join_window','HEIGHT=350,WIDTH=410,MENUBAR=0,TITLEBAR=0,SCROLLBARS=0,STATUS=0,SCREENY=90,TOP=90,RESIZABLE');
  if(!joinWindow.opener)
  joinWindow.opener = window;
}

function getCookieValue(name) {
  var cookieValue = null;
  var cookie;
  if (document.cookie && document.cookie != '') {
    var cookies = document.cookie.split(';');
    for (var i=0; i<cookies.length; i++) {
      cookie = jQuery.trim(cookies[i]);
      // Does this cookie string begin with the name we want?
      if (cookie.substring(0, name.length + 1) == (name + '=')) {
        cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
        break;
      }
    }
  }
  return cookieValue;
}

window.onload = function() {
  /* global */ oEmail = document.getElementById('email');
  /* global */ oEmailBttn = document.getElementById('email_button');  
  /* global */ oNotify = document.getElementById('notify');
  /* global */ oNotifyBttn = document.getElementById('notify_button');  

  var authUser = getCookieValue('auth_user');
  
  if (null !== oEmail && 'undefined' !== typeof oEmail) {
	  var email_options = { 
	    target: '#email_response_text',
	    beforeSubmit: menuControl.emailValidate,
	    success: menuControl.emailShowResponse,
	    url: '/scripts/email_page.php',
	    type: 'post'
	  };

	  $("#email").click(function () {
	    if ('noshow' == $("div#email_response").attr('class')) {
	      document.getElementById("sender_email_label").style.visibility = 'visible';    
	      $("#sender_email_label").show();
	      document.getElementById("recipient_email_label").style.visibility = 'visible';    
	      $("#recipient_email_label").show();
	      document.getElementById("email_comments_label").style.visibility = 'visible';    
	      $("#email_comments_label").show();
	      
	      $("#sender_email").show();
	      $("#recipient_email").show();
	      $("#email_comments").show();
	      
	      $("#email_response_text").html("");
	      document.getElementById("email_submit").style.visibility = 'visible';
	      /*
	      $("div#email_response").show("slow", function () {
	        $("div#email_response").toggleClass('showit', 'noshow');
	      });
	      */
	       $("div#email_response").show();
	    } else {
	      $("div#email_response").hide("slow", function () {
	        $("div#email_response").toggleClass('showit', 'noshow');
	      });
	    }
	  });
	  try {
	    if (document.getElementById('page_url')) {
	      document.getElementById('page_url').value = window.location.href.toString(); 
	    }
	  } catch(err) {
	    // do nothing
	  }
	  //moved up to 283 authUser = getCookieValue('auth_user');
	  if ('' !== authUser && document.getElementById('email_auth_user')) {
	    document.getElementById('email_auth_user').value = authUser;
	  }
	  $("#email_close").click(function () {
	    $("div#email_response").hide("slow", function () {
	      $("div#email_response").toggleClass('showit', 'noshow');
	    });
	  });

	  // bind email form
	  $('#email_response_form').ajaxForm(email_options); 

	  // hide email form
	  $('#email_response').className = 'noshow';
	} // if null

  if (null !== oNotify && 'undefined' !== typeof oNotify) {
	  var notify_options = { 
	    target: '#notify_response_text',
	    beforeSubmit: menuControl.notifyValidate,
	    success: menuControl.notifyShowResponse,
	    url: '/include/add_notification.php', /*'http://www.cuna.org/scripts/add_notification.php',*/
	    type: 'post'
	  };

	  $("#notify").click(function () {
	    if ('noshow' == $("div#notify_response").attr('class')) {
	      document.getElementById("notify_email_label").style.visibility = 'visible';    
	      $("#notify_email_label").show();
	      $("#notify_email").show();
	      $("#notify_response_text").html("");
	      document.getElementById("notify_submit").style.visibility = 'visible';
	      $("div#notify_response").show("slow", function () {
	        $("div#notify_response").toggleClass('showit', 'noshow');
	      });
	    } else {
	      $("div#notify_response").hide("slow", function () {
	        $("div#notify_response").toggleClass('showit', 'noshow');
	      });
	    }
	  });
	  if ('' !== authUser && document.getElementById('auth_user')) {
	    document.getElementById('auth_user').value = authUser;
	  }
	  $("#notify_close").click(function () {
	    $("div#notify_response").hide("slow", function () {
	      $("div#notify_response").toggleClass('showit', 'noshow');
	    });
	  });

	  // bind notify form
	  $('#notify_response_form').ajaxForm(notify_options); 
	  
	  // hide notify form
	  $('#notify_response_form').className = 'noshow';
	} // if null
};

