/**
 * Funzioni di supporto ai forms
 */

function poinx_setSubActionAndSubmit(formId, subAction, subActionData, model) {
	var ff = document.getElementById(formId);
	if(ff == undefined || ff == null) return;
	
	if(model == undefined) {
		ff['data[subAction]'].value = subAction;
		ff['data[subActionData]'].value = subActionData;
	}
	else {
		ff['data[' + model + '][subAction]'].value = subAction;
		ff['data[' + model + '][subActionData]'].value = subActionData;	
	}
	ff.submit();
}

/**
 * Verifica la correttezza formale dell'indirizzo email contenuto nel textbox
 * passato
 * @param el Textbox contenente l'email da verificare (DOMElement)
 * @return <code>true</code> se l'email e' formalmente corretta, <code>false</code> altrimenti
 */
function poinx_VerifyEmail(el) {
	
	var v = el.value;
	
	var isOk = false;
	if(v.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) != -1) isOk = true;
	
	if(!isOk) {
		window.alert(poinx_lang_js_1);
		el.focus();
	}
	
	return isOk;
}

/**
 * Svuota il controllo passato se questo non e' vuoto e
 * se non e' gia' stato svuotato in precedenza
 * @param el Elemento da svuotare (DOMElement)
 */
function poinx_EmptyControl(el) {
	if(el.fistValue) return;
	el.firstValue = el.value;
	el.value = "";
}

/**
 * Ripristina il contenuto del controllo al valore
 * che conteneva prima della chiamata alla funzione EmptyControl
 * @param el Controllo da ripristinare (DOMElement)
 * @return
 */
function poinx_ResumeControl(el) {
	if(el.value == "") {
		if(el.firstValue) el.value = el.firstValue;
	}
}

/**
 * Imposta lo stile "display: block" sull'elemento passato
 * @param elid Id dell'elemento da impostare
 * @return
 */
function poinx_showPopup(elid) {
	var el = document.getElementById(elid);
	el.style.display = 'block';	
}

/**
 * Imposta lo stile "display: none" sull'elemento passato
 * @param elid Id dell'elemento da impostare
 * @return
 */
function poinx_hidePopup(elid) {
	var el = document.getElementById(elid);
	el.style.display = 'none';	
}

/**
 * La fuzione imposta lo stato di tutti i checkbox presenti nella form passata
 * ed il cui ID inizia con la stringa passata allo stato del checkbox di riferimento
 * @param el Checkbox di riferimento (DOMElement)
 * @param formName Nome del form (String)
 * @param idStartingWith Parte iniziale dell'id dei checkbox da settare (String)
 * @return
 */
function poinx_SelectAll(el, formName, idStartingWith) {
	var ff = document.forms[formName];
	for(var t=0;t<ff.elements.length;t++) {
		var fel = ff.elements[t];
		if(fel.type == 'checkbox') {
			var felid = fel.id;
			if(felid.indexOf(idStartingWith) == 0) {
				fel.checked = el.checked; 
			}
		}
	}
}

function poinx_MutualCheck(formName, idStartingWith, selectedId) {
	var ff = document.forms[formName];
	for(var t=0;t<ff.elements.length;t++) {
		var fel = ff.elements[t];
		if(fel.type == 'checkbox') {
			var felid = fel.id;
			if(felid.indexOf(idStartingWith) == 0) {
				fel.checked = (felid == selectedId); 
			}
		}
	}
}

/*
 * Funzioni di validazione per overlay MemberGetMember
 */

function poinx_ValidateMgmStart() {
	var el = document.getElementById("Mgm.email");
	return poinx_VerifyEmail(el);
}

function poinx_Validate_nwl_subscribe() {
		var pel =document.getElementById("privacy");
		if(pel && !pel.checked) {
			alert(poinx_lang_js_12);
			return false;
		}
		var el = document.getElementById("email");
		return poinx_VerifyEmail(el);
}


function poinx_ValidateMgmInviteFriends(tt) {
	
	/*
	 * Se tt = 0 verifiche per form di richiesta indirizzi remoti
	 */
	if(tt == 0) {
		var el = document.getElementById("Mgm.abusername");
		if(el.value ==  "") {
			window.alert(poinx_lang_js_2);
			return false;
		}
		
		el = document.getElementById("Mgm.abpassword");
		if(el.value == "") {
			window.alert(poinx_lang_js_3);
			return false;
		}
		
		return true;
	}
	
	/*
	 * Se tt = 1 verifiche per elenco indirizzi email manuale
	 */
	if(tt == 1) {
		var el = document.getElementById("Mgm.emails");
		if(el.value == "") {
			window.alert(poinx_lang_js_4);
			return false;
		}
		
		return true;
	}
	
	return false;
}

