var Header = new Object();// This is the default namespace
function SearchClass(){
	this.displayType = SearchClass.DISPLAY_TYPE.attorney;
}
SearchClass.DISPLAY_TYPE ={
		ATTORNEY:"Search attorney/agent",			
		ORGANIZATION:"Search organization",
		VENDOR:"Search vendor organization",
		PRODUCT_SERVICE:"Search offering",
		INVENTOR :"Search innovator by name",
		JOBS:"Search jobs",
		ASSIGNEE:"Search innovator by patent owner",
		COMPANY:"Search patent owner by name",
		INVENTOR_KEYWORD:"Search innovator by keywords",
		ATTORNEY_KEYWORD :"Search attorney/agent by keywords",
		ATTORNEY_NOTES: "Search attorney/agent notes",
		INVENTOR_NOTES: "Search innovator notes",
		ATTORNEY_GROUP_POSTING : "Search attorney/agent by group posting",
		INVENTOR_GROUP_POSTING: "Search innovator by group posting",
		ATTORNEY_TECH_EXPERT:"Search by technical expertise",
		ATTORNEY_LEGAL_EXPERT :"Search by legal expertise",
		ATTORNEY_ZIPCODE:"Search by zip Code",
		GROUP_CONTENTS: "Search group by content",
		INVENTOR_PATENT_SEARCH:"Search by patent number",
		INVENTOR_TECHNOLOGY_SEARCH:"Search technologies"
}

Header.clickSubmitButtonOnEnterkey = function(evt) {
	var keyCode = evt.keyCode ? evt.keyCode : evt.which ? evt.which
			: evt.charCode;
	if (keyCode == 13) {
		document.getElementById("search-submit").click();
		return false;
	}
	return true;
}
Header.clickOnTheLinkEnterkey = function(evt,inputItem,mode,contextPath) {
	var keyCode = evt.keyCode ? evt.keyCode : evt.which ? evt.which
			: evt.charCode;
	if (keyCode == 13) {
		if(arguments[5]!=null){
			Header.submitQuery(3,inputItem,mode,contextPath,'ddlb',arguments[5]);
		}
		else{
			Header.submitQuery(3,inputItem,mode,contextPath);
		}
		return false;
	}
	return true;
}

Header.clickOnTheInventorLinkEnterkey = function(evt,inputItem,mode,contextPath,ddlb) {
	var keyCode = evt.keyCode ? evt.keyCode : evt.which ? evt.which
			: evt.charCode;
	if (keyCode == 13) {
			Header.submitQuery(3,inputItem,mode,contextPath,ddlb,arguments[5]);		
		return false;
	}
	return true;
}


