var tpdDefaultSearchBoxVal = "";
var tpdKeywordDefaultText = "";
var tpdUtilityAreaCatDefaulttext = "";
var MAX_NO_OF_COMPANY_PER_PAGE = 5;
var postReqData = "";
var locale;
var moreLink;
var minimizeLink;

ddaccordion.init({
		headerclass: "more", //Shared CSS class name of headers group that are expandable
		contentclass: "filter_more", //Shared CSS class name of contents group
		revealtype: "click", //Reveal content when user clicks or onmouseover the header? Valid value: "click" or "mouseover
		mouseoverdelay: 200, //if revealtype="mouseover", set delay in milliseconds before header expands onMouseover
		collapseprev: false, //Collapse previous content (so only one open at any time)? true/false 
		defaultexpanded: [ ], //index of content(s) open by default [index1, index2, etc]. [] denotes no content
		onemustopen: false, //Specify whether at least one header should be open always (so never all headers closed)
		animatedefault: false, //Should contents open by default be animated into view?
		persiststate: true, //persist state of opened contents within browser session?
		toggleclass: ["", "openheader"], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
		//Modified for More and Minimize link Translation/locale values
		togglehtml: ["prefix", moreLink, minimizeLink], //Additional HTML added to the header when it's collapsed and expanded, respectively  ["position", "html1", "html2"] (see docs)
		animatespeed: "fast", //speed of animation: integer in milliseconds (ie: 200), or keywords "fast", "normal", or "slow"
		oninit:function(headers, expandedindices){ //custom code to run when headers have initalized
			//do nothing
		},
		onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed
			//do nothing
		}
	})

$(document).ready(function () {
	// Setting the default search textbox value.
	var searchbox = $(":input[@name=searchby][@type=text]", document);
	tpdDefaultSearchBoxVal = searchbox.val();
	
	var rows = $("div#current_search_section").find('li');
	
	// Setting the utility area default keyword text.
	var keywordLi = $(rows)[1];
	var keywordSpan = $(keywordLi).find('span')[0];
	tpdKeywordDefaultText = $(keywordSpan).html();
	
	// Setting the utility area default filter text.
	var filterLi = $(rows)[2];
	var filterSpan = $(filterLi).find('span')[0];
	tpdUtilityAreaCatDefaulttext = $(filterSpan).html(); 
 
    var currentUrl = window.location.href;
    var urlSplit = currentUrl.split('/');
    var http=urlSplit[0];
    locale=urlSplit[3];
    if (locale == "") {
        locale = "en";
    }
    
	if ($("div.pagebackdrop") != undefined && $("div.pagebackdrop") != null) {
		updateTPDResults(1);
	}
});

function synchronizeTPDUtilityArea(grpCode, formRef) { 
	var filterStr = ""; 
	var imagePath = '<img height="11" width="11" vspace="3" border="0" align="top" alt="Close" src="/static/site-redesign/images/close_bt.gif"/>'; 
	var idx = 0; 
	$(":input[@type=checkbox]:checked", formRef).each(function() { 
		var chkboxName = this.attributes["name"].value; 
		var displayVal = this.attributes["displayVal"].value; 
		var index = chkboxName.indexOf("_"); 
		if(index != -1) { 
			var prefix = chkboxName.substring(0, index); 
			if(prefix == "allsubcat") { 
				var suffix = chkboxName.substring(index + 1, chkboxName.length); 
				if($(":input[@name=subcat_" + suffix + "]:checked", formRef).size() == 0) { 
					filterStr += displayVal + "&nbsp;" + '<a href="#filters" name="' + chkboxName + '" displayVal="' + displayVal + '" onclick="synchronizeTPDLeftNav(' + grpCode + ', this);">' + imagePath + "</a>&nbsp;&nbsp;";	 
					idx ++; 
				} 
			} else if(prefix == "subcat") { 
				filterStr += displayVal + "&nbsp;" + '<a href="#filters" name="' + chkboxName + '" displayVal="' + displayVal + '" onclick="synchronizeTPDLeftNav(' + grpCode + ', this);">' + imagePath + "</a>&nbsp;&nbsp;";	 
				idx ++; 
			}			 
		}  
	}); 
 
	var row = $("div#current_search_section").find('li')[grpCode]; 
	var cell = $(row).find('span')[0]; 
	$(cell).children().remove(); 
	 
	$(cell).html(filterStr == "" ? tpdUtilityAreaCatDefaulttext : filterStr.trim()); 
} 

