// JavaScript Document

/**
* Toggles the check state of a group of boxes
*
* Checkboxes must have an id attribute in the form cb0, cb1...
* @param The number of box to 'check'
* @param An alternative field name
*/
function checkAll( n, fldName ) {
  if (!fldName) {
     fldName = 'cb';
  }
	var f = document.adminForm;
	var c = f.toggle.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.' + fldName + '' + i );
		if (cb) {
			cb.checked = c;
			n2++;
		}
	}
	if (c) {
		document.adminForm.boxchecked.value = n2;
	} else {
		document.adminForm.boxchecked.value = 0;
	}
}

function listItemTask( id, task ) {
    var f = document.adminForm;
    cb = eval( 'f.' + id );
    if (cb) {
        for (i = 0; true; i++) {
            cbx = eval('f.cb'+i);
            if (!cbx) break;
            cbx.checked = false;
        } // for
        cb.checked = true;
        f.boxchecked.value = 1;
        submitbutton(task);
    }
    return false;
}


function saveorder( n,  task ) {
	checkAll_button( n, task );
}

//needed by saveorder function
function checkAll_button( n, task ) {

    if (!task ) {
		task = 'saveorder';
	}

	for ( var j = 0; j <= n; j++ ) {
		box = eval( "document.adminForm.cb" + j );
		if ( box ) {
			if ( box.checked == false ) {
				box.checked = true;
			}
		} else {
			alert("You cannot change the order of items, as an item in the list is `Checked Out`");
			return;
		}
	}
	document.adminForm.method="post";
	submitform(task);
}


function isChecked(isitchecked){
	if (isitchecked == true){
		document.adminForm.boxchecked.value++;
	}
	else {
		document.adminForm.boxchecked.value--;
	}
}



/**
* Default function.  Usually would be overriden by the component
*/
function submitbutton(pressbutton) {
	submitform(pressbutton);
}

/**
* Submit the admin form
*/
function submitform(pressbutton){
	oldtask = document.adminForm.task.value;
	if (pressbutton) {
		document.adminForm.task.value=pressbutton;
	}
	if (typeof document.adminForm.onsubmit == "function") {
		document.adminForm.onsubmit();
	}
	document.adminForm.submit();
	document.adminForm.task.value = oldtask;
}

function submitbutton_action(formaction) {
	submitform_action(formaction);
}
function submitform_action(formaction){
	if (typeof document.adminForm.onsubmit == "function") {
		document.adminForm.onsubmit();
	}
	old_action = document.adminForm.action;
	document.adminForm.action=formaction;
	submitbutton(pressbutton);
	document.adminForm.action=old_action;
}



/**
* Submit the button by get
*/
function submitbuttonget(pressbutton){
	old_method = document.adminForm.method;
	document.adminForm.method='get';
	submitbutton(pressbutton);
	document.adminForm.method=old_method;
}
function submitbuttonget_action(formaction, pressbutton){
	old_method = document.adminForm.method;
	old_action = document.adminForm.action;
	document.adminForm.method='get';
	document.adminForm.action=formaction;
	submitbutton(pressbutton);
	document.adminForm.method=old_method;
	document.adminForm.action=old_action;
}

function submitbutton_cancel() {
	if (contentDirty) {
		if (confirm('Do you want to discard the changes?')) {
			submitbutton('cancel');
		}
	} else {
		submitbutton('cancel');
	}
}

function confirmDirty() {
	if (contentDirty) {
		return confirm('Do you want to discard the changes?');
	} else {
		return true;
	}
}


function newcontent(content_type_id){
	document.adminForm.content_type_id.value=content_type_id;
	submitbuttonget('add');
}
function newcontentfromtemplate(template_id){
	document.adminForm.template_id.value=template_id;
	submitbuttonget('add');
}
function submitbutton_newwindow(pressbutton){
	document.adminForm.target='_blank';
	submitbutton(pressbutton);
	document.adminForm.target='_self';
}
function submitbuttonget_newwindow(pressbutton){
	document.adminForm.method='get';
	document.adminForm.target='_blank';
	submitbutton(pressbutton);
	document.adminForm.target='_self';
}

function listItemTaskGet( id, task ) {
    var f = document.adminForm;
    cb = eval( 'f.' + id );
    if (cb) {
        for (i = 0; true; i++) {
            cbx = eval('f.cb'+i);
            if (!cbx) break;
            cbx.checked = false;
        } // for
        cb.checked = true;
        f.boxchecked.value = 1;
        submitbuttonget(task);
    }
    return false;
}

// needed for Table Column ordering
function tableOrdering( sort, order, task ) {
	var form = document.adminForm;

	form.sort.value 	= sort;
	form.order.value	= order;
	submitform( task );
}


/**
* Submit the admin form by get
*/
function submitformget(pressbutton){
	document.adminForm.method='get';
	submitform(pressbutton);
}
function submitformget_newwindow(pressbutton){
	document.adminForm.method='get';
	document.adminForm.target='_blank';
	submitform(pressbutton);
	document.adminForm.target='_self';
}

function issueAjaxRequest(url, hander) {
	var req = false;
	if (window.XMLHttpRequest) {// if Mozilla, Safari etc
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // if IE
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");

		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
			}
		}
	} else {
		return false;
	}

	req.onreadystatechange = function() {
		if (req.readyState == 4 && req.status == 200) {
			hander(req);
		}
	}
	try {
		req.open('GET', url, true);
		req.send(null);
	} catch (e) {
	}


}


function setComma(obj) {
	obj.value = getCommaValue(obj.value);
}
function getCommaValue(value) {
	var nf = new NumberFormat(value)
	nf.setPlaces(0);
	return nf.toFormatted();
}

function issueAjaxRequest(url, handler, asyc) {
	var req = false;
	if (window.XMLHttpRequest) {// if Mozilla, Safari etc
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // if IE
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");

		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
			}
		}
	} else {
		return false;
	}

	req.onreadystatechange = function() {
		if (req.readyState == 4 && req.status == 200) {
			handler(req);
		}
	}
	try {
		if (asyc == undefined) {
			asyc = true;
		}
		req.open('GET', url, asyc);
		req.send(null);
	} catch (e) {

alert("An exception occurred in the script. Error name: " + e.name  + ". Error message: " + e.message);
	}


}

String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.ltrim = function() {
	return this.replace(/(^\s*)/g, "");
}
String.prototype.rtrim = function() {
	return this.replace(/(\s*$)/g, "");
}


function showSearchTable() {
	$("#searchtable").toggle("slow");
}

function showAllTable(value){
	$("#"+value).toggle("slow");
}
function printFriendly() {
	
	$(".nonPrintFriendly").hide();
	$("#toolbar").hide();
	window.print();
	$(".nonPrintFriendly").show();
	$("#toolbar").show();
}

function set_field_value(field_query, value) {
	if (value) {
		$(field_query).val(value);
	} else {
		$(field_query).val('');
	}
}

function set_field_html(field_query, value) {
	if (value) {
		$(field_query).html(value);
	} else {
		$(field_query).html('');
	}
}

function set_field_attr(field_query, attr, value) {
	if (value) {
		$(field_query).attr(attr, value);
	} else {
		$(field_query).attr(attr, '');
	}
}

function submitDelete() {
	if (document.adminForm.boxchecked.value != 1) {
		alert('Please select item(s) from the list to delete');
	} else {
		submitbuttonget('remove');
	}
}

function submitEdit() {
	if (document.adminForm.boxchecked.value != 1) {
		alert('Please select item(s) from the list to edit');
	} else {
		submitbuttonget('edit');
	}
}

function submitNew() {
	submitbuttonget('add');
}

