// (folder select) updates list and menu (in case of root folder)
function fs (id, root)
{
    if (window.name == 'list')
    {
        top.main.treeholder.tree.location.href = _url('tree', id);
		if (top.main.contentholder.content.list.listParams)
		{
			top.main.contentholder.content.list.listParams[0] = id;
		}
		switch (top.main.contentholder.content.list._form._classid.value)
		{
			case '1000':
			case '1001':
				top.main.contentholder.reload_docs_list();
				break;
			default:
			       top.main.contentholder.content.list.location.href = _url('list', id);
		}
    }
    else if (window.name == 'tree')
    {
        document.location.href = _url('tree', id);
        if (root == 1)
        {
			/*
			var sort = '';
			var sortorder = '';
			if (top.main.contentholder.content.list._form._sort)
			{
				var sort = top.main.contentholder.content.list._form._sort.value;
				var sortorder = top.main.contentholder.content.list._form._sortorder.value;
			}
            top.main.contentholder.location.href = _url('contentholder', id) + '&sort=' + sort + '&sortorder=' + sortorder;
			*/
            top.main.contentholder.location.href = _url('contentholder', id);
        }
        else
        {
			if (top.main.contentholder.content.list.listParams)
			{
				top.main.contentholder.content.list.listParams[0] = id;
			}
			switch (top.main.contentholder.content.list._form._classid.value)
			{
				case '1000':
				case '1001':
					top.main.contentholder.reload_docs_list();
					break;
				default:
			        top.main.contentholder.content.list.location.href = _url('list', id);
			}
        }
    }
}

// (folder select) for move or copy windows
function fsa (id, sender)
{
    var url = _url('tree', id);
    document.location.href = url + '&sender=' + sender;
}

function update (list)
{
    if (window.name == 'contentholder')
    {
        top.main.treeholder.tree.location.reload();
//        top.main.contentholder.content.list.location.reload();
    }
    else if (top.opener.top.window.name != '')
    {
        // standalone window
        top.opener.top.content.list.location.reload();
    }
    else
    {
        if (!list) top.opener.top.main.treeholder.tree.location.reload();
        top.opener.top.main.contentholder.content.list.location.reload();
    }
}

// opens new window
function ow (id, action, file, x)
{
    scrollbars = 1;
    switch (x)
    {
        case 1:
            size = 300;
            scrollbars = 0;
            break;
        default:
            size = 600;
            break;
    }
    
    sid = '';
    domain = '';
    if (top.sess)
    {
        sid = top.sess[0];
        domain = top.sess[1];
    }
    else if (top.opener.top.sess)
    {
        sid = top.opener.top.sess[0];
        domain = top.opener.top.sess[1];
    }
    else
    {
        sid = top.opener.top.opener.top.sess[0];
        domain = top.opener.top.opener.top.sess[1];
    }
    
    uri = '?sid=' + sid + '&domain=' + domain + '&objectID=' + id;
    if (action != null)
    {
        uri += '&action=' + action;
    }
    if (file != null)
    {
        uri += '&file=' + file;
    }
    w = window.open(uri, 'obj_' + id,  'scrollbars=' + scrollbars + ',status=01,width=' + size + ',height=450,resizable=1');
    if (w.opener == null) w.opener = self;
    w.focus();
}


// (stands for Stand Alone) - opens new window with content
function sa (id)
{
    window.open(_url('contentholder', _getObject()), 'content_' + id, 'scrollbars=0,status=0,width=600,height=450,resizable=1');
}


// menu action
function ma (action)
{
    var id = _getObject();
    switch (action)
    {
        case 'delete':
            form = '101';
            content.list.document.list.action = _url('list', id);
            content.list.document.list.formID.value = form;
            content.list.document.list.submit();
			setTimeout("update()",1000);
            break;
            
        case 'self':
            // folder properties
            ow(id);
            break;
            
        case 'copy':
        case 'move':
            ow(id, action, null, 1);
            break;
            
        default:
            // object in new window
            switch (content.list.document._form._classid.value)
            {
                case '50001':
                    // new user
                    action = 'user';
                    break;
                case '50002':
                    // new group
                    action = 'group';
                    break;
            }
            ow(id, action);
            break;
    }
}

