/**
 * Javascript - zedFramework
 * 
 * @package   www.hayonik.com
 * @name      TI-WEB-HYK-0001 
 * @author    Thiago M. Zampieri <thiago.zampieri@gmail.com>
 * @copyright 2010
 * @version   0.1.0 
 * @access    public
 * @todo      Página de Scripts
 */

/***************************************************************************************************************************
MAIN
****************************************************************************************************************************/
function ucwords (str) {
    // Uppercase the first character of every word in a string  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/ucwords
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Waldo Malqui Silva
    // +   bugfixed by: Onno Marsman
    // *     example 1: ucwords('kevin van zonneveld');
    // *     returns 1: 'Kevin Van Zonneveld'
    // *     example 2: ucwords('HELLO WORLD');
    // *     returns 2: 'HELLO WORLD'
    return (str+'').replace(/^(.)|\s(.)/g, function ( $1 ) { return $1.toUpperCase( ); } );
}

function zf_initialize()
{
	//Menu
	window.addEvent('domready', function() {			
		var myMenu = new MenuMatic();
	});	
	
}

/* ***** */

function __changeCountry(page)
{
	var url    = g_url+'webservice?get=getLanguagesBox&format=text&page='+page;
	searchAjax(url, 'GET', ajax_xml_country);
}

function ajax_xml_country()
{
	if (xmlHttp.readyState == 1)
	{ 
		//_LOADING
	}
	else
	{		
		if (xmlHttp.readyState == 4)
		{
			if (xmlHttp.responseText)
			{
				var j_obj   = xmlHttp.responseText;
				var content = document.createElement('div');
					content.id = 'mm_country';		
					content.innerHTML = j_obj; //'<h4>Languages <label onclick="__screen(this, \'CLOSE\');">[X]</label> </h4><ul><li><a href="'+g_url2+'en/">USA</a></li> <li><a href="'+g_url2+'br/">Brasil</a></li></ul>';
	
				__screen(content, 'OPEN');
			}
		}
	}
}

function __screen(content, command)
{
	var obj1 = docs('screenBox');
	var obj2 = docs('screenMessage');
	switch(command)
	{
		case 'OPEN':
			obj2.appendChild(content);
			obj1.style.display = 'block';
			obj2.style.display = 'block';
		break;
		case 'CLOSE':
			obj2.style.display = 'none';
			obj1.style.display = 'none';
			obj2.innerHTML     = '';
		break;			
	}
}

/* ***** */

function createDownName(obj, txt)
{
	var string = obj.value.split("\\");
		string = string[(string.length-1)];
		string = string.split("/");
	txt.value  = string[(string.length-1)];
}