function poinx_ValidateMgmInviteAb() {
	
	var cnt = 0;
	var tot = 0;
	
	var ff = document.forms['ablist'];
	for(var t=0;t<ff.elements.length;t++) {
		var fel = ff.elements[t];
		if(fel.type == 'checkbox') {
			var felid = fel.id;
			if(felid.indexOf('email') == 0) {
				tot++;
				if(fel.checked == true) cnt++;
			}
		}
	}
	
	if(cnt == 0) {
		window.alert(poinx_lang_js_5);
		return false;
	}
	else {
		return true;
	}
}

/*
 * Funzioni di validazione per overlay SuperDeal
 */


function poinx_ValidateSuperdealStart() {
	var el = document.getElementById("Superdeal.email");
	return poinx_VerifyEmail(el);
}

function poinx_ValidateSuperdealInviteFriends(tt) {
	
	/*
	 * Se tt = 0 verifiche per form di richiesta indirizzi remoti
	 */
	if(tt == 0) {
		var el = document.getElementById("Superdeal.abusername");
		if(el.value ==  "") {
			window.alert(poinx_lang_js_2);
			return false;
		}
		
		el = document.getElementById("Superdeal.abpassword");
		if(el.value == "") {
			window.alert(poinx_lang_js_3);
			return false;
		}
		
		return true;
	}
	
	/*
	 * Se tt = 1 verifiche per elenco indirizzi email manuale
	 */
	if(tt == 1) {
		var el = document.getElementById("Superdeal.emails");
		if(el.value == "") {
			window.alert(poinx_lang_js_4);
			return false;
		}
		
		return true;
	}
	
	return false;
}

function poinx_ValidateSuperdealInviteAb(num) {
	
	var cnt = 0;
	var tot = 0;
	
	var ff = document.forms['ablist'];
	for(var t=0;t<ff.elements.length;t++) {
		var fel = ff.elements[t];
		if(fel.type == 'checkbox') {
			var felid = fel.id;
			if(felid.indexOf('email') == 0) {
				tot++;
				if(fel.checked == true) cnt++;
			}
		}
	}
	
	if(cnt < num && tot != cnt) {
		window.alert(poinx_lang_js_6);
		return false;
	}
	else {
		return true;
	}
}

function poinx_InviteFriends(email, fullname, userid) {
	url = "/overlay/mgm_send_invitations/" + email + "/" + fullname + "/" + userid;
	new Ajax.Updater('noid', url, {asynchronous:true, evalScripts:true, requestHeaders:['X-Update', 'noid']});
}

function poinx_InviteFriendsSuperdeal(email, fullname, userid, dealid) {
	url = "/overlay/superdeal_send_invitations_async/" + email + "/" + fullname + "/" + userid + "/" + dealid;
	new Ajax.Updater('noid', url, {asynchronous:true, evalScripts:true, requestHeaders:['X-Update', 'noid']});
}

function poinx_ShowDiv(divname) {	
	var obj=document.getElementById(divname);
	if(obj) {
		//obj.style.display='none';
		obj.style.display='block';
		//obj.style.visibility='visible';
	}	
}
function poinx_HideDiv(divname) {	
	var obj=document.getElementById(divname);
	if(obj) {
		obj.style.display='none';
		
		//obj.style.visibility='visible';
	}	
}
function poinx_SubmitLandingSubcribe(categoryId) {
	var el = document.getElementById("Landing.categoryId");
	el.value = categoryId;	
	var form = document.forms["LandingForm"];
	form.submit();
}

/* 
 * Startup ovl iscrizione email
 */
function poinx_StartOvlStart() {
	lightbox_ReplaceContent('/overlay2/nwl_subscribe');
	poinx_Lightbox.activate();

}

/* 
 * Startup oerlay
 */
function poinx_StartOverlay(url) {
	lightbox_ReplaceContent(url);
	poinx_Lightbox.activate();
}


