/*

xFlow!

Created by Paul Whitrow - www.pwhitrow.com

xFlow! Software License - see xFlow! Software License.html in the xFlow! root directory

*/

if((!document.getElementsByClassName) || (document.getElementsByClassName == undefined))
{
	document.getElementsByClassName = function(className)
	{
		var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
		var allElements = document.getElementsByTagName("*");
		var results = [];

		var element;
		for (var i = 0; (element = allElements[i]) != null; i++) {
			var elementClass = element.className;
			if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
				results.push(element);
		}

		return results;
	}
}

function XFLOW_getByClassName(classname,el)
{
	if(!el)
	{
		el = "DIV";
	}

	var divs = document.getElementsByTagName(el);

	for(a = 0; a < divs.length; a++)
	{
		var cn = (divs[a].className);

		var classes = cn.split(' ');

		for(i = 0; i < classes.length; i++)
		{
			if(classes[i] == classname)
			{
				return divs[a];
			}
		}
	}

	return false;
}

function XFLOW_addLoadEvent(func) 
{
    var oldonload = window.onload;
    if (typeof window.onload != 'function') 
	{
		window.onload = func;
	}
    else 
	{
        window.onload = function() 
			{
				if (oldonload) oldonload();
				func();
			}
    }
} 

function XFLOW_addClass(el, cls)
{
	if(!XFLOW_hasClass(el, cls))
	{
		el.className = el.className + ' ' + cls;
	}
	else
	{
		return false;
	}
}

function XFLOW_removeClass(el, cls)
{
	if(XFLOW_hasClass(el, cls))
	{
		el.className = XFLOW_trim(XFLOW_str_replace(cls, '', el.className));
	}
	else
	{
		return false;
	}
}

