/********************************************************************************************************************************/
function init_mb1DocsModule(){
	$('#searchDocsFrm').submit(function(){ docsPager($('#folderID').val(), $('#d_srt').val(), $('#d_rpp').val(), 1); return false; });
	init_mb1DocsFolders();
	initAddDocUploadBtn();
	initDocRows();
	return false;
}
/********************************************************************************************************************************/
function initAddDocUploadBtn(){
	if(parseInt($('#folderID').val()) <= 0 || parseInt($('#ulvl').val()) > 1 && $('#folderType').val() != 'user'){
		$('#docUploadBtnGroup').hide();
		if($('#ulvl').val() > 1){ $('#docsToolbarTBl').hide(); }
	}else{
		$('#docsToolbarTBl').show();
		$('#docUploadBtnGroup').show();
		initDocUpload('swfDocUpload', 'docUploadBox', 'docUploadBtn', 'docUploadQueue', 'docUploadCancelBtn', $('#mb1DocsPath').val(), 'docUploaded', 'Add', '&folderID='+$('#folderID').val(), $('#mb1DocsFileFilter').val(), $('#mb1DocsMaxUploadQueue').val());
	}
	return false;
}
/********************************************************************************************************************************/
function initDocRows(){
	if($('#folderReadOnly').val() == 'true' || $('#dids').val() == ''){ return false; }
	var rows = String($('#dids').val()).split(':');
	var flds = String($('#docFields').val()).split(':');
	for(var r = 0; r < rows.length; r++){
		//var row = rows[r];
		for(var i = 1; i < flds.length; i=i+5){
			if(flds[(i+3)] == 'true'){
				//$('#'+flds[i]+r).after(reqIcon);
			}
			switch(flds[(i+2)]){
				case 'numeric':
					$('#'+flds[i]+rows[r]).bind('keypress', function(){ checkNum(); });
				case 'textbox':
				case 'textarea':
					$('#'+flds[i]+rows[r]).bind('keyup', { row:rows[r] }, validateDocRow);
					$('#'+flds[i]+rows[r]).bind('focus', function(){ var that = this; setTimeout(function(){that.select();}, 10); });
				break;
				case 'dropdown':
				case 'dropdownVal':
					$('#'+flds[i]+rows[r]).bind('change', function(){ validateDoc('yes', row); });
				break;
				case 'checkbox':
					$('#'+flds[i]+rows[r]).bind('click', function(){ validateDoc('yes', row); });
				break;
				case 'hidden':
				case 'tinymce':
				default:
					//do nothing
				break;
			}
		}
	}
	return false;
}
/********************************************************************************************************************************/
function initRowDocUploadBtn(row){
	if($('#folderReadOnly').val() == 'true'){ return false; }
	$('#docRowUploadGroup'+row).fadeIn(200);
	initDocUpload('swfDocUpload', 'docUploadBox'+row, 'docUploadBtn'+row, 'docUploadQueue', 'docUploadCancelBtn'+row, $('#mb1DocsPath').val(), 'docUploaded', $('#docID'+row).text(), '&folderID='+$('#folderID').val(), '*.'+$('#docType'+row).text(), $('#mb1DocsMaxUploadQueue').val());
	return false;
}
/********************************************************************************************************************************/
function docUploaded(data){
	var response = String(data).split(':');
	switch(response[0]){
		case 'Success':
			switch(response[1]){
				case 'Added':
				case 'Updated':
					docsPager($('#folderID').val(), $('#d_srt').val(), $('#d_rpp').val(), $('#d_page').val());
				break;
			}
		break;
		case 'Failure':
			switch(response[1]){
				case 'NoDocumentIDPassedIn':
				case 'NoFolderIDSupplied':
				case 'DocumentNotFound':
				case 'NoMethodRequested':
					showResponse(response[3]);
				break;
			}
		break;
		default:
			showResponse('An error occured while Uploading Document:'+data);
		break;
	}
	return false;
}
/********************************************************************************************************************************/
function docsPager(catID, srt, rpp, page){
	addLoader('#docsSearchStatus');
	var folderChanged = true; if(catID == $('#folderID').val()){ folderChanged = false; }
	//$('#lborder').height($('#shopContentTbl').height());
	if(rpp != $('#d_rp').val()){
		page = 1;
	}
	$('#d_rp').val(rpp);
	$('#d_rpp').val(rpp);
	$('#d_page').val(page);
	$('#d_srt').val(srt);
	$.post('../include/mb1_docs.php', { mtd: 'docsPager', srt: srt, rpp: rpp, page: page, srch: $('#d_srch').val(), catID: catID },
	function(data){
		$('#docsListDiv').empty();
		$('#docsListDiv').append(data);
		//$('#lborder').height('');
		//init_mb1DocsFolders();
		fadeOutLoader('#docsSearchStatus');
		if(folderChanged == true){ initAddDocUploadBtn(); }
		initDocRows();
		var updTree = false; if(jQuery.tree.reference('#docsCatsDiv').selected == undefined){ updTree = true; }else if(jQuery.tree.reference('#docsCatsDiv').selected.attr('id') != catID){ updTree = true; }
		if(updTree == true){
			jQuery.tree.reference('#docsCatsDiv').select_branch('#'+catID);
			if(jQuery.tree.reference('#docsCatsDiv').selected.is('.open') == false && jQuery.tree.reference('#docsCatsDiv').selected.is('.leaf') == false){ jQuery.tree.reference('#docsCatsDiv').open_branch('#'+catID); }
		}
		return false;
	});
	return false;
}
//**********************************************************************************************************
function openDoc(row){
	switch($('#docType'+row).text()){
		case 'pdf':
			openDialog($('#mb1DocsPath').val()+$('#fn'+row).val(), 900, 550, '', '', 'no', 'smallx');
		break;
		default:
			downloadFile(row);
		break;
	}
	return false;
}
//**********************************************************************************************************
function downloadFile(row){
	var safn = ($('#folderReadOnly').val() == 'false')? $('#fileName'+row).val() : $('#fileName'+row).text();
	window.location.href = 'include/mb1_docs.php?mtd=downloadDoc&fname='+$('#fn'+row).val()+'&ftype='+$('#docType'+row).text()+'&fsize='+$('#fileSize'+row).text()+'&safn='+safn;
	return false;
}
//**********************************************************************************************************
function checkAllDocs(){
	if($('#dids').val() == ''){ return false; }
	var rows = $('#dids').val().split(':');
	if($('#checkAllDocsBtnTop').text() == 'Select All'){
		$('.docCheckAllBtn').text('De-Select All');
		for(var i = 0; i < rows.length; i++){
			$('#docChk'+rows[i]).attr('checked', 'checked');
		}
	}else{
		$('.docCheckAllBtn').text('Select All');
		for(var i = 0; i < rows.length; i++){
			$('#docChk'+rows[i]).attr('checked', '');
		}
	}
	return false;
}
//**********************************************************************************************************
function validateDocRow(e){
	validateDoc('yes', e.data.row);
	return false;
}
//**********************************************************************************************************
function validateDoc(doBlink, row){
	if($('#docFields').val()==undefined){ return false; }
	var missingInfo = false;
	var flds = String($('#docFields').val()).split(':');
	for(var i = 1; i < flds.length; i = i + 5){
		if(flds[(i+3)]=='true'){
			switch(flds[(i+2)]){
				case 'hidden':
				case 'textbox':
				case 'textarea':
					if($('#'+flds[i]+row).val()==''){
						missingInfo = true;
					}
				break;
				case 'numeric':
					if(parseFloat($('#'+flds[i]+row).val())<=0 || parseFloat($('#'+flds[i]+row).val()).toString()=='NaN'){
						missingInfo = true;
					}
				break;
				case 'dropdown':
				case 'dropdownVal':
					if(flds[i] == 'docLink'){
						if($('#'+flds[i]+row).val()=='-10'){
							$('#customDocLink'+row).show();
						}else{
							$('#customDocLink'+row).hide();
						}
					}else{
						if($('#'+flds[i]+row).val()=='' || $('#'+flds[i]+row).val()=='-10'){
							missingInfo = true;
						}
					}
				break;
				case 'dropdownText':
					if($('#'+flds[i]+row+' :selected').text()==''){
						missingInfo = true;
					}
				break;
			}
		}
	}
	//***********************/
	if(missingInfo == false){
		var newStatus = '';
		if(doBlink=='no'){
			newStatus = 'Active';
		}else{
			newStatus = 'Ready';
			$('#docSaveBtn'+row).attr('disabled', '');
		}
		if($('#docRowEditStatus'+row).val() != newStatus){
			$('#docRowEditStatus'+row).val(newStatus);
			$('#docStatusDiv'+row).flashembed(
				{src: '../flex/StatusLight/StatusLight.swf', wmode: 'transparent'},
				{CurrentStatus: $('#docRowEditStatus'+row).val(), doBlink: doBlink }
			);
		}
	}else{
		if($('#docRowEditStatus'+row).val()!='NotReady'){
			$('#docRowEditStatus'+row).val('NotReady');
			$('#docStatusDiv'+row).flashembed(
				{src: '../flex/StatusLight/StatusLight.swf', wmode: 'transparent'},
				{CurrentStatus: $('#docRowEditStatus'+row).val(), doBlink: doBlink }
			);
		}
		$('#docSaveBtn'+row).attr('disabled', 'diabled');
	}
	return false;
}
//***************************************************************************
function saveDoc(row){
	if($('#docSaveBtn'+row).attr('disabled')==true){ return false; }
	$('#docSaveBtn'+row).attr('disabled', 'disabled');
	addLoader('#docLoaderDiv'+row);
	var flds = String($('#docFields').val()).split(':');
	var c = Array(); var v = Array();
	for(var i = 1; i < flds.length; i = i + 5){
		switch(flds[(i+2)]){
			case 'hidden':
			case 'textbox':
			case 'textarea':
			case 'numeric':
			case 'dropdown':
			case 'dropdownVal':				
				c.push(flds[(i+1)]);
				v.push($('#'+flds[i]+row).val());
			break;
			case 'dropdownText':
				c.push(flds[(i+1)]);
				v.push($('#'+flds[i]+row+' :selected').text());
			break;
		}
	}
	/*************************/
	$.post('../include/mb1_docs.php', { mtd: 'saveDoc', docID: $('#docID'+row).text(), c: c.join(':'), v: v.join(':||:') },
	function(data){
		var doBlink = 'no';
		var dat = data.split(':');
		switch(dat[0]){
			case 'Success':
				switch(dat[1]){
					case 'Updated':
						docsPager($('#folderID').val(), $('#d_srt').val(), $('#d_rpp').val(), $('#d_page').val());
						return false;
					break;
				}
			break;
			case 'Failure':
			default:
				switch(dat[1]){
					case 'NoMethodRequested':
						$('#docRowEditStatus'+row).val('NotReady');
						doBlink = 'yes';
						alert(dat[3]);
					break;
					default:
						$('#docRowEditStatus'+row).val('NotReady');
						doBlink = 'yes';
						alert('An error occured while saving:'+data);
					break;
				}
			break;
		}
		$('#docStatusDiv'+row).flashembed(
			{src: '../flex/StatusLight/StatusLight.swf', wmode: 'transparent'},
			{CurrentStatus: $('#docRowEditStatus'+row).val(), doBlink: doBlink }
		);
		fadeOutLoader('#docLoaderDiv'+row);
		return false;
	});
	return false;
}
//**********************************************************************************************************
function remSelectedDocs(){
	var rem = confirm('Are you sure that you want to remove ALL selected Documents?');
	if(rem != true){ return false; }
	addLoader('#docsLoader');
	var rows = String($('#dids').val()).split(':');
	for(var r = 0; r < rows.length; r++){
		if($('#docChk'+rows[r]).attr('checked') == true){
			remDoc(rows[r]);
		}
	}
	fadeOutLoader('#docsLoader');
	return false;
}
//**********************************************************************************************************
function remDocClicked(row){
	var rem = confirm('Are you sure that you want to remove this Document?');
	if(rem != true){ return false; }
	remDoc(row);
	return false;
}
//**********************************************************************************************************
function remDoc(row){
	addLoader('#docStatusDiv'+row);
	$.post('../include/mb1_docs.php', { mtd: 'remDoc', docID: $('#docID'+row).text() },
	function(data){
		var doBlink = 'no';
		var dat = data.split(':');
		switch(dat[0]){
			case 'Success':
				switch(dat[1]){
					case 'SuccessfullyRemovedDoc':
						$('#docListRow'+row).remove();
						var rows = String($('#dids').val()).split(':');
						for(var i=0; i < rows.length; i++){ if(row == rows[i]){ rows.splice(i, 1); } }
						$('#dids').val(rows.join(':'));
					break;
				}
			break;
			case 'Failure':
				showResponse(dat[3]);
			break;
			default:
				alert('An error occured while saving:'+data);
			break;
		}
		fadeOutLoader('#docStatusDiv'+row);
		return false;
	});
	return false;
}
//***************************************************************************
//Categories (Folders)
//***************************************************************************
function init_mb1DocsFolders(){
	if(jQuery.tree.reference('#docsCatsDiv')){ jQuery.tree.reference('#docsCatsDiv').destroy(); var t = setTimeout(function(){ init_mb1DocsFolders(); return false; }, 100); return false; }
	var caturl = $('#srcDomain').val()+'/include/cats.php?mtd=cats_mb1Docs';
	/*Init Shop Cat Tree 2*/
	var selectedCat = $('#folderID').val();
	$('#docsCatsDiv').tree({
		data : { type : 'html', opts : { url : caturl } },
		selected: selectedCat, ui: { context: false, theme_name: 'psdDocs' },
		types : { "default" : { draggable : false } },
		callback: {
			onselect: function (NODE) {
				$.tree.focused().open_branch('#'+$(NODE).attr('id'));
				if($(NODE).attr('id') != $('#folderID').val()){
					docsPager($(NODE).attr('id'), $('#d_srt').val(), $('#d_rpp').val(), $('#d_page').val());
				}
			}
		}
	});
	selectedCat = 0;
	return false;
}
//***************************************************************************
function expandCollapseFolders(){
	switch($('#folderCollapseExpandBtn').text()){
		case 'Expand All':
			jQuery.tree.reference('#docsCatsDiv').open_all();
			$('#folderCollapseExpandBtn').text('Collapse All');
		break;
		case 'Collapse All':
			jQuery.tree.reference('#docsCatsDiv').close_all();
			$('#folderCollapseExpandBtn').text('Expand All');
		break;
	}
	return false;
}
//***************************************************************************
function addNewFolderClicked(){
	var catLbl = prompt('New Folder Name', 'Type Folder Name Here');
	if(catLbl == null || catLbl == false || catLbl == ''){ return false; }
	saveDocsCat('Add', $('#folderID').val(), catLbl);
	return false;
}
//***************************************************************************
function renameFolderClicked(catID){
	var catLbl = prompt('Rename Folder', $('#catLabel'+catID).text());
	if(catLbl == null || catLbl == false || catLbl == ''){ return false; }
	saveDocsCat(catID, $('#folderID').val(), catLbl);
	return false;
}
//***************************************************************************
function saveDocsCat(catID, parentID, catLbl){
	addLoader('#docsLoader');
	var c = Array('cat_label');
	var v = Array(catLbl);
	if(catID == 'Add'){
		c.push('cat_level');
		v.push(String(($('#folderLevel').val() == -1) ? 0 : parseInt($('#folderLevel').val())+1));
		switch($('#folderType').val()){
			case 'user':
			case 'users':
				c.push('cat_type', 'access_type', 'access_list');
				v.push('user', 'users', '['+$('#auid').val()+']');
			break;
			case 'system':
			case 'normal':
				c.push('cat_type', 'access_type', 'access_list');
				v.push($('#folderType').val(), 'groups', '1');
			break;
			default:
				showResponse('In-Correct Folder Type:'+$('#folderType').val()); return false;
			break;
		}
	}
	$.post('../include/mb1_docs.php', { mtd: 'saveDocCat', catID: catID, parentID: parentID, c: c.join(':'), v: v.join(':||:') },
	function(data){
		var dat = String(data).split(':');
		switch(dat[0]){
			case 'Success':
				switch(dat[1]){
					case 'Added':
						showResponse(dat[3]);
						docsPager($('#folderID').val(), $('#d_srt').val(), $('#d_rpp').val(), $('#d_page').val());
						init_mb1DocsFolders();
					break;
					case 'Updated':
					default:
						showResponse(dat[3]);
						$('#catLabel'+catID).text(catLbl);
						init_mb1DocsFolders();
					break;
				}
			break;
			case 'Failure':
				switch(dat[1]){
					case 'NoMethodRequested':
					case 'NoParentID':
					default:
						showResponse(dat[3]);
					break;
				}
			break;
			default:
				showResponse('There was an error while saving::'+data);
			break;
		}
		fadeOutLoader('#docsLoader');
		return false;
	});
	return false;
}
//***************************************************************************
function remDocsCat(catID){
	var rem = confirm('Are you sure that you want to remove this folder?');
	if(rem != true){ return false; }
	addLoader('#docsLoader');
	$.post('../include/mb1_docs.php', { mtd: 'remDocCat', catID: catID },
	function(data){
		var dat = String(data).split(':');
		switch(dat[0]){
			case 'Success':
				switch(dat[1]){
					case 'SuccessfullyRemovedCat':
					default:
						showResponse(dat[3]);
						docsPager($('#folderID').val(), $('#d_srt').val(), $('#d_rpp').val(), $('#d_page').val());
						init_mb1DocsFolders();
					break;
				}
			break;
			case 'Failure':
				switch(dat[1]){
					case 'ChildCatsFound':
					case 'ChildDocsFound':
					case 'CatNotFound':
					default:
						showResponse(dat[3]);
					break;
				}
			break;
			default:
				showResponse('There was an error while saving::'+data);
			break;
		}
		fadeOutLoader('#docsLoader');
		return false;
	});
	return false;
}
//***************************************************************************
function editFolderSecurity(folderID){
	openDialog('../include/mb1_docs.php?mtd=folderSecurityModule&fid='+folderID, 650, 600, '', '', 'no', 'smallx', '#FFF');
	return false;
}
//***************************************************************************
function initFolderSecurityApp(folderID){
	$('#mb1DocsFolderSecurityDiv').flashembed(
		{src: '../flex/mb1DocsSecurity/mb1DocsSecurity.swf', wmode: 'transparent', id: 'folderSecurityApp'},
		{srcDomain: $('#srcDomain').val(), auid: $('#auid').val(), ulvl: $('#ulvl').val(), folderID: folderID }
	);
	init_mb1DocsSecurityFolders(folderID);
	return false;
}
//***************************************************************************
function init_mb1DocsSecurityFolders(folderID){
	if(jQuery.tree.reference('#docsFolderDiv')){ jQuery.tree.reference('#docsFolderDiv').destroy(); var t = setTimeout(function(){ init_mb1DocsSecurityFolders(folderID); return false; }, 100); return false; }
	var caturl = $('#srcDomain').val()+'/include/cats.php?mtd=cats_mb1Docs'; //alert(folderID);
	/*Init Shop Cat Tree 2*/
	$('#docsFolderDiv').tree({
		data : { type : 'html', opts : { url : caturl } },
		selected: folderID, ui: { context: false, theme_name: 'psdDocs' },
		types : { "default" : { draggable : false } },
		callback: {
			onselect: function (NODE) {
				$.tree.focused().open_branch('#'+$(NODE).attr('id'));
				//if($(NODE).attr('id') != $('#folderID').val()){
					if(thisMovie('folderSecurityApp')){ thisMovie('folderSecurityApp').getFolder(parseInt($(NODE).attr('id'))); }
				//}
			}
		}
	});
	//folderID = 0;
	return false;
}
//***************************************************************************
function selectParentFolder(){
	if(!jQuery.tree.reference('#docsFolderDiv')){ alert('No Folders?'); return false; }
	var selectedFolder = jQuery.tree.reference('#docsFolderDiv').selected;
	var selectedFolderParent = jQuery.tree.reference('#docsFolderDiv').parent(selectedFolder);
	
	if(selectedFolderParent == -1){
		jQuery.tree.reference('#docsFolderDiv').deselect_branch(selectedFolder);
	}else{
		jQuery.tree.reference('#docsFolderDiv').select_branch(selectedFolderParent);
	}
	return false;
}
//***************************************************************************
function addFolderClicked(){
	if(!jQuery.tree.reference('#docsFolderDiv')){ alert('No Folders?'); return false; }
	addLoader('#docsLoader');
	var folderLbl = prompt('New Folder Name', 'Type Folder Name Here');
	if(folderLbl == null || folderLbl == false || folderLbl == ''){ fadeOutLoader('#docsLoader'); return false; }
	var c = Array('cat_label', 'cat_type', 'access_type', 'access_list', 'cat_level');
	var v = Array(folderLbl, 'normal', 'groups', '0');
	var parentID = '0';
	var cf = jQuery.tree.reference('#docsFolderDiv').selected;
	if(cf == false){
		v.push('0');
	}else{
		v.push(String(parseInt(cf.attr('clvl'))+1));
		parentID = cf.attr('id');
	}
	saveDocFolder('Add', parentID, c, v);
	return false;
}
//***************************************************************************
function renameDocFolderClicked(){
	if(!jQuery.tree.reference('#docsFolderDiv')){ alert('No Folders?'); return false; }
	var cf = jQuery.tree.reference('#docsFolderDiv').selected;
	if(cf == false){ showResponse('No Folder Selected'); return false; }
	addLoader('#docsLoader');
	var folderLbl = prompt('New Folder Name', cf.children('a').text());
	if(folderLbl == null || folderLbl == false || folderLbl == ''){ fadeOutLoader('#docsLoader'); return false; }
	var c = Array('cat_label');
	var v = Array(folderLbl);
	saveDocFolder(cf.attr('id'), cf.attr('pid'), c, v);
	return false;
}
//***************************************************************************
function saveDocFolder(folderID, parentID, c, v){
	$.post('../include/mb1_docs.php', { mtd: 'saveDocCat', catID: folderID, parentID: parentID, c: c.join(':'), v: v.join(':||:') },
	function(data){
		var dat = String(data).split(':');
		switch(dat[0]){
			case 'Success':
				switch(dat[1]){
					case 'Added':
					case 'Updated':
						showResponse(dat[3]);
						init_mb1DocsSecurityFolders(dat[2]);
					break;
				}
			break;
			case 'Failure':
				switch(dat[1]){
					case 'NoMethodRequested':
					case 'NoParentID':
					default:
						showResponse(dat[3]);
					break;
				}
			break;
			default:
				showResponse('There was an error while saving::'+data);
			break;
		}
		fadeOutLoader('#docsLoader');
		return false;
	});
	return false;
}
//***************************************************************************
function remFolderClicked(){
	if(!jQuery.tree.reference('#docsFolderDiv')){ alert('No Folders?'); return false; }
	addLoader('#docsLoader');
	remDocFolder(jQuery.tree.reference('#docsFolderDiv').selected.attr('id'));
	return false;
}
//***************************************************************************
function remDocFolder(folderID){
	var rem = confirm('Are you sure that you want to remove this folder?');
	if(rem != true){ return false; }
	addLoader('#docsLoader');
	$.post('../include/mb1_docs.php', { mtd: 'remDocCat', catID: folderID },
	function(data){
		var dat = String(data).split(':');
		switch(dat[0]){
			case 'Success':
				switch(dat[1]){
					case 'SuccessfullyRemovedCat':
					default:
						showResponse(dat[3]);
						init_mb1DocsSecurityFolders(jQuery.tree.reference('#docsFolderDiv').selected.attr('pid'));
					break;
				}
			break;
			case 'Failure':
				switch(dat[1]){
					case 'ChildCatsFound':
					case 'ChildDocsFound':
					case 'CatNotFound':
					default:
						showResponse(dat[3]);
					break;
				}
			break;
			default:
				showResponse('There was an error while saving::'+data);
			break;
		}
		fadeOutLoader('#docsLoader');
		return false;
	});
	return false;
}
//**********************************************************************************************************
