//jQuery.noConflict();

function Init(){	
	jQuery("ul#primNavList").superfish({speed:1});
	FixImages();
	logInDisplayEvt();
	if(typeof correctPNG == 'function') {
		correctPNG();
	}
  
  //if we are in the subscriptions page run some specific initialization code
  if(document.getElementById("subscriptionForm")){
    initSubscriptions();
    return false;
  }
  
  // Show readable password field if required.
  if (document.getElementById('loginPassword')){
    if (document.getElementById('loginPassword').value == ''){
      document.getElementById('loginPasswordClearText').style.display = 'inline';
    }
  }

  printTest();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Log In Box Display
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function getElementStyle(elemID, IEStyleProp, CSSStyleProp){
	var elem = document.getElementById(elemID);
	if (elem.currentStyle) {
		return elem.currentStyle[IEStyleProp];
	} else if (window.getComputedStyle) {
		var compStyle = window.getComputedStyle(elem, "");
		return compStyle.getPropertyValue(CSSStyleProp);
	}
	return "";
}

function toggleLogIn(){
	var logInElem = document.getElementById("logInPopUp");
	var logInVis = getElementStyle("logInPopUp", "display", "display");
	if (logInVis == "none") {
		logInElem.style.display = "block";
	} else {
		logInElem.style.display = "none";
	}
	document.getElementById("logInLink").blur();
	return false;
}

function logInDisplayEvt(){
	var elem = document.getElementById("logInLink");
	if (elem) {
		elem.onclick = toggleLogIn;
	}
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FixImages
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function FixImages(){
	var classArray = Array('imageRight','imageLeft');

	for (var i = 0; i < classArray.length; i++){
		var divNodes = getElementsByClass(classArray[i],null,'div')
		for (var j = 0; j < divNodes.length; j++){
			var divNode = divNodes[j];
			var divWidth = '100px';

			var imageNodes = divNode.getElementsByTagName('img');
			var captionNode = getElementsByClass('imageLabel',divNodes[j],'div')

			for ( k = 0; k < imageNodes.length; k++){
				if (parseInt(imageNodes[k].width) > parseInt(divWidth)){
					divWidth = imageNodes[k].width;
				}
			}
      if (captionNode.length > 0){
			  captionNode[0].style.width = (18 + parseInt(divWidth)) + 'px';
      }
		} 
	}
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null ){
		node = document;
	}

	if ( tag == null ){
		tag = '*';
	}

	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");

	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Pop up window for E-mail this page
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function OpenPopup(siteRoot, pageId){
  var path = siteRoot + "/email_this_page?pageid=" + pageId;
  window.open(path, '', 'height=715,width=363,top=100'); 
  return false;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Indexer - Using Mootools
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UpdateIndexerMoo(pageId, indexerId, pageNumber){
  var updateNode = $('indexer-' + indexerId);
  var url = 'default.csf?pageid=' + pageId + '&indexer=' + indexerId + '&page=' + pageNumber;
	
	new Ajax(url, {
		method: 'get',
		update: updateNode
	}).request();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Indexer - Using Jquery
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function UpdateIndexer(pageId, indexerId, pageNumber, thisHref){
 
  var updateNode = jQuery('#indexer-' + indexerId);
  var printLink = document.getElementById("printLink"); 
  var url = 'default.csf?pageid=' + pageId + '&indexer=' + indexerId + '&page=' + pageNumber;
	if(printLink){printLink.href = thisHref + "&print=true";}
	   
  jQuery.ajax({
  type: 'GET',
  url: url,
  success: function(html){
   
    updateNode.html(html);
  }
  });
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Membershome
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function postPoll(form, destinationUrl){
  var dataStr = '';
  var formElements = form.elements;  
  
  /*
   * Add in all form fields...
   */  
  for(var i = 0; i < formElements.length; i++){
    if (formElements[i].name != ''){
      var elementType = formElements[i].type;
      switch(elementType){
        case 'radio':
        case 'checkbox':
          /*
           * Only return radio items or checkboxes that are checked.
           */
          if (formElements[i].checked){
            if (dataStr != ''){
              dataStr += "&";
            }
            dataStr += formElements[i].name + '=' + formElements[i].value;
          }
          break;
        case 'application/x-shockwave-flash':
          // Nothing to record for flash, results are stored in hidden fields.
        break;
        default:
            if (dataStr != ''){
              dataStr += "&";
            }
            dataStr += formElements[i].name + '=' + formElements[i].value;
          break;
      }
    }
  }
   jQuery.ajax({
     type: 'POST',
    //url: 'membershome',
    url: destinationUrl,
    data: dataStr,
    success: function(html){
     jQuery('#poll').html(html);
    }
  });
 
  //form.submit(function(){$(this).ajaxSubmit(); return false; });

  return false;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// login box animated indicator gif  
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function DisplayIndicator(elementId){
  var element = document.getElementById(elementId);
  if(element){
    element.style.display = "inline";
  } 
  return true;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// print this page
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/* Check for print value in URL and trigger print dialogue */
/* ------------------------------------------------------- */

function getSearchData() {
 var results = new Object();
 var srchString = unescape(location.search.substring(1, location.search.length));
 if (srchString.length > 0) {
	 var srchArray = srchString.split("&");
	 var tempArray = new Array();
	 for (var n = 0 ; n < srchArray.length ; n++) {
		 tempArray = srchArray[n].split("=");
		 results[tempArray[0]] = tempArray[1];
	 }
 }
 return results;
}

function setPrintStyleSheets(title) {
 var i = 0;
 var j = 0;
 var k = 0;
 var b = new Array;
 var a = document.getElementsByTagName("link");

 //disable all style sheets

 for (i ; i < a.length ; i++) {
		if (a[i].getAttribute("type").indexOf("css") != -1) {
			//a[i].disabled = true;
			//create a list of all print style sheets that were present
			if (a[i].getAttribute("media").indexOf("print") != -1) {
				b[j] = a[i].href;
				j++;
			}
		}
	}

 //re-load print style sheets to force activation in page
 for (k ; k < b.length ; k++) {
	 var headID = document.getElementsByTagName("head")[0];
	 var cssNode = document.createElement("link");
	 cssNode.type = "text/css";
	 cssNode.rel = "stylesheet";
	 cssNode.href = b[k];
	 cssNode.media = "all";
	 headID.appendChild(cssNode);
	}
}

//
// Print Test
//
function printTest() {
  //get url search data
	var queryStringURL = new Object();
	queryStringURL = getSearchData();
	if (queryStringURL.print == "true") {
	  //disable all existing style sheets, gather print style sheet and re-load the print style sheets
	  setPrintStyleSheets();
		//open dialogue print box
		setTimeout("window.print()", 500);
  }
}

//
// checks if the keypressed is enter key
//
function checkEnter(e){ //e is event object passed from function invocation
  var characterCode; // literal character code will be stored in this variable

  if(e && e.which){ //if which property of event object is supported (NN4)
    e = e;
    characterCode = e.which; //character code is contained in NN4's which property
  } else {
    e = event;
    characterCode = e.keyCode; //character code is contained in IE's keyCode property
  }

  if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
    return true;
  } else{
    return false;
  }
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Init
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

window.onload = Init;