var strResult;   		// Global variable

//---------------------------------

function containsForbiddenChars(strIn)	{
	return ((strIn.indexOf(String.fromCharCode(8364)) != -1) || (strIn.indexOf("\\") != -1));
}

function getSelectedValue(selObj) {
	var idx = selObj.selectedIndex;

	if (idx >= 0) {
		return selObj.options[idx].value;
	}

	return "";
}

function getObjectNamed(frmObj, objName) {
	var count;

	for (count = 0; count < frmObj.elements.length; count++) {
		if (frmObj.elements.item(count).name == objName) {
			return frmObj.elements.item(count);
		}
	}

	return null;
}

function strtrim(inString) {
	var startPos = 0;
	var endPos   = inString.length - 1;

	while ((startPos < inString.length) && (inString.charAt(startPos) == ' '))
		startPos++;

	while ((endPos > startPos) && (inString.charAt(endPos) == ' '))
		endPos--;

	return (inString.substring(startPos, endPos + 1));
}

function isdigitstr(inString) {
	var pos = 0;

	while (pos < inString.length) {
		if ((inString.charAt(pos) < '0') || (inString.charAt(pos) > '9'))
			return false;

		pos++;
	}

	return true;
}

function leftstrip(inString, c) {
	var pos = 0;

	while ((pos < inString.length) && (inString.charAt(pos) == c))
		pos++;

	return (inString.substring(pos, inString.length));
}

function errormessage(errString, errObj) {
	alert(errString);

	if (errObj != null) {
		errObj.focus();
	}

	return false;
}

function formatnumber(strNum, len) {
	var strTmp	= "00000000000000000000000000000000000000" + new String(strNum);
	var l		= strTmp.length;

	return (strTmp.substring(l - len, l));
}

function getRadioValue(formObj, radioName) {
	for (i = 0; i < formObj.length; i++) {
		if (formObj.elements[i].type == "radio") {
			if ((formObj.elements[i].name == radioName) && (formObj.elements[i].checked == true))
				return (formObj.elements[i].value);
		}
	}

	return "";
}

function setRadioState(formObj, radioName, idx, chkState) {
	var curIdx = 0;
	var oldState = false;

	for (i = 0; i < formObj.length; i++) {
		if ((formObj.elements[i].type == "radio") && (formObj.elements[i].name == radioName)) {
			if (curIdx == idx) {
				oldState = (formObj.elements[i].checked != chkState);
				formObj.elements[i].checked = chkState;
				return oldState;
			} else {
				curIdx++;
			}
		}
	}

	return oldState;
}

function replace(srcString, searchString, replaceString) {
	var i = srcString.indexOf(searchString);

	if (i > -1)
		return (srcString.substring(0, i) + replaceString + srcString.substring(i + searchString.length, srcString.length));
	else
		return srcString;
}

function replaceAll(srcString, searchString, replaceString) {
	var i = srcString.indexOf(searchString);
	var newString = srcString;

	while (i > -1) {
		newString = newString.substring(0, i) + replaceString + newString.substring(i + searchString.length, newString.length);
		i = newString.indexOf(searchString);
	}
	return newString;
}

function getField(fieldName) {
	var searchStr = top.window.location.search;
	var startIdx  = searchStr.indexOf(fieldName + "=", 0);
	var stopIdx;

	if (startIdx > 0) {
		startIdx += fieldName.length + 1;
		stopIdx   = searchStr.indexOf("&", startIdx);

		if (stopIdx > 0) {
			return searchStr.substring(startIdx, stopIdx);
		} else {
			return searchStr.substring(startIdx, searchStr.length);
        }
	}

	return "";
}

function getCookie(cookieName) {
	cookieName = "BBL" + cookieName;

	var i = document.cookie.indexOf(cookieName);

	if (i > - 1) {
		var tmp = document.cookie.substring(i + cookieName.length + 1, document.cookie.length)

		i = tmp.indexOf(";");

		if (i > -1)
			return tmp.substring(0, i);
		else
			return tmp;
	}

	return "";
}

function setCookie(cookieName, cookieValue) {
	var currentDate = new Date();
	currentDate.setFullYear(currentDate.getFullYear() + 1);

	cookieName = "BBL" + cookieName;

	if (navigator.cookieEnabled == true)
		document.cookie = cookieName + "=" + cookieValue + ";expires=" + currentDate.toGMTString() + ";path=";
}

function delCookie(cookieName) {
	if (navigator.cookieEnabled && getCookie(cookieName) != '') {
		document.cookie = "BBL" + cookieName + "=" + ";expires=Thu, 01-Jan-1970 00:00:01 GMT" + ";path=";
	}
}

function preloadImages() {
	if (document.images) {
		var imgFiles		= preloadImages.arguments;
		var preloadArray	= new Array();

		for (var i = 0; i < imgFiles.length; i++) {
			preloadArray[i]		= new Image;
			preloadArray[i].src	= imgFiles[i];
		}
	}
}

function swapImage() {
	var obj = eval(swapImage.arguments[0]);

	if (obj != null) {
		if (obj.src != swapImage.arguments[1]) {
			obj.src = swapImage.arguments[1];
		}
	}
}

function dlgBox(url,title) {
	dlgBoxEx(url, title, 40, 40, 640, 420);
}

