// confirm
function confirmQuest(text) {
	return confirm(text);
};

function switchPriceLeasing(what) {
	if(what == 1) {
		SZN.gEl('item_payment').disabled=true;
		SZN.gEl('item_payment_count').disabled=true;

	}
	else {
		SZN.gEl('item_payment').disabled=false;
		SZN.gEl('item_payment_count').disabled=false;
	}
};

//ukazani ext search
a = 0; // 0 - schovano 1 - ukazano
b = 0; // checkboxy nezobrazeny 1 - checkboxy zobrazeny
function showhideExtSearch(stater, conteiner) {
	var cnt = SZN.gEl(conteiner);
	if(a == 0){
		cnt.style.display = 'block';
		stater.className = 'hideExt';
		stater.innerHTML = "Méně parametrů";
		if(b == 0) addEquip( "equipList" );
		a = 1;
	}
	else {
		cnt.style.display = 'none';
		stater.className = 'showExt';
		stater.innerHTML = "Více parametrů";
		if(b == 0) addEquip( "equipList" );
		a = 0;
	}
	return false;
}

function addEquip( equipElmId ) {
	var divEquip = SZN.gEl( equipElmId );
	if(optionequipselect) {
		if(optionequipselect.length != 0) {
			// smazeme pomocny div pokud existuje
			if(divEquip.getElementsByTagName('div')[0])
				divEquip.removeChild(divEquip.getElementsByTagName('div')[0]);
			// vytvorim pomocny div ktery mazu pri zmene, abych nemusel prochazet vsechny deticky
			var itemCont = document.createElement("div");
			//SZN.gEl('title-equip').style.display='block';

			var cn = Math.round(optionequipselect.length/2);
			cn = (optionequipselect.length%2) != 0 ? cn+1 : cn;

			for(i=0;i<optionequipselect.length;i++) {
				if((i % cn) == 0) var item = SZN.DIV( { "class":"extCol" } );
				var labelForId = 'eq_'+i;

				//var cp = document.createElement('br');
				// nastavim atributy
				var label = document.createElement("label");
				label.htmlFor = labelForId;
				//label.setAttribute("for",labelForId);
				var labelText = document.createTextNode(optionequipselect[i][1]);
				label.appendChild(labelText);

				// nastavim atrbuty
				var checkBox = document.createElement("input");
				//checkBox.setAttribute("id",labelForId);
				checkBox.id = labelForId;
				checkBox.type = "checkbox";
				checkBox.name = "filter.equipmentIds[]";
				checkBox.value = optionequipselect[i][0];
				checkBox.checked = optionequipselect[i][2] ? true : false;

				item.appendChild(document.createElement('br'));
				item.appendChild(checkBox);
				item.appendChild(label);
				itemCont.appendChild(item);
			}
			// pripojim do stranky
			divEquip.appendChild(itemCont);
			b = 1;
			if(optionequipselect) {
				for(i=0;i<optionequipselect.length;i++) {
					var itm = divEquip.getElementsByTagName('input');
					itm[i].checked = optionequipselect[i][2] ? true : false;
				}
			}
		}
	}
	if (window.fix_checkboxes) { window.fix_checkboxes(); }
};

var enabler = {
	disableNext 	: false,

	init : function () {
		this.cont 				= SZN.gEl('photos-form');
		this.nextButton 		= SZN.gEl('next-step4');
		this.addPhotoButton 	= SZN.gEl('addPhotoButton');
		this.files = this.cont.getElementsByTagName('input');
		this.nextButton.onfocus = this.check;
	},

	check : function () {
		enabler.disableNext = false;
		for(i=0;i<enabler.files.length;i++) {
			if(enabler.files[i].type == 'file') {
				if(enabler.files[i].value != '') {
					enabler.disableNext = true;
					break;
				}
			}
		}
		enabler.change();
	},

	change : function () {
		if(this.disableNext == true) {
			this.nextButton.name = this.addPhotoButton.name;
		}
	}
}

/**
 * toggle element visibility (& hide on init)
 * @param {Object} link
 * @param {Object} id
 */
SZN.ToggleElement = SZN.ClassMaker.makeClass({
	NAME: "ToggleElement",
	VERSION: "1.0",
	CLASS: "class"
});

