Server : Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6
System : Windows NT USER-PC 6.1 build 7601 (Windows 7 Professional Edition Service Pack 1) AMD64
User : User ( 0)
PHP Version : 7.4.6
Disable Function : NONE
Directory :  C:/Program Files/CyberLink/PowerDirector/web/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : C:/Program Files/CyberLink/PowerDirector/web/flickrAction.js
var m_strSearchText;
var m_strApiKey;
var m_strSecret;
var m_strFrob;
var m_strToken;
var m_strSkinPath;
var m_nPhotosPrePage = 50;

var m_nPhotoSetsPrePage = 12;
var m_nPhotoSetsInHeight = 3;
var m_nPhotoSetsInWidth = 4;


var m_nCurrentPageIndex = 1;
var m_nTotalPageNum = 1;

var m_strSortOption = "relevance";

var m_nAvoidDownloadLicensesID =[6];

var m_nLicenseName = new Array(10);
var m_nLicenseID = new Array(10);
var m_nLicenseURL = new Array(10);

var m_nDownloadSize = 5;
var m_nDownloadSizeName = "Original";

var m_strToolTipsFileName = "File name";
var m_strToolTipsFileUserName = "User name";
var m_strToolTipsFileDescription = "Description";

function getSignature(sSecretKey, sParameter)
{ 
   sParameter = sParameter.replace('?','');
   var aParameter = sParameter.split('&');
   aParameter.sort();
   var sSignature = sSecretKey;
   for(var i=0,j=aParameter.length;i<j;i++)
   { 
       var sName = aParameter[i].split('=')[0];
       var sValue = aParameter[i].split('=')[1];
       sSignature += sName + sValue;
   };
   return MD5(sSignature);
}; 

function setToolTipsFileName(strToolTipsFileName)
{
	m_strToolTipsFileName = strToolTipsFileName;
}

function setToolTipsFileUserName(strToolTipsFileUserName)
{
	m_strToolTipsFileUserName = strToolTipsFileUserName;
}

function setToolTipsFileDescription(strToolTipsFileDescription)
{
	m_strToolTipsFileDescription = strToolTipsFileDescription;
}

function SetSortMethod(nIndex)
{
	if(nIndex == 0)
		m_strSortOption = "relevance";
	if(nIndex == 1)
		m_strSortOption = "date-posted-asc";
	if(nIndex == 2)
		m_strSortOption = "interestingness-asc";
}

function SetDownloadSize(nSize)
{
	m_nDownloadSize = nSize;
	if(m_nDownloadSize==0)
		m_nDownloadSizeName = "Square";
	if(m_nDownloadSize==1)
		m_nDownloadSizeName = "Thumbnail";
	if(m_nDownloadSize==2)
		m_nDownloadSizeName = "Small";
	if(m_nDownloadSize==3)
		m_nDownloadSizeName = "Medium";
	if(m_nDownloadSize==4)
		m_nDownloadSizeName = "Large";
	if(m_nDownloadSize==5)
		m_nDownloadSizeName = "Original";
}

function utf8(wide) {
  var c, s;
  var enc = "";
  var i = 0;
  while(i<wide.length) {
    c= wide.charCodeAt(i++);
    // handle UTF-16 surrogates
    if (c>=0xDC00 && c<0xE000) continue;
    if (c>=0xD800 && c<0xDC00) {
      if (i>=wide.length) continue;
      s= wide.charCodeAt(i++);
      if (s<0xDC00 || c>=0xDE00) continue;
      c= ((c-0xD800)<<10)+(s-0xDC00)+0x10000;
    }
    // output value
    if (c<0x80) enc += String.fromCharCode(c);
    else if (c<0x800) enc += String.fromCharCode(0xC0+(c>>6),0x80+(c&0x3F));
    else if (c<0x10000) enc += String.fromCharCode(0xE0+(c>>12),0x80+(c>>6&0x3F),0x80+(c&0x3F));
    else enc += String.fromCharCode(0xF0+(c>>18),0x80+(c>>12&0x3F),0x80+(c>>6&0x3F),0x80+(c&0x3F));
  }
  return enc;
}

var hexchars = "0123456789ABCDEF";

function toHex(n) {
  return hexchars.charAt(n>>4)+hexchars.charAt(n & 0xF);
}

var okURIchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";

function encodeURIComponentNew(s) {
  var s = utf8(s);
  var c;
  var enc = "";
  for (var i= 0; i<s.length; i++) {
    if (okURIchars.indexOf(s.charAt(i))==-1)
      enc += "%"+toHex(s.charCodeAt(i));
    else
      enc += s.charAt(i);
  }
  return enc;
}

function URLEncode(fld)
{
 if (fld == "") return false;
 var encodedField = "";
 var s = fld;
 if (typeof encodeURIComponent == "function")
 {
  // Use javascript built-in function
  // IE 5.5+ and Netscape 6+ and Mozilla
  encodedField = encodeURIComponent(s);
 }
 else 
 {
  // Need to mimic the javascript version
  // Netscape 4 and IE 4 and IE 5.0
  encodedField = encodeURIComponentNew(s);
 }
 
 return encodedField;
}

