// JavaScript Document
var category;
var order = 'position asc';
var action = '';
var maincontent = 'content';
var _search = '';
var _searchtab = '';

var addadlink = '<a class="addNoticeBut" title="'+langStr('add_ad_front')+'" href="javascript:adduserad();">'+langStr('add_ad_front')+'</a>';
var hideadlink = '<a class="addNoticeBut" title="'+langStr('hide_form')+'" href="javascript:hideuseradsform();">'+langStr('hide_form')+' (X)</a>';

var newscat_action = 'newscat';
var adscat_action = 'adscat';
var kursycat_action = 'kursycat';
var search_action = 'searchaction';
var sondaid;

var reviewCallback = {
    hello: function(result) {
		alert(result);
    },
	jmpnext: function(result) {
		activatepagination();
    },
	jmpprev: function(result) {
		activatepagination();
    },
	jmpfirst: function(result) {
		activatepagination();
    },
	jmplast: function(result) {
		activatepagination();
    },
	/*========= engine =============*/
	listcategory: function(result) {
		if (hideloading(result)) return;
		$(maincontent).innerHTML = result;
		setupZoom();
    },
	searchservice: function(result) {
		if (hideloading(result)) return;
		$(maincontent).innerHTML = result;
    },
	adduserad: function(result) {
		if (hideloading(result)) return;
		alertmsg('adduserad', result)
    },
	doaddads: function(result) {
		if (hideloading(result)) return;
		if (result != 0) alertmsg('alert', result);
		else {
			$('adduserad').innerHTML = '<span class="addNoticeThx">'+langStr('thx_ad_added')+'</span>';
			$('userformcontrols').innerHTML = addadlink;
		}
    },
	mygetmultimedia: function(result) {
		if (hideloading(result)) return;
		if (result && result != '') document.location = result;
    },
	sendopinion: function(result) {
		if (hideloading(result)) return;
		if (isNaN(result) && result.indexOf('*') == -1) alertmsg('sonda'+sondaid+'info', result);
		else {
			var expiredays = result.substr(result.lastIndexOf('*') + 1);
			var exdate=new Date();
			if (expiredays > 0){
				exdate.setDate(parseInt(parseInt(exdate.getDate())+parseInt(expiredays)));
			}
			else exdate.setDate(parseInt(parseInt(exdate.getDate())-1));
			//document.cookie = "sonda"+result.substr(0, result.lastIndexOf('*'))+"=Sonda;expires="+exdate.toGMTString();
			getopinions(result.substr(0, result.lastIndexOf('*')));
		}
    },
	getopinions: function(result) {
		if (hideloading(result)) return;
		$('sonda'+sondaid+'div').innerHTML = result;
    },
	addtocart: function(result) {
		if (hideloading(result)) return;
		if ($('cartinfo')) {
			if (result.indexOf('href="') != -1)
				$('cartinfo').innerHTML = addto;
			else $('cartinfo').innerHTML = result;
			if ($('dropContent')) $('dropContent').innerHTML = result;
		}
		else if ($('dropContent')) $('dropContent').innerHTML = result;
		if ($('shoppingcart'))
			showCart();
    },
	addtoclipboard: function(result) {
		if (hideloading(result)) return;
		if ($('clipboard')) $('clipboard').innerHTML = result;
    },
	addtocompare: function(result) {
		if (hideloading(result)) return;
		if ($('comparison')) $('comparison').innerHTML = result;
    },
	addtolastviewed: function(result) {
		if (hideloading(result)) return;
		if ($('lastviewed')) $('lastviewed').innerHTML = result;
    },
	cartremove: function(result) {
		if (hideloading(result)) return;
		if ($('shoppingcart'))
			showCart();
    },
	clipboardremove: function(result) {
		if (hideloading(result)) return;
		if ($('shoppingcart'))
			showClipboard();
    },
	dcartremove: function(result) {
		if (hideloading(result)) return;
		if ($('dropContent')) $('dropContent').innerHTML = result;
    },
	addtocartBlock: function(result) {
		if (hideloading(result)) return;
		showattributeBlock();
		if ($('attributeloaderContainer') && result) $('attributeloaderContainer').innerHTML = result;
    },
	showCart: function(result) {
		if (hideloading(result)) return;
		if ($('shoppingcart')) $('shoppingcart').innerHTML = result;
    },
	showClipboard: function(result) {
		if (hideloading(result)) return;
		if ($('shoppingcart')) $('shoppingcart').innerHTML = result;
    },
	logowanie: function(result) {
		if (hideloading(result)) return;
		
		if (result == 'main') document.location = loc;
		else if (result != 0 && result != 'koszyk' && $('info') && $('loginForm') && $('loginForm').innerHTML.indexOf('logowanieemail') > 0) alertmsg('info', result);
		else if (result != 0 && result != 'koszyk' && $('logowaniealert')) alertmsg('logowaniealert', result);
		else if (result == 0 && (!$('loginForm') || $('loginForm').innerHTML.indexOf('logowanieemail') <= 0)) window.location.reload();
		else if (result == 0 && $('loginForm') && $('loginForm').innerHTML.indexOf('logowanieemail') > 0) window.location.reload();
		else if (result == 'koszyk') document.location = loc+loc_address;;
    },
	logout: function(result) {
		if (hideloading(result)) return;
		document.location = loc;
    },
	registerClient: function(result) {
		if (hideloading(result)) return;
		if (result != 0 && result != 'koszyk' && $('info')) alertmsg('info', result);
		else if (result == 0) {
			$('info').innerHTML = ' ';
			document.location = loc;
		}
		else if (result == 'koszyk') document.location = loc+loc_address;
    },
	restorePassword: function(result) {
		if (hideloading(result)) return;
		if ($('info')) alertmsg('info', result);
    },
	setClientsAddress: function(result) {
		if (hideloading(result)) return;
		if (result != 0 && $('info')) alertmsg('info', result);
		else if (result == 0) {
			$('info').innerHTML = ' ';
			document.location = loc+loc_confirm;
		}
    },
	setPayment: function(result) {
		if (hideloading(result)) return;
		if (result != 0 && $('info')) alertmsg('info', result);
		else if (result == 0) {
			document.location = loc+loc_payment;
		}
    },
	updateClient: function(result) {
		if (hideloading(result)) return;
		if ($('info')) alertmsg('info', result);
    },
	checkCheckout: function(result) {
		if (hideloading(result)) return;
		if (result.indexOf('http:') != 0) alert(result);
		else if (result.indexOf('http:') == 0) {
			document.location = result;
		}
    },
	advancedSearch: function(result) {
		if (hideloading(result)) return;
		if (result.indexOf('http:') != 0 && $('info')) alertmsg('info', result);
		else if (result.indexOf('http:') == 0) {
			document.location = result;
		}
    },
	addComment: function(result) {
		if (hideloading(result)) return;
		productComments(result);
	},
	productComments: function(result) {
		if (hideloading(result)) return;
		if ($('commentsContainer')) $('commentsContainer').innerHTML = result;
	},
	filterproducts: function(result) {
		if (hideloading(result)) return;
		if ($('productchoosercontainer')) $('productchoosercontainer').innerHTML = result;
    },
	/*========= wysyłanie mejla ====*/
	sendEmail: function(result) {
		if (hideloading(result)) return;
		if (result.indexOf('error') == -1){
			document.getElementById('info').innerHTML = result;
			document.getElementById('fld1').value = '';
			document.getElementById('fld2').value = '';
			document.getElementById('fld3').value = '';
			document.getElementById('fld4').value = '';
			document.getElementById('fld5').value = '';
			document.getElementById('fld6').value = '';
		}
		else document.getElementById('info').innerHTML = result.replace('|error', '');
    },
	setEvent: function(result) {
		if (hideloading(result)) return;
		if (result != 0 && result.indexOf(':') == -1 && $('info')) alertmsg('info', result);
		else {
			$('info').innerHTML = '<font color="green">'+langStr('event_added')+'</font>';
			for(var i = 0; i < $('scheduleForm').elements.length; i++) {
        		if ($('scheduleForm').elements[i].id) {
					$('scheduleForm').elements[i].value = '';
				}
    		}
			var tbl1 = result.split('|');
			scheduler.addEvent({
				id: tbl1[0],
				start_date: tbl1[1],
				end_date: tbl1[2],
				type:"0"
			});
		}
    },
	addcoment: function(result) {
		if (hideloading(result)) return;
		if (result && $('info')) alertmsg('info', result);
    },
    nodeList: []
}