// confirm request
function ask (param, msg)
{
    if(confirm(msg)) ma(param);
}

// compiles url string
function _url (target, id)
{
    return '?sid=' + top.sess[0] + '&domain=' + top.sess[1] + '&target=' + target + '&objectID=' + id;
}

function _getObject ()
{
    return content.list.document._form._id.value;
}

// syncronizes tree with list, to be used in list OnLoad
function sync (force)
{
    if (top.main.treeholder.tree.document._form)
    {
        if (window.name == 'list' &&
            (top.main.treeholder.tree.document._form._id.value != document._form._id.value ||
            true == force))
        {
//			alert(top.main.treeholder.tree.document._form._id.value);
//			alert(document._form._id.value);
            top.main.treeholder.tree.location.href = _url('tree', document._form._id.value);
            document.location.href = _url('list', document._form._id.value);
        }
    }
}

// chooses focus object in login window
function login ()
{
    if (document.auth.domain.value < 1)
        document.auth.domain.focus();
    else if (document.auth.login.value < 1)
        document.auth.login.focus();
    else
        document.auth.pass.focus();
}

// checkboxes
function ca (state, scipmenu)
{
	var list = parent.list.document.list;
    for (var i=0;i<list.elements.length;i++)
    {
		if ('items[]' == list.elements[i].name)
        {
            access = eval('list.access_' + list.elements[i].value + '.value');
    		if ('50501' == access || '50502' == access)
            {
                list.elements[i].checked=state;
            }
        }
    }
	parent.list.c_select(scipmenu);
}

// walks through selected items enabling allowed menu actions
function c_select (scipmenu)
{
	var list = document.list;
	var checkboxes = 0;
	var total = 0; // total amount of selected checkboxes
	var found = new Array(0, 0, 0); // amount of items allowed for each action
    for (var i=0;i<list.elements.length;i++)
    {
        access = '';
		if ('items[]' == list.elements[i].name)
        {
			classid = eval('list.classid_' + list.elements[i].value + '.value');
			access = eval('list.access_' + list.elements[i].value + '.value');
            
            if(true == list.elements[i].checked)
    		{
    			// selected checkbox
    
    			// check access
    			if ('50501' == access)
    			{
    				// read only
    				found[0] += c_checkMenuClassid(0, classid);
    			}
    			else if ('50502' == access)
    			{
    				// read and write
    				found[0] += c_checkMenuClassid(0, classid);
    				found[1] += c_checkMenuClassid(1, classid);
    				found[2] += c_checkMenuClassid(2, classid);
    			}
    			total ++;
            }
    		if ('50501' == access || '50502' == access)
    		{
    			// enabled checkbox
    			checkboxes ++;
    		}
        }
    }
	
	if (total != checkboxes)
	{
	    parent.header.document.header.chk_ca.checked=false;
	}
	else
	{
	    parent.header.document.header.chk_ca.checked=true;
	}
	
    var menu = new Array(false, false, false);
	for (var z=0; z<menu.length; z++)
	{
		// compare total and allowed items for actions
		if (total == found[z] && found[z] > 0)
		{
			// action allowed
			menu[z] = true;
		}
	}
	
    if (true != scipmenu)
    {
        mu(menu);
    }
//	alert('copy: ' + menu[0] + ', move: ' + menu[1] + ', delete: ' + menu[2]);
}

