﻿// Ajax for Simple Layout

var g_content;
var g_list_order = "id";
var g_p;
var g_p_form = 0;
var g_tab = 1;
var g_subtab = 1;
var g_m;
var g_m_tab = 1;
var g_m_subtab = 1;

// Getting the main function for Ajax
function GetXmlHttpObject()
{
	var xmlHttp;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function evalScript(scripts)
{
	try
	{
		if(scripts != "" && navigator.appName == "Microsoft Internet Explorer")	
		{
			var script = "";
			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
				if (scripts !== null) script += arguments[1] + "\n";
				return "";});
			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
		}
		return false;
	}
	catch(e)
	{
		alert(e);
	}
}

// Changing version
function change_version(newversion)
{
	g_version = newversion;
	
	xmlHttp = GetXmlHttpObject();
	if (!xmlHttp) return;
	
	var url = "./" + g_layout + "/func_js_pokearray.php";
	url += "?lang=" + g_lang;
	url += "&version=" + g_version;
	url += "&layout=" + g_layout;
	url += "&sid=" + Math.random();
	
	if(g_version == "hg" || g_version == "ss")
	{
		document.getElementById("div_banner").style.backgroundImage = "url(./img/" + g_layout + "/banner_hgss.jpg)";
		document.getElementById("div_banner_bg").style.backgroundImage = "url(./img/" + g_layout + "/banner_bg_hgss.png)";
	}
	else
	{
		document.getElementById("div_banner").style.backgroundImage = "url(./img/" + g_layout + "/banner.jpg)";
		document.getElementById("div_banner_bg").style.backgroundImage = "url(./img/" + g_layout + "/banner_bg.png)";
	}
	
	xmlHttp.onreadystatechange = function(e)
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			document.getElementById("js_load").innerHTML = "";
			var new_div = document.createElement("div");
			evalScript(xmlHttp.responseText);
			new_div.innerHTML = xmlHttp.responseText;
			document.getElementById("js_load").appendChild(new_div);
			document.getElementById("load").style.display = "none";
			
			var url = "./simple/func_list.php";
			url += "?myorder=" + g_list_order;
			url += "&lang=" + g_lang;
			url += "&version=" + g_version;
			url += "&layout=" + g_layout;
			url += "&sid=" + Math.random();
			xmlHttp.onreadystatechange = function(e)
			{
				if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
				{
					document.getElementById("list").innerHTML = xmlHttp.responseText;
					document.getElementById("load").style.display = "none";
					
					if(g_content == "pokemon") change_p(g_p, g_p_form);
					else if(g_content == "move") change_m(g_m);
					else
					{
						var url = g_content;
						url += "&lang=" + g_lang;
						url += "&version=" + g_version;
						url += "&layout=" + g_layout;
						url += "&sid=" + Math.random();
				
						xmlHttp.onreadystatechange = function(e)
						{
							if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
							{
								document.getElementById("content").innerHTML = "";
								var new_div = document.createElement("div");
								evalScript(xmlHttp.responseText);
								new_div.innerHTML = xmlHttp.responseText;
								document.getElementById("content").appendChild(new_div);
								document.getElementById("load").style.display = "none";
							}
							else if(xmlHttp.readyState==1)
							{
								document.getElementById("load").style.display = "";
							}
						};
						xmlHttp.open("GET",url,true);
						xmlHttp.send(null);
					}
				}
				else if(xmlHttp.readyState==1)
				{
					document.getElementById("load").style.display = "";
				}
			};
			xmlHttp.open("GET",url,true);
			xmlHttp.send(null);
		}
		else if(xmlHttp.readyState==1)
		{
			document.getElementById("load").style.display = "";
		}
	};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