var main = new Main(reviewCallback);
var baza = new Baza(reviewCallback);
var engine = new Engine(reviewCallback);
var ads = new Ads(reviewCallback);
var remoteEmail = new Email(reviewCallback);

//============================obsługa programu===================================================
function hello(ret){
	main.hello(ret);
}
function jmpnext(){
	showloading();
	baza.jmpnext();
}
function jmpprev(){
	showloading();
	baza.jmpprev();
}
function jmpfirst(){
	showloading();
	baza.jmpfirst();
}
function jmplast(){
	showloading();
	baza.jmplast();
}
function getPayload(form){
	var payload = new Object();
    for(var i = 0; i < form.elements.length; i++) {
        if (form.elements[i].id) {
			payload[form.elements[i].id] = form.elements[i].value;
		}
    }
	return payload;
}
function getPayloadName(form){
	var payload = new Object();
    for(var i = 0; i < form.elements.length; i++) {
        if (form.elements[i].name) {
			payload[form.elements[i].name] = form.elements[i].value;
		}
    }
	return payload;
}
function setY(){
	var ns = (navigator.appName.indexOf("Netscape") != -1);
	var d = document;
	var pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? 
	document.documentElement.scrollTop : document.body.scrollTop;
	return pY;
}
function showloading(txt){
	if ($('loader')) {
		if (txt) $('loadertxt').innerHTML = txt;
		else $('loadertxt').innerHTML = langStr('wait');
		
		$('loader').style.marginTop = parseInt(setY()-10)+'px';
		$('loader').style.visibility = 'visible';
	}
}
function hideloading(result){
	if (result && result.indexOf('force_logout') != -1) {
		document.location = loc;
		return 1;
	}
	if ($('loader')) {
		$('loader').style.visibility = 'hidden';
		$('loader').style.marginTop = -1000+'px';
	}
	return 0;
}
function showattributeBlock(){
	if ($('attributeloader')) {
		$('attributeloader').style.marginTop = parseInt(setY()-50)+'px';
		$('attributeloader').style.visibility = 'visible';
	}
}
function hideattributeBlock(){
	if ($('attributeloader')) $('attributeloader').style.visibility = 'hidden';
}
function activatepagination(){
	if (action == search_action) {
		searchservice(order);
	}
	else {
		//alert(category+' '+action.substr(0, action.indexOf('cat'))+' '+order);
		listcategory(category, action.substr(0, action.indexOf('cat')), order);
	}
}
/*====== engine ===========*/
function listcategory(cat, tab, ord){
	showloading();
	order = ord;
	engine.listcategory(cat, tab, ord);
}
function searchservice(ord){
	showloading();
	order = ord;
	engine.searchservice(_searchtab, _search, ord, 1);
}
function hideuseradsform(){
	$('userformcontrols').innerHTML = addadlink;
	$('adduserad').innerHTML = '';
}
function adduserad(){
	$('userformcontrols').innerHTML = hideadlink;
	showloading();
	engine.adduserad();
}
function doadduserad(form){
	showloading();
	var payload = getPayload(form);
	payload['resources'] = getresources(form);
	payload['content'] = payload['adcontent'];
	if (!validatemail($('email').value)){
		$('alert').innerHTML = langStr('invalid_email');
		$('email').focus();
		return;
	}
	ads.doaddads(payload);
}
function getresources(form){
	var string = '';
	for(var i = 0; i < form.elements.length; i++) {
        if (form.elements[i].id && form.elements[i].id.indexOf('check_') != -1 && form.elements[i].checked) {
			if (string == '') string = form.elements[i].value;
			else string += '|'+form.elements[i].value;
		}
    }
	return string;
}

