//Global Variables
var xmlobj=null; // This is for Loading Data Function
var httpRequest = false; //Initially setting the Http Request to false 
var nStoryNodes = 0; // No.of story nodes
var aTabs = new Array("basicsearch","advancedsearch"); //This array is for show and hide Basic Search and Advance Search
var	nMasterNode = 0; // No.of Master nodes
var aMasterChildNodes=new Array(); // Master Child Nodes
var aMasterChildSibNodes=new Array(); // Master Child Sibling Nodes
var aMasterChldIdTxt=new Array(); // Master Child Nodes Titles
var masterTagLabels=new Array(); // Master Child Nodes Labels
var searchStatus="document.getElementById('status')"; // Status of the Records
var imgID;
var dataIsNull="N/A"; // If no data is retrieved then we are making that value as "N/A"
var presentPage = 1; //This is for Pagination
var monthNo=new Object(); // Creating an Object of monthNo
monthNo.jan = '01';monthNo.feb = '02';monthNo.mar = '03';monthNo.apr = '04';monthNo.may = '05';monthNo.jun = '06';monthNo.jul = '07';monthNo.aug = '08';monthNo.sep = '09';monthNo.oct = '10';monthNo.nov = '11';monthNo.dec = '12';
var searchButtClicked;

// Configuring XML Function
function configureXML()
{
	makeRequest('/web/UK/casestudies/assets/xml/casestudies_CDC_latest.xml');	
}

// This is sendRequest Function
function sendRequest(docs){
    if(xmlobj!=null&&xmlobj.readyState!=0&&xmlobj.readyState!=4){
        xmlobj.abort();
    }
    try{
        xmlobj=new XMLHttpRequest();
    }
    catch(e){
        try{
            xmlobj=new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e){
            // Ajax is not supported by the browser
            xmlobj=null;
            return false;
        }
    }
    xmlobj.onreadystatechange=requestStatus;
    xmlobj.open('GET',docs,true);
    xmlobj.send(null);
}

// check request status
function requestStatus(){
    if(xmlobj.readyState==4){		
        if(xmlobj.status==200){			
            lodingData();
        }
        else{
            alert('Failed to get response :'+ xmlobj.statusText);
        }
    }				
}

//This is for loading data 
function lodingData()
{
	var progressTimer;
	if(searchButtClicked=='basicsearch')
	{
		eval(searchStatus).innerHTML="<img src='/web/UK/casestudies/assets/images/loading.gif' border='0' />&nbsp;Loading data......";
		progressTimer = setTimeout('keyWordSearch()',10000);
	}else if(searchButtClicked=='advancedsearch')
	{	
		eval(searchStatus).innerHTML="<img src='/web/UK/casestudies/assets/images/loading.gif' border='0' />&nbsp;Loading data......";
		progressTimer = setTimeout('searchData()',10000);
	}
}

//Making a request to the xml
function makeRequest(url) 
{
      httpRequest = false;
      if (window.XMLHttpRequest) { // For Mozilla, Safari,... Browser's
         httpRequest = new XMLHttpRequest();
         if (httpRequest.overrideMimeType) {
            httpRequest.overrideMimeType('text/xml');
         }
      } else if (window.ActiveXObject) { // For IE Browser
         try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!httpRequest) {
         alert('Cannot Create XMLHTTP Instance');
         return false;
      }
      httpRequest.onreadystatechange = successStories; //Calling a function successStories()
      httpRequest.open('GET', url, true);
      httpRequest.send(null);
}

//If the request is success then successStories() function is called
function successStories() 
{
  if(httpRequest.readyState == 0) { eval(searchStatus).innerHTML = "<img src='/web/UK/casestudies/assets/images/loading.gif' border='0' />&nbsp;Sending Request..."; }
  if(httpRequest.readyState == 1) { eval(searchStatus).innerHTML = "<img src='/web/UK/casestudies/assets/images/loading.gif' border='0' />&nbsp;Loading Response..."; }
  if(httpRequest.readyState == 2) { eval(searchStatus).innerHTML = "<img src='/web/UK/casestudies/assets/images/loading.gif' border='0' />&nbsp;Response Loaded..."; }
  if(httpRequest.readyState == 3) { eval(searchStatus).innerHTML = "<img src='/web/UK/casestudies/assets/images/loading.gif' border='0' />&nbsp;Response Ready..."; }
  if(httpRequest.readyState == 4) 
	{
	 if (httpRequest.status == 200) 
		{
			nStoryNodes = httpRequest.responseXML.getElementsByTagName('story');
			nMasterNode = httpRequest.responseXML.getElementsByTagName("mastersearch");
			//document.basicSearchForm.keywords.focus();
			searchKeywords(); //Master Keywords
			//topNewStories(7); //no.of success stories to display
			doCombination();
			eval(searchStatus).innerHTML="";
		}else
		{
			alert('There was a problem with the XML request.');
		}
	}
}

