var timerlen = 20;
var slideAniLen = 300;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

//*********************************************
//* this method is used to slide down to display the 
//* all result for an article
//* 
//*********************************************
function slidedown(objname){
        if(moving[objname])
                return;
        if(!(document.getElementById(objname).style.display=='') && document.getElementById(objname).style.display != "none"){
                return; // cannot slide down something that is already visible
		}
        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
}

//*********************************************
//* this method is used to slide up to hide the 
//* all result for an article
//* 
//*********************************************
function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}


function startslide(objname){
        obj[objname] = document.getElementById(objname);
        endHeight[objname] = parseInt(obj[objname].style.height);
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];
        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;
                obj[objname].style.height = d + "px";
        }

        return;
}


function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}


function toggleSlide(objname){
	if(document.getElementById(objname).style.display == "none"){
		// div is hidden, so let's slide down
		slidedown(objname);
	}else{
		// div is not hidden, so slide up
		slideup(objname);
	}
}

//===============================================

//*********************************************
//* this method responds when the user enters the search term
//* and options are diplayed. This methods allows to navigate 
//* between those options
//*********************************************
function checkArrow(evt) {
      if (typeof window.event != "undefined") evt = window.event; //if not others then IE
      var keycode = evt.keyCode;
      if (keycode == 38 || keycode == 40) { //Do stuff only if arrow key

          var obj = (typeof evt.target != "undefined") ? evt.target : evt.srcElement;
          while(obj.nodeType != 1 && obj.tagName.toLowerCase() !="input" && obj.tagName.toLowerCase() !="a"){
                obj= (typeof obj.parentNode != "undefined") ? obj.parentNode : obj.parentElement;
          }
          /* If an input field process */
          if (typeof obj.tagName != "undefined" && (obj.tagName.toLowerCase() == "input" ||obj.tagName.toLowerCase() =="a")) {

               /* Get current fields id */
               var currentField = (typeof evt.target != "undefined") ? evt.target : evt.srcElement; //other or IE
               var currentID = currentField.id;
               var newID = null;
		 var prevId=null;
               /* Determine next field */
           switch (currentID) {
                case "searchInput":
			prevId="searchInput";
                     if (keycode == 40) newID = "11";
			 else if(keycode == 38) newID= "13"
                     break;
		  case "11":
			prevId="11";
                     if (keycode == 40) newID = "12";
			else if(keycode == 38) newID= "searchInput"
                     break	 
                case "12":
			prevId="12";
                     if (keycode == 38) newID = "11";
                     else newID= "13";
                     break;
                case "13":
			prevId="13";
                     if (keycode == 38) newID = "12";
                     else newID = "searchInput";
                     break;
                }
               /* Move to new field */
			
               if (document.getElementById(newID) && newID) {
                   document.getElementById(newID).focus();
				if(prevId!='searchInput'){
					document.getElementById(prevId).style.backgroundColor='f2f2f2';
				}
					document.getElementById(newID).style.backgroundColor='ffffff';
               }
                usedArrow = true;
        }
    }
}

function capitalizeMe(obj) {
        val = encodeURI(obj.value);
        newVal = '';
        val = val.toLowerCase().split('');
		var len = val.length;
		if(len>0){
		if(val[0]=='%'){
			newVal +=val[0]+val[1]+val[2];
			
			if(len>3)
				newVal += val[3].toUpperCase();
			
			if(len>3){
				for(var c=4; c < len; c++) {
				   newVal += val[c];
				}
			}
		}else{
			newVal += val[0].toUpperCase();
			var len = val.length;
			if(len>0){
				for(var c=1; c < len; c++) {
				   newVal += val[c];
				}
			}
		}
	}
		return newVal;
}
function autoSuggest(obj,e){
var unicode=e.keyCode? e.keyCode : e.charCode

var objVal =encodeURI(trim(obj.value));
var newStr='';
	if(objVal.length>0 && e.type=='keyup'&& unicode!=13 && objVal.indexOf("'")==-1){
		var objValLower = objVal.toLowerCase();
		var objValUpper = objVal.toUpperCase();
		var objValCamel = capitalizeMe(obj);
		newStr = "<a href='#' id='11' onkeydown=checkArrow(event); onClick =setValues('"+objValLower+"');><div class=sugg>"+decodeURI(objValLower)+"</div></a><a href='#' id='12' onkeydown=checkArrow(event); onClick =setValues('"+objValUpper+"');><div class=sugg>"+decodeURI(objValUpper)+"</div></a><a href='#' id='13' onkeydown=checkArrow(event); onClick =setValues('"+objValCamel+"');><div class='sugg_last'>"+decodeURI(objValCamel)+"</div></a>";

		document.getElementById("suggest_target").innerHTML='<div style="border:1px solid #71D526; text-align:left; font-size:11px; background-color:#f2f2f2;font-family:verdana,arial" bgColor="#f0f0f0">'+newStr+'</div>';
	}else{
		newStr='';
		document.getElementById("suggest_target").innerHTML='';
	}

}
//if (window.event.keyCode == 27)
//	document.getElementById("suggest_target").innerHTML='';
	

function setValues(val){
document.getElementById('searchInput').value= decodeURI(val);
//document.getElementById('suggest_target').innerHTML='';
document.getElementById('searchInput').focus();
}


//*********************************************
// this functions triggers the search when the user 
// inputs the search term and hits the enter key
//*********************************************
function searchSubmit(){
//	alert('here');
//	var headerId = document.getElementById('headerId');
	document.getElementById("suggest_target").innerHTML='';
	//if(headerId.style.display=='none'){
	//	headerId.style.display='block';
	//}
		var searchValue = document.getElementById("searchInput").value;
		var tempSearchTerm = encodeURI(searchValue);
		var sType = '';
		if(document.getElementById('searchType')){
			sType = document.getElementById('searchType').value;
		}
		if(trim(searchValue)!=''){
			loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
			//srchSbmt(tempSearchTerm);
			setSearchType(tempSearchTerm, sType);
			return true;
		}else{
			alert('Please enter a search term.');
			return false;
		}
	return false;
}

function searchSubmit(source){
	document.getElementById("suggest_target").innerHTML='';
		var searchValue = document.getElementById("searchInput").value;
		var tempSearchTerm = encodeURI(searchValue);
		var sType = '';
		if(document.getElementById('searchType')){
			sType = document.getElementById('searchType').value;
		}
		if(trim(searchValue)!=''){
			loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
			setSearchType(tempSearchTerm, sType,source);
			return true;
		}else{
			alert('Please enter a search term.');
			return false;
		}
	return false;
}

//*********************************************
// this method validates the for the search 
// term before processing the request
//*********************************************
function validateForm(){
	var searchValue = document.getElementById("searchInput").value;
	var tempSearchTerm = encodeURI(searchValue);
	if(trim(searchValue)!=''){
		loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
		return true;
	}else{
		alert('Please enter a search term.');
		return false;
	}
}

//*********************************************
// this functions triggers the search when the user 
// inputs the search term and hits the enter key
//*********************************************
function srchSbmt(obj,source){
  var searchValue = obj;
  var ReqUrl = "latexFacets.do?";
	var queryStr = "searchInput="+searchValue;
	colArr=new Array();
	//document.latexForm.method="GET";
	//document.latexForm.submit();
//	alert(ReqUrl+queryStr);
/*var similarTabStatus = '';
if(document.getElementById('similar')){
	similarTabStatus = document.getElementById('similar').style.display;
}

var status='';
if(similarTabStatus=='block'){
	status="&st=true";
}*/
//	window.location.href=ReqUrl+queryStr+"&stype=exact&searchType=exacml";
var src=""
var searchSubject=""
var searchJournal=""

if(source!='' && source=='lite'){
src="&searchType=lite";
ReqUrl = "latexlite.do?";
			searchSubject = document.getElementById("searchSubject").value;
			searchSubject = strReplaceAll(searchSubject,"#","%23");
			searchSubject = strReplaceAll(searchSubject,"+","%2B");
			searchSubject = strReplaceAll(searchSubject,"&","%26");
			searchSubject = strReplaceAll(searchSubject,"$","%24");
			searchSubject = "&searchSubject="+searchSubject;
			searchJournal = document.getElementById("searchJournal").value;
			searchJournal = strReplaceAll(searchJournal,"#","%23");
			searchJournal = strReplaceAll(searchJournal,"+","%2B");
			searchJournal = strReplaceAll(searchJournal,"&","%26");
			searchJournal = strReplaceAll(searchJournal,"$","%24");
			searchJournal = "&searchJournal="+searchJournal;
			window.location.href=ReqUrl+queryStr+searchSubject+searchJournal+"&src=lite";
}
		window.location.href=ReqUrl+queryStr+searchSubject+searchJournal+"&stype=exact"+src;
}

function tabRequest(tab, jtitle, year){
  var searchValue = document.getElementById('searchInput').value;
  loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
  searchValue =encodeURI(searchValue);
  var ReqUrl = "latexFacets.do?";

  if(tab =='exacml'){
	ReqUrl ='latexlite.do?';
  }
	searchValue = strReplaceAll(searchValue,"#","%23");
	searchValue = strReplaceAll(searchValue,"+","%2B");
	searchValue = strReplaceAll(searchValue,"&","%26");
	searchValue = strReplaceAll(searchValue,"$","%24");

var similarTabStatus = '';
if(document.getElementById('similar')){
	similarTabStatus = document.getElementById('similar').style.display;
}
var status='';
if(similarTabStatus=='block'){
	status="&st=true";
}


var queryStr = "searchInput="+searchValue;
	colArr=new Array();
	if(jtitle!=''){
		queryStr=queryStr+"&journalID="+jtitle;
	}
	if(year!=''){
		queryStr=queryStr+"&pubYear="+year;
	}
//	if(similarTabStatus !='' && tab=='exact'){
	if(similarTabStatus !=''){
		queryStr=queryStr+status;
	}
	if(tab=='exacml'){
		queryStr = queryStr +"&searchType=lite";
	}
	window.location.href=ReqUrl+queryStr+"&stype="+tab;
	
}




