var CheckOutId = "content"
var CheckOutName = "CheckOut"
var CheckOutInit = false;
var CheckOutModo  
var CheckOutPagina
var CheckOutLastStep  
var CheckOutSpedizione = false
var CheckOutPagamento = false
var CheckOutLoaded = false;
var CheckOutStyle = false;
var CheckOutServerPage = "/webiris/Modules/CheckOut/AjaxServer/index.aspx";
var CheckOutForm = false
var CheckOutReturn = false
var CheckOutParent = new Array()

function CheckOut_init(ajaxIndex)
{
	var response = ajaxObjects[ajaxIndex].responseXML;

	// inizializza il modulo
	try
	{
	  	var moduleStyle=response.getElementsByTagName("style")[0].childNodes[0].nodeValue;
		if (CheckOutStyle == false) {
			CheckOutStyle = true;
			addStyle(moduleStyle); 
		}

		if (modulename != "CheckOut" && CheckOutInit==false) {
			modulename = "CheckOut"

	  		CheckOutId=response.getElementsByTagName("contenitore")[0].childNodes[0].nodeValue;
			
			modulesloaded = false
			verifymodulesloaded = "if (modulename == 'CheckOut' && CheckOutLoaded==true"

			// inizializza i moduli che compongono la pagina
			var x = response.getElementsByTagName("struttura")
			
			CheckOutParent = new Array()
		  	
			for (var i=0;i<x.length;i++) {
				var nome=XmlGet(x,i,"nome");
				var contenitore=XmlGet(x,i,"contenitore");
				try{ 
					eval(nome + "Id='" + contenitore + "'")
					eval(nome+"_initAjax()")
					CheckOutParent.push(nome+"_initAjax()")
					verifymodulesloaded += " && " + nome + "Loaded==true"
				}
				catch(e){}
			}
			verifymodulesloaded += ") modulesloaded = true;" 
		}
	
		CheckOutForm = false;
	
		clearAjaxSession(ajaxIndex);
		CheckOut_listAjax();

	} catch (err) {
		alert("CheckOut - " + ajaxObjects[ajaxIndex].response)
	}

}

function CheckOut_showForm(ajaxIndex)
{
	//CheckOutLoaded = true;
	replace_html(CheckOutId, ajaxIndex)	
}
    
function CheckOut_showList(ajaxIndex)
{
	//CheckOutLoaded = true;
	replace_html(CheckOutId, ajaxIndex)	
}

function CheckOut_check(field, itemid)
{
	var retval = true;

	switch(field.name)
	{
		case "quantita":
  			if (field.value < 1 || field.value > 10) {
				retval = false;
			} else {
				CheckOut_AddToCart(itemid, field.value)
			}				
  			break;
		case "spedizione":
			CheckOutSpedizione = field.value;
			CheckOut_UpdateCart("spedizione", field.value, CheckOutLastStep)
  			break;
		case "pagamento":
			CheckOutPagamento = field.value;
			CheckOut_UpdateCart("pagamento", field.value, CheckOutLastStep)
  			break;
		case "note":
			if (CheckOutForm.isvalid(field.id))
				CheckOut_UpdateCart("note", field.value, CheckOutLastStep);
  			break;
		default:
			retval = false;
	}
	if (!retval){
		field.className = 'errorfld';
		field.focus();
		field.select();
	} else {
		field.className = '';
	}
	//alert(retval)
	return retval;
}
function CheckOut_CheckStep()
{
	// if (CheckOutForm && CheckOutForm.status=='post') 
	if (CheckOutForm) 
		return CheckOutForm.checkform()  

	return true;	
}

function CheckOut_Back(step, ret){
	if (!CheckOut_CheckStep())
		return;
	CheckOutLastStep = false;
	CheckOutForm = false;
	CheckOut_Step(step);
	CheckOutReturn = ret;
}

function CheckOut_Next(step){
	if (!CheckOut_CheckStep())
		return;
	CheckOutLastStep = false;
	CheckOutForm = false;
	CheckOut_Step(step);
}

