function opentime(o, c) {
		this.open = o;
		this.close = c;
};
function shop(o1,c1,o2,c2,o3,c3)  {
	this.weekday = new opentime(o1,c1);
	this.saturday = new opentime(o2,c2);
	this.sunday = new opentime(o3,c3);
};


var query=0;



function changeCalendar( year, month ) {
	new Ajax.Updater('calendar', '?l1=calendar&l2=plug_calendar&l3=showCalender&date='+year+'-'+month+'&ajax=1', { method: 'get' });
	return false;
}

function gotoProduct( x, form_id ) {
	var new_id = '';

	form = document.getElementById( form_id );

	if ( x.type == 'select-one') {
		form.action = x.options[x.selectedIndex].value;
	}


	form.submit();
}

function setDivHeights(){

	if( document.getElementById('left').offsetHeight>762 ){
		document.getElementById('right').style.height = document.getElementById('left').offsetHeight +'px';
	}

}


function goTo (page) {

	if (page != "" ) {
		document.location.href = page;
	}
	return false;
}

function check_popup() {
	form = document.getElementsByName('palyazat')[0];
	if ( form['nev'].value && form['telefon'].value && form['email'].value ) {
		form.submit();
		document.getElementById('popup_layer').style.display = 'none'
	}
}


function showHide(e) {

	if ( isNaN(e) ) {
		if (!e) e = window.event;
		obj = (e.target) ? e.target : e.srcElement;
		obj = obj.parentNode;
	} else {
		obj = document.getElementById('menuli'+e);
	}

	childs = obj.childNodes;
	submenu = '';
	for( i=0; i<childs.length;i++) {
		if ( childs[i].tagName == 'UL' ) {
			submenu = childs[i];
		}
	}

	if ( submenu ) {

		style = submenu.style.display;

		if ( style && style == 'block' )
			submenu.style.display = 'none';
		else
			submenu.style.display = 'block';
	}
}

var original_val = null;

function setVar(c) {
	original_val = c;
}

function setCart(wr) {
	var obj = eval('('+wr.responseText+')');
	var sum = 0;
	for (i in obj) {
		document.getElementById(i).value = obj[i];
		if (i.indexOf("price") != -1) sum += obj[i];
	}
	document.getElementById("db").value = (obj.f_db%49 == 0) ? obj.f_db/49 : (obj.f_db%49) + ' darab + '+ Math.floor(obj.f_db/49);
	document.getElementById("sum").value = sum;
	getPrice();
}

function checkArgs(a,b) {
	if (a.length == b.length) {
		var i = 0;
		while (a[i] == b[i] && i<a.length) i++;
		if (i<a.length) return false;
		else return true;
	} else return false;
}

var tid = Array();
var counter = 0;
var globalBoolean = false;
var cartId;
var oldCaller = "";
var oldArgs = new Array();

function delayAction(functionName) {
	tid[counter] = 'timeout'+counter;
	if (!checkArgs(oldArgs, delayAction.caller.arguments)) { //fg osszehasonlitas nincs benne
		counter++;
		tid[counter] = 'timeout'+counter;
		globalBoolean = false;
	}
	oldCaller = delayAction.caller;
	for (var i=0;i<delayAction.caller.arguments.length;i++) {
		oldArgs[i] = delayAction.caller.arguments[i];
	}
	
	if (globalBoolean) window.clearTimeout(window[tid[counter]]);
	var params = "";
	for (var i = 1; i < delayAction.arguments.length; i++) {
		if (params != "") params += ", ";
		if (typeof(delayAction.arguments[i]) == "string") delayAction.arguments[i] = "'"+delayAction.arguments[i]+"'";
		params += delayAction.arguments[i];
	}
	var action = String(functionName) + '(' + params + ')';
	window[tid[counter]] = setTimeout(action, 300);
	globalBoolean = true;
}

function addToCart(id){
	id = ''+id;
	var obj = $("szendvics"+id);
	var r = new RegExp('^[0-9]*$', 'gi');
	var m = obj.value.match(r)
	if (m) {
		if (m == "") obj.value = 0;
		var url = '?l1=webstore&l2=plug_webstore_cart&l3=setCart&pid='+id+'&count='+(obj.value*1);
		httpGet(url, printData);
	} else obj.value = original_val;
}

