/*
 * Page.js
 */

//
// Global vars
//

var EXPIRY_WARNING_TIME = 1000 * 60 * 17;
var EXPIRY_LOGOUT_TIME = 1000 * 60 * 19;

var BANNER_SPEED = 12000;
var BANNER_TRANSITION = 2000;
var currentSelectedPortletElement = null; //li tag

//
// Called on load of page
//
$(document).ready(function() {
    
  //
  // Fix the sizing of the captions
  //
  RepositionImageCaption(1);

  //
  // Initialize print this page button
  //
  InitPrintThisPage();

  //
  // IE 6 PNG fix
  //
  if (typeof correctPNG == 'function') {
    correctPNG();
  }

  //
  // Initialize Advisory Form
  //
  InitAdvisoryForm();
    
  //
  // Initialize Contact Us page
  //
  InitContactUs();

  //
  // Setup banner rotation
  //
  if ($("div#banner").length > 0) {
    setTimeout("AnimateBanner(" + currentBannerVersion + ");", BANNER_SPEED);
  }  
  
  //
  // Close people page accordion sections
  //
  $("div.profile-desc").removeClass("profile-desc").addClass("profile-desc-hidden");

  //
  // Initialise accordion templates and accordion document tables.
  //
  if (jQuery().emcAccordion) {
    $("div#accordionSection").emcAccordion();
    $("div.documentTableContainerAccordion").emcAccordion();

    //
    // Grab bookmark val from URL
    //
    var bookmarkVal = window.location.href.split('#');
    if (bookmarkVal.length > 1) { bookmarkVal = bookmarkVal[1]; } else { bookmarkVal = ''; }

    if ((bookmarkVal != '') && (bookmarkVal.indexOf('AS_') == 0)) {
      var openIcon = $('a#' + bookmarkVal).next().find('div.action a');
      if (openIcon.hasClass("open")) {
        openIcon.trigger('click');
      }
    }
  }
  
  InitPortletModuleItems();
  
});

//
// Add Content panel - handle mouse over of portlet summaries.
//
function InitPortletModuleItems(){
   $("div#contentPanel ul.modules li").click(function(event) {
    currentSelectedPortletElement = $(this);
    
    if(currentSelectedPortletElement.hasClass("disable")){
      return false;      
    }
    
    var li = $(this);
    var liOffset = li.offset();
    var link = li.find("a").attr("href");
    var imageSrc = li.find("img").attr("src");
    var shortText = li.find("span.portletTitle").text();
    var fullTitle = li.find("span.fullTitle").text();
    var fullDesc = li.find("span.fullDesc").text();

    var leftX = liOffset.left + 100;
    if (leftX > $(window).width() - 530) {
      leftX = $(window).width() - 530;
    }

    var topY = liOffset.top + 100;
    if (topY > $(window).height() - 235) {
      topY = $(window).height() - 235;
    }
    
    $("#addcontentPanel").css({ display: "block", left: leftX, top: topY });
    $("#addcontentPanel ul.modules li a").attr("href", link);
    $("#addcontentPanel ul.modules li a span").text(shortText);
    $("#addcontentPanel ul.modules li a img").attr("src", imageSrc);
    $("#addcontentPanel .content h6").text(fullTitle);
    $("#addcontentPanel .content p").text(fullDesc);

    return false;
  });
}

//
// Initialize the Date Picker
//
function InitDatepicker(containerId, fieldId, minYear, maxYear) {
  var datePickerContainer = $("#" + containerId);

  var currentVal = $("#" + fieldId)[0].value;
  if (currentVal == "") {
    currentVal = null;
  } else {
    try {
      currentVal = new Date(Date.parse(currentVal));
    } catch (err) {
      currentVal = null;
    }
  }

  if(datePickerContainer.find('.ui-datepicker').length == 0){
    CreateDatePicker(datePickerContainer, fieldId, currentVal, minYear, maxYear);
  } else {
    if(datePickerContainer.is(':visible')){
      datePickerContainer.hide();
    } else {
      datePickerContainer.show();
    }
  }
  return false;
}

