/*
 * Clinical Trials JS
 * 
 */
function crossfader()
{
	//might be nice to rewrite this function so it uses prototype and scriptaculous 
	//in line with the rest of the platform
var useBSNns;

if (useBSNns) {
	 if (typeof(bsn) == "undefined")
		  bsn = {}
	   var _bsn = bsn;
} else {
	  var _bsn = this;
}

_bsn.Crossfader = function (divs, fadetime, delay ) {	
	 this.nAct = -1;
	 this.aDivs = divs;
	
	 for (var i=0;i<divs.length;i++) {
	   document.getElementById(divs[i]).style.opacity = 0;
   	document.getElementById(divs[i]).style.position = "absolute";
	   document.getElementById(divs[i]).style.filter = "alpha(opacity=0)";
 	  document.getElementById(divs[i]).style.visibility = "hidden";
	 }
	
	 this.nDur = fadetime;
  this.nDelay = delay;
  this._newfade();
}

_bsn.Crossfader.prototype._newfade = function() {
  if (this.nID1)
    clearInterval(this.nID1);
	   this.nOldAct = this.nAct;
    this.nAct++;

 	if (!this.aDivs[this.nAct])	this.nAct = 0;

 	if (this.nAct == this.nOldAct)
    return false;

  document.getElementById( this.aDivs[this.nAct] ).style.visibility = "visible";
  this.nInt = 50;
  this.nTime = 0;
  var p=this;
  this.nID2 = setInterval(function() { p._fade() }, this.nInt);
}

_bsn.Crossfader.prototype._fade = function() {
  this.nTime += this.nInt;
 	var ieop = Math.round( this._easeInOut(this.nTime, 0, 1, this.nDur) * 100 );
 	var op = ieop / 100;
 	document.getElementById( this.aDivs[this.nAct] ).style.opacity = op;
 	document.getElementById( this.aDivs[this.nAct] ).style.filter = "alpha(opacity="+ieop+")";

  if (this.nOldAct > -1) {
    document.getElementById( this.aDivs[this.nOldAct] ).style.opacity = 1 - op;
  		document.getElementById( this.aDivs[this.nOldAct] ).style.filter = "alpha(opacity="+(100 - ieop)+")";
	 }
	
	 if (this.nTime == this.nDur) {
		  clearInterval( this.nID2 );
		
  if (this.nOldAct > -1)
	   document.getElementById( this.aDivs[this.nOldAct] ).style.visibility = "hidden";	
    var p=this;
    this.nID1 = setInterval(function() { p._newfade() }, this.nDelay);
  }
}

_bsn.Crossfader.prototype._easeInOut = function(t,b,c,d) {
  return c/2 * (1 - Math.cos(Math.PI*t/d)) + b;
}

}

function imagefader()
{
	//Put the Redirect forms into an array
	var form_id=new Array;
	if (document.getElementById('home_page_1')) {
	form_id[0]=document.getElementById('home_page_1');
	}
	var cf = new Crossfader( new Array('cf1','cf2','cf3'), 1000, 5000 );
}

function imagedisplay()
{
	$('cf2').toggleClassName("displayimage");
	$('cf3').toggleClassName("displayimage");
}

