// -----------------------------------------------------------------------------
// Progran Name. : ussi.js
// Author . . . .: Pedro J Rivera
// Copyright.....: United Systems and Software, Inc.
// -----------------------------------------------------------------------------

// -----------------------------------------------------------------------------
// Function. . .: setFocus()
// -----------------------------------------------------------------------------
function setFocus(elId) {
	try {
		var el = document.getElementById("form1:" + elId);
		if (el && el.focus) {
			el.focus();
		}
	} catch (e) {}
}

// -----------------------------------------------------------------------------
// Function. . .: newWindow()
// -----------------------------------------------------------------------------
function newWindow(url) {
	var newWin;
	newWin = window.open(url, "newwin", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,Width=600,Height=700,left=20,top=20");
	newWin.focus();
}

// -----------------------------------------------------------------------------
// Function. . .: redirect()
// -----------------------------------------------------------------------------
function redirect(url) {
	try {
		if (url.length > 0) {
			top.location = url;
		}
	} catch (e) {}
}

// -----------------------------------------------------------------------------
// Function. . .: setInputFocus()
// -----------------------------------------------------------------------------
function setInputFocus() {
	
	var elements = document.getElementsByTagName("input");
	var first = true;
	var el;

	for (i=0; i < elements.length; i++) {
		if (elements[i].type != "button" && 
			elements[i].type != "submit" && 
			elements[i].type != "reset"  && 
			elements[i].type != "hidden" && 
			elements[i].type != "image") {
			if (elements[i] && elements[i].focus) {
				//if (first) {
				//	el = elements[i];
				//	first = false;
				//}
				elements[i].onfocus = function() {setOnFocus(this);};
				elements[i].onblur =  function() {setOnBlur(this) ;};
			}
		}
	}
	
	if (first == false) {
		//el.focus();
	}
	
}

// -----------------------------------------------------------------------------
// Function. . .: setOnFocus()
// -----------------------------------------------------------------------------
function setOnFocus(el) {
	if (el.className.indexOf('inputTextFocus') == -1)  {
		el.className = el.className + ' inputTextFocus';
	}
} 

// -----------------------------------------------------------------------------
// Function. . .: setOnBlur()
// -----------------------------------------------------------------------------
function setOnBlur(el) {
	if (el.className.indexOf('inputTextFocus') > 0 )  {
		el.className = el.className.substring(0,el.className.indexOf('inputTextFocus')-1);
	}
}

// -----------------------------------------------------------------------------
// Function. . .: iFrameLoaded()
// -----------------------------------------------------------------------------
function iFrameLoaded() {	
	try {
		var msg = document.getElementById("messageWait");	
		msg.parentNode.removeChild(msg);
		
		var ifrm = document.getElementById("webfaceFrameSmall");
		ifrm.id = "webfaceFrame";

	} catch(e) {}
}

// -----------------------------------------------------------------------------
// Function. . .: synToolBar()
// Description .: Syncronize custom toolbar with crystal viewer toolbar
// -----------------------------------------------------------------------------
function syncToolBar() {
	var vl1 = document.getElementById("views");
	//var vl2 = document.getElementById("formBase:viewerViewList");
	var vl2 = document.getElementById("viewerDropDown");
	var newOpt;
	
	vl1.title="";
	vl1.className="selectOneMenu";
	vl2.innerHTML = vl1.parentNode.innerHTML

	// -----
	// Populate view list combobox
	// -----
	//while (vl2.options.length) {
	//	vl2.remove(0);
	//}
	
	//for (var i = 0; i < vl1.options.length; i++) {
	//	newOpt = document.createElement("option");
	//	newOpt.text = vl1.options[i].text;
	//	newOpt.value = "" + vl1.options[i].value;
	//	vl2.options.add(newOpt, i);
	//}

	//vl2.selectedIndex = vl1.selectedIndex;

	// -----
	// Populate go to page text box
	// -----
	var gt1 = document.getElementById("gototext");
	var gt2 = document.getElementById("formBase:viewerPageNumber");
	gt2.value = gt1.value;
	
	// -----
	// Populate last page number text
	// -----
	var cEl = document.getElementById("cridfulltoolbar");
	var val = cEl.innerHTML;
	var str = val.indexOf("&nbsp;/&nbsp;"); 
	str += 13;
	var end = val.indexOf("<", str-1);
	var pgs = val.substr(str, end-str)
	var cEl = document.getElementById("formBase:viewerTotalPages");
	cEl.innerHTML = "of " + pgs;
	
	// -----
	// Remove crystal viewer top toolbar
	// -----
	var cEl = document.getElementById("cridfulltoolbar");
	var pEl = cEl.parentNode;
	pEl.removeChild(cEl);

	// -----
	// Remove crystal viewer bottom toolbar
	// -----
	var cEl = document.getElementById("cridbottomtoolbar");
	var pEl = cEl.parentNode;
	pEl.removeChild(cEl);
	
	return true;
}

// -----------------------------------------------------------------------------
// Function. . .: processEvent()
// Description .: Execute crystal viewer events
// -----------------------------------------------------------------------------
function processEvent( event ) {
	//document.getElementById("formBase:viewerViewList").selectedIndex = 0;
	USSIReportViewerCrystalEvent('USSIReportViewer', event);
	return false;
}

// -----------------------------------------------------------------------------
// Begin Crystal Reports Viewer Events
// -----------------------------------------------------------------------------

function showGroupTree(thisObj, thisEvent) {
	var event = 'tb=tglgrptree';
	return processEvent( event );
}
function goFirstPage(thisObj, thisEvent) {
	var event = 'tb=first';
	return processEvent( event );;
}
function goPrevPage(thisObj, thisEvent) {
	var event = 'tb=prev';
	return processEvent( event );
}
function goNextPage(thisObj, thisEvent) {
	var event = 'tb=next';
	return processEvent( event );
}
function goLastPage(thisObj, thisEvent) {
	var event = 'tb=last';
	return processEvent( event );
}
function goToPage(thisObj, thisEvent) {
	var event = 'tb=gototext&text=' + document.getElementById("formBase:viewerPageNumber").value;
	event = event.replace(/,/g,"");
	return processEvent( event );
}
function findText(thisObj, thisEvent) {
	var currSearchText = (document.getElementById("formBase:viewerFindText") == null || document.getElementById("formBase:viewerFindText").value == null) ? null : document.getElementById("formBase:viewerFindText").value.toLowerCase();
	var matchingItems = document.getElementsByName("CrystalHighLighted");
	var hasPreviousMatchingItems = (matchingItems != null && matchingItems.length > 0);
	if (currSearchText == "" && !hasPreviousMatchingItems) return;
	var event = 'tb=search&text=' + encodeURIComponent(document.getElementById('formBase:viewerFindText').value);
	return processEvent( event );
}
function changeZoomFactor(thisObj, thisEvent) {
	var event = 'tb=zoom&index=' + thisObj.selectedIndex + '&value=' + thisObj.value
	return processEvent( event );
}
function changeReportView(thisObj, thisEvent) {
	var event = 'tb=views&index=' + thisObj.selectedIndex + '&value=' + thisObj.value;
	return processEvent( event );
}
// -----------------------------------------------------------------------------
// End Crystal Reports Viewer Events
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------