//
// Create the Datepicker
//
function CreateDatePicker(datePickerContainer, fieldId, defaultDateVal, minYear, maxYear) {

  datePickerContainer.datepicker({changeYear: true, 
                                  changeMonth: true, 
                                  gotoCurrent: true,
                                  altField: "#" + fieldId,
                                  altFormat: 'dd M yy',
                                  defaultDate: defaultDateVal,
                                  minDate : new Date(minYear, 1, 1),
                                  maxDate : new Date(maxYear, 12, 0),
                                  onSelect: function(dateText, inst) {DatePickerSelect(dateText, inst, datePickerContainer) }
                                 });
}

//
// Is called when a date is Selected from the datepicker. 
//
function DatePickerSelect(dateText, inst, datePickerContainer){
  datePickerContainer.hide();
  return false;
}

//
// Animate banner
//
var currentBannerVersion = 1;  // By incrementing this number we can turn any current animations off
function AnimateBanner(bannerVersion) {
  if (bannerVersion < currentBannerVersion) {
    return;
  }
  
  var currentItem = $("div#banner div.current");
  if (currentItem.length > 0) {
    var nextItem = currentItem.next();

    if (nextItem[0].tagName != "DIV") {
      nextItem = $("#banner1");
    }

    //
    // Show next item
    //
    $("div#banner div.previous").removeClass("previous").addClass("queued");
    nextItem.css("zIndex", "2");
    currentItem.css("zIndex", "1").removeClass("current").addClass("previous");
    nextItem.removeClass("queued").addClass("current").css("opacity", "0.0").animate({ opacity: "1.0" }, BANNER_TRANSITION);
    
    var currentIcon = $("div#banner ul.nav li.selected");
    var nextIcon = $("div#banner ul.nav li#" + nextItem[0].id + "Icon");
    
    setTimeout("$('#" + currentIcon[0].id + "').removeClass(\"selected\")", BANNER_TRANSITION/2);
    setTimeout("$('#" + nextIcon[0].id + "').addClass(\"selected\")", BANNER_TRANSITION/2);

    //
    // Set timeout for next transition
    //
    setTimeout("AnimateBanner(" + bannerVersion + ")", BANNER_SPEED);
  }
}

//
// Moves to a banner item
//
function MoveToBannerItem(i) {
  currentBannerVersion++;  // Increment banner version, this stops any previous animations

  //
  // Clear any current styling in progress...
  //
  $("div#banner div.previous").removeClass("previous").addClass("queued");
  $("div#banner div.current").removeClass("current").addClass("queued");
  $("div#banner ul.nav li").removeClass("selected");

  //
  // Move to new banner...
  //
  $("div#banner div.queued:eq(" + (i - 1) + ")").removeClass("queued").addClass("current");
  $("div#banner ul.nav li:eq(" + (i - 1) + ")").addClass("selected");

  //
  // Start up the animation again from this new starting point.
  //
  setTimeout("AnimateBanner(" + currentBannerVersion + ");", BANNER_SPEED);
  
  //
  // Return false so we don't fire the link
  //
  return false;
}

//
// Initiate 'Print this Page' onclick event
//
function InitPrintThisPage() {
  var anchor = $("a#printThisPage");
  if (anchor.length > 0) {
    anchor.click(function() {
      window.print();
      return false;
    })
  }
  return false;
}

//
// Show Login panel
//
function ShowLogin() {  
  $("#overlay").css("display", "block");
  $("#loginPanel").css("top", "0px").css("display", "block");

  ClearLoginFields();
  
  return false;
}

//
// Hide Login panel
//
function HideLogin() {
  $("#loginPanel").css({"top":"-250px", "display":"none"});
  $("#overlay").css("display", "none");  
    
  return false;
}

//
// Clear Username and Password fields.
//
function ClearLoginFields(){
  $("#loginPanel input#userid").attr("value", "");
  $("#loginPanel input#password").attr("value", "");
  $("#loginPanel input#tokenid").attr("value", "");
}

