# Aplicativos em PHP/Referências/JavaScript
## JavaScript na Wikipedia

http://pt.wikipedia.org/wiki/Javascript
JavaScript é uma linguagem de programação criada pela Netscape em 1995, que a princípio se chamava LiveScript, para atender, principalmente, as seguintes necessidades:
- Validação de formulários no lado cliente (programa navegador); - Interação com a página. Assim, foi feita como uma linguagem de script. Javascript tem sintaxe semelhante a do Java, mas é totalmente diferente no conceito e no uso.
1. Oferece tipagem dinâmica - tipos de variáveis não são definidos; 2. É interpretada, ao invés de compilada; 3. Possui ótimas ferramentas padrão para listagens (como as linguagens de script, de modo geral); 4. Oferece bom suporte a expressões regulares (característica também comum a linguagens de script).
Sua união com o CSS é conhecida como DHTML. Usando o Javascript, é possível modificar dinamicamente os estilos dos elementos da página em HTML.
Dada sua enorme versatilidade e utilidade ao lidar com ambientes em árvore (como um documento HTML), foi criado a partir desta linguagem um padrão ECMA, o ECMA-262, também conhecido como ECMAScript. Este padrão é seguido, por exemplo, pela linguagem ActionScript da Adobe(Antigamente Macromedia, porém a empresa foi vendida a Adobe).
Além de uso em navegadores processando páginas HTML dinâmicas, o JavaScript é hoje usado também na construção do navegador Mozilla, o qual oferece para a criação de sistemas GUI todo um conjunto de ferramentas (em sua versão normal como navegador, sem a necessidade de nenhum software adicional), que incluem (e não apenas) um interpretador de Javascript, um comunicador Javascript <-> C++ e um interpretador de XUL, linguagem criada para definir a interface gráfica de aplicações.

## Introdução

O JavaScript é uma ferramenta muito util para a construção de Web Sites, especialmente se utilizada em conjunto com HTML, CSS, PHP, entre outras ferramentas.
Também pode criar diversas ferramentas para sites:

## Sintaxe

Como escrever código JavaScript?

## Primeiro script JavaScript

HTML e JS

## Externo - Importando um arquivo JS externo

O arquivo deve estar em JS e somente com sintaxe JS e usar extensão .js
Importante: os arquivos a serem incluídos não devem conter as tags
<script> e </script>.

## Variáveis

Podemos imaginar uma variável como uma cesta de frutas e os dados das variáveis como as frutas da cesta.
Quando usar uma variável pela primeira vez é uma boa prática de programação usar a palavra reservada var antes do nome da variável.

## Nomes de variáveis

- evitar palavras reservadas do JavaScript
- escolher nomes descritivos
- nomes de variáveis não podem iniciar com algarismos
- uma boa prática é iniciar com minúsculas

## Funções

Funções em JavaScript são similares a funções em outras linguagens como PHP, C, C++, Java.
Uma função é um pedaço de código que fica dormindo até que seja chamado para "funcionar".
Ao invés de digitar todo o código sempre que precisar, podemos simplesmente chamar novamente a função. Isto é conhecido como reutilização de código.

## Eventos

Este é o grande recurso do JavaScript, que possibilita interagir com o usuário no site, como:
- clique do mouse
- página sendo carregada
- mouse movendo sobre algum componente da página
- Seleção de item de Select
- Toque de tecla
- etc
Todo código em JavaScript é formado por instruções (statements).
Uma instrução é uma variável igual a um valor.
Como também é algo como uma chamada de função, por exemplo document.write. As instruções definem o que o script deve fazer e como fazer.
Em algumas linguagens como o PHP, o final das instruções obrigatoriamente deve terminar com ponto e vírgula. Mas em JavaScript o ; ao final das instruções é opcional. Obrigatoriamente as instruções terminam com uma quebra de linha.

## Tipos de Instruções (Estruturas de Controle)

