/* specific helper */
// return a value from a parent div
function MyParentVal2(obj, parentID) {

	var rowCnt = obj.parentNode.parentNode;
	var items = rowCnt.childNodes;

	for ( var i = 0; i < items.length; i++) {
		// get identifiers -->		   // NOTE: List is live, Adding or
										// removing children will change the
										// list // do something with each child
										// as children[i]
		if (items[i].id == parentID) {
			return parentVal = items[i].value; // pid = id for parant
												// (link|ref)
		}
	}
	;
	// todo (re-evaluate
	if (!pid) {
		alert('err. js - system pid not found');
		return;
	}

}
function MyParentVal1(obj, parentID) {

	var rowCnt = obj;
	var items = rowCnt.childNodes;

	for ( var i = 0; i < items.length; i++) {
		// get identifiers -->		   // NOTE: List is live, Adding or
										// removing children will change the
										// list // do something with each child
										// as children[i]
		if (items[i].id == parentID) {
			return parentVal = items[i].value; // pid = id for parant
												// (link|ref)
		}
	}
	;
	// todo (re-evaluate
	if (!pid) {
		alert('err. js - system pid not found');
		return;
	}

}

function xmReload() {

	winRefresh = function(intv_id) {
		// remove interval (within this funcions scope)
		clearInterval(intv);
		window.location = xmWindowSelf;
	}

	// delay and then reload the page the is opened
	var intv = setInterval('winRefresh()', 200);

}

/* menu specific functions */

function AdmMenuRows(obj, state) {

	switch (state) {
	case "over":
		obj.id = "Adm_MenuRow_Active";

		// get buttons id
		var controls = getChildNodeById(obj, "Adm_options"); // todo (find
																// more recouse
																// frenly
																// method)
		// change appearence
		controls.style.visibility = "visible";
		break;
	case "out":
		obj.id = "Adm_MenuRow_Inactive";
		// get buttons id
		var controls = getChildNodeById(obj, "Adm_options");
		// change appearence
		controls.style.visibility = "hidden";
		break;
	}
}

var pid_cut_from = 0;

function AdmM_Cut(obj) {
	// set id of selected
	pid = MyParentVal2(obj, 'pid');

	if (pid_cut_from) {
		if (pid_cut_from == pid) {
			// disarm cutting action
			changeAll_byClassName('Adm-MenuRow', "Adm_MenuRow_Inactive");
			// reset cashed click
			pid_cut_from = 0;
			return;
		} else {
			// is not equal excute
			loc = xmWindowSelf + "(menu=cut;from_pid=" + pid_cut_from
					+ ";to_pid=" + pid + ";)(tmpl=none)"
			// send cmd to server
			window.location = loc;

		}
	}
	changeAll_byClassName('Adm-MenuRow', "Adm_Row_Marked")

	var myPar = obj.parentNode.parentNode;

	myPar.id = "Adm_Row_MarkFrom";
	pid_cut_from = pid; // cash last click
}

function changeAll_byClassName(classname, new_id_styleName) {

	var items = document.getElementsByClassName(classname);
	if (0 < items.length) {

		for ( var i = 0; i < items.length; i++) {
			items[i].id = new_id_styleName; // styled with css
		}
	}
}

function AdmM_Delete(obj) {
	// set id of selected
	pid = MyParentVal2(obj, 'pid');

	if (!pid) {
		alert("delete pid not set");
		return;
	}

	var r = confirm("Trash ?");
	if (r == true) {
		// delete item
		var loc = xmWindowSelf + "(menu=delete;pid=" + pid + ")(tmpl=none)";
		window.location = loc;
	} else {
		// dont delete
	}
}

function AdmM_Restore(obj) {
	// set id of selected
	pid = MyParentVal2(obj, 'pid');
	if (!pid) {
		alert("restore pid not set");
		return;
	}
	//			  var r=confirm("Restore");
	// if (r==true){
	// // restore item
	var loc = xmWindowSelf + "(menu=restore;pid=" + pid + ")(tmpl=none)";
	window.location = loc;
	// }else{
	// // dont restore
	// }
}

// receive pid from popSet (iframe) and submit for serverside process.
function AdmMenu_Set_id(cntCat_id) {

	// place id in form
	if (!cntCat_id) {
		alert("err. cat_id returned empty.")
	} else {
		$("Adm_pid").value = pid;
		$("Adm_cntCat").value = cntCat_id;
	}
	// unload the window popSet
	AdmM_SetCat(null, "unload"); // asuming the window was loaded
	// submit form and return to self (reloaded)
	$("AdmMenu_form").submit();
}

function AdmM_UpDown(obj, state, direction) {

	// TODO: add coloration when active
	switch (state) {
	case "over":

		break;
	case "out":

		break;
	case "click":
		pid = MyParentVal2(obj, 'pid');

		if (!pid) {
			alert("xmMenu move pid is not found");
			return;
		}
		if (!direction) {
			alert("xmMenu move Direction is not set");
			return;
		}

		// set instruction
		var loc = xmWindowSelf + "(menu=" + direction + ";pid=" + pid
				+ ")(tmpl=none)"
		window.location = loc;
	}

} // AdmM_UpDown

