// Do nothing
function doNothing(){window.status='';}

// Open popup window
function doOpenLinkToPopupWindow(){
	var url = arguments[0]||'/';
	var width = arguments[1]||400;
	var height = arguments[2]||400;
	var resizable = arguments[3]||'yes';
	var scrollbars = arguments[3]||'yes';
	var left = ((document.body.clientWidth - width) / 2) + window.screenLeft;
	var top = (((document.body.clientHeight - height) / 2)) + window.screenTop;
	window.open(url, '', 'width='+width+',height='+height+',left='+left+',top='+top+',resizable='+resizable+',scrollbars='+scrollbars);
}

// Open banner
function OpenBanner(id,isGroup){
	if(isGroup==1)
	{
		eval("var current=crt" + id);
		eval("var itemID=bnrID" + id + current);
	}
	else
		var itemID=id;
	frmWebPlusHiddenForm.txtID.value = itemID;
	frmWebPlusHiddenForm.txtLocation.value = location.href;
	frmWebPlusHiddenForm.action = '../i-web/banner.asp?subobject=item&action=open';
	frmWebPlusHiddenForm.submit();
}

// Change banner (for web banner or special banner)
function doChangeWebPlusBanner(id,max){
	eval("var current=crt" + id);
	if(current<max)
	{
		eval("crt" + id + "++");
		current++;
	}
	else
	{
		eval("crt" + id + "=0");
		current=0;
	}	
	eval("var nextImg = bnr" + id + current);
	document.images['imgpapaCMS'+id].src = nextImg.src;
}

// Open web link
function doOpenWebPlusLink(url){
	frmWebPlusHiddenForm.txtLocation.value = location.href;
	frmWebPlusHiddenForm.action = url;
	frmWebPlusHiddenForm.submit();
}

// Information for updating hits counter
function doGetWebPlusCounterInfo(){
	// Browser
	var browser = '';
	if(navigator.appName=='Netscape')
		browser = 'NS';
	if(navigator.appName=='Microsoft Internet Explorer')
		browser = 'MSIE';
	if(navigator.appVersion.indexOf('MSIE 3')>0)
		browser = 'MSIE';
	// Screen resolution
	var screenWidth = screen.width;
	var screenHeight = screen.height; 
	// Color depth
	var colorDepth = 256;
	if (navigator.appName != 'Netscape')
		colorDepth = screen.colorDepth;
	else 
		colorDepth = screen.pixelDepth;
	// Referer
	var referer = '' + escape(document.referrer);
	// Counter URL
	return '&w=' + screenWidth + '&h=' + screenHeight + '&c=' + colorDepth + '&b=' + browser + '&r=' + referer
}

// Return the string determines full date of client (International)
function getFullDate(){
	var now = new Date();
	var month = "";
	var day = "";
	var first_date_num="";

  if (now.getDate() < 10)
		first_date_num="0";
	else
		first_date_num="";
			
	switch (now.getDay()){
		case 0: day="Sun";break;
		case 1: day="Mon";break;
		case 2: day="Tue";break;
		case 3: day="Wed";break;
		case 4: day="Thur";break;
		case 5: day="Fri";break;
		case 6: day="Sat";break;
	}
	
	switch (now.getMonth()){
		case  0: month="Jan";break;
		case  1: month="Feb";break;
		case  2: month="Mar";break;
		case  3: month="Apr";break;
		case  4: month="May";break;
		case  5: month="Jun";break;
		case  6: month="Jul";break;
		case  7: month="Aug";break;
		case  8: month="Sep";break;
		case  9: month="Oct";break;
		case 10: month="Nov";break;
		case 11: month="Dec";break;
	}
	
	return day + ", " + month + " " + first_date_num + now.getDate() + ", " + now.getFullYear();
}

// Return the string determines full date of client (Vietnamese)
function getFullDateInVietnamese(){
	var now = new Date();
	var month = "";
	var day = "";
	var first_date_num="";

  if (now.getDate() < 10)
  	first_date_num="0";
	else
		first_date_num="";
			
	switch (now.getDay()){
		case 0: day="Ch&#7911; nh&#7853;t";break;
		case 1: day="Th&#7913; hai";break;
		case 2: day="Th&#7913; ba";break;
		case 3: day="Th&#7913; t&#432;";break;
		case 4: day="Th&#7913; n&#259;m";break;
		case 5: day="Th&#7913; s&#225;u";break;
		case 6: day="Th&#7913; b&#7843;y";break;
	}
	
	return day + " ng&#224;y " + first_date_num + now.getDate() + " th&#225;ng " + (now.getMonth()+1) + " n&#259;m " + now.getFullYear();
}