function createRewrite(string)
{
	string = string.toLowerCase();
	string = string.replace(/\s+/g, "-");
	string = string.replace(/\//g, "-");
	string = string.replace(/\./g, "");
	string = urlencode(string);
	string = string.replace(/\%E1/g, "a");
	string = string.replace(/\%E0/g, "a");
	string = string.replace(/\%E3/g, "a");
	string = string.replace(/\%E2/g, "a");
	string = string.replace(/\%E4/g, "a");
	string = string.replace(/\%E9/g, "e");
	string = string.replace(/\%E8/g, "e");
	string = string.replace(/\%EA/g, "e");
	string = string.replace(/\%EB/g, "e");		
	string = string.replace(/\%ED/g, "i");
	string = string.replace(/\%EC/g, "i");
	string = string.replace(/\%EE/g, "i");
	string = string.replace(/\%EF/g, "i");		
	string = string.replace(/\%F3/g, "o");
	string = string.replace(/\%F2/g, "o");
	string = string.replace(/\%F5/g, "o");
	string = string.replace(/\%F4/g, "o");
	string = string.replace(/\%F6/g, "o");		
	string = string.replace(/\%FA/g, "u");
	string = string.replace(/\%F9/g, "u");
	string = string.replace(/\%FB/g, "u");
	string = string.replace(/\%FC/g, "u");		
	string = string.replace(/\%E7/g, "c");
			
	var obj = docs('REWRITE');		
		obj.value = string;
}
	
function urlencode(str) {
	str = escape(str);
	str = str.replace('+', '%2B');
	str = str.replace('%20', '+');
	str = str.replace('*', '%2A');
	str = str.replace('/', '%2F');
	str = str.replace('@', '%40');
	return str;
}

function _forCompare()
{
	var _hyx_input = document.getElementsByTagName("input");
	var _hyx_matnr = new Array(4);
	var _hyx_posnr = 0;

	for (i=0;i<_hyx_input.length;i++)
	{
		if (_hyx_input[i].type == "checkbox")
		{
			if (_hyx_input[i].name.indexOf("compare_") >= 0)
			{
				if(_hyx_input[i].checked == true)
				{
					if (_hyx_posnr <= 3)
					{
						_hyx_matnr[_hyx_posnr] = _hyx_input[i].value;
						_hyx_posnr++;
					}
					else
					{
						alert('Somente é permitido comparar 4 produtos, desmarque algum para adicionar este.');
						_hyx_input[i].checked = false;
						break;
					}
				}
			}
		}
	}
	
	if (_hyx_matnr[0] == null) _hyx_matnr[0] = "";
	if (_hyx_matnr[1] == null) _hyx_matnr[1] = "";
	if (_hyx_matnr[2] == null) _hyx_matnr[2] = "";
	if (_hyx_matnr[3] == null) _hyx_matnr[3] = "";
	
	if (_hyx_matnr[0] == '' || _hyx_matnr[1] == '') 
	{
		alert('Teve existir pelo menos 2 produtos para ser comparados.');
		return false;
	}
	window.location = (g_url+'compare?prod_id1='+_hyx_matnr[0]+'&prod_id2='+_hyx_matnr[1]+'&prod_id3='+_hyx_matnr[2]+'&prod_id4='+_hyx_matnr[3]);
}

/*****************************************************************************************************************************/
function __linkLocation(string, target, tag, message)
{
	if (target == null)
	{
		if (tag == null || confirm(message)) window.location = g_url+string;
	}else
	{
		if (tag == null || confirm(message)) window.open(g_url+string);
	}
	
}

/*****************************************************************************************************************************/

function provider()
{
	window.external.AddSearchProvider(g_url+'services/provider.xml')
} 

/*############################################################################################################################*/

function newWindow(url,name,width,height,conf) //abre uma janela  conf = toolbar,location,status,menubar,scrollbars,resizable
{  
	var winWidth  = (screen.width - width) / 2;
	var winHeight = ((screen.height - height) / 2);
	window.open(url,name,'width='+width+',height='+height+',left='+winWidth+',top='+winHeight+','+conf);	
}

/*############################################################################################################################*/

function alterViewer(objName, attClass, count)
{
	for(i=0, f=count; i < f; i++)
	{
		var obj = docs(objName+i);
		if (obj)
			obj.className = attClass;
	}
}

/*############################################################################################################################*/

var g_imgId  = 1;
function openImage(obj, args)
{
	var attr = '';
	if (g_imgId > 0) attr = '&id='+g_imgId;
	
	obj.setAttribute("href", g_imgUrl+'/'+args+'?sw=500'+attr);
	obj.focus();	
	obj.click();
}

function loadImage(args,id)
{
	g_imgId = id;
	var attr = '';	
	if (g_imgId > 0) attr = '&id='+g_imgId;	
	
	var img = docs('imageProduct');
		img.src = g_imgUrl+'/'+args+'?sw=125'+attr;
}

/*############################################################################################################################*/

var g_tab;
var g_row = 1;
function getTable(it_tab)
{
	g_tab = docs(it_tab);
	if (g_tab)
		g_row   = 1;
	else
		g_row   = 0;	
}

function insertRow(arr_name, arr_value)
{
	
	var len_row = g_tab.rows[0].cells.length;
	var it_tr   = g_tab.insertRow(g_row);
	
	for (var t=0;t < len_row; t++)
	{
		td = g_tab.rows[g_row].insertCell(t);
		td.name 	 = arr_name[t];
		td.id   	 = arr_name[t];
		td.innerHTML = arr_value[t];
	}
	g_row++;	
}

function removeRow(i)
{
	if (g_tab.rows[i])
	{
		g_tab.deleteRow(i);
		g_row--;
	}
}

function removeAllRows()
{
	for (var i=g_tab.rows.length; i > 0; i--)
	{
		removeRow(i);
	}
	g_row = 1;
}

/*############################################################################################################################*/

function chooseScreen(id, type)
{
	var screen = docs(id);
	if (screen)	screen.style.display = type;
}

function procedureScreen(array_args, active)
{
	for (var i=0; i < array_args.length; i++)
	{
		if (active != array_args[i])
			chooseScreen(array_args[i], 'none');
		else
			chooseScreen(active, '');
	}
}

/*############################################################################################################################*/

function loginScreen(active)
{
	var array_args    = new Array();
		array_args[0] = '_procedure';
	    array_args[1] = '_form';
	
	procedureScreen(array_args, active);	
}

function productScreen(active)
{	
	var array_args    = new Array();
		array_args[0] = '_overview';
		array_args[1] = '_especific';	    	    
	    array_args[2] = '_downloads';
	    
	var model;
	for (i=0; i < array_args.length; i++)
	{
		model = docs('m'+array_args[i]);
		model.className = 'menu';
		view  = docs(array_args[i]);
		view.style.display = 'none';
	}
	
	model = docs('m'+active);
	model.className = 'menu actived';
	view  = docs(active);
	view.style.display = '';
}

/*############################################################################################################################*/

function docs(name)
{
	var object = document.getElementById(name);
	if (object)
		return object;
	return false;
}

/*############################################################################################################################*/

var	txt_login;
var txt_search;

function checkSearch(object, type)
{
	if (type == 'focus')
	{
		txt_search = object.value;
		object.value = '';
	}
	if (type == 'blur' & object.value == '')
		object.value = txt_search;
}

/*############################################################################################################################*/

function maskFormat(object, mask)
{
	var result='';
	var keypress=(window.event)?event.keyCode:object.which;
	var character = '#';
	var i=0;
	var pos=0;
	var maskLen = mask.length;
	var value   = String.fromCharCode(keypress);
	var x = object.value.length;

	if (mask.length > x)
	{
		while (mask.substr(x,1) != character && mask.length > x )
		{
			object.value += mask.substr(x,1);
			x++;
		}
	}
	else
		event.returnValue = false;
}

function checkMail(mail){
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?$/);
    if(typeof(mail) == "string")
	{
        if(er.test(mail)) return true; 
    }else if(typeof(mail) == "object")
	{
        if(er.test(mail.value))
		{ 
        	return true; 
        }
        
    }
    alert('E-mail inválido!');
    mail.value = '';
    mail.focus();
}

