var myHirlevelSendMail = {
	failureMessage: "Hiba történt a hírlevél küldése közben!",
	successMessage: "A hírlevél küldése sikeresen megtötént!",
	deleteMessage: "A levelek törlése megtötént!",
	packetCount: 0,
	packetOk: 0,
	waitMinutes: 10,
	deleteErrorPackets: function(){
		myAjax.sendId('myHirlevelSendMail', 'deleteErrorMails', '', {succesFnc: function(id, transport){
			eval(transport.responseText);
			if ( result.success == 1 ) {
				$("myHirlevelSendMail-progress-ajax").update(myHirlevelSendMail.deleteMessage);
			} else {
				$("myHirlevelSendMail-progress-ajax").update(myHirlevelSendMail.failureMessage);
			}
		}});
	},
	sendErrorPackets: function(count){
		myAjax.sendId('myHirlevelSendMail', 'addMailToQueueFromError', '', {succesFnc: function(id, transport){
			eval(transport.responseText);
			if ( result.packetCount > 0 ) {
				myHirlevelSendMail.packetCount = result.packetCount;
				$('myHirlevelSendMail-pbar-content').style.width = '0px';
				$('myHirlevelSendMail-progress-ajax').update($('myHirlevelSendMail-pbar').innerHTML);
				myHirlevelSendMail.sendOnePacket(myHirlevelSendMail.waitMinutes);
			} else {
				myHirlevelSendMail.packetCount = 0;
				$("myHirlevelSendMail-progress-ajax").update(myHirlevelSendMail.failureMessage);
			}
		}});
	},
	addMailContent: function(){
		if ( $('subject').value == '' ) {
			alert('Kérem töltse ki témát!');
			return;
		}
		$('content').value = tinyMCE.get('content').getContent();
		if ( $('content').value == '' ) {
			alert('Kérem töltse ki a tartalmat!');
			return;
		}
		myAjax.loadForm('myHirlevelSendMail-progress','myHirlevelSendMail','addMailToQueue','myHirlevelSendMail-form',{
		transport_function: function(id, transport){
			eval(transport.responseText);
			if ( result.packetCount > 0 ) {
				myHirlevelSendMail.packetCount = result.packetCount;
				transport.responseText = $('myHirlevelSendMail-pbar').innerHTML;
				$('myHirlevelSendMail-pbar-content').style.width = '0px';
			} else {
				myHirlevelSendMail.packetCount = 0;
				$("myHirlevelSendMail-progress-ajax").update(myHirlevelSendMail.failureMessage);
			}
		},
		after_function: function(){
			if ( myHirlevelSendMail.packetCount > 0 )
				myHirlevelSendMail.sendOnePacket(myHirlevelSendMail.waitMinutes);
			else
				$("myHirlevelSendMail-progress-ajax").update(myHirlevelSendMail.failureMessage);
		}});
	},
	sendOnePacket: function(wait){
		if ( myHirlevelSendMail.packetCount > myHirlevelSendMail.packetOk ) {
			if ( myHirlevelSendMail.packetCount == myHirlevelSendMail.packetOk + 1 ) {
				wait = 0;
			}
			myAjax.sendId('myHirlevelSendMail', 'sendMailFromQueue', '', {succesFnc: function(id, transport){
				eval(transport.responseText);
				if ( result.success == 1 ) {
					myHirlevelSendMail.packetOk++;

					var dim = $('myHirlevelSendMail-pbar-border').getDimensions();
					var width = parseInt(myHirlevelSendMail.packetOk) / parseInt(myHirlevelSendMail.packetCount) * dim.width;
					$('myHirlevelSendMail-pbar-content').style.width = width+'px';

					setTimeout("myHirlevelSendMail.sendOnePacket("+wait+");", parseInt(wait)*1000);
				} else {
					$("myHirlevelSendMail-progress-ajax").update(myHirlevelSendMail.failureMessage);
				}
			}});
		} else {
			myHirlevelSendMail.packetCount = 0;
			myHirlevelSendMail.packetOk = 0;
			$("myHirlevelSendMail-progress-ajax").update(myHirlevelSendMail.successMessage);
		}
	}
}
var myTermekTermek = {
    compareId1: 0,
    addToKosar: function(id){
        var db = $('myTermekTermek-form-db-'+id).value;
        if ( db > 0 ){
            myAjax.loadForm('myCart-box', 'myUserKosarBox', 'addKosar', 'myTermekTermek-form'+id);
            Element.update($('myTermekTermek-hint'+id), "Kosárba helyezve "+db+" db");
        } else {
            Element.update($('myTermekTermek-hint'+id), "Érvénytelen mennyiség");
        }
        setTimeout("Element.update($('myTermekTermek-hint"+id+"'), '');", 3000);
    },
    compare: function(url, id){
        if ( myTermekTermek.compareId > 0 ){
            document.location.href = url+"/"+myTermekTermek.compareId+"/"+id;
        } else {
            sender = $("myTermekCompare-compareitem-"+id);
            sender.update($("myTermekCompare-compareitemdef1-"+id).innerHTML);
            myTermekTermek.compareId = id;
            $$(".myTermekCompare-compareitem").each(function(elem){
                if ( elem != sender ){
                    Effect.Shake(elem, {duration: 0.5, distance: 5});
                }
            });
        }
    },
    compareUndo: function(id){
        sender = $("myTermekCompare-compareitem-"+id);
        sender.update($("myTermekCompare-compareitemdef-"+id).innerHTML);
        myTermekTermek.compareId = 0;
    }
}
var myAjax = {
	sendId: function(controller, action, ajax_id, p_options){
		if ( p_options == null ) p_options = {};
		var options = {
			id: '',
			controller: controller,
			action: action,
			ajax: {
				parameters: {
					id: ajax_id
				}
			}
		}
		options = Object.extend(options, p_options);
		//kérés sikere esetén
		var successFnc = function(id, transport){
			options.succesFnc(id, transport);
		};
		//kérés sikertelen esetén
		var failureFnc = function failureFnc(id, transport){
			if ( options.failureFnc != null ) {
				options.failureFnc(id, transport);
			} else {
				alert('Hiba a kapcsolódás során!');
			}
		};
		myAjax.request(options, successFnc, failureFnc);
	},
	loadId: function(id, controller, action, ajax_id, p_options){
		if ( p_options == null ) p_options = {};
		var options = {
			id: $(id).up().id,
			controller: controller,
			action: action,
			ajax: {
				parameters: {
					id: ajax_id
				}
			}
		}
		options = Object.extend(options, p_options);
		myAjax.updater(options);
	},
	loadForm: function(id, controller, action, form_id, p_options){
		if ( p_options == null ) p_options = {};
		var options = {
			id: $(id).up().id,
			controller: controller,
			action: action,
			form_id: form_id,
			ajax: {
				parameters: {}
			}
		}
		options = Object.extend(options, p_options);
		myAjax.updater(options);
	},
	updater: function(options){
		//Végrehajtja az ajax kérést
		var fnc = function(){
			//ha kell elötte valamit csinálni
			if ( options.before_function != null )
					options.before_function();
			//ha kell formot serializálni
			if ( options.form_id != null ){
				formdata = $(options.form_id).serialize(true);
				options.ajax.parameters = Object.extend(options.ajax.parameters, formdata);
			}
			//kérés sikere esetén
			var successFnc = function(id, transport){
				//ha változtatni akarok a válaszon
				if ( options.transport_function != null ) {
					options.transport_function(id, transport);
				}
				//eltünteti teszi a loading-div-et
				myAjax.hideEffect('myAjax-loading-div', function(){
					//elveszi a loding-div-et
					$('myAjax-loading-div').remove();
					//kiszámolja az új tartalom magasság át
					var dim = $(id).getDimensions();
					var newHeight = myAjax.getResponseHeight(dim.width, transport.responseText);
					//kinyújtja akkorára a div-et
					new Effect.Morph(id, {style: 'height: '+newHeight+'px;', duration: 0.5, afterFinish: function(){
					//beilleszti a választ
						$(id).update(transport.responseText);
					//visszaállítja az eredeti magasságot
						$(id).style.height = 'auto';
					//megjeleníti az új tartalmat
						myAjax.showEffect(id);
					//ha kell utólag csinálni valamit
						if ( options.after_function != null )
							options.after_function(transport.responseText);
					}});
				});
			};
			//kérés sikertelen esetén
			var failureFnc = function failureFnc(id, transport){
				myAjax.hideEffect('myAjax-loading-div', function(){
					$('myAjax-loading-div').remove();
					myAjax.showEffect(id, function(){
						alert('Hiba a kapcsolódás során!');
					});
				});
			};
			myAjax.request(options, successFnc, failureFnc);
		};

		//Ha kell megcsinálja az effektet
		if ( options.no_effect == true )
			fnc();
		else {
		//eltünteti a frissítendő divet
			myAjax.hideEffect(options.id, fnc, options);
		//létrehozza a loading div-et
			var loading_div = new Element('div', { id: 'myAjax-loading-div' });
		//kiszámolja a pozícióját
			var dim = $(options.id).getDimensions();
			loading_div.style.left = ((dim.width / 2) - 16) + 'px';
			loading_div.style.top = ((dim.height / 2) - 16) + 'px';
		//átlátszóvá teszi az animáció miatt
			loading_div.setOpacity(0);
		//majd beilleszti a dom-ba
			$(options.id).up().insert(loading_div);
		//és megjeleníti
			myAjax.showEffect(loading_div);
		}
	},
	request: function(options, successFnc, failureFnc){
		//elküldi a tényleges kérést
		var def_options = {
			method: 'post',
			onSuccess: function(transport){
				if ( transport.responseText.length > 0 ) {
					after_id = transport.getHeader("UpdateDivId");
					/*if ( after_id == "window" ){
						document.location.href = "index.php";
					}*/
					if ( after_id != null ) {
						options.id = after_id;
					}
					successFnc(options.id, transport);
				} else {
					failureFnc(options.id, transport);
				}
			},
			onFailure: function(transport){
				failureFnc(options.id, transport);
			}
		}
		options.ajax = Object.extend(def_options, options.ajax);
		new Ajax.Request("/index.php/"+options.controller+"/"+options.action, options.ajax);
	},
	hideEffect: function(id, after_fnc){
		//ha a szülő nem relatív, akkor azzá teszi
		if ( $(id).up().style.position != "relative" ){
			$(id).up().style.position = "relative";
		}
		//eltönteti a div-et
		Effect.Appear(id, {duration: 0.6, from: 1, to: 0.00001, afterFinish: function(){
			after_fnc();
		}});
	},
	showEffect: function(id, after_fnc){
		//megjeleníti a div-et
		Effect.Appear(id, {duration: 0.6, from: 0.00001, to: 1, afterFinish: function(){
			if ( after_fnc != null )
				after_fnc();
		}});
	},
	getResponseHeight: function(width, responseText){
		var test_div = new Element('div', { id: 'myAjax-test-div' });
		test_div.style.width = width+'px';
		test_div.update(responseText);
		var objBody = $$('body')[0];
		objBody.insert(test_div);
		var dim = test_div.getDimensions();
		test_div.remove();
		return dim.height;
	}
}
var myUserKosar = {
    counts: [],
    setDb: function(id){
        var value = $("termek-value-"+id).value;
        if ( value > 0 ){
            if ( myUserKosar.counts[id] == null ) {
                myUserKosar.counts[id] = 0;
            }
            myUserKosar.counts[id] = parseInt(myUserKosar.counts[id]) + 1;
            setTimeout("myUserKosar.setDbReal('"+id+"', '"+value+"');", 1000);
        }
    },
    setDbReal: function(id, value){
        myUserKosar.counts[id] = parseInt(myUserKosar.counts[id]) - 1;
        if ( myUserKosar.counts[id] == 0 ) {
            myAjax.loadId('myCart-box', 'myUserKosarBox', 'setKosarDb', id+"_"+value);

            var egysar = $("myUserKosarPage-egysar-"+id).innerHTML.toString();
            egysar = myUserKosar.makeNumber(egysar);
            $("myUserKosarPage-osszar-"+id).update(myUserKosar.formatNumber(egysar*parseInt(value))+" Ft");

            var osszar = 0;
            var ar = 0;
            $$(".myUserKosarPage-osszar").each(function(item){
                ar = item.innerHTML.toString();
                ar = myUserKosar.makeNumber(ar);
                osszar += ar;
            });
            $("myUserKosarPage-osszesen").update(myUserKosar.formatNumber(osszar)+" Ft");

            if ( $("myUserKosarPage-kedv") != null ){
                var kedv = $("myUserKosarPage-kedv").innerHTML.toString();
                kedv = myUserKosar.makeNumber(kedv);
                var fizetendo = osszar * ( 1 - kedv / 100 );
                $("myUserKosarPage-fizetendo").update(myUserKosar.formatNumber(fizetendo)+" Ft");
            }
        }
    },
    sendRendeles: function(){
        if ( !myUserLoginout.logined ) {
            $('myUserKosar-notlogined-message').update("Kérem jelentkezzen be!");
        } else {
            myAjax.loadId('myUserKosar', 'myUserKosarPage', 'sendRendeles', '0');
        }
    },
    formatNumber: function(num){
        numArr = new String(num).split('').reverse();
        for( i=3; i< numArr.length; i+=3 )
            numArr[i]+=' ';
        return numArr.reverse().join('');
    },
    makeNumber: function(str){
        str = str.replace(/\s+/g, "");
        str = str.replace("%", "");
        return parseInt(str);
    }
}
var myUserRegister = {
	copyCim: function(){
		$("myUserRegister-irszam2").value = $("myUserRegister-irszam").value;
		$("myUserRegister-varos2").value = $("myUserRegister-varos").value;
		$("myUserRegister-cim2").value = $("myUserRegister-cim").value;
	}
}