- Condicionais
- Loops
- Manipulação de Objetos
- Comentários
- Manipulação de exceções

## Array

São tipos especiais de variáveis.
Valores são armazenados em arrays passando o nome do array e a localização no array entre colchetes.
myArray[2] = "Hello World";
Valores em arrays são acessados com o nome do array e a localização do valor:
myArray[2]
JavaScript traz algumas funções para trabalhar com arrays.

## Alert

Alert emite uma caixa de mensagem (janela popup) com mensagem texto.

## Confirm

Solicita confirmação com uma mensagem e exibindo dois botões para confirmar ou desistir.

## Prompt

Abra uma janela com uma mensagem e uma caixa de texto para receber resposta do usuário.

## Print

Abre o diálogo de impressão do browser para imprimir a janela atual

## Preparar para redirecionar

This page is a time delay redirect, please update your bookmarks to our new location!
</body> </html>

## PopUp

Outro Exemplo (http://www.plus2net.com/javascript_tutorial/javascript_popup.php)

## Date

Isto é agora
Agora podemos imprimir as informações. Usaremos os métodos getDate, getMonth, e getFullYear neste exemplo.
Agora

## Current Time Clock

Agora

## Form

Checando por não vazio
function notEmpty(elem){ var str = elem.value; if(str.length == 0){

## Validação de Formulários

function formValidation(form){

## Form

<head> <script type="text/javascript">
</script> </head> <body> <form name="example" onSubmit="return formValidation(this)">
* Required 1:<input type="text" name="req1" />
* Required 2:<input type="text" name="req2" />
<input type="submit" />
</form> </body>

## Void 0

<a href="javascript: alert('News Flash!')">News Flash</a>
<a href="javascript: void(0)">I am a useless link</a>
<a href="javascript: void(myNum=10);alert('myNum = '+myNum)"> Set myNum Please</a>

## Compatibilidade do JavaScript dos vários Navegadores
### Função para validar caracteres ao digitar compatível com IE e no FF

Testar:
Adaptado de Tutorials - KeyPress validation http://www.mredkj.com/tutorials/validate.html

### Outra função para validar caracteres ao digitar (do mesmo site acima)

function blockNonNumbers(obj, e, allowDecimal, allowNegative) { var key; var isCtrl = false; var keychar; var reg;
if(window.event) { key = e.keyCode; isCtrl = window.event.ctrlKey } else if(e.which) { key = e.which; isCtrl = e.ctrlKey; }
if (isNaN(key)) return true;
keychar = String.fromCharCode(key);
// check for backspace or delete, or if Ctrl was pressed if (key == 8 || isCtrl) { return true; }
reg = /\d/; var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false; var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
return isFirstN || isFirstD || reg.test(keychar); }

## Comparando JavaScript com seu primo ActionScript (script do Flash)

http://www.webreference.com/programming/javascript/j_s/column2/

## JavaScript sem mistérios para Mozilla/Netscape e Microsoft Internet Explorer

http://www.vivaolinux.com.br/dicas/impressora.php?codigo=8872

## Grandes repositórios de JavaScript

http://www.javafile.com/
http://www.java-scripts.net/
http://dhtml-menu.com/
http://www.tizag.com/javascriptT/ (site com o original deste tutorial)
http://javascript.internet.com/

## Referências

http://developer.mozilla.org/en/docs/JavaScript
http://www.javascriptkit.com/jsref/
http://javascript-reference.info/
http://www.w3schools.com/jsref/default.asp
http://docs.sun.com/source/816-6408-10/
http://www.devguru.com/technologies/JavaScript/home.asp
http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/
http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.5/reference/
http://www.comptechdoc.org/independent/web/cgi/javamanual/
http://www.quirksmode.org/js/contents.html
http://argento.bu.edu/~ccruz/javascript/reference.html
http://www.phpforms.net/tutorial
http://www.java2s.com/Code/JavaScriptReference/CatalogJavaScriptReference.htm