function checkAll(zthis, template, total)
{
	var checked = true;
	if (zthis.checked == false) checked = false;
	
	for(i=0; i<total; i++)
	{
		obj = docs(template+i);
		if (obj) obj.checked = checked;
	}
}

function encodeUTFtoISO(string)
{
	string = string.replace(/&uml;/g, '"');
	string = string.replace(/&apos;/g, "'");
	string = string.replace(/&amp;/g, '&');
	
	return string;
}

function clearDiv(div, text)
{
	var obj = docs(div);	
	if(obj) obj.innerHTML = text;
}

function appendDiv(div, htmlCode)
{
	var obj = docs(div);
	if(obj)	obj.appendChild(htmlCode);
}


cellActive = null;
timeId     = null;

function show(cell)
{
	var cell = docs(cell);	
	if(cell)
	{
		cell.style.display = 'block';
		cellActive = cell;		
	}
	
	if(timeId!=null){ clearTimeout(timeId); }
}

function timerHidePop()
{
	if(cellActive != null) timeId = setTimeout("resetActive();",300);
}

function resetActive()
{
	if(cellActive!=null)
	{
		cellActive.style.display = 'none';
		timeId 					 = null;
		cellActive				 = null	
	}
	
}

/*###################*/
function clearString (text)
{
	text = text.replace(new RegExp('[ÁÀÂÃ]','gi'), 'a');
	text = text.replace(new RegExp('[ÉÈÊ]','gi'), 'e');
	text = text.replace(new RegExp('[ÍÌÎ]','gi'), 'i');
	text = text.replace(new RegExp('[ÓÒÔÕ]','gi'), 'o');
	text = text.replace(new RegExp('[ÚÙÛ]','gi'), 'u');
	text = text.replace(new RegExp('[Ç]','gi'), 'c');
	return text;
}