function dlgBoxEx(url, title, top, left, width, height)	{ 
	var newWindow = window.open(url, title, "toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=" + width + ",height=" + height + ",top=" + top + ",left=" + left);

	if ((newWindow) && (newWindow.focus)) {
		newWindow.focus();
	}
}

function movePriority(selectObject, step){
	idx = selectObject.selectedIndex;
	newidx = idx + step;

	if (selectObject.length > 1) {
		if (newidx < 0) { // move selected index in first position
			
			selectObject.length += 1;
			for (i = 0 ; i < selectObject.length ; i++) {
				selectObject.options[selectObject.length - i] = new Option(selectObject.options[selectObject.length - i - 1].text,selectObject.options[selectObject.length - i - 1].value);
			}
			// add in first position
			selectObject.options[0] = new Option(selectObject.options[idx + 1].text,selectObject.options[idx + 1].value);
			
			// remove
			selectObject.remove(idx + 1);
			selectObject.length -= 1;
			
			selectObject.selectedIndex = 0;
		}
	
		if (newidx >= selectObject.length) { // move selected index in last position
			selectObject.length += 1;
			
			// add in last position
			selectObject.options[selectObject.length - 1] = new Option(selectObject.options[idx].text,selectObject.options[idx].value);

			// remove
			selectObject.remove(idx);
			
			selectObject.selectedIndex = selectObject.length - 1;
		}
		
		if (newidx >= 0 && newidx < selectObject.length) {
			// switch objects between themself
			objText = selectObject.options.item(idx).text;
			objValue = selectObject.options.item(idx).value;
			selectObject.options.item(idx).text = selectObject.options.item(newidx).text;
			selectObject.options.item(idx).value = selectObject.options.item(newidx).value;
			selectObject.options.item(newidx).text = objText;
			selectObject.options.item(newidx).value = objValue;
			selectObject.selectedIndex = newidx;
		}
	}
}

function autoTab(input, nextInput, e) {

	var len = input.maxLength;	
	var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
	var filter = [0,8,9,16,17,18,37,38,39,40,46];
	
	if (input.value.length >= len && !containsElement(filter, keyCode)) {
		input.value = input.value.slice(0, len);
		nextInput.focus();
		nextInput.select();
	}
	
	function containsElement(arr, ele) {
		var found = false, index = 0;
		while (!found && index < arr.length)
			if (arr[index] == ele)
				found = true;
			else
				index++;
		return found;
	}
	
	return true;
}

function padStr(str, len, alignment, padChar) {

	if (str.length >= len) return str;
	
	switch (alignment) {
	case 0:     //left
		return str + new Array(len - str.length + 1).join(padChar);
	case 1:		//right
		return new Array(len - str.length + 1).join(padChar) + str;
	case 2:		//center
		var tempStr = new Array(Math.floor((len - str.length) / 2) + 1).join(padChar) + str;
		return tempStr + new Array(len - tempStr.length + 1).join(padChar);
	default:	//error
		return str;
	}
}

function cropStr(str, len, alignment) {

	if (str.length <= len) return str;
	
	switch (alignment) {
	case 0:     //left
		return str.substring(0, len);
	case 1:		//right
		return str.substring(str.length - len, str.length);
	case 2:		//center
		var lenDiff = str.length - len;
		var remain = lenDiff % 2;
		var cuts = (lenDiff - remain) / 2;
		return str.substring(cuts + remain, str.length - cuts);
	default:	//error
		return str;
	}
}

function fixStrLen(str, len, alignment, padChar) {

	if (str.length > len) {
		return cropStr(str, len, alignment);
	} else if (str.length < len) {
		return padStr(str, len, alignment, padChar);
	} else {
		return str;
	}
}

/* OD */
function setGenericCookie( name, value, expiryDays, path, domain, secure ) 
{
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );

	expires = 0;
	if ( expiryDays )
	{
		expires = expiryDays * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );

	var strcook = name + "=" +escape( value ) +
	( ( expiryDays ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );

	document.cookie = strcook;
}

function getGenericCookie(name){
	var pos=document.cookie.indexOf(name+"=");
	if (pos!=-1){
		var start=pos+name.length+1;
		var end=document.cookie.indexOf(";",start);
		if (end==-1){
			end=document.cookie.length;
		}
		return unescape(document.cookie.substring(start,end));
	}
	return null;
}

function getRequestParameter(param) {
	var q = document.location.search || document.location.hash;
	if (param == null) { return q; }
	if(q) {
		var pairs = q.substring(1).split("&");
		for (var i=0; i < pairs.length; i++) {
			if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
				return unescape((pairs[i].substring((pairs[i].indexOf("=")+1))).replace('+', ' '));
			}
		}
	}
	return null;
}

// copy of getElement used in IAuto general.js
// Do not use IAuto js files anymore
function getElement(id,d) {
  var p,i,x;
  if(!d)
      d=document;
  if(!(x=d[id])&&d.all)
      x=d.all[id];
  for (i=0;!x&&i<d.forms.length;i++)
      x=d.forms[i][id];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++)
      x=getElement(id,d.layers[i].document);
  if(!x && d.getElementById)
      x=d.getElementById(id);

  return x;
};