function SetAPIKey(strApiKey)
{
	m_strApiKey = strApiKey;
}

function SetSkinPath(strSKinPath)
{
	m_strSkinPath = strSKinPath;
}

function SetSecret(strSecret)
{
	m_strSecret = strSecret;
}

function SetFrob(strFrob)
{
	m_strFrob= strFrob;
}

function SetToken(strToken)
{
	m_strToken= strToken;
}

function Search(strText,npage) 
{
	m_nCurrentPageIndex = npage;
	updateTableWH();
	var strTextEncoded = URLEncode(strText);
	m_strSearchText = strText;
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			// Get the data from the server's response
			//document.getElementById("txtHint").innerHTML=xmlHttp.responseText;				
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key="+m_strApiKey+"&text=" + strTextEncoded + "&format=json&per_page="+m_nPhotosPrePage+"&extras=license,owner_name"+"&license=1,2,4,5";
	strRequest = strRequest + "&sort=" + m_strSortOption;
	strRequest = strRequest + "&page=" + npage;
	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}

function GetLicenseInfo()
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"formatjson"+"methodflickr.photos.licenses.getInfo";
	var strMd5 = MD5(strSrc);
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.photos.licenses.getInfo&api_key="+m_strApiKey;
	strRequest = strRequest+"&format=json";
	
	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}

function GetUserProfile()
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"auth_token"+m_strToken+"formatjson"+"methodflickr.urls.getUserProfile";
	var strMd5 = MD5(strSrc);
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.urls.getUserProfile&api_key="+m_strApiKey;
	strRequest = strRequest +"&api_sig="+strMd5+"&auth_token="+m_strToken+"&format=json";
	xmlHttp.open("GET",strRequest,true);
	
	xmlHttp.send(null);
	
}
	
function GetPhotoSetList(user_id)
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"auth_token"+m_strToken+"formatjson"+"methodflickr.photosets.getList";
	if(user_id)
		strSrc = strSrc +"user_id"+user_id;
	var strMd5 = MD5(strSrc);
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.photosets.getList&api_key="+m_strApiKey;
	if(user_id)
		strRequest = strRequest +"&user_id="+user_id;
	strRequest = strRequest +"&api_sig="+strMd5+"&auth_token="+m_strToken+"&format=json";
	
	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}

function GetHotTagList(option)
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strPeriod = "period";
	var strPeriodOption;
	if(option==0)
	{
		strPeriod+="day"
		strPeriodOption = "day";
	}
	if(option==1)
	{
		strPeriod+="week"
		strPeriodOption = "week";
	}
		
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"count100"+"formatjson"+"methodflickr.tags.getHotList"+strPeriod;
	var strMd5 = MD5(strSrc);
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.tags.getHotList&api_key="+m_strApiKey+"&count=100"+"&period="+strPeriodOption;
	strRequest = strRequest +"&api_sig="+strMd5+"&format=json";
	
	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}
	
function FlickrLogin()
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			// Get the data from the server's response
			//document.getElementById("txtHint").innerHTML=xmlHttp.responseText;				
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"formatjson"+"methodflickr.auth.getFrob";
	var strMd5 = MD5(strSrc);
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.auth.getFrob&api_key="+m_strApiKey+"&api_sig="+strMd5+"&format=json";
	xmlHttp.open("POST",strRequest,true);
	xmlHttp.send(null);
}

function GetToken()
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			// Get the data from the server's response
			//document.getElementById("txtHint").innerHTML=xmlHttp.responseText;				
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"formatjson"+"frob"+m_strFrob+"methodflickr.auth.getToken";
	var strMd5 = MD5(strSrc);
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.auth.getToken&api_key="+m_strApiKey+"&api_sig="+strMd5+"&format=json"+"&frob="+m_strFrob;
	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}

function GetContactList(nPage,nPer_page)
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			// Get the data from the server's response
			//document.getElementById("txtHint").innerHTML=xmlHttp.responseText;				
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"auth_token"+m_strToken+"formatjson"+"methodflickr.contacts.getList"+"page"+nPage+"per_page"+nPer_page;
	var strMd5 = MD5(strSrc);
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.contacts.getList&api_key="+m_strApiKey+"&auth_token="+m_strToken+"&api_sig="+strMd5+"&format=json&page="+nPage+"&per_page="+nPer_page;
	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}

function getPeopleInfo(nsid)
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"formatjson"+"methodflickr.people.getInfo"+"user_id"+nsid;
	var strMd5 = MD5(strSrc);
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.people.getInfo&api_key="+m_strApiKey+"&user_id="+nsid+"&api_sig="+strMd5+"&format=json";
	
	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}