function synchronizeTPDLeftNav(grpCode, anchorRef) { 
	var displayVal = anchorRef.attributes["displayVal"].value; 
	var chkboxName = anchorRef.attributes["name"].value; 
	var formObj = $("form#" + grpCode); 
	var allChkboxesByName = $(":input[@name=" + chkboxName + "][@type=checkbox]:checked", formObj); 
	 
	if($(allChkboxesByName).size() > 0 ) { 
		$(allChkboxesByName).each(function() { 
			if(this.attributes["displayVal"].value == displayVal) { 
				$(this).click(); 
			} 
		}); 
	} else { 
		$(allChkboxesByName).click(); 
	} 
} 

function synchronizeTPDSearchBox() {
	var searchbox = $(":input[@name=searchby][@type=text]", document);
	searchbox.val(tpdDefaultSearchBoxVal);
	$(searchbox).blur(updateTPDKeywordUtilityArea(''));
}

function updateTPDKeywordUtilityArea(textboxVal) {
	var imagePath = '<img height="11" width="11" vspace="3" border="0" align="top" alt="Close" src="/static/site-redesign/images/close_bt.gif"/>';
	var row = $("div#current_search_section").find('li')[1];
	var cell = $(row).find('span')[0];
	
	$(cell).children().remove();
	$(cell).html((textboxVal == "" || textboxVal == tpdDefaultSearchBoxVal) ? tpdKeywordDefaultText : textboxVal + "&nbsp;<a href='#filters' onclick=\"synchronizeTPDSearchBox();\">" + imagePath + "</a>");	
}

function updateTPDResults(pageNo) {
	$('#numHits').remove();
	$('#totalHits').remove();
	$('#TPD').remove();
	$("div#searchError").html(" ");
	$("div#searchError").hide();
	$('#searchError').css('display','none');
	$("div#pagination_1").hide();
	$("div#pagination_2").hide();
	$("div.collaborative_hovertip").each(function() {
		var title = $(this).attr("title");
		if (title.indexOf("company") != -1) {
			$(this).remove();
		}
	});
	
	$("div#msg_tpd").show();
	$("div#searchResults").html();
	$("div#searchResults").hide();
	
	var ajaxPath = "/searchResult.html";

	$.ajax({
		type:"POST",
		url: ajaxPath,
		processData: false,
		cache:false,
		data: getPostDataForTPDSearch(pageNo),
		success: function(htmlVal) {
			loadTPDDetails(htmlVal, pageNo)
		},
		error: function(x,s,e) {
			tpdSearchError(x, s, e)
		},
		dataType: "html"
	});
}

function getPostDataForTPDSearch(pageNo) {
	if (pageNo == null || postReqData == "") {
	var searchParamStr = "";
	var selectedChkBoxes = new Array();
	var idx = 0;
	
		$("div#filter_sec").find("form").each(function() {
		var form = this;
		$(":input[@type=checkbox]:checked", this).each(function() {
			var chkboxName = $(this).attr("name");			
			var index = chkboxName.indexOf("_");
			if(index != -1) {
				var prefix = chkboxName.substring(0, index);
				if(prefix == "allsubcat") {
					var suffix = chkboxName.substring(index + 1, chkboxName.length);
					if($(":input[@name=subcat_" + suffix + "]:checked", form).size() == 0) {
						selectedChkBoxes[idx] = $(this).val();
						idx++;
					}
				} else if(prefix == "subcat") {
					selectedChkBoxes[idx] = $(this).val();
					idx ++;
				}			
			} 
		});
	});
	
	var searchTxtbox = $(":input[@name=searchby][@type=text]", document);
	var searchKey = searchTxtbox.val() == tpdDefaultSearchBoxVal ? "" : searchTxtbox.val();
	
	var selectedChkBoxesSize = selectedChkBoxes.length;
	if (selectedChkBoxesSize > 0) {
		for (i = 0; i < selectedChkBoxesSize; i++) {
			if (i != 0) {
				searchParamStr += "~@~";
			}
			searchParamStr += selectedChkBoxes[i];
		}
	}
		postReqData = "srchParams=" + searchParamStr + "&srchKey=" + searchKey + "&locale=" + locale;
	return postReqData;
	} else {
		var postReqData1 = postReqData + "&page=" + pageNo;
		return postReqData1;
	}
}