/*function triggerSpeedSearch(tab, jtitle, year){
  var searchValue =document.getElementById('searchInput').value;
//  loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
  searchValue =encodeURI(searchValue);
  var ReqUrl = "latexFacets.do?";
  if(tab =='exacml'){
	ReqUrl ='latexlite.do?';
  }
	searchValue = strReplaceAll(searchValue,"#","%23");
	searchValue = strReplaceAll(searchValue,"+","%2B");
	searchValue = strReplaceAll(searchValue,"&","%26");
	searchValue = strReplaceAll(searchValue,"$","%24");

var similarTabStatus = '';
if(document.getElementById('similar')){
	similarTabStatus = document.getElementById('similar').style.display;
}
var status='';
if(similarTabStatus=='block'){
	status="&st=true";
}
var queryStr = "searchInput="+searchValue;
	colArr=new Array();
	if(jtitle!=''){
		queryStr=queryStr+"&journalID="+jtitle;
	}
	if(year!=''){
		queryStr=queryStr+"&pubYear="+year;
	}
//	if(similarTabStatus !='' && tab=='exact'){
	if(similarTabStatus !=''){
		queryStr=queryStr+status;
	}
	if(tab=='exacml'){
		queryStr = queryStr +"&searchType=lite";
	}
var url =ReqUrl+queryStr+"&stype="+tab;
	window.open(url,'','width=700px,height=700px,left='+((screen.width -700) / 2)+',top='+ (screen.height - 700) / 2+','+'location=yes, menubar=yes, ' + 'status=yes, toolbar=yes, scrollbars=yes, resizable=yes');

//	window.location.href=ReqUrl+queryStr+"&stype="+tab;
	
}*/

function triggerSpeedSearch(tab){
  var searchValue =document.getElementById('searchInput').value;
  searchValue =encodeURI(searchValue);
  var ReqUrl = "latexFacets.do?";
  if(tab =='exacml'){
	ReqUrl ='latexlite.do?';
  }
	searchValue = strReplaceAll(searchValue,"#","%23");
	searchValue = strReplaceAll(searchValue,"+","%2B");
	searchValue = strReplaceAll(searchValue,"&","%26");
	searchValue = strReplaceAll(searchValue,"$","%24");

var similarTabStatus = '';
if(document.getElementById('similar')){
	similarTabStatus = document.getElementById('similar').style.display;
}
var status='';
if(similarTabStatus=='block'){
	status="&st=true";
}
var queryStr = "searchInput="+searchValue;
	colArr=new Array();
	if(similarTabStatus !=''){
		queryStr=queryStr+status;
	}
	if(tab=='exacml'){
		queryStr = queryStr +"&searchType=lite";
	}
var url =ReqUrl+queryStr+"&stype="+tab;
	window.open(url,'','width=700px,height=700px,left='+((screen.width -700) / 2)+',top='+ (screen.height - 700) / 2+','+'location=yes, menubar=yes, ' + 'status=yes, toolbar=yes, scrollbars=yes, resizable=yes');	
}



//*********************************************
// this function replaces all the occurances of "target" with 
// the "replacement" in the string "str"
//*********************************************
function strReplaceAll(str,target,replacement){
   if (str != null && target != null && replacement != null)
	{
		while (str.indexOf(target) > -1)
		{
			str = str.replace(target,replacement);
		}
	}
	return str;
}

//*********************************************
// this function trims the trailing spaces on both the sides
//*********************************************
function trim(TRIM_VALUE) {
	if(TRIM_VALUE.length < 1) {
		return"";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE == "") {
		return "";
	} else {
		return TRIM_VALUE;
	}
}//End Function

//*********************************************	
/*Function for Trimming spaces from right side of a String*/
//*********************************************
function RTrim(VALUE) {
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0) {
		return"";
	}
	var iTemp = v_length -1;
	while(iTemp > -1) {
	    if(VALUE.charAt(iTemp) == w_space) {
	    } else {
	    	strTemp = VALUE.substring(0,iTemp +1);
	     	break;
	    }
	    iTemp = iTemp-1;
	} //End While
	return strTemp;
} //End Function

//*********************************************		
/*Function for Trimming spaces from left side of a String*/
//*********************************************
function LTrim(VALUE) {
	var w_space = String.fromCharCode(32);
	if(v_length < 1) {
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";
	var iTemp = 0;
	while(iTemp < v_length) {
		if(VALUE.charAt(iTemp) == w_space) {
		} else {
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function


var noOfImagesToCreate=0;

/*
function processStateChange() {
    if (xmlHttp.readyState == 4) { // Complete
	      if (xmlHttp.status == 200) { // OK response
			var dumyStr = xmlHttp.responseText;
			dumyStr = strReplaceAll(dumyStr,'<EquationSource Format="TEX">',"");
			dumyStr = strReplaceAll(dumyStr,"</EquationSource>","");
			var resStr= dumyStr.substring(dumyStr.indexOf('$$'),dumyStr.lastIndexOf('$$'));
			var tempVar =resStr.substring(resStr.indexOf("$$")+2);
//			var resStr=tempVar.replace("$$","$$<br/><br/>");
			var splitArr = resStr.split("$$");
			var imageString='<table width="100%" border="0" cellpadding="8" cellspacing="0" valign="top" >';
			noOfImagesToCreate = splitArr.length;
			for(var i=0;i < noOfImagesToCreate;i++){
			imageString=imageString+'<tr valign="top">';
				if(trim(splitArr[i]).length>2){
					imageString = imageString +'<td width="23%"  style="border-left:1px solid #000;border-right:1px solid #000;border-bottom:1px solid #000;">'+splitArr[i]+'</td>';
					imageString = imageString +'<td width="37%" style="border-bottom:1px solid #000;">'+renderTeX(splitArr[i],i)+'</td>';
				}
			imageString=imageString+"</tr>";
			}
			imageString=imageString+ "</table>";
			if(imageString.indexOf("</td>")==-1){
				imageString = imageString.replace("</tr>","<td valign='middle' align='center' style='border:1px solid #000;height=170px;'>No Result Found.</td></tr>");
			}
				document.getElementById('eqn').innerHTML=imageString;
		 }
	}else{
	}

}
*/

// url for the latex service
var latexrender_server = "http://latexservice.mpstechnologies.com/latexservice.cgi";

//*********************************************
//*	
//*	Generates the link for the latex expression passed 
//*	which will be finally displayed as images
//*	
//*********************************************
function makeLink(latex_code) {
	var str = latex_code;
	if(trim(str).length>2){
	//Clean code
		str.replace(/<br \/>/gi,"");
		str.replace(/<br \/>/gi,"");
		latex_img = "<a href=\"javascript:void(0)\"><img src=\""+ latexrender_server +"?"+ str +"\" title=\""+ str +"\" alt=\""+ str +"\" align=\"middle\" border=\"0\"\" /></a>";
	return latex_img;
  }
return "";
}

//*********************************************
//*	
//*	used to render the latex expressions as there Equations Equivalents
//*	
//*********************************************
function renderTeX(strEquation, strId) {
	
	var resStr = makeLink(strEquation);
	if(resStr.length>0){
		return makeLink(strEquation);
	}
}
//*********************************************
//*	
//*	used to render the latex expressions as there Equations Equivalents
//*	
//*********************************************
function renderTeXNew(strEquation) {
	var resStr = makeLink(strEquation);
//	alert(resStr);
	if(resStr.length>0){
		return resStr;
	}
}


var colArr = new Array(100);
var colArrForArticles = new Array();
var yearStrng='';
var graphDataStr='';

function getAllResultsNew(arturi,searchTerm,tab){
//alert(trim(document.getElementById('table'+arturi).innerHTML));
	if(document.getElementById('table'+arturi) && trim(document.getElementById('table'+arturi).innerHTML)==''){
		var searchValue = searchTerm;
		var tempSearchTerm = encodeURI(searchValue);
		var ReqUrl = "latex.do?random="+Math.random();
		var queryStr = "searchInput="+tempSearchTerm+"&doi="+encodeURI(arturi)+"&tab="+tab;
		fetchArticleContent(ReqUrl,queryStr,arturi)
	}else{
		}

}

var divId ="";
var imgId="";
function fetchArticleContent(ReqUrl, Query_String,arturi) {

      try{

	  divId='table'+arturi;
	  imgId='loader'+arturi;
	    getXmlHTTPRequestObject();
		xmlHttp.onreadystatechange = processArticleContent;
		var queryString = Query_String;
	    xmlHttp.open("POST", ReqUrl, true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    xmlHttp.setRequestHeader("Content-length", queryString.length);
		xmlHttp.setRequestHeader("Connection", "close");
	    xmlHttp.send(queryString);
	}catch (e) {
//	    alert(e.message);
	}
	
  }

function processArticleContent() {
    if (xmlHttp.readyState == 4) { // Complete
      if (xmlHttp.status == 200) { // OK response
		  if(xmlHttp.responseText.indexOf("deripxe")!=-1){
			window.location.href="latexFacets.do";
		  }
				var resp = xmlHttp.responseText ;
				//alert(resp);
		try{
			if(resp!=''){
				document.getElementById(imgId).style.display = 'none'
				document.getElementById(divId).innerHTML=resp;
				document.getElementById(divId).sttyle.display=' none';
				toggleSlide(divId);
			}
		}catch(e){
//				alert(e.getMessage());
			}
      } else {
			//alert("Problem: " + xmlHttp.statusText);
      }
    }else{
		document.getElementById(imgId).style.display = 'block'
	}
  }

/*  
function processArticleContent() {
var loadingId="artloader"+divId
    if (xmlHttp.readyState == 4) { // Complete
      if (xmlHttp.status == 200) { // OK response
		  if(xmlHttp.responseText.indexOf("deripxe")!=-1){
			window.location.href="latexFacets.do";
		  }
				var resp = xmlHttp.responseText ;
			//	alert(resp);
	try{
			if(resp!=''){
				var completedataArr = parseXMLAndGenerateStruct(resp,'ALL');
				var imageString = processArticleResults(completedataArr);
				document.getElementById(divId).innerHTML=imageString;
				slidedown(divId);
				
				document.getElementById(loadingId).style.display = 'none'
				}else{
				}
				}catch(e){}
      } else {
			//alert("Problem: " + xmlHttp.statusText);
      }
    }else{
		document.getElementById(loadingId).style.display = 'block'
	}
  }
  */
//	used to keep track of which block of 
//	equations need to be expanded when clicked on All Articles
var counterForBlockOfEqn2Expand=0;

//*********************************************
//*	this method generates the final xml structure to be displayed
//*	
//*********************************************
function processArticleResults(completedataArr){

var completedataArrLen = completedataArr.length;

var imageString='';
		try{
		for(var j=0;j<completedataArrLen;j++){
				counterForBlockOfEqn2Expand = colArrForArticles.length;
				imageString=imageString+'<div class="all_rslt_btn"><input class="xpnd_btn" type="button" name="Submit2" value="View Latex Code" id="btnArticle'+counterForBlockOfEqn2Expand+'"+ onClick="changeStatusOfArticleInUpperDiv('+counterForBlockOfEqn2Expand+',this.id);"/></div>';
				var expandArticleArry = new Array();
				var equaArr =completedataArr[j][2];
				var distArr =completedataArr[j][6];
				//alert(distArr);
				var eqLen =equaArr.length;
				for(var x=0; x<eqLen;x++){
					//generateDistance(distArr[x]);
						imageString = imageString +'<div class="all_rslt_img"><div style="float:left;padding-right:8px;">'+generateDistance(distArr[x])+'</div><div class="all_rslt_img_div">'+renderTeX(strReplaceAll(strReplaceAll(strReplaceAll(equaArr[x],"$$",""),"<span>",""),"</span>",""),j)+'</div><div class="clear_float"></div></div>';
						imageString = imageString +"<div id=hideme1"+counterForBlockOfEqn2Expand+j+x+" style='display:none;' class=samp_srch_pan_all id=hideme"+j+x+" style='display:none;'><div><div id='eq_"+counterForBlockOfEqn2Expand+j+x+"' class=sam_srch_box>"+trim(strReplaceAll(equaArr[x],"$$",""))
						+"</div><div class='view_code'><table border=0 cellspacing=0 cellpadding=2><tr><td >&nbsp;&nbsp;<a href='javascript:void(0);'"+
						"onclick=copyLatex('eq_"+counterForBlockOfEqn2Expand+j+x+"');>Copy Latex </a></td></tr></table></div></div></div>"+	//onclick=copy(\""+encodeURI(strReplaceAll(strReplaceAll(strReplaceAll(strReplaceAll(trim(equaArr[x]),"$$",""),"\r\n",""),"<span>",""),"</span>",""))+"\");>Copy Latex </a></td></tr></table></div></div></div>"+
						"</div></div>";
						expandArticleArry[expandArticleArry.length]="hideme1"+counterForBlockOfEqn2Expand+j+x;

				}
				
				colArrForArticles[colArrForArticles.length]=expandArticleArry;
			}
		 }catch(e){
		 }
		if(imageString.indexOf("<div")==-1){
			var noResultStr = imageString.substring(0,imageString.indexOf("</div>")-1);
			imageString = noResultStr+'<div class="no_results">No Results Found.</div>';
		}
		return imageString;
}


function generateDistance(dist){
var distance = dist;
//distance=5;
var msg="";
var distString="";
for(var i=5;i>=1; i--){
if(dist==0)
	{
	msg = "EXACT";
	}else{
		if(dist==1){
			msg = dist+" change";
		}else{
			msg = dist+" changes";
		}
	}
if(i <= distance){
distString = distString+'<div style="border:#9ece68 1px solid; width:5px; height:5px; float:left; margin-right:3px"></div>'
}else{
distString = distString+'<div style="background:#9ece68; width:7px; height:7px; float:left; margin-right:3px"></div>'
}}
distString = distString+'<div style="clear:left;font-size:11px; color:#49abaa; align:left; padding-top:3px;">'+ msg+'</div>'
//alert(distString);
return distString
}

//*********************************************
//*	this method act as a factory for deciding how many results 
//*	need to be displayed and accordingly the referenced method 
//* behaves and populates the data structures accordingly
//*********************************************
function parseXMLAndGenerateStruct(xmlString,callfrom)
{
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(xmlString);
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(xmlString,"text/xml");
  }
  catch(e)
  {
  return;
  }
}
if(callfrom=='TWO'){
	parentArr = generateStructure(xmlDoc,'TWO');
}else if(callfrom=='ALL'){
	parentArr = generateStructure(xmlDoc,'ALL');
}
return parentArr; 
}


//*********************************************
//* this method generated the an array with the 
//* data fed from the XML received.
//*********************************************
function generateStructure(xmlDoc,limit){
//gives the jTitle Node
var jLen = xmlDoc.getElementsByTagName("jTitle").length;
var finalStr="";
var parentArr = new Array();
var eqnArr;
var distArr;
try{
var i = 0;
for(var k=0;k<jLen;k++){
var tempTitle="";
var loopUpperCondition=0;
//gives the length of the Article node in jTitle
var artLen = xmlDoc.getElementsByTagName("jTitle")[k].childNodes.length;
	for(var l=0;l<artLen;l++)
	{
	//comparing the Article node while traversing the xml
		if(xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].nodeName=='article'){
		//gives the length of the equa tag in <jTitle>/<article>/<equations>
			var equaLen = xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].childNodes[0].childNodes[0].nodeValue;
			//alert(equaLen);
			if(limit=='TWO'){
				if(equaLen>2){
					loopUpperCondition=2;
				}else{
					loopUpperCondition=1;
				}
			}else{
					loopUpperCondition=equaLen;
			}
					eqnArr=new Array();
					distArr=new Array();
					var childLen = 0
					//checking the jTitle inorder to check that its added only once in the final article array to avoid the duplicate results
					tempTitle=xmlDoc.getElementsByTagName("jTitle")[k].childNodes[0].childNodes[0].nodeValue;
						for(j=0;j<loopUpperCondition;j++){
						// adding the latex expressions to the array equation
						var latexEqn = xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].childNodes[5].childNodes[j].childNodes[0].childNodes[0].nodeValue;
						//gives the distance of the equation
						var latexDist= xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].childNodes[5].childNodes[j].childNodes[1].childNodes[0].nodeValue;
						//alert(latexDist);
						eqnArr[j]=latexEqn;
						distArr[j]=latexDist
						}
						//this order should be maintained inorder to process the results when clicking all the results for an article
						parentArr[i++]=new Array(tempTitle,//adding the jTitle
						xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].childNodes[2].childNodes[0].nodeValue,//adding the artTitle
						eqnArr,//adding the array of the equations
						xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].childNodes[3].childNodes[0].nodeValue,//adding the doi
						xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].childNodes[1].childNodes[0].nodeValue,//adding the Year
						xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].childNodes[6].childNodes[0].nodeValue,//adding arturi
						distArr // adding distance array
						);
		}
	}
}
}catch(e){
//alert(e.message);
}
return parentArr;
}