SZN.ToggleElement.prototype.$constructor = function(link, id) {
	this.eventsCache = new Object();
	this.element = SZN.gEl(id);
	this.link = SZN.gEl(link);;

	this.hide();
	this.eventsCache['link'] = SZN.Events.addListener(this.link, 'click', this, 'toggle', false, true);
}

/**
 * toggle element visibility
 * @param {Object} e
 */
SZN.ToggleElement.prototype.toggle = function(e) {
	if (typeof e != 'undefined') {
		SZN.Events.cancelDef(e);
	}
	this[(this.visible()) ? 'hide' : 'show']();
}

/**
 * visible element
 */
SZN.ToggleElement.prototype.show = function() {
	this.element.style.display = '';
	SZN.Dom.elementsHider(this.element, ['embed', 'object'], 'hide');
}

/**
 * hide element
 */
SZN.ToggleElement.prototype.hide = function() {
	this.element.style.display = 'none';
	SZN.Dom.elementsHider(this.element, ['embed', 'object'], 'show');
}

/**
 * detect element visibility
 */
SZN.ToggleElement.prototype.visible = function() {
	return this.element.style.display != 'none';
}



/**
 * toggle short & full text
 * @param {String} classGroup
 * @param {Object} parent
 * @param {String} linkTagName
 */

SZN.ShowMeMore = SZN.ClassMaker.makeClass({
	NAME: "ShowMeMore",
	VERSION: "1.0",
	CLASS: "class"
});

SZN.ShowMeMore.prototype.$constructor = function(classGroup, parent, linkTagName) {
	this.eventsCache = new Object();

	this.parent = parent || document;
	this.classGroup = classGroup || 'smm';
	this.linkTagName = linkTagName || 'H5';

	this.fields = this.attachContainers();
	this.collapseAll();
}

/**
 * attach text containers
 */
SZN.ShowMeMore.prototype.attachContainers = function() {
	var divs = SZN.Dom.getElementsByClass(this.classGroup, this.parent, 'DIV');
	var fields = [];

	for (var i=0, length=divs.length; i<length; i++) {
		var preview = SZN.Dom.getElementsByClass('contentShort', divs[i], 'DIV')[0];
		var full = SZN.Dom.getElementsByClass('contentFull', divs[i], 'DIV')[0];
		var links = {
			'preview': new this.Link(preview.getElementsByTagName(this.linkTagName)[0], i, this),
			'full': new this.Link(full.getElementsByTagName(this.linkTagName)[0], i, this)
		}

		fields.push({ 'preview': preview, 'full': full, 'links': links});
	}
	return fields;
}

/**
 * expand selected text, collapse others
 * @param {Object} id
 */
SZN.ShowMeMore.prototype.toggle = function(id) {
	var field = this.fields[id];

	if (field.full.style.display == 'none') {
		this.collapseAll();
		field.preview.style.display = 'none';
		field.full.style.display = '';
	} else {
		this.collapseAll();
	}

}

/**
 * collapse all texts
 */
SZN.ShowMeMore.prototype.collapseAll = function() {
	for (var i=0, length=this.fields.length; i<length; i++) {
		this.fields[i].preview.style.display = '';
		this.fields[i].full.style.display = 'none';
	}
}

/**
 * show me more link object
 * @param {Object} link
 * @param {Object} id
 * @param {Object} parent
 */
SZN.ShowMeMore.prototype.Link = SZN.ClassMaker.makeClass({
	NAME: "Link",
	VERSION: "1.0",
	CLASS: "class"
});
SZN.ShowMeMore.prototype.$constructor = function(link, id, parent) {
	this.eventsCache = new Object();
	this.link = link;
	this.id = id;
	this.parent = parent;

	console.log("Link");
	if (link) {
		this.link.style.cursor = 'pointer';
		this.eventsCache['link'] = SZN.Events.addListener(this.link, 'click', this, 'toggle', false, true);
	}

}
//SZN.ToggleElement.Name = 'Link';

/**
 * link onclick callback
 * @param {Event} e
 */
SZN.ShowMeMore.prototype.Link.prototype.toggle = function(e) {
	if (typeof e != 'undefined') {
		SZN.Events.cancelDef(e);
	}
	this.parent.toggle(this.id);
}

