// ------------------------------------------------------------------------------------------------
// SPAC.JS (M-Web Thailand) - Copyright (c) 2000-2001 Engage, Inc. All Rights Reserved.
// 
// (based on Generic Client 1.11 merged with Pacfusion 1.2 size fixes)
//
// $Header: /usr/local/cvsroot/spac/client/mweb-thailand/spac.js,v 1.4 2001/02/21 03:16:51 pdwalker Exp $
// ------------------------------------------------------------------------------------------------

var spac_adServer = "http://b.as.sanook.com"; //ads2.mweb.co.th
var spac_autoPageID = true;
var spac_pageID = spac_getUniqueValue();

// Edit by Pong  21-May-2003
url = new Array(3);
ad = new Array(3);
url[0] = "http://www.sanook.com/";
ad[0] = "http://www.mweb.co.th/mwebbanner/webindexsanooktravel.gif";
url[1] = "http://www.thaimate.com/";
ad[1] = "http://www.mweb.co.th/mwebbanner/thaimate.gif";
url[2] = "http://www.qq.th.com/";
ad[2] = "http://www.mweb.co.th/mwebbanner/qq.gif";

//ADDITION BY SUPERJOH
var span_layer_name = "ads_layer";

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v;
  }
  if (document.getElementById('mweb_search_box')) {document.getElementById('mweb_search_box').style.visibility=v; }
}

function getwindow_width() {
if (navigator.userAgent.indexOf("MSIE") > 0) {
	return document.body.clientWidth;
} else {                                                
	return window.outerWidth;
}
return;      
}

function getwindow_height(){
if (navigator.userAgent.indexOf("MSIE") > 0) {
	return document.body.clientHeight;
} else {                                                
	return window.outerHeight;
}
return;
}

function getscroll_left(){
if (navigator.userAgent.indexOf("MSIE") > 0) {
	return document.body.scrollLeft;
} else {                                                
	return window.pageXOffset;
}
return;
}

function getscroll_top(){
if (navigator.userAgent.indexOf("MSIE") > 0) {
	return document.body.scrollTop;
} else {                                                
	return window.pageYOffset;
}
return;
}

function move_left_to_center(w)
{
	var w_w = getwindow_width();
	var s_l = getscroll_left();
	//if (w_w > 800)w_w=800;
	w=parseInt(w.substring(0, w.indexOf("px")))
	w = w/2;
	return (s_l+(w_w/2) - w);
}

function move_top_to_center(h)
{
	var w_h = getwindow_height();
	var s_t = getscroll_top();
	//if (w_h > 600)w_h=600;
	h=parseInt(h.substring(0, h.indexOf("px")))
	h = h/2;
	return (s_t+(w_h/2) - h);
}

function Move_Layer_to_Center(layer){
	var obj = MM_findObj(layer);
	if (obj.style)
	{
		obj.style.left = move_left_to_center(obj.style.width) + "px";
		obj.style.top = move_top_to_center(obj.style.height) + "px";
	}
}

function Move_Layer_to_XY(layer, x, y){
	var obj = MM_findObj(layer);
	if (obj.style)
	{
		obj.style.left = x + "px";
		obj.style.top = y + "px";
	}
}

function SendFlashClick() {
	window.frames["ads_frame"].ClickID();
}

//END ADDITION