// returns 1 or 0 for allowed or not action based on item class ID
function c_checkMenuClassid (action, classid)
{
	classids = new Array('1000', '1001', '1200', '1300', '1400', '1500', '1600',
						 '1700', '1800', '1900', '2000');
							// copy, move, delete
	classids['1000'] = new Array(1, 0, 1); // folder
	classids['1001'] = new Array(1, 0, 1);
	classids['1200'] = new Array(1, 1, 1); // article
	classids['1300'] = new Array(1, 1, 1); // file
	classids['1400'] = new Array(1, 1, 1); // gallery
	classids['1500'] = new Array(1, 1, 1); // gallup
	classids['1600'] = new Array(1, 1, 1); // form
	classids['1700'] = new Array(1, 1, 1); // index
	classids['1800'] = new Array(1, 1, 1); // promo
	classids['1900'] = new Array(1, 1, 1); // sendlink
	classids['2100'] = new Array(0, 1, 1); // product
	classids['2200'] = new Array(0, 1, 1); // package
	classids['2300'] = new Array(1, 1, 1); // package
	classids['2400'] = new Array(0, 0, 1); // fileindex
    
    // shortcuts
	classids['1010'] = new Array(1, 1, 1);
	classids['1210'] = new Array(1, 1, 1);
	classids['1310'] = new Array(1, 1, 1);
	classids['1410'] = new Array(1, 1, 1);
	classids['1510'] = new Array(1, 1, 1);
	classids['1610'] = new Array(1, 1, 1);
	classids['1710'] = new Array(1, 1, 1);
	classids['1810'] = new Array(1, 1, 1);
	classids['1910'] = new Array(1, 1, 1);
	classids['2110'] = new Array(1, 1, 1);
	classids['2210'] = new Array(1, 1, 1);
	classids['2310'] = new Array(1, 1, 1);
	classids['2410'] = new Array(1, 1, 1);
	return classids[classid][action];
}

// enables or disable menu actions
function mu (states)
{
	menu = parent.parent.document;
	imgs = new Array('copy', 'move', 'delete');
	for (i = 0; i < states.length; i ++)
	{
		img = imgs[i];
		if (false == states[i])
		{
			// disable item
			menu.getElementById('link_' + i).disabled = true;
			img = img + '_disabled';
		}
		else
		{
			// enable
			menu.getElementById('link_' + i).disabled = false;
		}
		menu.getElementById('icon_' + i).src = 'img/doc/is_' + img + '.gif';
	}
}

// sends uploaded filename to editor
function send (file, align)
{
    top.opener.insert_image(null, file, align);
    window.close();
}

function move (formID)
{
	var list = top.opener.content.list.document.list;
    list.action = _url('list', top.opener.content.list.document._form._id.value);
    list.targetID.value = tree.document._form._id.value;
    list.formID.value = formID;
	list.submit();
	window.close();
}



// sends parsed table to the editor
function send_table (table)
{
    top.opener.insert_table(null, table);
    window.close();
}

// security

// selects user or group for setting permissions
function SelectItem (id)
{
    HighlightItem(id);
    top.document.getElementById('permissions').disabled = false; // enable permissions set
    top.document.security._current.value = id;
    SelectPermission(id);

    var checked = eval('document.list.i' + id + '.value');
    if (0 == checked)
    {
        top.document.security.remove.disabled=false;
        top.document.getElementById('inherit').disabled = true;
    }
    else
    {
        top.document.security.remove.disabled=true;
        top.document.getElementById('inherit').disabled = false;
    }
}

// hilights selected users/groups item
function HighlightItem (id)
{
    for (var i=0; i < document.list._num.value; i++)
    {
        // deselect all previous choices
        document.getElementById(i).style.background = '#FFFFFF';
    }
    if (id != null)
    {
        // highlight selected item
        document.getElementById(id).style.background = '#d4d4d4';
    }
}

// updates selected permission for 
function UpdatePermission (permission)
{
    eval('document.list.document.list.c' + document.security._current.value + '.value = permission');
}

// resets permissions
function ResetPermissions ()
{
    if (window.name == 'list')
    {
        HighlightItem(null);
        SelectPermission(null, true);
    }
    top.document.getElementById('permissions').disabled = true;
    top.document.security.remove.disabled=true;
}

