var IsAlreadyLoadedInitPrint = false;
var printAreaName = "printArea";

// Funzione per l'inizializzazione della printarea
function initPrint(printAreaSpecified) 
{
    if (printAreaSpecified != null)
        printAreaName = printAreaSpecified;

    if (!IsAlreadyLoadedInitPrint || printAreaName!=null)
    {
        IsAlreadyLoadedInitPrint = true;
        applyXPrintCss(printAreaName);

        if (printAreaSpecified!=null)
            copyPrintAreaToPrintable();
        else
            setTimeout(copyPrintAreaToPrintable, 1000);
    }
}

// Funzione per applicare il css di stampa
function applyXPrintCss()
{
    // Acquisizione della printarea
    var divPrintArea = document.getElementById(printAreaName);

    // Se la printarea risulta popolata allora viene aggiunto il css, altrimenti viene rimosso
    var cssUrl = "/css/xprint.css";
    if (divPrintArea != null && divPrintArea.innerHTML != "")
        appendCss(cssUrl);
    else
        removeCss(cssUrl);
}

// Funzione per l'aggiunta del css passato come parametro
function appendCss(cssUrl)
{
    // Creazione del link al css
    var css = document.createElement("link");
    css.rel = "stylesheet";
    css.type = "text/css";
    css.href = cssUrl;

    // Aggiunta del css all'intestazione della pagina
    document.getElementsByTagName("head")[0].appendChild(css);
}

// Funzione per la rimozione del css passato come parametro
function removeCss(cssUrl)
{
    // Acquisizione della lista dei css
    var cssList = document.getElementsByTagName("link")

    // Ricerca e rimozione del css richiesto
    for (var i = cssList.length - 1; i >= 0; i--)
    {
        if (cssList[i] != null && cssList[i].type == "text/css" && cssList[i].getAttribute("href") != null && cssList[i].getAttribute("href").indexOf(cssUrl) != -1)
            cssList[i].parentNode.removeChild(cssList[i]);
    }

    // Rimozione della printable area
    removeDivPrintable();
}

// Funzione per la creazione della printable area
function createDivPrintable()
{
    // Rimozione dell'eventuale printarea esistente
    if(document.getElementById(printAreaName) != null)
        removeDivPrintable();

    // Aggiunta della printarea
    var printable = document.createElement("div");
    printable.id = "printable";
    document.getElementsByTagName("body")[0].appendChild(printable);
}
// Funzione per la verifica dell'esistenza della printable area
function verifyExistsPrintable()
{
    if (document.getElementById("printable") != null)
        return;

    // Aggiunta della printarea
    var printable = document.createElement("div");
    printable.id = "printable";
    document.getElementsByTagName("body")[0].appendChild(printable);
}

// Funzione per la rimozione della printable area
function removeDivPrintable()
{
    // Rimozione della printable area
    var printable = document.getElementById("printable");
    if (printable != null)
        printable.parentNode.removeChild(printable);
}

function copyPrintAreaToPrintable() {
    copyToPrintable(printAreaName);
}

