var ogcCourseView = {};  // Declare my namespace

ogcCourseView.onSelect = function(obj,target){
	AjaxDivLoad.simpleUrl(obj);
	AjaxDivLoad.addRequest('dynamic_course_view',target);
	//AjaxDivLoad.simpleUrl(target);
	
	
};

var AjaxDivLoad = {};  // Declare my namespace

AjaxDivLoad.xmlHttp = null;
AjaxDivLoad.scriptRoot = null;
AjaxDivLoad.requestQueue = [];
//AjaxDivLoad.mainUrl = "http://h1628396.stratoserver.net/";
//AjaxDivLoad.mainUrl = "http://localhost/ogcwebroot/ogcscript/ogcroot/";
AjaxDivLoad.mainUrl = "";

AjaxDivLoad.test = function(){
	//alert("test");
}

AjaxDivLoad.menueTwiceLoad = function(obj,targetUrl,targetDiv){
	AjaxDivLoad.simpleUrl(obj);
	AjaxDivLoad.addRequest(targetDiv,targetUrl);
};


AjaxDivLoad.selectUrlBased = function(obj){
	var reqString = obj.href;
		
	var start = reqString.indexOf('#');
	if(start==-1)return;
	var param = reqString.substring(start+1);
	var argArray =  param.split("/");
	if(argArray.lenght<2)return;

	var urlreq = argArray[1] + ".php";
	var dim = argArray.length;

	if(argArray[dim-1] == ""){
		dim-=1;
		argArray.pop();
	}
	if((dim > 2)&&(argArray[2]!="")){
		urlreq+='?';
		for(i=2;i<dim;i++){
			urlreq+= "p" + (i-2) + "=" + argArray[i];
			if((i+1)!=dim)urlreq+="&"; 
		}
	}  
	//alert(obj.ogctarget);
	//alert(AjaxDivLoad.scriptRoot + urlreq);
	AjaxDivLoad.addRequest(argArray[0],AjaxDivLoad.scriptRoot + urlreq);
	return true;
}


AjaxDivLoad.simpleUrl = function(obj){
	var reqString = obj.href;
	var argArray =  reqString.split("#");
	var divsection = argArray[1];
	var url = argArray[2];
	AjaxDivLoad.addRequest(divsection,url);
}



AjaxDivLoad.addRequest = function(targetDiv,sourceUrl){
	
	//alert("sdasd");
	if (AjaxDivLoad.requestQueue == null ) {
		AjaxDivLoad.requestQueue = new Array();
	}
	var queueSize = AjaxDivLoad.requestQueue.lenght;
	var reqObj = new Object();
	reqObj.div = targetDiv;
	reqObj.url = sourceUrl;
	AjaxDivLoad.requestQueue.push(reqObj);
	//AjaxDivLoad.debugLog(targetDiv+ " > " + sourceUrl);
	if(!queueSize)AjaxDivLoad.sendRequest();

	//alert("req:" + targetDiv + " ->" +sourceUrl);
	
};

AjaxDivLoad.sendRequest = function(){
	
	try {
		AjaxDivLoad.xmlHttp = new XMLHttpRequest();
	}catch(e){
		try{
			AjaxDivLoad.xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			AjaxDivLoad.xmlHttp = null;
		}
	}
	
	if(AjaxDivLoad.xmlHttp){
		AjaxDivLoad.debugLog("load" + AjaxDivLoad.mainUrl + AjaxDivLoad.requestQueue[0].url);
		AjaxDivLoad.xmlHttp.open('GET', AjaxDivLoad.mainUrl + AjaxDivLoad.requestQueue[0].url, true);
		AjaxDivLoad.xmlHttp.targetDiv = AjaxDivLoad.requestQueue[0].div;
		AjaxDivLoad.xmlHttp.onreadystatechange = AjaxDivLoad.onXmlHttpResponse;
		AjaxDivLoad.xmlHttp.send(null);
		//alert("try loading" + AjaxDivLoad.requestQueue[0].url);
	}
}

AjaxDivLoad.onXmlHttpResponse = function(){
	
	if (AjaxDivLoad.xmlHttp.readyState == 4){

		 if (AjaxDivLoad.xmlHttp.status == 200) {
			//update div section
			var div = document.getElementById(AjaxDivLoad.xmlHttp.targetDiv);
			//alert("pushit in" + AjaxDivLoad.xmlHttp.targetDiv);
			
			//div.innerHTML = AjaxDivLoad.xmlHttp.responseText;
			//div.html(AjaxDivLoad.xmlHttp.responseText);
			
			$("#" + AjaxDivLoad.xmlHttp.targetDiv).html(AjaxDivLoad.xmlHttp.responseText);
			
			AjaxDivLoad.requestQueue.shift();
			if(AjaxDivLoad.requestQueue.length)AjaxDivLoad.sendRequest();
			//alert("request ready!"+div.innerHTML);
		 }
		 else
		 {
			 //alert("load error");
		 }
	}
};