function loadTPDDetails(htmlVal, pageNo) {
	/* div search header start */
	var paginationDivHtml = "";
	var totalNoOfPages = 0;
	$("body").append("<div id='TPD'></div>");
	$('#TPD').css('display','none');
	$('#TPD').html(htmlVal);
	var totalNoOfCompany = $(":input[@name=totalHits]").val();
	var noOfResults = $(":input[@name=numHits]").val();
	if (totalNoOfCompany > 0) {
		totalNoOfPages = Math.ceil(totalNoOfCompany/ MAX_NO_OF_COMPANY_PER_PAGE);
		paginationDivHtml = getTPDPaginationDiv(totalNoOfPages, totalNoOfCompany, noOfResults, pageNo);
	} else{
		totalNoOfCompany=0;
	} 
	if (paginationDivHtml != "") {
		$("div#pagination_1").html(paginationDivHtml);
		$("div#pagination_2").html(paginationDivHtml);
		$("div#pagination_1").show();
		$("div#pagination_2").show();
	}

	if (pageNo == null) {
		pageNo = 1;
	}
	
	flipTPD(pageNo, totalNoOfPages);
	// Intitializing the tooltips functionality.
	hovertipInit();
	$("div#msg_tpd").hide();
	$('#msg_tpd').css('display','none');
	$("div#searchResults").html();
	$("div#searchResults").html(htmlVal);
	$("div#searchResults").show();
}

function tpdSearchError(xhr, status, e) {
	$("div#msg_tpd").hide();
	$("div#searchError").html("Error in updating results. Please try again.");
}

function backToTopTPD () {
	$('html,body').animate({scrollTop: $("#search_with_sec").offset().top}, 1000);
}

function flipTPD(pgNo, totalPgs) {
	$('div.numbering').find('a').each(function() {
		if ($(this).text() == pgNo) {
			$(this).css("color", "#000000");
		}
	});
		
	if (pgNo > "1" && pgNo < totalPgs) {
		/* Setting 'Previous' link */
		var isPrev = $("input[@name=isPrev][@type=hidden]");		
		var prevSpan = $("span[@name=prev]");
		if ($(isPrev).val() == "false") {
			$(isPrev).val("true");
		}
		enableTPDPaginationLink(prevSpan, parseInt(pgNo) - 1);
		
		/* Setting 'Next' link */
		var isNxt = $("input[@name=isNext][@type=hidden]");		
		var nxtSpan = $("span[@name=next]");
		if ($(isNxt).val() == "false") {
			$(isNxt).val("true");
		}
		enableTPDPaginationLink(nxtSpan, parseInt(pgNo) + 1);
	} else if (pgNo == totalPgs) {
		/* Setting 'Next' link */
		var isNxt = $("input[@name=isNext][@type=hidden]");		
		if ($(isNxt).val() == "true") {
			var nxtSpan = $("span[@name=next]");
			disableTPDPaginationLink(nxtSpan);
			$(isNxt).val("false");
		}
		
		/* Setting 'Previous' link */
		var isPrev = $("input[@name=isPrev][@type=hidden]");		
		var prevSpan = $("span[@name=prev]");
		if ($(isPrev).val() == "false") {
			$(isPrev).val("true");
		}
		enableTPDPaginationLink(prevSpan, parseInt(pgNo) - 1);
	} else 	if (pgNo == "1") {
		/* Setting 'Previous' link */
		var isPrev = $("input[@name=isPrev][@type=hidden]");		
		if ($(isPrev).val() == "true") {
			var prevSpan = $("span[@name=prev]");
			disableTPDPaginationLink(prevSpan);
			$(isPrev).val("false");
		}	
		
		/* Setting 'Next' link */
		var isNxt = $("input[@name=isNext][@type=hidden]");		
		var nxtSpan = $("span[@name=next]");
		if ($(isNxt).val() == "false") {
			$(isNxt).val("true");
		}
		enableTPDPaginationLink(nxtSpan, parseInt(pgNo) + 1);
	}	
}