function removeSpecToCart(id, count) {
	var obj = document.getElementById("szendvics"+id);
	if (Number(obj.value) + count < 0) obj.value = 0;
	else {
		obj.value = Number(obj.value) + count;
	}
	cartId = id;
	var url = "?l1=webstore&l2=plug_webstore_cart&l3=removeFromCart&pid="+id+"&count="+obj.value;
	delayAction("httpGet", url, printData);
}

function printData(wr) {
	waitForIt();
	setCart(wr);
}

function copyAddress(nr) {
	var pc = document.getElementById("fm-postcode").value;
	var city = document.getElementById("fm-city").value;
	var street = document.getElementById("fm-street").value;
	document.getElementById("fm-postcode"+nr).value = pc;
	document.getElementById("fm-city"+nr).value = city;
	document.getElementById("fm-street"+nr).value = street;
}

function showLoginbox(bool) {
	var dp = (bool)?'block':'none'; 
	document.getElementById('loginbox').style.display = dp;
}

function showMenu(bool) {
	if (!bool) {
		checkAddr(2);
		getPrice();
		document.getElementById('address').style.display = 'block';
		document.getElementById('deliveryname').style.display = 'block';
		document.getElementById('shop').style.display = 'none';
		document.getElementById("fm-delivery_name").value = document.getElementById("fm-name").value;
	} else {
		document.getElementById('delivery').value = 0;
		document.getElementById('shop').style.display = 'block';
		document.getElementById('address').style.display = 'none';
		document.getElementById('fm-postcode2').value = "";
		document.getElementById('deliveryname').style.display = 'none';
	}
	checkDate();
}

function showMenu2(obj) {
	if (obj.checked == true) {
		checkAddr(3);
		document.getElementById('fm-billing_name').value = document.getElementById('fm-name').value;
		document.getElementById('tx').style.display = 'block';
		document.getElementById('bn').style.display = 'block';
		document.getElementById('ba').style.display = 'block';
	} else {
		document.getElementById('tx').style.display = 'none';
		document.getElementById('bn').style.display = 'none';
		document.getElementById('ba').style.display = 'none';
	}
	saveSession()
}

function checkAddr(nr) {
	var bool = confirm("Ugyanaz, mint a megrendelő címe?");
	if (bool) {
		document.getElementById('fm-postcode'+nr).value = document.getElementById('fm-postcode').value;
		document.getElementById('fm-city'+nr).value = document.getElementById('fm-city').value;
		document.getElementById('fm-street'+nr).value = document.getElementById('fm-street').value;
	} else {
		document.getElementById('fm-postcode'+nr).value = "";
		document.getElementById('fm-city'+nr).value = "";
		document.getElementById('fm-street'+nr).value = "";
	}
}

var obj
function resizeImg(o) {
	obj = o;
	clearTimeout(window.resizeHeaderImageZoomIn_timeout);
	if (typeof obj.originalWidth=="undefined")obj.originalWidth=parseInt(obj.offsetWidth);
	if (typeof obj.originalHeight=="undefined")obj.originalHeight=parseInt(obj.offsetHeight);
	obj.style.width=parseInt(obj.originalWidth*1.3)+"px";
	obj.style.height=parseInt(obj.originalHeight*1.3)+"px";
	window.resizeHeaderImageZoomNormal_timeout=setTimeout("resizeHeaderImageZoomNormal()",500);
}

function resizeHeaderImageZoomNormal() {
	clearTimeout(window.resizeHeaderImageZoomNormal_timeout);
	obj.style.width=parseInt(obj.originalWidth)+"px";
	obj.style.height=parseInt(obj.originalHeight)+"px";
}

function showoverlib(e, s) {
	e =  e || window.event;
	var o = document.getElementById("open");
	o.innerHTML = s;
	o.style.position = "absolute";
	o.style.left = e.clientX +  'px';
	o.style.top = document.body.parentNode.scrollTop + e.clientY  + 'px';	
	o.style.background = "#dedede";
	o.style.border = "solid 2px #000";
	o.style.padding = "10px";
	o.style.display = "block";
}