function sortcombo(){
	if (action == search_action) searchservice($('sortselect').value);
	else listcategory(category, action.substr(0, action.indexOf('cat')), $('sortselect').value);
}
function addtocart(form, id){
	if ($('cartinfo')) $('cartinfo').innerHTML = ' ';
	showloading();
	var payload = new Object();
	if (!id) payload = getPayload(form);
	else {
		payload['id'] = id;
		payload['quantity'] = 1;
	}
	engine.addtocart(payload, 1);
}
function addtoclipboard(id){
	showloading();
	engine.addtoclipboard(id);
}
function addtocompare(id){
	showloading();
	engine.addtocompare(id);
}
function addtolastviewed(id){
	showloading();
	engine.addtolastviewed(id);
}
function cartremove(id, val){
	showloading();
	engine.cartremove(id, val);
}
function clipboardremove(id){
	showloading();
	engine.clipboardremove(id);
}
function dcartremove(id){
	showloading();
	engine.dcartremove(id);
}
function updatecart(form){
	if ($('cartinfo')) $('cartinfo').innerHTML = ' ';
	showloading();
	engine.addtocart(getPayload(form), 0);
}
function addtocartBlock(id, insert, params){
	showloading();
	engine.addtocartBlock(id, insert, params);
}
function showCart(){
	showloading();
	engine.showCart();
}
function showClipboard(){
	showloading();
	engine.showClipboard();
}
function checklogowanie(form, act){
	showloading();
	engine.logowanie(getPayload(form), act);
}
function logout(){
	showloading();
	engine.logout();
}
function registerClient(form, act){
	showloading();
	engine.registerClient(getPayload(form), act);
}
function restorePassword(form){
	showloading();
	$('info').innerHTML = ' ';
	engine.restorePassword(getPayload(form));
}
function setClientsAddress(form){
	var payload = getPayload(form);
    for(var i = 0; i < form.elements.length; i++) {
        if (form.elements[i].name && form.elements[i].name == 'transport' && form.elements[i].checked) {
			payload[form.elements[i].name] = form.elements[i].value;
		}
    }
	showloading();
	engine.setClientsAddress(payload);
}
function setPayment(form){
	showloading();
	engine.setPayment(getPayload(form));
}
function updateClient(form){
	showloading();
	engine.updateClient(getPayload(form));
}
function checkCheckout(url){
	showloading();
	engine.checkCheckout(url);
}
function advancedSearch(form){
	showloading();
	engine.advancedSearch(getPayload(form));
}
function addComment(form){
	showloading();
	engine.addComment(getPayload(form));
}
function productComments(id){
	showloading();
	engine.productComments(id);
}
/*====== nesletter=========*/
function checknewsletter(){
	if ($('newslettername').value == ''){
		$('newsletteralert').innerHTML = langStr('fill_name_surname');
		$('newslettername').focus();
		return false;
	}
	else if ($('newsletteremail').value == ''){
		$('newsletteralert').innerHTML = langStr('invalid_email');
		$('newsletteremail').focus();
		return false;
	}
	else if (!validatemail($('newsletteremail').value)){
		$('newsletteralert').innerHTML = langStr('invalid_email');
		$('newsletteremail').focus();
		return false;
	}
	return true;
}
function validatemail(email){
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email)) return true;
	else return false;
}
function sendEmail(form){
	remoteEmail.sendEmail(getPayloadName(form));
}
function checkfields(nr, total){
	var flag = true;
	for (var i = 1; i <= total; i++){
		if (i < nr){
			var innerflag = true;
			if (document.getElementById('fld'+i).value == "") {
				document.getElementById('statusfld'+i).innerHTML = '<font class="errorContact">'+langStr('fill_empty')+'</font>';
				flag = false;
				innerflag = false;
			}
			if (document.getElementById('fld'+i).name.indexOf("email") != -1){
				if (!validatemail(document.getElementById('fld'+i).value)){
					document.getElementById('statusfld'+i).innerHTML = '<font class="errorContact">'+langStr('invalid_email')+'</font>';
					flag = false;
					innerflag = false;
				}
			}
			if (innerflag) document.getElementById('statusfld'+i).innerHTML = '<font class="goodContact">'+langStr('field_filled')+'</font>';
		}
		else document.getElementById('statusfld'+i).innerHTML = '';
	}
	document.getElementById('info').innerHTML = '<br />';
	return flag;
}
function getsearch(){
	document.location = loc+'szukaj/strony/'+document.getElementById('szukaj').value+'/';
	//document.location = loc+loc_search+'/'+document.getElementById('szukaj').value+'/';
	return false;
}
function mygetmultimedia(tbl, iden){
	engine.mygetmultimedia(tbl, iden);
}
function sendopinion(form, id){
	showloading();
	sondaid = id;
	var val = '';
	for(var i = 0; i < form.elements.length; i++) {
        if (form.elements[i].id && form.elements[i].id.indexOf('check_') != -1 && form.elements[i].checked) {
			val = form.elements[i].value;
			break;
		}
    }
	engine.sendopinion(id, val);
}
function getopinions(id){
	showloading();
	sondaid = id;
	engine.getopinions(id);
}
function showcontent(num){
	for (i = 1; i < 10; i++){
		if ($('tabcontent'+i)) $('tabcontent'+i).setStyle('display', 'none');
		if ($('tab'+i)) $('tab'+i).removeClass('on');
	}
	activetab = num;
	if ($('tabcontent'+num)) $('tabcontent'+num).setStyle('display', 'block');
	if ($('tab'+num)) $('tab'+num).addClass('on');
}
function filterproducts(id, act){
	showloading();
	engine.filterproducts($('productchoosercat').value, id, act);
}
function compare(){
	var brokenstring = $('compare_action').value.split(',');
	var flag = false;
	var key = '';
	
	for (key in brokenstring) {
		if (brokenstring[key] == $('productchooser').value) {
			flag = true;
		}
	}
	if (!flag && $('productchooser').value != '0'){
		compare_address = loc+loc_compare+'/';
		if ($('compare_action').value) compare_address += $('compare_action').value+','+$('productchooser').value+'/';
		else compare_address += $('productchooser').value+'/';
		document.location = compare_address;
	}
}