AjaxDivLoad.debugLog = function(debugstring)
{
	//var div = document.getElementById("jscriptdebug");
	//div.innerHTML+=debugstring + "<br>";
}


var PlayerAutoFill = {};
PlayerAutoFill.autoSuggest = null;
PlayerAutoFill.xmlHttp = null;
PlayerAutoFill.currContent = "";
PlayerAutoFill.autoListActive = false;

PlayerAutoFill.onKeyUp = function(ev){
	var key = me.getKeyCode(ev);
	//alert(key);
};

PlayerAutoFill.onKeyDown = function(content){
	
	if(PlayerAutoFill.currContent==content)return;
	//alert("keydown");
	PlayerAutoFill.currContent = content;
	
	if(content.length > 2){
		if(PlayerAutoFill.autoListActive == false)
		{
			PlayerAutoFill.autoListActive = true;
			PlayerAutoFill.sendRequest(content);
		}
		else
		{
			if(null != PlayerAutoFill.autoSuggest){
				PlayerAutoFill.autoSuggest.handleKeyUp(PlayerAutoFill.currContent);
			}
		}
	}
	else{
		 if(null != PlayerAutoFill.autoSuggest)
		 { 		
			 PlayerAutoFill.autoSuggest.suggestions = new Array();
			 PlayerAutoFill.autoSuggest.handleKeyUp("");
			 PlayerAutoFill.autoListActive = false;
		 }
	}
};

PlayerAutoFill.sendRequest = function(pattern){
	
	try {
		PlayerAutoFill.xmlHttp = new XMLHttpRequest();
	}catch(e){
		try{
			PlayerAutoFill.xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			PlayerAutoFill.xmlHttp = null;
		}
	}
	try {
		if(PlayerAutoFill.xmlHttp){
			//account?cmd=findPlayers&pattern=Sep&maxResults=10&onlineOnly=true			
			PlayerAutoFill.xmlHttp.open('GET', 'ogcwebservice/getplayerautofill.php?prefix=' + pattern, true);
			PlayerAutoFill.xmlHttp.onreadystatechange = PlayerAutoFill.onXmlHttpResponse;
			PlayerAutoFill.xmlHttp.send(null);
		}
	}catch(e){
		//alert(e);
	}
};

PlayerAutoFill.onXmlHttpResponse = function(){
	if (PlayerAutoFill.xmlHttp.readyState == 4){
		 if (PlayerAutoFill.xmlHttp.status == 200) {
			 
			 var xmlDoc=null;
			 
			 if (window.DOMParser){
				  parser = new DOMParser();
				  xmlDoc=parser.parseFromString(PlayerAutoFill.xmlHttp.responseText,"text/xml");
			 }
			 else // Internet Explorer
			 {
				 xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
				 xmlDoc.async = "false";
				 xmlDoc.loadXML(PlayerAutoFill.xmlHttp.responseText);
			 } 
			 //alert(PlayerAutoFill.xmlHttp.responseText);
			 playerlist = xmlDoc.getElementsByTagName("playersum");
			 var autoArray = new Array();
			 for (i=0;i<playerlist.length;i++)
			 {
				 playerChunk = playerlist[i];
				 playerName = playerChunk.getElementsByTagName("playersum_name")[0].childNodes[0].nodeValue;
				 playerOnline = playerChunk.getElementsByTagName("playersum_online")[0].childNodes[0].nodeValue;
				 PlayerAutoFill.debugLog("name=" + playerName + "online="+ playerOnline);
				 autoArray.push(playerName);
				 
				 //fill into list
			 }
			 //alert("receiving new list");
			 
			 //var states = new Array("Alabama","Alaska","American Samoa");
			 if(null == PlayerAutoFill.autoSuggest)
			 { 		
				 PlayerAutoFill.autoSuggest = new AutoSuggest(document.getElementById('state'),autoArray);
				 //alert("generate new suggestions");
				 PlayerAutoFill.autoSuggest.handleKeyUp(PlayerAutoFill.currContent);
			 }
			 else{
				 //update list
				 //alert("update new suggestions");
				 PlayerAutoFill.autoSuggest.suggestions = autoArray;
				 PlayerAutoFill.autoSuggest.handleKeyUp(PlayerAutoFill.currContent);
			 }
		 }
		 else{
			 /*var resString = "LOAD ERROR header= " + PlayerAutoFill.xmlHttp.getAllResponseHeaders();
			 resString+=	" status=" + PlayerAutoFill.xmlHttp.status;
			 resString+=	" statusText=" + PlayerAutoFill.xmlHttp.statusText;
			 resString+=	" result=" + PlayerAutoFill.xmlHttp.responseText;
			 resString+=	" resultXml=" + PlayerAutoFill.xmlHttp.responseXML;
			 PlayerAutoFill.debugLog(resString);*/
		 }
		 PlayerAutoFill.xmlHttp = null;
		 //alert("done");
	}
};

PlayerAutoFill.debugLog = function(debugstring)
{
	var div = document.getElementById("jscriptdebug");
	div.innerHTML+=debugstring + "<br>";
}