Header.openCommentsAndSuggestion = function() {
	Header.popup1("commentsAndSuggestion.jsf");
	return false;
}
Header.popup1 = function(url) {
	var width = 750;
	var height = 375;
	var left = (screen.width - width) / 2;
	var top = (screen.height - height) / 2;
	var params = 'width=' + width + ', height=' + height;
	params += ', top=' + top + ', left=' + left;
	params += ', directories=no';
	params += ', location=no';
	params += ', menubar=no';
	params += ', resizable=no';
	params += ', scrollbars=no';
	params += ', status=no';
	params += ', toolbar=no';
	newwin = window.open(url, 'commentsAndSuggestion', params);
	if (window.focus) {
		newwin.focus()
	}
	return false;
}
Header.lengthChk = function() {
	var flag = false;
	var len = arguments[0];
	for ( var i = 1; i < arguments.length; i++) {
		if(document.getElementById(arguments[i])!=null){
		var val = Header.removeTrailingSpaces(document.getElementById(arguments[i]).value);
		if (val.length < len && val.length > 0) {
			alert("Search keyword(s) too short. Please provide minimum "+len+" characters");
			return false;
		}
		if (val.length >= len) {
			flag = true;
		}
	}
	}
	if (flag == false) {
		alert("Search keyword(s) too short. Please provide minimum "+len+" characters");
		return false;
	}
	return true;
}
Header.removeTrailingSpaces = function(str) {
	s = str.replace(/^(\s)*/, '');
	s = s.replace(/(\s)*$/, '');
	return s;
}
Header.submitQuery =function() {	
	var total = arguments.length;
	var mode = arguments[2];
	var contextPath = arguments[3];	
	var ddlb=  arguments[4];	
	var searchValue1 ="";
	var val="";
	
	if(ddlb!=null){
		if(document.getElementById(ddlb)!=null){
			val = document.getElementById(ddlb).options[document.getElementById(ddlb).selectedIndex].value;
		}
	}
	else{
		if(document.getElementById('searchOption')!=null){
			val = document.getElementById('searchOption').options[document.getElementById('searchOption').selectedIndex].value;
		}
	}	
	
	searchValue1= escape(document.getElementById(arguments[1]).value);

	if(searchValue1.length >0 ){
		if( val.length>0){
			Header.searchAction(searchValue1,val,mode,arguments[0],arguments[1],contextPath);
		}
		else{
		
			Header.searchAction(searchValue1, arguments[5],mode,arguments[0],arguments[1],contextPath);
		}
	}
	else{
		alert("Please provide text for search !");
		return false;
	}
}
Header.replaceSpecialChar=function(str) {
	var iChars = "!@#$^*()+=[]\\\,./{}|\":<>?";
	var newStr ="";
		for (var i = 0; i < str.length; i++) {
		  	if (iChars.indexOf(str.charAt(i)) != -1) {		  		
		  		continue;
		  	}
		  	else{
		  		newStr+=str.charAt(i);
		  	}
	  }		
	return newStr;
}
Header.searchVendor=function(){	
	var mode = arguments[2];
	var contextPath = arguments[3];
	var search =arguments[1];
	document.getElementById('searchOption').selectedIndex=2;
	Header.submitQuery(3,search,mode, contextPath);
	return false;
}
Header.searchAction=function(searchValue1,val,mode,arg0,arg1,contextPath){
	
	if(mode == 'true'){
		
		if((val == SearchClass.DISPLAY_TYPE.COMPANY)?Header.lengthChk(2,arg1):Header.lengthChk(arg0,arg1)){			
			if(val == SearchClass.DISPLAY_TYPE.JOBS){
				window.location=contextPath+"/jobSummary.jsf?searchValue="+searchValue1;
			}
			
			//Inventor
			else if(val == SearchClass.DISPLAY_TYPE.INVENTOR){
				window.location=contextPath+"/inventorList.jsf?searchType="+val+"&searchValue="+searchValue1;
			}
			else if(val == SearchClass.DISPLAY_TYPE.INVENTOR_KEYWORD){
				window.location=contextPath+"/inventorList.jsf?searchType="+val+"&searchValue="+searchValue1;
			}
			else if(val == SearchClass.DISPLAY_TYPE.INVENTOR_NOTES){
				window.location=contextPath+"/inventorList.jsf?searchType="+val+"&searchValue="+searchValue1;
			}
			//Assignee
			else if(val == SearchClass.DISPLAY_TYPE.ASSIGNEE){
				window.location=contextPath+"/inventorList.jsf?searchType="+val+"&searchValue="+searchValue1;
			}
			else if(val == SearchClass.DISPLAY_TYPE.COMPANY){
				window.location=contextPath+"/assigneeList.jsf?searchType="+val+"&searchValue="+searchValue1;
			}				
			else if(val == SearchClass.DISPLAY_TYPE.GROUP_CONTENTS){
				window.location=contextPath+"/groupdetails.jsf?searchValue="+searchValue1;
			}else if(val == SearchClass.DISPLAY_TYPE.INVENTOR_PATENT_SEARCH){
				window.location=contextPath+"/patentList.jsf?searchValue="+searchValue1;
			}else if(val == SearchClass.DISPLAY_TYPE.INVENTOR_TECHNOLOGY_SEARCH){
				window.location=contextPath+"/technologyList.jsf?searchValue="+searchValue1;
			}
			return false;
		}else{
			return false;
		}
	}
	else{
		
		//Organization
		if(val == SearchClass.DISPLAY_TYPE.ORGANIZATION){				
			window.location=contextPath+"/organizationList.jsf?searchType="+val+"&searchValue="+searchValue1;
		} 
		else if(val == SearchClass.DISPLAY_TYPE.VENDOR){
			window.location=contextPath+"/vendorList.jsf?searchType="+val+"&searchValue="+searchValue1;
		} 
		else if(val == SearchClass.DISPLAY_TYPE.PRODUCT_SERVICE){
			window.location=contextPath+"/vendorsearch.jsf?searchType="+val+"&searchValue="+searchValue1;
		}
		//Attorney
		else if(val == SearchClass.DISPLAY_TYPE.ATTORNEY){
			window.location=contextPath+"/peopleList.jsf?searchType="+val+"&searchValue="+searchValue1;
		}		
		else if(val == SearchClass.DISPLAY_TYPE.ATTORNEY_KEYWORD){
			window.location=contextPath+"/peopleList.jsf?searchType="+val+"&searchValue="+searchValue1;
		}
		else if(val == SearchClass.DISPLAY_TYPE.ATTORNEY_NOTES){
			window.location=contextPath+"/peopleList.jsf?searchType="+val+"&searchValue="+searchValue1;
		} 
		else if(val == SearchClass.DISPLAY_TYPE.ATTORNEY_TECH_EXPERT){
			window.location=contextPath+"/peopleList.jsf?searchType="+val+"&searchValue="+searchValue1;
		} 
		else if(val == SearchClass.DISPLAY_TYPE.ATTORNEY_LEGAL_EXPERT){
			window.location=contextPath+"/peopleList.jsf?searchType="+val+"&searchValue="+searchValue1;
		}
		else if(val == SearchClass.DISPLAY_TYPE.ATTORNEY_ZIPCODE){
			window.location=contextPath+"/peopleList.jsf?searchType="+val+"&searchValue="+searchValue1;
		}

		//Jobs
		else if(val == SearchClass.DISPLAY_TYPE.JOBS){
			window.location=contextPath+"/jobSummary.jsf?searchValue="+searchValue1;
		}
		
		else if(val == SearchClass.DISPLAY_TYPE.GROUP_CONTENTS){
			window.location=contextPath+"/groupdetails.jsf?searchValue="+searchValue1;
		}
		
		return false;
	}
}

