// JavaScript Document

//Please use this functions...
var PDS_IE=(navigator.appName=='Microsoft Internet Explorer');
//var GBL_site_folder = '';
//var GBL_site_folder = '/pds';
//var GBL_site_folder = '/testserversite';
function GetElem(cElemId) {
	if(cElemId=='') return null;
	return document.getElementById(cElemId);
}

function GetVal(vElem,cAttName) {
	var elem=(typeof vElem=='string')?GetElem(vElem):vElem;
	if(elem==null) return false;
	return eval('elem.'+cAttName);
}

function SetVal(vElem,cAttName,cVal) {
	var elem=(typeof vElem=='string')?GetElem(vElem):vElem;
	if(elem==null) return false;
	eval('elem.'+cAttName+'=cVal');
	return true;
}

function GetXmlHttp() {
	var xmlHttp;
  try	{
    xmlHttp=new XMLHttpRequest();
  }
  catch (e)	{
    // Internet Explorer
  	try	{
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
    	try	{
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e)	{
        alert("Your browser does not support AJAX!");
        return false;
			}
		}
	}
	
	return xmlHttp;
}

function ProcessAjax(serverPage,vObj,getOrPost,str,cEvalJS) {
	var obj=(typeof vObj=='string')?GetElem(vObj):vObj;
	var xmlhttp = GetXmlHttp();	
	
	if (getOrPost.toLowerCase() == "get") {
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				var result=xmlhttp.responseText;
				SetVal(obj,'innerHTML',result);
				if(typeof cEvalJS != 'undefined') eval(cEvalJS);
			}
		}
		xmlhttp.send(null);
		
	} else {
		xmlhttp.open("POST", serverPage, true);
		xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");		
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				var result=xmlhttp.responseText;				
				SetVal(obj,'innerHTML',result);
				if(typeof cEvalJS != 'undefined') eval(cEvalJS);
			}
		}
		xmlhttp.send(str);
	}
	
	return xmlhttp;
}

function showAjaxProcess(elem, cMsg) {
	// Show AJAX image loading
	var cImageLoader = ' <img src="'+GBL_site_folder+'/images/x_ajax_loader.gif" align="bottom"/>';
	SetVal(elem,'innerHTML',cMsg + cImageLoader);
}

/* String functions */

function Trim(s) {	
	return rTrim(lTrim(s));
}

function lTrim(s) {
	var l=0;
	while(l < s.length && s[l] == ' ')
	{	l++; }
	return s.substring(l, s.length);
}

function rTrim(s) {
	var r=s.length -1;
	while(r > 0 && s[r] == ' ')
	{	r-=1;	}
	return s.substring(0, r+1);
}

// append str2 to str1 if str2 don't exists in str1
function addSubStr(str1, str2) {
	if (str1.indexOf(str2) == -1) str1 += str2;
	return str1;
}

// remove str2 from str1
function removeSubStr(str1, str2) {
	return str1.replace(str2, '');
}

/* Array functions */
function arrayMerge(arr1, arr2) {	
	var array = new Array()
	for (var i=0; i<arr1.length; i++)	
		array.push(arr1[i]);
	for (var i=0; i<arr2.length; i++)	
		array.push(arr2[i]);
	return array;
}

function wopen(url, name, w, h)
{
  // Fudge factors for window decoration space.
  // In my tests these work well on all platforms & browsers.
  w += 32;
  h += 96;
  wleft = (screen.width - w) / 2;
  wtop = (screen.height - h) / 2;
  // IE5 and other old browsers might allow a window that is
  // partially offscreen or wider than the screen. Fix that.
  // (Newer browsers fix this for us, but let's be thorough.)
  if (wleft < 0) {
    w = screen.width;
    wleft = 0;
  }
  if (wtop < 0) {
    h = screen.height;
    wtop = 0;
  }
	
  var win = window.open(url,
    name,
    'width=' + w + ', height=' + h + ', ' +
    'left=' + wleft + ', top=' + wtop + ', ' +
    'location=no, menubar=no, ' +
    'status=no, toolbar=no, scrollbars=no, resizable=no');
	
  // Just in case width and height are ignored			
  win.resizeTo(w, h);
  // Just in case left and top are ignored
  win.moveTo(wleft, wtop);
  win.focus();
	
	return win;
}

// Open a new window with normal properties
function wopen2(url, name)
{
	var w = screen.width;
	var h = screen.height;
	
  var win = window.open(url,
    name,
    'width=' + w + ', height=' + h + ', ' +
    'location=yes, menubar=yes, ' +
    'status=yes, toolbar=yes, scrollbars=yes, resizable=yes');	

  win.focus();
	
	return win;
}

//
function checkAll(elemID,checkVal) {
	var elem=document.getElementById(elemID);
	var cbs=elem.getElementsByTagName('input');
	for(var i=0;i<cbs.length;i++) {
		var cb=cbs[i];
		if(cb.type!='checkbox') continue;
		cb.checked=checkVal;
	}
	return false;
}

