// ฟังก์ชั่น AJAX
function Inint_AJAX()
{
	try { return new ActiveXObject( "Msxml2.XMLHTTP" ); } catch( e ) {} // IE
	try { return new ActiveXObject( "Microsoft.XMLHTTP" ); } catch( e ) {} // IE
	try { return new XMLHttpRequest(); } catch( e ) {} // Native Javascript
	alert( "XMLHttpRequest not supported" );
	return null;
};

var wait;

function truebody()
{
	return ( document.compatMode && document.compatMode!="BackCompat" ) ? document.documentElement : document.body;
}

// แสดงรูปรอโหลด กลางจอภาพ
function showloading()
{
	if ( wait )
	{
		var topPos = truebody().scrollTop - 20 + ( ( screen.height - 80 ) / 2 );
		var leftPos = truebody().scrollLeft - 20 + ( ( screen.width - 80 ) / 2 );
		wait.style.top = topPos + 'px';
		wait.style.left = leftPos + 'px';
	};
};

function hideloading()
{
	if ( wait )
	{
		wait.style.top = '-1000px';
	};
};

function loadContent( layer , query )
{
	showloading();
	var req = Inint_AJAX();
	req.open( "post" , "content.php" , true );
	req.onreadystatechange = function()
	{
		if ( req.readyState == 4 )
		{
			hideloading();
			if ( req.status == 200 )
			{
				document.getElementById( layer ).innerHTML = req.responseText;
			};
			delete req;
			req = null;
		};
	};
	req.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
	req.send( query );
};

// ฟังก์ชั่น สำหรับเพิ่ม Javascript หรือ CSS ลงภายใน head ของเอกสาร
// คั่นเอกสารที่ต้องการแต่ละชนิดใน modules ด้วย , (comma)
// ข้อควรระวัง ห้ามมีช่องว่างภายใน modules
function add2head( modules )
{
	var listsrc = modules.split( ',' );
	var head = document.getElementsByTagName( "head" )[0];
	for( i = 0 ; i < listsrc.length ; i++ )
	{
		var src = listsrc[i];
		var srctype = ( src.split( '.' )[1] == 'js' ) ? 'script' : 'link';
		var patt = new RegExp( srctype );
		var srcexists = false;
		var srcs = document.getElementsByTagName( srctype );
		var n = 0;
		while ( !srcexists && n < srcs.length )
		{
			srcexists = ( srctype == 'script' ) ? patt.test( srcs[n].src ) : patt.test( srcs[n].href );
			n++;
		};
		if ( !srcexists )
		{
			var newobj = document.createElement( srctype );
			if ( srctype == 'script' )
			{
				newobj.src = src;
				newobj.language = "JavaScript";
				newobj.type = "text/javascript";
			}
			else
			{
				newobj.href = src;
				newobj.rel = "stylesheet";
				newobj.type = "text/css";
			};
			head.appendChild( newobj );
		};
	};
};

// cross browser event handling for IE 5+, NS6+ and Gecko
function addEvent( elm , evType , fn , useCapture )
{
	if ( elm.addEventListener )
	{
		elm.addEventListener( evType , fn , useCapture );
		return true;
	}
	else if ( elm.attachEvent )
	{
		var r = elm.attachEvent( 'on' + evType , fn );
		return r;
	} 
	else
	{
		elm['on' + evType] = fn;
	};
};

// ฟังก์ชั่นสำหรับการเลือกเมนู
function setselect( module )
{
	var links = document.getElementById( 'topmenu' ).getElementsByTagName( "A" );
	var sel = 0;
	for ( i = 0 ; i < links.length ; i++ )
	{
		var patt = new RegExp( links[i].rel );
		links[i].className = '';
		sel = ( patt.test( module ) ) ? i : sel;
	};
	links[sel].className = 'current';
};

// เรียก windows แบบ popup
function popupwindow( filename , windowname , w , h ) 
{
	var winl = ( screen.width - w ) / 2;
	var wint = ( screen.height - h ) / 2;
	winl = ( winl < 0 ) ? 0 : winl;
	wint = ( wint < 0 ) ? 0 : wint;
	var settings = 'height=' + h + ',';
	settings += 'width=' + w + ',';
	settings += 'top=' + wint + ',';
	settings += 'left=' + winl + ',';
	settings += 'resizable=0, scrollbars=0, status=0,toolbar=0, menubars=0, location=0';
	var win = window.open( '/' + filename , windowname , settings );
	win.window.focus();
};