// Return the string determines full date & time of client (GMT)
function getFullDateTimeInGMT(){
	var now = new Date();
	var month = "";
	var day = "";
	var date = now.getDate();

	if ((date==1)||(date==21)||(date==31)) {date = date + "st"};
	if ((date==2)||(date==22)) {date = date + "nd"};
	if ((date==3)||(date==23)) {date = date + "rd"};
			
	switch (now.getDay()){
		case 0: day="Sunday";break;
		case 1: day="Monday";break;
		case 2: day="Tuesday";break;
		case 3: day="Wednesday";break;
		case 4: day="Thursday";break;
		case 5: day="Friday";break;
		case 6: day="Saturday";break;
	}
	
	switch (now.getMonth()){
		case  0: month="January";break;
		case  1: month="February";break;
		case  2: month="March";break;
		case  3: month="April";break;
		case  4: month="May";break;
		case  5: month="June";break;
		case  6: month="July";break;
		case  7: month="August";break;
		case  8: month="September";break;
		case  9: month="October";break;
		case 10: month="November";break;
		case 11: month="December";break;
	}

	var time = new String(now.getUTCHours());
	if (time.length < 2){ time = "0"+ time};
		
	var minute = new String(now.getMinutes());
	if (minute.length < 2) {minute = "0"+ minute};
	
	time = time  + ":" + minute + " (GMT)"; 
	
	return day + ", " + date + " " + month + " " + now.getFullYear() + " " + time;
}

try {
var MAJAX_RESPONSE = 'MAJAX_NO_RESPONSE_YET';
var MAJAX_CLIENT = majax_createRequestObject();

var MAJAXCM_COMPLETE     = new MajaxCallbackManager();  // status code 4
var MAJAXCM_INTERACTIVE  = new MajaxCallbackManager();  // status code 3
var MAJAXCM_LOADED       = new MajaxCallbackManager();  // status code 2
var MAJAXCM_LOADING      = new MajaxCallbackManager();  // status code 1
var MAJAXCM_INIT         = new MajaxCallbackManager();  // status code 0


}
catch (error)
{
majax_handle_exception (error);
}

function MBasicHandler ()
  {
    this.invoke=function invoke ()
    {
      alert ("got response: " + MAJAX_RESPONSE);
  
    }
  }

function MajaxSingleCallbackManager() 
  {
    this.callback=function () {}; // do nothing
    this.register=function(callbackFunction) 
    {
      //alert ("registering cbf: "+callbackFunction);
      this.callback=callbackFunction;
      
    }
  }
 
function MajaxCallbackManager() 
  {
    var callback_counter =0;
    var callbacks = new Array ();
    
    /** this one iterates over registered callbacks */
    this.callback=function callback() 
    {
      
      for (var i=0;i<callbacks.length;i++)
      {
        try 
        {
           callbacks[i]();
        }
        catch (error)
        {
           majax_handle_exception (error);
        }
      }  
    
    }
    
    this.register=function(callbackFunction) 
    {
      callbacks[callback_counter++]=callbackFunction;
      
    }
  }

function majax_createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

    function majax_get(url, request) {
    //alert (url + request);
    req = url+'?'+request;
    //alert (req);
    MAJAX_CLIENT.open('GET', url ,true);
    MAJAX_CLIENT.onreadystatechange = majax_handleResponse;
    MAJAX_CLIENT.send(null);
}
  
function majax_post(url,request) {
    
    try {
    
    MAJAX_CLIENT.open("POST",url,true);
    MAJAX_CLIENT.setRequestHeader("Content-Type",
    "application/x-www-form-urlencoded; charset=UTF-8");
    MAJAX_CLIENT.send(request);
    MAJAX_CLIENT.onreadystatechange = majax_handleResponse;
    
    }
    catch (error)
    {
       majax_handle_exception (error);  
    }
    
    
  }
   