// outputs adcall HTML tags
function spac_writeAd( aTargetParams , version)
{

	//for hi5; detect from 'aTargetParams'
	if(spac_getParamValue( "site", aTargetParams.toLowerCase() ) == "hi5.com"  ) {
		//workaround for fix hi5 area problem
		//aTargetParams = aTargetParams.replace(/hi5.homepage./i,"hi5.");

		//area = hi5.homepage || hi5.member_home --> use version 9, else version 187 (ratio 40:60)
		if(	( spac_getParamValue( "area", aTargetParams.toLowerCase() ) == "hi5.member_home") && (spac_getParamValue( "aamsz", aTargetParams.toLowerCase() ) == "300x250")  ) {
			version = 9; 
		}
		else {
			version = 187; 
		}
			 //all area use server d on 1 month 31 mar - 30 april 
            //version = 9;

	}

  if( version ){
			if(version == 9) { //footer
			//	spac_adServer = "http://58.181.242.9";
				spac_adServer = "http://d.as.sanook.com";
			}
			else if(version == 52) { //contextual
			//	spac_adServer = "http://58.181.242.61";	//203.107.136.52
				spac_adServer = "http://b.as.sanook.com";
			}
			else if(version == 81) {//test server
				spac_adServer = "http://58.181.243.81";
			}
			else if(version == 183) {//marketing
			//	spac_adServer = "http://58.181.242.183";
				spac_adServer = "http://c.as.sanook.com";
			}
			else if(version == 187) {//hi5 
			//	spac_adServer = "http://58.181.242.187";
				spac_adServer = "http://e.as.sanook.com";
			}
			else if(version == 179) {//button firstpage and radio first page 
			//	spac_adServer = "http://58.181.242.179";
				spac_adServer = "http://a.as.sanook.com";
			}
			else if( (version == 17)  ) {//new leaderboard now run with hipkingdom 
			//	spac_adServer = "http://58.181.242.17";
				spac_adServer = "http://f.as.sanook.com";
			}
			else if( (version == 10)  ) {//new button ad pos button1 - 5 and center 1 2
				spac_adServer = "http://g.as.sanook.com";
			}
			else if( (version == 196)  ) {//new button ad pos button1 - 4 
				spac_adServer = "http://a2.as.sanook.com";			
			}
			else if( (version == 11)  ) {//new textlink1 - 4 marketing
				spac_adServer = "http://c2.as.sanook.com";
			}else{
				spac_adServer = "http://f.as.sanook.com"; //f leaderboard
			}

  }else{
		if(   spac_getParamValue( "aamsz", aTargetParams.toLowerCase() ) == "leaderboard"  ) {//new leaderboard move from v6	  
		      spac_adServer = "http://f.as.sanook.com"; 
			  //alert('17');
	    }else if( spac_getParamValue( "aamsz", aTargetParams.toLowerCase() ) == "160x120" ) {
			 spac_adServer = "http://b.as.sanook.com"; 
		}else{
              spac_adServer = "http://b.as.sanook.com"; //ads2.mweb.co.th
		}
  }

    document.write( spac_getAdHTML( aTargetParams ) );
//	document.write("<span id='"+span_layer_name+"'></span>"); 
}