//////////////////////////////////////////
// FUNZIONI PER INVIO FATTURE PER EMAIL //
//////////////////////////////////////////

function poinx_SelectAllInvoices() {
	var form = $('Invoices');
	$A(form['data[Invoices][SendEmail]']).each(function(item) {
		if(item.type == 'checkbox') item.checked = true;
	});	
}

function poinx_CheckInvoicesForMail() {
	var form = $('Invoices');
	var cnt = 0;
	$A(form['data[Invoices][SendEmail]']).each(function(item) {
		item.toBeSent = false;
		if(item.checked) {
			cnt++;
			item.toBeSent = true;
		}
	});
	
	if(cnt == 0) {
		window.alert(poinx_lang_js_8);
		return;
	}
	
	var r = window.confirm(poinx_lang_js_15 + " " + cnt + " " + poinx_lang_js_16 + "\n" + poinx_lang_js_17);
	if(r == false) return;
	
	poinx_SendNextInvoice();
}

function poinx_SendNextInvoice() {
	var finished = true;
	var form = $('Invoices');	
	var cb = form['data[Invoices][SendEmail]']; 
	for(var t=0;t<cb.length;t++) {
		var item = cb[t];
		if(item.toBeSent) {
			item.toBeSent = false;
			item.checked = false;
			var invoice_id = item.value;
			var url = '/admin/invoices/send/' + invoice_id;
			$("result" + invoice_id).style.color = "black";
			$("result" + invoice_id).innerHTML = '<img src="/img/ajax_loader.gif" border="0" />';
			new Ajax.Request(url, { onSuccess: poinx_SentInvoiceResponse });
			finished = false;
			break;
		}		
	}
	if(finished) window.alert(poinx_lang_js_11);
}

function poinx_SentInvoiceResponse(response) {
	var errore = response.headerJSON.errore;
	var messaggio = response.headerJSON.messaggio;
	var invoice_id = response.headerJSON.invoice_id;
	$("result" + invoice_id).innerHTML = messaggio;
	if(errore) $("result" + invoice_id).style.color = "red";
	else {
		$("result" + invoice_id).style.color = "green";
		$("toggle" + invoice_id).innerHTML = poinx_lang_js_9;
	}
	poinx_SendNextInvoice();
}

function poinx_CheckInvoicesForPayed() {
	var form = $('Invoices');
	var cnt = 0;
	$A(form['data[Invoices][SendEmail]']).each
	(
		function(item)
		{
			item.toBeSent = false;
			
			if(item.checked)
			{
				cnt++;
				item.toBeSent = true;
			}
		}
	);
	
	if(cnt == 0)
	{
		window.alert(poinx_lang_js_13);
		return;
	}
	
	var r = window.confirm(poinx_lang_js_18 + " " + cnt + " " + poinx_lang_js_19 + "\n" + poinx_lang_js_20);
	if(r == false) return;
	
	poinx_SetNextInvoicePayed();
}

function poinx_SetNextInvoicePayed() {
	var finished = true;
	var form = $('Invoices');	
	var cb = form['data[Invoices][SendEmail]'];
	for(var t=0;t<cb.length;t++) {
		var item = cb[t];
		if(item.toBeSent) {
			item.toBeSent = false;
			item.checked = false;
			var invoice_id = item.value;
			var url = '/admin/invoices/setpayed/' + invoice_id;
			$("result" + invoice_id).style.color = "black";
			$("result" + invoice_id).innerHTML = '<img src="/img/ajax_loader.gif" border="0" />';
			new Ajax.Request(url, { onSuccess: poinx_PayedInvoiceResponse });
			finished = false;
			break;
		}		
	}
	if(finished) window.alert(poinx_lang_js_14);
}

function poinx_PayedInvoiceResponse(response) {
	var errore = response.headerJSON.errore;
	var messaggio = response.headerJSON.messaggio;
	var invoice_id = response.headerJSON.invoice_id;
	$("result" + invoice_id).innerHTML = messaggio;
	if(errore) $("result" + invoice_id).style.color = "red";
	else {
		$("result" + invoice_id).style.color = "green";
		$("togglepayed" + invoice_id).innerHTML = poinx_lang_js_9;
	}
	poinx_SetNextInvoicePayed();
}