var i=0;  
function changeStatus(){
var len = colArr.length;
	for(i=0;i<len;i++){
		if(colArr[i]!=undefined){
			var obj = document.getElementById(colArr[i]);
			var objBtn = document.getElementById("btn");
			var statusMsg= objBtn.innerHTML;
			var status = 'view';

			if(statusMsg.indexOf('View')!=-1){
				status = 'view';
			}else if(statusMsg.indexOf('Hide')!=-1){
				status = 'hide';
			}
			if(obj){
				if(status=='view' ){
					obj.style.display="block"
					document.getElementById(obj.id+'_a').innerHTML="Hide Latex Code";
					//objBtn.innerHTML="Hide Latex Code"
				}else{
					obj.style.display="none"
					document.getElementById(obj.id+'_a').innerHTML="View Latex Code";
					//objBtn.innerHTML="View Latex Code";
				}
			}
		}
	}
	if (status=='view')
	{
		objBtn.innerHTML="Hide Latex Code";
	}else if (status=='hide')
	{
		objBtn.innerHTML="View Latex Code";
	}
}



function changeStatusOfArticleInUpperDiv(indexOfArr,objId){

var allArtileArr = colArrForArticles[indexOfArr];
//alert(indexOfArr+" --> " +allArtileArr);
var len = allArtileArr.length;
	for(i=0;i<len;i++){
//	alert(colArrForArticles[i]);
		if(allArtileArr[i]!=undefined){
			var obj = document.getElementById(allArtileArr[i]);
			var objBtn = document.getElementById(objId);
			if(obj){
				if(obj.style.display=="none"){
					obj.style.display="block"
					objBtn.value="Hide Latex Code"
				}else{
					obj.style.display="none"
					objBtn.value="View Latex Code";
				}
			}
		}
	}
}

function changeStatusOfId(divId,btnId){
var obj = document.getElementById(divId);
//var objbtn = document.getElementById(btnId);
var objbtn = btnId;
var objimg = document.getElementById("im"+btnId);
var styleStatus = document.getElementById(divId).style.display;

if(obj){
if(styleStatus=='none'){
	obj.style.display='block';
	objbtn.innerHTML="Hide Latex Code"
	//objbtn.style.display='block';
	//objimg.style.display='block';
}else{
	obj.style.display='none';
	objbtn.innerHTML="View Latex Code";
	//objbtn.style.display='none';	
	//objimg.style.display='none';
}

}
}



function toggleStatus(divId,imgId,spanId,eqncount,doi,searchTerm,tab){
	//alert(divId+" -- "+imgId+" -- "+spanId+" -- "+eqncount);
	var obj = document.getElementById(divId);
	//var objbtn = document.getElementById(btnId);
	var objbtn = document.getElementById(spanId);
	var objimg = document.getElementById(imgId);
	var styleStatus = document.getElementById(divId).style.display;
		getAllResultsNew(doi,searchTerm,tab);
	if(obj){
	if(styleStatus=='none'){
		obj.style.display='block';
		//slidedown(divId);
		objbtn.innerHTML="fewer";
		objimg.src="images/up_arw.gif"

	}else{
		obj.style.display='none';
		//slideup(divId);
		objbtn.innerHTML="all <strong style='font-size:15px'>"+eqncount+"</strong>"
		objimg.src="images/dwn_arw.gif";
		//objbtn.style.display='none';	
		//objimg.style.display='none';
	}

	}
}


function copy(text) {
var decodedText = decodeURI(text)
  if (window.clipboardData) {
    window.clipboardData.setData("Text",trim(strReplaceAll(strReplaceAll(trim(decodedText),"\n",""),"\t","")));
  }
}

function copyLatex(objId) {
var decodedText = document.getElementById(objId).innerHTML;
decodedText = strReplaceAll(strReplaceAll(strReplaceAll(decodedText,'&amp;','&'),'&lt;','<'),'&gt;','>')
  if (window.clipboardData) {
      window.clipboardData.setData("Text",trim(strReplaceAll(strReplaceAll(strReplaceAll(strReplaceAll(strReplaceAll(trim(decodedText),"\n",""),"\t",""),"<SPAN>",""),"</SPAN>",""),"&nbsp;"," "))); 
  }else{
	var clipboarddiv=document.getElementById('clipBoardDiv');
	if(clipboarddiv==null)
	{
	   clipboarddiv=document.createElement('div');
           clipboarddiv.setAttribute("name", "clipBoardDiv");
	   clipboarddiv.setAttribute("id", "clipBoardDiv");
	   document.body.appendChild(clipboarddiv);
	}
	var clipTerm = trim(strReplaceAll(strReplaceAll(strReplaceAll(strReplaceAll(strReplaceAll(strReplaceAll(strReplaceAll(strReplaceAll(strReplaceAll(trim(decodedText),"\n",""),"\t",""),"<span>",""),"</span>",""),"&nbsp;"," "),"+","%2B"),"&","%26"),"<","%3C"),">","%3E"));
	clipboarddiv.innerHTML='<embed src="scripts/clipboard.swf" FlashVars="clipboard='+clipTerm+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
  }
  return false;
}