function CheckOut_Step(step)
{
	if (CheckOutReturn) {
		step = CheckOutReturn
		CheckOutReturn = false;
	}
	
	CheckOutLastStep = step;

	for (x in CheckOutParent)
	{
		eval(CheckOutParent[x]);
	}

	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = newAjaxSession(ajaxIndex, CheckOutId, 'list')
	ajaxObjects[ajaxIndex].requestFile = CheckOutServerPage;
	ajaxObjects[ajaxIndex].isBookmark = false;
	ajaxObjects[ajaxIndex].setVar('list',step);

	// submitForms( ajaxObjects[ajaxIndex] )
	if (CheckOutForm) {
		CheckOutForm.submit( ajaxObjects[ajaxIndex] )
	}
	if (step=="2") {
		CheckOutForm = new FormValidate("step2");
		CheckOutForm.add('spedizione', 'checked','Y', 'Seleziona come desideri ricevere il tuo ordine.')		
		CheckOutForm.add('pagamento', 'checked','Y', 'Seleziona come desideri pagare il tuo ordine.')		
	}
	if (step=="3") {
		CheckOutForm = new FormValidate("step3");
		CheckOutForm.add('utente', 'req|email','Y', 'Nome utente non valido')		
		CheckOutForm.add('pwd', 'req|psw','Y', 'Password non valida')		
	}
	if (step=="4") {
		CheckOutForm = new FormValidate("step4");
		CheckOutForm.add('CondVendita', 'checked','Y', 'Leggere le condizioni di vendita')		
		CheckOutForm.add('note','mixed','Y', 'Caratteri non validi')		
	}

	// pagamento 
	if (step=="5") {
    	ajaxObjects[ajaxIndex].onCompletion = function(){ CheckOut_PayPal(ajaxIndex); };	// Specify function that will be executed after file has been found
	} else {
    	ajaxObjects[ajaxIndex].onCompletion = function(){ CheckOut_getForm(ajaxIndex); };	// Specify function that will be executed after file has been found
	}

	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}

function CheckOut_getForm(ajaxIndex)
{
	try
	{
		var response = ajaxObjects[ajaxIndex].responseXML;
		try
		{
		  	var stato=response.getElementsByTagName("stato")[0].childNodes[0].nodeValue;
			if (stato!='ok') {
		  		var msg=response.getElementsByTagName("msg")[0].childNodes[0].nodeValue;
		  		var field=response.getElementsByTagName("field")[0].childNodes[0].nodeValue;
				CheckOutForm.error(field, msg)
			} else {

				CheckOutForm = false;

				var code = response.getElementsByTagName("redirect")[0].childNodes[0].nodeValue
				if (code!='')
					eval(code)
			}
			return;
		} catch (err) {
			// CheckOutForm = false;
			// CheckOut_showList(ajaxIndex)
		}
		CheckOut_showList(ajaxIndex)
	} catch (err) {
	}
}