//
// Show Add Content panel
//
var showAddContentFirstTime = true;
function ShowAddContent() {
  refreshRequired = false;

  if (showAddContentFirstTime) {
    $("ul.modules li img").each(function() {
      var elem = $(this); 
      elem.attr("src", elem.attr("alt"));
      elem.attr("alt", elem.attr("title"));
      elem.attr("title", "");
    });
    showAddContentFirstTime = false;
  }
  
  $("#overlay").css("display", "block");
  $("#contentPanel").css("top", "0px").css("display", "block");
  
  return false;
}

//
// Hide Add Content panel
//
var refreshRequired = false;
function HideAddContent(url) {
  $('#addcontentPanel').css('display', 'none');
  $('#addContentHelpPanel').css('display', 'none');

  $("#contentPanel").css({"top":"-452px", "display":"none"});
  $("#overlay").css("display", "none");

  if (refreshRequired) {
    if (url != null) {
      document.location.href = url;
    }
  }
  
  return false;
}

//
// Toggles a person profile section
//
function TogglePersonSection(btn, id) {
  var profileText = $("#" + id);
  
  if (profileText.is(":hidden")) {
    profileText.css("display", "block");
    btn.className = "close";
  } else {
    profileText.css("display", "none");
    btn.className = "open";
  }

  return false;
}

//
// Fix the Positioning of Image Captions
//
function RepositionImageCaption(attemptNo){
  
  //
  // Keeps track of how many calls have been made to this function while the images are loading. Prevents infinate loops if an image can't be found.
  //  
	if(attemptNo > 10){
    return;
  }
  
  var missedImages = 0;
	var classArray = Array('imageRight','imageLeft', 'imageLeftNoBorder', 'imageRightNoBorder', 'imageTopNoBorder', 'imageTop');
  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('imageCaption',divNodes[j],'div')
						
			for ( k = 0; k < imageNodes.length; k++){
				//
				// if no image exists browsers return different widths. Firefoex returns 0, IE returns 28, and Opera returns 1. We will use less than 30 to simplify this.
				//
				if(parseInt(imageNodes[k].width) < 30){
				  missedImages++;
				}
				if (parseInt(imageNodes[k].width) > parseInt(divWidth)){
					divWidth = imageNodes[k].width;
				}
			}
      if (captionNode.length > 0){
				captionNode[0].style.width = (parseInt(divWidth)) + 'px';
      }
		} 
	}
  if(missedImages > 0){
  	attemptNo++;
    setTimeout("RepositionImageCaption(" + attemptNo + ")", 1000);
  }
}

//
// Returns an array of elements of a given class name.
// 
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;
}

//
// InitializeGallery
//
function InitializeGallery(galleryId, siteRoot){
  var gallerySelector = "div#" + galleryId;
  
  var gallery = $(gallerySelector);
   
  if(gallery.length == 0){
    return false;
  } 
  
  gallery.find("a.galleryThumb").lightBox({
    overlayBgColor: '#000',
    overlayOpacity: 0.8,
    imageLoading: siteRoot + '/notion/site/emc/images/emc/lightbox/lightbox-ico-loading.gif',
    imageBtnPrev: siteRoot + '/notion/site/emc/images/emc/lightbox/lightbox-btn-prev.gif',
    imageBtnNext: siteRoot + '/notion/site/emc/images/emc/lightbox/lightbox-btn-next.gif',
    imageBtnClose: siteRoot + '/notion/site/emc/images/emc/lightbox/lightbox-btn-close.gif',
    imageBlank: siteRoot + '/notion/site/emc/images/emc/lightbox/lightbox-blank.gif',
    containerResizeSpeed: 350,
    txtImage: 'Image',
    txtOf: 'of'

  });
}

//
// ToggleGallery
//
function ToggleGallery(gallerySelector, thumb){
  //ToggleThumb(gallerySelector, thumb)
  ToggleMainImage(gallerySelector, $(thumb));
  return false;
}
  
//
// ToggleThumb
//
function ToggleThumb(gallerySelector, thumb){
  ResetSelectedClass();
  thumb.addClass("selected");
  return false;  
}  
  
