/*
 ********************************************************************************
 ** NECESSARIO a biblioteca MRP estar incluída antes de chamar este arquivo js **
 ********************************************************************************
*/

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 08-04-2010
 *
 * @return
*/
MRP.CrossBrowser = function(el)
{
	var obj = new Object({
		'id':el.id,
		'text': el.text || el.innerText,
		'value': el.value,
		'getHTML': function(){ return el.innerHTML; },
		'innerHTML': function(str){ el.innerHTML = str; },
		'getAttribute': function(atributo){ return el.getAttribute(atributo); },
		'removeAttribute': function(atributo){ el.removeAttribute(atributo); },
		'setAttribute': function(atributo,valor){ el.setAttribute(atributo,valor); }
	});

	return obj;
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 08-04-2010
 *
 * @return
*/
MRP.isUrl = function(url)
{
	if(url == null || url == undefined) return false;
	if(url.match(/[?]/gi)) url = url.split('?')[0];

	var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
	if(RegExp.test(url)){
		return true;
	}else{
		return false;
	}
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 08-04-2010
 *
 * @return
*/
MRP.isEmail = function(email)
{
    var RegExp = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/
    if(RegExp.test(email)){
        return true;
    }else{
        return false;
    }
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 08-04-2010
 *
 * @return
*/
MRP.injetarCSS = function(stilo, src)
{
	if(stilo || stilo != '')
	{
		try
		{
			var headID = document.getElementsByTagName("head")[0];
			var cssNode = document.createElement('style');
			cssNode.type = 'text/css';
			cssNode.text = stilo;
			headID.appendChild(cssNode);
		}
		catch(e)
		{
			alert(e);
		}
	}

	if(src)
	{
		try
		{
			var headID = document.getElementsByTagName("head")[0];
			var cssNode = document.createElement('link');
			cssNode.type = 'text/css';
			cssNode.rel = 'stylesheet';
			cssNode.href = src;
			cssNode.media = 'screen';
			headID.appendChild(cssNode);
		}
		catch(e)
		{
			alert(e);
		}
	}
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 08-04-2010
 *
 * @return
*/
MRP.evalStyle = function(str)
{
	var scrIni = str.indexOf("<style");
	var scrFim = str.indexOf("/style");
	var scrStyle = '';
	var reshtml = '';

	if (scrIni>0)
	{
		reshtml=str.substr(0,scrIni-1);
		scrStyle=str.substr(scrIni+8,scrFim-scrIni-9);
	}
	else
	{
		reshtml=str;
	}

	return scrStyle;
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 25-01-2010
 *
 * @method CSS
 * @access
 * @params
 * @return
*/
MRP.CSS = function(elemento,estilo,valor)
{
	YAHOO.util.Dom.setStyle(elemento,estilo,valor);
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 22-03-2010
 *
 * @return boolean
*/
MRP.DOM = {};

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 25-01-2010
 *
 * @method CSS
 * @access
 * @params
 * @return
*/
MRP.DOM.isArray = function(array)
{
	try
	{
		return YAHOO.lang.isArray(array);
	}
	catch(e)
	{
		return false;
	}
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 29-01-2010
 *
*/
//String.prototype.trim = function()
String.prototype.elimina_espacos = function()
{
	var pedacos = this.split(" ");
	var retorno = '';
	for(var i = 0; i < pedacos.length; i++)
	{
		retorno += pedacos[i];
	}
	//return this.replace(/^\s*/, "").replace(/\s*$/, "");
	return retorno;
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 29-01-2010
 *
*/
MRP.insertAfter = function (obj,newObj)
{
	obj.parentNode.insertBefore ( newObj, obj.nextSibling);
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 25-01-2010
 *
 * @method Elemento
 * @access public
 * @params variable
 * @return boolean
*/
MRP.Get = function(elemento,tipo)
{
	if(tipo == 'id')
	{
		return document.getElementById(elemento);
	}
	else if(tipo == 'name')
	{
		return document.tipo;
	}
	else if(tipo == 'class')
	{
		var getElementsByClassName = function(cl) {
			var retnode = [];
			var myclass = new RegExp('\\b'+cl+'\\b');
			var elem = document.getElementsByTagName('*');
			for (var i = 0; i < elem.length; i++)
			{
				var classes = elem[i].className;
				if (myclass.test(classes)) retnode.push(elem[i]);
			}
			return retnode;
		}
		return getElementsByClassName(elemento);
	}
	else if(tipo == 'tag')
	{
		return document.getElementsByTagName(elemento);
	}
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 29-01-2010
 *
*/
MRP.getElementsByAttr = function(obj,attr,valor)
{
	var	elementos = obj.getElementsByTagName('*');
	var retorno = new Array();

	var x = 0;
	for(var i = 0; i < elementos.length; i++)
	{
		if(elementos[i].getAttribute(attr) == valor)
		{
			retorno[x++] = elementos[i];
		}
	}
	return retorno;
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 29-01-2010
 *
*/
MRP.getElementsByType = function(obj,tipo)
{
	var	elementos = obj.getElementsByTagName('*');
	var retorno = new Array();

	var x = 0;
	for(var i = 0; i < elementos.length; i++)
	{
		if(elementos[i].getAttribute('type') == tipo)
		{
			retorno[x++] = elementos[i];
		}
	}
	return retorno;
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 29-01-2010
 *
*/
MRP.getElementsByName = function(obj,name)
{
	var	elementos = obj.getElementsByTagName('*');
	var retorno = new Array();

	var x = 0;
	for(var i = 0; i < elementos.length; i++)
	{
		if(elementos[i].getAttribute('name') == name)
		{
			retorno[x++] = elementos[i];
		}
	}
	return retorno;
}

/*
 * @autor Felipe Marques
 * @email felipecaioba@gmail.com
 * @date 29-01-2010
 *
*/
MRP.getElementsByClassName = function(obj,classe)
{
	try
	{
		var	elementos = obj.getElementsByTagName('*');
	}
	catch(e)
	{
		alert(e);
		return false;
	}

	var retorno = new Array();
	var obj_classe = null;

	var x = 0;

	var isIE = navigator.appName.match(/Internet Explorer/gi) ? true : false ;

	for(var i = 0; i < elementos.length; i++)
	{
		if( isIE )
		{
			if(elementos[i].className != null && String(elementos[i].className.toString()).elimina_espacos() != '')
			{
				try{ obj_classe = elementos[i].className.toString() || null;}catch(e){alert('Erro className');alert(e);}

				if(obj_classe != null)
				{
					if( obj_classe.match(eval('/'+classe+'/gi')) )
					{
						retorno[x++] = elementos[i];
					}
				}
			}
		}
		else
		{
			try{ obj_classe = elementos[i].getAttribute('class') || null;}catch(e){alert(e);}
			if(obj_classe != null)
			{
				if( obj_classe.match(eval('/'+classe+'/gi')) )
				{
					retorno[x++] = elementos[i];
				}
			}
		}
	}
	return retorno;
}