/*
function captureEvent(e){
    var unicode=e.keyCode? e.keyCode : e.charCode;
      if(e.type=='keypress'){
	if(unicode==13){
  		if(searchSubmit()==true){
			return true;
		}else{
			return false;
		}
    }
   }
}
*/
function captureEvent(e){
    var unicode=e.keyCode? e.keyCode : e.charCode;
	if(e.type=='keypress'){
		if(unicode=='13'){
			searchSubmit()
			return false;
		}
    }
}

function captureEvent(e,source){
    var unicode=e.keyCode? e.keyCode : e.charCode;
	if(e.type=='keypress'){
		if(unicode=='13'){
			searchSubmit(source)
			return false;
		}
    }
}
function getSource(obj){
  var searchValue = obj.value;

	  var ReqUrl = "latexSourceCount.do?random="+Math.random();
	  var queryStr = "searchInput="+trim(searchValue);
	  fetchSource(ReqUrl,queryStr);
}

//*********************************************
//* This method act as a factory for XMLHttpRequest object
//* 
//*********************************************
function getXmlHTTPRequestObject(){
   if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		isIE = true;
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
} 



function parseXML(xmlString)
{
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(xmlString);
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(xmlString,"text/xml");
  }
  catch(e)
  {
  //alert(e.message);
  return;
  }
}
try{

	var x=xmlDoc.documentElement.childNodes;

	var len=0;
	if(xmlDoc.getElementsByTagName("article")){
		len = xmlDoc.getElementsByTagName("article").length;
	}
	var finalStr="";
	var prevTitle=""
	var tempTitle=" ";
	var count=0;
	var jLen = xmlDoc.getElementsByTagName("jTitle").length;
	for(var k=0;k<jLen;k++){
	var artLen = xmlDoc.getElementsByTagName("jTitle")[k].childNodes.length;
		for(var l=0;l<artLen;l++)
		{
			if(xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].nodeName=='article'){
				tempTitle=xmlDoc.getElementsByTagName("jTitle")[k].childNodes[0].childNodes[0].nodeValue;
				if(prevTitle != tempTitle){
					if(trim(prevTitle).length>0 && trim(tempTitle).length>0){
							finalStr = finalStr+'<div class="l_jrnl_num">'+count+'</div><div class="l_jrnl_title"><a href="javascript:procesResultsForJournalSearch(\''+tempTitle+'\');">'+tempTitle+'</a></div>';
							count = parseInt(xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].childNodes[0].childNodes[0].nodeValue);
						}else{
							finalStr = finalStr+'<div class="l_jrnl_title"><a href="javascript:procesResultsForJournalSearch(\''+tempTitle+'\');">'+tempTitle +'</a></div>';
							count = parseInt(xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].childNodes[0].childNodes[0].nodeValue);
						}
				}else{
						count =eval(parseInt(count) + parseInt(xmlDoc.getElementsByTagName("jTitle")[k].childNodes[l].childNodes[0].childNodes[0].nodeValue));
				}
				prevTitle = tempTitle;
			}
		}
	}
	if(count!=0){
		finalStr =finalStr+'<div class="l_jrnl_num">'+count+'</div>';
	}
}catch(e){
	return "";
}
//alert(finalStr);
	return finalStr; 
}



function procesResultsForJournalSearch(journalID,year,action,tab,source){

var url =action;
var searchTerm = document.getElementById('searchInput').value;
var splitTerm = searchTerm.split('"');

if((splitTerm.length > 4 && (url == 'searchTitle.do' && (trim(splitTerm[2].toLowerCase())=='and' ||  trim(splitTerm[2].toLowerCase())=='or')))&& trim(splitTerm[0]) == ''  && (trim(splitTerm[4]) == '' || trim(splitTerm[4].toLowerCase()) == 'and' ||  (trim(splitTerm[4].toLowerCase())=='or'))){
			url = "searchBoolTitle.do";	
}else{
		url = action;
}


if(trim(year)==""){
year="";
}

var sType = document.getElementById('searchType').value;
var queryString='';
colArr=new Array();
	if(!validateForm()){
		return false;
	}else{
			var sTerm = document.getElementById('searchInput').value;
			sTerm = encodeURI(sTerm);
			sTerm = strReplaceAll(sTerm,"+","%2B");
			sTerm = strReplaceAll(sTerm,"&","%26");
			sTerm = strReplaceAll(sTerm,"$","%24");
			sTerm = strReplaceAll(sTerm,"#","%23");
		if(sType!=''){
			queryString="?searchInput="+encodeURI(sTerm);
		}else{
			queryString="?searchInput="+sTerm;
		}
		if(journalID!=''){
			var journalID = encodeURI(journalID);
			journalID = strReplaceAll(journalID,"+","%2B");
			journalID = strReplaceAll(journalID,"&","%26");
			journalID = strReplaceAll(journalID,"$","%24");
			journalID = strReplaceAll(journalID,"#","%23");

			queryString=queryString+"&journalID="+encodeURI(journalID);
//			queryString=queryString+"&journalID="+journalID;
		}
		if(year!=''){
			queryString=queryString+"&pubYear="+year;
		}
		if(sType != '' ){
			queryString=queryString+"&searchType="+sType;
		}

		if(tab != '' ){
			queryString=queryString+"&stype="+tab;
		}
		var status = ""
		if(tab=='similar'){
			status="&st=true";
		}
		var src="";
		var searchSubject=""
		var searchJournal=""
		if(source!='' && source=='lite'){
			searchSubject = document.getElementById("searchSubject").value;
			searchSubject = strReplaceAll(searchSubject,"#","%23");
			searchSubject = strReplaceAll(searchSubject,"+","%2B");
			searchSubject = strReplaceAll(searchSubject,"&","%26");
			searchSubject = strReplaceAll(searchSubject,"$","%24");
			searchSubject = "&searchSubject="+searchSubject;
			searchJournal = document.getElementById("searchJournal").value;
			searchJournal = strReplaceAll(searchJournal,"#","%23");
			searchJournal = strReplaceAll(searchJournal,"+","%2B");
			searchJournal = strReplaceAll(searchJournal,"&","%26");
			searchJournal = strReplaceAll(searchJournal,"$","%24");
			searchJournal = "&searchJournal="+searchJournal;
			src="&src=lite";
		}
		window.location.href=url+queryString+searchSubject+searchJournal+status+src;
	}
}


function procesResultsForYearSearch(year,jtitle,action,tab,source){
//var url='latexYearSearch.do';
//if(action == 'searchTitle.do' )
//	action= 'latexArticleTitleSearch.do'
var url =action;

var searchTerm = document.getElementById('searchInput').value;
var splitTerm = searchTerm.split('"');
if((splitTerm.length > 4 && (url == 'searchTitle.do' && (trim(splitTerm[2].toLowerCase())=='and' ||  trim(splitTerm[2].toLowerCase())=='or')))&& trim(splitTerm[0]) == ''  && (trim(splitTerm[4]) == '' || trim(splitTerm[4].toLowerCase()) == 'and' ||  (trim(splitTerm[4].toLowerCase())=='or'))){
			url = "searchBoolTitle.do";	
}else{
		url = action;
}


if(trim(jtitle)==''){
	jtitle="";
}
var sType = document.getElementById('searchType').value;
var queryString='';
colArr=new Array();
	if(!validateForm()){
		return false;
	}else{
		var sTerm = document.getElementById('searchInput').value;
			sTerm = encodeURI(sTerm);
			sTerm = strReplaceAll(sTerm,"+","%2B");
			sTerm = strReplaceAll(sTerm,"&","%26");
			sTerm = strReplaceAll(sTerm,"$","%24");
			sTerm = strReplaceAll(sTerm,"#","%23");

		if(sType!=''){
			queryString="?searchInput="+encodeURI(sTerm);
		}else{
			queryString="?searchInput="+sTerm;
		}
		if(year!='' && year!='null'){
			queryString=queryString+"&pubYear="+year;
		}
		if(jtitle!='' && jtitle!='null'){
			jtitle = encodeURI(jtitle);
			jtitle = strReplaceAll(jtitle,"+","%2B");
			jtitle = strReplaceAll(jtitle,"&","%26;");
			jtitle = strReplaceAll(jtitle,"$","%24");
			jtitle = strReplaceAll(jtitle,"#","%23");

			queryString=queryString+"&journalID="+encodeURI(jtitle);
//			queryString=queryString+"&journalID="+jtitle;
		}
		if(sType != '' ){
			queryString=queryString+"&searchType="+sType;
		}
		if(tab != '' ){
			queryString=queryString+"&stype="+tab;
		}
		
		var status = ""
		if(tab=='similar'){
			status="&st=true";
		}
		var src="";
		var searchSubject=""
		var searchJournal=""
		if(source!='' && source=='lite'){
			searchSubject = document.getElementById("searchSubject").value;
			searchSubject = strReplaceAll(searchSubject,"#","%23");
			searchSubject = strReplaceAll(searchSubject,"+","%2B");
			searchSubject = strReplaceAll(searchSubject,"&","%26");
			searchSubject = strReplaceAll(searchSubject,"$","%24");
			searchSubject = "&searchSubject="+searchSubject;
			searchJournal = document.getElementById("searchJournal").value;
			searchJournal = strReplaceAll(searchJournal,"#","%23");
			searchJournal = strReplaceAll(searchJournal,"+","%2B");
			searchJournal = strReplaceAll(searchJournal,"&","%26");
			searchJournal = strReplaceAll(searchJournal,"$","%24");
			searchJournal = "&searchJournal="+searchJournal; 
			src="&src=lite";
		}
		window.location.href=url+queryString+searchSubject+searchJournal+status+src;
	}
}