function topNewStories(noofstories)
{
	// loop from story node, not from the mastersearch node
	var j=nStoryNodes.length;i=0;
	
	var aLatestDates=new Array();
	for(var iNode=0; iNode<nStoryNodes.length;iNode++)
	{
		var dates=nStoryNodes[iNode].getAttribute("date");
		if(dates!=""){
			var tempDT=dates.split("-");
			tempDT[1]=tempDT[1].toLowerCase();
			yyyy=tempDT[2];
			mm=eval("monthNo."+tempDT[1]);
			dd=tempDT[0];
			aLatestDates[aLatestDates.length]=[Number(yyyy+mm+dd),iNode];
		}
	}

	//Sort Dates to retrieve the latest new success stories
	aLatestDates.sort();

	for(a=aLatestDates.length-1;a>=0;a--)
	{
		var sName,sTitle;
		// Here aLatestDates[a][1] Retrieve's the Child Node No.
		sName=nStoryNodes[aLatestDates[a][1]].getAttribute("company"); //retrieving company name
		sTitle=nStoryNodes[aLatestDates[a][1]].getElementsByTagName("title")[0].getAttribute("txt"); //retrieving txt from title node

		if(i<noofstories)
			{
				addNewStoryRow(sName,sTitle,aLatestDates[a][1],noofstories);
				i++;
			}else
			{
				break;
			}
	}
}

function addNewStoryRow(name,title,nodeNo,noofstories) 
{
	imgID="";
	var storyNodeObj=storyObject(nodeNo);
	resultTable=document.getElementById("top_new_success_stories");
	var rowLength=resultTable.rows.length;
	tr1=resultTable.insertRow(Number(rowLength));
	tr1.setAttribute("title","Click here to view more details");
	tr1.style.cursor="pointer";

	var aValues=new Array(nodeNo);
	//Returns Company Name and stores into an Array
	aValues[0]=storyNodeObj.company; 
	//Returns Title and stores into an Array
	aValues[1]="<div><div style='float:right; padding-top:2px;'><a href='javascript:void(0);' title='Minimize' style='padding:0px'><img src='/web/UK/casestudies/assets/images/details_hide.gif' id='hideResult"+nodeNo+"' border='0'></a></div><div style='font-family:Arial;font-size:11px;'>"+storyNodeObj.title+"</div></div>";
	//Returns Date and stores into an Array
	//aValues[2]=storyNodeObj.date;
	for(x=0;x<2;x++){
		trCells=tr1.insertCell(x);

		trCells.onclick=function(){toggleDetails(this.parentNode.rowIndex,"top_new_success_stories","hideResult"+nodeNo+"");};
		trCells.setAttribute("class","content");
		trCells.setAttribute("className","content");

		trCells.setAttribute("scope","col");
		trCells.setAttribute("valign","top");
		trCells.innerHTML=aValues[x];

	}
	totalSuccessStory(nodeNo); 
} //Function Close

/* -------------------- */
//This Function is for Flipping the Show Image to Hide Image and Vice-Versa
function flip(imageID) {
     var img = document.getElementById(imageID);
     if (img.src.indexOf('hide_gray.gif') > -1) {
         img.src = 'show_gray.gif';
		 img.title='Maximize';
     } else {
         img.src = 'hide_gray.gif'
		 img.title='Minimize';
     }
}

function flipImgOfResult(imageID) {
     var img = document.getElementById(imageID);
     if (img.src.indexOf('/web/UK/casestudies/assets/images/details_hide.gif') > -1) {
         img.src = '/web/UK/casestudies/assets/images/details_show.gif';
		 img.title='Maximize';
     } else {
         img.src = '/web/UK/casestudies/assets/images/details_hide.gif'
		 img.title='Minimize';
     }
}

// Show | Hide 
function switchDiv(obj) {
	var divLayer = document.getElementById(obj);
	if ( divLayer.style.display != "none" ) {
		divLayer.style.display = 'none';
	}
	else {
		divLayer.style.display ='';
	}
}

//Basic Search & Advance Search Tabs
function basicAdvSearchTab(tab_selected)
	{
		if(tab_selected=="advancesearch_tab")
		{ 
			//hide_all_topfivestories('top_new_success_stories');
			document.successstory.products.value="";
			for(var sFields=0;sFields<aMasterChildNodes.length;sFields++)
			{
				document.successstory.elements[aMasterChildNodes[sFields]].value="Select";
			}
			eval(searchStatus).innerHTML="";
			hide_results();
			window.scrollTo(0,5000);
		}
		else
		{
			//hide_all_topfivestories('top_new_success_stories');
			document.basicSearchForm.keywords.value="";
			eval(searchStatus).innerHTML="";
			hide_results();
			window.scrollTo(0,5000);
		}	
	} 