function enableTPDPaginationLink(spanRef, pgToLink) {
	var anchor = $(spanRef).find("a");
	var innerHtml = "";
	if ($(anchor).length == 0) {
		innerHtml = $(spanRef).html();
	} else {
		innerHtml = $(anchor).html();
	}

	var enabledHtml = "<a href=\"#page\" onclick=\"javascript:updateTPDResults(\'";
	enabledHtml = enabledHtml.concat(pgToLink ,"\');backToTopTPD();\">");
	enabledHtml = enabledHtml.concat(innerHtml ,"</a>");	
	$(spanRef).html(enabledHtml.toString());

	$(spanRef).removeClass("disabledLnk");
	$(spanRef).addClass("enabledLnk");
}

function disableTPDPaginationLink(spanRef) {
	var anchor = $(spanRef).find("a");
	var disabledHtml = $(anchor).html();

	$(spanRef).html(disabledHtml);

	$(spanRef).removeClass("enabledLnk");
	$(spanRef).addClass("disabledLnk");
}

function getTPDPaginationDiv(noOfPages, totalNoOfResults, noOfResults, pageNo) {
	var paginationDivHtml = "";
	var totalPgs = noOfPages;
	if (pageNo == null) {
		pageNo = 1;
	}
	if (noOfPages > 0) {
		var endval =  noOfPages;
		var param1 = (pageNo - 1) * MAX_NO_OF_COMPANY_PER_PAGE + 1;
		var param2 = param1 + (noOfResults - 1);
		var param3 = totalNoOfResults;
		
		paginationDivHtml = paginationDivHtml.concat("<div class='pagination_sec'>");
		if (MAX_NO_OF_COMPANY_PER_PAGE < totalNoOfResults && pageNo != endval) {
			param2 = MAX_NO_OF_COMPANY_PER_PAGE;
		}
		paginationDivHtml = paginationDivHtml.concat(msgFormat(analogGeneralBundle['dspThirdParty.masterpage.Show.Message'], [param1, param2, param3]));
		paginationDivHtml = paginationDivHtml.concat("</div>");
		
		if (noOfPages > 1) {
			paginationDivHtml = paginationDivHtml.concat("<div class='numbering'><div class='pagination_sec'>");
			for (i = 1; i <= endval; i++) {
				if (i != pageNo) {
					paginationDivHtml = paginationDivHtml.concat("<a href='#page' onclick=\"updateTPDResults('", i, "');backToTopTPD();\">");
					paginationDivHtml = paginationDivHtml.concat(i, "</a>&nbsp;");
				} else {
					paginationDivHtml = paginationDivHtml.concat(i, "&nbsp;");
				}
			}
		
			paginationDivHtml = paginationDivHtml.concat("<img src='/static/images/org_arrow_lf.gif' alt='Previous' width='3' height='6' hspace='5' vspace='0' />");
			paginationDivHtml = paginationDivHtml.concat("<span name='prev' class='disabledLnk'>", analogGeneralBundle['verifiedCircuits.Master.Pagination.Previous'], "</span>");
			paginationDivHtml = paginationDivHtml.concat("&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;");
			paginationDivHtml = paginationDivHtml.concat("<span name='next' class='enabledLnk'>", "<a href='#page' onclick=\"updateTPDResults('2');backToTopTPD();\">");		
			paginationDivHtml = paginationDivHtml.concat(analogGeneralBundle['verifiedCircuits.Master.Pagination.Next'], "</a></span>", "<img src='/static/images/org_arrow_rt.gif' alt='Next' width='3' height='6' hspace='5' vspace='0' />");
			paginationDivHtml = paginationDivHtml.concat("<input type='hidden' name='totalPages' value='", noOfPages, "' />");
			paginationDivHtml += "<input type='hidden' name='isPrev' value='false' />";
			paginationDivHtml += "<input type='hidden' name='isNext' value='true' />";
			paginationDivHtml += "</div></div>";
		}
	}
	
	return paginationDivHtml;
}
//touch 1