// -------------------------------------------------------------------------------------
var domQueue = new Array();
var domReady = false;
// -------------------------------------------------------------------------------------
document.observe("dom:loaded", function() {
  domReady==true;
  for (var a=0;a<domQueue.length;a++){
	var func = domQueue[a];
	try{
		eval (func);
	} catch (err) {
		addLoadEvent(func);
	}
  }
});
// -------------------------------------------------------------------------------------
function addLoadEvent(func) {	// attach events onload 
	if (!func) return false;
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func;
		}
	}
}
// -------------------------------------------------------------------------------------
function addUnLoadEvent(func) {	// attach events onload 
	if (!func) return false;
	var oldunonload = window.onunload;
	if (typeof window.onunload != 'function'){
    	window.onunload = func;
	} else {
		window.onunload = function(){
		oldunonload();
		func();
		}
	}
}
// -------------------------------------------------------------------------------------

function addDomLoadEvent(func) {	// attach events onload 
	if (!func) return false;
	if (domReady==true) {
		eval (func);
	} else {
		domQueue.push(func);
	}
}

//-------------------------------------------------------------

function set_errorfiled(name,message){
 var el = document.getElementById(name);
 $(el).addClassName('formError');
 var em = document.createElement('em');
 em.className="err";
 em.innerHTML = " "+message;
 el.parentNode.appendChild(em);
}
//-------------------------------------------------------------
function SetCookie(sName, sValue,sTime)
{
    document.cookie = sName + "=" + escape(sValue) + "; path=/";
}
//-------------------------------------------------------------
function getCookie(name){
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1){
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else{
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1){
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

//-------------------------------------------------------------
function api(obj, action, data, callback, delay){
	window.setTimeout (function() {
		var params='obj='+obj+'&action='+action;
		if(data) {
			params +="&"+ data;
		}
		if (callback==null) callback = loadContent;
		var def = Math.random();
		params+='&t='+def;
		var url='../api.php';
		var MyAjax = new Ajax.Request(
			url,
			{
				encoding: 'UTF-8',
				method: 'post',
				parameters: params,
				onComplete: callback
			});
	}, delay*1000);
}
//-------------------------------------------------------------
function loadContent(received) {
	try {
		if (received.responseXML){
			var xmldoc = received.responseXML; 
			if (xmldoc.getElementsByTagName("JavaScript")){
				var js = xmldoc.getElementsByTagName("JavaScript")[0].firstChild.nodeValue;
				if (js) eval(js);				
			}
		} else if (received.responseJSON) {
			var data = eval(received.responseJSON);
		}
	} catch (err){
		debug(err);
	}
}
//-------------------------------------------------------------
function debug(text){
	alert (text);
}
//-------------------------------------------------------------
var fpq = false;
function filter(page) {
	if (fpq ==true) return;
	var data = 'code=' + $('code').value;
	data += '&name=' + $('name').value;
	data += '&category=' + $('category').value;	
	if (page) data += '&page=' + page;
	api('orders','',data,buildTable);
	fpq = true;
	$('productloader').update('<img src="'+IMG_path+'ajax-loader.gif" alt="Loading..."/>');
}

//-------------------------------------------------------------
function buildTable(received) {
	$('productloader').update();
	try {
		if (received.responseJSON) {
			var data = eval(received.responseJSON);
			var pages = data.pages;
			var currPage = data.current_page;
			var products = data.products;
			if (!products) { 
				alert (TXT_No_products) ;
				return;
			} 
		}
		var tbd = $('tbd');
		var p=new Array;
		var pl = products.length;
		if (pl==0) {
			p.push('<tr>');
			p.push('<td></td>');
			p.push('<td colspan="3">'+TXT_No_products+'</td>');
			p.push('</tr>');
		} else {
			//var class = '';
			for (var a=0;a<pl;a++) {
				if (a%2) classname = ' class="odd"'; else classname = '';
				p.push('<tr'+classname+'>');
				p.push('<td>'+products[a].code+'</td>');
				p.push('<td style="padding: 0 3px">'+products[a].name+'</td>');
				p.push('<td style="padding: 0 3px">'+products[a].category+'</td>');
				p.push('<td style="padding: 0 3px">'+products[a].price+'</td>');
				p.push('<td style="padding: 0 3px">'+products[a].currency+'</td>');
				p.push('<td><a href="#" onclick="addToCart(\''+products[a].code+'\',\''+addSlashes(products[a].name.replace(/\"/g,'&quot;'))+'\','+products[a].qty+','+products[a].price+',\''+products[a].currency+'\'); return false;">'+TXT_Add+'</a></td>');
				p.push('</tr>');
			}
		}
		tbd.update(p.join('\n'));
		var pg = new Array();
		if (pages>1) {
			for (var b=0;b<pages;b++) {
				if (currPage==b+1) {
					pg.push('<span class="currpage">'+(b+1)+'</span> ');
				}else {
					pg.push('<a href="javascript:void(null)" onclick="filter('+(b+1)+')">'+(b+1)+'</a> ');
				}
			}
		}
		pg.push('');
		$('pgng').innerHTML = pg.join('');
	} catch (err){
		debug(err);
	}
	fpq = false;
}
//-------------------------------------------------------------
function addSlashes(str) {
str=str.replace(/\\/g,'\\\\');
str=str.replace(/\'/g,'\\\'');
str=str.replace(/\"/g,'\\"');
str=str.replace(/\0/g,'\\0');
return str;
}
//-------------------------------------------------------------
function stripSlashes(str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\0/g,'\0');
str=str.replace(/\\\\/g,'\\');
return str;
}
//-------------------------------------------------------------
var Cart = {
	init: function () {
		var cartData = getCookie('cart');
		this.products = [];
		if (cartData){
			cartData = cartData.split("\n");
			for(a=0; a<cartData.length;a++){
				if (cartData[a]=='') continue;
				rr = cartData[a].split("|");
				this.products.push({
					'id':rr[0],
					'name':rr[1],
					'qty':rr[2],
					'price':rr[3],
					'currency':rr[4]
					});
			}
		}
	},
	show: function() {
		return this.products;
	},
	add: function (id,name,max,price,currency) {
		var exist = false;
		for(a=0; a<this.products.length;a++){
			if (this.products[a].id==id){
				this.products[a].qty = parseInt(this.products[a].qty) + 1;
				this.products[a].price = price;
				this.products[a].currency = currency;
				exist = true;
			}
		}
		if (!exist){
			this.products.push({
				'id':id,
				'name':name,
				'qty':1,
				'max':max,
				'price':price,
				'currency':currency
			});
		}
		this.save();
	},
	edit: function (id,qty,name,price,currency) {
		var exist = false;
		for(a=0; a<this.products.length;a++){
			if (this.products[a].id==id){
				this.products[a].qty = qty;
				this.products[a].price = price ;
				this.products[a].currency = currency ;
				exist = true;
			}
		}
		if (!exist && qty>0){
			this.products.push({
				'id':id,
				'name':name,
				'qty':qty,
				'price':price,
				'currency':currency
			});
		}
		var newProducts = [];
		for(a=0; a<this.products.length;a++){
			if (this.products[a].qty==0) continue;
			newProducts.push(this.products[a]);
		}
		this.products = newProducts;
		this.save();
	},
	del: function (id) {
		if (confirm(TXT_Remove_product)){
			this.edit(id,0);
			this.save();
		}
	},
	save: function() {
		var cartData = [];
		for(a=0; a<this.products.length;a++){
			cartData.push(this.products[a].id+'|'+this.products[a].name+'|'+this.products[a].qty+'|'+this.products[a].price+'|'+this.products[a].currency);
		}
		var newCart = cartData.join("\n");
		SetCookie('cart',newCart);
		this.buildOrderTable();
		if ($('orderCont')) 
			this.prepareSend();
	},
	buildOrderTable: function() {
		var html = [];
		html.push('<table style="width:100%">');
		html.push('<thead><tr><th>#</th><th>'+TXT_Name+'</th><th style="width:25px;">'+TXT_Qty+'</th><th style="width:25px;">'+TXT_Price+'</th><th style="width:13px;"></th></tr></thead><tbody>');
		if (this.products.length>0){
			for(a=0;a<this.products.length;a++) {
				html.push('<tr');
				html.push(a%2?' class="odd"':'');
				html.push('><td>');
				html.push(a+1);
				html.push('</td><td title="'+this.products[a].name+'">');
				html.push(this.products[a].name.substring(0,30)+'...');
				html.push('</td><td>');
				html.push('<a href="#" onclick="Cart.editQty('+this.products[a].id+');return false;">');
				html.push(this.products[a].qty);
				html.push('</a>');
				html.push('</td><td>');
				html.push(this.products[a].price);
				html.push('</td><td>');
				html.push(this.products[a].currency);
				html.push('</td><td>');
				html.push('<a href="#" onclick="Cart.del('+this.products[a].id+');return false;"><img src="'+IMG_path+'del.gif" alt="Del" /></a>');
				html.push('</td></tr>');
				}
		} else {
				html.push('<tr><td colspan="2">'+TXT_No_products+'</td></tr>');
			
		}
		html.push('</tbody></table>');
		if (this.products.length>0){
			html.push('<div><a href="#" onclick="Cart.clear();return false;">'+TXT_Clear+'</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" onclick="Cart.submit();return false;">'+TXT_Submit+'</a></div>');
		}
		$('orderbox').update(html.join('\n'));
	},
	clear: function(confirmed){
		if (confirmed || confirm(TXT_Clear_cart)){
			this.clearCart();
		}
	},
	clearCart: function(confirmed){
		var newCart = '';
		this.products = [];
		SetCookie('cart',newCart);
		var html = [];
		html.push('<table style="width:100%">');
		html.push('<thead><tr><th>#</th><th>'+TXT_Name+'</th><th>'+TXT_Qty+'</th><th>'+TXT_Price+'</th><th style="width:13px;"></th></tr></thead><tbody>');
		html.push('<tr><td colspan="2">'+TXT_No_products+'</td></tr>');
		html.push('</tbody></table>');
		$('orderbox').update(html.join('\n'));
	},
	submit: function(){
		this.prepareSend();
	},
	submitOrder: function(){
		var data = [];
		for(a=0;a<this.products.length;a++) {
			data.push('p['+a+']='+this.products[a].id);
			data.push('q['+a+']='+this.products[a].qty);
			data.push('pr['+a+']='+this.products[a].price);
			data.push('cr['+a+']='+this.products[a].currency);
		}
		this.prepareSendClose();
		api('order','submit',data.join('&'));
	},
	editQty: function(id) {
		html = [];
		html.push('<div id="cartedit">');
		html.push('</div>');
		html.push('</div>');
	},
	prepareSend: function(){
		var totalPrice = 0;
		html = [];
		html.push('<div id="orderContInner">');
		html.push('<h2>'+TXT_Your_order+'</h2>');
		html.push('<table style="width:100%">');
		html.push('<thead><tr><th>#</th><th>'+TXT_Code+'</th><th>'+TXT_Name+'</th><th style="width:25px;">'+TXT_Price+'</th><th style="width:25px;">'+TXT_Qty+'</th><th style="width:25px;">'+TXT_Price+'</th><th style="width:13px;"></th></tr></thead><tbody>');
		if (this.products.length>0){
			for(a=0;a<this.products.length;a++) {
				html.push('<tr');
				html.push(a%2?' class="odd"':'');
				html.push('><td>');
				html.push(a+1);
				html.push('</td>');
				html.push('<td>');
				html.push(this.products[a].id);
				html.push('</td><td title="'+this.products[a].name+'">');
				html.push(this.products[a].name);
				html.push('</td><td class="prc">');
				html.push(this.products[a].price);
				html.push('</td><td>');
				html.push('<a href="#" onclick="Cart.editQty('+this.products[a].id+');return false;">');
				html.push(this.products[a].qty);
				html.push('</a>');
				html.push('</td><td class="prc">');
				html.push(this.products[a].price*this.products[a].qty);
				html.push('</td><td class="prc">');
				html.push(this.products[a].currency);
				html.push('</td><td>');
				html.push('<a href="#" onclick="Cart.del('+this.products[a].id+');return false;"><img src="'+IMG_path+'del.gif" alt="Del" /></a>');
				html.push('</td></tr>');
				totalPrice = totalPrice + (this.products[a].price*this.products[a].qty);
			}
		}
		html.push('</table>');
		html.push('</div>');
		html.push('<div style="text-align:center"><input type="button" value="'+TXT_Submit+'"  onclick="Cart.submitOrder()" /> <input type="button" value="'+TXT_Close+'" onclick="Cart.prepareSendClose()" /> </div>');

		if ($('orderCont')) {
			var orderCont = $('orderCont')
		} else {
			var orderCont = document.createElement("div");
			orderCont.id="orderCont";
			document.body.appendChild(orderCont);
		}
		orderCont.update(html.join('\n'));
	},
	prepareSendClose: function(){
		if ($('orderCont')) {
			$('orderCont').remove();
		}
	}
}
Cart.init();
function addToCart(id,name,maxqty,price,currency) {
	Cart.add(id,name,1,price,currency);
	var cc = Cart.show();
}
/*
function asdasd(){
alert(maxqty);
	var qty = 1;
	var cart = getCookie('cart');
	var products = [];
	if (cart) {
		var cartItems = cart.split("\n");
		for(a=0; a<cartItems.length;a++){
			rr = cartItems[a].split("|");
			products.push({
				'id':rr[0],
				'name':rr[1],
				'qty':rr[2]
				});
		}
	} else {
		var cartItems = [];
	}
	if (products[id]) products[id].qty += qty;
	else {
		products.push({
			'id':id,
			'name':name,
			'qty':qty
		});
	}
	var newCartItems = [];
	for (a=0;a<products.length;a++) {
		newCartItems.push(products[a].id,products[a].name,products[a].qty);
	}
	newCart = newCartItems.join("\n");
	SetCookie('cart',newCart);
	for (a=0;a<products.length;a++) {
		alert (products[a].name);
	}
	//alert('id: '+id+"\nname: "+name+'\nmaxQty: '+maxqty);
	return false;
}
*/
function setHeight(el){
	var elements = $$(el);
	var maxHeight = 200;
	var currElementHeight;
	for (a=0; a<elements.length;a++) {
		currElementHeight = elements[a].getHeight();
		if (currElementHeight>maxHeight) maxHeight = currElementHeight;
	}
	for (a=0; a<elements.length;a++) {
		elements[a].style.height = (maxHeight-10)+"px";
	}
	
}
//-------------------------------------------------------------
function toggleLangBar() {
	$('chnglngul').toggle();
	return false
}
//-------------------------------------------------------------
function createMarker(object) {
  var marker = new GMarker(new GLatLng(object.lat, object.lng));
  if (object.id>0){
	var html  = ['<div class="gminfo">',
			   '<a href="?view=',object.id,'">',
			   '<b>', object.name, '</b>',
			   '<br />',object.city,'<br />',
			   '<em style="font-weight: normal">',object.address,'</em>',
			   '</a>',
			   '</div>'
			   ].join('');
	} else {
	var html  = ['<div class="gminfo">',
			   '<b>', object.name, '</b>',
			   '<br />',object.city,'<br />',
			   '<em style="font-weight: normal">',object.address,'</em>',
			   '</div>'
			   ].join('');
	}
		GEvent.addListener(marker, 'click', function(e) {
			marker.html = html ;
		    marker.openInfoWindowHtml(marker.html);
			//stopClick();
			//Event.stop(e);
		});
  return marker;
}
//-------------------------------------------------------------
function sendContact(forma){
	api('contact','submit',forma.serialize());
}
//-------------------------------------------------------------