//*********************************************
//* This method removes the parameters from 
//* the search criteria during the fecet based search 
//*********************************************
function removeSearchCriteria(criteriaToAdd,requestFrom,action,tab,source){
var url='';
var queryString='';
var journalId = document.getElementById('journalID').value;
var pubYear = document.getElementById('pubYear').value;
	if( requestFrom=='arttitle'){
		queryString="";
		queryString = "?searchInput="+encodeURI(encodeURI(document.getElementById('searchInput').value))

			var searchTerm = document.getElementById('searchInput').value;
			var splitTerm = searchTerm.split('"');
			if((splitTerm.length > 4) && ((trim(splitTerm[2].toLowerCase())=='and') ||  (trim(splitTerm[2].toLowerCase())=='or')) 
			&& trim(splitTerm[0]) == ''  && (trim(splitTerm[4]) == '' || trim(splitTerm[4].toLowerCase()) == 'and' ||  (trim(splitTerm[4].toLowerCase())=='or'))){
						url = "searchBoolTitle.do";	
			}else{
					url = 'searchTitle.do'
			}
		var journalId = document.getElementById('journalID').value;
		var pubYear = document.getElementById('pubYear').value;
		queryString = queryString+"&searchType=title";
		if(action=='jtitle' && criteriaToAdd.indexOf('journalID')!= -1){
			if(pubYear !='')
			queryString = queryString+"&pubYear="+pubYear;
		}else if(action=='year' && criteriaToAdd.indexOf('pubYear')!= -1){
			if(journalId!=''){
				queryString = queryString+"&journalID="+encodeURI(encodeURI(journalId));
			}
		}else if(criteriaToAdd!=null && criteriaToAdd!=''){
			queryString = queryString+criteriaToAdd;
		}
	}else if(requestFrom=='jtitle'){
		queryString = "?searchInput="+encodeURI(document.getElementById('searchInput').value);
//		url='latexYearSearch.do';
		if(pubYear!=''){
			queryString=queryString+"&pubYear="+encodeURI(pubYear);
		}
		if(tab != '' ){
			queryString=queryString+"&stype="+tab;
		}
		var status = ""
		if(tab=='similar'){
			status="&st=true";
		}
		queryString=queryString+status;
		document.latexForm.pubYear.value=encodeURI(pubYear);
	}else if(requestFrom=='year'){
		queryString = "?searchInput="+encodeURI(document.getElementById('searchInput').value);
//		url='latexJournalSearch.do';
		if(journalId!=''){
			queryString=queryString+"&journalID="+encodeURI(journalId);
		}
		if(tab != '' ){
			queryString=queryString+"&stype="+tab;
		}
		var status = ""
		if(tab=='similar'){
			status="&st=true";
		}
		queryString=queryString+status;
		document.latexForm.journalID.value=encodeURI(journalId);
	}else{
		url='latexFacets.do';
	}
	loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
//		document.latexForm.searchInput.value=document.getElementById('searchInput').value;
//		document.latexForm.searchInput.value=searchTerm;
//		document.latexForm.action=url;
//		document.latexForm.submit();
		var src="";
		var searchSubject=""
		var searchJournal=""
		if(source!='' && source=='lite'){
			searchSubject = document.getElementById("searchSubject").value;
			searchSubject = strReplaceAll(searchSubject,"#","%23");
			searchSubject = strReplaceAll(searchSubject,"+","%2B");
			searchSubject = strReplaceAll(searchSubject,"&","%26");
			searchSubject = strReplaceAll(searchSubject,"$","%24");
			searchSubject = "&searchSubject="+searchSubject;
			searchJournal = document.getElementById("searchJournal").value;
			searchJournal = strReplaceAll(searchJournal,"#","%23");
			searchJournal = strReplaceAll(searchJournal,"+","%2B");
			searchJournal = strReplaceAll(searchJournal,"&","%26");
			searchJournal = strReplaceAll(searchJournal,"$","%24");
			searchJournal = "&searchJournal="+searchJournal;
			src="&src=lite";
		}
		window.location.href=url+queryString+searchSubject+searchJournal+src;
}



function generateGraphData(yearString){
var allArr = yearString.split(",").sort();
var yearArr = new Array();
var countArr = new Array();
var yearArrLen= allArr.length;
for(i=0;i<yearArrLen;i++){
	if(trim(allArr[i]).length > 0){
		if(countArr[allArr[i]] == null){
			yearArr[yearArr.length]=allArr[i];	
		}
		var count = 0;
		if(countArr[allArr[i]] != null){
			count = countArr[allArr[i]];
		}
		countArr[allArr[i]]=count+1;
	}
}
var yearStr="|";
var dataStr="";
var len= yearArr.length;
var ctr=0;
for(i=0;i<len;i++){
	yearStr = yearStr+yearArr[i]+"|";
	ctr=countArr[yearArr[i]]*17;
	dataStr = dataStr+ctr+",";
	
	
}
if(dataStr.substring(dataStr.length-1,dataStr.length)==","){
		dataStr=dataStr.substring(0,dataStr.length-1);
	}
var graphDataArr = new Array();
graphDataArr[0]=yearStr;
graphDataArr[1]=dataStr;

return graphDataArr;
}


function setPageSize(obj){
	var selectedVal = document.getElementById(obj).value;
}


//*********************************************
//* This method change the page size during 
//* the normal search
//*********************************************
function changePageSize(obj, actionType){
	colArr=new Array();
	var objVal = obj.value;
	var sType = document.getElementById('searchType').value;
//	var searchValue = obj;
//  	var ReqUrl = "latexFacets.do";
//	var queryStr = "searchInput="+encodeURI(document.getElementById('searchInput').value);
//	document.latexForm.action=ReqUrl;
//	document.latexForm.searchInput.value=document.getElementById('searchInput').value;
//	document.latexForm.method="POST";
//	document.latexForm.submit();
colArr=new Array();
		loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
		var ReqUrl = actionType;
			document.latexForm.action=ReqUrl;
//			document.latexForm.pageLimits.value=document.latexForm.pageSize.value;
//			document.latexForm.searchInput.value=document.getElementById('searchInput').value;
//			document.latexForm.method="GET";
//			document.latexForm.submit();
ReqUrl=ReqUrl+"?searchInput="+encodeURI(document.getElementById('searchInput').value)+"&pageSize="+objVal;
if(document.latexForm.sortingorder.value!=''){
	ReqUrl = ReqUrl+"&sortingorder="+document.latexForm.sortingorder.value;
}

if(sType!=''){
	ReqUrl = ReqUrl+"&searchType="+sType;
}
window.location.href=ReqUrl;

	
}


//*********************************************
//* This method change the page size during 
//* the facet search
//*********************************************
function changePageSizeForJournalAndYear(obj,jTitle,year,searchSubject,searchJournal,callFrom,tab,source){
	loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
	var objVal = obj.value;
	var searchValue = obj;
	var ReqUrl = facetActionFactory(callFrom)
	var searchTerm = document.getElementById('searchInput').value;
	var splitTerm = searchTerm.split('"');
	if((splitTerm.length > 4 && (ReqUrl == 'searchTitle.do' && (trim(splitTerm[2].toLowerCase())=='and' ||  trim(splitTerm[2].toLowerCase())=='or')))&& trim(splitTerm[0]) == ''  && (trim(splitTerm[4]) == '' || trim(splitTerm[4].toLowerCase()) == 'and' ||  (trim(splitTerm[4].toLowerCase())=='or'))){
		ReqUrl = "searchBoolTitle.do";	
	}
  	var sType = document.getElementById('searchType').value
	var queryStr = "searchInput="+encodeURI(document.getElementById('searchInput').value);

//	document.latexForm.searchInput.value=document.getElementById('searchInput').value;
//	document.latexForm.pubYear.value=year;
//  	document.latexForm.journalTitle.value=encodeURI(jTitle);
 // 	document.latexForm.journalID.value=encodeURI(jTitle);
//	document.latexForm.method="POST";
//	document.latexForm.action=ReqUrl;
//	document.latexForm.submit();
colArr=new Array();
if(ReqUrl == 'searchTitle.do' || ReqUrl == 'searchBoolTitle.do'){
		var sTerm = document.getElementById('searchInput').value;
			sTerm = encodeURI(sTerm);
			sTerm = strReplaceAll(sTerm,"+","%2B");
			sTerm = strReplaceAll(sTerm,"&","%26");
			sTerm = strReplaceAll(sTerm,"$","%24");
			sTerm = strReplaceAll(sTerm,"#","%23");
		ReqUrl=ReqUrl+"?searchInput="+encodeURI(sTerm);
}else{
	ReqUrl=ReqUrl+"?searchInput="+encodeURI(document.getElementById('searchInput').value);
}
if(jTitle!='' && jTitle!='null'){
	ReqUrl = ReqUrl+"&journalID="+encodeURI(encodeURI(jTitle));
}

if(year!='' && year!='null'){
	ReqUrl = ReqUrl+"&pubYear="+year;
}
if(document.latexForm.sortingorder.value!=''){
	ReqUrl = ReqUrl+"&sortingorder="+document.latexForm.sortingorder.value;
}
if(sType!=''){
	ReqUrl = ReqUrl+"&searchType="+sType;
}
if(tab!=''){
	ReqUrl = ReqUrl+"&stype="+tab;
}
ReqUrl = ReqUrl+"&pageSize="+objVal

var similarTabStatus = '';
if(document.getElementById('similar')){
	similarTabStatus = document.getElementById('similar').style.display;
}
var status='';
if(similarTabStatus=='block'){
	status="&st=true";
}else{
	status="&st=false";
}
if(searchSubject != '' && searchSubject != 'null'){
		searchSubject = strReplaceAll(searchSubject,"#","%23");
		searchSubject = strReplaceAll(searchSubject,"+","%2B");
		searchSubject = strReplaceAll(searchSubject,"&","%26");
		searchSubject = strReplaceAll(searchSubject,"$","%24");
		ReqUrl = ReqUrl+"&searchSubject="+searchSubject;
}
if(searchJournal != '' && searchJournal != 'null'){
	searchJournal = strReplaceAll(searchJournal,"#","%23");
	searchJournal = strReplaceAll(searchJournal,"+","%2B");
	searchJournal = strReplaceAll(searchJournal,"&","%26");
	searchJournal = strReplaceAll(searchJournal,"$","%24");
	ReqUrl = ReqUrl+"&searchJournal="+searchJournal;
}
var src="";
//var searchSubject = ""
//var searchJournal = ""
if(source !='' && source=='lite'){
/*searchSubject = document.getElementById("searchSubject").value;
searchSubject = strReplaceAll(searchSubject,"#","%23");
searchSubject = strReplaceAll(searchSubject,"+","%2B");
searchSubject = strReplaceAll(searchSubject,"&","%26");
searchSubject = strReplaceAll(searchSubject,"$","%24");
searchSubject = "&searchSubject="+searchSubject;

searchJournal = document.getElementById("searchJournal").value;
searchJournal = strReplaceAll(searchJournal,"#","%23");
searchJournal = strReplaceAll(searchJournal,"+","%2B");
searchJournal = strReplaceAll(searchJournal,"&","%26");
searchJournal = strReplaceAll(searchJournal,"$","%24");
searchJournal = "&searchJournal="+searchJournal; */
	src="&src=lite";
}
window.location.href=ReqUrl+status+src;

}


