﻿// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0; 
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz = 0;
var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);
var is_opera = ((navigator.userAgent.indexOf("Opera6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0; 
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0; 

var FirstCallCounter = 0;
var Counter = 0;
var Interval = 1000;

var PopupDivXMLHttpObj = null;

window.setTimeout("FirstRefresh()", 1000);
window.setTimeout("showTime()", 1000);
window.setTimeout("startBlink()", 200);
if(typeof startup=='function')
	window.setTimeout("startup()", 10000);
	
function FirstRefresh()
{ 
	if (typeof(__AJAXObjectList) == 'undefined')
	{
		if (FirstCallCounter>=5)
			return;
		else
		{	
			FirstCallCounter++;
			window.setTimeout("FirstRefresh()", 1000);			
			return;
		}
	}
	for (var i=0;i<__AJAXObjectList.length;i++)
	{
		if (__AJAXObjectList[i].NoOfPeriods == 0)
		{
			__AJAXObjectList[i].xmlHttpObj = GetXmlHttpObject(eval('CallBackHandler' + i));             
			if (__AJAXObjectList[i].IsLoading == 0 )
			{
				__AJAXObjectList[i].IsLoading = 1;
				xmlHttp_Get(__AJAXObjectList[i].xmlHttpObj,__AJAXObjectList[i].URL); 
			}
		}
	}
	window.setTimeout("RefreshMe()", 1000);
}

function RefreshMe()
{ 
	for (var i=0;i<__AJAXObjectList.length;i++)
	{
		if ((__AJAXObjectList[i].NoOfPeriods>0) && (Counter%__AJAXObjectList[i].NoOfPeriods == 0))
		{
			__AJAXObjectList[i].xmlHttpObj = GetXmlHttpObject(eval('CallBackHandler' + i));             
			if (__AJAXObjectList[i].IsLoading == 0 )
			{
				__AJAXObjectList[i].IsLoading = 1;
				var URL = __AJAXObjectList[i].URL;
				if (URL.indexOf('?')<0)
					URL += '?';
				else
					URL += '&';	
				URL += 'AjaxCheck=1';	
				xmlHttp_Get(__AJAXObjectList[i].xmlHttpObj,URL); 
			}
		}
    }
	Counter = (Counter+1)%Periods;    
	window.setTimeout("RefreshMe()", Interval);    
}

// XMLHttp send GET request 
function xmlHttp_Get(xmlhttp, url) 
{ 
	xmlhttp.open('GET', url, true); 
	xmlhttp.send(null); 
} 

function GetXmlHttpObject(handler) 
{ 
    var objXmlHttp = null;    //Holds the local xmlHTTP object instance 
    //Depending on the browser, try to create the xmlHttp object 
    if (is_ie)
    { 
        //The object to create depends on version of IE 
        //If it isn't ie5, then default to the Msxml2.XMLHTTP object 
        var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; 
            
        //Attempt to create the object 
        try
        { 
            objXmlHttp = new ActiveXObject(strObjName); 
            objXmlHttp.onreadystatechange = handler; 
        } 
        catch(e)
        { 
	        //Object creation errored 
            alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled'); 
            return; 
        } 
    } 
    else if (is_opera)
    { 
        //Opera has some issues with xmlHttp object functionality 
        alert('Opera detected. The page may not behave as expected.'); 
        return; 
    } 
    else
    { 
        try
        {     
			// Mozilla | Netscape | Safari 
			objXmlHttp = new XMLHttpRequest(); 
			objXmlHttp.onload = handler; 
			objXmlHttp.onerror = handler; 
		}
        catch(e)
        { 
            return; 
        } 			
    } 
        
    //Return the instantiated object 
    return objXmlHttp; 
}

function AjaxCallBackHandler(i) 
{ 
	try
	{
		if (__AJAXObjectList == undefined)
		{
			return false;
		}
		if (__AJAXObjectList[i].xmlHttpObj.readyState == 4 || __AJAXObjectList[i].xmlHttpObj.readyState == 'complete')
		{ 
			var bOK = false;
			var err_str = '';

			var status = __AJAXObjectList[i].xmlHttpObj.status; 
			var str = '';
			if (status != 200)
				err_str = 'Lỗi kết nối!';
			else
			{
				str = __AJAXObjectList[i].xmlHttpObj.responseText; 
				if (str.length == 0)
				{
					document.getElementById(__AJAXObjectList[i].ElementID).innerHTML = '<!-- -->'; 
					bOK = true;
				}
				else if (str.substring(0,15) == '<!-- ExtraData:')
				{
					if (__AJAXObjectList[i].ExtraData != null)
					{
						var tmp = str.indexOf(' -->');
						if (tmp>0)
						{
							var ExtraData = str.substring(0,tmp+4);					
							if (__AJAXObjectList[i].ExtraData == ExtraData)
							{
								__AJAXObjectList[i].IsLoading = 0;
								return false;	
							}
						}
					}
					__AJAXObjectList[i].xmlHttpObj = GetXmlHttpObject(eval('CallBackHandler'+i));      
					xmlHttp_Get(__AJAXObjectList[i].xmlHttpObj,__AJAXObjectList[i].URL);        
					__AJAXObjectList[i].IsLoading = 0;
					return false;
				}
				else if ((str.substring(str.length-18) == '<!-- Done-Stop -->') || (str.substring(str.length-13) == '<!-- Done -->'))
				{
					var tmp1 = str.lastIndexOf('<!-- ExtraData:');
					if (tmp1>0)
					{
						var tmp2 = str.indexOf(' -->',tmp1);
						if (tmp2>0)
							__AJAXObjectList[i].ExtraData = str.substring(tmp1,tmp2+4);
					}
					document.getElementById(__AJAXObjectList[i].ElementID).innerHTML = str; 
					if (str.substring(str.length-18) == '<!-- Done-Stop -->')
						__AJAXObjectList[i].NoOfPeriods = 0;
					bOK = true;
				}
				else if (str == '<!-- Error -->')
					err_str = 'Lỗi server!';
			}
			__AJAXObjectList[i].IsLoading = 0;
			if (!bOK && (err_str.length>0))
			{
				var err = document.getElementById('ajax_error_display');
				if (err)
				{
					err.innerHTML = err_str;
					err.style.visibility = 'visible';
					window.setTimeout('HideErr()', 10000);
				}
			}
			return bOK;
		}
	}
	catch (e)
	{
		var err = document.getElementById('ajax_error_display');
		if (err)
		{
			err.innerHTML = 'Lỗi ajax!';
			err.style.visibility = 'visible';
			window.setTimeout('HideErr()', 1000);
		}
		return false;		
	}
} 

function ShowAnnouncement()
{
	var URL = "HTML/announcement.htm";
	LoadAjax('_PopupContentDiv_',URL);
}
function ShowPollResult(submitingForm,RegularVoteID)
{
	var URL = "_ShowPollResult.aspx?ID=" + RegularVoteID;
	LoadAjax('_PopupContentDiv_',URL);
}
function ShowLiveScoreDetail(QueryString)
{
	var URL = "_LiveScoreDetail.aspx?" + QueryString;
	LoadAjax('_PopupContentDiv_',URL);
}
var myStandAloneXmlHttpObj;
var myElementID;
function LoadAjax(ElementID,URL)
{
	myElementID = ElementID;
	myStandAloneXmlHttpObj = GetXmlHttpObject(CallBackHandlerAjaxStanAlone);             
	xmlHttp_Get(myStandAloneXmlHttpObj,URL); 
} 
function CallBackHandlerAjaxStanAlone()
{	
	try
	{
		if (myStandAloneXmlHttpObj.readyState == 4 || myStandAloneXmlHttpObj.readyState == 'complete')
		{ 			
			var bOK = false;
			var err_str = '';

			var status = myStandAloneXmlHttpObj.status; 
			var str = '';
			if (status != 200)
				err_str = 'Lỗi kết nối!';
			else
			{				
				str = trim(myStandAloneXmlHttpObj.responseText); 
				if (str.length == 0)
				{
					document.getElementById(myElementID).innerHTML = '<!-- -->'; 
					bOK = true;
				}
				else if (str.substring(str.length-13).indexOf('-- Done --')>=0)
				{					
					document.getElementById(myElementID).innerHTML = str; 
					Show('_PopupDiv_');					
					bOK = true;
				}
				else if (str == '<!-- Error -->')
					err_str = 'Lỗi server!';
			}
			if (!bOK && (err_str.length>0))
			{
				var err = document.getElementById('ajax_error_display');
				if (err)
				{
					err.innerHTML = err_str;
					err.style.visibility = 'visible';
					window.setTimeout('HideErr()', 10000);
				}
			}
		}
	}
	catch (e)
	{
		var err = document.getElementById('ajax_error_display');
		if (err)
		{
			err.innerHTML = 'Lỗi ajax!';
			err.style.visibility = 'visible';
			window.setTimeout('HideErr()', 1000);
		}		
	}
}

function HideErr()
{
	var err = document.getElementById('ajax_error_display');
	if (err)
		err.style.visibility = 'hidden';
}
function HideLoading()
{
	Hide('loading_div');
}

function getTime(diff)
{
	var time = new Date();
	//Adjust summer-winter time
	var DLSTime = new Date();
	//var gmtMS = time.getTime() + ((time.getTimezoneOffset()+diff*60) * 60000);	//winter time
	var gmtMS = time.getTime() + ((time.getTimezoneOffset()+(diff+1)*60) * 60000);	//summer time
	var gmtTime =  new Date(gmtMS);
	var hr = gmtTime.getHours();
	var min = gmtTime.getMinutes();

	hr = ((hr < 10) ? " " : "") + hr;
	min = ((min < 10) ? "0" : "") + min;
	return hr + ":" + min;
}

function getVNTime()
{
	var time = new Date();

	var dow = time.getDay();
	if (dow==0)
		dow = "Chủ nhật";
	else if (dow==1)
		dow = "Thứ hai";
	else if (dow==2)
		dow = "Thứ ba";
	else if (dow==3)
		dow = "Thứ tư";
	else if (dow==4)
		dow = "Thứ năm";
	else if (dow==5)
		dow = "Thứ sáu";
	else if (dow==6)
		dow = "Thứ bảy";		
	var day = time.getDate();
	var month = time.getMonth()+1;
	var year = time.getFullYear();
	var hr = time.getHours();
	var min = time.getMinutes();

	day = ((day < 10) ? "0" : "") + day;
	month = ((month < 10) ? "0" : "") + month;
	hr = ((hr < 10) ? "0" : "") + hr;
	min = ((min < 10) ? "0" : "") + min;

	return dow + " " + day + "/" + month + "/" + year + " " + hr + ":" + min;
}

function showTime()
{
	for (var tz = 0; tz<4 ; tz++)
	{
		for (var i = 1; i < 100; i++)
		{
			var clock_name = "time" + tz + "_" + i;
			var obj = document.getElementById(clock_name);
			if (obj == null)
				break;
			obj.innerHTML = getTime(tz);
		}
	}
	var vnclock = document.getElementById("_VNClock_");
	if (vnclock != null)
		vnclock.innerHTML = getVNTime();
	
	setTimeout("showTime()", 10000);
}

function doBlink() 
{
  var blink = document.all.tags("BLINK")
  for (var i=0; i < blink.length; i++)
    blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : "";
}

function startBlink() 
{
  // Make sure it is IE4
  if (document.all)
    setInterval("doBlink()",1000);
}

function Toggle(id) 
{
	var itm = null;
	if (document.getElementById) 
	{
		itm = document.getElementById(id);
	}
	else if (document.all)
	{
		itm = document.all[id];
	} 
	else if (document.layers)
	{
		itm = document.layers[id];
	}
	if (!itm) 
	{
		// do nothing
	}
	else if (itm.style) 
	{
		if (itm.style.display == "none")
		{ 
			itm.style.display = ""; 
		}
		else
		{
			itm.style.display = "none"; 
		}
	}
}
function Show(id) 
{
	var itm = null;
	if (document.getElementById) 
	{
		itm = document.getElementById(id);
	}
	else if (document.all)
	{
		itm = document.all[id];
	} 
	else if (document.layers)
	{
		itm = document.layers[id];
	}
	if (!itm) 
	{
		// do nothing
	}
	else if (itm.style) 
	{
		if (itm.style.display == "none")
		{ 			
			itm.style.display = ""; 
					
		}
	}
}

function Hide(id) 
{
	var itm = null;
	if (document.getElementById) 
	{
		itm = document.getElementById(id);
	}
	else if (document.all)
	{
		alert('there'+id);	
		itm = document.all[id];
	} 
	else if (document.layers)
	{
		alert('huu'+id);	
		itm = document.layers[id];
	}
	if (!itm) 
	{
		// do nothing
	}
	else if (itm.style) 
	{	
		if (itm.style.display != "none")
		{ 
			itm.style.display = "none"; 
		}
	}
}
function SetPositionTop(id,top) 
{
	var itm = null;
	if (document.getElementById) 
	{
		itm = document.getElementById(id);
	}
	else if (document.all)
	{
		itm = document.all[id];
	} 
	else if (document.layers)
	{
		itm = document.layers[id];
	}
	if (!itm) 
	{
		// do nothing
	}
	else
	{
		itm.style.top = top + 'px';
	}
}

//for swaping blocking options images
var blkImages = new Array(6);
blkImages[0] = "img/allow_all_bt.gif";
blkImages[1] = "img/allow_all_img.gif";
blkImages[2] = "img/allow_list_bt.gif";
blkImages[3] = "img/allow_list_img.gif";
blkImages[4] = "img/block_all_bt.gif";
blkImages[5] = "img/block_all_img.gif";
blkImages[6] = "img/block_list_bt.gif";
blkImages[7] = "img/block_list_img.gif";

for (i=0; i < blkImages.length; i++) {
    var preload = new Image();
    preload.src = blkImages[i];
}

function ToggleImg(btn,index)
{
	var current = btn.src;
	if (current.indexOf('_img.gif')<0)
	{
		for (i=0;i<=3;i++)
		{
			var tmp = 'opt'+(i+1);
			var obj = document.getElementById(tmp);
			obj.src = blkImages[i*2];
		}
		btn.src=blkImages[index*2+1];
		var flag = document.getElementById('blockingflag');
		if (index==1)
			flag.value='B';
		else if (index==2)
			flag.value='A';			
		else if (index==3)
			flag.value='L';
		else
			flag.value='N';
	}
}
function setStarValue(star)
{
	var img_obj = document.getElementById('img_rating');
	img_obj.src = "img/stars-" + star + "-0.gif";
}
function trim(s)
{
	return s.replace(/^\s*(.*?)\s*$/,"$1")
}
function GetSelectedWeek()
{
	var obj = document.getElementById('WeeklyPeriod');
	return obj.value;
}
