/* Functions in this file
		getLang					16
		newWindow				366
		showMap					373
		QueryString				425
		modQueryString			455
		modQString				620
		createQueryString		601
		isNumeric				673







*/

//getLang gets the language of the page
function getLang()
{
	var lang = QueryString('lang');
	if(lang == null)
	{
		lang = 'en';
	}
	if (lang.length < 1)
	{
		lang='en';
	}
	return lang;
}

function newWindow(mypage) 
{
  win = window.open(mypage,"photo","status=yes,toolbar=no,directories=no,scrollbars=yes,width=800,height=800,resizable=yes,left=0,top=0");
  win.window.focus();
}

//-------------------------------------------------------------------
function showMap(mypage) 
{
	win = window.open(mypage, "map", "toolbar=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,directories=yes,location=yes,left=0,top=0")
	win.window.focus();
}


/*--------------------------------------------------------------------------------
 QueryString returns the value associated with the key
----------------------------------------------------------------------------------*/

function QueryString(key)
{
	QueryString.keys = new Array();
	QueryString.values = new Array();
	var query = window.location.search.substring(1);
	var pairs = query.split("&");
	value = null;
	for (i=0;i<pairs.length;i++)
	{
		var pos = pairs[i].indexOf('=');
		if (pos >= 0)
		{
			var argname = pairs[i].substring(0,pos);
			valueTest = pairs[i].substring(pos+1);
			QueryString.keys[QueryString.keys.length] = argname;
			QueryString.values[QueryString.values.length] = valueTest;
		}
	}

	for (i=0;i<QueryString.keys.length;i++)
	{
		if (QueryString.keys[i]==key)
		{
			value = unescape(QueryString.values[i]);
			break;
		}
	}
	return value;
}

function modQueryString(key, modif)
{
	QueryString.keys = new Array();
	QueryString.values = new Array();
//change modif to string so you can test for the length
	modif = '' + modif;
	key = key.toLowerCase();
	var QString = '';
	if(modif.length > 0) 
	{
		var modifStr = modif.toLowerCase();
		modifStr = escape(modif);
	}
	//This gives you the query string
	var query = window.location.search.substring(1);
	//If there is no querystring, create a default query string
	if(query.length < 1)
	{
		query = createQueryString();
	}

	//This splits the query string on the symbol "&" creating an array of pairs "x=y" 
	var pairs = query.split("&");
	var value = null;
	for (var i=0;i<pairs.length;i++)
	{
		//Split the pairs into the key and it's value
		var pos = pairs[i].indexOf('=');
		if (pos >= 0)
		{
			var argname = pairs[i].substring(0,pos);
			value = pairs[i].substring(pos+1);
			//Create the array QueryString.keys
			QueryString.keys[i] = argname.toLowerCase();
			//Create the corresponding key value array QueryString.values
			QueryString.values[i] = value.toLowerCase();
		}
	}
	
	//Set the newKey flag to true
	var newKey = true;
	for (i=0;i<QueryString.keys.length;i++)
	{
		//Find the index of the key
		if (QueryString.keys[i]==key)
		{
			//Replace the value with the modified value
			QueryString.values[i] = modifStr;
			newKey=false;
			break;
		}
	}
	//Recreate the query string
	var firstKey = true;
	for (i = 0;i<QueryString.keys.length;i++)
	{
//alert(QueryString.keys[i] + ' = ' + QueryString.values[i]);
		if(firstKey){
//only put it into the querystring if it has a value
			if(QueryString.values[i].length>0)
			{
				QString = QueryString.keys[i] + "=" + QueryString.values[i];
				firstKey=false;
			}
		} else if(QueryString.values[i].length>0)
		{
			QString = QString + "&" + QueryString.keys[i] + "=" + QueryString.values[i];
		}
	}
//if this is a new key, add it to the end of the QueryString
	if(newKey) 
	{
// Only add the key if its length is greater than 0
		if(modif.length>0)
		{
			if(firstKey)
			{
				QString = key + '=' + modifStr;
			} else
			{
				QString = QString + "&" + key + "=" + modifStr;
			}
		}
//alert('QString = ' + QString);
	}
	return QString;
}

