

dojo.require("dijit.TitlePane");  
dojo.require("dijit.form.DateTextBox");  
dojo.require("dijit.form.TextBox");
dojo.require("dijit.form.Button");
dojo.require("dijit.Dialog");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.TabContainer");
dojo.require("dijit.ProgressBar");
dojo.require("dojo.parser");
//dojo.require("dojo.back");


var djConfig = { isDebug: false, debugAtAllCosts: false, parseOnLoad: true }
var stack = [];
var interactiveNode;

function myEv(event) {
	//state.tabNode = dijit.byId('mainTabContainer').domNode.innerHTML;
	//dojo.back.addToHistory(state);
}

var state = {
		tabNode: '',
        back: function() {dijit.byId('mainTabContainer').domNode.innerHTML = this.tabNode;}
};


dojo.addOnLoad(function() {

	//console.dir(dojo.query("#mainTabContainer"));
   // interactiveNode = dijit.byId("mainTabContainer").domNode;
    //console.dir( dojo.connect);
	// Dirty custom for campus-hh:
	if ($('contentContainer1')) $('contentContainer1').style.opacity  = '100';
	if ($('contentContainer1')) $('contentContainer1').style.mozopacity  = '1';
	
	//document.getElementsByTagName('body')[0].style.backgroundImage  = 'none';
    if (dijit.byId('mainTabContainer')) dijit.byId('mainTabContainer').domNode.style.visibility = "visible";
    
    //state.tabNode = dijit.byId('mainTabContainer').domNode.innerHTML;
    //dojo.back.setInitialState(state);
    //dojo.back.addToHistory(state);
    //dojo.connect(interactiveNode, 'onmousedown', myEv);
});

function addClickEvent(target, functionname) {
	if (target.addEventListener) 
    			target.addEventListener("click", functionname, false);
	else if (target.attachEvent) target.attachEvent("onclick",functionname);
			else target.onclick = functionname;
}
function close(element) {
	element.getElementsByTagName("div").style.height = "0px";
	element.getElementsByTagName("div").style.visibility = "hidden";
}
					
var backPane;
var progressBar;

// For groupview actions:
var groupItems = Array();
var groupTitles = Array();
var groupUsers = Array();

function $(id) { return document.getElementById(id); }

function removeClickEvent(target, functionname) {
  if (target.removeEventListener) 
      target.removeEventListener("click", functionname, false);
  else if (target.detachEvent) target.detachEvent("onclick",functionname);
  else target.onclick = null;

}

function addClickEvent(target, functionname) {
  if (target.addEventListener) 
      target.addEventListener("click", functionname, false);
  else if (target.attachEvent) target.attachEvent("onclick",functionname);
  else target.onclick = functionname;
}

/*
 Executes a function given when document is loaded
*/
function addOnDocumentLoaded(functionname) {

  if (window.addEventListener)
    window.addEventListener("load", functionname, false);
  else if (window.attachEvent) window.attachEvent("onload", functionname);
  else window.onload = functionname;
}

function hideMainDisplay() {
	if (!backPane) backPane = document.createElement("div");
	backPane.style.position = "fixed";        
    backPane.style.width = "100%"; 
    backPane.style.height = "100%";     
    backPane.style.top = "0px";     
    backPane.style.left = "0px";         
    backPane.style.backgroundColor = "#444444";     
	backPane.style.opacity  = '.40';
    backPane.style.filter  = 'alpha(opacity=40)';
    backPane.style.mozopacity  = '.4';    
	backPane.style.zindex = '900000';	    
	backPane.innerHTML='&nbsp;'; 
	
	if (backPane.parentNode != document.body) {    	
        document.body.appendChild(backPane);
    }
    window.setTimeout(function() { 
    	//$('ce_basic_albumdetailview_addmember').style.visibility = 'hidden';
    	backPane.style.visibility = "visible";
    	//backPane.parentNode.style.
    	
    	//backPane.style.display = "";
   	},   50);
}

function showMainDisplay() {
	window.setTimeout(function() { 
		backPane.style.visibility = "hidden";
    	//backPane.style.display = "none";	
    	backPane.style.width = "0%"; 
   		backPane.style.height = "0%";    	
		//backPane.style.zindex = '-90';	
	//	$('ce_basic_albumdetailview_addmember').style.visibility = 'visible';
//		ce_basic_albumdetailview_addmember.style.
	}, 50);
}

   
           
function showProgressBar() {
	hideMainDisplay();
	/*$("progressBar").style.zindex = '300';	
	dijit.byId("jsProgress").update({progress: (0)});	// initialize
	window.setTimeout(function() { 
		$("progressBar").style.visibility = "visible";
	}, 50);*/
}