function getPersonInfo(nsid)
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"auth_token"+m_strToken+"formatjson"+"methodflickr.people.getInfo"+"user_id"+nsid;
	var strMd5 = MD5(strSrc);
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.people.getInfo&api_key="+m_strApiKey+"&user_id="+nsid;
	strRequest = strRequest +"&api_sig="+strMd5+"&auth_token="+m_strToken+"&format=json";	
	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}

function GetPhotoSizes(photo_id)
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"auth_token"+m_strToken+"formatjson"+"methodflickr.photos.getSizes"+"photo_id"+photo_id;
	var strMd5 = MD5(strSrc);
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.photos.getSizes&api_key="+m_strApiKey+"&photo_id="+photo_id+"&format=json";
	if(m_strToken!=null)
	{
	  strRequest = strRequest +"&api_sig="+strMd5+"&auth_token="+m_strToken;
	}

	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}

function GetPhotosBySetID(photoset_id,page)
{
	updateTableWH();
	m_StrPhotoset_id = photoset_id;
	m_nCurrentPageIndex = page;
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	var strParam = "method=flickr.photosets.getPhotos&photoset_id="+photoset_id+"&media=photo"+"&api_key="+m_strApiKey+"&auth_token="+m_strToken+"&format=json"+"&page="+page+"&per_page="+m_nPhotosPrePage+"&extras=license,owner_name";
	var strRequest = "http://api.flickr.com/services/rest/?" + strParam + "&api_sig=" + getSignature(m_strSecret, strParam);
	
	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}

function OpenToLicensePage(LicenseID)
{
	var bFind = false;
	var strURL;
	for(var i = 0;i<m_nLicenseName.length;i++)
	{
		if(m_nLicenseID[i]==LicenseID)
		{
			bFind = true;
			strURL = m_nLicenseURL[i];
		}
	}
	if(bFind == true)
	{
		if(strURL!="")
			window.open(strURL);			
	}
}

function GetLicenseDescription(LicenseID)
{

	var bFind = false;
	var strURL;
	for(var i = 0;i<m_nLicenseName.length;i++)
	{
		if(m_nLicenseID[i]==LicenseID)
		{
			return m_nLicenseName[i];
		}
	}
}


function GoToHome()
{
	var strURL="http://www.flickr.com/signup/";
	window.open(strURL);
}

function GetPhotoInfo(photo_id)
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e)
		{      
			try
			{        
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;        
			}      
		}    
	}
	
	//define async response handler
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			if(xmlHttp.responseText)
				var myObject = eval('(' + xmlHttp.responseText + ')');
		}
	} 
	
	var strSrc = m_strSecret+"api_key"+m_strApiKey+"auth_token"+m_strToken+"formatjson"+"methodflickr.photos.getInfo"+"photo_id"+photo_id;
	var strMd5 = MD5(strSrc);
	
	var strRequest = "http://api.flickr.com/services/rest/?method=flickr.photos.getInfo&api_key="+m_strApiKey+"&photo_id="+photo_id+"&format=json";
	if(m_strToken!=null)
	  strRequest = strRequest +"&api_sig="+strMd5+"&auth_token="+m_strToken;
	  
	xmlHttp.open("GET",strRequest,true);
	xmlHttp.send(null);
}

function ShowPhotoInfo(photo)
{
	var strTips = "";
	strTips = m_strToolTipsFileUserName+":"+photo.owner.username;
	if(photo.title._content)
		strTips = strTips+"\n"+m_strToolTipsFileName+photo.title._content;
	if(photo.description && photo.description._contentn)
		strTips = strTips + "\n"+m_strToolTipsFileDescription+":"+photo.description._contentn;
		
	var SpaceID = "image"+photo.id;
	
	var image_cell = document.getElementById(SpaceID);
	if(image_cell)
	{
		image_cell.setAttribute('description', strTips);
		image_cell.setAttribute('title', strTips);
	}
}

function GetNotInSets(page) {
    updateTableWH();
    m_nCurrentPageIndex = page;
    var xmlHttp;
    try {    // Firefox, Opera 8.0+, Safari 
        xmlHttp = new XMLHttpRequest();
    }
    catch (e) {    // Internet Explorer    
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }

    //define async response handler
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.responseText)
                var myObject = eval('(' + xmlHttp.responseText + ')');
        }
    }
    var strSrc = m_strSecret + "api_key" + m_strApiKey + "auth_token" + m_strToken + "extraslicense,owner_name"+ "formatjson" + "mediaphoto" + "methodflickr.photos.getNotInSet"+ "page" + page + "per_page" + m_nPhotosPrePage;
    var strMd5 = MD5(strSrc);
    var strRequest = "http://api.flickr.com/services/rest/?method=flickr.photos.getNotInSet&api_key=" + m_strApiKey + "&api_sig=" + strMd5 + "&auth_token=" + m_strToken + "&format=json" + "&page=" + page + "&per_page=" + m_nPhotosPrePage+"&extras=license,owner_name" + "&media=photo";

    xmlHttp.open("GET", strRequest, true);
    xmlHttp.send(null);
    
}