
//
// Checkbox control
//

function _cb_onCheckboxClick(chk, field, prefix)
{
	if ( ! prefix )
	{
		prefix = 'rezdb_';
	}
	
	eval('document.mainForm.'+ prefix + field + '.value = "' + (chk.checked ? "y" : "n") + '"');
}

//
// Two side-by-side multi select controls, with << and >> buttons in between
//

function _ms_onAddRemoveClick(sel, btnId)
{
	var btn = document.getElementById(btnId);
	btn.disabled = (sel.options.length <= 0 && sel.selectedIndex < 0);
}

function _ms_onAddRemoveDblClick(summaryId, selId, fromId, toId, fromBtnId, toBtnId, notremove)
{
	var from = document.getElementById(fromId);
	var to = document.getElementById(toId);

	// move selected items
	for (var i = from.length - 1; i >= 0; i--) {
		if (from.options[i].selected) {
			for (var j = 0; j < to.length; j++) {
				if (to.options[j].text > from.options[i].text)
					break;
			}
			for (k = to.options.length; k > j; k--)
				to.options[k] = new Option(to.options[k - 1].text, to.options[k - 1].value);
			to.options[j] = new Option(from.options[i].text, from.options[i].value);
			if (!notremove)
				from.options[i] = null;
		}
	}
	from.selectedIndex = -1;

	// disable button (nothing is selected now)
	var fromBtn = document.getElementById(fromBtnId);
	fromBtn.disabled = true;

	// recompute hidden form field
	_ms_refreshSummaryField(summaryId, selId);
}

function _ms_refreshSummaryField(summaryId, selId)
{
	var summary = document.getElementById(summaryId);
	var sel = document.getElementById(selId);
	var s = '';
	for (var i = 0; i < sel.options.length; i++)
		s += (s.length > 0 ? ',' : '') + sel.options[i].value;
	summary.value = s;
}

//
// Image selector
//

function _is_deleteImage($delname, $boxname, $selname)
{
	document.getElementById($boxname).style.display = 'none';
	document.getElementById($selname).style.display = '';
	document.getElementById($delname).value = 'true';
}

//
// DateRange control
//
var ___change_end_date;
function _dr_onStartDateClicked(format, change_end)
{
	___change_end_date = change_end;
	
	var calendar = new CalendarPopup("caldar");
	calendar.setCssPrefix("calendar_");
	calendar.setReturnFunction("_dr_onStartDateSelected");
	
	calendar.select(document.mainForm.rezdb_start_date, 'startAnchor', format);
}

function _dr_onEndDateClicked(format)
{
	var calendar = new CalendarPopup("caldar");
	calendar.setCssPrefix("calendar_");
	calendar.setReturnFunction("_dr_onEndDateSelected");
	calendar.select(document.mainForm.rezdb_end_date, 'endAnchor', format);
}

function _dr_onStartDateSelected(y,m,d)
{
	try
	{
		CP_tmpReturnFunction(y,m,d);
		if (___change_end_date=='y' && document.mainForm.rezdb_end_date.value == '')
		{
			document.mainForm.rezdb_end_date.value = document.mainForm.rezdb_start_date.value ;
		}
		_dr_onStartDateChange();
	} catch (e) {}
}

function _dr_onEndDateSelected(y,m,d)
{
	CP_tmpReturnFunction(y,m,d);
	_dr_onEndDateChange();
}

function _dr_onStartDateChange( format )
{
	var date = ( format ? getDateField( document.mainForm.rezdb_start_date, format ) : document.mainForm.rezdb_start_date.value );
	if (document.mainForm.never_expires)
	{
		if ( ! isNaN(date) || ! document.mainForm.never_expires.checked)
		{
			document.mainForm.rezdb_end_date.value = formatDate( date, format );
		}
	}
	else
	{
		if ( ! isNaN(date) && document.mainForm.rezdb_end_date.value.length == 0 )
		{
			document.mainForm.rezdb_end_date.value = formatDate( date, format );
		}
	}
}

function _dr_onEndDateChange( format )
{
	var date = ( format ? getDateField( document.mainForm.rezdb_end_date, format ) : document.mainForm.rezdb_end_date.value );
	if (document.mainForm.never_expires)
	{
		document.mainForm.never_expires.checked = (document.mainForm.rezdb_end_date.value.length == 0);
	}
}

function _dr_onNeverExpiresClicked()
{
	if (document.mainForm.never_expires.checked)
	{
		document.mainForm.rezdb_end_date.value = '';
	}
}

//
// Weekdays control
//

var _wd_days = new Array( "sun", "mon", "tue", "wed", "thu", "fri", "sat" );

function _wd_onClickAllDays(all, mask)
{
	for (var i = 0; i < _wd_days.length; i++)
	{
		var field = mask.replace('<day>',_wd_days[i]);
		eval("document.mainForm." + field + ".checked = all.checked;");
		eval("document.mainForm.rezdb_" + field + ".value = (all.checked ? 'y' : 'n')");
	}
}

function _wd_onWeekdayClick(day, field)
{
	eval("document.mainForm.rezdb_" + field + ".value = (day.checked ? 'y' : 'n')");
	document.mainForm.cal_all.checked = false;
}

//
// TextArea control
//

function _ta_onTextAreaChange(textarea, counter, max)
{
	textCounter(textarea, document.getElementById(counter), max);
}