function hideProgressBar() {
	showMainDisplay();
	/*window.setTimeout(function() { 
		$("progressBar").style.visibility = "hidden";
	}, 50);*/
}

function checkAll(checkGroupID) {
	for (var i = 0; i < document.getElementsByTagName("input").length; i++) {
		if (document.getElementsByTagName("input")[i].type=="checkbox") {
			if ((document.getElementsByTagName("input")[i].name.indexOf(checkGroupID)>0) && (document.getElementsByTagName("input")[i].checked==false)) document.getElementsByTagName("input")[i].click();
		}	
	}	 
}

function uncheckAll(checkGroupID) {
	for (var i = 0; i < document.getElementsByTagName("input").length; i++) {
		if (document.getElementsByTagName("input")[i].type=="checkbox") {
			if ((document.getElementsByTagName("input")[i].name.indexOf(checkGroupID)>0) && (document.getElementsByTagName("input")[i].checked==true)) document.getElementsByTagName("input")[i].click();
		}	
	}
}

function checkAllWrapper(element, checkGroupID) {
	if (element.checked) checkAll(checkGroupID); else uncheckAll(checkGroupID);
}

function getMarkedItemsAsArray(checkGroupID) {
	var res = new Array();
	var keyname = "tx_cebasic_pi1[checkbox_";
	//alert("getting marked groups...");
	for (var i = 0; i < document.getElementsByTagName("input").length; i++) {
		if (document.getElementsByTagName("input")[i].type=="checkbox") {
			if ((!checkGroupID) || ((checkGroupID) && (document.getElementsByTagName("input")[i].name.indexOf(checkGroupID)))) {
				if ((document.getElementsByTagName("input")[i].name.indexOf(keyname)>-1) && (document.getElementsByTagName("input")[i].checked==true)) {
				 	var groupidstr = document.getElementsByTagName("input")[i].id.substring(keyname.length);
				 	groupidstr = groupidstr.substr(0, groupidstr.length - 1);
				 	//alert ( groupidstr);
				 	res[res.length] = groupidstr;
				}
			}
		}	
	}
	return res;
}

function deleteMarkedGroups(checkGroupID) {	
	var markedGroups = getMarkedItemsAsArray(checkGroupID);
	for (var i = 0; i < markedGroups.length; i++) {		
		tx_cebasic_pi1deleteGroup(
		{
		  	groupid: markedGroups[i]
		});	
	}
}


function deleteMarkedAlbums(checkGroupID) {	
	var markedAlbums = getMarkedItemsAsArray(checkGroupID);
	for (var i = 0; i < markedAlbums.length; i++) {		
		tx_cemedia_pi1deleteAlbum(
		{
		  	albumid: markedAlbums[i],
		  	checkGroupID: checkGroupID
		});	
	}
}


function deleteMarkedGroupMembers(groupID, checkGroupID) {
	var markedGroupMembers = getMarkedItemsAsArray(checkGroupID);
	for (var i = 0; i < markedGroupMembers.length; i++) {		
		tx_cebasic_pi1deleteGroupMember(
		{
		  	groupmemberid: markedGroupMembers[i],
			groupid: groupID
		});	
	}
}

function getMarkedGroupMembers(checkGroupID) {
	var markedGroupMembers = getMarkedItemsAsArray(checkGroupID);
	var users = "";
	for (var i = 0; i < markedGroupMembers.length; i++) {		
		users = users + " " + $("tx_cebasic_pi1[checkbox_"+markedGroupMembers[i]+"]").value;
	}
	return users;
}

function confirmMarkedGroupMembers(checkBoxArray, checkGroupID) {
	var markedGroupMembers = getMarkedItemsAsArray(checkGroupID);
	for (var i = 0; i < markedGroupMembers.length; i++) {		
		tx_cebasic_pi1confirmGroupMember(
		{
		  	groupmemberid: markedGroupMembers[i],
			groupid: groupID
		});	
	}
/*	for (var i = 0; i < checkBoxArray.length; i++) {	
		if ($("tx_cebasic_pi1[checkbox_"+checkBoxArray[i]+"]")) {
			element = $("tx_cebasic_pi1[checkbox_"+checkBoxArray[i]+"]");
			if (element.checked) {
				tx_cebasic_pi1confirmGroupMember(
					{
					  	groupmemberid: checkBoxArray[i],
					  	groupid: groupID
					});	
			}
		}
	}*/
}

//TODO Get User from marked groups per ajax instead following:
function getUsersFromMarkedGroups(checkGroupID) {
	for (var i = 0; i < groupItems[checkGroupID].length; i++) {	
		tx_cebasic_pi1getGroupMembersAsJS('tx_mmforum_pi3[user]', groupItems[checkGroupID][i]);		
	}
	return '';
}