function hideOpen() {
	document.getElementById("open").style.display = "none";
}


function showDijtablazat(id) {
	var list = document.getElementById("dijtablazat").getElementsByTagName("ul");
	for (i=0;i<list.length;i++) {
		list[i].style.display = "none";
		list[i].previousSibling.firstChild.style.border = "none";
		list[i].previousSibling.firstChild.style.background = "#fff";
	}
	var obj = document.getElementById(id);
	var list = obj.getElementsByTagName("ul");
	list[0].style.display = "block";
	list[0].style.border = "1px solid #CCCCCC";
	obj.firstChild.firstChild.style.background = "#F0F0F0";
	obj.firstChild.firstChild.style.border = "1px solid #CCCCCC";
}

var myobject;
var id;
var mouseout;

function showInt(e, i, o) {
	myobject = o;
	id = i;
	myeventX = e.clientX;
	mouseout = 0;
	tid = window.setTimeout("showProduct(" + myeventX + ",'" + id + "')", 500);
}

function showProduct(myeventX, id) {
	window.clearTimeout(tid);
	if (mouseout == 0) {
		var o = document.getElementById("product_img");
		o.innerHTML = '<img src="'+id+'" />';
		o.style.left = myeventX + 20 + 'px';
		o.style.top = getRealTop(myobject) + 20 + 'px';	
		o.style.display = "block";
	}
}

function hideProduct() {
	mouseout = 1;
	document.getElementById("product_img").style.display = "none";
}

