// šđčćž
var prev_elem;
function change_style(elem_id, prev_style, new_style){
	a= document.getElementById(elem_id);
	if (a && a!=prev_elem){
		a.className= new_style;
	}
	if (prev_elem && prev_elem!=a){
		prev_elem.className= prev_style;
	}
	prev_elem= a;
}

function clear_style(prev_style) {
	if(prev_elem) {
		prev_elem.className = prev_style;
		prev_elem = "";
	}
}

function get_element_by_id(id) {
    if(document.getElementById) {
        var element = document.getElementById(id);
    } else if(document.all) {
        var element = document.all[id]; 
    } else if(document.layers) {
        var element = document.layers[id];
    }
    return element;
}

function redirect(location) {
	location.href = location;
}

function redirect_sleep(location, sleep) {
	setTimeout("location.href = '" + location + "'", sleep);
}

function confirm_delete(msg) {
	return confirm(msg);
}

function clear_search(url) {
	location.href = url;
	return false;
}

var currTab = new Array();

function openTab(tabID, id){
	if(currTab[id]) {
		tmpTab = get_element_by_id(currTab[id] + 'Content');
		tmpTab.style.display = 'none';
		tmpTab = get_element_by_id(currTab[id] + 'Tab');
		tmpTab.className = '';
	}
	currTab[id] = tabID;
	tmpTab = get_element_by_id(currTab[id] + 'Content');
	tmpTab.style.display = 'block';
	tmpTab = get_element_by_id(currTab[id] + 'Tab');
	tmpTab.className = 'listTilesTabsActive';
}

function findPosX(obj) {
	var curleft = 0;
	if(obj.offsetParent) {
		while(1) {
			curleft += obj.offsetLeft;
			if(!obj.offsetParent) {
				break;
			}
			obj = obj.offsetParent;
		}
	} else if(obj.x) {
		curleft += obj.x;
	}
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if(obj.offsetParent) {
		while(1) {
			curtop += obj.offsetTop;
			if(!obj.offsetParent) {
				break;
			}
			obj = obj.offsetParent;
		}
	} else if(obj.y) {
		curtop += obj.y;
	}
	return curtop;
}

function getDocumentWidth() {
	var width = 0;
	if(typeof(window.innerWidth) == 'number') {
		// not ie
		width = window.innerWidth;
	} else if(document.documentElement && document.documentElement.clientWidth) {
		// ie sucks
		width = document.documentElement.clientWidth;
	} else {
		// again ie sucks
		width = document.body.clientWidth;
	}
	return width;
}

function getDocumentHeight() {
	var height = 0;
	if(typeof(window.innerHeight) == 'number') {
		// not ie
		height = window.innerHeight;
	} else if(document.documentElement && document.documentElement.clientHeight) {
		// ie sucks
		height = document.documentElement.clientHeight;
	} else {
		// again ie sucks
		height = document.body.clientHeight;
	}
	return height;
}

function getBrowserType() {
	var browser = navigator.appName;
	if(browser == "Netscape") {
		return "netscape";
	} else if(browser == "Opera") {
		return "opera";
	} else {
		return "ie";
	}
}

function getBrowserVersion() {
	var b_version = navigator.appVersion;
	var version = parseFloat(b_version);
	return version;
}

function getVerticalScrollPosition() {
	var scroll = 0;
	
	if(document.documentElement.scrollTop) {
		scroll = document.documentElement.scrollTop;
	}
	if(!scroll && window.pageYOffset) {
		scroll = window.pageYOffset;
	}
	if(!scroll && document.body.scrollTop) {
		scroll = document.body.scrollTop;
	}
	return scroll;
}

var current_menu_id;
				
function change_edit_content(id) {
	hide_edit_content(current_menu_id);
	if(id) {
		menu_obj = get_element_by_id(id + '_menu');
		content_obj = get_element_by_id(id + '_content');
		if(menu_obj) {
			menu_obj.className = 'menu active';
		}
		if(content_obj) {
			content_obj.style.display = 'block';
		}
		current_menu_id = id;
	}
}

function hide_edit_content(id) {
	if(id) {
		menu_obj = get_element_by_id(id + '_menu');
		content_obj = get_element_by_id(id + '_content');
		if(menu_obj) {
			menu_obj.className = 'menu';
		}
		if(content_obj) {
			content_obj.style.display = 'none';
		}
		current_menu_id = 0;
	}
}

