function create_window(e,w,h,url)
{
	var padding = 20;
	var l = e.clientX + padding;
	var t = e.clientY + padding;
	var r = l + w;
	var b = t + h;

	oCanvas = document.getElementsByTagName((document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY")[0];

	var w_width = (window.innerWidth ? window.innerWidth + window.pageXOffset : oCanvas.clientWidth + oCanvas.scrollLeft) - padding * 2;
	var w_height = (window.innerHeight ? window.innerHeight + window.pageYOffset : oCanvas.clientHeight + oCanvas.scrollTop) - padding * 2;

	var margin_right = w_width - r;
	if (margin_right < 0) {
		l += margin_right - padding;
	}
	var margin_bottom = w_height - b;
	if (margin_bottom < 0) {
		t += margin_bottom;
	}

	//newwindow=window.open(url,'help','width='+w+', height='+h+', left=0, top=0');
	//newwindow.focus(); 
	//return newwindow;

	//return open(url,'help','width='+w+',height='+h+',status=no,toolbar=no,menubar=no,statusbar=no,scrollbars=yes');
	return window.open(url,'help','left='+l+',top='+t+',width='+w+',height='+h+',toolbar=no,statusbar=no,scrollbars=yes');
}

function openwin(url,width,height)
{
  myWin= open(url, "_blank",
    "width=" + width + ",height=" + height + ",status=yes,toolbar=no,menubar=no,scrollbars=yes");
}

function create_window_with_url(e,url)
{
	var w = 350;
	var h = 400;
	create_window(e,w,h,url);
	return false;
}

function open_help(help, e, w,h)
{
  var wW = w | 250;
  var wH = h | 200;
	//var whelp = window.open('','1','width=300,height=300,left=200,top=200');
	//create_window(e,wW,wH,'');
	whelp.document.writeln('\
		<html>\
			<head>\
				<title>Пояснение</title>\
				<link rel="Stylesheet" href="/css/style.css">\
			</head>\
			<body style="margin:10px;">\
				<p>\
					' + help + '\
				</p>\
				<form>\
					<input type="button" value="Закрыть" onclick="window.close();">\
				</form>\
			</body>\
		</html>\
	');
	
	whelp.focus();
  //return whelp;
  return false;
}

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

var blendimage_ar = new Array();
//var blendimage_opacity_ar = new Array();

//change the opacity for different browsers 
function changeOpac(opacity, id, count_id) {
	if(count_id == blendimage_ar[id])
	{
		var object = document.getElementById(id).style; 
		var opacity_num = opacity / 100;
		//blendimage_opacity_ar[id] = opacity;
		object.opacity = opacity_num; 
		object.MozOpacity = opacity_num; 
		object.KhtmlOpacity = opacity_num; 
		object.filter = "alpha(opacity=" + opacity + ")"; 
	}
	//else
		//alert(count_id);
} 

function change_href(linkid, link) {
    document.getElementById(linkid).href = link; 
} 

function blendimage(divid, imageid, imagefile, millisec) 
{ 
	var step = 10;
	var speed = Math.round(millisec / (100/step)); 
	var timer = 0;
	var current_opacity = 100;

	if(blendimage_ar[imageid])
	{
		// TODO: подумать как обыграть обратный ход смены картинок, может стоит написать 2 специальные функции
		//current_opacity = blendimage_opacity_ar[imageid];
		blendimage_ar[imageid]++;
	}
	else
	{
		blendimage_ar[imageid] = 1;
	}

	//set the current image as background 
	document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")"; 

	//make image transparent 
	changeOpac(0, imageid, blendimage_ar[imageid]); 
     
	//make new image 
	document.getElementById(imageid).src = imagefile; 
	//document.getElementById(imageid).style.MozOpacity = 50;
	//changeOpac(1, imageid);

	//fade in image 
	for(i = 100-current_opacity; i <= 100; i+=step) 
	{ 
	    setTimeout("changeOpac(" + i + ",'" + imageid + "', '"+blendimage_ar[imageid]+"')",(timer * speed)); 
	    timer++; 
	}

	//if(divid = 'main_div')
	//{
	//    setTimeout("document.getElementById('" + divid + "').style.backgroundImage = 'url(../images/spacer.gif)'", (timer * speed)); 
	//}
} 

function shiftOpacity(id, millisec) { 
    //if an element is invisible, make it visible, else make it ivisible 
    var current_opacity = document.getElementById(id).style.opacity;
    if(current_opacity != 100) { 
        opacity(id, current_opacity, 100, millisec); 
    } else { 
        opacity(id, 100, 0, millisec); 
    } 
} 


(function($) {
  var cache = [];
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery)
