/*
	This function is used to save user search
	with the provided name and selected criteria
*/

function saveMySearch(isDefault)
{
	var errorMessegeTd = document.getElementById("errorMessege");
	var infoMessegeTd = document.getElementById("infoMessege");
	clearSearchErrorMessge();

	saveSpeciality('employerSpecialityForm');

	if(validate()) {
		if(checkUniqueSearchTitle()) {
			var stateIdValue = getSelectedState();
			var countryIdValue = getSelectedCountry();
			var searchTitle = trim(document.forms['searchEmployerForm'].searchTitle.value);
			var searchText = document.getElementById("searchText").value == 'By Keyword' ? '' : document.getElementById("searchText").value;
			var searchSaved = function(req){
				var responseText = req.responseText;
				if(responseText.indexOf('Error')== -1){
					infoMessegeTd.innerHTML = "<li>Search saved successfully.</li>";
					errorMessegeTd.innerHTML = '';
					responseArr = responseText.split("##");
					var savedSearch = document.forms['searchEmployerForm'].savedSearches;
					if(document.getElementById("savedSearches").value != '-1'){
						var savedSearchesOptions = document.forms['searchEmployerForm'].savedSearches.options;
						for(var i = 0; i <savedSearchesOptions.length ;i++){
							if(document.getElementById("savedSearches").value == savedSearchesOptions[i].value){
								savedSearchesOptions[i].text = document.getElementById("searchTitle").value;
							}
						}
					}else{
						addOption(savedSearch,responseArr[0],responseArr[1]);
					}
				}else{
					errorMessegeTd.innerHTML = "<li>Error while saving search.</li>";
					infoMessegeTd.innerHTML = '';
				}	
			}
			
			var parameters =  { 
			                    "title":searchTitle,
			                    "stateId":stateIdValue,
								"countryId":countryIdValue,
								"subExpertiseArr":document.getElementById("subExpertiseArrayParent").value,
								"specArr":document.getElementById("specialityArrayParent").value,
								"expYrArr":document.getElementById("yearsArrayParent").value,
								"searchId":document.getElementById("savedSearches").value,
								"searchText":searchText,
								"isDefault":isDefault
			                   };
						
			AjaxRequest.post({
								'url':'/app/controllers/search/searchController.php?action=saveSearch',
								'parameters': parameters,
								'onSuccess':searchSaved,
								'onError': function(req){ errorMessegeTd.innerHTML = "<li>Error while saving search.</li>";}
							});
		}else{
			errorMessegeTd.innerHTML = "<li>Title already exists. Please use different name.</li>"
		}
	}
}

function validate(){
	var isValid = true;
	var errorMessegeTd = document.getElementById("errorMessege");
	var errorMsg = "";
	var stateIdValue = getSelectedState();
	var countryIdValue = getSelectedCountry();
	var searchTitle = trim(document.forms['searchEmployerForm'].searchTitle.value);
	var subExpertise = document.getElementById("subExpertiseArrayParent").value;
	var spec = document.getElementById("specialityArrayParent").value;
	if(searchTitle == ""){
		errorMsg += "<li>Please enter a title for search</li>";
		isValid = false;
	}
	if(stateIdValue == "" && countryIdValue == "" && subExpertise == "" && spec == ""){
		errorMsg += "<li>Please select atleast one criteria</li>";
		isValid = false;
	}
	if(!isValid){
		errorMessegeTd.innerHTML = errorMsg;
	}
	return isValid;
}

/*	
	This function return selected state
*/
function getSelectedState(){
	var stateOptions = document.forms['searchEmployerForm'].state.options; //selected value
	var stateIdValue = ""
	for(var i = 0; i <stateOptions.length ;i++)
	{
		if(stateOptions[i].selected == true && stateOptions[i].value != "-1")
		{
			stateIdValue  += stateOptions[i].value;
			break ;
		}
	}
	return stateIdValue;
}

/*	
	This function return selected Country
*/
function getSelectedCountry(){
	var countryOptions = document.forms['searchEmployerForm'].countryId.options; //selected value
	var countryIdValue = ""
	for(var i=0; i<countryOptions.length; i++)
	{
		if(countryOptions[i].selected == true && countryOptions[i].value != "-1")
		{
			countryIdValue  += countryOptions[i].value;
			break ;
		}
	}
	return countryIdValue;
}

function doNothing(){}

function clearSearchErrorMessge(){
	var errorMessegeTd = document.getElementById("errorMessege");
  	errorMessegeTd.innerHTML = "";
	document.getElementById("infoMessege").innerHTML = "";
}

function getSavedSearch()
{
	clearSearchErrorMessge();
  	var searchId = document.forms['searchEmployerForm'].savedSearches.value;
	if(searchId == "-1") {
		var errorMessegeTd = document.getElementById("errorMessege");
		errorMessegeTd.innerHTML = "Please select a 'Saved Search'";
		return;
	}
	
	var populateSavedSearch = function(req) {
		document.getElementById("searchBoxTd").innerHTML = req.responseText ;
		////updateHiddenVariables();
		callSubExpertise();
	}
	
	var parameters =  { "searchId":searchId};
				
	AjaxRequest.get({
						'url':'/app/controllers/search/searchController.php?action=getSavedSearches',
						'parameters': parameters,
						'onSuccess': populateSavedSearch,
						'onError': function(req){ alert('An error occurred while fetching saved search!');}
					});	

}