//
// FieldSelector control
//

function _fs_onTableSelect(tableSelect, listIDs)
{
	var IDs = listIDs.split(',');
	for ( var i = 0; i < IDs.length; i++ )
	{
		document.getElementById('fs_div_' + IDs[i]).style.display = ( IDs[i] == tableSelect.value ? 'block' : 'none' );
	}
}

function _fs_onFieldSelect(fieldSelect, tableSelect, fieldCode)
{
	document.getElementById(fieldCode).value = '{!' + document.getElementById(tableSelect).value + '.' + fieldSelect.value + '}';
	document.getElementById(fieldCode).focus();
	document.getElementById(fieldCode).select();
}

//
// Info Popup control
//

function _ip_showInfoPopup( e, info, i, minWidth )
{
		document.getElementById('infopopuptext_'+i).innerHTML = info;
	
	  	var w_width = 0, w_height = 0, w_xoffset = 0, w_yoffset = 0;
	  	
	  	if( typeof( window.innerWidth ) == 'number') {
	  		//Non-IE
	  		w_width = window.innerWidth;
		  	w_height = window.innerHeight;
		} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		  	//IE 6+ in 'standards compliant mode'
		  	w_width = document.documentElement.clientWidth;
		  	w_height = document.documentElement.clientHeight;
		} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		  	//IE 4 compatible
		  	w_width = document.body.clientWidth;
		  	w_height = document.body.clientHeight;
		}
		
		if( document.documentElement) {
	  		//IE6 standards compliant mode
	  		w_yoffset = document.documentElement.scrollTop;
	  		w_xoffset = document.documentElement.scrollLeft;
		} else if( typeof( window.pageYOffset ) == 'number' ) {
	  		//Netscape compliant
	  		w_yoffset = window.pageYOffset;
	  		w_xoffset = window.pageXOffset;
	  	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	  		//DOM compliant
	  		w_yoffset = document.body.scrollTop;
	  		w_xoffset = document.body.scrollLeft;
	  	} 

		x = e.clientX;
		y = e.clientY;
		var infopopup = document.getElementById('infopopup_'+i);
 		var csw = Math.min(infopopup.scrollWidth, minWidth);
 		if (!infopopup.style.width)
 		{
		   	infopopup.style.width = csw + 'px';
 		}
	 	var csh = infopopup.scrollHeight;
	 	if (!infopopup.style.height)
	 	{
	 		infopopup.style.height = csh + 'px';
	 	}

		if ((( x + csw + 20) - w_xoffset) > w_width - w_xoffset)
		{
			x = x - csw - 20;	
		}
		if ((( y + csh + 30) - w_yoffset) > w_height - w_yoffset)
		{
			y = y - csh - 30;
		}
		
		var left = (x + w_xoffset + 10);
		var top = (y + w_yoffset + 15);
		
		if (top < w_yoffset)
		{
			top = w_yoffset;	
		}
		if (left < w_xoffset)
		{
			left = w_xoffset;	
		}
		
		
		infopopup.style.top = Math.max(top, 0) + 'px';
	   	infopopup.style.left = Math.max(left, 0) + 'px';
	   	infopopup.style.display = "block";
	   	infopopup.style.visibility = "visible"; 
	   	try {
			var frame = document.getElementById('infoiframe_'+i);
			frame.style.top = Math.max(top, 0)	 + 'px';
			frame.style.left = Math.max(left, 0) + 'px';
			frame.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
		   	frame.style.display = "block";	
		   	frame.style.width = infopopup.style.width;
		   	frame.style.height = infopopup.style.height;
		} catch (e) {}
}

function _ip_hideInfoPopup(i)
{
	document.getElementById('infopopup_'+i).style.visibility = "hidden"; 
	try {
		document.getElementById('infoiframe_'+i).style.display = "none";
	} catch (e) {}
}

//
// Color Picker
//

var _cp_window = null;
var _cp_field;
var _cp_element;

function _cp_pick( anchorname, formFieldName, uiElementName )
{
	_cp_field = document.getElementById( formFieldName );
	_cp_element = document.getElementById( uiElementName );
	if ( ! _cp_window )
	{
		_cp_window = new ColorPicker( 'window' );
	}
	_cp_window.show( anchorname );
}

function pickColor( color )
{
	_cp_field.value = color;
	_cp_element.style.backgroundColor = color;
}

function _cp_restore( formFieldName, uiElementName, color )
{
	document.getElementById( formFieldName ).value = color;
	document.getElementById( uiElementName ).style.backgroundColor = color;
}

var g_name = "";
function onLoad_iframe(url,name,description)
{
	try {
		if(g_name == name)
		{
			document.getElementById('box').style.display = "none";
			document.getElementById('load_iframe').style.display = "none";
			document.getElementById('header').style.display = "none";
			g_name = "";
		}
		else
		{
			document.getElementById('load_iframe').src = url;
			document.getElementById('load_iframe_header').innerHTML = description;
			document.getElementById('load_iframe').style.display = "";
			document.getElementById('header').style.display = "";
			document.getElementById('box').style.display = "";
			g_name = name;
		}
	} catch (e) {}
}

function onClose_iframe()
{
	try {
	document.getElementById('box').style.display = "none";
	document.getElementById('load_iframe').style.display = "none";
	document.getElementById('header').style.display = "none";
	g_name = "";
	} catch (e) {}
}