function XFLOW_hasClass(el, cls)
{
	if(el.className.indexOf(cls) >= 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}

/* Show/hide element functions */
function XFLOW_show(id)
{
	if(typeof id == 'object')
	{
		var el = id;
	}
	else
	{
		var el = XFLOW_getByClassName(id);
	}
	if(el)
	{
		el.style.visibility = 'visible';
		el.style.display = 'block';
	}
}

function XFLOW_hide(id)
{
	if(typeof id == 'object')
	{
		var el = id;
	}
	else
	{
		var el = XFLOW_getByClassName(id);
	}
	if(el)
	{
		el.style.visibility = 'hidden';
		el.style.display = 'none';
	}
}

function XFLOW_setUpHelp()
{
	xflow_help_control	=	XFLOW_getByClassName('xflow_help_control', 'a');
	xflow_help			=	XFLOW_getByClassName('xflow_help');

	xflow_help_control.onclick = function()
	{
		XFLOW_show(xflow_help);
	};

	xflow_help.onclick = function()
	{
		XFLOW_hide(xflow_help);
	};
}

function XFLOW_trim(str) 
{
	var	str = str.replace(/^\s\s*/, ''), ws = /\s/,	i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}

function XFLOW_overlay(show, msg)
{
	var overlay = document.getElementById('xflow_overlay');

	if(msg)
	{
		overlay.innerHTML = msg;
	}

	if(show)
	{

		overlay.style.display = 'block';
	}
	else
	{
		overlay.style.display = 'none';
	}
}

function XFLOW_showTab(tab, obj)
{
	if(obj)
	{
		var li = document.getElementById('tabslist').getElementsByTagName('li');

		for(var i = 0; i < li.length; i++)
		{
			li[i].className = '';
		}

		obj.className = 'selected';
	}

	var tabs = document.getElementsByClassName('tab');

	for(var i = 0; i < tabs.length; i++)
	{
		var t = tabs[i];

		if(t.id == tab)
		{
			t.style.display = 'block';
		}
		else
		{
			t.style.display = 'none';
		}
	}
}

function XFLOW_toggleHelp(obj)
{
	var helps = document.getElementsByClassName('xhelp');
	
	for(var i = 0; i < helps.length; i++)
	{
		var el = helps[i];

		if(el.id == obj)
		{
			el.style.display = (el.style.display != "none" ? "none" : "block" );
		}
		else
		{
			el.style.display = 'none';
		}
	}
}

function XFLOW_setFauxFile(el, val)
{
	document.getElementById(el).value = val;
}

function XFLOW_str_replace(search, replace, subject) 
{
	var f = search, r = replace, s = subject;
	var ra = r instanceof Array, sa = s instanceof Array, f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
 
    while (j = 0, i--) 
	{
        if (s[i]) {
            while (s[i] = s[i].split(f[j]).join(ra ? r[j] || '' : r[0]), ++j in f){};
        }
    };
 
    return sa ? s : s[0];
}

function XFLOW_safeHTML(text)
{
	 text = XFLOW_str_replace("<br />", "\n", text);
	 return text;
}

function XFLOW_safeTEXT()
{
}

function XFLOW_editImageDetail(el)
{
	XFLOW_showTab('edit-item', document.getElementById('tab3'));
	
	var detail = el.alt.split('|');

	document.getElementById('current-edit').value = detail[0];
	document.getElementById('fav-edit').value = detail[0];
	document.getElementById('previewImage').src = el.src;
	document.getElementById('imagesize').value = detail[4] + ' x ' + detail[5] + ' (pixels)';
	document.getElementById('title-edit').value = detail[2];
	document.getElementById('description-edit').value = detail[3];
	document.getElementById('link').value = detail[1];
	document.getElementById('guid').value = detail[6];
	document.getElementById('pubdate').value = detail[7];

	if(document.getElementById('code_'+detail[0]))
	{
		document.getElementById('code-edit').value = XFLOW_safeHTML(document.getElementById('code_'+detail[0]).value);
	}
	else
	{
		document.getElementById('code-edit').value = '';
	}
}

function XFLOW_multiDelete(del)
{
	var els = document.getElementById('galleryOrder').getElementsByTagName('input');
	var button = document.getElementById('multideletebuttons');
	var elsTmp = new Array();
	var x = 0;

	for(var i = 0; i < els.length; i++)
	{
		XFLOW_removeClass(els[i].parentNode.parentNode, 'selected');

		if(!del)
		{
			els[i].checked = false;
		}
		else
		{
			if(els[i].checked)
			{
				XFLOW_addClass(els[i].parentNode.parentNode, 'selected');
				elsTmp[x] = els[i];
				x++;
			}
		}
	}

	if(elsTmp.length > 0)
	{
		XFLOW_showHideButtons('multideleteshow')
	}
	else
	{
		XFLOW_showHideButtons('multideletehide')
	}

}

function XFLOW_showHideButtons(state)
{
	var b1 = document.getElementById('saveorderbutton');
	var b2 = document.getElementById('multideletebutton');
	var b3 = document.getElementById('clearmultideletebutton');
	var b4 = document.getElementById('multideletebuttons');

	if(state == 'multideleteshow')
	{
		XFLOW_addClass(b1, 'hidden');
		XFLOW_removeClass(b2, 'hidden');
		XFLOW_removeClass(b3, 'hidden');
		XFLOW_removeClass(b4, 'hidden');
	}
	if(state == 'multideletehide')
	{
		XFLOW_addClass(b1, 'hidden');
		XFLOW_removeClass(b2, 'hidden');
		XFLOW_removeClass(b3, 'hidden');
		XFLOW_addClass(b4, 'hidden');
	}
	if(state == 'orderchange')
	{
		XFLOW_removeClass(b1, 'hidden');
		XFLOW_addClass(b2, 'hidden');
		XFLOW_addClass(b3, 'hidden');
		XFLOW_removeClass(b4, 'hidden');
	}
}

XFLOW_addLoadEvent(XFLOW_setUpHelp);