//*********************************************
//* This method maintains the sorting order when the 
//* user is not using any of the facets
//*********************************************
function setSortingOrder(obj,actionType){
	colArr=new Array();
	loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
	var objVal = obj.value;
//  	var ReqUrl = "latexFacets.do";
	var ReqUrl = actionType;
	
	var searchTerm = document.getElementById('searchInput').value;
	var splitTerm = searchTerm.split('"');
	if((splitTerm.length > 4 && (ReqUrl == 'searchTitle.do' && (trim(splitTerm[2].toLowerCase())=='and' ||  trim(splitTerm[2].toLowerCase())=='or')))&& trim(splitTerm[0]) == ''  && (trim(splitTerm[4]) == '' || trim(splitTerm[4].toLowerCase()) == 'and' ||  (trim(splitTerm[4].toLowerCase())=='or'))){
				url = "searchBoolTitle.do";	
	}else{
			url = actionType;
	}
	
  	//	document.latexForm.searchInput.value=document.getElementById('searchInput').value;
//  alert(document.latexForm.sortingorder.options[document.latexForm.sortingorder.selectedIndex].value);
	//document.latexForm.sortingorder.value = document.latexForm.sortingorder.options[document.latexForm.sortingorder.selectedIndex].value;
  	//document.latexForm.submit();
	ReqUrl = ReqUrl+"?searchInput="+encodeURI(document.getElementById('searchInput').value);
	if(document.latexForm.sortingorder.value!=''){
		ReqUrl = ReqUrl+"&sortingorder="+document.latexForm.sortingorder.value;
	}
	if(document.latexForm.pageSize.value!=''){
		ReqUrl = ReqUrl+"&pageSize="+document.latexForm.pageSize.value;
	}
	var sType = document.getElementById('searchType').value
	if(sType!=''){
		ReqUrl = ReqUrl+"&searchType="+sType
	}
	document.location.href=ReqUrl;
  	
}



//*********************************************
//* This method act as a factory to decide which action to call 
//* depending on the facet type selected
//*********************************************
function facetActionFactory(facetType){
var ReqUrl = "";
	/*if(facetType=='jtitle'){
		ReqUrl = "latexJournalSearch.do";
	}else if(facetType =='year'){
		ReqUrl = "latexYearSearch.do";
	}else if(facetType =='arttitle'){
		ReqUrl = "searchTitle.do?";
	}*/

	if(facetType =='arttitle'){
		ReqUrl = "searchTitle.do";
	}else{
		ReqUrl = "latexFacets.do";
	}
	return ReqUrl;
}


//*********************************************
//* This method maintains the sorting order during 
//* the facet search
//*********************************************

function setSortingOrderForFacet(obj,jTitle,year,searchSubject,searchJournal,callFrom,tab,source){
	colArr=new Array();
	loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
	var objVal = obj.value;
  	var ReqUrl = facetActionFactory(callFrom);
  	var searchTerm = document.getElementById('searchInput').value;
	var splitTerm = searchTerm.split('"');
	if((splitTerm.length > 4 && (ReqUrl == 'searchTitle.do' && (trim(splitTerm[2].toLowerCase())=='and' ||  trim(splitTerm[2].toLowerCase())=='or')))&& trim(splitTerm[0]) == ''  && (trim(splitTerm[4]) == '' || trim(splitTerm[4].toLowerCase()) == 'and' ||  (trim(splitTerm[4].toLowerCase())=='or'))){
				ReqUrl = "searchBoolTitle.do";	
	}
	var sType = document.getElementById('searchType').value;
 /* 	document.latexForm.searchInput.value=document.getElementById('searchInput').value;
	document.latexForm.pubYear.value=year;
	//document.latexForm.journalTitle.value=encodeURI(jTitle);
	document.latexForm.journalID.value=encodeURI(jTitle);
	document.latexForm.sortingorder.value = document.latexForm.sortingorder.options[document.latexForm.sortingorder.selectedIndex].value;
	document.latexForm.action=ReqUrl;
  	document.latexForm.submit();*/
if(ReqUrl == 'searchTitle.do' || ReqUrl == 'searchBoolTitle.do'){
  		var sTerm = encodeURI(document.getElementById('searchInput').value);
  			sTerm = strReplaceAll(sTerm,"+","%2B");
			sTerm = strReplaceAll(sTerm,"&","%26");
			sTerm = strReplaceAll(sTerm,"$","%24");
			sTerm = strReplaceAll(sTerm,"#","%23");
		ReqUrl = ReqUrl+"?searchInput="+encodeURI(sTerm);
}else{
ReqUrl = ReqUrl+"?searchInput="+encodeURI(document.getElementById('searchInput').value);
}		
	if(jTitle!='' && jTitle!='null'){
		ReqUrl = ReqUrl+"&journalID="+encodeURI(encodeURI(jTitle));
	}
	if(year!='' && year!='null'){
		ReqUrl = ReqUrl+"&pubYear="+year;
	}
	if(document.latexForm.sortingorder.value!=''){
		ReqUrl = ReqUrl+"&sortingorder="+document.latexForm.sortingorder.value;
	}
	if(document.latexForm.pageSize.value!=''){
		ReqUrl = ReqUrl+"&pageSize="+document.latexForm.pageSize.value;
	}
	if(sType!=''){
		ReqUrl = ReqUrl+"&searchType="+sType;
	}
	if(tab!=''){
		ReqUrl = ReqUrl+"&stype="+tab;
	}
	
	var similarTabStatus = '';
	if(document.getElementById('similar')){
		similarTabStatus = document.getElementById('similar').style.display;
	}
	var status='';
	if(similarTabStatus=='block'){
		status="&st=true";
	}else{
		status="&st=false";
	}
	if(searchSubject != '' && searchSubject != 'null'){
		searchSubject = strReplaceAll(searchSubject,"#","%23");
		searchSubject = strReplaceAll(searchSubject,"+","%2B");
		searchSubject = strReplaceAll(searchSubject,"&","%26");
		searchSubject = strReplaceAll(searchSubject,"$","%24");
		ReqUrl = ReqUrl+"&searchSubject="+searchSubject;
	}
	if(searchJournal != '' && searchJournal != 'null'){
		searchJournal = strReplaceAll(searchJournal,"#","%23");
		searchJournal = strReplaceAll(searchJournal,"+","%2B");
		searchJournal = strReplaceAll(searchJournal,"&","%26");
		searchJournal = strReplaceAll(searchJournal,"$","%24");
		ReqUrl = ReqUrl+"&searchJournal="+searchJournal;
	}
	var src="";
	//var searchSubject =""
	//var searchJournal =""
	if(source !='' && source=='lite'){
	/*searchSubject = document.getElementById("searchSubject").value;
searchSubject = strReplaceAll(searchSubject,"#","%23");
searchSubject = strReplaceAll(searchSubject,"+","%2B");
searchSubject = strReplaceAll(searchSubject,"&","%26");
searchSubject = strReplaceAll(searchSubject,"$","%24");
searchSubject = "&searchSubject="+searchSubject;
searchJournal = document.getElementById("searchJournal").value;
searchJournal = strReplaceAll(searchJournal,"#","%23");
searchJournal = strReplaceAll(searchJournal,"+","%2B");
searchJournal = strReplaceAll(searchJournal,"&","%26");
searchJournal = strReplaceAll(searchJournal,"$","%24");
searchJournal = "&searchJournal="+searchJournal;*/
	
		src="&src=lite";
	}
document.location.href=ReqUrl+status+src;
  	
}


//*********************************************
//* this method is used to make the sample search terms 
//* on the Home Page clickable
//*********************************************
function clickSampleSearchTerms(searchTerm){
	loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
	document.latexForm.searchInput.value = decodeURI(searchTerm);
	var ReqUrl = "latexFacets.do?searchInput="+searchTerm;
	document.location.href=ReqUrl;

//	document.latexForm.submit();

}

//*********************************************
//* this method is used to set the parameters  
//* used for pagination
//*********************************************
/*function setPagingParam(pageSubmitAction,searchInput, pageNumber, pageSize, journalTitle, pubYear, facetPageCount, sortingorder){
	var ReqUrl = pageSubmitAction;
	searchInput = searchInput.replace(/&quot;/g, "\"");
	document.latexForm.searchInput.value=unescape(decodeURI(searchInput));
//	document.latexForm.searchInput.value=document.getElementById('searchInput').value
	document.latexForm.pubYear.value=pubYear;
  	document.latexForm.journalTitle.value=encodeURI(journalTitle);

  	document.latexForm.pageNumber.value=pageNumber;
  	document.latexForm.pageSize.value=pageSize;
  	document.latexForm.facetPageCount.value=facetPageCount;
  	document.latexForm.sortingorder.value=sortingorder;
  	
	document.latexForm.method="POST";
	document.latexForm.action=ReqUrl;
	document.latexForm.submit();
	colArr=new Array();
}*/


