﻿// JScript File

function limitLength(fieldID,maxLen) 
{ 
    var field=document.getElementById(fieldID);
    if (field.value.length > maxLen)
		field.value = field.value.substring(0, maxLen);
}	

function popUp(url) 
{
    sealWin=window.open(url,"win",'toolbar=0,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=500,height=450');
    self.name = "mainWin";
}

// forçar o submit do form mesmo com + que um input field		

function entsub(event,ourform) 
{
    // No IE, quando de carrega em ENTER numa textBox (só se existir + que uma), é despoletado o evento do botão de submit por defeito
    // Para contornar a questão utliza-se um campo escondido no form (flagEnter) e depois testa-se o seu valor na função que controla o submit (crtlSubmit)    
    if (window.event && window.event.keyCode == 13) //IE
    {        
        if (ourform.flagEnter)
            ourform.flagEnter.value = "NoSubmit";
		ourform.submit();
	}
	else if (event && event.which == 13)
	{
	    if (ourform.flagEnter)
            ourform.flagEnter.value = "NoSubmit";
		ourform.submit();
	}
}

function mySubmit(frm,idCrtl)
{
    /*alert("submit! - id:" + idCrtl);*/
    var theForm = document.forms[frm];
    theForm.__EVENTTARGET.value = idCrtl;
    theForm.__EVENTARGUMENT.value = "";
    theForm.submit();
    return false;  // É sempre retornado false para evitar o submit pelo processo normal
}


/* Slidding Menus */

var intMenuTop=0;
var heightTopBanner = 80;
var heightMenu = 450;
var scrollTop=0;

function SlideMenuDiv(divName) // nova versão
{   
    var scrollX, scrollY,menu,availHeight;
    menu=document.getElementById(divName);
    
    //alert(windowSize()[1]);

    scrollY = getScrollXY()[1];
     			
	if (scrollY<=heightTopBanner){
		scrollTop = 0;
	}
	else{
		scrollTop = scrollY - heightTopBanner;
	}
	if (scrollTop != intMenuTop) {
		if (intMenuTop>scrollTop)
			intMenuTop = intMenuTop - parseInt(Math.abs((scrollTop - intMenuTop)/6)) - 1; 
		else
			intMenuTop = intMenuTop + parseInt(Math.abs((scrollTop - intMenuTop)/6)) + 1;
	   
        availHeight=windowSize()[1];

        if( (heightMenu + heightTopBanner) < availHeight )
        {
            if (menu.id == 'extra')       
                menu.style.margin=intMenuTop + "px 0px 0px -150px";	
           
            if (menu.id == 'navigation')
                menu.style.margin=intMenuTop + "px 0px 0px -1024px";	
        }
        
	}
	setTimeout("SlideMenuDiv('" + menu.id + "')",50);
}


function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function windowSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [ myWidth, myHeight ]; 
  //window.alert( 'Width = ' + myWidth );
  //window.alert( 'Height = ' + myHeight );
}


/* Validar campos numéricos */
function validaNum(str)
{
    if( str.length == 0 ) return false;

	var v = "0123456789XM-";
	for (var i=0; i < str.length; i++) 
		if (v.indexOf(str.charAt(i),0) == -1)
			return false
	return true
}

/* Validar ISBN */
function validaISBN(str)
{
    if ( str.length < 8 || str.length > 16 || !validaNum(str) )
        return false;    
    else
        return true;
}

/* Validar campos de email */
function validaEmail(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1)
		return false

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
		return false
	
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
		return false

		if (str.indexOf(at,(lat+1))!=-1)
		return false
	
		if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
		return false

		if (str.indexOf(dot,(lat+2))==-1)
		return false
	
		if (str.indexOf(" ")!=-1)
		return false
		
		return true					
}