/**
 * get element by id
 */
function get(id)
{
	return document.getElementById(id);
}

/**
 * set url hash
 */
function setHash(hash)
{
	location.hash = '#' + hash;
}

/**
 * get url hash
 */
function getHash()
{
	return location.hash.substring(1);
}

/**
 * set browser cookie
 */
function setCookie(name,value,expires,path,domain,secure)
{
	document.cookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
}

/**
 * get browser cookie
 */
function getCookie(name)
{
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if( cookie.length>0 )
	{
		offset = cookie.indexOf(search);
		if( offset!=-1 )
		{
			offset += search.length;
			end = cookie.indexOf(";", offset);
			if( end==-1 ) end = cookie.length;
			setStr = unescape(cookie.substring(offset,end));
		}
	}
	return setStr;
}

/**
 * send ajax request
 */
function request(page, send, item)
{
	var sym = page.indexOf('?') >= 0 ? '&' : '?';
	//var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	//var req = typeof XMLHttpRequest != 'undefined' ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	var req = false;
	try {
	  req = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e) {
	  try {
	    req = new ActiveXObject("Msxml2.XMLHTTP");
	  } catch (e2) {
	    req = false;
	  }
	}
	
	if (!req && typeof XMLHttpRequest != 'undefined') {
	  req = new XMLHttpRequest();
	}
	
	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			if (item && item.nodeName == "INPUT") item.value = req.responseText;
			else if (item && item.innerHTML) item.innerHTML = req.responseText;
			else item(req.responseText);
		}
	};
	req.open("POST", page+sym+"r="+Math.random(Math.round()*100000), true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.setRequestHeader("Connection", "close");
	req.send(send);
}

/**
 * create new element and set his parameters
 */
function createTag(tag, parent, config)
{
	var element = document.createElement(tag);
	for (var i in config) element[i] = config[i];
	if (parent) parent.appendChild(element);
	return element;
}

/**
 * remove tag from DOM tree
 */
function removeTag(tag)
{
	if (tag && tag.parentNode)
	{
		tag.parentNode.removeChild(tag);
	}
}

/**
 * set content html for element
 */
function innerHTML(id, html)
{
	var element = get(id);
	if (element) element.innerHTML = html;
	return element;
}

/**
 * set classname for element
 */
function className(id, classname)
{
	var element = get(id);
	if (element && classname) element.className = classname;
	return element ? element.className : undefined;
}

/**
 * display or hide element by id
 */
function display(id, mode)
{
	var element = get(id);
	var display = element.style.display;
	
	if ( ! element) return;
	if (mode == true) display = 'block';
	else if (mode == false) display = 'none';
	else display = display == 'none' ? 'block' : 'none';
	
	element.style.display = display;
	return display == 'block';
}

/**
 *
 */
function loadflash(id, src, name, width, height, vars)
{
	var explorer = navigator.appName.indexOf("Microsoft")!=-1;
	var align = "middle", valign = "top", salign = "lt";
	var embed = document.createElement("embed");
	var object = explorer? //new ActiveXObject("ShockwaveFlash.ShockwaveFlash.8");
		document.createElement("div"):
		document.createElement("object");

	var data_object = {
		"classid"	: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
		"codebase"	: "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"
	}
	var data_embed = {
		"type"				: "application/x-shockwave-flash",
		"pluginspage"		: "http://www.macromedia.com/go/getflashplayer",
		"allowscriptaccess"	: "*",
		"allowfullscreen"	: "true",
		"wmode"				: "opaque",//transparent
		"scale"				: "noscale",
		"quality"			: "high",
		"loop"				: "false",
		"play"				: "true",
		"flashvars"			: ""
	}
	var data_param = {
		"allowFullScreen"	: "true",
		"allowScriptAccess"	: "*",
		"wmode"				: "opaque",//transparent
		"scale"				: "noscale",
		"quality"			: "high",
		"flashVars"			: ""
	}

	data_embed["width"]		= data_object["width"]		= width;
	data_embed["height"]	= data_object["height"]		= height;
	data_embed["align"]		= data_object["align"]		= align;
	data_embed["name"]		= data_object["id"]			= name;
	data_embed["src"]		= data_param["movie"]		= src;
	data_embed["salign"]	= data_param["salign"]		= salign;
	data_embed["flashvars"]	= data_param["flashVars"]	= vars;

	for (var x in data_object)
	{
		object.setAttribute(x, data_object[x]);
	}

	for (var x in data_embed)
	{
		embed.setAttribute(x, data_embed[x]);
	}

	for (var x in data_param)
	{
		var param = document.createElement("param");
		param.setAttribute("name", x);
		param.setAttribute("value", data_param[x]);
		object.appendChild(param);
	}

	get(id).innerHTML = '';
	object.appendChild(embed);
	object.outerHTML ?
		get(id).innerHTML = object.outerHTML.replace(/DIV/g,'OBJECT')://IE fix
		get(id).appendChild(object);
}