//Same function as modQueryString only the QString is sent in the 
//  parameters.  This lets you change a QueryString several times in  
//  succession.
function modQString(query, key, modif)
{
	QueryString.keys = new Array();
	QueryString.values = new Array();
	var QString = "";
//change modif to string so you can test for the length
	var modifStr = '' + modif;
	key = key.toLowerCase();
	if(modifStr.length > 0) 
	{
		modifStr = modifStr.toLowerCase()
		modifStr = escape(modif);
	}
	
	//If there is no querystring, create a default query string
	if(query.length < 1)
	{
		query = createQueryString();
	}
	//This splits the query string on the symbol "&" creating an array of pairs "x=y" 
	var pairs = query.split("&");
	var value = null;
	var argname = null;
	
	for (var i=0;i<pairs.length;i++)
	{
		//Split the pairs into the key and it's value
		var pos = pairs[i].indexOf('=');
		if (pos >= 0)
		{
			argname = pairs[i].substring(0,pos);
			//the escape function replaces special characters in the URL string
			value = pairs[i].substring(pos+1);
//alert('argname = ' + argname + ', value = ' + value);
			//Create the array QueryString.keys
			QueryString.keys[i] = argname.toLowerCase();
//alert('QueryString.keys[' + i +'] = ' + QueryString.keys[i]);

			//Create the corresponding key value array QueryString.values
			if(value.length > 0)
			{
				QueryString.values[i] = value.toLowerCase();
			}
//alert('QueryString.values[' + i +'] = ' + QueryString.values[i]);
		}
//alert('length of ' + QueryString.keys[i] + ' = ' + QueryString.values[i].length);
	}
	
	//Set the newKey flag to true
	var newKey = true;
	for (i=0;i<QueryString.keys.length;i++)
	{
		//Find the index of the key
		if (QueryString.keys[i]==key)
		{
			//Replace the value with the modified value
				QueryString.values[i] = modifStr;
//alert('ModQueryString.values[' + i +'] = ' + QueryString.keys[i] + ', ModQueryString.values[' + i +'] = ' + QueryString.values[i]);
			newKey=false;
			break;
		}
	}
	//Recreate the query string
	var firstKey = true;
	for (i = 0;i<QueryString.keys.length;i++)
	{
//convert any integer to a string
		value = QueryString.values[i] + '';
//convert spaces to %20	
		if(firstKey==true){
//only put it into the querystring if it has a value
			if(value.length > 0)
//			if(QueryString.values[i].length>0)
			{
//alert('FirstQueryString.values[' + i +'] = ' + QueryString.keys[i] + ', FirstQueryString.values[' + i +'] = ' + QueryString.values[i]);
				QString = QueryString.keys[i] + "=" + QueryString.values[i];
				firstKey=false;
			}
		} else if(value.length > 0)
		{
			QString = QString + "&" + QueryString.keys[i] + "=" + QueryString.values[i];
		}
	}
	//if this is a new key, add it to the end of the QueryString
	if(newKey) 
	{
// Only add the key if its length is greater than 0
		if(modif.length>0)
		{
			if(firstKey)
			{
				QString = key + '=' + modifStr;
			} else
			{
				QString = QString + "&" + key + "=" + modifStr;
			}
		}
	}
//alert('QString = ' + QString);
	return QString;
}

/*--------------------------------------------------------
Creates a default QueryString
----------------------------------------------------------*/

function createQueryString()
{
	var QString = "lang=en&pageno=1";
	return QString;
}


// This function decodes the any string
// that's been encoded using URL encoding technique
function URLCode(psEncodeString) 
{
  return escape(psEncodeString); 
}


// This function decodes the any string
// that's been encoded using URL encoding technique
function URLDecode(psEncodeString) 
{
  return unescape(psEncodeString); 
}