// Reloading Quicklist
function list_select_order(myorder)
{
	xmlHttp = GetXmlHttpObject();
	if (!xmlHttp) return;
	 
	var url = "./simple/func_list.php";
	url += "?myorder=" + myorder;
	url += "&lang=" + g_lang;
	url += "&version=" + g_version;
	url += "&layout=" + g_layout;
	url += "&sid=" + Math.random();
	xmlHttp.onreadystatechange = function(e)
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			document.getElementById("list").innerHTML = xmlHttp.responseText;
			document.getElementById("load").style.display = "none";
			
			g_list_order = myorder;
		}
		else if(xmlHttp.readyState==1)
		{
			document.getElementById("load").style.display = "";
		}
	};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function seek_sugg()
{
	var seekstr = document.forms["search"].elements["search_field"].value;
	if(seekstr.length >= 2 && isNaN(seekstr))
	{
		xmlHttp = GetXmlHttpObject();
		if (!xmlHttp) return;
		
		var url = "./simple/func_sugglist.php";
		url += "?seekstr=" + seekstr;
		url += "&lang=" + g_lang;
		url += "&version=" + g_version;
		url += "&layout=" + g_layout;
		url += "&sid=" + Math.random();
		
		xmlHttp.onreadystatechange = function(e)
		{
			if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
			{
				document.getElementById("sugg_list").style.display = "";
				document.getElementById("sugg_list").innerHTML = xmlHttp.responseText;
			}
		};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
	else document.getElementById("sugg_list").style.display = "none";
}

function change_content(file, params)
{
	xmlHttp = GetXmlHttpObject();
	if (!xmlHttp) return;
	
	var url = file;
	url += "?lang=" + g_lang;
	url += "&version=" + g_version;
	url += "&layout=" + g_layout;
	url += "&sid=" + Math.random();
	url += "&" + params;
	xmlHttp.onreadystatechange = function(e)
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			document.getElementById("content").innerHTML = "";
			var new_div = document.createElement("div");
			evalScript(xmlHttp.responseText);
			new_div.innerHTML = xmlHttp.responseText;
			document.getElementById("content").appendChild(new_div);
			document.getElementById("load").style.display = "none";
			
			g_content = file + "?" + params;
		}
		else if(xmlHttp.readyState==1)
		{
			document.getElementById("load").style.display = "";
		}
	};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function change_content_form(file, formname)
{
	xmlHttp = GetXmlHttpObject();
	if (!xmlHttp) return;
	
	var url = file;
	url += "?lang=" + g_lang;
	url += "&version=" + g_version;
	url += "&layout=" + g_layout;
	url += "&sid=" + Math.random();
	
	var formdata;
	
	var myform = document.getElementById(formname);
	for (i=0; i<myform.elements.length; i++) {
         if (myform.elements[i].tagName == "INPUT") {
            if (myform.elements[i].type == "text") {
               formdata += "&" + myform.elements[i].name + "=" + encodeURI(myform.elements[i].value);
            }
            if (myform.elements[i].type == "checkbox") {
               if (myform.elements[i].checked) {
                  formdata += "&" + myform.elements[i].name + "=" + encodeURI(myform.elements[i].value);
               }
            }
            if (myform.elements[i].type == "radio") {
               if (myform.elements[i].checked) {
                  formdata += "&" + myform.elements[i].name + "=" + encodeURI(myform.elements[i].value);
               }
            }
         }   
         if (myform.elements[i].tagName == "SELECT") {
            var myselect = myform.elements[i];
            if(myselect.multiple) 
			{
				for(x=0; x<myselect.length; x++)
				{
					if(myselect.childNodes[x].tagName == "OPTION" && myselect.childNodes[x].selected)
					{
						formdata += "&" + myselect.name + "[]=" + encodeURI(myselect.childNodes[x].value);
					}
				}
			}
			else formdata += "&" + myselect.name + "=" + encodeURI(myselect.options[myselect.selectedIndex].value);
         }
         
      }
	
	url += formdata;
	
	xmlHttp.onreadystatechange = function(e)
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			document.getElementById("content").innerHTML = "";
			var new_div = document.createElement("div");
			evalScript(xmlHttp.responseText);
			new_div.innerHTML = xmlHttp.responseText;
			document.getElementById("content").appendChild(new_div);
			document.getElementById("load").style.display = "none";
			
			g_content = file + "?" + substr(formdata, 1);
		}
		else if(xmlHttp.readyState==1)
		{
			document.getElementById("load").style.display = "";
		}
	};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function send_form(file, formname)
{
	xmlHttp = GetXmlHttpObject();
	if (!xmlHttp) return;
	
	var url = file;
	url += "?lang=" + g_lang;
	url += "&version=" + g_version;
	url += "&layout=" + g_layout;
	url += "&sid=" + Math.random();
	
	var myform = document.getElementById(formname);
	for (i=0; i<myform.elements.length; i++) {
         if (myform.elements[i].tagName == "INPUT") {
            if (myform.elements[i].type == "text") {
               url += "&" + myform.elements[i].name + "=" + encodeURI(myform.elements[i].value);
            }
            if (myform.elements[i].type == "checkbox") {
               if (myform.elements[i].checked) {
                  url += "&" + myform.elements[i].name + "=" + encodeURI(myform.elements[i].value);
               }
            }
            if (myform.elements[i].type == "radio") {
               if (myform.elements[i].checked) {
                  url += "&" + myform.elements[i].name + "=" + encodeURI(myform.elements[i].value);
               }
            }
         }
		 
		 if(myform.elements[i].tagName == "TEXTAREA")
		 {
			 url += "&" + myform.elements[i].name + "=" + encodeURI(myform.elements[i].value);
		 }
		 
         if (myform.elements[i].tagName == "SELECT") {
            var myselect = myform.elements[i];
            if(myselect.multiple) 
			{
				for(x=0; x<myselect.length; x++)
				{
					if(myselect.childNodes[x].tagName == "OPTION" && myselect.childNodes[x].selected)
					{
						url += "&" + myselect.name + "[]=" + encodeURI(myselect.childNodes[x].value);
					}
				}
			}
			else url += "&" + myselect.name + "=" + encodeURI(myselect.options[myselect.selectedIndex].value);
         }
         
      }
	
	xmlHttp.onreadystatechange = function(e)
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			var new_div = document.createElement("div");
			evalScript(xmlHttp.responseText);
			new_div.innerHTML = xmlHttp.responseText;
			document.getElementById("form_respond").appendChild(new_div);
			document.getElementById("load").style.display = "none";
		}
		else if(xmlHttp.readyState==1)
		{
			document.getElementById("load").style.display = "";
		}
	};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function change_p(p,p_form)
{
	xmlHttp = GetXmlHttpObject();
	if (!xmlHttp) return;
	
	if(pokemon_forms[p] && !p_form) p_form = 1;
	
	var url = "./pokemon.php";
	url += "?p=" + p;
	if(p_form) url += "&p_form=" + p_form;
	url += "&lang=" + g_lang;
	url += "&version=" + g_version;
	url += "&layout=" + g_layout;
	url += "&sid=" + Math.random();
	xmlHttp.onreadystatechange = function(e)
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			document.getElementById("content").innerHTML = "";
			var new_div = document.createElement("div");
			new_div.innerHTML = xmlHttp.responseText;
			document.getElementById("content").appendChild(new_div);
			document.getElementById("load").style.display = "none";
			
			g_p = p;
			g_p_form = p_form;
			g_content = "pokemon";
			change_p_tab(g_tab, g_subtab);
		}
		else if(xmlHttp.readyState==1)
		{
			document.getElementById("load").style.display = "";
		}
	};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function change_p_tab(tab,subtab)
{
	xmlHttp = GetXmlHttpObject();
	if (!xmlHttp) return;
		
	var url = "./" + g_layout + "/p_tab" + tab + ".php";
	url += "?p=" + g_p;
	if(g_p_form) url += "&p_form=" + g_p_form;
	url += "&subtab=" + subtab;
	url += "&lang=" + g_lang;
	url += "&version=" + g_version;
	url += "&layout=" + g_layout;
	url += "&sid=" + Math.random();
	xmlHttp.onreadystatechange = function(e)
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			document.getElementById("p_tab").innerHTML = "";
			var new_div = document.createElement("div");
			new_div.innerHTML = xmlHttp.responseText;
			document.getElementById("p_tab").appendChild(new_div);
			document.getElementById("load").style.display = "none";
			
			for(i=1; i<=5; i++)
			{
				document.getElementById("tab" + i).i = i;
				document.getElementById("tab" + i).style.backgroundImage = "url('./img/simple/cat_inactive.png')";
				document.getElementById("tab" + i).style.color = "#666666";
				document.getElementById("tab" + i).style.cursor = "pointer";
				document.getElementById("tab" + i).onclick = function(e){change_p_tab(this.i,1);};
			}
			document.getElementById("tab" + tab).style.backgroundImage = "url('./img/simple/cat_active.png')";
			document.getElementById("tab" + tab).style.color = "#0000FF";
			document.getElementById("tab" + tab).style.cursor = "auto";
			document.getElementById("tab" + tab).onclick = "";
			g_tab = tab;
			g_subtab = subtab;
		}
		else if(xmlHttp.readyState==1)
		{
			document.getElementById("load").style.display = "";
		}
	};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function change_m(m)
{
	xmlHttp = GetXmlHttpObject();
	if (!xmlHttp) return;
	
	var url = "./move.php";
	url += "?m=" + m;
	url += "&lang=" + g_lang;
	url += "&version=" + g_version;
	url += "&layout=" + g_layout;
	url += "&sid=" + Math.random();
	xmlHttp.onreadystatechange = function(e)
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			document.getElementById("content").innerHTML = "";
			var new_div = document.createElement("div");
			new_div.innerHTML = xmlHttp.responseText;
			document.getElementById("content").appendChild(new_div);
			document.getElementById("load").style.display = "none";
			
			g_m = m;
			g_content = "move";
			change_m_tab(g_m_tab, g_m_subtab);
		}
		else if(xmlHttp.readyState==1)
		{
			document.getElementById("load").style.display = "";
		}
	};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function change_m_tab(tab,subtab)
{
	xmlHttp = GetXmlHttpObject();
	if (!xmlHttp) return;
		
	var url = "./" + g_layout + "/m_tab" + tab + ".php";
	url += "?m=" + g_m;
	url += "&subtab=" + subtab;
	url += "&lang=" + g_lang;
	url += "&version=" + g_version;
	url += "&layout=" + g_layout;
	url += "&sid=" + Math.random();
	xmlHttp.onreadystatechange = function(e)
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			document.getElementById("m_tab").innerHTML = "";
			var new_div = document.createElement("div");
			new_div.innerHTML = xmlHttp.responseText;
			document.getElementById("m_tab").appendChild(new_div);
			document.getElementById("load").style.display = "none";
			
			for(i=1; i<=3; i++)
			{
				document.getElementById("tab" + i).i = i;
				document.getElementById("tab" + i).style.backgroundImage = "url('./img/simple/cat_inactive.png')";
				document.getElementById("tab" + i).style.color = "#666666";
				document.getElementById("tab" + i).style.cursor = "pointer";
				document.getElementById("tab" + i).onclick = function(e){change_m_tab(this.i,1);};
			}
			document.getElementById("tab" + tab).style.backgroundImage = "url('./img/simple/cat_active.png')";
			document.getElementById("tab" + tab).style.color = "#0000FF";
			document.getElementById("tab" + tab).style.cursor = "auto";
			document.getElementById("tab" + tab).onclick = "";
			g_m_tab = tab;
			g_m_subtab = subtab;
		}
		else if(xmlHttp.readyState==1)
		{
			document.getElementById("load").style.display = "";
		}
	};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}