//Search Keywords
function searchKeywords()
{
	deleteRows()
	var i=0;var n=0;
	for (var j=0;j<nMasterNode[0].childNodes.length;j++)
	{
		if (nMasterNode[0].childNodes[j].nodeType != 1) continue;
		aMasterChildNodes[i] = nMasterNode[0].childNodes[j].nodeName; //Master Child Node Names form elements
		aMasterChildSibNodes[i]=nMasterNode[0].childNodes[j].childNodes[j].nodeName; // Master Child Sibling Node Names
		var tagMain=eval(nMasterNode)[0].getElementsByTagName(aMasterChildNodes[i]); //Here <OrganizationSize>,<Technology>,<BusinessSolution>,<Industry>
		masterTagLabels[i]=tagMain[0].getAttribute("label");

		var tagChld=tagMain[0].getElementsByTagName(aMasterChildSibNodes[i]); //<OrganizationSizeChld>,<TechnologyChld>,<BusinessSolutionChld>,<IndustryChld>

			var rowsLength=document.getElementById("searchKeywords").rows.length;

		var cellIndex;
		if(i==0){
			titleRow=document.getElementById("searchKeywords").insertRow(Number(rowsLength));
			controlRow=document.getElementById("searchKeywords").insertRow(Number(rowsLength+1));
			titleCell0=titleRow.insertCell(0);
			titleCell0=titleRow.insertCell(1);
			titleCell0.innerHTML="&nbsp;";
			controlCell0=controlRow.insertCell(0);
			controlCell0=controlRow.insertCell(1);
			controlCell0.innerHTML="&nbsp;";

			cellIndexNo=0;
		}
		else if(i>0 && i%2!=0){
			titleRow=document.getElementById("searchKeywords").insertRow(Number(rowsLength));
			controlRow=document.getElementById("searchKeywords").insertRow(Number(rowsLength+1));
			titleCell0=titleRow.insertCell(0);
			titleCell0=titleRow.insertCell(1);
			titleCell0.innerHTML="&nbsp;";
			controlCell0=controlRow.insertCell(0);
			controlCell0=controlRow.insertCell(1);
			controlCell0.innerHTML="&nbsp;";
			cellIndexNo=0;
		}
		else{
			cellIndexNo=1;
		}

		rowsLength=document.getElementById("searchKeywords").rows.length;
		document.getElementById("searchKeywords").rows[Number(rowsLength-2)].cells[Number(cellIndexNo)].innerHTML="<h2 style='color:#336666'>"+tagMain[0].getAttribute("label")+"</h2>"
		document.getElementById("searchKeywords").rows[Number(rowsLength-2)].cells[Number(cellIndexNo)].style.width="225px";
		selectHeight="multiple size=5";

		if(i==0){
			selectHeight="size=1";
		}

		document.getElementById("searchKeywords").rows[rowsLength-1].cells[cellIndexNo].innerHTML="<select name="+aMasterChildNodes[i]+"  "+selectHeight+" id='selectWidth'><option value='Select' style='background-color:#cccccc;width:200px' selected><--Select "+tagMain[0].getAttribute("label")+"--></option></select><br><br>"			

		for(var iNode=0; iNode<eval(tagChld).length;iNode++)
		{
			var sTxt=tagChld[iNode].getAttribute("txt");
			var sId=tagChld[iNode].getAttribute("id");
			
			var objControll=aMasterChildNodes[i];
			var length=document.successstory[objControll].options.length;
			document.successstory[objControll].options.length=length;
			document.successstory[objControll].options[document.successstory[objControll].options.length]=new Option(sTxt,sId);
		}
		i++;
	}
}

function searchData(){
var brecordsnotmatched=true;

	deleteRows();

	var selectedCombi="";
	var selectedCombiID="";	
	for(b=0;b<aMasterChildNodes.length;b++){
		if(document.successstory[aMasterChildNodes[b]].value!="Select"){
			selectedCombi+=b+1+" ";
			selectedCombiID+=document.successstory[aMasterChildNodes[b]].value;
		}
	}
	if(document.successstory.products.value.length>0){
		selectedCombi+=aMasterChildNodes.length+1+" ";
	}

	for(z=0;z<combinationLength.length;z++){
		if(combinationLength[z]==selectedCombi){//loop through all the cominations
			for(story=0;story<nStoryNodes.length;story++){
				var tmpSelectedCombi=selectedCombi.split(" ");
				var bRecordsMatched=true;
				var matchedProducts=true;						
				var bValueFromControll=false;						
				for(comb=0;comb<tmpSelectedCombi.length-1;comb++){
					if((aMasterChildNodes.length+1)!=Number(tmpSelectedCombi[comb])){
						var valueFromXML=nStoryNodes[story].getElementsByTagName("searchfields")[0].getAttribute(aMasterChildNodes[Number(tmpSelectedCombi[comb])-1]);
						valueFromXML=","+valueFromXML+",";
						for(var optionsLength=0;optionsLength<=Number(document.successstory[aMasterChildNodes[Number(tmpSelectedCombi[comb])-1]].options.length-1);optionsLength++){
							var tmpOption=document.successstory[aMasterChildNodes[Number(tmpSelectedCombi[comb])-1]].options[optionsLength]
							if(tmpOption.selected){
								var tempOptionValue="/,"+tmpOption.value+",/"
								valueFromXML.search(eval(tempOptionValue))!=-1?bValueFromControll=true:bValueFromControll=false
								bValueFromControll?optionsLength=Number(document.successstory[aMasterChildNodes[Number(tmpSelectedCombi[comb])-1]].options.length):"";
							}
						}
						bValueFromControll?bRecordsMatched=true:bRecordsMatched=false
					}else{//Products search.
						var valueFromXML,valueFromControll,splitValueControl;
						valueFromXML=(nStoryNodes[story].getElementsByTagName("searchfields")[0].getAttribute("product")).toUpperCase();
						valueFromControll=(document.successstory.products.value).toUpperCase();

						if(valueFromControll.indexOf(',')!=-1){ //if the values are separated by commas
							splitValueControl=valueFromControll.split(',');
							for(var m=0;m<splitValueControl.length;m++)
							{
								valueFromXML.indexOf(((splitValueControl[m]).toUpperCase()).replace(/^\s*(.*?)\s*$/,"$1"))!=-1?matchedProducts=true:matchedProducts=false;
							}//for loop
						}else{
							valueFromXML.indexOf((valueFromControll).toUpperCase())!=-1?matchedProducts=true:matchedProducts=false;
						}
					}//outer else close
				!bValueFromControll?comb=tmpSelectedCombi.length:"";
				}

				if(matchedProducts && bRecordsMatched){ 	
					brecordsnotmatched=false;	
					addRow(story);
					pagination();
					show_results(); //Display the Results Div
				} 
			}
		}
	}
	if(brecordsnotmatched)
	{
		deleteRows();
		hide_results();
		eval(searchStatus).innerHTML="No Record(s) Found!";
	}
	window.scrollTo(0,5000);
}