//
function items_onClick(elemCB) {
	if ( ! elemCB.checked) {
		GetElem('checkAllItem').checked = false;
		return;
	}	
	
	var cbs=elemCB.form.elements;
	for(var i=0; i<cbs.length; i++) {
		var cb=cbs[i];
		if (cb.type!='checkbox') continue;
		if (cb.id == 'checkAllItem') continue;
		if( ! cb.checked) return;
	}
	
	GetElem('checkAllItem').checked = true;
}

function is_NoChecked(cFormID)
{
	var elemForm=GetElem(cFormID);
	var controls=elemForm.elements;
	for(var i=0; i<controls.length; i++) {
		var cb=controls[i];
		if (cb.type != 'checkbox') continue;
		if (cb.name != 'items[]') continue;
		if (cb.checked) return false;
	}
	return true;
}

/*
|-----------------------------------------------------------------------------------------
| Cross-browser check of Java plugins and notifications
|-----------------------------------------------------------------------------------------
*/
function checkJavaSupport() {
	var windowsIE = (checkPlatform("msie") && checkPlatform("win"));
	if (windowsIE) {
		if ( ! navigator.javaEnabled()) {
			notif_JavaNotEnabled();
		} else {
			document.write("<OBJECT	codeBase=http://java.sun.com/update/1.6.0/jinstall-6u13-windows-i586.cab classid=clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284 height=0 width=0>");
			document.write("<PARAM name=code	VALUE=Tester.java>");
			document.write("<PARAM name=codebase	VALUE=<?=SITEFOLDER.'/java/'?>>");
			document.write("<PARAM NAME=mayscript VALUE=true>");
			document.write("<PARAM NAME=back VALUE=false>");
			notif_NoJavaSupport('ie');			
			document.write("</OBJECT>");
		}
	} else {
		if (navigator.mimeTypes && navigator.mimeTypes.length) {
			var lSupported = 0;
			webstartAvailable = navigator.mimeTypes['application/x-java-jnlp-file'];
			if (webstartAvailable) {
				lSupported = 1;
				var jApplet = webstartVersionCheck("1.6");
				if (jApplet == 2) { // Everything is OK
					
				} else
				if (jApplet == 1) { // Version required
					notif_NoJavaSupport('ff');
				} else
				if (jApplet == 0) { // Java is not enabled
					notif_JavaNotEnabled();
				}
			} else { // No Java is installed
				notif_NoJavaSupport('ff');
			}
		}
	}
}

// Check platform
function checkPlatform(string)
{
	var detect = navigator.userAgent.toLowerCase();
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

// return 0 = (nothing detected)
// return 1 = (has java applet)
// return 2 = (version detected)
function webstartVersionCheck(versionString) {
	var retVal = 0;
	// Mozilla may not recognize new plugins without this refresh
	//navigator.plugins.refresh(true);
	// First, determine if Web Start is available	
	if (navigator.mimeTypes['application/x-java-jnlp-file']) {
		// Next, check for appropriate version family
		for (var i = 0; i < navigator.mimeTypes.length; ++i) {
			pluginType = navigator.mimeTypes[i].type;
			if (pluginType == "application/x-java-applet") {
				retVal = 1;
			} else
			if (pluginType == "application/x-java-applet;version=" + versionString) {
				retVal = 2;
				break;
			}
		}
		return retVal;
	}
}

function notif_NoJavaSupport(cBrowser) {
	document.write(
		'<div id="JavaSupportTest" class="notification">' +
			'<div class="panel_note">' +
				'<div class="panel_note_title"><img src="'+GBL_site_folder+'/images/icons/0_info_small-icon.gif" /></div>'+
				'<div class="panel_note_body">' +
					'<strong>To experience PDS Instant Messaging</strong>, you must install <strong>Java Plug-in 1.6</strong>. ' +
					'Please <strong><a href="'+GBL_site_folder+'/help/instant_messaging/'+cBrowser+'/" target="_blank">click here for instructions</a>.</strong>' +
				'</div>' +
				'<div class="clear_float"></div>' +
			'</div>' +						
		'</div>'
	);
}

function notif_JavaNotEnabled() {
	document.write(
		'<div id="JavaSupportTest" class="notification">' +
			'<div class="panel_note">' +
				'<div class="panel_note_title"><img src="'+GBL_site_folder+'/images/icons/0_info_small-icon.gif" /></div>'+
				'<div class="panel_note_body">' +
					'<strong>Instant Messaging</strong> needs <strong>Java enabled</strong> to function properly. <a href="http://java.com/en/download/help/enable_browser.xml" target="_blank">Click here</a> for intructions on how to enable it from your browser.' +
				'</div>' +
				'<div class="clear_float"></div>' +
			'</div>' +					
		'</div>'
	);
}