function poinx_CreateInvoicesPdf() {
	var cnt = 0;
	var form = $('Invoices');
	var str = "";
	$A(form['data[Invoices][SendEmail]']).each(function(item) {
		if(item.checked) {
			cnt++;
			if(str != "") str += ",";
			str += item.value;
		}
	});
	if(cnt==0) {
		window.alert("Nessuna fattura selezionata. Impossibile generare il PDF");
		return false;
	}
	form['data[Invoice][selected_invoices]'].value = str;	
	form.action = "/admin/invoices/viewall";
	form.submit();
	return true;
}

//Toggle div visibility
function poinx_togglediv(divname) {	
	var box=document.getElementById(divname);
	if(box) {		
		if(box.style.display=='block') {
			box.style.display="none";			
		}
		else {
			box.style.display="block";
		}
	}
}

// Select all contacts in overlay2 invite_by_directory
function poinx_overlay2_selectAll() {
	var i=0;
	while(1) {
		var cbName="emails_"+i;
		var obj=document.getElementById(cbName);
		if(obj) {
			obj.checked=true;
		}
		else {
			break; // End
		}
		i++;
	}
}

function poinx_disappear(elname){
	var el=document.getElementById(elname);
	if(el){
		el.style.display="none";
	}
}

function setDealFormFields()
{
	var el_dType=document.getElementById('DealDealtype');
	var el_dSide=document.getElementById('DealSidedeal');
	var el_dCollect=document.getElementById('DealCollectdeliverydata');
	var el_dTravel=document.getElementById('DealTravel');
	var el_dCityId=document.getElementById('DealCityId');
	
	// Minimo
	var el_dMinpurchases=document.getElementById('DealMinpurchases');
	
	// date
	var el_dRedeemafterM=document.getElementById('DealRedeemafterMonth');
	var el_dRedeemafterD=document.getElementById('DealRedeemafterDay');
	var el_dRedeemafterY=document.getElementById('DealRedeemafterYear');	
	var el_dRedeembeforeM=document.getElementById('DealRedeembeforeMonth');
	var el_dRedeembeforeD=document.getElementById('DealRedeembeforeDay');
	var el_dRedeembeforeY=document.getElementById('DealRedeembeforeYear');
	
	// Il deal ha gia' acquisti?
	//var el_dHasPurchases=document.getElementById('DealHasPurchases');
	
	if(el_dType.options[el_dType.selectedIndex].value=='L')
	{
		el_dSide.checked=false;
		el_dSide.disabled=true;	
		el_dCollect.checked=false;
		el_dCollect.disabled=true;
		if(el_dTravel) el_dTravel.checked=false;
		if(el_dTravel) el_dTravel.disabled=true;
		el_dMinpurchases.disabled=true;		
		el_dMinpurchases.value=0;
		
		el_dRedeemafterM.disabled=true;		
		el_dRedeemafterD.disabled=true;		
		el_dRedeemafterY.disabled=true;				
		el_dRedeembeforeM.disabled=true;		
		el_dRedeembeforeD.disabled=true;		
		el_dRedeembeforeY.disabled=true;		
	}
	else
	{
		el_dSide.disabled=false;
		el_dCollect.disabled=false;	
		if(el_dTravel) el_dTravel.disabled=false;	
		el_dMinpurchases.disabled=false;		
		el_dRedeemafterM.disabled=false;		
		el_dRedeemafterD.disabled=false;		
		el_dRedeemafterY.disabled=false;				
		el_dRedeembeforeM.disabled=false;		
		el_dRedeembeforeD.disabled=false;		
		el_dRedeembeforeY.disabled=false;		

	}
	
	if(el_dSide.checked)
	{	
		el_dCityId.disabled=true;
	}
	else
	{
		el_dCityId.disabled=false;
		el_dCollect.disabled=true;
		el_dCollect.checked=false;
		if(el_dTravel) el_dTravel.disabled=true;
		if(el_dTravel) el_dTravel.checked=false;
	}
	
	if(el_dCollect.checked)
	{	
		if(el_dTravel) el_dTravel.disabled=true;
		if(el_dTravel) el_dTravel.checked=false;
	}
	else
	{
		if(el_dTravel) el_dTravel.disabled=false;		
	}
	
	if(el_dTravel && el_dTravel.checked)
	{	
		el_dCollect.disabled=true;
		el_dCollect.checked=false;
	}
	else
	{
		el_dCollect.disabled=false;		
	}
	
}

