	function GetXmlRequestObj()
	{
		var obj;
		if(this.XMLHttpRequest == undefined)
		{
			try
			{
				obj = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(except)
			{
				try
				{
					obj = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch(except)
				{
					alert("Please use IE6 or Mozilla (Firefox, etc.) to browse HKFiance.com. Thank you.");
				}
			}
		}
		else
			obj = new XMLHttpRequest();

		return obj;
	}
	
	var abcXML = GetXmlRequestObj();
	var a24XML = GetXmlRequestObj();
	var aeXML = GetXmlRequestObj();

	var A24numOfCams = null;
	var AbcnumOfCams = null;
	var hkCamList = [];
	var hkabcCamList = [];
	var hka24CamList = [];
	var ae_pre_loaded = false;
	var abc_pre_loaded = false;
	var a24_pre_loaded = false;
	var abc_ready = false;

	var imgDir = "http://images1.hkfiance.com/images/";
	var loadingText = "Loading...";

	function LoadXML(xmlObj, url, stateHandler, loadHandler)
	{
		xmlObj.open("GET", url, true);
		xmlObj.setRequestHeader("Pragma", "no-cache");
		xmlObj.setRequestHeader("Cache-Control", "no-cache");
		if(xmlObj.onload == undefined)
			xmlObj.onreadystatechange = stateHandler;
		else
			xmlObj.onload = loadHandler; 
		xmlObj.send(null);
	}

	function LoadCams(cat)
	{
		if(cat == "All")
		{
			AeLoadXML("hkfiance_08");
			A24LoadXML(cat, 6);
			//AbcLoadXML("None", 1);
		}
		else if(cat == "Girls")
		{
			AeLoadXML("hkfiance_02");
			A24LoadXML(cat, 6);
			//AbcLoadXML("Girls Cams", 1);
		}
		else if(cat == "Mature")
		{
			AeLoadXML("hkfiance_03");
		}
		else if(cat == "Gays")
		{
			AeLoadXML("hkfiance_05");
		}
		else if(cat == "Shemale")
		{
			AeLoadXML("hkfiance_06");
		}
		else if(cat == "Lesbians")
		{
			AeLoadXML("hkfiance_07");
			A24LoadXML(cat, 6);
		}
		else if(cat == "Group")
		{
			AeLoadXML("hkfiance_01");
			A24LoadXML(cat, 6);
		}
		else if(cat == "Boys")
		{
			AeLoadXML("hkfiance_04");
			A24LoadXML(cat, 6);
		}
		else
			A24LoadXML(cat, 11);
	}

	// AE
	function AeLoadXML(template)
	{
		var url = "/aecams/?t_id="+template+"&bg=67070A&psid=hkfiance&pstour=t1&psprogram=REVS&site=las&rnd="+(new Date()).getTime();

		LoadXML(aeXML, url, function() { if (aeXML.readyState == 4) { AeXmlLoaded() } }, AeXmlLoaded);
	}
	
	function AeXmlLoaded()
	{
		var camList = "hkCamList = [";

		var aeHtml = aeXML.responseText;

		var intro_token = " background-repeat: no-repeat;\"><a href=\"";
		var middle_token = "\" target=\"_blank\"><img src=\"";
		var exit_token = "\" width=\"";
		var name_start_token = "performerid=";
		var name_end_token = "&";

		var sId = 0;
		var maxCams = 10;
		for(i = 0; i < maxCams; i++)
		{
			var iId = sId + aeHtml.substring(sId).indexOf(intro_token);
			var mId = iId + aeHtml.substring(iId).indexOf(middle_token);
			var eId = mId + aeHtml.substring(mId).indexOf(exit_token);

			if(iId < sId || mId < sId || eId < sId)
				break;

			var url = aeHtml.substring(iId + intro_token.length, mId);
			var img = aeHtml.substring(mId + middle_token.length, eId);

			var nameSid = url.indexOf(name_start_token) + name_start_token.length;
			var nameLen = url.substring(nameSid).indexOf(name_end_token);

			if(nameLen == -1)
				nameLen = url.length - nameSid;
			var name = url.substring(nameSid, nameSid+nameLen);
			
			if(i != 0)
				camList += ", ";
			camList += "['" + url + "', '" + img + "', '" + name + "']";

			sId = eId;
		}

		camList += "]";

		eval(camList);
		ae_pre_loaded = true;
		if(abc_ready)
			DrawAeCams();
	}

	function DrawAeCams()
	{
		DrawCams(hkCamList, hkcams1, "", "", "Flash", "abc", null);
	}


	// ABC
	function A24LoadXML(cat, num)
	{
		var url = "/Asian247/grid_performers_flash.php?wid=100149&cid=100&vanity=hkfiance.asians247.com&col=1&row="+num+"&fg=FFFFFF&bg=eeeeff&trans=yes&style=1&cat="+cat+"&ocat=no&rnd="+(new Date()).getTime();
		A24numOfCams = num;

		LoadXML(a24XML, url, function() { if (a24XML.readyState == 4) { A24XmlLoaded() } }, A24XmlLoaded);
	}

	function AbcLoadXML(cat, num)
	{
		var url = "/babecams/performers.php?c=1&r="+num+"&b=eeeeff&cat="+cat+"&oc=no&id=hkfiance&rnd="+(new Date()).getTime();
		AbcnumOfCams = num;

		LoadXML(abcXML, url, function() { if (abcXML.readyState == 4) { AbcXmlLoaded() } }, AbcXmlLoaded);
	}

	function A24XmlLoaded()
	{
		var camList = a24XML.responseText;
		var sId = camList.indexOf("A247_MODELS	=");
		var eId = camList.indexOf("]] ;");
		eval("hka24CamList = " + camList.substring(sId + 10, eId + 4));
		a24_pre_loaded = true;
		if(abc_ready)
			DrawA24Cams();
	}

	function DrawA24Cams()
	{
		DrawCams(hka24CamList, hkcams2, "", "http://hkfiance.asians247.com/chat.php?wid=100149&cid=100&context=free&model_id={id}&model={model}", "Flash", "a24", A24numOfCams);
	}

	function AbcXmlLoaded()
	{
		var camList = abcXML.responseText;
		var sId = camList.indexOf("ABC_RESULT	= ");
		var eId = camList.indexOf("]] ;");
		eval("hkabcCamList " + camList.substring(sId + 10, eId + 4));
		abc_pre_loaded = true;
		if(abc_ready)
			DrawAbcCams();
	}

	function DrawAbcCams()
	{
		DrawCams(hkabcCamList, hkcams3, "http://www.babecams.tv/", "http://hkfiance.asianbabecams.com/free.asp?Performer=", "Java", "abc", AbcnumOfCams);
	}

	function EmptyImg(h, name) { return '<img src="'+imgDir+'empty.gif" height='+h+(name = undefined ? '' : ' id="'+name+'"')+'><br>'; }
	function FaceImg(n) { return '<img src="'+imgDir+'babecams/babe'+(n%2)+'.gif" border=0>' }
	function WinStatus(w) { window.status = 'Chat Free with '+w+' @ HKFIANCE.COM Now!'; return true; }
	function Highlight(n, t) { var ctx = eval('name'+n); ctx.style.fontWeight = "bold"; ctx.style.color = "red"; var gl = eval('girl'+n); gl.style.border = "1pt solid red"; gl.prev_width = gl.width; gl.width *= 1.1; gl.prev_height = gl.height; gl.height *= 1.1; var e = eval('empty'+n); e.prev_height = e.height; e.height -= gl.height - gl.prev_height + 2; return WinStatus(t); }
	function UnHighlight(n) { var ctx = eval('name'+n); ctx.style.fontWeight = "normal"; ctx.style.color = "black"; var gl = eval('girl'+n); gl.style.border = "none"; gl.width = gl.prev_width; gl.height = gl.prev_height; var e = eval('empty'+n); e.height = e.prev_height; window.status=''; return true}

	function DrawCams(cl, targetObj, preImg, preLink, format, provider, camNum)
	{
		var pre1 = '<img src="'+imgDir+'babecams/callout.gif" border=0>';
		var pre2 = '<img src="'+imgDir+'babecams/calloutend.gif" border=0>';
		var post = '<img src="'+imgDir+'babecams/BabeCamsViewLive'+format+'.gif" border=0>';

		if(hkcams1.innerHTML == loadingText)
			hkcams1.innerHTML = '';

		var camLen = Math.min(camNum ? camNum : cl.length, cl.length);

		for(i = 0; i < camLen; i++)
		{
			var url;
			var imgsrc;
			var modelname;

			if(provider == "a24")
			{
				var id = cl[i][0];
				var name = cl[i][1];
				url = preLink.replace("{id}", id).replace("{model}", name);
				imgsrc = preImg+cl[i][2];
				modelname = name;
			}
			else if (provider == "abc")
			{
				url = preLink+cl[i][0];
				imgsrc = preImg+cl[i][1];
				modelname = cl[i].length == 2 ? cl[i][0] : cl[i][2];
			}

			var toolTip = 'Free Chat with '+modelname+' @ HKFIANCE.COM';

			var id = provider + format + i;

			var img	= '<img id="girl'+id+'" src="'+imgsrc+'" width=120 height=90 alt="'+toolTip+'">';
			var html = '<a href="'+url+'" title="'+toolTip+'" target="perfWind" '+
				'OnMouseout="return UnHighlight(\''+id+'\');" OnMouseover="return Highlight(\''+id+'\', \''+modelname+'\' )">'+
				'<table cellpadding=0 cellspacing=0 border=0><tr valing=middle><td>'+FaceImg(i)+pre1+'<br></td><td id="name'+id+
				'" bgcolor="#ffffff">'+modelname+'<br></td><td>'+pre2+'</td></tr></table>' + EmptyImg(2) +
				img + '<br>' + post + '<br>' + EmptyImg(12, "empty"+id) + '</a>';
			
			targetObj.innerHTML = targetObj.innerHTML + html;
		}
	}

	var currentTimeout = null;

	function ReloadFrame(cat)
	{
		clearTimeout(currentTimeout);
		hkcams1.innerHTML = loadingText;
		hkcams2.innerHTML = "";
		hkcams3.innerHTML = "";
		LoadCams(cat);
		currentTimeout = setTimeout("ReloadFrame(\""+cat+"\");", 250000);
	}

