/**
 * Javascript - zedFramework
 * 
 * @package   www.fortrek.com.br
 * @name      TI-WEB-FTK-0001 
 * @author    Thiago M. Zampieri <thiago.zampieri@gmail.com>
 * @copyright 2009
 * @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
	TransMenu.initialize();	
	
	//News
	prepare();
	begin_roll_ticker();
}

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 newProduct(matnr, quant, loc)
{
	var l_matnr = parseInt(matnr);
	var l_quant = docs(quant);
	var l_locat = loc;
	if (l_quant && l_matnr > 0)
	{
		window.location = g_url+'purchaseOrder.sys?act=new&prod_id='+l_matnr+'&quant='+l_quant.value+'&location='+l_locat;
	}
}

function addProduct(matnr, quant, posnr)
{
	var l_matnr = matnr.value;
	var l_quant = quant.value;
	
	window.location = g_url+'purchaseList.sys?act=add&prod_id='+l_matnr+'&quant='+l_quant+'&posnr='+posnr;
}

function buyAll(form, loc)
{
	var l_form = docs(form);
	var l_locat = loc;
	if (l_form)
	{
		l_form.action += '&location='+l_locat;
	}
}

function handleEnter(opc, posnr, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 27){
		event.returnValue=false;
	}
	
	if (keyCode == 13) 
	{
		switch(opc)
		{
			case "matnr": 
			var obj = docs('txt_quant'+posnr);
			break;
			case "quant":
			var obj = docs('txt_matnr'+(posnr+1));
			break;
		}
		
		if(obj)
		{
			obj.focus();
		}		
		return true;
	} 
	return false;
}

function changeText(form, obj)
{
	var l_form = docs(form);
	l_form.action = g_url+'purchaseOrder.sys?act=saveText'; 
	l_form.submit();
}

/*############################################################################################################################*/

function checkEAN(ean)
{
	if (ean.value != '')
	{
		var l_ean = ean.value.substring(0,12);
		
		var dig1  = parseInt(l_ean.substring(0,1));
		var dig2  = parseInt(l_ean.substring(1,2));
		var dig3  = parseInt(l_ean.substring(2,3));
		var dig4  = parseInt(l_ean.substring(3,4));
		var dig5  = parseInt(l_ean.substring(4,5));
		var dig6  = parseInt(l_ean.substring(5,6));
		var dig7  = parseInt(l_ean.substring(6,7));
		var dig8  = parseInt(l_ean.substring(7,8));
		var dig9  = parseInt(l_ean.substring(8,9));
		var dig10 = parseInt(l_ean.substring(9,10));
		var dig11 = parseInt(l_ean.substring(10,11));
		var dig12 = parseInt(l_ean.substring(11,12));
		
		var sum_dig_par = 3 * (dig2 + dig4 + dig6 + dig8 + dig10 + dig12);
		var sum_dig_impar = dig1 + dig3 + dig5 + dig7 + dig9 + dig11;	
		var sum_dig = sum_dig_par + sum_dig_impar;
		
		//alert(sum_dig);
		var digit_ean = 0;
		var result = ((1 + parseInt((sum_dig) / 10)) * 10) - sum_dig;	
		if (result == 10) digit_ean = 0; else digit_ean = result;
		
		if ((l_ean+""+digit_ean) == ean.value)
			return true; 
		else
		{
			ean.value = "";			
			alert('Digite um EAN válido!');
			ean.focus();
			ean.select();
			return false;
		}
	}
}

/*############################################################################################################################*/

/*############################################################################################################################*/

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 effectsPointer(obj, type)
{
	if (type == 'over')
	{
		obj.style.height = '192px';
		obj.style.marginTop = '-54px';
	}else
	{
		obj.style.height = '100px';
		obj.style.marginTop = '0px';
	}
		
}

/*############################################################################################################################*/

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();
	//newWindow(g_imgUrl+'/'+args+'?sw=500'+attr,'imageProduct',600,580,'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no');
}