function CheckOut_AddToCart(itemid, itemqty)
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = newAjaxSession(ajaxIndex, CheckOutId, 'addcart')
	ajaxObjects[ajaxIndex].requestFile = CheckOutServerPage;
	ajaxObjects[ajaxIndex].isBookmark = false;
	ajaxObjects[ajaxIndex].setVar('addcart','*');
	ajaxObjects[ajaxIndex].setVar('itemid',itemid);
	ajaxObjects[ajaxIndex].setVar('itemqty',itemqty);
	ajaxObjects[ajaxIndex].onCompletion = function(){ CheckOut_showList(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		

}

function CheckOut_UpdateCart(fieldid, fieldvalue, modo)
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = newAjaxSession(ajaxIndex, CheckOutId)
	ajaxObjects[ajaxIndex].requestFile = CheckOutServerPage;
	ajaxObjects[ajaxIndex].isBookmark = false;
	ajaxObjects[ajaxIndex].setVar('updcart','*');
	ajaxObjects[ajaxIndex].setVar('fieldid',fieldid);
	ajaxObjects[ajaxIndex].setVar('fieldvalue',fieldvalue);
	ajaxObjects[ajaxIndex].setVar('modo', modo);
	ajaxObjects[ajaxIndex].onCompletion = function(){ CheckOut_showList(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		

}
function CheckOut_RemoveFromCart(itemid)
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = newAjaxSession(ajaxIndex, CheckOutId, 'removecart')
	ajaxObjects[ajaxIndex].requestFile = CheckOutServerPage;
	ajaxObjects[ajaxIndex].isBookmark = false;
	ajaxObjects[ajaxIndex].setVar('removecart','*');
	ajaxObjects[ajaxIndex].setVar('itemid',itemid);
	ajaxObjects[ajaxIndex].onCompletion = function(){ CheckOut_showList(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		

}

function CheckOut_initAjax(modo, pagina)
{
    if (modo == "null" || typeof(modo) == "undefined") modo = "list";
    if (pagina == "null" || typeof(pagina) == "undefined") pagina  = "1";


    CheckOutModo = modo;  
    CheckOutPagina = pagina; 
	CheckOutLastStep = false;

	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = newAjaxSession(ajaxIndex, CheckOutId, 'init')
	ajaxObjects[ajaxIndex].requestFile = CheckOutServerPage;
	ajaxObjects[ajaxIndex].isBookmark = false;
	ajaxObjects[ajaxIndex].setVar('init',' ');
	ajaxObjects[ajaxIndex].onCompletion = function(){ CheckOut_init(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}

function CheckOut_formAjax(id)
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = newAjaxSession(ajaxIndex, CheckOutId, 'form')
	ajaxObjects[ajaxIndex].requestFile = CheckOutServerPage;
	ajaxObjects[ajaxIndex].isBookmark = false;
	ajaxObjects[ajaxIndex].setVar('form', id);
	ajaxObjects[ajaxIndex].onCompletion = function(){ CheckOut_showForm(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}


function CheckOut_listAjax()
{
	
	CheckOutForm = new FormValidate("list");
	var imgs = document.getElementsByTagName('IMG');        
	for (var i=0; i<imgs.length; i++) {                
		var o = imgs[ i ];                    
		if (o.name.substr(0,6) == 'upload') {                                                  
			CheckOutForm.add(o.name, 'none','N', '')
		}        
	}        
		
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = newAjaxSession(ajaxIndex, CheckOutId, 'list')
	ajaxObjects[ajaxIndex].requestFile = CheckOutServerPage;
	ajaxObjects[ajaxIndex].isBookmark = false;
	ajaxObjects[ajaxIndex].setVar('list',CheckOutModo);
	ajaxObjects[ajaxIndex].setVar('pagina',CheckOutPagina);
    ajaxObjects[ajaxIndex].onCompletion = function(){ CheckOut_getForm(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}

function CheckOut_ExecuteScript(div)
{
	// execute script
   	var x = div.getElementsByTagName("script");    
   	for( var i=0; i < x.length; i++) {   
      	eval(x[i].text);   
	}   

}

function CheckOut_PayPal(ajaxIndex)
{
	var R = document.getElementById(CheckOutId);
    R.innerHTML = ajaxObjects[ajaxIndex].response
	R.style.display="block";
	R.style.visibility = "visible";

	CheckOut_ExecuteScript(R)
	
	// Apertura nuova finestra
	//newwindow=window.open('','Payment','height=768,width=1024');
	//var tmp = newwindow.document;
	//tmp.write('<html><head><title>Payment</title>');
	//tmp.write('</head><body>');
	//tmp.write(ajaxObjects[ajaxIndex].response)
	//tmp.write('</body></html>');
	//tmp.close();
}

function CheckOut_UploadFileCart(id)
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = CheckOutServerPage;
	ajaxObjects[ajaxIndex].onLoading = show_progressbar(CheckOutId);	
	ajaxObjects[ajaxIndex].setVar('list','upload');
	ajaxObjects[ajaxIndex].setVar('itemid',id);
    ajaxObjects[ajaxIndex].onCompletion = function(){ CheckOut_showList(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}

function CheckOut_UploadFileRemove(id, fileid)
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = CheckOutServerPage;
	ajaxObjects[ajaxIndex].onLoading = show_progressbar(CheckOutId);	
	ajaxObjects[ajaxIndex].setVar('module', CheckOutName);
	ajaxObjects[ajaxIndex].setVar('func','removeupload');
	ajaxObjects[ajaxIndex].setVar('itemid',id);
	ajaxObjects[ajaxIndex].setVar('fileid',fileid);
    ajaxObjects[ajaxIndex].onCompletion = function(){ CheckOut_showList(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}

/**
*
*  AJAX IFRAME METHOD (AIM)
*  http://www.webtoolkit.info/
*
**/
/* 
AIM = {
 
	frame : function(c) {
 
		var n = 'f' + Math.floor(Math.random() * 99999);
		var d = document.createElement('DIV');
		d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\')"></iframe>';
		document.body.appendChild(d);
 
		var i = document.getElementById(n);
		if (c && typeof(c.onComplete) == 'function') {
			i.onComplete = c.onComplete;
		}
 
		return n;
	},
 
	form : function(f, name) {
		f.setAttribute('target', name);
	},
 
	submit : function(f, c) {
		AIM.form(f, AIM.frame(c));
		if (c && typeof(c.onStart) == 'function') {
			return c.onStart();
		} else {
			return true;
		}
	},
 
	loaded : function(id) {
		var i = document.getElementById(id);
		if (i.contentDocument) {
			var d = i.contentDocument;
		} else if (i.contentWindow) {
			var d = i.contentWindow.document;
		} else {
			var d = window.frames[id].document;
		}
		if (d.location.href == "about:blank") {
			return;
		}
 
		if (typeof(i.onComplete) == 'function') {
			i.onComplete(d.body.innerHTML);
		}
	}
 
}

function startCallback() {
	// make something useful before submit (onStart)
			return true;
}
 
function completeCallback(response) {
	// make something useful after (onComplete)
	document.getElementById('nr').innerHTML = parseInt(document.getElementById('nr').innerHTML) + 1;
	document.getElementById('r').innerHTML = response;
}

*/		

