var globalTarget;

//This function counts the fields total character length
//and restricts the limit of allowed characters
//ex return textCounter('somefield',30)
function textCounter(field, maxlimit) 
{
		if (field.value.length > maxlimit) 
		{
			field.value = field.value.substring(0, maxlimit);
		}
}

//Find out is a number is entered during an event
//if it is allow, if not don't allow
//ex return isNumberKey(event)
//above works if u just drop it into an input box onSubmit
function isNumberKey(evt)
{
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;

         return true;

}

function doSearch(form, action) {
	var formValues = getFormValues(form);
	if (document.getElementById('ResultsDiv')) {
		
		//Get Search Request
		searchRequest = getSearchRequest(recieveResults);	
	
		// Request the URL
		window.status=action;
		searchRequest.open('POST', action, true);		
		searchRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		searchRequest.send(formValues);
		
	}
}

function doSearchAny(form3, action3, target3) {
	var formValues = getFormValues(form3);
	if (document.getElementById(target3)) {
		
		//Get Search Request
		globalTarget = target3;
		searchRequest = getSearchRequest(recieveResultsTarget);
	
	
		// Request the URL
		window.status=action3;
		searchRequest.open('POST', action3, true);		
		searchRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		searchRequest.send(formValues);
		
	}
}

function doLeaderboardSearch(form2, action2) {
	var formValues = getFormValues(form2);
	if (document.getElementById('ResultsDiv')) {
		
		//Get Search Request
		searchRequest = getSearchRequest(recieveLeaderboardResults);	
	    
		// Request the URL
		window.status=action2;
		searchRequest.open('POST', action2, true);		
		searchRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		searchRequest.send(formValues);
		
		
	}
}


function previousPage(result, sortCol, dir){
	if(sortCol=='') sortCol=document.getElementById('sortIndex').value;
	if(dir=='') dir=document.getElementById('dir').value;
  	pageResults('previousPage.action', result, sortCol, dir);
}

function nextPage(result, sortCol, dir){
	if(sortCol=='') sortCol=document.getElementById('sortIndex').value;
	if(dir=='') dir=document.getElementById('dir').value;
  	pageResults('nextPage.action', result, sortCol, dir);
}

function firstPage(result, sortCol, dir){
	if(sortCol=='') sortCol=document.getElementById('sortIndex').value;
	if(dir=='') dir=document.getElementById('dir').value;
 	pageResults('goToPage.action', result, sortCol, dir, 1);
}

function goToPage(result, sortCol, dir, page){
	if(sortCol=='') sortCol=document.getElementById('sortIndex').value;
	if(dir=='') dir=document.getElementById('dir').value;
 	pageResults('goToPage.action', result, sortCol, dir, page);
}

function sortResults(sortCol, result, dir){
	
 var url = 'sort.action?sortIndex=' + sortCol;
 url = url + '&result=' + result;
 	if(dir=='desc'){
		var dir='asc';
	} else if(dir=='asc'){
		var dir='desc';
	}
 if(dir){
 url = url + '&dir=' + dir;
 }
 makeResultsRequest(url);
}

function pageResults(url, result, sortCol, dir, page){
 url = url + "?result=" + result;
 if(sortCol){
 	url = url + '&sortIndex=' + sortCol;
 }
 if(dir){
 url = url + '&dir=' + dir;
 }
 if(page){
   url = url + "&goToPageNumber=" + page;
 }
 makeResultsRequest(url);
}

function makeResultsRequest(url){
 if (document.getElementById('ResultsDiv')) {		
		//Get Search Request
		searchRequest = getSearchRequest(recieveResults);				
			
		// Request the URL
		window.status=url;
		searchRequest.open('GET', url, true);		
		searchRequest.send(null);		
 }
}

function getSearchRequest(resultFunction){
	// Make sure the request object is cleared
	searchRequest = false;
	
	// Get the correct  request object
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		searchRequest = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
		searchRequest = new ActiveXObject("Microsoft.XMLHTTP");
	}						
	
	// Attach the desired function for when it updates
	searchRequest.onreadystatechange = resultFunction;
	
	return searchRequest;
}



function recieveResults() {
	if (searchRequest.readyState == 4) { // Only respond if the page is fully loaded
		if (document.getElementById('ResultsDiv')) {
			document.getElementById('ResultsDiv').innerHTML=searchRequest.responseText;
		}
	}
}

function recieveResultsTarget() {
	if (searchRequest.readyState == 4) { // Only respond if the page is fully loaded
		if (document.getElementById(globalTarget)) {
			document.getElementById(globalTarget).innerHTML=searchRequest.responseText;
			//alert(searchRequest.responseText);
		}
	}
}

function recieveLeaderboardResults() {
	if (searchRequest.readyState == 4) { // Only respond if the page is fully loaded
		if (document.getElementById('ResultsDiv')) {
			document.getElementById('ResultsDiv').innerHTML=searchRequest.responseText;
			//Get Search Request
			//searchRequest = getSearchRequest(receieveNumberOneResults);	
			
			//requestUrl = "/includes/custom_leaderboard_leader.vm"
			//requestUrl +=  "?characterId=" + document.getElementById("NumberOne").value;
			//requestUrl += "&statName1=" + document.getElementById("StatName1").value;
			//requestUrl += "&statName2=" + document.getElementById("StatName2").value;
			//requestUrl += "&statVal1=" + document.getElementById("StatVal1").value;
			//requestUrl += "&statVal2=" + document.getElementById("StatVal2").value;			
			
			// Request the URL
			//window.status=requestUrl;
			//searchRequest.open('GET', requestUrl, true);		
			//searchRequest.send(null);
		}
	}
}

function receieveNumberOneResults(){
if (searchRequest.readyState == 4) { // Only respond if the page is fully loaded
		if (document.getElementById('randomLeader')) {
			document.getElementById('randomLeader').innerHTML=searchRequest.responseText;
		}
	}
}

function getFormValues(fobj){

       var str = "";
       var valueArr = null;
       var val = "";
       var cmd = "";
       var obj = null;
	   if(fobj != null){
           for(var i = 0;i < fobj.elements.length;i++)
           {
           	   obj = fobj.elements[i];
               switch(obj.type)
               {
    
                   case "text":                    
                        str += obj.name + "=" + escape(obj.value) + "&";
                         break;
                         
                    case "hidden":                    
                        str += obj.name + "=" + escape(obj.value) + "&";
                         break;
    
                   case "select-one":
                        str += obj.name + "=" + obj.options[obj.selectedIndex].value + "&";
                        break;
                        
                  case "radio" :              	
                  		if(obj.checked){
                  			str += obj.name + "=" + obj.value + "&";
    	              	}
    	              	break;	     
    	          case "checkbox" :
    	          		if(obj.checked){
                  			str += obj.name + "=" + obj.value + "&";
    	              	}
    	              	break;	     
    	              	         	
               }
    
           }
	}
	else{
		str=" ";
	}
       return str.substr(0,(str.length - 1));

    }
 