var language = null;

function clear_once(field)
{
	try{
		if (typeof field != 'object') {
			field = document.getElementById(field);
		}

		if (!field.clearedOnce) {
			field.value = '';
			field.clearedOnce = true;
		}
	}
	catch(e){}
}


/**
 * Clears selection options.
 */
function clearSelection(selectElement)
{
	removeChildren(selectElement);
}


/**
 * Remove all children of element.
 */
function removeChildren(element)
{
	while (element.firstChild)
	{
		element.removeChild(element.firstChild);
	}
}


/**
 * Add value-name pairs to selection.
 */
function addToSelection(selectElement, name, value, disabled, selected)
{
	var labelAtt = document.createAttribute('value')
	labelAtt.value = value;

	var option = document.createElement('option');
	option.setAttributeNode(labelAtt);
	option.innerHTML = name;
	option.disabled = disabled;
	option.selected = selected;

	selectElement.appendChild(option);
}


/**
 * Returns height of document object.
 */
function getDocHeight(target)
{
	return target.body.offsetHeight;
}


/**
 * Resizes iframe to fit content.
 */
function autofit_frame(ifrm)
{
	var iframeWin = window.frames[ifrm];
	var iframeEl = document.getElementById ? document.getElementById(ifrm) : document.all ? document.all[ifrm] : null;
	if ( iframeEl && iframeWin )
	{
		var docHt = getDocHeight(iframeWin.document);
		iframeEl.style.height = docHt + "px";
	}
}


/**
 * Heals mailto href link.
 */
function mailhref(a,at,dot)
{
	var href = a.href;
	href = str_replace_all(at, '@', href);
	href = str_replace_all(dot, '.', href);
	a.href = href;
}


/**
 * String replace.
 * str_obj.replace() replaces only first occurance of search in IE6
 * This functions replaces all occurances
 */
function str_replace_all(search, replace, subject)
{
	while (subject.indexOf(search) != -1)
	{
		subject = subject.replace(search, replace);
	}

	return subject;
}


/**
 * Makes element visible/hidden
 */
function toggle_element_visibility(id, value)
{
	var ids = id.split(',');
	var ret = null;

	for(i=0; i<ids.length; i++)
	{
		var el = document.getElementById(ids[i]);
		var new_value = value;

		if (new_value == null)
		{
			if ('none' == el.style.display)
			{
				new_value = '';
				ret = true;
			}
			else
			{
				new_value = 'none';
				ret = false;
			}
		}

		el.style.display = new_value;
	}

	return ret;
}


/**
 * Sets and returns system language.
 * Only returns if param l is null.
 */
function syslang(l)
{
	switch (l)
	{
		case null : break;

		case "EST" : syslang("et"); break;
		case "ENG" : syslang("en"); break;
		case "RUS" : syslang("ru"); break;
		case "FIN" : syslang("fi"); break;
		case "LAT" : syslang("lv"); break;
		case "LIT" : syslang("lt"); break;

		default:	language = l; break;
	}

	return language;
}


/**
 * Function include once.
 * Tries to include JS source file.
 */
function include_once(f){
	if(f == null) return;

	var append = true;

	f_split = f.split("/");
	f_length = f_split.length;

	var s = document.getElementsByTagName("script");
	for(i=0; i<s.length; i++){
		src = s[i].src;
		if(src == f){
			append = false;
			break;
		}else if(src != null){
			src_split = src.split("/");
			src_length = src_split.length;
			steps = Math.min(f_length, src_length);

			var diff = false;

			for(offset=1; offset<=steps; offset++){
				f_i = f_length - offset;
				src_i = src_length - offset;

				if(f_split[f_i] != src_split[src_i]){
					diff = true;
					break;
				}
			}

			if(!diff){
				append = false;
				break;
			}
		}
	}


	if (append){
		var ns = document.createElement("script");
		ns.setAttribute("type", "text/javascript");
		ns.setAttribute("src", f);

		try{
			var head = document.getElementsByTagName("head").item(0);
			head.appendChild(ns);
		}catch(e){alert('No head element.')}
	}
}


function vehicle_details_large_images_go_back()
{
	go_back_or_to_detail_view();
}