function majax_handleResponse() {
    
    //alert ('in handler');
    
    if(MAJAX_CLIENT.readyState == 4){
        var status = 'complete (4).';
        majax_internal_response_handler (status);

        MAJAXCM_INIT.callback ();

        MAJAXCM_LOADING.callback ();

		MAJAXCM_LOADED.callback ();

		MAJAXCM_INTERACTIVE.callback ();

        MAJAX_RESPONSE = MAJAX_CLIENT.responseText;
        
        MAJAXCM_COMPLETE.callback ();
        
        
    }
    
    if(MAJAX_CLIENT.readyState == 3){
        var status = 'interactive (3)';
        majax_internal_response_handler (status);
        
        MAJAXCM_INTERACTIVE.callback ();
    }
    
    if(MAJAX_CLIENT.readyState == 2){
        var status = 'loaded (2).';
        majax_internal_response_handler (status);
        
        MAJAXCM_LOADED.callback ();
    }
    
    if(MAJAX_CLIENT.readyState == 1){
        var status = 'loading.... (1)';
        majax_internal_response_handler (status);
        
        MAJAXCM_LOADING.callback ();
    }
    
    if(MAJAX_CLIENT.readyState == 0){
        var status = 'uninitialized (0)';
        majax_internal_response_handler (status);
        
        MAJAXCM_INIT.callback ();
    }
}  

function majax_internal_response_handler (status)
{
  // document.title = status;
}

function majax_handle_exception (error)
{

document.title = "[Exception|creating majax_ro()]: "+error.name+ "; "+error.message + "; "+error.description+"; "+error.number;  

}
  
function CustomHandler ()
  {
	this.invoke=function invoke ()
	{
	  var node = document.getElementById ("response_box"); 
	  node.innerHTML = MAJAX_RESPONSE;
	}
  }

var response_handler = new CustomHandler ();
MAJAXCM_COMPLETE.register(response_handler.invoke);
	  
// app code
	
function send_form (objid, objtitle)
{
  var url = document.getElementById(objid+'url');
  document.all.response_box.innerHTML = '<h3 align="center">Loading ...</h3>';
  try 
  {
	majax_get (url,objid);
	eval("document.all.listing.style.display='none'");
	scroll(0,0);
	document.title = objtitle;
  }
  catch (error)
  {
	document.title = "[Exception|send_form]: "+error.name+ "; "+error.message;
  }
  
  return false;
}


function send_form_buy_product (objid)
{
  var url = document.getElementById(objid).value;
  alert(url);
  document.all.response_box.innerHTML = '<h3 align="center">Loading ...</h3>';
  try 
  {
	majax_post (url,objid);
	eval("document.all.listing.style.display='none'");
	scroll(0,0);
	document.title = objtitle;
  }
  catch (error)
  {
	document.title = "[Exception|send_form]: "+error.name+ "; "+error.message;
  }
  
  return false;
}


var objcatalog='0';
function send_form_cat (objid, objtitle)
{
  if(objcatalog=='0')
	objcatalog = objid;
  else
  {
	eval("document.all.sub"+objcatalog+".style.display='none'");
	objcatalog = objid;
  }
  var url = document.getElementById(objid+'url');
  document.all.response_box.innerHTML = '<h3 align="center">Loading ...</h3>';
  try 
  {
	majax_get (url,objid);
	eval("document.all.listing.style.display='none'");
	eval("document.all.sub"+objcatalog+".style.display=''");
	scroll(0,0);
	document.title = objtitle;
  }
  catch (error)
  {
	document.title = "[Exception|send_form]: "+error.name+ "; "+error.message;
  }
  
  return false;
}

function showMenuCatalogLevel2(subobjcat, parentcat)
{
	if ((subobjcat!='') && (subobjcat!=0))
	{
		try
		{
			eval("document.all.subcatalog"+subobjcat+".style.display=''");
			objcatalog = 'catalog'+subobjcat;
		}
		catch (error)
		{
			eval("document.all.subcatalog"+parentcat+".style.display=''");
			objcatalog = 'catalog'+parentcat;
		}
	}
}

function showMenuCategoryLevel2(subobjcat, parentcat)
{
	if (subobjcat!='')
	{
		try
		{
			eval("document.all.subcategory"+subobjcat+".style.display=''");
			objcatalog = 'category'+subobjcat;
		}
		catch (error)
		{
			eval("document.all.subcategory"+parentcat+".style.display=''");
			objcatalog = 'category'+parentcat;
		}
	}
}
var isTab="1";
function showTab(_tabID, SourceID)
{
	try
	{
		if (isTab!='')
		{
			eval("document.all.Tab"+isTab+".style.display='none'");
			eval("document.all.Tab"+_tabID+".style.display=''");
			eval("document.all.col"+isTab+".className='productTab'");
			eval("document.all.col"+_tabID+".className='productTabSelected'");
			isTab = _tabID;
		}
		if (SourceID!='')
		{
			switchpanel(SourceID, 'Ajax'+_tabID);
		}
	}
	catch(error)
	{
		document.title = "Exception: " + error.message;
		return false;
	}
}