function addGroupItems(checkbox, groupID, groupTitle, checkGroupID) {
	if (checkbox.checked == true) {
		var alreadAdded = false;
		if (!groupItems[checkGroupID]) groupItems[checkGroupID] = new Array();
		if (!groupTitles[checkGroupID]) groupTitles[checkGroupID] = new Array();
		for (var i = 0; i < groupItems[checkGroupID].length; i++) {	
			if (groupItems[checkGroupID][i]==groupID) alreadAdded = true;
		}
		if (alreadAdded==false) {
			groupItems[checkGroupID][groupItems[checkGroupID].length] = groupID;
			groupTitles[checkGroupID][groupTitles[checkGroupID].length] = groupTitle;
		}
	} else 
	{
		var alreadAdded = false;
		for (var i = 0; i < groupItems[checkGroupID].length; i++) {	
			if (groupItems[checkGroupID][i]==groupID) {
				groupItems[checkGroupID].splice(i,1);
				groupTitles[checkGroupID].splice(i,1);
				break;
			}
		}
	}				
}


function doNothing() {
}

/***** MM_FORUM INTERACTION *************/
var pageContent = '';
var userlistcontent = '';
var userlist = '';
var pagePointer = 0;
var current_groupid = 0;

var mode = 0;
if (document.getElementsByName('tx_mmforum_pi3[save]')[0]) {
	document.getElementsByName('tx_mmforum_pi3[save]')[0].type = 'button';
	addClickEvent(document.getElementsByName('tx_mmforum_pi3[save]')[0], doUserSearch);	
}
if (document.getElementsByName('tx_mmforum_pi3[save]')[1]) {
	document.getElementsByName('tx_mmforum_pi3[save]')[1].type = 'button';
	addClickEvent(document.getElementsByName('tx_mmforum_pi3[save]')[1], sendMsgs);	
}
function doUserSearch() {
	//tx_cebasic_pi1getUserDisplay(pagePointer);
	if (current_groupid==0) tx_cebasic_pi1getGroupDisplay(pagePointer);
	else tx_cebasic_pi1getUserDisplay(pagePointer, current_groupid);
}
function openingGroup(group_id) {
	pagePointer = 0;
	current_groupid = group_id;
	doUserSearch();
}
function usingUsersFromGroups() {
	selectingName();
}
function displayNextPage() {
	pagePointer++;	
	doUserSearch();			
}
function displayPrevPage() {
	pagePointer--;
	doUserSearch();				
}
function displayContent(content) {
	if (mode==0) { 
		userlistcontent = document.createElement('div'); 
		pageContent = document.getElementById('contentContainer2').innerHTML;
		userlist = document.getElementsByName('tx_mmforum_pi3[user]')[0].value;
	}
	document.getElementById('contentContainer2').innerHTML = content ;
	mode = 1;				
}
function getListWithoutDuplicates(myList) {
	var newList = '';
	var newElements = new Array();
	var found = false;
	elements = myList.split(' ');
	for (var i = 0; i < elements.length; i++) {		
		found = false;
		for (var j = 0; j < newElements.length; j++) {		
			if (newElements[j]==elements[i]) found = true;
		}
		if (!found) {
			newElements.push(elements[i]);
			newList = newList + ' ' + elements[i];
		}
	}
	if (newList.length>0) return newList.substr(1);
	return '';
}

function selectingName(userName) {
	document.getElementById('contentContainer2').innerHTML = pageContent;
	if (userName) document.getElementsByName('tx_mmforum_pi3[user]')[0].value = getListWithoutDuplicates(userlist+' '+userName);
	
	addClickEvent(document.getElementsByName('tx_mmforum_pi3[save]')[0], doUserSearch);
	addClickEvent(document.getElementsByName('tx_mmforum_pi3[save]')[1], sendMsgs);
	mode = 0;
	current_groupid = 0;
}



/************ AJAX ***********************/

function deleted_Group(myElementID) {
	$("group_"+myElementID).innerHTML = '';
}

function deleted_GroupMember(myElementID) {
	$("groupmember_"+myElementID).innerHTML = '';
	//If UserAddBox exists then refresh content:
	if ($("useraddbox")) {
		tx_cebasic_pi1getGroupMembersToAddDisplay();
	}
}

function deleted_Album(myElementID, checkGroupID) {
	$("album_"+checkGroupID+'_'+myElementID).innerHTML = '';
}

function displayContentGroupMembersToAdd(content) {
	$("useraddbox").innerHTML = content ;
}

function displayGroupDetails(content) {
	$("groupmemberbox").parentNode.innerHTML = content;
}

/************* USER INTERACTION ******************/


function confirmDeletion(dialogFields, fuctionName) {
   return true;
}



/*** STARTING ACTIONS ****/

//hideMainDisplay();