function loadImage(args,id)
{
	g_imgId = id;
	var attr = '';
	//if (g_imgId > 0) attr = '_'+g_imgId;			
	if (g_imgId > 0) attr = '&id='+g_imgId;	
	
	var img = docs('imageProduct');
		img.src = g_imgUrl+'/'+args+'?sw=125'+attr;
}

/*############################################################################################################################*/

function openSYSGAR()
{
	return newWindow('http://192.168.10.10/dev/sys/','_gar',780,540,'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');	
}

/*############################################################################################################################*/

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 newsNumberScreen(active, args, count)
{
	for (var i=0; i < count; i++)
	{
		chooseScreen((args+i), 'none');
	}
	chooseScreen((args+active), '');
	
	g_next = g_next + 1;
	if (g_next > (count-1)) g_next = (count-1);
	g_prev = g_prev - 1;
	if (g_prev < 0) g_prev = 0;
}


/*############################################################################################################################*/

function postalScreen(active)
{
	var array_args    = new Array();
		array_args[0] = '_form';
	    array_args[1] = '_inbox';
	    array_args[2] = '_outbox';	    
	procedureScreen(array_args, active);		
}

/*############################################################################################################################*/

function contactScreen(active)
{
	var array_args    = new Array();
		array_args[0] = '_form';
	    array_args[1] = '_phones';
	    array_args[2] = '_marketing';
	    array_args[3] = '_warranty';
	    array_args[4] = '_finance';
		array_args[5] = '_addresses';
	    
	procedureScreen(array_args, active);		
}

function dealerScreen(active)
{
	var array_args    = new Array();
		array_args[0] = '_screen1';
	    array_args[1] = '_screen2';
	    array_args[2] = '_screen3';
	
	for(i=0; i < array_args.length; i++)
	{
		var obj = docs(array_args[i]+'tab');
		if (obj) obj.className = 'menu';
	}
	
	var obj = docs(active+'tab');	obj.className = 'menu actived';	
	    
	procedureScreen(array_args, active);		
}

function warrantyScreen(active)
{
	var array_args    = new Array();
		array_args[0] = '_procedure';
	    array_args[1] = '_gar';
	    array_args[2] = '_form';
	    array_args[3] = '_down';
	    array_args[4] = '_model';
	
	procedureScreen(array_args, active);	
}

function warrantyScreenMODELNF(active)
{
	var array_args    = new Array();
		array_args[0] = 'image_0';
		array_args[1] = 'image_1';
		array_args[2] = 'image_2';
		array_args[3] = 'image_3';
		array_args[4] = 'image_4';
		array_args[5] = 'image_5';
		array_args[6] = 'image_6';
		array_args[7] = 'image_7';   
	
	procedureScreen(array_args, active);

	var obj = docs('a_'+active);	
		obj.focus();
}

function financeScreen(active)
{
	var array_args    = new Array();
		array_args[0] = '_info';
	    array_args[1] = '_departure';
	    array_args[2] = '_bank';
	
	procedureScreen(array_args, 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 checkLogin(object, type)
{
	if (type == 'focus')
	{
		txt_login = object.value;
		object.value = '';
	}
	if (type == 'blur' & object.value == '')
		object.value = txt_login;
}

function maskLogin(object)
{
	var mask = '##.###.###/####-##';
	
	if ( mask.length > (object.value.length) )
	{
		maskFormat(object, mask)
		return true;
	}
	docs('ipt_password').focus();
		
}

function submitLogin()
{
	var form_name = docs("form-login");
	var login     = docs("txt_login");
	var passwd    = docs("pwd_password");

	if (login.value != '' & passwd.value != '')
	{
		form_name.submit();
		return true;
	}		
	alert(unescape('Dados Incompletos! É obrigatório o preenchimento dos Campos.'));
	login.focus();
}

/*############################################################################################################################*/

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;	}
}