var combinationLength=new Array();
function doCombination(){ //creating all combinations of search
    var number = Number(aMasterChildNodes.length+1);
	var combi =0
	for(d=1;d<aMasterChildNodes.length+2;d++){
    	combi = d;
		combination();
	}

//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
function combination()
{
	var a = new Array(); // initialize
		for (i = 0; i < combi; i++) 
			a[i] = i + 1; // 1 - 2 - 3 - 4 - ...
	
		while (true)
		{   var tmp=""    
			for (i = 0; i < combi; i++){
				tmp+=(a[i] + " ")
			}
			combinationLength.push(tmp);
		
			// generate next combination in lexicographical order
			i = combi - 1;                            // start at last item        
			while (a[i] == (number - combi + i + 1))  // find next item to increment 
				--i;
	
			if (i < 0) break;                          // all done
			++a[i];                                    // increment
	
			// do next 
			for (j = i + 1; j < combi; j++)
				a[j] = a[i] + j - i;
		}
	}
}

function addRow(storyNodeNumber)
{
	imgID="";
	var storyNodeObj=storyObject(storyNodeNumber);
	var nTmp=storyNodeNumber
	var searchValueTechnology=(Number(nStoryNodes[storyNodeNumber].getElementsByTagName("searchfields")[0].getAttribute(aMasterChildNodes[1])))//Reading Technology tag 
	var searchValueIndustry=(Number(nStoryNodes[storyNodeNumber].getElementsByTagName("searchfields")[0].getAttribute(aMasterChildNodes[3])))//Reading Industry 

	resultTable=document.getElementById("result");
	var rowlength=resultTable.rows.length;
	row=resultTable.insertRow(Number(rowlength));
	row.setAttribute("title","Click here to view more details");
	row.style.cursor="pointer";
	var aValues=new Array(storyNodeNumber);

	aValues[0]=storyNodeObj.company; //Returns Company Name
	aValues[1]="<div><div style='float:right; padding-top:2px;'><a href='javascript:void(0);' title='Minimize' style='padding:0px'><img src='/web/UK/casestudies/assets/images/details_hide.gif' id='hideResults"+storyNodeNumber+"' border='0'></a></div><div style='font-family:Arial;font-size:11px;'>"+storyNodeObj.title+"</div></div>"; //Returns Title
	aValues[2]=storyNodeObj.searchFields[1]; // Technology
	aValues[3]=storyNodeObj.searchFields[3]; // Industry

	for(x=0;x<4;x++){
		cells=row.insertCell(x);
		cells.onclick=function(){toggleDetailsResults(this.parentNode.rowIndex,"result","hideResults"+storyNodeNumber+"");window.scrollTo(0,5000);};
		cells.setAttribute("className","content");
		cells.setAttribute("class","content");
		cells.setAttribute("valign","top");
		cells.innerHTML=aValues[x];
	}
	totalSuccessStory(storyNodeNumber);
}

