document.write( '<'+'script type="text/javascript" src="http://gameknot.com/js/chess-diagram-ext.js"><'+'/script>' );

document.write( '<'+'style>'+
    '#gk-daily-puzzle td { border: 0px !important; vertical-align: middle !important; }\n'+
    '.boardlabel td { font-size: 75% !important; text-align: center !important; padding: 0px !important; margin: 0px !important; overflow: hidden !important; }\n'+
    '<'+'/style>' );

var ie_version = parseFloat(navigator.appVersion.split('MSIE')[1]);

var gk_board_style = 4;
var gk_board_size;
var gk_board_color = 17;
var gk_board_padding = 40;

function gk_get_el(name)
{
    var d = document;
    if (d.getElementById) return d.getElementById(name);
    if (d.all) return d.all[name];
    return null;
}

function gk_get_glop(num,_default)
{
    if (num==14) return gk_board_style; 	// style
    if (num==15) return gk_board_size;		// size
    if (num==16) return gk_board_color+1;	// color
    return _default;
}

function fix_alpha( el, src )
{
    if ( ie_version>=5.5 && 
	 ie_version<7 &&
	 (typeof document.body.filters)!='undefined' )
    {
	var f_name = 'DXImageTransform.Microsoft.AlphaImageLoader';
	try 
	{ 
	    el.style.filter = 'progid:'+f_name+'(src="'+src+'",sizingMethod="scale",enabled="true")';
	    el.src = 'http://'+static_domain()+'/img/blank.gif';
	} 
	catch(e) 
	{ 
	    el.src = src;
	}
    }
    else
    {
	el.src = src;
    }
}

function static_domain()
{
    return 's.ichess.com';
}

function prnd( seed )
{
    this.rnd = function( max )
    {
	this.iterate();
	return Math.floor(this.seed / 65536) % max;
    };
    
    this.iterate = function()
    {
	this.seed = ( this.seed * 1103515245 + 12345 ) & 0x7fffffff;
    };
    
    this.seed = (typeof seed)=='undefined' ? get_time() : seed;
}

function popwindow(path,w,h)
{
    var x = Math.floor( (window.screen.width-w)/2 );
    var y = Math.floor( (window.screen.height-h)/2 );
    if ((x+w)>window.screen.availWidth) x = window.screen.availWidth - w;
    if ((y+h)>window.screen.availHeight) y = window.screen.availHeight - h;

    var params = 'left='+x+',top='+y+',width='+w+',height='+h+',resizable=1,toolbar=0,location=0,directories=0,status=1,menubar=0';
    var ww = window.open(path,'_blank',params);
    if (ww)
    {
	ww.focus();
    }
    else
    {
	alert('Pop-up windows appear to be blocked on your computer. Unable to proceed...');
    }
}

var gk_main_div_name = 'gk-daily-puzzle';
var gk_element_old_text = '';

var o = gk_get_el(gk_main_div_name);
if (o && !o.gk_processed)
{
    o.gk_processed = 1;
    
    gk_element_old_text = o.innerHTML;

    var b_border = 1;
    
    var reg_ops = /<!--\s*(.+?)\s*-->/;
    var reg_split = /(\w)=(\d+)/g;
    
    var ops = reg_ops.exec(gk_element_old_text);
    if (ops && ops.length>0)
    {
	ops = ops[1];
	var op;
	while( op = reg_split.exec(ops) )
	{
	    if (!op || op.length<3) continue;
	    var key = op[1];
	    var val = parseInt(op[2]);
	    if (key=='s') gk_board_size = val;
	    if (key=='c') gk_board_color = val;
	    if (key=='p') gk_board_style = val;
	    if (key=='b') b_border = val;
	}
    }
    
    if (o.className=='gk-mini') b_border = 0;
    
    var os = o.style;

    os.lineHeight = '100%';
    os.textAlign = 'center';
    os.padding = '5px';
    gk_board_size = 3;

    o.innerHTML = 'Loading...';
    
    window.setTimeout( 'gk_launch_daily_puzzle()', 100 );
}

function gk_launch_daily_puzzle()
{
    var o = gk_get_el(gk_main_div_name);
    if (!o) return;

    if ( (typeof draw_chess_diagram)!='function' )
    {
	window.setTimeout( 'gk_launch_daily_puzzle()', 200 );
	return;
    }

    if (!gk_board_size)
    {
	gk_board_size = 2;
	while(gk_board_size<4)
	{
	    if ( ((gk_board_size+1)*80 + gk_board_padding) >= o.clientWidth ) break;
	    gk_board_size++;
	}
    }

    var os = o.style;
    os.width = ( gk_board_size*80 + gk_board_padding )+'px';
    os.margin = 'auto';

    var board_div_name = 'chess-puzzle'+Math.random();

    var url = 'http://gameknot.com/chess-puzzle.pl?pz=2309&daily=2';

    o.innerHTML = 
	'<table border=0 cellspacing=0 cellpadding=0 style="text-align: center;">'+
	'<tr><td onClick="popwindow(\''+url+'\',700,680)" style="cursor:pointer;" title="click to solve the puzzle">'+
	'<div id="gk-daily-puzzle-board"></div>'+
	'</td></tr>'+
	'<tr><td style="text-align: center;">'+
	'<a href="javascript:popwindow(\''+url+'\',700,680)" title="click to solve the puzzle">White to move, mate in 3</a>'+
	'</td></tr>'+
	'</table>'+
	'<noscript><h1 style="font-size: 50%">'+gk_element_old_text+'</h1></noscript>';
    
    if (!gk_render_puzzle_board()) setTimeout( "gk_render_puzzle_board()", 100 );
}

function gk_render_puzzle_board() 
{
    var o = gk_get_el('gk-daily-puzzle-board');
    if (!o) return 0;
    draw_chess_diagram( o, '8/8/6R1/5K2/5N2/3P3p/8/6Bk w - -', gk_board_size );
    return 1;
}