function getDefaultSearch()
{
	clearSearchErrorMessge();
	var populateSavedSearch = function(req)
	{
		document.getElementById("searchBoxTd").innerHTML = req.responseText ;
		callSubExpertise();
	}
	
	var parameters =  {};
				
	AjaxRequest.get({
						'url':'/app/controllers/search/searchController.php',
						'parameters': parameters,
						'onSuccess': populateSavedSearch,
						'onError': function(req){ alert('An error occurred while fetching saved search!');}
					});	

}

function MmSearchExec(){
	var m = $("mttext");
	if ( m && m.value == 'By Keyword')
		m.value = '';
}

function searchFreelancer(){
	saveSpeciality('employerSpecialityForm');
	
	var stateId = getSelectedState();
	var countryId = getSelectedCountry();
	var searchText = document.getElementById("searchText").value;
	var pageNo = 1;

	var parameters =  { 
						"action":"searchFreelancer",
						"expertiseArr":"",
						"subExpertiseArr":document.getElementById("subExpertiseArrayParent").value,
						"specArr":document.getElementById("specialityArrayParent").value,
						"expYrArr":document.getElementById("yearsArrayParent").value,
	                    "stateId":stateId,
	                    "countryId":countryId,
	                    "searchText":searchText,
	                    "pageNo":pageNo
	                   };
				
	window.location.href = '/search/view.php?'+getQueryString(parameters);
}


function checkUniqueSearchTitle(){
	var isUnique = true;
	var searchTitle = trim(document.forms['searchEmployerForm'].searchTitle.value);
	var savedSearchesOptions = document.forms['searchEmployerForm'].savedSearches.options; //selected value
	for(var i = 0; i <savedSearchesOptions.length ;i++)
	{
		if(savedSearchesOptions[i].text == searchTitle && document.getElementById("savedSearches").value != savedSearchesOptions[i].value)
		{
			isUnique = false;
			break;
		}
	}
	return isUnique;
}

function saveEmailPref(){
	clearSearchErrorMessge();
	var searchId = document.forms['searchEmployerForm'].savedSearches.value;
	var errorMessegeTd = document.getElementById("errorMessege");
	var infoMessegeTd = document.getElementById("infoMessege");
	if(searchId == "-1")
	{
		errorMessegeTd.innerHTML = "Please select a search to save its email preferences";
		return;
	}else{
		var scheduleTypeObj = document.forms['searchEmployerForm'].scheduleType;
		var scheduleTypeId = getCheckedValue(scheduleTypeObj);
		if(scheduleTypeId == ""){
			errorMessegeTd.innerHTML = "Please select a email preferences criteria";
			return;
		}else{
			
			var savedEmailPref = function(req){
				var responseText = req.responseText;
				if(responseText.indexOf('Error') == -1){
					errorMessegeTd.innerHTML = '';
					infoMessegeTd.innerHTML = "<li>Email preferences saved successfully.</li>";
				}else{
					errorMessegeTd.innerHTML = "<li>Error while saving email preferences.</li>";
					infoMessegeTd.innerHTML = '';
				}	
			}
			var parameters=	{	 
							 "searchId":searchId,
		             		 "scheduleTypeId":scheduleTypeId
			             	};
							
			AjaxRequest.get({
							'url':'/app/controllers/search/searchController.php?action=saveEmailPref',
							'parameters': parameters,
							'onSuccess':savedEmailPref,
							'onError': function(req){ errorMessegeTd.innerHTML = "<li>Error while saving email preferences.</li>";}
							});
		}
	}
}

function searchFreelancerPagination(pageNo){
	var parameters =  { 
						"action":"searchFreelancerPagination",
	                    "pageNo":pageNo
	                   };

	window.location.href = '/search/view.php?'+getQueryString(parameters);
}

function createNewSearch(){
	
	/*document.getElementById("savedSearches").value 		= '-1';
	document.getElementById("state").value 			= '-1';
	document.getElementById("countryId").value 			= getDefaultCountry();
	document.getElementById("searchTitle").value 		= '';
	document.getElementById("searchText").value 		= '';
	document.getElementById("errorMessege").innerHTML 	= '';
	document.getElementById("infoMessege").innerHTML 	= '';
	document.getElementById("searchResultTd").innerHTML 	= '';
	
	document.getElementById("specialityArrayParent").value	= '';
	document.getElementById("yearsArrayParent").value 		= '';
	document.getElementById("subExpertiseArrayParent").value 		= '';
	document.getElementById("spDetailId").innerHTML 		= '';*/
}

function setDefaultSearch(){
	var searchResultTd	= document.getElementById("savedSearches").value;
	var errorMessegeTd	= document.getElementById("errorMessege");
	var infoMessegeTd	= document.getElementById("infoMessege");
	errorMessegeTd.innerHTML = "";
	infoMessegeTd.innerHTML	 = "";
	if(searchResultTd == '-1'){
		errorMessegeTd.innerHTML = missingDefaultSearch;
	}
	if(errorMessegeTd.innerHTML ==''){
		var onSuccess = function(req){
			infoMessegeTd.innerHTML = setDefaultSearchSuccessfully;
		}
		var parameters =  { "defaultSearchId" : searchResultTd };
					
		AjaxRequest.post({
							'url'		: '/app/controllers/search/searchController.php?action=setDefaultSearch',
							'parameters': parameters,
							'onSuccess'	: onSuccess,
							'onError'	: function(req){ errorMessegeTd.innerHTML = 'An error occurred while setting search as default!';}
						});
	}
}

function contactFreelancer(flerid)
{
	var cwin = window.open('/search/sendMessage.php?fid='+flerid, 'sendMessage', 'location=1, status=1, scrollbars=1,height=500,width=600');
}