function remfromcomp(id){
	var brokenstring = $('compare_action').value.split(',');
	var key = '';
	
	for(var i=0; i<brokenstring.length;i++ ){ 
		if(brokenstring[i]==id)
			brokenstring.splice(i,1); 
    }
	compare_address = loc+loc_compare+'/';
	if (brokenstring.join(",")) compare_address += brokenstring.join(",")+'/';
	document.location = compare_address;
}
function setEvent(form){
	showloading();
	engine.setEvent(getPayload(form));
}
function addscheduler(){
}
function editscheduler(){
}
function alertmsg(field, result){
	if (result.indexOf('|') == -1)
		$(field).innerHTML = result;
	else {
		$(field).innerHTML = alertprefix(result);
		if ($(alertsufix(result))) $(alertsufix(result)).focus();
	}
}
function alertsufix(str){
	return str.substr(str.lastIndexOf('|') + 1);
}
function alertprefix(str){
	return str.substr(0, str.lastIndexOf('|'));
}
function submitform(form, lnk){
	$(form).action = lnk;
	$(form).submit();
}
function gotolink(id){
	document.location = $(id).value;
}
function changepagination(limit){
	$('paginationlimitshop').value = limit;
	$('filterForm').submit();
}
function addcoment(form){
	var payload = getPayload(form);
    for(var i = 0; i < form.elements.length; i++) {
        if (form.elements[i].id && form.elements[i].id.indexOf('status') != -1 && form.elements[i].checked) {
			payload['status'] = form.elements[i].value;
		}
    }
	showloading();
	engine.addcoment(payload);
}
