/* Debug */
function dump(o,func)
{
	var str = "";
	for(p in o)
	{
		if(typeof o[p]!='function' || func){
			str += "\t" + p + " => " + o[p] + "\r\n";
		}
	}
	str = "(" + typeof(o) + ") " + o + " \r\n{\r\n" + str + "}";
	return str;
}

function dumpWindow(o,nombre, func)
{
	func 						= func == true;
	nombre          = (typeof(nombre) == "undefined") ? "Debug" : nombre ;
	var hw          = popup('', nombre , 600, 600, 'yes', 'yes');
	var htmlDump    = dump(o,func).replace(/<(\/)?script/gi,'< $1script');
	var htmlDoc     = '<html><body><pre style="font: 13px \'Courier New\'">'+htmlDump+'</pre></body></html>'
	hw.document.open();
	hw.document.write(htmlDoc);
	hw.document.close();
}

function popup(url, name, width, height, isResizable, hasScrollbars, hasToolbar, hasMenubar, hasStatus)
{
	isResizable   = typeof(isResizable)   =='undefined' ? 'no'  :isResizable;
	hasScrollbars = typeof(hasScrollbars) =='undefined' ? 'auto':hasScrollbars;
	hasToolbar    = typeof(hasToolbar)    =='undefined' ? 'no'  :hasToolbar;
	hasMenubar    = typeof(hasMenubar)    =='undefined' ? 'no'  :hasMenubar;
	hasStatus     = typeof(hasStatus)     =='undefined' ? 'yes' :hasStatus;

	var top = (screen.height - height) / 2;
	var left = (screen.width - width) / 2;
	var settings = 'width='+width+', height='+height+', top='+top+', left='+left+', resizable='+isResizable+', scrollbars='+hasScrollbars+', toolbar='+hasToolbar+', menubar='+hasMenubar+', status='+hasStatus;
	return window.open(url, name, settings);
}
/* Fin Debug */

document.getElementsByAttribute = function(oElm, strTagName, strAttributeName, strAttributeValue)
{
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
	var oCurrent;
	var oAttribute;
	for(var i=0; i<arrElements.length; i++){
		oCurrent = arrElements[i];
		oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
		if(typeof oAttribute == "string" && oAttribute.length > 0){
			if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
				arrReturnElements.push(oCurrent);
			}
		}
	}
	return arrReturnElements;
}

window._arrWindows = [];
window._arrWindowsAdministrators = [];
function openEditor(target, name, src, reload, top, left)
{
	var top  = 30*window._arrWindows.length;
	var left = 30*window._arrWindows.length;
	var reload = (typeof reload == 'undefined') ? true : reload;
	var obj = new _window(target, name, src, reload, top, left);
			obj.render();
			window._arrWindows.push(obj);
			$(obj._id+'_iframe').setAttribute("CORE:index", window._arrWindows.length-1);
			focusWindow(obj);
}

function closeEditor(index){
	window._arrWindows[index] = null;
	window._arrWindows.splice(index, 1);
}

function openAdministrator(target, name, src)
{
	if( !isOpenAdministrator(name) )
	{
		var obj = new _administrator(target, name, src+'?typeOpener=administrator');
				obj.render();
				window._arrWindowsAdministrators.push(obj);
				var index = window._arrWindowsAdministrators.length-1;
				$(obj._id+'_iframe').setAttribute("CORE:index", index);
				focusAdministrator(index);
	}
}

function isOpenAdministrator(name)
{
	if( window._arrWindowsAdministrators.length > 0)
	{
		for( var i = 0; i < window._arrWindowsAdministrators.length; i++){
			if(window._arrWindowsAdministrators[i].name == name){
				return true;
			}			
		}
	}
	return false;
}

function focusAdministrator(index){
	if( window._arrWindowsAdministrators.length > 0){
		for( var i = 0; i < window._arrWindowsAdministrators.length; i++){
			if( i == index){
				window._arrWindowsAdministrators[i]._maximize();
			}else{
				window._arrWindowsAdministrators[i]._minimize();
			}
		}
	}
}

function closeAdministrator(index)
{
	var j 	= 0;
	var tmp = [];
	if( window._arrWindowsAdministrators.length > 0)
	{
		for( var i = 0; i < window._arrWindowsAdministrators.length; i++)
		{
			if( index != i ){
				tmp[j] = window._arrWindowsAdministrators[i];	
				$(window._arrWindowsAdministrators[i]._id+'_iframe').setAttribute("CORE:index", j);				
				j++;
			}
		}
	}
	window._arrWindowsAdministrators = tmp;	
}


function closeWindow(index)
{
	var j 	= 0;
	var tmp = [];
	if( window._arrWindows.length > 0)
	{
		for( var i = 0; i < window._arrWindows.length; i++)
		{
			if( index != i ){
				tmp[j] = window._arrWindows[i];	
				$(window._arrWindows[i]._id+'_iframe').setAttribute("CORE:index", j);				
				j++;
			}
		}
	}
	window._arrWindows = tmp;
	focusWindow(window._arrWindows[window._arrWindows.length-1]);
}

function reloadWindow(type, index){
	switch(type){
		case 'administrator':
			$(window._arrWindowsAdministrators[index]._id+'_iframe').contentWindow.document.forms[0].submit();
			break;
		default:	
			$(window._arrWindows[index]._id+'_iframe').contentWindow.document.forms[0].submit();
			break;
	}
}

function focusWindow(obj){
	try{
		var id = (typeof obj._id != 'undefined') ? obj._id : this._id;
		if( window._arrWindows.length > 0){
			for( var i = 0; i < window._arrWindows.length; i++){
				if( window._arrWindows[i]._id == id){
					window._arrWindows[i].focus();
				}else{
					window._arrWindows[i].blur();
				}
			}
		}
	}catch(e){}
}

function goPage(page){
	var f = document.forms['frm'];
			f.page.value = page;
			f.submit();
}