function setPagingParam(pageSubmitAction,searchInput, pageNumber, pageSize, journalTitle, pubYear, facetPageCount, sortingorder,searchSubject,searchJournal,tab,source){
	loader(document.getElementById('codeHeader'), document.getElementById('codeHeader').parentNode.parentNode, getChildren(document.getElementById('codeHeader')),true);
	var ReqUrl = pageSubmitAction;
	searchInput = searchInput.replace(/&quot;/g, "\"");
	var sType = document.getElementById('searchType').value;
/*	document.latexForm.searchInput.value=unescape(decodeURI(searchInput));
//	document.latexForm.searchInput.value=document.getElementById('searchInput').value
	document.latexForm.pubYear.value=pubYear;
// 	document.latexForm.journalTitle.value=encodeURI(journalTitle);
	document.latexForm.journalID.value=encodeURI(journalTitle);
  	document.latexForm.pageNumber.value=pageNumber;
  	document.latexForm.pageSize.value=pageSize;
//  	document.latexForm.facetPageCount.value=facetPageCount;
  	document.latexForm.sortingorder.value=sortingorder;
  	
	document.latexForm.method="GET";
	document.latexForm.action=ReqUrl;
	document.latexForm.submit();
*/
var splitTerm = searchInput.split('"');
if((splitTerm.length > 4 && (ReqUrl == 'searchTitle.do' && (trim(splitTerm[2].toLowerCase())=='and' ||  trim(splitTerm[2].toLowerCase())=='or')))&& trim(splitTerm[0]) == ''  && (trim(splitTerm[4]) == '' || trim(splitTerm[4].toLowerCase()) == 'and' ||  (trim(splitTerm[4].toLowerCase())=='or'))){
				ReqUrl = "searchBoolTitle.do";	
	}
colArr=new Array();

  	searchInput = document.getElementById("searchInput").value;
	searchInput = encodeURI(searchInput);
	searchInput = strReplaceAll(searchInput,"#","%23");
	searchInput = strReplaceAll(searchInput,"+","%2B");
	searchInput = strReplaceAll(searchInput,"&","%26");
	searchInput = strReplaceAll(searchInput,"$","%24");
	if(ReqUrl == 'searchTitle.do' || ReqUrl == 'searchBoolTitle.do'){
		ReqUrl = ReqUrl+"?searchInput="+encodeURI(searchInput);
	}else{
		ReqUrl = ReqUrl+"?searchInput="+searchInput;
	}
//ReqUrl = ReqUrl+"?searchInput="+encodeURI(unescape(decodeURI(searchInput)));
if(pageNumber!=''){
	ReqUrl = ReqUrl+"&pageNumber="+pageNumber;
}
if(pageSize!=''){
	ReqUrl = ReqUrl+"&pageSize="+pageSize;
}
if(sortingorder!=''){
		ReqUrl = ReqUrl+"&sortingorder="+sortingorder;
	}
if(journalTitle!=''){
			journalTitle = strReplaceAll(journalTitle,"+","%2B");
			journalTitle = strReplaceAll(journalTitle,"&","%26");
			journalTitle = strReplaceAll(journalTitle,"$","%24");
			journalTitle = strReplaceAll(journalTitle,"#","%23");

	ReqUrl = ReqUrl+"&journalID="+encodeURI(encodeURI(journalTitle));
}

if(pubYear!=''){
	ReqUrl = ReqUrl+"&pubYear="+pubYear;
}

	if(sType!=''){
		ReqUrl = ReqUrl+"&searchType="+sType;
	}
	if(tab!=''){
		ReqUrl = ReqUrl+"&stype="+tab;
	}
var similarTabStatus = '';
if(document.getElementById('similar')){
	similarTabStatus = document.getElementById('similar').style.display;
}
var status='';
if(similarTabStatus=='block'){
	status="&st=true";
}else{
	status="&st=false";
}
if(searchSubject != '' && searchSubject != 'null'){
		searchSubject = strReplaceAll(searchSubject,"#","%23");
		searchSubject = strReplaceAll(searchSubject,"+","%2B");
		searchSubject = strReplaceAll(searchSubject,"&","%26");
		searchSubject = strReplaceAll(searchSubject,"$","%24");
		ReqUrl = ReqUrl+"&searchSubject="+searchSubject;
}
if(searchJournal != '' && searchJournal != 'null'){
	searchJournal = strReplaceAll(searchJournal,"#","%23");
	searchJournal = strReplaceAll(searchJournal,"+","%2B");
	searchJournal = strReplaceAll(searchJournal,"&","%26");
	searchJournal = strReplaceAll(searchJournal,"$","%24");
	ReqUrl = ReqUrl+"&searchJournal="+searchJournal;
}
var src="";
//var searchSubject=""
//var searchJournal=""
if(source!='' && source=='lite'){
/*searchSubject = document.getElementById("searchSubject").value;
searchSubject = strReplaceAll(searchSubject,"#","%23");
searchSubject = strReplaceAll(searchSubject,"+","%2B");
searchSubject = strReplaceAll(searchSubject,"&","%26");
searchSubject = strReplaceAll(searchSubject,"$","%24");
searchSubject = "&searchSubject="+searchSubject;
searchJournal = document.getElementById("searchJournal").value;
searchJournal = strReplaceAll(searchJournal,"#","%23");
searchJournal = strReplaceAll(searchJournal,"+","%2B");
searchJournal = strReplaceAll(searchJournal,"&","%26");
searchJournal = strReplaceAll(searchJournal,"$","%24");
	searchJournal = "&searchJournal="+searchJournal;*/
	
	src="&src=lite";
}
window.location.href=ReqUrl+status+src;



	
}



// this method is used to hide the message from the status bar on the browser
function hideStatusBarMsg(){
	window.status=''
	return true
}
if (document.layers){
	document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT | Event.MOUSEDOWN | Event.MOUSEUP)
}

document.onmousedown=hideStatusBarMsg
document.onmouseup=hideStatusBarMsg
document.onmouseover=hideStatusBarMsg
document.onmouseout=hideStatusBarMsg


// this script keeps track of ctrl+s key press event 
// and sets the focus on to the seearhc box

/*var isCtrl = false;
document.onkeyup=function(e){
	if(event.keyCode == 17) isCtrl=false;
}
document.onkeydown=function(e){
	if(event.keyCode == 17) isCtrl=true;
	if(event.keyCode == 83 && isCtrl == true) {
		//run code for CTRL+S -- ie, save!
		document.getElementById('searchInput').focus();
	}
}*/



//------------------- LOADER----------
function loader(cObj, cHolder, cContent, show) {
	cBlur = document.getElementById("codeBlur");
	cAbs = document.getElementById("codeAbs");
	document.getElementById('codeContent').style.display='block';
	setheight();	
	if (show==true) {
		//hideSelects(true);	
		cBlur.style.display = "block";
		
		cObj.innerHTML="";
		cBlur.onclick = "";
		
		cHolder.style.display="none";
		cAbs.style.display="block";
		cAbs.style.position="absolute";
		
		//cHHeight=cHolder.style.height;
		cHWidth=cHolder.style.width;
		//cCHeight=cContent.style.height;
		cCWidth=cContent.style.width;
		//cAbs.style.width="100";
		//cAbs.style.padding="20px";
		cAbs.style.paddingBottom="10px";
		cHolder.style.height="100%";
		cHolder.style.width="100px";
		//cContent.style.width="30%";
		//cContent.style.padding="20px";
		cContent.style.height="100%";
		
		objh = parseFloat(cHolder.style.height)/2;
		objw = parseFloat(cHolder.style.width)/2;
		if (document.all) {
			var topDistance = Math.floor(Math.round((getScreenSize()/2)+getScrollXY()))-100;
			if(topDistance<280){
				topDistance=280;
			}
			//cAbs.style.top = Math.floor(Math.round((getScreenSize()/2)+getScrollXY())-objh)-100+'px';
			cAbs.style.top = topDistance+'px';
			cAbs.style.left = Math.floor(Math.round((document.documentElement.offsetWidth/2)+document.documentElement.scrollLeft)-objw)+'px';
		}  else {
			var szScrollTop=document.documentElement.scrollTop;
			var szScrollLeft=document.documentElement.scrollLeft;
			if (szScrollTop==0) { szScrollTop = document.body.scrollTop; }
			if (szScrollLeft=="undefined") { szScrollLeft = document.body.scrollleft; }
			//cAbs.style.top = Math.floor(Math.round((window.innerHeight/2)+szScrollTop)-objh)-100+'px';
			//cAbs.style.top = 280+'px';
			var topDistance = Math.floor(Math.round((getScreenSize()/2)+getScrollXY()))-100;
			if(topDistance<280){
				topDistance=280;
			}
			cAbs.style.top = topDistance+'px';
			cAbs.style.left = Math.floor(Math.round((window.innerWidth/2)+szScrollLeft)-objw)+'px';
		}
	cAbs.innerHTML=cHolder.innerHTML;
/*	if (document.all) {
		cAbs.childNodes[0].childNodes[0].onclick=function () { Blur(cObj, cHolder, cContent, false); }
	} else {
		cAbs.childNodes[1].childNodes[1].onclick=function () { Blur(cObj, cHolder, cContent, false); }
	}*/
	}
}

	
function setheight() {
	//cBlur.style.height = document.body.scrollHeight+"px";
	var screenHeight = document.body.scrollHeight;
	try{
		if(screenHeight<getScreenSize()){
			screenHeight = getScreenSize();
		}
		cBlur.style.height = screenHeight+"px";
	}catch(e){
		cBlur.style.height = document.body.scrollHeight+"px";
	}
}

function getChildren(obj) {
	if (obj.parentNode.childNodes[1].className=="codeContent") { 
		return obj.parentNode.childNodes[1]; /*because IE does it like this... IE counts its children only.. like its supposed to be*/
	} else {
		return obj.parentNode.childNodes[3]; /*and because FF does it like this... Firefox counts children of childrens*/
	}
}

function selectNode (node) { 
   var selection, range, doc, win; 
   if ((doc = node.ownerDocument) && (win = doc.defaultView) && typeof win.getSelection != 'undefined' && typeof doc.createRange != 'undefined' && (selection = window.getSelection()) && typeof selection.removeAllRanges != 'undefined') { 
     range = doc.createRange(); 
     range.selectNode(node); 
     selection.removeAllRanges(); 
     selection.addRange(range); 
   }  else if (document.body && typeof document.body.createTextRange != 'undefined' && (range = document.body.createTextRange())) { 
     range.moveToElementText(node); 
     range.select(); 
   } 

}


function getScreenSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
//  window.alert( 'Width = ' + myWidth );Math.floor(Math.round((myHeight/2)+getScrollXY()))-100
//  window.alert( 'Height = ' + (Math.floor(Math.round((myHeight/2)+getScrollXY()))-100));
  return myHeight;
}


function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return scrOfY;
}

function getEquationCount() {
      try{
		ReqUrl = "latexCount.do?random="+Math.random();	  
	    getXmlHTTPRequestObject();
		xmlHttp.onreadystatechange=processStateChange;
	    xmlHttp.open("POST", ReqUrl, true);
	    xmlHttp.send(null);
	    
	}catch (e) {
	   // alert(e.message);
	}
	
  }
function processStateChange() {
    if (xmlHttp.readyState == 4) { // Complete
	      if (xmlHttp.status == 200) { // OK response
			var countStr = xmlHttp.responseText;
				document.getElementById('count').innerHTML=addCommas(countStr);
		  }
	}else{
		document.getElementById('count').innerHTML='<img src="images/countLoader.gif" border="0"/>';
	}

}

// used to format number as #,###,###
function addCommas( strValue ) {
  var objRegExp  = new RegExp('(-?[0-9]+)([0-9]{3})'); 
    while(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '$1,$2');
    }
  return strValue;
}