// loads permissions radiobuttons with selected item settings
// if false is passed, deselects all
function SelectPermission (id, reset)
{
    sets = new Array('i', 'c');
    for (var z = 0; z < sets.length; z ++)
    {
        if (true == reset)
        {
            // reset all
            for (var k = 0; k < eval('top.document.security.' + sets[z] + '.length'); k ++)
            {
                eval('top.document.security.' + sets[z] + '[' + k + '].checked = false');
            }
        }
        else
        {
            // load permission value
            if (0 < eval('document.list.' + sets[z] + id + '.value'))
            {
                switch (eval('document.list.' + sets[z] + id + '.value'))
                {
                    case '50500':
                        perm = 0;
                        break;
                    case '50501':
                        perm = 1;
                        break;
                    case '50502':
                        perm = 2;
                        break;
                    case '50503':
                        perm = 3;
                        break;
                }
                eval('top.document.security.' + sets[z] + '[' + perm + '].checked = true');
            }
        }
    }
}

function SubmitSecurity ()
{
    list.ResetPermissions();
    list.document.list.submit();
}


function Sec_RemoveItem (id)
{
    var xc, yc;
    eval('document.list.document.list.i' + id + '.value=0');
    eval('document.list.document.list.c' + id + '.value=50503');
    list.document.getElementById(id).style.display = 'none';
    ResetPermissions();
}


function Sec_TransferItems ()
{
    var xc = 0;
    for (var xc = 0; xc < (top.frames['content'].document.frames['list'].document.list._num.value); xc++)
    {
        if (eval('top.frames[\'content\'].document.frames[\'list\'].document.list.cb' + xc + '.checked') == true)
        {
            top.opener.list.document.getElementById(xc).style.display = 'block';
//            top.opener.list.document.HighlightItem(xc);
        }
    }
    window.close();
}

function Sec_Reset_ca ()
{
    parent.header.document.header.ca.checked=false;
}

function Sec_ca ()
{
    var state = document.header.ca.checked;

    for (var i=0;i<parent.list.document.list.elements.length;i++)
    {
        parent.list.document.list.elements[i].checked=state;
    }
}

function Sec_ShowUsers ()
{
    var cnt = document.list._num.value;
    
    // hide all elements
    for (var xc = 0; xc < cnt; xc++)
    {
        document.getElementById(xc).style.display = 'none';
    }

    // show elements that dont exist in parent window
    for (var xc = 0; xc < cnt; xc++)
    {
        if (top.opener.list.document.getElementById(xc).style.display == 'none')
        {
            document.getElementById(xc).style.display = 'block';
        }
    }
}

function send_link()
{
	var target = 0;
	if (true == document.forms[0].xyj[1].checked)
	{
		target = 1;
	}
	top.opener.insert_link(null, document.forms[0].url.value, target);
	window.close();
}

function send_htmltable()
{
	var target = 0;
	top.opener.insert_htmltable(null, document.forms[0].columns.value, document.forms[0].rows.value, document.forms[0].widthtype.checked);
	window.close();
}

function check_filechoice (radio)
{
    browse = document.getElementById('f3');
    if ('pc' == radio.value)
    {
        // new one
        file_choice = 'pc';
        browse.disabled = false;
        document.forms[0].title.disabled = false;
        document.forms[0].description.disabled = false;
    }
    else
    {
        // from system
        file_choice = 'dw';
        browse.disabled = true;
        document.forms[0].title.disabled = true;
        document.forms[0].description.disabled = true;
    }
    check_image(radio.value);
}

// for file upload. if selected file is img, enables additional image params
function check_image (src)
{
    var filename = '';
    if ('pc' == src)
    {
        // new one
        filename = document.forms[0].file.value;
    }
    else if (idTree.filename)
    {
        // from dw
        filename = idTree.filename;
    }

    if (file_choice == src && '' != filename)
    {
        // enable submit button
        document.forms[0].btn_submit.disabled = false;
    }
    else
    {
        // disable it
        document.forms[0].btn_submit.disabled = true;
    }
    
	if (false !== is_image(filename) && file_choice == src)
	{
		document.getElementById('params').disabled = false;
	}
	else
	{
		document.getElementById('params').disabled = true;
	}
}