function totalSuccessStory(storyNodeNumber)
{
	var storyNodeObj=storyObject(storyNodeNumber);
	//forming details	
	var tmpStr=""

	var productsAttributeValue=nStoryNodes[storyNodeNumber].getElementsByTagName("searchfields")[0].getAttribute("product");
	
	var logoFilename= new Array();
	var tempLogoFileName;
	// Removing Spaces from Company and Replacing any Special Char with "" (Null)
	tempLogoFileName=replaceSpecialCharNull(((storyNodeObj.company).toLowerCase()).replace(/\s/g,""));
	if(tempLogoFileName.length>20)
	{
		var tempLogoFile=(tempLogoFileName).substr(0,20);
		logoFilename.push(tempLogoFile);
	}
	else
	{
		logoFilename.push(tempLogoFileName);
	}

	var docFileNames=new Array();
	// Removing Spaces from Title and Trancating it to 20 charecters
    var tempDocFileNames=replaceSpecialCharNull(((storyNodeObj.title).toLowerCase()).replace(/\s/g,""));
	//For uniqueness we are taking company,title and nodenumber as doc file name (From company we are taking only 10chars, from title 10char, and the whole node number
	tempDocFile=((tempLogoFileName).substr(0,10))+((tempDocFileNames).substr(0,10));
	docFileNames.push(tempDocFile);

	var fileDesc="";
	var aHref="";
	var imgTag="";

	var mediaType="aDocTypes[dt]=='wmv'||"
		mediaType+="aDocTypes[dt]=='swf'||"
		mediaType+="aDocTypes[dt]=='mov'||"
		mediaType+="aDocTypes[dt]=='mpeg'||"
		mediaType+="aDocTypes[dt]=='mpg'||"
		mediaType+="aDocTypes[dt]=='asx'||"
		mediaType+="aDocTypes[dt]=='mpa'||"
		mediaType+="aDocTypes[dt]=='avi'||"
		mediaType+="aDocTypes[dt]=='rm'"

	if((storyNodeObj.docTypes).length !=0 )
	{

	var aDocTypes=new Array();
	aDocTypes=(((storyNodeObj.docTypes).toLowerCase()).split(","));	
	var aDocSizes=new Array();
	aDocSizes=(((storyNodeObj.docSizes).toLowerCase()).split(","));

		for(dt=0;dt<aDocTypes.length;dt++)
		{

		// (aDocSizes[dt].toUpperCase()).substr(0,aDocSizes[dt].length-2)); will return the size of the file like 150
		// (aDocSizes[dt].toUpperCase()).substr(aDocSizes[dt].length-2,aDocSizes[dt].length)); will return the file size in 'KB' or 'MB'
		var fileSize = (aDocSizes[dt].toUpperCase()).substr(0,aDocSizes[dt].length-2)+" "+(aDocSizes[dt].toUpperCase()).substr(aDocSizes[dt].length-2,aDocSizes[dt].length)

			if(aDocTypes[dt]=="pdf" || aDocTypes[dt]=="doc" || aDocTypes[dt]=="ppt" || aDocTypes[dt]=="oft" ||aDocTypes[dt]=="wmv" ||aDocTypes[dt]=="xls" || aDocTypes[dt]=="mpeg")
			{
				fileDesc="View "+aDocTypes[dt].toUpperCase();
				if(aDocTypes[dt]=="wmv" || aDocTypes[dt]=="mpeg")
				{
					imgTag=" <img src='http://www.cisco.com/swa/i/icon_mm.gif' /> ("+aDocTypes[dt].toUpperCase()+" - "+fileSize+")";
				}else
				{
					imgTag=" <img src='http://www.cisco.com/swa/i/icon_small_"+(eval(mediaType)?'media':aDocTypes[dt])+".gif' /> ("+aDocTypes[dt].toUpperCase()+" - "+fileSize+")";
				}
				
			}else if(aDocTypes[dt]=="zip" || aDocTypes[dt]=="psd" || aDocTypes[dt]=="ai" || aDocTypes[dt]=="indd" || aDocTypes[dt]=="vsd")
			{
				fileDesc="Download "+aDocTypes[dt].toUpperCase();
				imgTag=" <img src='http://www.cisco.com/swa/i/icon_"+(eval(mediaType)?'media':aDocTypes[dt])+".gif' /> ("+aDocTypes[dt].toUpperCase()+" - "+fileSize+")";

			}else
			{
				fileDesc="Download "+aDocTypes[dt].toUpperCase();
				imgTag="";
			}

			//Example: pdfs/filename.pdf || docs/filename.doc ...
			aHref+="<div style='font-family:Arial, Helvetica, sans-serif;font-size:11px;'><a href='/web/UK/casestudies/assets/"+aDocTypes[dt]+"s/"+docFileNames+"."+aDocTypes[dt]+"' target='_blank' style='font-family:Arial, Helvetica, sans-serif;font-size:11px;vertical-align:middle;'>"+fileDesc+"</a>"+imgTag+"</div><br />"; 
		}
	}

	var aTableRow = new Array();

	// If Business Solution and it is of "N/A" -- Hiding that field in the UI
    for(var trow=0;trow<aMasterChildNodes.length;trow=trow+2)
	{
		if(masterTagLabels[trow]=="Business Solution" && storyNodeObj.searchFields[trow]=="N/A")
		{
			trow=trow+1;
		}

		aTableRow+="<tr style='border:0 solid #000000'><td nowrap id='recHeader' valign='top' align='right'><div style=\"text-align:right\"><strong>"+masterTagLabels[trow]+" :</strong></div></td><td id='recContent' width='50%' valign='top'>"+storyNodeObj.searchFields[trow]+"</td>";
		if(masterTagLabels[trow+1]==undefined)
		{
			aTableRow+="<td></td><td></td></tr>";
		}else{
			aTableRow+="<td id='recHeader' nowrap valign='top' align='right'><div style=\"text-align:right\"><strong>"+masterTagLabels[trow+1]+" :</strong></div></td><td id='recContent' width='50%' valign='top'>"+storyNodeObj.searchFields[trow+1]+"</td></tr>";
		}
	}
	//Description Table Structure opens here
	<!-- tmpStr="<table width='100%' border='0' cellspacing='2' cellpadding='2' style='padding:2px;'>"+aTableRow+"<tr><td id='recHeader' vlign='top' align='right'><div style=\"text-align:right\">Products :</div></td><td id='recHeader' colspan='3' valign='top'><span id='recContent'>"+(storyNodeObj.products==''?dataIsNull:storyNodeObj.products)+"</span></td></tr><tr><td colspan='4' id='recContent'><table width='100%' bgcolor='#EAEBE9' style='padding:3px;'><tr><td id='recContent' width='75px' height='50px' valign='top'><img src='logos/"+logoFilename+".jpg' alt="+tempLogoFileName+" border='0' width='75' height='50'/></td><td id='recContent' align='left' valign='bottom' width='100%'>"+aHref+"</td></tr><tr><td id='recContent' colspan='2'>"+storyNodeObj.description+"</td></tr></table></td></tr></table>"; -->

	//Description Table Structure opens here (Products option has been removed from the UI)
tmpStr="<table width='100%' border='0' cellspacing='2' cellpadding='2' style='padding:2px;'>"+aTableRow+"<tr><td colspan='4' id='recContent'><table width='100%' bgcolor='#EAEBE9' style='padding:3px;'><tr><td id='recContent' width='75px' height='50px' valign='top'><img src='/web/UK/casestudies/assets/images/logos/"+logoFilename+".jpg' alt="+tempLogoFileName+" border='0' width='75' height='50'/></td><td id='recContent' align='left' valign='bottom' width='100%'>"+aHref+"</td></tr><tr><td id='recContent' colspan='2'>"+storyNodeObj.description+"</td></tr></table></td></tr></table>";
	//Description Table Structure closes here

	//details row creation
	resultTable.insertRow(Number(resultTable.rows.length));
	resultTable.rows[Number(resultTable.rows.length-1)].insertCell(0);
	resultTable.rows[Number(resultTable.rows.length-1)].cells[0].colSpan="4";
	resultTable.rows[Number(resultTable.rows.length-1)].cells[0].innerHTML=tmpStr;
	resultTable.rows[Number(resultTable.rows.length-1)].cells[0].setAttribute("class","content");
	resultTable.rows[Number(resultTable.rows.length-1)].cells[0].setAttribute("className","content");
	resultTable.rows[Number(resultTable.rows.length-1)].cells[0].style.backgroundColor="#CCCCCC";
	resultTable.rows[Number(resultTable.rows.length-1)].cells[0].style.padding="0";
	resultTable.rows[Number(resultTable.rows.length-1)].cells[0].style.spacing="0";
	resultTable.rows[Number(resultTable.rows.length-1)].setAttribute("style","display:none");
	resultTable.rows[Number(resultTable.rows.length-1)].style.display="none";
}