function copyToPrintable(divName) {
    if (document.getElementById(divName) != null) {
        try {
            createDivPrintable();
            var html = document.getElementById(divName).innerHTML;
            document.getElementById("printable").innerHTML = html;
            var  printable = document.getElementById("printable");
            deleteElm(printable, '*', 'noprint');
            changeAjaxIdElm(printable, '*', 'ajaxclass');
         } catch (e) {}
    }
}
function addToPrintable(divName) {
    try {
            verifyExistsPrintable();
            var html = document.getElementById(divName).innerHTML;
            document.getElementById("printable").innerHTML += html;
            var  printable = document.getElementById("printable");
            deleteElm(printable, '*', 'noprint');
            changeAjaxIdElm(printable, '*', 'ajaxclass');
    } catch (e) {}
}

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++) {
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)) {
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function deleteElm(oElm, strTagName, strClassName) {
	var toDel = getElementsByClassName(oElm, strTagName, strClassName)
	for(var i=0; i<toDel.length; i++) {
		(toDel[i].parentNode).removeChild(toDel[i]);
	}
}

function changeAjaxIdElm(oElm, strTagName, strClassName) {
	var toDel = getElementsByClassName(oElm, strTagName, strClassName)
	for(var i=0; i<toDel.length; i++) {
		toDel[i].id='NewAjaxCtrlID';
	}
}

function DisplayPopup(popurl,popname,winprops)
{
	winpopup = window.open(popurl,popname,winprops);
	
	if (winpopup==null)
	{
		//##ING_COMMENT alert("Le impostazioni del browser che stai utilizzando non consentono l'apertura\ndei pop-up: per navigare correttamente nel nostro sito, abilita i pop-up\ndel tuo browser (Opzioni Internet / Privacy).");	
		document.location.href='/ErrBlPopup.stm';
  	}
  	else
  	{
  		winpopup.focus();
	}
	return winpopup;
}

function OpenPopup(url, width, height)
{
	if (!width) width=390;
	if (!height) height=250;
	var left = (screen.width/2) - width/2;
	var top = (screen.height/2) - height/2;
	var stile = 'status=no,scrollbars=yes,width='+width+',height='+height+',left='+left+',top='+top+',screenX='+left+',screenY='+top;
	var msgWindow = window.open(url,"", stile);
	if (msgWindow==null)
	{
	    document.location.href='/ErrBlPopup.stm';
	}
	else
	{
	    msgWindow.focus();
	}
}

function CheckPopup(popurl,popname,winprops)
{
	winpopup = window.open(popurl,popname,winprops);
	
	if (winpopup==null)
	{
		// PI35876 - Claudio Riva - START - Commentato per togliere temporaneamente la parte dei popup Firefox
		//alert("Le impostazioni del browser che stai utilizzando non consentono l'apertura dei nostri pop up:\nper navigare correttamente sul sito, inserisci i siti secure.ingdirect.it e www.ingdirect.it\ntra quelli a cui consenti la visualizzazione dei pop up.\n- per impostare Explorer: Opzioni Internet/Privacy\n- per impostare Netscape: Modifica/ Privacy & Security\n- per impostare Firefox: Strumenti/ Opzioni.../ Contenuti");
		alert("Le impostazioni del browser che stai utilizzando non consentono l'apertura dei nostri pop up:\nper navigare correttamente sul sito, inserisci i siti secure.ingdirect.it e www.ingdirect.it\ntra quelli a cui consenti la visualizzazione dei pop up.\n- per impostare Explorer: Opzioni Internet/Privacy\n- per impostare Netscape: Modifica/ Privacy & Security");
		// PI35876 - Claudio Riva - END
  	}
  	else
  	{
		winpopup.focus();
	}
	return winpopup;
}
// ##FE-ELCOMMENT copiato da script_div.js che non viene pių usato
 function CheckCookie (CookieName) {
 
	var lf = "\n";
    var CookieString = document.cookie;
    var CookieSet = CookieString.split (';');
    var SetSize = CookieSet.length;
    var CookiePieces
    var ReturnValue = "";
    var x = 0;
    
    for (x = 0; ((x < SetSize) && (ReturnValue == "")); x++) {
      CookiePieces = CookieSet[x].split ('=');
      
      if (CookiePieces[0].substring (0,1) == ' ') {
        CookiePieces[0] = CookiePieces[0].substring (1, CookiePieces[0].length);      }
      if (CookiePieces[0] == CookieName) {
               ReturnValue = CookiePieces[1];            }
     }
	 
     return ReturnValue;
 }
   
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
   
   

// ##ING_COMMENT 2365
function searchIDFromLocation()
{
var id = "";
var lenSearchLoc = location.search.length;
var SearchLoc = location.search.toLowerCase();

if (SearchLoc.indexOf("&") != -1)
	{	
		var arr =  SearchLoc.split("&")
		for (i=0; i<arr.length; i++)
			{
				if (arr[i].indexOf("cookievalue=") != -1)
					{
						pos1 = arr[i].indexOf("=");
						id = arr[i].substring(pos1+1,arr[i].length);
					}
			}
	}
else
	{	
		if (SearchLoc.indexOf("cookievalue=") != -1)
		{	
			var pos1 = SearchLoc.indexOf("=");
			id = SearchLoc.substring(pos1+1,lenSearchLoc);
		}
	}
	return id;
}
// ##ING_COMMENT 2365 fine


function Redir(Url,nw) {
	var szCookieValue
	var ReturnValue
	
	szCookieValue = CheckCookie('INGTrace');
	if (szCookieValue == "")
		szCookieValue = searchIDFromLocation();
	
	if (Url.indexOf('?')> 0 ) {
		ReturnValue=Url + '&CookieValue=' + szCookieValue;		}
	else	{
		ReturnValue=Url + '?CookieValue=' + szCookieValue ;		}
		
	if (nw != 'pop'	)
		location.href=ReturnValue;
	else
		return ReturnValue
}

// ##ING_COMMENT popup

//##FE-ELCOMMENT - funzione comune (che richiama DisplayPopup) per apertura delle demo nel menų dx per info conto, mutuo e dividendo
function apriDemo(prod,demo) {
//##FE-ELCOMMENT - PARAMETRI
//##ING_COMMENT		 valori assunti da prod:
//##ING_COMMENT		 c==> conto
//##ING_COMMENT		 m==> mutuo
//##ING_COMMENT		 d==> dividendo 
//##ING_COMMENT		 demo = numero corispondente alla voce selezionata nel menų di dx DEMO 
	var demoWin;
	//##FE-ELCOMMENT - dimensioni ancora da definire
	var path = "/area_info/demo/demo_"+prod+"_"+demo+".htm"

	demoWin=DisplayPopup(path,"Demo","scrollbars=no","_blank");	
}

//##ING_COMMENT Funzione per permettere l'inserimento dei soli numeri
 function checkentry(parametro) {
 
 var objCurrCtrl;
  
 // Istanzia controllo che ha sollevato l'evento
 if (window.event) {
  objCurrCtrl = window.event; 
  isIE = true; 
  }
 else {
  objCurrCtrl = arguments.callee.caller.arguments[0];
  isIE = false;
 }
 
 // defeat Safari bug
 if (objCurrCtrl.nodeType == 3) 
  objCurrCtrl = objCurrCtrl.parentNode;
 
 var scharCode = isIE ? objCurrCtrl.keyCode : objCurrCtrl.charCode
 
  if (parametro=='i'){
   if ((scharCode!=0 && scharCode!=8 && scharCode!=9) && (scharCode < 48 || scharCode > 57)) isIE ? objCurrCtrl.returnValue = false : objCurrCtrl.preventDefault();
  }
  else if (parametro=='n'){
   if ((scharCode!=0 && scharCode!=46 && scharCode!=8 && scharCode!=9) && (scharCode < 48 || scharCode > 57)) isIE ? objCurrCtrl.returnValue = false : objCurrCtrl.preventDefault();
  } else if (parametro=='l'){
   if (
    (scharCode != 224) && 
    (scharCode != 232) && 
    (scharCode != 236) && 
    (scharCode != 242) && 
    (scharCode != 249) && 
    (scharCode != 39) && 
    (scharCode != 32) && 
    (scharCode < 65 || scharCode > 90) && 
    (scharCode < 97 || scharCode > 122)
    ) isIE ? objCurrCtrl.returnValue = false : objCurrCtrl.preventDefault();
  } else if (parametro=='n+'){
   if ((scharCode!=0 && scharCode!=46 && scharCode!=8 && scharCode!=9 && scharCode!=44) && (scharCode < 48 || scharCode > 57)) isIE ? objCurrCtrl.returnValue = false : objCurrCtrl.preventDefault();
  } else if (parametro=='ln'){
   if (
    (scharCode < 48 || scharCode > 57)&& 
    ((scharCode < 65 || scharCode > 90) && (scharCode < 97 || scharCode > 122))
    ) isIE ? objCurrCtrl.returnValue = false : objCurrCtrl.preventDefault();    
  } else if (parametro=='lns'){
   
   if (    
    (scharCode != 32 && scharCode != 39) && (scharCode < 48 || scharCode > 57) && 
    ((scharCode < 65 || scharCode > 90) && (scharCode < 97 || scharCode > 122))) 
     {
      isIE ? objCurrCtrl.returnValue = false : objCurrCtrl.preventDefault();
     }
 
  } else if (parametro=='ta'){
   if (
    (scharCode == 46) ||
    (scharCode == 124) ||
    (scharCode == 167) 
    ) isIE ? objCurrCtrl.returnValue = false : objCurrCtrl.preventDefault();
  } else if (parametro=='nc'){
   // ##ING_COMMENT aggiunto per la gestione del numero civico (47 č la "/")
    if( 
    (scharCode < 47 || scharCode > 57) && 
    ((scharCode < 65 || scharCode > 90) && (scharCode < 97 || scharCode > 122))
    ) isIE ? objCurrCtrl.returnValue = false : objCurrCtrl.preventDefault();
  } else if (parametro=='np'){
   // ##ING_COMMENT aggiunto per la gestione dei numeri compreso il punto
    if ((scharCode < 48 || scharCode > 57) && scharCode != 46) isIE ? objCurrCtrl.returnValue = false : objCurrCtrl.preventDefault();
   }
  else if (parametro=='npv'){
   // ##ING_COMMENT aggiunto per la gestione dei numeri compreso il punto e della virgola
    if ((scharCode < 48 || scharCode > 57) && scharCode != 46 && scharCode != 44) isIE ? objCurrCtrl.returnValue = false : objCurrCtrl.preventDefault();
   }  
 }