function check_send_image()
{
    if ('dw' == file_choice)
    {
        // add image right away
        send(idTree.filepath, file_align);
        window.close();
    }
    // upload is selected
    document.forms[0].submit();
}

// returns true if selected file is img, false if not
function is_image (ext)
{
	ext = ext.substring(ext.length-3, ext.length);
	ext = ext.toUpperCase();
	if ('JPG' == ext || 'JPE' == ext || 'GIF' == ext || 'PNG' == ext)
	{
		return true;
	}
	return false;
}

function get_file_name (str)
{
	arr = str.split('/');
	return arr[arr.length-1];
}


// sorts content list
function sort_list (sort, sortorder)
{
	var listParams = parent.parent.document.content.list.listParams;
	listParams[2] = sort;
	listParams[3] = sortorder;
//	parent.document.location.href = _url('content', parent.list._form._id.value) + '&sort=' + sort + '&sortorder=' + sortorder;
	document.location.href = _url('header', listParams[0]) + '&sort=' + listParams[2] + '&sortorder=' + listParams[3];
	parent.parent.reload_docs_list();
}


function show_slider (id, check)
{
	id = 'slider' + id;
	if ('block' == document.getElementById(id).style.display)
	{
        if (check) return true;
        else document.getElementById(id).style.display = 'none';
	}
	else
	{
        if (check) return false;
		else document.getElementById(id).style.display = 'block';
	}
}


function reload_docs_list ()
{
	var arr = document.content.list.listParams;
	var srh = document.content.list.searchParams;
	var str = String(_url('list', arr[0]));
	str = str + '&sort=' + arr[2] + '&sortorder=' + arr[3] +
			'&publishstart=' + arr[4] + '&publishend=' + arr[5] +
			'&permission=' + arr[6] + '&classids=' + arr[7] +
			'&publishingchoice=' + arr[8] + '&publishing=' + arr[9] +
            '&userID=' + arr[10];
    if (false != srh[8])
    {
        // add search params too
        str = str + '&searchpublishstart=' + srh[0] + '&searchpublishend=' + srh[1] +
        '&searchpermission=' + srh[2] + '&searchclassids=' + srh[3] +
        '&searchpublishingchoice=' + srh[4] + '&searchpublishing=' + srh[5] +
        '&searchuserID=' + srh[6] + '&searchtext=' + srh[7] + '&search=1';
    }
//	top.main.contentholder.content.list.location.href = str;
	document.content.list.location.href = str;
}

function filter_docs (id)
{
	// pump filtering params into list
	var arr = document.content.list.listParams;
	arr[10] = document.forms['slider21'].userID.value;
	arr[4] = document.forms['slider21'].publishstart.value;
	arr[5] = document.forms['slider21'].publishend.value;
	arr[6] = document.forms['slider21'].permission.value;
	if (document.forms['slider21'].publishingchoice[0].checked)
	{
		arr[8] = 'status';
	}
	else
	{
		arr[8] = 'period';
	}
	arr[9] = document.forms['slider21'].publishing.value;
	
	var str = '';
    for (i = 0; i < document.forms['slider21'].elements.length; i++)
	{
		if (document.forms['slider21'].elements[i].name)
		{
	        if (document.forms['slider21'].elements[i].name.indexOf('classid_') != -1)
			{
				if (document.forms['slider21'].elements[i].checked == true)
				{
				    if (0 < str.length)
				    {
				         str = str + ',';
				    }
				    str = str + document.forms['slider21'].elements[i].value;
				}
			}
		}
	}
	arr[7] = str;
//	show_slider(id);
	reload_docs_list();
}