function handleResponse( data , module ) 
{
	hideloading();
	setselect( module );
	var content = document.getElementById( 'content' );
	var ret = decodeURIComponent( data );
	content.innerHTML = ret;
	convertLinks( content );
	window.scrollTo( 0 , getElementTop( content ) );
	exec( ret );
};

function exec( text )
{
	var regex = /<script type="text\/javascript">(.*?)<\/script>/g;
	text = text.replace( /[\r\n]/g , '' );
	match = regex.exec( text );
	while( match != null )
	{
		try{ eval( match[1] ); } catch ( e ) {};
		match = regex.exec( text );
	};
};

function convertLinks( obj )
{
	var links = obj.getElementsByTagName( 'a' );
	var patt = new RegExp( location.hostname );
	for( var i = 0 ; i < links.length ; i++ )
	{
		link =  links[i];
		href =link.href;
		hs = href.split( '?' );
		if ( hs.length == 2 && patt.test( hs[0] ) && link.onclick == null )
		{
			link.href = 'xhr.php?' + hs[1];
			link.target = 'submit_iframe';
			link.onmouseover = function()
			{
				window.status = '';
				return true;
			};
			link.onclick = function()
			{
				showloading();
				return true;
			};
		};
	};
};


function addBookmark( url , title )
{
	if ( window.sidebar ) // firefox
	{
		window.sidebar.addPanel( title , url , "" );
	}
	else if ( window.opera && window.print ) // opera
	{
		var elem = document.createElement( 'a' );
		elem.setAttribute( 'href' , url );
		elem.setAttribute( 'title' , title );
		elem.setAttribute( 'rel' , 'sidebar' );
		elem.click();
	} 
	else if ( document.all ) // ie
	{
		window.external.AddFavorite(url, title);
	};
};

// อ่านตำแหน่งด้านบนของ element
function getElementTop( Elem )
{
	yPos = Elem.offsetTop;
	tempEl = Elem.offsetParent;
	while ( tempEl != null )
	{
  		yPos += tempEl.offsetTop;
	  	tempEl = tempEl.offsetParent;
  	};
	return yPos;
};

// อ่านความกว้างของ element
function getElementWidth( Elem )
{
	if( document.getElementById )
	{
		var elem = document.getElementById( Elem );
	} 
	else if ( document.all )
	{
		var elem = document.all[Elem];
	}
	return elem.offsetWidth;
};


function doSelectAll( id )
{
	var objs = document.getElementById( id ).getElementsByTagName( 'input' );
	for ( var i = 0 ; i < objs.length  ; i++ )
	{
		if ( objs[i].type == 'checkbox' )
		{
			objs[i].checked = true;
		};
	};
};

function doClearSelect( id )
{
	var objs = document.getElementById( id ).getElementsByTagName( 'input' );
	for ( var i = 0 ; i < objs.length  ; i++ )
	{
		if ( objs[i].type == 'checkbox' )
		{
			objs[i].checked = false;
		};
	};
};

function getSelected( id )
{
	var objs = document.getElementById( id ).getElementsByTagName( 'input' );
	for ( var i = 0 ; i < objs.length  ; i++ )
	{
		if ( objs[i].type == 'checkbox' && objs[i].checked == true )
		{
			return true;
		};
	};
	return false;
};


function doload()
{
	var img = document.createElement( 'img' );
	img.src = skin + '/img/wait.gif';
	var span = document.createElement( 'span' );
	span.appendChild( document.createTextNode( 'รอสักครู่..' ) );
	wait = document.createElement( 'div' );
	wait.id = 'wait';
	wait.appendChild( img );
	wait.appendChild( span );
	wait.style.position = 'absolute';
	wait.style.backgroundColor = '#F0F0F0';
	wait.style.borderColor ='#FF9900';
	wait.style.borderStyle ='solid';
	wait.style.borderWidth ='1px';
	wait.style.padding = '5px';
	img.style.verticalAlign = 'middle';
	wait.style.zIndex = 9999;
	wait.style.top = '-1000px';
	var body = document.getElementsByTagName("body").item(0);
	body.appendChild( wait );
	convertLinks( document );
};

addEvent( window , 'load', doload , false );