function storyObject(storyNumber)
{
	var storyObject=new Object();
	var searchFieldsValues=new Array();

	storyObject.company=replaceSpecialChar(nStoryNodes[storyNumber].getAttribute("company"));
	storyObject.date=nStoryNodes[storyNumber].getAttribute("date");
	storyObject.title=(nStoryNodes[storyNumber].getElementsByTagName("title")[0].getAttribute('txt'))==""?dataIsNull:replaceSpecialChar(nStoryNodes[storyNumber].getElementsByTagName("title")[0].getAttribute('txt'));

	if(nStoryNodes[storyNumber].getElementsByTagName("description")[0].hasChildNodes())
	{
		storyObject.description=replaceSpecialChar(nStoryNodes[storyNumber].getElementsByTagName("description")[0].firstChild.nodeValue);
	}else
	{storyObject.description=dataIsNull;}

	var aSearchFieldValues = new Array();
	var valuesOfSearchField = new Array();
	var commaSepSearchFieldVal;

	for(d=0;d<aMasterChildNodes.length;d++)
	{
		aSearchFieldValues.push(nStoryNodes[storyNumber].getElementsByTagName("searchfields")[0].getAttribute(aMasterChildNodes[d]));
	}

for(m=0;m<aMasterChildNodes.length;m++)
{
	for(var n=0;n<aSearchFieldValues.length;n++)
	{
		if((aSearchFieldValues[n]).indexOf(',')==-1) //if value if not separated by comma
		{	
			valuesOfSearchField[n]=Number(aSearchFieldValues[n]);
			if(valuesOfSearchField[n]!=0)
			{
				searchFieldsValues.push(document.successstory[aMasterChildNodes[m]].options[valuesOfSearchField[n]].text);
			}
			else
			{   
				searchFieldsValues.push(dataIsNull);
			}
			m++;
		}else // values are separated by comma's
		{
			commaSepSearchFieldVal=(aSearchFieldValues[n]).split(',');
			var fieldValues=new Array();
			for(var csv=0; csv<commaSepSearchFieldVal.length; csv++)
			{
				if(Number(commaSepSearchFieldVal[csv])!=0)
				{
					fieldValues[csv]=document.successstory[aMasterChildNodes[m]].options[Number(commaSepSearchFieldVal[csv])].text;
				}
				else
				{   
					fieldValues[csv]=dataIsNull;
				}
			}
			searchFieldsValues.push(fieldValues)
			m++;
		}
	}
}

	storyObject.searchFields=searchFieldsValues;
	storyObject.products=replaceSpecialChar(nStoryNodes[storyNumber].getElementsByTagName("searchfields")[0].getAttribute("product"));
	storyObject.docTypes=nStoryNodes[storyNumber].getElementsByTagName("doctypes")[0].getAttribute("ext");
	storyObject.docSizes=nStoryNodes[storyNumber].getElementsByTagName("doctypes")[0].getAttribute("filesizes");

	var tmpStr="Story Node NO.="+storyNumber+"\n";
	for(s in storyObject)
	{
		tmpStr+="---------> "+s+": ";
		tmpStr+="....: "+storyObject[s].toString()+"\n\n";
	}
	return storyObject;
}

function toggleDetails(rowNumber,tableName,imageID){
	var img = document.getElementById(imageID);
	var rows = document.getElementById(tableName).rows;

/*-----------*/
var topRows = document.getElementById("result").rows; 
	for (var i = 1; i < topRows.length; i++) 
	{
		if (i%2==0)  
		{
			if(topRows[i].style.display == '')
			  {
				topRows[i].style.display = 'none';
			  }
		}
	}
/*-----------*/

	for (var no = 1; no < rows.length; no++)
	{
		if(no==(rowNumber+1))
		{
			document.getElementById(tableName).rows[rowNumber+1].style.display=="none"?document.getElementById(tableName).rows[rowNumber+1].style.display="":document.getElementById(tableName).rows[rowNumber+1].style.display="none";
			if(imgID!="")
			{
				if(imgID==img.id){
					document.getElementById(imgID).src='/web/UK/casestudies/assets/images/details_hide.gif';
					imgID="";
				}else{
					document.getElementById(imgID).src='/web/UK/casestudies/assets/images/details_hide.gif';
					img.src = '/web/UK/casestudies/assets/images/details_show.gif';
					imgID=img.id; 
				}

			}else if(imgID=="")
			{ 	img.src = '/web/UK/casestudies/assets/images/details_show.gif';
				imgID=img.id; 
			}

		}else if (no%2==0 && no!=(rowNumber+1))  
		{
			if(rows[no].style.display == '')
			  rows[no].style.display = 'none'; 
		}
	}
}