function getRealTop(el){
	var yPos = el.offsetTop;
	tempEl = el.offsetParent;
	while (tempEl != null) {
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}
	return yPos;
}
function openTariff() {
	window.open("tarifa.html", name="_blank", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=820, height=570");
}

function checkUserData(f, attr) {
	var db = 0;
	for(i=0;i<f.length;i++) {
		if(f.elements[i].getAttribute(attr)) {
			if(f.elements[i].value == "") {
				db++;
				document.getElementById(f.elements[i].getAttribute(attr)).innerHTML = "Kérjük adja meg!";
			} else {
				document.getElementById(f.elements[i].getAttribute(attr)).innerHTML = "";
			}
		}
	}
	return db;
}

function ckeckedRadio(rg) {
	var i = 0;
	while (i < rg.length && rg[i].checked == false) {	i++; }
	if (i < rg.length) return i+1;
	else return false;
}

var errorMsg = "Kérjük adja meg!";

function checkTransferData(f) {
	var db = 0;
	var dm = ckeckedRadio(f.delivery_mode);
	if (!dm) {
		document.getElementById(8).innerHTML = errorMsg;
		db++;
	} else if (dm == 1) {
		db += checkUserData(f, "required_trans");
		document.getElementById(8).innerHTML = "";
	} else {
		if (!ckeckedRadio(f.shop)) {
			document.getElementById(12).innerHTML = errorMsg;
			db++;
		} else {
			document.getElementById(12).innerHTML = "";
		}
		document.getElementById(8).innerHTML = "";
	}

	if (!ckeckedRadio(f.pay_mode)) {
		document.getElementById(11).innerHTML = errorMsg;
		db++
	} else document.getElementById(11).innerHTML = "";

	if (document.getElementById("date").value == "") {
		db++;
		document.getElementById(10).innerHTML = errorMsg;
	} else document.getElementById(10).innerHTML = "";

	return db;
}

function checkForm() {
	var f = document.getElementById("ordering");
	var lf = checkUserData(f, "required");
	if (document.getElementById("fm-billing").checked == true) lf += checkUserData(f, "required_billing");
	lf += checkTransferData(f);
	if (lf) alert("Hiányosan kitöltött űrlap!");
	var nr = document.getElementById("sz_db").value;
	var nr2 = document.getElementById("f_db").value;
	if (nr2 == 0) {  // csak sima szenya rendeles
		if (nr < 20 && document.getElementById("fm-mode").checked == true) {   //hazhozszallitas
			alert("Kérjük, legalább 20 db szendvicset válasszon a rendeléshez!");
			lf ++;
		} else if (document.getElementById("fm-mode-s").checked == true && nr == 0) {  // szemelyes atvetel
			alert("Kérjük, legalább 1 db szendvicset válasszon a rendeléshez!");
			lf++;
		}
	} else if ( nr2%49 != 0 ) {
		alert("Csak teljes doboz rendeléseket (49 db vagy annak többszörösét) áll módunkban elfogadni.");
		lf ++;
	}
	//getPrice();
	if (!szamlalo) alert("A megadott irányítószámhoz nem található szállítási díj.\nKérjen egyedi fuvardíjat!");
	if (query) {
		return false;
	}
	if (!lf) {
		document.getElementById("irsz").value = document.getElementById("delivery").value;
		f.submit(); 
	} else document.body.scrollIntoView(true);
}

var shopClosed = "Nyitvatartási időn kívüli átvételt, vagy házhoz szállítást\nkérjük egyeztessen a 06 1 267 9624 -es telefonszámon.\nNyitvatartással kapcsolatos információt Elérhetőségek menüpontban találhat";

function checkDate() {
	var d = document.getElementById("date");
	if (d.value != "") {
		var data = d.value.split("-");
		var h = document.getElementById("hour");
		var m = document.getElementById("min");
		var myDate=new Date();
		myDate.setFullYear(data[0],data[1]-1,data[2]);
		var today = new Date();
		var todayTime = String(checkTime(today.getHours()+1)) + String(checkTime(today.getMinutes())) ;
		var chosenTime = h.options[h.selectedIndex].value + m.options[m.selectedIndex].value;
		if  ( myDate < today || (String(myDate) == String(today) && todayTime > chosenTime) ) { ///mai nap valasztott ora es percenel korabbi idopont-e
			alert('Kérjük, legalább egy órával az átvétel előtt adja le megrendelését!');
			document.getElementById("date").value = "";
		}
		///// ha hazhozszallitas van
		if (document.getElementById("fm-mode").checked == true) {
			var day = myDate.getDay();
			if (day == 6 && h.options[h.selectedIndex].value > "14" || day == 0) {
				alert(shopClosed);
				d.value = "";
			}
		///// ha szemelyes atvetel
		} else if (document.getElementById("fm-mode-s").checked == true) {
			var optns = document.getElementsByName("shop");
			var i = 0;
			while (i<optns.length && optns[i].checked == false) {
				i++;
			}
			var obj;
			var sel = true;
			//// nyitvatartasi objektum letrehozasa, ha van kivalasztott elem
			if (i == optns.length) sel = false;
			else {
				switch (optns[i].value) {
					case "O":
						obj =  new shop(8,17,9,13,0,0);
						break;
					case "R":
						obj = new shop(8,18,8,14,0,0);
						break;
					case "B":
						obj = new shop(8,18,8,14,8,12);
						break;
				}
			}
			//// ha van kivalasztva
			if (sel) {
				var chosenHour = Number(h.options[h.selectedIndex].value);
				switch (myDate.getDay()) {
					case 0:
						if (chosenHour >= obj.sunday.close || chosenHour < obj.sunday.open) {
							alert(shopClosed);
							d.value = "";
						}
						break;
					case 6:
						if (chosenHour >= obj.saturday.close || chosenHour < obj.saturday.open) {
							alert(shopClosed);
							d.value = "";
						}
						break;
					default:
						if (chosenHour >= obj.weekday.close || chosenHour < obj.weekday.open) {
							alert(shopClosed);
							d.value = "";
						}
						break;
				}
			}
		}
	}
	saveSession();
}

function calcPrice() {
	var db = document.getElementById('paypieces').value;
	var irsz = document.getElementById('homeaddress_code').value;
	if (irsz > 1000 && db != "" && db >= 20) {
		var url = "?db=" + db + "&ker=" + irsz;
		httpGet(url, callb);
	}	
}

var szamlalo = true;
function callb(wr) {
	waitForIt();
	if (wr.responseText != "") document.getElementById("deliveramount").value = wr.responseText;
	else {
		if (szamlalo) alert("A megadott irányítószámhoz nem található szállítási díj.\nKérjen egyedi fuvardíjat!");
		szamlalo = false;
	}
}

function op_win() {
	var irsz = document.getElementById('fm-postcode2').value;
	var db = Number(document.getElementById('sz_db').value) + Math.floor(Number(document.getElementById('f_db').value)/49)*25;
	var url = (irsz > 1000 && db >= 20)?"/tarifa/tarifa.php?db="+db+"&ker="+irsz:"/tarifa/tarifa.php";
	window.open(url, name="_blank", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=820, height=650"); 
	return false;
}

function getPrice() {
	var irsz = document.getElementById('fm-postcode2').value;
	var db = Number(document.getElementById('sz_db').value) + Math.floor(Number(document.getElementById('f_db').value)/49)*25;
	var url = "?l1=webstore&l2=plug_webstore&l3=calculatePrice&db="+db+"&irsz="+irsz;
	if (irsz != "") httpGet(url, getPriceCallBackFunction);
}

function getPriceCallBackFunction(wr) {
	waitForIt();
	switch (wr.responseText) {
		case "1": 
			document.getElementById("delivery").value = "0";
			szamlalo = true;
			break;
		case "2":
			if (szamlalo) alert("A megadott irányítószámhoz nem található szállítási díj.\nKérjen egyedi fuvardíjat!");
			szamlalo = false;
			document.getElementById("delivery").value = "0";
			break;
		default:
			document.getElementById("delivery").value = wr.responseText;
			szamlalo = true;
			break;
	}
	document.getElementById('sum').value = Number(document.getElementById('f_price').value) + Number(document.getElementById('sz_price').value) + Number(document.getElementById("delivery").value);
}

function httpGet(url, callback) {
	query++;
	if (order) document.getElementById("registrationSubmit").value = "Kérem várjon..."
	new Ajax.Request( url, {
		method: 'get',
		onSuccess: function(wr) {
			query--;
			callback(wr);
		}
	});
}

function setBackgroundColor(obj, color) {
	obj.style.background = color;
}

function showHideData() {
	var o = document.getElementById("fm-delivery_mode");
	if (o.checked == true) {
		document.getElementById("delivery1").style.display = document.getElementById("delivery2").style.display = "block";
	} else {
		document.getElementById("delivery1").style.display = document.getElementById("delivery2").style.display = "none";
	}
}

var order = false;
var published = true;

function positionDiv() {
	var div = document.getElementById("left_cont");
	var div2 = document.getElementById("right_cont");
	if (order) {
		document.getElementById("cart").style.display = "block";
	//	document.getElementById("news").style.display = "none";
		document.getElementById("flashcontent").style.display = "none";
		getPrice();
		saveSession();
	}
	if (!published) document.getElementById("news").style.display = "none";
	if (navigator.userAgent.indexOf("MSIE 6.0") != -1) {
		div.style.position = "absolute";
		div2.style.position = "absolute";
		window.onscroll = scrollEvent;
	}
}

function scrollEvent() {
	document.getElementById("left_cont").style.top = document.documentElement.scrollTop+'px';
	document.getElementById("right_cont").style.top = document.documentElement.scrollTop+'px';
}

function minimise(o) {
	var next = o.nextSibling;
	while(next.nodeType == 3) {
		next = next.nextSibling;
	}
	next.style.display = (next.style.display == "none")?"block":"none";
}

function close_(o) {
	var parent = o.parentNode;
	while(parent.nodeType == 3) {
		parent = parent.parentNode;
	}
	parent.style.display = "none";
}


function saveSession() {
	var o = document.getElementById("ordering");
	var s;
	var url = "?l1=webstore&l2=plug_webstore_product&l3=main&form=true";
	for(i=0;i<o.length;i++) {
		if (s != "") s+="&";
		switch (o[i].type){
			case "select-one":
				s += o[i].id + "=" + o[i].options[o[i].selectedIndex].value;
				break;
			case "text":
				if (o[i].name == "date") s+= "orderdate="+o[i].value;
				else s+=o[i].name+"="+o[i].value;
				break;
			case "checkbox":
				if (o[i].checked == true) {
					s+=o[i].name+"="+'checked="checked"';
					document.getElementById('tx').style.display = 'block';
					document.getElementById('bn').style.display = 'block';
					document.getElementById('ba').style.display = 'block';
				}
				break;
			case "radio":
				if (o[i].checked == true) {
					switch (o[i].value) {
						case "R":
							s+= "shop="+'checked="checked"';
							break;
						case "O":
							s+= "shop2="+'checked="checked"';
							break;
						case "B":
							s+= "shop3="+'checked="checked"';
							break;
						case "sza":
							s+= "delivery_mode2="+'checked="checked"';
							document.getElementById('shop').style.display = 'block';
							break;
						case "hsz":
							s+= "delivery_mode="+'checked="checked"';
							document.getElementById('deliveryname').style.display = 'block';
							document.getElementById('address').style.display = 'block';
							break;
						case "kp":
							s+= "pay_mode="+'checked="checked"';
							break;
						case "ut":
							s+= "pay_mode2="+'checked="checked"';
							break;
					}
				}
				break;
			case "textarea":
				s+=o[i].name+"="+o[i].value;
				break;
			case "hidden":
				break;
			default:
				break;
		}
	}
	nzm.http.post(url, s, r,"application/x-www-form-urlencoded");
}

function r(wr) {

}

function getOrder(id) {
	if ($(''+id).firstChild != null) closeDiv(id);
	else {
		var url = "?l1=webstore&l2=plug_webstore_order&l3=main&type=info&id=" + id;
		$('text_'+id).innerHTML = 'Betöltés folyamatban';
		httpGet(url, cb);
	}
}

function cb(wr) {
	var locdiv;
	var obj = eval('('+wr.responseText+')');
	var div = document.getElementById(obj.id);

	$('text_'+obj.id).innerHTML = '';
	div.style.display = "block";
	newdiv = document.createElement("div");
	locdiv = div.appendChild(newdiv);
	locdiv.className = "close";
	locdiv.innerHTML = '<img src="sablons/cms/pics/close.gif" onclick="closeDiv('+obj.id+')" />';
	for (var i in obj) {
		if (i != "id") {
			if (i == "table0") {
				newdiv = document.createElement("div");
				locdiv = div.appendChild(newdiv);
				locdiv.className = "t_header";
									locdiv.innerHTML = '<table><tr><td class="long">Termék</td><td>Mennyiség</td><td>Egységár</td><td>Összesen</td></tr></table>';
			}
			newdiv = document.createElement("div");
			locdiv = div.appendChild(newdiv);
			locdiv.className = i;
			locdiv.innerHTML = obj[i];
		}
	}
	var r = document.getElementById("right");
	var c = document.getElementById("center");
	var o = document.getElementById("main_order_cont");
	r.style.height = c.style.height = (o.offsetHeight > r.offsetHeight)?o.offsetHeight+'px':r.offsetHeight+'px';
}

function closeDiv(id) {
	var div = document.getElementById(id);
	while (child = div.firstChild) {
		div.removeChild(child);
	}
	div.style.display = "none";
}

function orderingRule(col, rule) {
	var url = "?l1=webstore&l2=plug_webstore_order&l3=main&type=info&col="+col+"&rule="+rule;
	nzm.http.get(url, makeOrdering);
}

function makeOrdering(wr) {
	var obj = eval('('+wr.requester.responseText+')');
	var elems = document.getElementById("ord_cont");
	var index = 0; 
	for (var i=0;i<elems.childNodes.length;i++) {
		if (elems.childNodes[i].nodeType != 3) {
			if (index > 0) {
				t = 'elem'+(index-1);
				elems.childNodes[i].innerHTML = obj[t];
			}
			index++;
		}
	}
}

function waitForIt() {
	if (order) document.getElementById("registrationSubmit").value = (query)?"Kérem várjon...":"Rendelés elküldése";
}