function show_menu(id) {
	button_obj = get_element_by_id(id + '_button');
	list_obj = get_element_by_id(id + '_list');
	frame_obj = get_element_by_id(id + '_frame');
	
	if(list_obj.style.display != 'block') {
		list_obj.style.left = button_obj.offsetLeft + 'px';
		list_obj.style.top = button_obj.offsetTop + button_obj.offsetHeight - 3 + 'px';
		list_obj.style.display = 'block';
		if(frame_obj) {
			frame_obj.style.left = '-1px';
			frame_obj.style.top = '0px';
			frame_obj.style.width = list_obj.offsetWidth + 'px';
			frame_obj.style.height = list_obj.offsetHeight + 'px';
		}
	}
}

function hide_menu(e, id) {
	button_obj = get_element_by_id(id + '_button');
	list_obj = get_element_by_id(id + '_list');
	if(list_obj.style.display != 'none') {
		if(!e) {
			e = window.event;
		}
		if(e) {
			do_hide_menu = false;
			mouse_x = e.clientX;
			mouse_y = e.clientY;
			// check if left button area
			x_min = findPosX(button_obj) + 1;
			x_max = findPosX(button_obj) + button_obj.offsetWidth - 1;
			y_min = findPosY(button_obj) + 1;
			y_max = findPosY(button_obj) + button_obj.offsetHeight - 1;
			if(mouse_x <= x_min || mouse_x >= x_max || mouse_y <= y_min || mouse_y >= y_max) {
				do_hide_menu = true;
			}
			if(do_hide_menu) {
				// check if left list area
				x_min = findPosX(list_obj) + 1;
				x_max = findPosX(list_obj) + list_obj.offsetWidth - 1;
				y_min = findPosY(list_obj) + 1;
				y_max = findPosY(list_obj) + list_obj.offsetHeight - 1;
				if(mouse_x <= x_min || mouse_x >= x_max || mouse_y <= y_min || mouse_y >= y_max) {
					list_obj.style.display = 'none';
				}
			}
		} else {
			list_obj.style.display = 'none';
		}
	}
}

function get_flash_version() {
	var version = 0;
	var ver = '';
	try {
		ver = navigator.plugins['Shockwave Flash'].description;
	} catch(e) {
	}
	if(!ver) {
		try {
			ver = new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');
		} catch(e) {
		}
	}
	if(ver) {
		ver = ver.match(/\d+/g);
		version = parseInt(ver[0] || 0 + '.' + ver[1] || 0);
	}
	return version;
}

function create_child(child_params, child_options) {
	var child_str = '';
	child_str+= '<' + child_params['type'] + ' ';
	for(i in child_options) {
		child_str+= i + '="' + child_options[i] + '" ';
	}
	if(child_params['close_basic']) {
		child_str+= '/'
	}
	child_str+= '>';
	if(child_params['close_object']) {
		child_str+= '</' + child_params['type'] + '>'
	}
	var new_child = false;
	try {
		new_child = document.createElement(child_str);
	} catch(e) {
		new_child = document.createElement(child_params['type']);
		for(i in child_options) {
			new_child.setAttribute(i, child_options[i]);
		}
	}
	return new_child;
}

function get_element_width(obj) {
    if (typeof obj.clip !== "undefined") {
        return obj.clip.width;
    } else {
        if (obj.style.pixelWidth) {
            return obj.style.pixelWidth;
        } else {
            return obj.offsetWidth;
        }
    }
}

function popupWin(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features);
}

function check_form_fields(required_fields, email_fields) {
	var no_errors = true;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	
	for(i = 0; i < required_fields.length; i++) {
		var value_obj = get_element_by_id(required_fields[i]);
		var error_obj = get_element_by_id(required_fields[i] + '_error');
		if(!value_obj.value) {
			error_obj.innerHTML = 'Required field!';
			no_errors = false;
		} else {
			error_obj.innerHTML = '';
		}
	}
	if(no_errors) {
		for(i = 0; i < email_fields.length; i++) {
			var value_obj = get_element_by_id(email_fields[i]);
			var error_obj = get_element_by_id(email_fields[i] + '_error');
			if(value_obj.value) {
				if(!filter.test(value_obj.value)) {
					error_obj.innerHTML = 'Enter valid email!';
					no_errors = false;
				} else {
					error_obj.innerHTML = '';
				}
			} else {
				error_obj.innerHTML = '';
			}
		}
	}
	return no_errors;
}