/*
* Visual Eingine
* @Author: Alexander Gavazov
* @Site: www.creative.bg & www.studio.bg
*/


Function.prototype.bind = function(obj)
{
	var method = this;
	var args = [];
	for(var i = 1; i < arguments.length; i++)
	{
		args.push(arguments[i]);
	}

	temp = function()
	{
		return method.apply(obj, args);
	}

	return temp;
}

function loadEvent(func, objectId)
{
	if(!objectId)
	{
		objectId = 'onload';
	}

	var oldonload = window[objectId];

	if(typeof window[objectId] != 'function')
	{
		window[objectId] = func;
	}
	else
	{
		window[objectId] = function()
		{
			if(oldonload)
			{
				oldonload();
			}

			func();
		}
	}
}

function $(elementId)
{
	return document.getElementById(elementId);
}

function $C(className, multyReturn, element)
{
	if(!element)
	{
		var element = document;
	}
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var elements = element.getElementsByTagName('*');
	var returns = [];

	for(var i = 0, r = 0; i < elements.length; i++)
	{
		if(testClass.test(elements[i].className))
		{
			if(multyReturn)
			{
				returns[r] = elements[i];
				r++;
			}
			else
			{
				return elements[i];
			}
		}
	}

	if(multyReturn)
	{
		return returns;
	}
}

function removeNodes(node)
{
	if(!node)
	{
		return;
	}

	while(node.hasChildNodes())
	{
		node.removeChild(node.firstChild);
	}
}


function setOpacity(element, opacity)
{
	element.style['opacity'] = opacity / 100;

	if(element.filters)
	{
		element.style.filter = 'alpha(opacity=' + opacity + ')';
	}
}


function getPosition(element)
{
	positions = {
		top: 0,
		left: 0
	};

	if(element.offsetParent)
	{
		positions.top = element.offsetTop;
		positions.left = element.offsetLeft;

		while(element = element.offsetParent)
		{
			positions.top += element.offsetTop;
			positions.left += element.offsetLeft;
		}
	}

	return positions;
}

function writeSwf(element, swfFile, width, height, bgColor, parameters)
{
	var htmlCode = '';
	var flashVars = '';
	var embedColorCode = (bgColor) ? 'bgcolor="' + bgColor + '"' : 'wmode="transparent"';


	if(parameters)
	{
		for(var i in parameters)
		{
			if(typeof parameters[i] != 'string')
			{
				alert('Parameter: ' + i + ' must by string');
			}
			else
			{
				parameters[i] = parameters[i].replace(/&amp;/gi, '%26');
				parameters[i] = parameters[i].replace(/&/gi, '%26');

				flashVars += i + '=' + parameters[i] + '&';
			}
		}

		if(flashVars)
		{
			flashVars = flashVars.substr(0, flashVars.length - 1);
		}
	}

	htmlCode += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="' + width + '" height="' + height + '">';
		htmlCode += '<param name="movie" value="' + swfFile + '" />';
		htmlCode += '<param name="quality" value="high" />';
		htmlCode += '<param name="flashvars" value="' + flashVars + '" />';

		if(bgColor)
		{
			htmlCode += '<param name="bgcolor" value="' + bgColor + '" />';
		}
		else
		{
			htmlCode += '<param name="wmode" value="transparent" />';
		}

		htmlCode += '<embed ' + embedColorCode + ' flashvars="' + flashVars + '" src="' + swfFile + '" quality="high" width="' + width + '" height="' + height + '" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	htmlCode += '</object>';

	element.innerHTML = htmlCode;
}


function img_win(link_id)
{
	window.open(link_id.href, '_blank', 'status = 1, width = 250, height = 350, resizable = 0');
	return false;
}