function toggleDetailsResults(rowNumber,tableName,imageID){
	var img = document.getElementById(imageID);
	var rows = document.getElementById(tableName).rows;

/*-----------
var topRows = document.getElementById("top_new_success_stories").rows; 
	for (var i = 1; i < topRows.length; i++) 
	{
		if (i%2==0)  
		{
			if(topRows[i].style.display == '')
			  {
				topRows[i].style.display = 'none';
			  }
		}
	}
-----------*/


	for (var no = 1; no < rows.length; no++)
	{
		if(no==(rowNumber+1))
		{
			if(document.getElementById(tableName).rows[rowNumber+1].style.display=="none")
			{
				document.getElementById(tableName).rows[rowNumber+1].style.display="";
				document.getElementById(imageID).src='/web/UK/casestudies/assets/images/details_show.gif';
			}else
			{
				document.getElementById(tableName).rows[rowNumber+1].style.display="none";
				document.getElementById(imageID).src='/web/UK/casestudies/assets/images/details_hide.gif';
			}

			if(imgID!="")
			{
				if(imgID==img.id){
					document.getElementById(imgID).src='/web/UK/casestudies/assets/images/details_hide.gif';
					imgID="";
				}else{
					document.getElementById(imgID).src='/web/UK/casestudies/assets/images/details_hide.gif';
					img.src = '/web/UK/casestudies/assets/images/details_show.gif'				
					imgID=img.id; 
				}

			}else if(imgID=="")
			{ 	img.src = '/web/UK/casestudies/assets/images/details_show.gif';
				imgID=img.id; 
			}

		}else if (no%2==0 && no!=(rowNumber+1))  
		{
			if(rows[no].style.display == '')
			   rows[no].style.display = 'none'; 
		}
	}
}

function hide_all_topfivestories(tableName)
{
		var rows = document.getElementById(tableName).rows; 
		for (var no = 1; no < rows.length; no++) 
		{
			if (no%2==0)  
			{
				if(rows[no].style.display == '')
				  {
					document.getElementById(tableName).rows[no-1].cells[1].getElementsByTagName('img')[0].setAttribute('src','/web/UK/casestudies/assets/images/details_hide.gif');
					rows[no].style.display = 'none';
					imgID='';
				  }
			}
		}
}

function keyWordSearch(){
	var brecordsnotmatched=true;
	if((document.basicSearchForm.keywords.value).replace(/^\s*(.*?)\s*$/,"$1")=="")
	{
		for(story=0;story<nStoryNodes.length;story++){
			addRow(story);
		}

	}
	deleteRows();

	var commaSepValues;
	var valueFromControll=((document.basicSearchForm.keywords.value).toUpperCase()).replace(/^\s*(.*?)\s*$/,"$1");

	for(k=0;k<nStoryNodes.length;k++){
		var storyCollection=storyObject(k)
		var bRecordsMatched=false;
		for(s in storyCollection){
			if(valueFromControll.indexOf(',')!=-1){ //if the values are separated by commas
				commaSepValues=valueFromControll.split(',');
				for(var m=0;m<commaSepValues.length;m++)
				{
					if(((storyCollection[s].toString()).toUpperCase()).indexOf(((commaSepValues[m]).toUpperCase()).replace(/^\s*(.*?)\s*$/,"$1"))!=-1)
					bRecordsMatched=true;
				}//for loop
			}else{
				if(((storyCollection[s].toString()).toUpperCase()).indexOf((valueFromControll).toUpperCase())!=-1)
				bRecordsMatched=true;
			}
		}
		if(bRecordsMatched)
		{	
			brecordsnotmatched=false;
			addRow(k);
			pagination();
			show_results();
		}
	}

	if(brecordsnotmatched)
	{
		deleteRows();
		hide_results();
		eval(searchStatus).innerHTML="No Record(s) Found! by <strong>"+document.basicSearchForm.keywords.value+"</strong>";
	}
window.scrollTo(0,5000);
}

function deleteRows(){
	var resultTable=document.getElementById("result")
	if(resultTable.rows.length>1){
		for(c=Number(resultTable.rows.length-1);c>=1;c--){
			resultTable.deleteRow(c);		   
		}
	}
}

function show_results()
{
	if(document.getElementById("results").style.display=="none")
	{
		document.getElementById("results").style.display="";
	}
}

function hide_results()
{
	if(document.getElementById("results").style.display=="")
	{
		document.getElementById("results").style.display="none";
	}
	eval(searchStatus).innerHTML="";
}

function replaceSpecialChar(str){
    var aSpecialChar=new Array(["/&quot;/g","\""],["/&apos;/g","'"],["/&amp;/g","&"],["/&lt;/g","<"],["/&gt;/g",">"],["/&mdash;/g","—"],["/&ndash;/g","-"],["/&copy;/g","©"],["/&reg;/g","®"],["/&amp;#63;/g","?"],["/&#63;/g","?"])
	//var temp;
	for(sc=0;sc<aSpecialChar.length;sc++){
		str=str.replace(eval(aSpecialChar[sc][0]),aSpecialChar[sc][1]);
	}
	return str;
}