function search_docs (id)
{
	// pump filtering params into list
	var arr = document.content.list.searchParams;
	arr[8] = true; // enable search params
	arr[6] = document.forms['slider'+id].userID.value;
	arr[0] = document.forms['slider'+id].publishstart.value;
	arr[1] = document.forms['slider'+id].publishend.value;
	arr[2] = document.forms['slider'+id].permission.value;
	arr[7] = document.forms['slider'+id].text.value;
	if (document.forms['slider'+id].publishingchoice[0].checked)
	{
		arr[4] = 'status';
	}
	else
	{
		arr[4] = 'period';
	}
	arr[5] = document.forms['slider'+id].publishing.value;
	
	var str = '';
    for (i = 0; i < document.forms['slider'+id].elements.length; i++)
	{
		if (document.forms['slider'+id].elements[i].name)
		{
	        if (document.forms['slider'+id].elements[i].name.indexOf('classid_') != -1)
			{
				if (document.forms['slider'+id].elements[i].checked == true)
				{
				    if (0 < str.length)
				    {
				         str = str + ',';
				    }
				    str = str + document.forms['slider'+id].elements[i].value;
				}
			}
		}
	}
	arr[3] = str;
	reload_docs_list();
}


function switch_pchoice(choice, id)
{
	document.forms['slider'+id].btn_submit.disabled=false;
	switch (choice)
	{
		case 'status':
			document.getElementById('f_'+id+'_3').disabled = false;
			document.getElementById('f_'+id+'_2').disabled = true;
			document.getElementById('f_'+id+'_22').disabled = true;
			document.getElementById('f_'+id+'_3').focus();
			break;
		case 'period':
			document.getElementById('f_'+id+'_3').disabled = true;
			document.getElementById('f_'+id+'_2').disabled = false;
			document.getElementById('f_'+id+'_22').disabled = false;
			document.getElementById('f_'+id+'_2').focus();
			break;
	}
}

function resize ()
{
	if (document.getElementById('idContent'))
	{
		iframe = document.getElementById('idContent');
//		alert(iframe.height);
		newheight = document.body.offsetHeight-240;
		if (220 < newheight)
		{
			iframe.height = newheight;
		}
	}
	if (document.getElementById('idTree'))
	{
		iframe = document.getElementById('idTree');
//		alert(iframe.height);
		newheight = document.body.offsetHeight-85;
		if (220 < newheight)
		{
			iframe.height = newheight;
		}
	}
}

function menu_o (b) // mouse over
{
	b.style.backgroundColor = "#d0d5da";
	b.style.borderColor = "#4f6377";
}
function menu_dn (b) // mouse down
{
	b.style.backgroundColor = "#afc0d1";
	b.style.borderColor = "#4f6377";
}
function menu_d (b, isOn) // mouse out
{
    if (null != isOn)
    {
        if (isOn)
        {
            // slider is displayed
        	b.style.backgroundColor = "#d0d5da";
        	b.style.borderColor = "#4f6377";
            return true;
        }
    }
    // regular button
	b.style.backgroundColor = "#ebebeb";
	b.style.borderColor = "#ebebeb";
}

function save_on (id)
{
    if (id == null) id = 'btn_submit';
    document.getElementById(id).disabled = false;
}



// PRODUCTS
function sendProduct ()
{
    if ('' != tree.document._form._target.value)
    {
        top.opener.document.forms[0].productID.value = tree.document._form._targetID.value;
        top.opener.document.forms[0].product.value = tree.document._form._target.value;
        top.opener.document.getElementById('productIcon').src = 'img/doc/is_product.gif';
        top.opener.document.forms[0].remove.disabled = false;
    	window.close();
    }
}

function openProduct (url)
{
    productID = document.forms[0].productID.value;
    if (productID > 0)
        window.open(url + '&objectID=' + productID, 'obj_' + productID,
            'scrollbars=1,status=1,width=600,height=450,resizable=1');
}

function sendGroupProduct ()
{
    if ('' != tree.document._form._target.value)
    {
        top.opener.document.list.document.forms[0].targetID.value = tree.document._form._targetID.value;
        top.opener.document.list.document.forms[0].submit();
    	window.close();
    }
}

function sendProductProduct ()
{
    if ('' != tree.document._form._target.value)
    {
        top.opener.document.list.document.forms[0].targetID.value = tree.document._form._targetID.value;
        top.opener.document.list.document.forms[0].submit();
    	window.close();
    }
}