// returns adcall HTML tags as a String
function spac_getAdHTML( aTargetParams )
{
    var targetParams, adServer, method, frameWidth, frameHeight, frameTarget, i;

    targetParams = aTargetParams.toUpperCase();

    // make sure we have a leading slash
    if ( targetParams.charAt( 0 ) != "/" )
    {
    	targetParams = "/" + targetParams;
    }

    // determine adserver URL to use
    if ( ( adServer = ( ( spac_getParamValue( "ADSERVER", targetParams ) ) ) ) == "" )
    {
        adServer = spac_adServer;
    }

    // determine the method to use to make this adcall
    if ( ( method = spac_getParamValue( "METHOD", targetParams ) ) == "" )
    {
        method = "AUTO";
    }

    if ( method == "AUTO" )
    {
        method = spac_getMethod();
    }

    // determine frame target to use
    if ( ( frameTarget = spac_getParamValue( "FRAMETARGET", targetParams ) ) == "" )
    {
        frameTarget = "_new";
    }
    else
    {
    	frameTarget = frameTarget.toLowerCase();
    }

    // default frameSize is 468x60
    var frameWidth = "468";
    var frameHeight = "60";

    // determine frameSize to use. if frameSize not specified directly, use the value specified
    // in the AAMSZ= tag

    if ( ( frameSize  = ( ( spac_getParamValue( "FRAMESIZE", targetParams ) ) ) ) == "" )
    {
        frameSize = spac_getParamValue( "AAMSZ", targetParams );

	// handle the symbolic frame sizes, set the frame length
	// according to the proper size of the symbolic size
        if ( "0123456789".indexOf( frameSize.substring( 0, 1 ) ) == -1 )
        {
            frameSize = frameSize.toUpperCase();
            if ( frameSize == "FULL_BANNER" )
            {
                frameSize = "468X60";
            }
            else if ( frameSize == "IAB_BUTTON_1" )
            {
                frameSize = "120X90";
            }
			else if ( frameSize == "LEADERBOARD" )
            {
                frameSize = "728X90";
            }
            else if ( frameSize == "IAB_BUTTON_2" )
            {
                frameSize = "120X60";
            }
            else if ( frameSize == "IAB_FULL_BANNER" )
            {
                frameSize = "320X240";
            }
            else if ( frameSize == "IAB_FULL_BANNER_WITH_VBAR" )
            {
                frameSize = "392X72";
            }
            else if ( frameSize == "IAB_HALF_BANNER" )
            {
                frameSize = "234X60";
            }
            else if ( frameSize == "IAB_MICROBUTTON" )
            {
                frameSize = "88X31";
            }
            else if ( frameSize == "IAB_SQUARE_BUTTON" )
            {
                frameSize = "125X125";
            }
            else if ( frameSize == "IAB_VERTICAL_BANNER" )
            {
                frameSize = "120X240";
            }
            else if ( frameSize == "TRACKER" )
            {
                frameSize = "1X1";
            }
			else if ( frameSize == "TOWER" )
            {
                frameSize = "120X400";
            }
	}
    }
    // extract the width and height components from frameSize string
    if ( frameSize != "" )
    {
    
        var i = frameSize.indexOf( "X" );
        if ( i >= 0 )
        {
            frameWidth = frameSize.substring( 0, i );
            frameHeight = frameSize.substring( i + 1 );
        }
    }

    // compute random value for cache busting this call
    var uniqueValue = spac_getUniqueValue();

    // auto include /PAGEID tag if necessary
    if ( true == spac_autoPageID )
    {
        var autoPageID = spac_getParamValue( "AUTOPAGEID", targetParams );
        if ( "" == autoPageID || "TRUE" == autoPageID )
        {
            targetParams = targetParams + "/PAGEID=" + spac_pageID;
        }
    }

    // add /ACC_RANDOM tag for cache busting this adcall
    targetParams = targetParams + "/ACC_RANDOM=" + uniqueValue;

    if ( frameTarget != "" )
    {
        frameTarget = " target=\"" + frameTarget + "\"";
    }

    position = spac_getParamValue( "POSITION", targetParams );
    // build appropriate adcall URL based on the method required
    if ( method == "IFRAME" || method == "JSCRIPT" )
    {
// Edit by Pong  21-May-2003
        if (position == "POS.TOP.RIGHT1" && frameSize == "120X60") {
            NumRnd = Math.round(Math.random() * 100) % 3;
            return ( "<a href=\"" + url[NumRnd] + "\"" + frameTarget + "><img src=\"" + ad[NumRnd] + "\" border=\"0\" width=\"" + frameWidth + "\" height=\"" + frameHeight + "\"></a>" );
        }
        else {
            if ( method == "IFRAME" )
            {
                return ( "<iframe id=\"ads_frame\" name=\"ads_frame\" src=\"" + adServer + "/hserver" + targetParams + "?\" width=\"" + frameWidth + "\" height=\"" + frameHeight + "\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"></iframe>" );
            }
            else if ( method == "JSCRIPT" )
            {
                return ( "<script src=\"" + adServer + "/jserver" + targetParams + "?\"></script>" );
            }
        }
    }
    else if ( method == "STREAM" )
    {
        return ( "<a href=\"" + adServer + "/xtserver" + targetParams + "?\"></a>" );
    }
    else if ( method == "POPUP" )
    {
        var windowName = aTargetParams;
        len = windowName.length;
        for ( i = 0; i < len; i++ )
        {
            ch = windowName.charAt( i )
            if ( ch == "/" || ch == "=" || ch == "." || ch == "_" || ch == "-" )
            {
                windowName = windowName.substring( 0, i ) + "_" + windowName.substring( i + 1 );
            }
        }
        var features = "width=" + frameWidth + ",height=" + frameHeight;
        var winPos;
        if ( ( winPos = ( ( spac_getParamValue( "POPUPPOS", targetParams ) ) ) ) != "" )
        {
            i = winPos.indexOf( "X" );
            if ( i >= 0 )
            {
            	j = winPos.indexOf( "Y", i + 1 );
            	if ( j < 0 )
            	{
            	    j = winPos.length;
            	}
                features += ",left=" + winPos.substring( i + 1, j );
            }
            i = winPos.indexOf( "Y" );
            if ( i >= 0 )
            {
            	j = winPos.indexOf( "X", i + 1 );
            	if ( j < 0 )
            	{
            	    j = winPos.length;
            	}
                features += ",top=" + winPos.substring( i + 1, j );
            }
        }

    	var adwin = window.open( adServer + "/hserver" + targetParams + "?", windowName, features );
    	adwin.focus();
    	return ( "" );
    }
    else
    {

// Edit by Pong  21-May-2003
        if (position == "POS.TOP.RIGHT1" && frameSize == "120X60") {
            NumRnd = Math.round(Math.random() * 100) % 3;
            return ( "<a href=\"" + url[NumRnd] + "\"" + frameTarget + "><img src=\"" + ad[NumRnd] + "\" border=\"0\" width=\"" + frameWidth + "\" height=\"" + frameHeight + "\"></a>" );
        }
        else {
            return ( "<a href=\"" + adServer + "/adclick" + targetParams + "?\" " + frameTarget + ">" +
                 "<img src=\"" + adServer + "/adserver" + targetParams + "?\" border=\"0\" width=\"" + frameWidth + "\" height=\"" + frameHeight + "\"></a>" );
        }
    }
}

// returns the best method that can be used to display banner ads
function spac_getMethod()
{
    var agt = navigator.userAgent;
    var ver = parseInt( navigator.appVersion );
    var isMoz = ( ( ( agt.indexOf( "Mozilla" ) != -1 ) &&
                    ( agt.indexOf( "spoofer" ) == -1 ) &&
                    ( agt.indexOf( "compatible" ) == -1 ) &&
                    ( agt.indexOf( "opera" ) == -1 ) &&
                    ( agt.indexOf( "webtv" ) == -1 ) ) )
    var isIE3Up = ( ( agt.indexOf( "MSIE" ) != -1 ) && ( ver >= 3 ) );
    if ( isIE3Up || ( isMoz && ver >= 5 ) )
    {
        return ( "IFRAME" );
    }
    else if ( isMoz && ver >= 3 )
    {
    	return ( "JSCRIPT" );
    }
    else
    {
        return ( "IMG" );
    }
}

// parses pathinfo string and returns the value of a named parameter
function spac_getParamValue( aName, aParam )
{
    var retVal = "";
    var p = aParam.indexOf( aName );
    if ( p != -1 )
    {
        p = aParam.indexOf( "=", p );
        if ( p != -1 )
        {
            p++;
            while ( p < aParam.length && aParam.charAt( p ) == " " )
            {
                p++;
            }
            var p2 = aParam.indexOf( ";", p );
            if ( p2 != -1 )
            {
                retVal = ( aParam.substring( p, p2 ) );
            }
            else
            {
                p2 = aParam.indexOf( "/", p );
                if ( p2 != -1 )
                {
                    retVal = ( aParam.substring( p, p2 ) );
                }
                else
                {
                    retVal = ( aParam.substring( p , aParam.length ) );
                }
            }
            p = retVal.length - 1;
            while ( p > 0 && retVal.charAt( p ) == " " )
            {
                p--;
            }
            if ( p > 0 )
            {
                retVal = retVal.substring( 0, p + 1 );
            }
        }
    }
    return ( retVal );
}


// computes and returns a random number
function spac_getUniqueValue()
{
    return ( Math.floor( Math.random() * 1000000000 ) );
}

// returns current version info
function spac_getVersion()
{
    return ( "$Id: spac.js,v 1.4 2001/02/21 03:16:51 pdwalker Exp $" );
}