function capsDiseaseBox(){
	//TODO tidy this up, could be made massively quicker. Is unmaintainable at the moment
	//could probably be rewritten to about six lines
var box;
var i;
var a;
var temp;
box=document.getElementById('filter_diseases').length;
for(i=1;i<box;i++)
{
	a=document.getElementById('filter_diseases').options[i].value;

switch (a)
	{
	case'AZN115912': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Acid reflux');
		break;
	case'AZN112783': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Acute coronary syndrome');
		break;
	case'AZN101853': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Acute myeloid leukaemia');
		break;
	case'AZN139674': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Acute pain');
		break;
	case'AZN101321': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Alzheimer\'s Disease');
		break;
	case'AZN100839': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Anaesthesia');
		break;
	case'AZN100838': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Analgaesia');
		break;
	case'AZN110857': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Analgaesics');
		break;
	case'AZN100613': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Anxiety');
		break;
	case'AZN100625': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Asthma');
		break;
	case'AZN100433': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Atrial fibrillation');
		break;
	case'AZN100612': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Bipolar disorder');
		break;
	case'AZN100923': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Bladder cancer');
		break;
	case'AZN100407': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Breast cancer');
		break;
	case'AZN100193': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Cancer');
		break;
	case'AZN139679': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Carcinomal renal cell');
		break;
	case'AZN100873': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Chronic obstructive pulmonary disease');
		break;
	case'AZN100412': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Colorectal cancer');
		break;
	case'AZN100526': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Crohn\'s disease');
		break;
	case'AZN100616': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Dementia');
		break;
	case'AZN100611': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Depression');
		break;
	case'AZN100610': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Depressive disorder');
		break;
	case'AZN100583': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Diabetes mellitus');
		break;
	case'AZN100587': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Diabetic retinopathy');
		break;
	case'AZN100911': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Endometrial cancer');
		break;
	case'AZN100565': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Endometriosis');
		break;
	case '"fibrous dysplasia of bone"': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Fibrous dysplasia of bone');
		break;
	case'"Gallbladder Cancer"': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Gallbladder Cancer');
		break;
	case'AZN100414': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Gastric cancer');
		break;
	case'GIST': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Gastro-Intestinal Stromal Tumours');
		break;
	case'AZN101848': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Glioblastoma');
		break;
	case'AZN100916': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Gynecomastia');
		break;
	case'AZN101652': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Haematological malignancies');
		break;
	case'AZN100415': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Head and neck cancer');
		break;
	case'AZN100459': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Heart failure');
		break;
	case'AZN100457': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Hypercholesterolaemia');
		break;
	case'AZN100466': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Hypertension');
		break;
	case'14000332': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Infection');
		break;
	case'1400017': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Inflammation');
		break;
	case'AZN101374': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Liver cancer');
		break;
	case'AZN100416': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Lung cancer');
		break;
	case'AZN101387': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Mesothelioma');
		break;
	case'AZN100630': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Migraine');
		break;
	case'AZN101871': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Multiple myeloma');
		break;
	case'AZN100417': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Non-small cell lung cancer');
		break;
	case'AZN100596': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Obesity');
		break;
	case'AZN100600': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Osteoarthritis');
		break;
	case'AZN100423': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Ovarian cancer');
		break;
	case'AZN101372': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Pancreatic cancer');
		break;
	case'AZN101774': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Pancreatitis');
		break;
	case'AZN100636': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Parkinson\'s disease');
		break;
	case'AZN100574': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Pneumonia');
		break;
	case'AZN100425': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Prostate cancer');
		break;
	case'AZN100615': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Psychotic disorder');
		break;
	case'AZN100603': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Rheumatoid arthritis');
		break;
	case'AZN100881': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Rhinitis');
		break;
	case'AZN100621': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Schizophrenia');
		break;
	case'AZN100547': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Sepsis');
		break;
	case'AZN139680': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Solid tumour');
		break;
	case'AZN100495': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Stroke');
		break;
	case'AZN100499': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Thrombosis');
		break;
	case'AZN101373': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Thyroid cancer');
		break;
	case'AZN100528': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Ulcerative colitis');
		break;
	case'AZN100910': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Uterine cancer');
		break;
	case'AZN100500': 
		document.getElementById('filter_diseases').options[i].setAttribute('text','Venous thromboembolism');
		break;

	default:
		break;
	}
}
}


//To implement the back function
function goBack(){

	// getting the URL location
	var str=window.location.href;
	var pairs=str.split("?");
	
	var divLocation=document.getElementById('contentarea');
	var location=document.getElementById('contentarea');
	
	if ((pairs[1].toString()).startsWith("itemId=")){
		// Creating the div tag element
		var divTag=document.createElement('div');
		divTag.setAttribute("id","backtolist");
		divLocation.appendChild(divTag);
	
		// Creating the link tag element for the back button
		var linkTag=document.createElement('a');
		linkTag.setAttribute('href', pairs[0].toString());
		var aTagContent=document.createTextNode('Back to Trial List');
		linkTag.appendChild(aTagContent);
		divTag.appendChild(linkTag);
		
	}
}

/**
 * Gets the text content of the specified element.
 * @param element {HTMLElement} The html element
 * @return {String} The string content of the specified element.
 */
function getTextContent(element) {
  if (typeof element.textContent != "undefined") {
    return element.textContent;
  }
  return element.innerText;
}

function setTextContent(element, text) {
	  if (typeof element.textContent != "undefined") {
		    element.textContent = text;
	  }
	  element.innerText = text;
}

function hideDates(){
	//find the following date in dl in trial items 
	//and replace the dt and accompanying dd
	var dateString = 'Jan 18, 1971';
	$$('div[id="trial"] .mimic_form_layout').each(function(el){
		
		//this is the dl, get all the children
		var els = el.descendants();
		for(var i=0;i<els.length;i++){
			
			//match start date and report date
			//get the dts
			
			if(els[i].tagName =='DT'){
				
				//check the contents
				var elText = getTextContent(els[i]);
				if(elText.startsWith('Start Date')){
					//get the element containing the date 
					var nextEl = els[i].next();
					//check if the date matches the test string 
					if(getTextContent(nextEl).startsWith(dateString)){
						//hide them both
						nextEl.hide();
						els[i].hide();
					}	
				}
				
				if(elText.startsWith('Report')){
					//just remove the date here, keep the label in the dt
					var nextEl = els[i].next();
					var nextElText = getTextContent(nextEl);
					if(nextElText.startsWith(dateString)){
						//get the descendant ul, if any
						var ul = nextEl.getElementsBySelector('ul');
						if(ul){
							//get the descendant ul
							var newEl = ul[0];
							//create a new node to replace this one
							var dd = new Element('dd');
							//add the ul to the new dd element
							//don't add the report date text
							dd.appendChild(newEl);
							//delete the old child
							el.removeChild(nextEl);
							//add the new one
							el.appendChild(dd);
						}
					}	
				}	
			}	
		}
	});	
}


var toCall=new Array;	
toCall[0]=imagedisplay;
toCall[1]=crossfader;
toCall[2]=imagefader;
toCall[3]=capsDiseaseBox;
toCall[4]=goBack;
toCall[5]=hideDates;