/*###################*/

function number(e)
{
	var keypress = (window.event) ? event.keyCode : e.which;
	if (window.event) e = window.event;
	if (keypress != 8 && keypress != 13)
	{
		if((keypress < 48) || (keypress > 57)) StopEvent(e);
	}
}

// Prevents event bubble up or any usage after this is called.
// pE - event object
function StopEvent(pE)
{
   if (pE.cancelBubble != null)
      pE.cancelBubble = true;
   if (pE.stopPropagation)
      pE.stopPropagation();
   if (pE.preventDefault)
      pE.preventDefault();
   if (window.event)
      pE.returnValue = false;
   if (pE.cancel != null)
      pE.cancel = true;
}  // StopEvent

function floatNumber(e, obj)
{
	var keypress=(window.event)?event.keyCode:e.which;
	field = eval(obj);		
	characters = '0123456789,';
	if (keypress == 46 & (characters.search(String.fromCharCode(keypress))== -1) ) 
	event.returnValue = false;
}

function decimalNumber(obj)
{
	if (obj.value == "0,00")
	{
		return false;
	}
	var l_vlr = obj.value;		
	var g_vlr = obj.value.replace(/\./g,"");
	    g_vlr = g_vlr.replace(/\,/g,"");
			
	while (g_vlr.substr(0, 1) == "0")
	{
		g_vlr = g_vlr.substr(1, g_vlr.length);
	}
	l_len = g_vlr.length;
	if (l_len <= 0)
	{
		NumVariable(obj, "0", "00", g_vlr, l_vlr);
	}else if (l_len == 1)
	{
		NumVariable(obj, "0", "0", g_vlr, l_vlr);
	}else
	{
		var l_lenf = l_len - 2;
		var l_vlr1 = g_vlr.substr(0, l_lenf);
		var l_vlr2 = g_vlr.substr(l_lenf, 2);
		var l_leni = l_vlr1.length;
		var l_vlri = "";
		var l_vlrf = 0;
		var l_som  = "";				
		if (l_leni > 0)
		{
			var f = 1;
			var l_pont = "";
			for (i = l_leni; i > 0; i--)
			{							
				var g = i - 1;
				var l_num = l_vlr1.substr(g, 1);
				if (f % 3 == 0)
				{
					l_pont = ".";
				}else
				{
					l_pont = "";
				}						
				l_vlri+= l_num+l_pont;
				f++;
			}
			for (i = l_vlri.length; i > 0; i--)
			{
				var g = i - 1;
				var l_num = l_vlri.substr(g, 1);
					l_vlrf+= l_num;
			}
								
			while (l_vlrf.substr(0, 1) == "0")
			{
				l_vlrf = l_vlrf.substr(1, l_vlrf.length);
			}
			
			if (l_vlrf.substr(0, 1) == ".")
			{
				l_vlrf = l_vlrf.substr(1, l_vlrf.length);
			}
		}
		
		NumVariable(obj, l_vlrf, l_som, l_vlr2, l_vlr);
	}
}

function NumVariable(obj, inicio, l_som, g_vlr, l_vlr)
{	
	var l_flt = inicio+","+l_som+g_vlr;		
	if (obj.value != l_flt){ obj.value = l_flt;	}
}


