var infosoftRequests = Array();
var infosoftObjects = Array();
var infosoftObjectsID = Array();
var infosoftObjectsRenderedOrLoaded = Array();
var infosoftObjectsDataXML = Array();

var infosoftRequestsCount = 0;


function createInfosoftRequest(url, infosoftObject, infosoftObjectID)
{
	var index = getInfosoftObjectIndex(infosoftObjectID);
	if(index==-1)
	{
		index = infosoftRequestsCount;
		infosoftRequestsCount = infosoftRequestsCount+1;
	}	
	infosoftObjects[index]=infosoftObject;
	var reqInfosoft = null;
	
	try
	{
		reqInfosoft = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(e)    // Failed
	{
		reqInfosoft  = new XMLHttpRequest()
	}

	infosoftRequests[index]=reqInfosoft;
	infosoftObjectsID[index]=infosoftObjectID;
	infosoftObjectsRenderedOrLoaded[index]=false;
	infosoftObjectsDataXML[index]="";

	reqInfosoft.open("GET", url,true);
	reqInfosoft.onreadystatechange = function(){ processreqInfosoftFinished(index); };
	reqInfosoft.send(null);
}

function infosoftObjectsetDataXML(index)
{
	if(!infosoftObjectsRenderedOrLoaded[index])
	{
		infosoftObjectsRenderedOrLoaded[index] = true;
	}
	else
	{
		infosoftObjects[index].setDataXML(infosoftObjectsDataXML[index]);
		//infosoftObjectsDataXML[index]="";
	}	
}


function processreqInfosoftFinished(index)
{
	var reqInfosoft = infosoftRequests[index];
	// if xmlhttp shows "loaded"
    if (reqInfosoft.readyState == 4)
    {
        // if "OK"
        if (reqInfosoft.status == 200)
        {
          infosoftObjectsDataXML[index] = reqInfosoft.responseText;
          infosoftObjectsetDataXML(index);
        }
        else
        {
            //alert("Problem retrieving data: " + reqInfosoft.statusText);
        }
    }
}

function getInfosoftObjectIndex(DOMId)
{
	var index = -1;
	for (var i=0; i<infosoftObjectsID.length && index==-1;i++)
	{
		if (infosoftObjectsID[i]==DOMId)
		{
			//Yes - it is.
			index = i;
		}
	}		
	return index;

}
//FC_Rendered method is called whenever a FusionCharts/maps  chart/map on the page
//has finished initial rendering. To this function, the chart passes its
//own DOM Id.
function FC_Rendered(DOMId)
{
	if(loadedOnLoad && !loadedFC)
	{	
		scheduleGeo();
		loadedFC =	true;
	}
	var index = getInfosoftObjectIndex(DOMId);
	
	if(index != -1)
	{
     	infosoftObjectsetDataXML(index);
	}
	return true;
}

function embedThemeMapSWF(divID, version, obj_src, obj_width, obj_height,languageSet,theme,base,category)
{
	var protocol = window.location.protocol;
	var d = document.getElementById(divID);
	
	if (d!=null)
	{	
		var d_value = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+protocol+'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=';
		d_value = d_value.concat(version).concat('"');
		d_value = d_value.concat(' width="').concat(obj_width).concat('"');
		d_value = d_value.concat(' height="').concat(obj_height).concat('"');
		d_value = d_value.concat(' >');
		d_value = d_value.concat('<param name="movie" value="').concat(base).concat(obj_src).concat('" />');
		d_value = d_value.concat('<param name="quality" value="high" />');
		d_value = d_value.concat('<param name="WMode" value="Transparent" />');
		d_value = d_value.concat('<param name="FLASHVARS" value="theme=').concat(theme).concat('&amp;languageSet=').concat(languageSet).concat('&amp;category=').concat(category).concat('" />');
		d_value = d_value.concat('<param name="BASE" value="').concat(base).concat('" />');
		d_value = d_value.concat('<embed quality="high" pluginspage="'+protocol+'//www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"');
		d_value = d_value.concat(' src="').concat(base).concat(obj_src).concat('"');
		d_value = d_value.concat(' width="').concat(obj_width).concat('"');
		d_value = d_value.concat(' height="').concat(obj_height).concat('"');
		d_value = d_value.concat(' FLASHVARS="theme=').concat(theme).concat('&amp;languageSet=').concat(languageSet).concat('&amp;category=').concat(category).concat('"');
		d_value = d_value.concat(' BASE="').concat(base).concat('"');
		d_value = d_value.concat(' />');
		d_value = d_value.concat('</object>');
		
		d.innerHTML =  d_value;
	}
}

function showPoint(lat,lon,title) 
{

  var rss = "<rss version=\"2.0\"><channel><item><title/><geo:lat>" + lat + "</geo:lat><geo:long>" + lon + "</geo:long></item></channel></rss>";
  document.worldkit.SetVariable("JRSSComm",rss);
}

function embedWorldkitSWF(divID, obj_width, obj_height, base)
{
	var protocol = window.location.protocol;
	var d = document.getElementById(divID);
	if (d!=null)
	{	
		var d_value = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+protocol+'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" WIDTH="'+obj_width+'" HEIGHT="'+obj_height+'" id="worldkit">';
		d_value = d_value + '<param NAME=movie VALUE="'+base+'worldkit.swf?confurl='+base+'config.xml">';
		d_value = d_value + '<param NAME=quality VALUE=high>';
		d_value = d_value + '<param NAME=bgcolor VALUE=#FFFFFF>';
		d_value = d_value + '<embed src="'+base+'worldkit.swf?confurl='+base+'config.xml" quality=high bgcolor=#FFFFFF WIDTH="'+obj_width+'" HEIGHT="'+obj_height+'" NAME="worldkit" swliveconnect="true" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="'+protocol+'//www.macromedia.com/go/getflashplayer">';
		d_value = d_value + '</embed>';
		d_value = d_value + '</object>';

		d.innerHTML =  d_value;
	}
}


function embedCountrySWF(divID, version, obj_src, obj_width, obj_height, countryClicked, base)
{
	var protocol = window.location.protocol;
	var d = document.getElementById(divID);
		
	if (d!=null)
	{	
		var d_value = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+protocol+'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=';
		d_value = d_value.concat(version).concat('"');
		d_value = d_value.concat(' width="').concat(obj_width).concat('"');
		d_value = d_value.concat(' height="').concat(obj_height).concat('"');
		d_value = d_value.concat(' >');
		d_value = d_value.concat('<param name="movie" value="').concat(base).concat(obj_src).concat('" />');
		d_value = d_value.concat('<param name="quality" value="high" />');
		d_value = d_value.concat('<param name="FLASHVARS" value="countryClicked=').concat(countryClicked).concat('" />');
		d_value = d_value.concat('<param name="BASE" value="').concat(base).concat('" />');
		d_value = d_value.concat('<embed quality="high" pluginspage="'+protocol+'//www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"');
		d_value = d_value.concat(' src="').concat(base).concat(obj_src).concat('"');
		d_value = d_value.concat(' width="').concat(obj_width).concat('"');
		d_value = d_value.concat(' height="').concat(obj_height).concat('"');
		d_value = d_value.concat(' FLASHVARS="countryClicked=').concat(countryClicked).concat('"');
		d_value = d_value.concat(' BASE="').concat(base).concat('"');
		d_value = d_value.concat(' />');
		d_value = d_value.concat('</object>');
		
		d.innerHTML =  d_value;
	}
}


function embedChartSWF(chart, divID, chartID, obj_width, obj_height, xml_type, xml_file, base,option)
{
	var secure = window.location.protocol == "https:";
	var chartURL = "";
	var dataURL = "";
	chartURL = base + "Charts/"+chart;
	var d = new Date();
	var ts = d.getTime();
	if (xml_type == "datamaps")
	{
		dataURL = base + "StatGraphs/"+xml_file;
	}
	else if (xml_type == "story")
	{
		dataURL = base + "dynamic?guid="+xml_file+"&edition=storygraph&ftbc="+ts;
	}
	else if (xml_type == "countrytheme")
	{
		dataURL = base + "dynamic?categoryID="+xml_file+"&edition=countrythemesgraph&ftbc="+ts;
	}
	else if (xml_type == "trend")
	{
		dataURL = base + "dynamic?categoryID="+xml_file+"&edition=categorytrendgraph&ftbc="+ts;
	}
	else if (xml_type == "countryfeed")
	{
		dataURL = base + "dynamic?country="+xml_file+"&edition=countryfeedtrendgraph&ftbc="+ts;
	}
	else if (xml_type == "trendcombi")
	{
		dataURL = base + "dynamic?categoryID="+xml_file+"!"+option+"&edition=categorytrendgraph&ftbc="+ts;
	}
	else if (xml_type == "sources")
	{
		dataURL = base + "dynamic?categoryID="+xml_file+"&edition=categorysourcesgraph&ftbc="+ts;
	}
	else //xml_type is language
	{
		dataURL = base + "clustergraphs/"+xml_type+"_"+xml_file;
	}
	var chart1 = new FusionCharts(chartURL, chartID, obj_width, obj_height, "0", "1");
	chart1.addParam("WMode", "Transparent");
	chart1.setDataXML("<chart></chart>");
	chart1.render(divID);

	createInfosoftRequest(dataURL, chart1, chartID);
	
	//chart1.setDataURL(escape(dataURL));
	//chart1.render(divID);
}


function embedMapSWF(mapFile, divID, mapID, obj_width, obj_height, base, region, theme)
{
	var secure = window.location.protocol == "https:";
	var mapURL = base + "FusionMaps/FCMap_"+mapFile+".swf";
	var dataURL = "";

	var d = new Date();
	var ts = d.getTime();

	dataURL = base + "dynamic?categoryID="+theme+"&regionID="+region+"&edition=themefusionmap&ftbc="+ts;

	var map1 = new FusionMaps(mapURL, mapID, obj_width, obj_height, "0", "1"); 
	map1.addParam("WMode", "Transparent");

	map1.setDataXML('<map showCanvasBorder="0" bgColor="FFFFFF" bgAlpha="100" fillColor="FFFFFF" showLabels="0" showShadow="0" showBevel="0" showLegend="0" hoverColor="D7F4FF" baseFontSize="9"/>');
	map1.render(divID);
	createInfosoftRequest(dataURL, map1, mapID);

	//map1.setDataURL(escape(dataURL));		   
	//map1.render(divID);

}


function embedShowRegionMapSWF(mapFile, divID, mapID, obj_width, obj_height, base, region, theme)
{
	var d = document.getElementById(divID);
	d.innerHTML="";
	embedMapSWF(mapFile, divID, mapID, obj_width, obj_height, base, region, theme);
}