//
// ResetSelectedClass
//
function ResetSelectedClass(){
   var thumbs = $("a.galleryThumb");
   thumbs.each(function (i) {
    if($(this).hasClass("selected")){
      $(this).removeClass("selected");
      return false;
    }
   });
   return;
}
  
//
// ToggleMainImage
//
function ToggleMainImage(gallerySelector, thumb){
  var mainImage = $("#" + gallerySelector + " img.galleryMainImage");  
  var thumbImage = thumb.find("img");
  var newSrc = thumbImage.attr("src").replace("_thumb","_original");
  mainImage.attr("src", newSrc);
  return false;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Indexer - Using Jquery
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function UpdateIndexer(pageId, indexerId, indexPageNumber, contentPageNumber){
  var updateNode = jQuery('#indexer-' + indexerId);

  var url = 'default.csf?pageid=' + pageId + '&indexer=' + indexerId + '&ipage=' + indexPageNumber + '&cpage=' + contentPageNumber;
  	   
  jQuery.ajax({
    type: 'GET',
    url: url,
    success: function(html){
      updateNode.html(html);
    }
  });
}

//
// Upload Forms - Handles on change of Advisory type dropdown.
//
function OnChangeFormTypeWithBookmark(element, siteroot, pageId, bookmarkId){
  var type = element[element.selectedIndex].value;
  window.location = siteroot + "/?id=" + pageId + "&type=" + type + "#" + bookmarkId ;
}

//
// Advisory form fields
//

function InitAdvisoryForm(){
  DisableFields();
}

function DisableFields(){
  $("div.fieldGroup input").attr("disabled", "disable");
  return false;
}

function ToggleAdvisoryField(element, fieldGroupId){
  if(!element.on){
    element.on = true;
  } else{
    element.on = false
  }
  var fieldGroup = $("div#" + fieldGroupId + " input");
  if(element.on){
    $(fieldGroup).attr("disabled", "");
  } else{
    $(fieldGroup).attr("disabled", "disable");
  }
}

//
// Price Information Page
//

function OnSubmitPriceForm(){
  
  HideErrorContainer();
  
  //
  // If the fromDate is larger than toDate give user a warning, flip them around and continue submitting.
  //
  
  var dateType = $(".pdata select#fprice :selected").attr("value");
   
  if(!$("#" + dateType  + "_dataDownload").attr("checked")){
    return true;
  }
   if(!$("#" + dateType  + "_dateTypeDateRange").attr("checked")){
    return true;
  }
  var fromDateStr = $("#" + dateType  + "_fromDate").attr("value");
  var toDateStr = $("#" + dateType  + "_toDate").attr("value");
  
  if(Date.parse(toDateStr) < Date.parse(fromDateStr)){
   
    var isConfirm = confirm("The start date was greater than the end date. The dates will be changed to the correct order and the form will continue to submit. Continue?");
    
    if(isConfirm){
      $("#" + dateType  + "_fromDate").attr("value", toDateStr);
      $("#" + dateType  + "_toDate").attr("value", fromDateStr)
      return true;
    } else{
      return false;
    }
  }
  return true;
}

function OnchangePriceDataForm(element){
  
  //var meucMonthSelect = $('#MEUC_monthMonth');
  //alert(meucMonthSelect.find("option:selected").val());

  //
  // Reset Fields
  //
  
 // $(".datepickerField").attr("value", defaultDateStr);
  $(".selectYear").attr("selectedIndex", 0);
  
  ResetPriceDownloadForm();
   
  var selectedVal = element[element.selectedIndex].value;
  ResetFormDates(selectedVal);
   
  //
  // Hide Message/data container when a new price is selected.
  //
  HideErrorContainer();
  
  /*
  var dateFields = $(".datepickerField");
  dateFields.each(function (i) {
    $(this).attr("value", "05 Oct 2008");  
  });*/
  
  switch(selectedVal){
    case "MEUC" :
      TogglePriceForms("MEUC")
      break;
    case "MEP" :
      TogglePriceForms("MEP")
      break;
    case "MFP" :
      TogglePriceForms("MFP")
      break;
    case "MRP" :
      TogglePriceForms("MRP")
      break;
    case "USEP" :
      TogglePriceForms("USEP")
      break;
    case "VCRP" :
      TogglePriceForms("VCRP")
      break;
    case "WEP" :
      TogglePriceForms("WEP")
      break;
  }
}

function TogglePriceForms(dataTypeCode){
   $("div.priceForm").css("display", "none");
   $("div#priceForm-" + dataTypeCode).css("display", "block");
}

function OnClickPriceDataFormRadio(action, dataTypeCode){
  HideErrorContainer();
  switch(action){
    case "dataView" :
     ToggleDataOptions(dataTypeCode, false);
     ToggleReserveAndNetworkOptions(dataTypeCode, false);
     break;
    case "dataDownload" :
     ToggleDataOptions(dataTypeCode, true);
     ToggleReserveAndNetworkOptions(dataTypeCode, true); 
     break;
  }
}

function ToggleDataOptions(dataTypeCode, isDownload){
  
  if(isDownload){
    $("div#" + dataTypeCode + "_viewOptions").css("display", "none");
    $("div#" + dataTypeCode + "_downloadOptions").css("display", "block");
  } else {
    $("div#" + dataTypeCode + "_downloadOptions").css("display", "none");
    $("div#" + dataTypeCode + "_viewOptions").css("display", "block");
  }
}

function ToggleReserveAndNetworkOptions(dataTypeCode, isDownload){
  if(isDownload){
     $("div.reserveGroups select#" + dataTypeCode + "_reserveGroup").attr("disabled", "disabled");
     $("div.reserveGroups select#" + dataTypeCode + "_reserveGroup").attr("selectedIndex", 0);
     $("div.networkNodes select#" + dataTypeCode + "_networkNode").attr("disabled", "disabled");
     $("div.networkNodes select#" + dataTypeCode + "_networkNode").attr("selectedIndex", 0);
  } else {
     $("div.reserveGroups select#" + dataTypeCode + "_reserveGroup").attr("disabled", "");
     $("div.networkNodes select#" + dataTypeCode + "_networkNode").attr("disabled", "");
  }
}

function ResetPriceDownloadForm(){
    var dataTypeOptions = $("select#fprice option");
    var selectedDataType = $("select#fprice :selected").val();
            
    dataTypeOptions.each(function (i) {
      var dataTypeName = $(this).val();
    
      if(dataTypeName != selectedDataType){
        $('[name=' + dataTypeName +'_networkNode]').attr("selectedIndex", 0);      
        $('[name=' + dataTypeName +'_reserveGroup]').attr("selectedIndex", 0);
        $('[name=' + dataTypeName +'_monthMonth]').attr("selectedIndex", $("#MeucMonthSelectedIndex").val());
        //$('[name=' + dataTypeName +'_monthYear]').attr("selectedIndex", 0);                        
        $('input#' + dataTypeName + '_dataView').attr("checked", "checked");
        $('input#' + dataTypeName + '_dateTypeDateRange').attr("checked", "checked");
                
        ToggleDataOptions(dataTypeName, false);
        ToggleReserveAndNetworkOptions(dataTypeName, false);
      }
    });
      
    if($("input#" + selectedDataType + "_dataDownload").attr("checked") == true){
      ToggleReserveAndNetworkOptions(selectedDataType, true);
    }
} 

function ResetFormDates(dataTypeCode){
  var defaultDate = $("input#" + dataTypeCode + "_defaultDate").val();
  var defaultDateFrom = $("input#" + dataTypeCode + "_defaultDateFrom").val();
    
  $("input#" + dataTypeCode + "_date").attr("value", defaultDate);
  $("input#" + dataTypeCode + "_fromDate").attr("value", defaultDateFrom);
  $("input#" + dataTypeCode + "_toDate").attr("value", defaultDate);
}

function OnfocusDownloadOptions(dataTypeCode, isDateRange){
  if(isDateRange){
    $("input#" + dataTypeCode + '_dateTypeDateRange').attr("checked", "checked");
  }else{
    $("input#" + dataTypeCode + '_dateTypeYear').attr("checked", "checked");
  }
  return false;
}

function UpdateRealtimePrices(url){
  var updateNode = jQuery('#realtimeWindow');
  jQuery.ajax({
    type: 'GET',
    url: url + "?action=refresh",
    success: function(html){
      updateNode.html(html);
      tabberAutomatic();
    }
  });
  setTimeout("UpdateRealtimePrices('" + url + "')", 10000 * 60 * 30);
}

function TogglePriceDataAccordion(clickedElement, container, siteRoot){

  var containerElement = $("div#" + container);
  var anchorElement = $(clickedElement);
  
  if(containerElement.css("display") == "block"){
    containerElement.css("display", "none");
    anchorElement.css("backgroundImage", "url('" + siteRoot + "/notion/site/emc/images/emc/p-plus.gif')");
  } else{
    containerElement.css("display", "block");
    anchorElement.css("backgroundImage", "url('" + siteRoot + "/notion/site/emc/images/emc/p-minus.gif')");
  }
  return false;
}

//
// Hide Message/data container when a new price is selected.
//
function HideErrorContainer(){
  
  var priceDataViewContainer = $("div#priceDataView");
  if(priceDataViewContainer.length > 0){
    priceDataViewContainer.css("display", "none");
  }
}

//
// On change of 'Contact Us' page dropdown
//

// Init the Contact us Page
function InitContactUs(){
  OnChangeContactInfo()
}

//Onchange contact info
function OnChangeContactInfo(){
  ChangeContactInfo(GetSelectedContactValue());
  return false; 
}

//Change contact info
function ChangeContactInfo(selectedValue){
  $('div.contactus-contact').css("display", "none");
  $('div#contactus-contact' + selectedValue).css("display", "block");
}

//Get selected index
function GetSelectedContactValue(){
  var element =  $("#contactus-contactSelect");
  var selectedValue = -1;
  if(element.length > 0){
    selectedValue = element.attr("value");
  }
  return selectedValue;
}

//
// Forms
//
function EnforceNumeric(e) {
  var code = (e.keyCode ? e.keyCode : e.which);

  if ((code >= 48) && (code <= 57) && (!e.shiftKey)) {
    // 0-9
    return true;
  } else if ((code >= 96) && (code <= 105)) {
    // 0-9 on keypad
    return true;
  } else if ((code >= 35) && (code <= 40)) {
    // End, Home, Arrow keys
    return true;
  } else if (((code == 188) || (code == 190) || (code == 8) || (code == 9) || (code == 46) || (code == 13)) && (!e.shiftKey)) {
    // comma or dot or backspace, tab, delete, enter
    return true;
  } else {
    e.returnValue = false;
    e.cancel = true;
    if (e.preventDefault) {
      e.preventDefault();
    }
    return false;
  }
}

//
// Image Gallery
//
function ShowImageGallery(id, bookmark) {
  //
  // Create the overlay and add the content in...
  //
  $("body").css("overflow", "hidden");
  $("div#imageGalleryOverlay").css("display", "block");
  $("div#imageGalleryOverlay" + id).css("display", "block");

  document.location.href = document.location.href.split('#')[0] + '#' + bookmark;

/*
  if ("div.imageGalleryThumbContainer li:first img")[0].complete){
    $("div.imageGalleryThumbContainer li:first img").click();
  } else {
    $("div.imageGalleryThumbContainer li:first img").load(function() { $("div.imageGalleryThumbContainer li:first img").click(); });
  }*/

  return false;
}

//
// Close the image gallery
//
function CloseImageGallery(id) {
  $("div#imageGalleryOverlay" + id).css("display", "none");
  $("div#imageGalleryOverlay").css("display", "none");
    
  $("body").css("overflow", "");
}

//
// Data Subscription Application Form. Clear form.
//
function ClearDataSubsribeForm(formContainerName){

  var formContainer = $("div." + formContainerName);
  
  var textBoxFields = formContainer.find("input.textbox");
  textBoxFields.each(function (i) {
    $(this).attr("value","");
  });
  
  var dropdownFields = formContainer.find("select");
  dropdownFields.each(function (i) {
    $(this).attr("selectedIndex", 0);
  });
  
  var dropdownFields = formContainer.find("input.DataCheckBox2");
  dropdownFields.each(function (i) {
     $(this).attr("value","");
  });
 
 var dropdownFields = formContainer.find("input.checkbox");
  dropdownFields.each(function (i) {
     $(this).attr("checked","");
  });
  
  var dropdownFields = formContainer.find("input.radio");
  
  dropdownFields.each(function (i) {
     $(this).attr("checked","");
  });
 
  return false;
}

function OnclickCheckSubscription(checkBoxId){
  $("#" + checkBoxId).attr("checked", "checked");
}

function DataSubscriptionPrintAndSubmit(){
  window.print();
  return true;
}

//
// Adds a portlet to the homepage
//
function AddContent(obj) {
  
  refreshRequired = true;
  var url = '';
    
  if (obj.tagName == 'A') {
    url = $(obj).attr('href');
  } else {
    url = $(obj).parent().parent().find('div.content ul.modules li a').attr('href');
  }
  
  jQuery.ajax({
    type: 'GET',
    url: url,
    success: function(html) {
      alert(html);
    }
  });

  $('#addcontentPanel').css('display', 'none');
  
  DisableAddedPortlet();
  
  return false;
}

function DisableAddedPortlet(){
  if(currentSelectedPortletElement != null){
    currentSelectedPortletElement.addClass('disable');
  }
}

function OnClickContentUpdates(element, depth){
  
  var settingsRow = $(element).parents('.settingsRow');
  var selector = "";
  
  // Stop when reach anything at the same level or higher
  if(depth > 1){
    for(var i = depth; i >= 1; i--){
     if(i < depth){
       selector += ",";
     }
     selector += ".rowLevel-" + i;
    }
  }
  else {
    selector = ".rowLevel-" + depth;
  }
      
  // Don't need to select the one we are on, as the user is clicking on it already
  // And following ones until we hit one at the same level
  settingsRow.nextUntil(selector).find('.radioSubscribe').attr('checked', true);
}

//
// Set Expiry Warning for the page. It will popup with a warning when login session is close to expiring.
//
var expiryTimeoutWarning = null;
var expiryTimeoutLogout = null;
var expiryPrompt = false;

function InitExpiry(siteRoot) {
  $(document).ready(function() {
    if (expiryTimeoutWarning == null) {
      expiryTimeoutWarning = setTimeout("ExpirePageWarning('" + siteRoot + "')", EXPIRY_WARNING_TIME);
    }
    if (expiryTimeoutLogout == null) {
      expiryTimeoutLogout = setTimeout("ExpireLogout('" + siteRoot + "')", EXPIRY_LOGOUT_TIME);
    }
  });
}

function ExpirePageWarning(siteRoot) {
  expiryPrompt = true;
  var answer = confirm("Your login session is about to expire soon! Do you want to delay the expiry?");
  if (answer) {
    var url = siteRoot + '/errorpages/reset.html';
    jQuery.ajax({
      type: 'GET',
      url: url,
      success: function(html) {
        // Warning will normally have fired already, but let's make sure
        clearTimeout(expiryTimeoutWarning);
        clearTimeout(expiryTimeoutLogout);
        expiryTimeoutLogout = setTimeout("ExpireLogout('" + siteRoot + "')", EXPIRY_LOGOUT_TIME);
        expiryTimeoutWarning = setTimeout("ExpirePageWarning('" + siteRoot + "')", EXPIRY_WARNING_TIME);
      },
      error: function(request) {
        alert("Sorry, unable to prevent your login session expiring");
        expiryPrompt = false;
        ExpireLogout(siteRoot);
      }
    });
  } else {
    expiryPrompt = false;
    ExpireLogout(siteRoot);
  }
}

function ExpireLogout(siteRoot) {
  if (expiryPrompt) {
    alert("Sorry, your login session has already expired.");
  }
  window.location = siteRoot + "/Login?action=logout";
}

function SubmitAsaReportForm(element){
  var form = $(element).parents('form.documentTableFilterForm');
  form.submit();
}