/*

mewmedia:
ajax updater
uses prototype

example:
replaceElement('id_to_replace', 'url', 'url_parameters');

*/

function replaceElement(id, url, param, loading, var1) {
	
	new Ajax.Updater(id, url, 

		{
		
			method: "get",
			
			parameters: param,
		
			onCreate: function completeFn() {
				// loading screen
				switch(loading) {
				case"true":
				//document.getElementById(id).style.display = 'none';
					document.getElementById(id).innerHTML = 'Saving';
				break;
				case"loading":
					loadingBox('none');
				break;
				case"showAttributes":
					document.getElementById(id+'_loading').innerHTML = 'Loading';
					displayArrows(var1, 'down');
				break;
				}
			},
			
			onComplete: function completeFn() {
				//if (loading == "true")
				//document.getElementById(id).style.display = '';
				//document.getElementById(id).innerHTML = 'Loading';
				switch(loading) {
					case"showAttributes":
						
						document.getElementById(id+'_loading').innerHTML = '';
						slidePanelDown(var1, '0.5');
						
					break;
					
					default:
					
					if (document.getElementById(id)) {
						
						runScripts(document.getElementById(id)); //run all scripts now contained in the target div element
					
						
					}
					
				}
			}
		}
	);
	
}

function runScripts(e) {
	
	if (e.nodeType != 1) return; //if it's not an element node, return
 	
	if (e.tagName.toLowerCase() == 'script') {
		//alert(e.text);
		eval(e.text); //run the script
	}
	else {
		var n = e.firstChild;
		while ( n ) {
			//document.write(n.tagName);
			if ( n.nodeType == 1 ) runScripts( n ); //if it's an element node, recurse
			n = n.nextSibling;
		}
	}
}


function ajaxReplaceElement(type) {
	
	switch(type) {
		
	case"attributesPanel_container":
		replaceElement('attributesPanel_container', 'ajaxAttributes.php', 'type=attributesPanel_container&product='+top.window.productId);
		hideAttributeTypeButtons();
		GB_CURRENT.hide();
		ajaxShowElement();
		
		
		s = document.getElementById('modAttributeType_edit').href;
		r = s.replace("ref="+attType ,"ref=0" );
		document.getElementById('modAttributeType_edit').href = r;
		
		s = document.getElementById('modAttributeType_delete').href;
		r = s.replace("ref="+attType ,"ref=0" );
		document.getElementById('modAttributeType_delete').href = r;
		
		// ----- modAttribute ------- //
		
		s = document.getElementById('modAttribute_add').href;
		r = s.replace("ref="+attType ,"ref=0" );
		document.getElementById('modAttribute_add').href = r;
		
		attType = 0;
		
	break;
	
	case"attributeEditorPanel":
		replaceElement('attributeEditorPanel', 'ajaxAttributes.php', 'type=attributeEditorPanel&attribute='+attType+'&product='+top.window.productId);
		GB_CURRENT.hide();
		ajaxShowElement();
		
		s = document.getElementById('modAttribute_edit').href;
		r = s.replace("ref="+attId ,"ref=0" );
		document.getElementById('modAttribute_edit').href = r;
		
		s = document.getElementById('modAttribute_delete').href;
		r = s.replace("ref="+attId ,"ref=0" );
		document.getElementById('modAttribute_delete').href = r;
		
		attId = '0';
	break;
	}
	
}

function ajaxShowElement() {
	// show element
	
	if (attType != '0') {
		if (document.getElementById('attributeEditorPanel')) {
			e = document.getElementById('attributeEditorPanel');
			if (e)
			e.style.display = 'block';
		}
		
	
		
	}
}

function ajaxHideElement() {
	// hide element
	if (document.getElementById('attributeEditorPanel')) {
		e = document.getElementById('attributeEditorPanel');
		if (e)
		e.style.display = 'none';
	}
}

function saveItem(i, c, base) {
	
	login = escape(document.getElementById('login'+c).checked);
	comment = escape(document.getElementById('comment'+c).checked);
	contributions = escape(document.getElementById('contributions'+c).checked);
	events = escape(document.getElementById('events'+c).checked);
	campusalam = escape(document.getElementById('campusalam'+c).checked);
	group = escape(document.getElementById('group'+c).checked);
	resources = escape(document.getElementById('resources'+c).checked);
	superuser = escape(document.getElementById('superuser'+c).checked);
	
	replaceElement('ajax_save'+c, base+'ajaxSave.php', 'type=saveUser&login='+login+'&comment='+comment+'&contributions='+contributions+'&events='+events+'&campusalam='+campusalam+'&group='+group+'&resources='+resources+'&superuser='+superuser+'&ref='+i, 'true');

}

function saveGroup(user, group, c, base) {
	
	
	role = escape(document.getElementById('pod_role'+c).value);
	contributions = escape(document.getElementById('pod_contribution'+c).checked);
	events = escape(document.getElementById('pod_event'+c).checked);
	
	replaceElement('ajax_save'+c, base+'ajaxSave.php', 'type=saveGroup&role='+role+'&contributions='+contributions+'&events='+events+'&group='+group+'&user='+user, 'true');

}

function saveComment(i, c, base) {
	
	live = escape(document.getElementById('live'+c).checked);
	rejected = escape(document.getElementById('rejected'+c).checked);
	deleted = escape(document.getElementById('deleted'+c).checked);
	flagged = escape(document.getElementById('flagged'+c).checked);
	//recommended = escape(document.getElementById('recommended'+c).checked);

	notes = document.getElementById('notes'+c).value;
	
	
	status = 2;
	status = (rejected == 'true') ? 1 : status;
	status = (deleted == 'true') ? 3 : status;
	
	
	replaceElement('ajax_save'+c, base+'ajaxSave.php', 'type=saveComment&status='+status+'&flagged='+flagged+'&notes='+notes+'&ref='+i, 'true');

}


function showAttributeButtons() {
	e = document.getElementById('attribute_edit');
	if (e)
	e.style.display = 'block';
	e = document.getElementById('attribute_delete');
	if (e)
	e.style.display = 'block';
}

function showAddAttributeButton() {
	e = document.getElementById('attribute_add');
	if (e)
	e.style.display = 'block';
}


function hideAttributeButtons() {
	e = document.getElementById('attribute_edit');
	if (e)
	e.style.display = 'none';
	e = document.getElementById('attribute_delete');
	if (e)
	e.style.display = 'none';
}

function hideAllAttributeButtons() {

	e = document.getElementById('attribute_add');
	if (e)
	e.style.display = 'none';
	e = document.getElementById('attribute_edit');
	if (e)
	e.style.display = 'none';
	e = document.getElementById('attribute_delete');
	if (e)
	e.style.display = 'none';
}

function showAttributeTypeButtons() {
	e = document.getElementById('attributeType_edit');
	if (e)
	e.style.display = 'block';
	e = document.getElementById('attributeType_delete');
	if (e)
	e.style.display = 'block';
}

function hideAttributeTypeButtons() {
	e = document.getElementById('attributeType_edit');
	if (e)
	e.style.display = 'none';
	e = document.getElementById('attributeType_delete');
	if (e)
	e.style.display = 'none';
}