function replaceSpecialCharNull(strNull)
{
	strNull = strNull.replace(/[^a-zA-Z 0-9]+/g,'');
	return strNull;
}

/* ------ Pagination --------- */
function pagination()
{
	var presentPage = 1;
	pager.init(); 
	pager.showPageNav('pager', 'pageNavPosition'); 
	pager.showPage(1);
}

function Pager(tableName, itemsPerPage) {
    this.tableName = tableName;
    this.itemsPerPage = itemsPerPage;
    this.currentPage = 1;
    this.pages = 0;
    this.inited = false;
    
    this.showRecords = function(from, to) {        
        var rows = document.getElementById(tableName).rows;
        // i starts from 1 to skip table header row
        for (var i = 1; i < rows.length; i=i+2) {
            if (i < from || i > to)  
                rows[i].style.display = 'none';
            else
                rows[i].style.display = '';
        }
    }
    
    this.showPage = function(pageNumber) {
    	if (! this.inited) {
    		alert("not inited");
    		return;
    	}
        this.currentPage = pageNumber;
        
        var from = (pageNumber - 1) * itemsPerPage + 1;
        var to = from + itemsPerPage - 1;
        this.showRecords(from, to);

		var pgNext=document.getElementById('pgNext');
		var pgPrev=document.getElementById('pgPrev');
	
		if(this.currentPage==this.pages)
			{
				pgNext.style.color='gray';
				pgNext.style.textDecoration='none';
			}
		else
			{
				pgNext.style.color='#000000';
				pgNext.style.textDecoration='underline';
			}

		if(this.currentPage==1)
			{
				pgPrev.style.color='gray';
				pgPrev.style.textDecoration='none';
			}
		else
			{
				pgPrev.style.color='#000000';
				pgPrev.style.textDecoration='underline';
			}
    }   
	
	//If at all any div's are displaying. just hide them
	this.hideDivs = function(){
		var rows = document.getElementById(tableName).rows; 
		for (var i = 1; i < rows.length; i++) 
		{
			if (i%2==0)  
			{
				if(rows[i].style.display == '')
				  {
					document.getElementById(tableName).rows[i-1].cells[1].getElementsByTagName('img')[0].setAttribute('src','/web/UK/casestudies/assets/images/details_hide.gif');
					rows[i].style.display = 'none';
					imgID='';
				  }
			}
		}
	}
    
    this.prev = function() {
        if (this.currentPage > 1){
           this.showPage(this.currentPage - 1);
		   presentPage=eval(this.currentPage);
		   document.getElementById("presentpage").innerHTML=eval(presentPage);
		   document.pageForm.paginationdropdown.value=eval(this.currentPage);
		   window.scrollTo(0,5000);
		   this.hideDivs();
		}
    }
    
    this.next = function() {
        if (this.currentPage < this.pages) {
            this.showPage(this.currentPage + 1);
		    presentPage=eval(this.currentPage);
			document.getElementById("presentpage").innerHTML=eval(presentPage);
			document.pageForm.paginationdropdown.value=eval(this.currentPage);
			window.scrollTo(0,5000);
		    this.hideDivs();
        }
    }                        
    
    this.init = function() {
        var rows = document.getElementById(tableName).rows;
        var records = (rows.length - 1); 
        this.pages = Math.ceil(records / itemsPerPage);
        this.inited = true;
    }

    this.showPageNav = function(pagerName, positionId) {
    	if (! this.inited) {
    		alert("not inited");
    		return;
    	}

    	var element = document.getElementById(positionId);

		if(this.pages==0)
		{
			this.pages=1;
		}
		//var totalPages = this.pages;

var pagerHtml ='<table border="0"><tr><td valign="middle"><div id="presentpage" style="font-family:Arial, Helvetica, sans-serif;font-size:11px;">1</div></td><td valign="middle"><div style="font-family:Arial, Helvetica, sans-serif;font-size:11px;vertical-align:middle;">&nbsp;of&nbsp;&nbsp;'+this.pages+'&nbsp;&nbsp; | &lt; <a href="javascript:void(0)" onclick="' + pagerName + '.prev();" id="pgPrev" style="cursor:pointer;" >Previous</a>&nbsp;&nbsp;&nbsp;<select name="paginationdropdown" id="pageDropDown" style="font-family:Arial, Helvetica, sans-serif;font-size:11px;height:17px;vertical-align:middle;" onchange="' + pagerName + '.showPage(Number(this.value));javascript:document.getElementById(\'presentpage\').innerHTML=eval(this.value);'+pagerName+'.hideDivs();"></select>&nbsp;&nbsp;&nbsp;<a href="javascript:void(0)" onclick="'+pagerName+'.next();" id="pgNext" style="cursor:pointer;vertical-align:middle;">Next</a> &gt;</div></td></tr></table>'

        element.innerHTML = pagerHtml;

        for (var page = 1; page <= this.pages; page++) 
            {
				document.pageForm[0].options[document.pageForm[0].options.length]=new Option(page,page);
			}

	var totalRecords = 0;
	totalRecords=((document.getElementById(tableName).rows.length)-1)/2; 
	document.getElementById("status").innerHTML="Total Records Found: <strong>"+totalRecords+"<strong>";
    }
}
/* ----------- End of Pagination ------------ */