﻿// File JScript

function GetStringParams(params){
    var retValue = "";
    for(var i = 0; i < params.length; i++)
        retValue += params[i].name + "=" + params[i].value + "&";   
    return retValue;
}

function GetParams(strParams){

    var retValue = new Object();
    strParams = (strParams.indexOf("?") > -1) ? strParams.substring(strParams.indexOf("?")) : strParams;
    strParams = (strParams.charAt(strParams.length - 1) == "&") ? strParams.substring(0, strParams.length - 1) : strParams;
    strArray = strParams.split('&');
    for(var i = 0; i < strArray.length; i++){

        //alert(strArray[i].substring(0, strArray[i].indexOf('=')) + " @ " + strArray[i].substring(strArray[i].indexOf('=') + 1));
        retValue[strArray[i].substring(0, strArray[i].indexOf('='))] = strArray[i].substring(strArray[i].indexOf('=') + 1);
    }
        
    return retValue;

}

//Update box Carrello
/*function BoxCartPostBack(){
    var boxCartId = document.getElementById('CartPanelId');
    if (boxCartId == null){
        alert(templateStrings.GetUnknownPanelId('CartPanelId'));
        return false;
    }
    __doPostBack(boxCartId.value, '');
}*/


function CartOneCallBack(cmd, params){

    var pageId = document.getElementById('ClientPageId');
    if (pageId == null){
        alert(templateStrings.GetUnknownPanelId('ClientPageId'));
        return false;
    }
    
    //StartWait();
    
    //il parametro 4 viene ripetuto con cmd per far capire quale comando era stato richiesto
    var request = cmd + "?" + GetStringParams(params);
    
    WebForm_DoCallback(pageId.value, request, CartOneComeBack, request, CartOneComeBackOnError, true);
    
}

function CartOneComeBack(returnMessage, context){

    //EndWait();
    var cmd = context.substring(0, context.indexOf('?'));
    var params = GetParams(context);
    
    switch(cmd){
        
        /*case "addNewsletter":
            InfoMsgBox(templateStrings.GetAddNewsLetterOk());
            break;
            
        case "removeNewsletter":
            InfoMsgBox(templateStrings.GetRemoveNewsLetterOk());
            break;
				*/
        case "addToCart":
            //BoxCartPostBack();
            //ShowAddToCartMsgBox(params.title, params.thumbpath, params.qty, params.description);            
            SetLocation('checkout.aspx');
            break;
            
        /*case "recoveryPassword":
            InfoMsgBox(templateStrings.GetRecoveryPasswordOk());
            break;
          */  
        default:
            alert("default: " + returnMessage);
            break;                        
        
    }
    
}

function CartOneComeBackOnError(returnMessage, context){
 //EndWait();
    var cmd = context.substring(0, context.indexOf('?'));
    var params = GetParams(context);
    
    switch(cmd){
        
        case "addNewsletter":
            ErrorMsgBox(templateStrings.GetAddNewsLetterKo());
            break;
            
        case "removeNewsletter":
            ErrorMsgBox(templateStrings.GetRemoveNewsLetterKo());
            break;

        case "addToCart":
            ErrorMsgBox(templateStrings.GetAddToCartKo());
            break;
            
        case "recoveryPassword":
            ErrorMsgBox(templateStrings.GetRecoveryPasswordKo());
            break;
            
        default:
            ErrorMsgBox("Si è verificato un errore nella comunicazione con il server!");
            break;                        
        
    }
    
}


function AddNewsletter(email){

    //Si potrebbe verificare la correttezza dell'email
    var re_email = /\S+@\S+\.\S+/;
	if (!re_email.exec(email)){
		alert("L'email inserita non è valida!");
		return false;
    }

    var params = [];
    params[0] = new Object();
    params[0].name = "email";
    params[0].value = email;
    
    CartOneCallBack("addNewsletter", params);
    
}

function RemoveNewsletter(email){

    //Si potrebbe verificare la correttezza dell'email

    var params = [];
    params[0] = new Object();
    params[0].name = "email";
    params[0].value = email;
    
    CartOneCallBack("removeNewsletter", params);
    
}

function AddToCart(productId, title, qty, thumbPath, description){

    var params = [];
    params[0] = new Object();
    params[0].name = "productid";
    params[0].value = productId;
    params[1] = new Object();
    params[1].name = "title";
    params[1].value = title;
    params[2] = new Object();
    params[2].name = "qty";
    params[2].value = qty;
    params[3] = new Object();
    params[3].name = "thumbpath";
    params[3].value = thumbPath;
    if (description != null){
        params[4] = new Object();
        params[4].name = "description";
        params[4].value = description;
    }
    
    CartOneCallBack("addToCart", params);
    
}

function ShowAddToCartMsgBox(title, thumbPath, qty, description){

    var titleHtml = "<b>" + templateStrings.GetTitleAddToCart() + "</b>";
    
    var text = title;
    text = text + "<br/>" + templateStrings.GetQtyAddToCart() + qty;
    if (description != null)
        text += "<br/><br/>" + description;
    
    var abstractHtml = templateStrings.GetDescrAddToCart();  
    var bodyHtml = "<table width='340px'>";
    bodyHtml += "<tr>";
    bodyHtml += "<td style='padding: 5px; text-align: center;'><img src='" + thumbPath + "' border='0' /></td>"; 
    bodyHtml += "<td style='padding: 5px; text-align: left;color:#000;'>" + text + "</td>";
    bodyHtml += "</tr>";
    bodyHtml += "</table>";
    
    var btnOk = new Object();
    btnOk.link = "cart.aspx";
    btnOk.title = templateStrings.GetLinkAddToCart();

    ShowMsgBox(titleHtml, abstractHtml, bodyHtml, btnOk, null);
    
}

function RecoveryPassword(){
   
    var titleHtml = "<b>" + templateStrings.GetTitleRecoveryPassword() + "</b>";
    var abstractHtml = templateStrings.GetAbstractRecoveryPassword();
    var bodyHtml = templateStrings.GetBodyRecoveryPassword() + "&nbsp;<input type='text' class='textbox' id='recoveryPasswordEmail' />";
    
    var btnOk = new Object();
    btnOk.link = "#";
    btnOk.onClickEvent = "SendRecoveryPasswordRequest();";
    btnOk.title = "Ok";

    ShowMsgBox(titleHtml, abstractHtml, bodyHtml, btnOk, null);
    
}

function SendRecoveryPasswordRequest(){
    var element = document.getElementById('recoveryPasswordEmail');
    if (element == null){
        alert(templateStrings.GetUnableFindEmailControl());
        return false;
    }    
    var params = [];
    params[0] = new Object();
    params[0].name = "email";
    params[0].value = element.value;
    CartOneCallBack("recoveryPassword", params);
}


function OpenCalcItalianIdentificationCode(firstname, lastname, provinceid, cityid){

    firstname = (firstname == null) ? "" : firstname;
    lastname = (lastname == null) ? "" : lastname;
    provinceid = (provinceid == null) ? "" : provinceid;
    cityid = (cityid == null) ? "" : cityid;
    window.open('services/CalcItalianIdentificationCode.aspx?firstname=' + firstname + '&lastname=' + lastname + '&provinceid=' + provinceid + '&cityid=' + cityid,'CalcIIC','width=420,height=420,resize=no;');

}