SZN.MailForm = SZN.ClassMaker.makeClass({
	NAME: "MailForm",
	VERSION: "1.0",
	CLASS: "class"
});

SZN.MailForm.prototype.$constructor = function(car_id,click,win,send,close,mail1,mail2) {
	this.car_id = car_id;
	this.click = SZN.gEl(click);
	this.win = SZN.gEl(win);
	this.mail1 = SZN.gEl(mail1);
	this.mail2 = SZN.gEl(mail2);
	this.r = new SZN.HTTPRequest();
	this.r.setFormat("txt");
	this.r.setMethod("get");
	new SZN.ToggleElement(click,win);
	SZN.Events.addListener(SZN.gEl(send),"click",this,"_send");
	SZN.Events.addListener(SZN.gEl(close),"click",this,"_close");
}

SZN.MailForm.prototype._send = function() {
	var data = "/doporucit-inzerat?carId="+this.car_id+"&";
	data += "emailFrom="+encodeURIComponent(this.mail1.value)+"&emailTo="+encodeURIComponent(this.mail2.value);
	this.r.send(data,this,"_done");
}

SZN.MailForm.prototype._done = function(d) {
	eval("var data = "+d+";");
	alert(data.msg);
	if (data.code == 1) {
		this.mail2.value = "";
		this._close();
	}
}

SZN.MailForm.prototype._close = function(e, elm) {
	this.win.style.display = "none";
	SZN.Events.stopEvent(e);  	
	SZN.Events.cancelDef(e);
}

SZN.FinancingForm = SZN.ClassMaker.makeClass({
	NAME: "FinancingForm",
	VERSION: "1.0",
	CLASS: "class"
});

SZN.FinancingForm.prototype.$constructor = function(carPrice, bank, yourMoney, loanAmount, paymentsCount, monthlyPayment, interestPA, RPSN, btnSend) {
	this.carPrice = SZN.gEl(carPrice);
    this.bank = SZN.gEl(bank);
    this.loanAmount = SZN.gEl(loanAmount);
	this.yourMoney = SZN.gEl(yourMoney);
	this.paymentsCount = SZN.gEl(paymentsCount);
	this.monthlyPayment = SZN.gEl(monthlyPayment);
	this.interestPA = SZN.gEl(interestPA);
	this.RPSN = SZN.gEl(RPSN);
	this.r = new SZN.HTTPRequest();
	this.r.setFormat("txt");
	this.r.setMethod("get");
	SZN.Events.addListener(SZN.gEl(btnSend), "click", this, "_send");
}

SZN.FinancingForm.prototype._send = function() {
    this.loanAmount.value = this.carPrice.value - this.yourMoney.value;
	var data = "/_financing.php?";
	data += "bank="+encodeURIComponent(this.bank.value);
	data += "&paymentsCount="+encodeURIComponent(this.paymentsCount.value);
    data += "&loanAmount="+encodeURIComponent(this.carPrice.value - this.yourMoney.value);
	this.r.send(data, this, "_done");
}

SZN.FinancingForm.prototype._done = function(d) {
	eval("var data = "+d+";");
    if (!data.status) {
	    alert(data.statusMessage);
    }else {
        this.monthlyPayment.value = data.monthlyPayment;
        this.interestPA.value = data.interestPA;
        this.RPSN.value = data.RPSN;
    }
}

SZN.ShowInfo = SZN.ClassMaker.makeClass({
	NAME: "ShowInfo",
	VERSION: "1.0",
	CLASS: "class"
});

SZN.ShowInfo.prototype.$constructor = function() {
	this.dd1 = SZN.gEl('equipscr');
	this.dd2 = SZN.gEl('infoscr');;
	this.dd1scount = this.dd1.getElementsByTagName('span').length;
	this.dd2scount = this.dd2.getElementsByTagName('span').length;

	if(this.dd1scount > 0) {
		this.elm1 = SZN.gEl('eq_hid1');
		this.ahr1 = SZN.cEl("a");
		this.ahr1.href = "#";
		this.ahr1.innerHTML = "více";
		this.dd1.appendChild(this.ahr1);
		if (this.dd1.className = "less last") {
			this.dd1.className = "more last";
		}
		else if (this.dd1.className = "less") {
			this.dd1.className = "more";
		}
		SZN.Events.addListener(this.ahr1, "click", this, this.show);
	}

	if(this.dd2scount > 0) {
		this.elm2 = SZN.gEl('eq_hid2');
		this.ahr2 = SZN.cEl("a");
		this.ahr2.href = "#";
		this.ahr2.innerHTML = "více";
		this.dd2.appendChild(this.ahr2);
		if (this.dd2.className = "less last") {
			this.dd2.className = "more last";
		}
		else if (this.dd2.className = "less") {
			this.dd2.className = "more";
		}
		SZN.Events.addListener(this.ahr2, "click", this, this.show);
	}

}