function AdmM_Child(obj, state) {

	switch (state) {
	case "over":

		break;
	case "out":

		break;
	case "click":
		pid = MyParentVal2(obj, 'pid');

		if (!pid) {
			alert("xmMenu move pid is not found");
			return;
		}

		// set instruction
		var loc = xmWindowSelf + "(menu=makeChild;pid=" + pid + ")(tmpl=none)"
		window.location = loc;
	}
}

function AdmM_SetCat(obj, state) {

	switch (state) {

	case "over":
		obj.id = "Adm_MenuRow_Active";

		break;
	case "out":
		obj.id = "";

		break;
	case "click":
		// search for hidden object with pid 
		pid = MyParentVal2(obj, 'pid');
		// popSet window
		// load only once
		// --- /*\ -->
	case "unload":
		var pw = document.getElementsByClassName('AdmM-popSet');

		if (1 <= pw.length) { // window exist	

			$(popSet_winCache).removeChild(pw[0]);
		} else { // window not exsist
			// set adress
			if (!xmWindowSelf) {
				alert("err. window self could not be found");
			}
			//  iFrame 	
			var popSet_adress = '(xmUI=xmMenu;pop;childCat)';
			// create in location window as a page selector
			var popSet = Builder.node('div', {
				'class' : 'AdmM-popSet',
				'id' : 'AdmM-popSet'
			}, Builder.node('iframe', {
				'src' : popSet_adress
			}, ''));
			// obj.setAttribute('id', "rmLater");
			popSet_winCache = obj;
			// attach to element
			obj.appendChild(popSet);
		}
		break;
	}// end switch				
}
var popSet_winCache; // popSet window placeholder (remove popwin later)
var pid;

function AdmM_MenuOptions(obj, state, mid) {

	pid = MyParentVal2(obj, 'pid');
	switch (state) {
	case "over":
		obj.id = "Adm_MenuRow_Active";
		break;
	case "out":
		obj.id = "";
		break;
	case "click":
		// search for hidden object with pid 
		pid = MyParentVal2(obj, 'pid');
		// popSet window
	case "unload":
		var pw = document.getElementsByClassName('AdmM-popSet');

		if (1 <= pw.length) { // window exist	
			// get parent
			var myPar = pw.parentNode;
			// var items = rowCnt.childNodes;

			$(popSet_winCache).removeChild(pw[0]);

		} else { // window not exsist
			// set adress
			if (!xmWindowSelf) {
				alert("err. window self could not be found");
			}
			//  iFrame 	
			var popSet_adress = '(xmUI=xmMenu;pop;MenuOptions;pid=' + pid + ')';
			// create in location window as a page selector
			var popSet = Builder.node('div', {
				'class' : 'AdmM-popSet',
				'id' : 'AdmM-popSet',
				'style' : ' width: 400px; '
			}, Builder.node('iframe', {
				'src' : popSet_adress
			}, ''));
			// obj.setAttribute('id', "rmLater");
			popSet_winCache = obj;
			// attach to element
			obj.appendChild(popSet);
		}
		break;
	}// end switch				
}

function Adm_edit_imgOpt(obj, fid) {

	var pw = document.getElementsByClassName('Adm-popFileOpt');

	if (1 <= pw.length) { // window exist	
		// get parent
		var myPar = pw[0].parentNode;
		// var items = rowCnt.childNodes;

		$(myPar).removeChild(pw[0]);
	} else {

		var popSet_adress = '(xmUI=xmFiles;fileInfo;fid=' + fid + ')';

		// create in location window as a page selector
		var popSet = Builder.node('div', {
			'class' : 'Adm-popFileOpt',
			'id' : 'Adm-popFileOpt'
		}, [ Builder.node('div', {
			'class' : 'Adm-popFileTbar',
			'id' : 'Adm-popFileTbar'
		}, '  '), Builder.node('iframe', {
			'src' : popSet_adress
		}, ''), Builder.node('div', {
			'class' : 'xWizButtonClose',
			'id' : 'xWiz-fWclose'
		}, [ Builder.node('img', {
			'src' : '/xmg/xm_v0_3/ico_close.png'
		}) ]) ]);
		// popSet_winCache = obj;
		// attach to element
		obj.parentNode.appendChild(popSet);
		// make draggeble
		document.xmFileWDrag = new Draggable('Adm-popFileOpt', {
			'handle' : 'Adm-popFileTbar'
		});
		// attach button close function
		Event.observe('xWiz-fWclose', 'click', function closeFwindow() {
			Adm_edit_imgOpt(this, null);
		});
	}

}

// TODO: obsolete
//function adm_imgColl_showtext(obj) {
//	var my_par = obj.parentNode;
//
//	var item = getChildNodeById(my_par, "text_edit");
//	var it = item.style;
//
//	if (it.visibility == "hidden") {
//		it.visibility = "visible";
//	} else {
//		it.visibility = "hidden";
//	}
//}