function go_back_or_to_detail_view()
{
	if
	(
		document.referrer.indexOf('/kasutatud/auto.php') > 0
		||
		document.referrer.indexOf('/webcache_kasutatud/') > 0
		||
		document.referrer.indexOf('/used/') > 0
		||
		document.referrer.indexOf('/lietoti/') > 0
		||
		document.referrer.indexOf('/products/detail_product.php') > 0
	)
	{
		history.back(-1);
		return false;
	}
	else return true;
}

function strip_tags(str)
{
	return str.replace(/(<([^>]+)>)/ig,'');
}

function decode_xml_special_chars(str)
{
	return str.replace(/\&amp;/ig, '&').replace(/\&lt;/ig, '<').replace(/\&gt;/ig, '>');
}

function get_search_safe_string(str)
{
	return str.replace(/[\?\$\|\(\)\\\[\]\{\}\$\£\@\'\"\^]/ig,".");
}


function to_fixed(num, precision) {
	if (!precision) precision = 0;

	var ret = '';

	try{
		ret = num.toFixed(precision);
	}catch(e){
		var sign = num<0 ? '-' : '';
		var numstr = Math.round(Math.abs(num) * Math.pow(10,precision)).toString();

		while(numstr.length<=precision) numstr = '0'+numstr;

		var splitat = numstr.length-precision;
		var intpart = parseFloat(numstr.substr(0,splitat)).toString();

		ret = sign + intpart +'.'+ numstr.substr(splitat);
	}

	return ret;
}


/* add event on anything */
function addEvent ( target, type, listener, useCapture ) {
	if ( target.addEventListener ) {
		target.addEventListener(type, listener, useCapture);
	}	else if ( target.attachEvent ) {

		if (type=='DOMContentLoaded') {
			type = 'onreadystatechange';
		} else {
			type = 'on' + type;
		}

		target.attachEvent(type, listener);
	}
}

/* add document onload event */
function addLoadEvent ( callback ) {
	addEvent(document, 'DOMContentLoaded', callback, false);
}


// DEFAULT ONLOAD HANDLER
addLoadEvent(function(){
	try {
		// ADD IE JUMPLISTS
		if (window.external.msIsSiteMode() || !window.external.msIsSiteMode()) {
			var fragment = document.createDocumentFragment();

			var meta_appname = document.createElement('meta');
			meta_appname.setAttribute("name", "application-name");
			meta_appname.setAttribute("content", "auto24");
			fragment.appendChild(meta_appname);

			var meta_tooltip = document.createElement('meta');
			meta_tooltip.setAttribute("name", "msapplication-tooltip");
			meta_tooltip.setAttribute("content", document.getElementsByTagName('title').item(0).textContent);
			fragment.appendChild(meta_tooltip);

			var meta_starturl = document.createElement('meta');
			meta_starturl.setAttribute("name", "msapplication-starturl");
			meta_starturl.setAttribute("content", "/main/mainindex.php?utm_source=bookmark&utm_medium=jumplist&utm_campaign=general");
			fragment.appendChild(meta_starturl);

			var tabs = document.querySelectorAll('#main-menu .menu-item');
			for (var i=0; i<tabs.length; i++)
			{
				var tab_href = tabs[i].href;

				if (tabs.length<=5 ||
					tab_href.indexOf('/new/')!=-1 ||
					tab_href.indexOf('/kasutatud/')!=-1 ||
					tab_href.indexOf('/products/')!=-1 ||
					tab_href.indexOf('/uudised/')!=-1 ||
					tab_href.indexOf('/foorum/')!=-1
					)
				{
					var label = tabs[i].title;
					tab_href += (tab_href.indexOf('?')>-1 ? '&' : '?') + 'utm_source=bookmark&utm_medium=jumplist&utm_campaign=general';

					var meta_task = document.createElement('meta');
					meta_task.setAttribute("name", "msapplication-task");
					meta_task.setAttribute("content", "name="+label+";action-uri="+tab_href+";icon-uri=/favicon.ico");
					fragment.appendChild(meta_task);
				}
			}

			document.getElementsByTagName('head').item(0).appendChild(fragment);
		}
	}
	catch(e) {}
});