SZN.ShowInfo.prototype.show = function(e, elm) {
	SZN.Events.cancelDef(e);
	if (elm.parentNode.className == "less") {
		elm.parentNode.className = "more";
		elm.innerHTML = "více";
		return;
	} else if (elm.parentNode.className == "less last") {
		elm.parentNode.className = "more last";
		elm.innerHTML = "více";
		return;
	}

	if (elm.parentNode.className == "more") {
		elm.parentNode.className = "less";
		elm.innerHTML = "méně";
		return;
	} else if (elm.parentNode.className == "more last") {
		elm.parentNode.className = "less last";
		elm.innerHTML = "méně";
		return;
	}
}

/*- IE Hack - no active ActiveX Component*/
function activateActiveX () {
	if(document.attachEvent && !window.opera) {
		var object = document.getElementsByTagName('object');
		for (i=0;i<object.length;i++) {
			object[i].outerHTML = object[i].outerHTML;
		}
		var embed = document.getElementsByTagName('embed');
		for (i=0;i<embed.length;i++) {
			embed[i].outerHTML = embed[i].outerHTML;
		}
	}
}

function initMap(id,x,y,zoom,url){
	var mapa = new SZN.MapEngine(SZN.gEl(id),true);
	mapa.mouseSet(5);
	mapa.enableSelection(1);
	mapa.zoomSet(zoom);
	mapa.setCenter(x,y);
	mapa.port.copyVisible = false;
	var zoomControl = new SZN.Visual.ZoomControl("full");
	mapa.addControls(zoomControl,mapa.getDefaultLayoutBox(),10,10);
	var m=mapa.makeMark("user","","","id");
	var a=SZN.cEl("a",false,false,{"position":"absolute"});
	a.href=url;
	a.appendChild(m.elms.activ.node);
	m.elms.activ.node=a;
	mapa.addMark(x,y,m);
	mapa.init();
	if(SZN.CONF.enableInfoMap){
		mapa.addNewComponent({"part":SZN.InfoMap,"name":"infoMap"});
	}
}

/* zmena formulare pro vyhledavani */
SZN.ChangeSearchForm = SZN.ClassMaker.makeClass({
	NAME: "ChangeSearchForm",
	VERSION: "1.0",
	CLASS: "class"
});

SZN.ChangeSearchForm.prototype.$constructor = function(select,fulltext,smoto) {
	this.select = SZN.gEl(select);
	this.fuel = SZN.gEl('fuelLine');
	this.fulltext = fulltext;
	this.tachometer = SZN.gEl('tachometerLine');	
	this.bodyType = SZN.gEl('bodyType');
	this.moreParam = SZN.gEl('moreParam');
	this.paramPosition = SZN.gEl('otherParam1');
	this.status = SZN.gEl('status');
	this.smoto = smoto;
	this.buildDom();

	SZN.Events.onDomReady(this,"changeForm");
	SZN.Events.addListener(this.select, 'change', this, 'changeForm');
}

SZN.ChangeSearchForm.prototype.buildDom = function(){
	this.param = SZN.cEl('div','param');
	this.label = SZN.cEl('label');
	this.label.innerHTML = "Další parametry";
	this.input = SZN.cEl('input','fulltext','w300');
	this.input.type = "text";
	this.input.name = "filter.fulltext";
	this.input.value = this.fulltext;
	this.span = SZN.cEl('span');
	
	if(this.smoto == '1') {
		this.span.innerHTML = "(hledá v popisu motocyklů/čtyřkolek)";
	} else {
		this.span.innerHTML = "(hledá v popisu vozidla)";
	}

	SZN.Dom.append([this.param,this.label]);
	SZN.Dom.append([this.param,this.input]);
	SZN.Dom.append([this.param,this.span]);	
}