function setSearchType(searchTerm, sType,source){
	//var sType = document.getElementById('searchType').value
		if(sType=='' && trim(searchTerm)!=''){
			searchTerm = strReplaceAll(searchTerm,"#","%23");
			searchTerm = strReplaceAll(searchTerm,"+","%2B");
			searchTerm = strReplaceAll(searchTerm,"&","%26");
			searchTerm = strReplaceAll(searchTerm,"$","%24");
			srchSbmt(searchTerm,source);
			return true;
		}else if(sType != '' && sType=='title'){
		
			var ReqUrl ="";
			var queryStr ="";
			var splitTerm = decodeURI(searchTerm).split('"');
//			alert(searchTerm);

			searchTerm = strReplaceAll(searchTerm,"#","%23");
			searchTerm = strReplaceAll(searchTerm,"+","%2B");
			searchTerm = strReplaceAll(searchTerm,"&","%26");
			searchTerm = strReplaceAll(searchTerm,"$","%24");

/*			searchTerm = searchTerm.replace("+","%2B");
			searchTerm = searchTerm.replace("&","%26");
			searchTerm = searchTerm.replace("$","%24");*/
//			alert(searchTerm);
			if((splitTerm.length > 4) && ((trim(splitTerm[2].toLowerCase())=='and') ||  (trim(splitTerm[2].toLowerCase())=='or')) 
			&& trim(splitTerm[0]) == ''  && (trim(splitTerm[4]) == '' || trim(splitTerm[4].toLowerCase()) == 'and' ||  (trim(splitTerm[4].toLowerCase())=='or'))){
					ReqUrl = "searchBoolTitle.do?";	
					queryStr = "searchInput="+encodeURI(searchTerm)+"&searchType="+sType;
			}else{
				ReqUrl = "searchTitle.do?";
				queryStr = "searchInput="+encodeURI(searchTerm)+"&searchType="+sType;
			}

			var src="";
			var searchSubject = ""
			var searchJournal = ""
			if(source!='' && source=='lite'){
			
			searchSubject = document.getElementById("searchSubject").value;
			searchSubject = strReplaceAll(searchSubject,"#","%23");
			searchSubject = strReplaceAll(searchSubject,"+","%2B");
			searchSubject = strReplaceAll(searchSubject,"&","%26");
			searchSubject = strReplaceAll(searchSubject,"$","%24");
			searchSubject = "&searchSubject="+searchSubject;
			searchJournal = document.getElementById("searchJournal").value;
			searchJournal = strReplaceAll(searchJournal,"#","%23");
			searchJournal = strReplaceAll(searchJournal,"+","%2B");
			searchJournal = strReplaceAll(searchJournal,"&","%26");
			searchJournal = strReplaceAll(searchJournal,"$","%24");
			searchJournal = "&searchJournal="+searchJournal;
			
				src="&src=lite";
			}
			colArr=new Array();
			window.location.href=ReqUrl+queryStr+searchSubject+searchJournal+src;
			return true;
			
		}else if(sType != '' && sType=='doi'){
			 var ReqUrl = "searchTitle.do?";
			 var queryStr = "searchInput="+searchTerm+"&searchType="+sType;
			 colArr=new Array();
			var src="";
			if(source!='' && source=='lite'){
				src="&src=lite";
			}
			 window.location.href=ReqUrl+queryStr+src;
			 return true;
		}else{
			return false;
		}
}


//==================================================
function getExactTabStatus(jId,year,exactCount){
var searchTerm = document.getElementById('searchInput').value;
			searchTerm = strReplaceAll(searchTerm,"#","%23");
			searchTerm = strReplaceAll(searchTerm,"+","%2B");
			searchTerm = strReplaceAll(searchTerm,"&","%26");
			searchTerm = strReplaceAll(searchTerm,"$","%24");
	var url ="tabStatus.do?random="+Math.random()+"&searchInput="+searchTerm;

	if(jId!=''){
		url= url+'&journalID='+jId;
	}

	if(year!=''){
		url= url+'&pubYear='+year;
	}
	url= url+'&stype=exact';
	tabStatusForExact(url);
}
function tabStatusForExact(ReqUrl,exactCount) {
     try{
			getXmlHTTPRequestObject();
			xmlHttp.onreadystatechange=function () {processStateExact(exactCount);};
			xmlHttp.open("POST", ReqUrl, true);
			xmlHttp.send(null);
		}catch (e) {
//			alert(e.message);
		}
	
  }
function processStateExact(exactCount) {
    if (xmlHttp.readyState == 4) { // Complete
      if (xmlHttp.status == 200) { // OK response
				var resp = eval(xmlHttp.responseText) ;
				var length = resp.length;
				var responce ="";
				var counter=0;
				for(var i=0;i<resp.length;i++){
					var obj = resp[i];
					
					var exactTabStatus;
					var exactResultCount;

					var similarTabStatus;
					var similarResultCount;

					var tabStatus="";
					var resultCount=""
					for(var key in obj){
						counter++;
						var attrName = key;
						var attrValue = obj[key];
						if(attrName=='similar'){
							similarTabStatus=attrValue;
						}else if(attrName=='similarcount'){
							similarResultCount=attrValue;
						}
						if(attrName=='exact'){
							exactTabStatus=attrValue;
						}else if(attrName=='exactcount'){
							exactResultCount=attrValue;
						}
					}
				}
		}else{
		}
		if(exactTabStatus=='available' && exactResultCount!=0 && exactResultCount!=exactCount){
			document.getElementById('exact').style.display='block' ;
			document.getElementById('sLoader').innerHTML="";
			document.getElementById('exactcount').innerHTML=exactResultCount;
			document.getElementById('sLoader').style.display="none";
		}
		else{
			setTimeout("hidediv('sLoader')", 4000);
		}
      }else{
 		  document.getElementById('sLoader').style.display="block";
		document.getElementById('sLoader').innerHTML="<img src='images/countLoader.gif' border='0'/>&nbsp;&nbsp; Searching for Exact results&nbsp;&hellip;";
	}
  }

function getTabStatus(jId,year,exactCount){
var searchTerm = document.getElementById('searchInput').value;
			searchTerm = strReplaceAll(searchTerm,"#","%23");
			searchTerm = strReplaceAll(searchTerm,"+","%2B");
			searchTerm = strReplaceAll(searchTerm,"&","%26");
			searchTerm = strReplaceAll(searchTerm,"$","%24");
	var url ="tabStatus.do?random="+Math.random()+"&searchInput="+searchTerm;

	if(jId!=''){
		url= url+'&journalID='+jId;
	}

	if(year!=''){
		url= url+'&pubYear='+year;
	}
	url= url+'&stype=similar';
	tabStatus(url);
}



function tabStatus(ReqUrl,exactCount) {
     try{
			getXmlHTTPRequestObject();
			xmlHttp.onreadystatechange=function () {processState(exactCount);};
			xmlHttp.open("POST", ReqUrl, true);
			xmlHttp.send(null);
		}catch (e) {
//			alert(e.message);
		}
	
  }

function processState(exactCount) {
    if (xmlHttp.readyState == 4) { // Complete
      if (xmlHttp.status == 200) { // OK response
				var resp = eval(xmlHttp.responseText) ;
				var length = resp.length;
				var responce ="";
				var counter=0;
				for(var i=0;i<resp.length;i++){
					var obj = resp[i];
					
					var exactTabStatus;
					var exactResultCount;

					var similarTabStatus;
					var similarResultCount;

					var tabStatus="";
					var resultCount=""
					for(var key in obj){
						counter++;
						var attrName = key;
						var attrValue = obj[key];
						if(attrName=='similar'){
							similarTabStatus=attrValue;
						}else if(attrName=='similarcount'){
							similarResultCount=attrValue;
						}
						if(attrName=='exact'){
							exactTabStatus=attrValue;
						}else if(attrName=='exactcount'){
							exactResultCount=attrValue;
						}
					}
				}
		}else{
		}
		if(similarTabStatus=='available' && similarResultCount!=0 && similarResultCount!=exactCount){
		//	alert("similarResultCount" + similarResultCount + " exactCount :"+ exactCount);
			document.getElementById('similar').style.display='block' ;
		  //document.getElementById('similar').className='tab_unselected' ;
			document.getElementById('sLoader').innerHTML="";
			document.getElementById('similarcount').innerHTML=similarResultCount;
			document.getElementById('sLoader').style.display="none";
		}else{
			document.getElementById('sLoader').innerHTML="&nbsp;&nbsp; No similar results&nbsp;&hellip;";
//			document.getElementById('similar').style.display='none' ;
			setTimeout("hidediv('sLoader')", 4000);
		}
      }else{
		  //document.getElementById('similar').style.display='block' ;
		  //document.getElementById('similar').className='tab_unselected1' ;
 		  document.getElementById('sLoader').style.display="block";
		document.getElementById('sLoader').innerHTML="<img src='images/countLoader.gif' border='0'/>&nbsp;&nbsp; Searching for Similar results&nbsp;&hellip;";
	}
  }
  
  function hidediv(arg) {
    document.getElementById(arg).style.display = 'none';
}
function ShowMapper(params){
                var result = window.open('<%=Page.ResolveClientUrl("~/ReportViewer.aspx")%>'+'?'+params, '', "dialogWidth:900px; dialogHeight:530px; center:yes; scroll:yes");
                return false;
            }
            
function showAdvanceSearch(){

		var objlinkAdv = document.getElementById("linkAdv");
		var objAdvSearch = document.getElementById("AdvSearch");
		var statusMsg = objlinkAdv.innerHTML;
		var status = 'view';
			
			if(statusMsg.indexOf('View')!=-1){
			status = 'view';
			}else if(statusMsg.indexOf('Hide')!=-1){
			status = 'hide';
			} 
			
		if (status=='view')
		{
			objlinkAdv.innerHTML="Hide Advanced Search";
			document.getElementById("searchSubject").value ="";
			document.getElementById("searchJournal").value ="";
			objAdvSearch.style.display="block";
		}else if (status=='hide')
		{
		    objlinkAdv.innerHTML="View Advanced Search";
		    document.getElementById("searchSubject").value ="";
			document.getElementById("searchJournal").value ="";
			objAdvSearch.style.display="none";
		}
}

function enableDisableAdvSearch(){
var combo1 = document.getElementById("searchType");
var val = combo1.options[combo1.selectedIndex].value;
var objlinkAdv = document.getElementById("linkAdv");
var advBoxes = document.getElementById("AdvSearch");
	if (val == 'doi'){
	objlinkAdv.style.display="none";
	advBoxes.style.display="none";
	objlinkAdv.innerHTML="View Advanced Search";
	}
	else{
	objlinkAdv.style.display="block";
	objlinkAdv.innerHTML="View Advanced Search";
	//document.getElementById("searchSubject").value ="";
	//document.getElementById("searchJournal").value ="";
	if(val == 'title' && (document.getElementById("searchSubject").value != "" || document.getElementById("searchJournal").value != ""))
		{
		objlinkAdv.innerHTML="Hide Advanced Search";
		advBoxes.style.display="block";
		}
	}
}

function showPopUp(doi)
            {             
               var result = window.showModalDialog('map.htm?DOI='+doi,'',"dialogWidth:425px; dialogHeight:450px; center:yes");
               return false;
            }