SZN.ChangeSearchForm.prototype.changeForm = function(e, elm) { 
	for(var a=0; a< this.select.options.length; a++) {
	   if (this.select.options[a].selected  == true) {
	       var value = this.select.options[a].value;
	   }
	}
	SZN.gEl('fulltext').value="";
	if(value == 12){
		SZN.Dom.addClass(this.fuel,'noDisplay');
		SZN.Dom.addClass(this.tachometer,'noDisplay');
		SZN.Dom.addClass(this.moreParam,'noDisplay');
		SZN.gEl('extCont').style.display = "none";		
		this.status.innerHTML = "Stav";	
		this.bodyType.innerHTML = "Typ náhradního dílu";	
		SZN.Dom.clear(this.paramPosition);
		SZN.Dom.append([this.paramPosition,this.param]);
		SZN.Dom.clear(SZN.gEl('otherParam'));		
	}	
	else {
		showhideExtSearch(this,'extCont');
		SZN.Dom.removeClass(this.fuel,'noDisplay');
		SZN.Dom.removeClass(this.tachometer,'noDisplay');
		SZN.Dom.removeClass(this.moreParam,'noDisplay');
		if(this.smoto == 1) {
			this.status.innerHTML = "Stav";
		} else {
			this.status.innerHTML = "Stav vozidla";
		}
		if(this.smoto == 1) {
			this.bodyType.innerHTML = "Typ";
		} else {
			this.bodyType.innerHTML = "Typ karosérie";
		}

		SZN.Dom.clear(SZN.gEl('otherParam'));
		SZN.Dom.append([SZN.gEl('otherParam'),this.param]);	
		SZN.Dom.clear(this.paramPosition);		
		showhideExtSearch(SZN.gEl('ext-link'),'extCont');
	}	
}

var router = {
    frm : 'routeForm',
    inited : false,
    show : function(param){

        if(SZN.gEl(router.frm).style.display != 'block') {
            SZN.gEl(router.frm).style.display = 'block';
        } else {
            SZN.gEl(router.frm).style.display = 'none';
        }

        if(!router.inited){
            SZN.gEl('map').appendChild(SZN.gEl(router.frm));
            SZN.Events.addListener(SZN.gEl('routeChange'),'click',router.rtSwitch,false);
            router.inited = true;
        }

        SZN.gEl(router.frm).style.visibility = 'visible';
        return false;
    },

    hide : function(){
        SZN.gEl(router.frm).style.display = 'none';
    },

    rtSwitch : function(){
        var endNode = SZN.gEl('cBox').getElementsByTagName('span')[0];
        var startNode = SZN.gEl('rtFrom');
        var endValue = endNode.innerHTML;
        var startValue = startNode.value;
        endNode.innerHTML = startValue;
        startNode.value = endValue;
    },

    send : function(){
        var myUrl = "http://www.mapy.cz";
        var urlTo = SZN.gEl('cBox').getElementsByTagName('span')[0].innerHTML;
        var urlFrom = SZN.gEl('rtFrom').value;
        var urlStr = myUrl + '/?query=route:' + urlFrom + '>' + urlTo;
        window.location = urlStr;
        return false;
    }
};

SZN.DomainRedirect = SZN.ClassMaker.makeClass({
	NAME: "DomainRedirect",
	VERSION: "1.0",
	CLASS: "class"
});

SZN.DomainRedirect.prototype.$constructor = function(smoto, select) {
	this.smoto = smoto;
	this.select = SZN.gEl(select);

	SZN.Events.addListener(this.select, 'change', this, '_redirect');
}

SZN.DomainRedirect.prototype._redirect = function(e, elm) {
	var dispatcher = SZN.gEl(elm);
	var value = dispatcher.value; 

	if(this.smoto == 1) {
		if(value != 3 && value != 11) {
			dispatcher.form.submit();
		}
	} else {
		if(value == 3 || value == 11) {
			dispatcher.form.submit();
		}
	}
	
	SZN.Events.stopEvent(e);  	
	SZN.Events.cancelDef(e);
}

