function deletetags(name,str)
{ 
	var mystr = str;
	
	  reg = new RegExp("<"+name+"[^>]*>","gi");
	    
	  
	  while ((newar = reg.exec(mystr))!=null)
	  { 
		var first = reg.lastIndex;
	  	var leftborder = newar.index;
		
	    reg1 = new RegExp("<"+name+"[^>]*>","gi");
	    reg2 = new RegExp("<\/"+name+"[^>]*>","gi");
	  
	    var flag = 1;
	    while((newar = reg2.exec(mystr))!=null && flag)
	      {  if (reg2.lastIndex>first) 
	           {var firstlast = reg2.lastIndex;flag = 0;}
	      }
	    var flag = 1;var count_open = 0;reg1.lastIndex = first;
	    while((newar = reg1.exec(mystr))!=null && flag)
	      { if (reg1.lastIndex>first && reg1.lastIndex<firstlast) 
	          {++count_open}
	      }
	    if (count_open == 0)
	      {var rightborder = firstlast;}
	    else
	      {
	        var flag = 1;var count_close = 0;reg2.lastIndex = firstlast;
	        while((newar = reg2.exec(mystr))!=null && flag)
		      { if (reg2.lastIndex>firstlast) 
		          {++count_close}
		        if (count_close == count_open)
		          {var rightborder = reg2.lastIndex;flag = 0;}
		      }
	      }
	      
	      leftstr = mystr.substr(0,leftborder);
	      rightstr = mystr.substr(rightborder);
	      mystr = leftstr+' '+rightstr;
	      reg.lastIndex = 0;
	   }
	   return mystr;
}


function deleteclass(name,str)
{
  var mystr = str;
	
  if (jQuery.browser.msie) 
  {
    var regstr = "<.*?class[\\s]*?=[\\s]*?["+String.fromCharCode(34)+String.fromCharCode(39)+"]{0,1}?[\\s]*?"+name+"[\\s]*?["+String.fromCharCode(34)+String.fromCharCode(39)+"]{0,1}?.*?>";
  }
  else
  {
    var regstr = "<[^>]*class\\s*=\\s*["+String.fromCharCode(34)+String.fromCharCode(39)+"]\\s*"+name+"[^"+String.fromCharCode(34)+String.fromCharCode(39)+"]*["+String.fromCharCode(34)+String.fromCharCode(39)+"][^>]*>";  
  }
  
  reg = new RegExp(regstr,"gi");
    
  
  while ((newar = reg.exec(mystr))!=null)
  { 
	var first = reg.lastIndex;
  	var leftborder = newar.index;
	var tagname = "";
    for(var i=leftborder;i<mystr.length;i++)
      { if (mystr.charAt(i)==" " || mystr.charAt(i)==">") break;
        else
	      if (mystr.charAt(i)!="<") tagname+=mystr.charAt(i);
      }
    reg1 = new RegExp("<"+tagname+"[^>]*>","gi");
    reg2 = new RegExp("<\/"+tagname+"[^>]*>","gi");
  
    var flag = 1;
    while((newar = reg2.exec(mystr))!=null && flag)
      {  if (reg2.lastIndex>first) 
           {var firstlast = reg2.lastIndex;flag = 0;}
      }
    var flag = 1;var count_open = 0;reg1.lastIndex = first;
    while((newar = reg1.exec(mystr))!=null && flag)
      { if (reg1.lastIndex>first && reg1.lastIndex<firstlast) 
          {++count_open}
      }
    if (count_open == 0)
      {var rightborder = firstlast;}
    else
      {
        var flag = 1;var count_close = 0;reg2.lastIndex = firstlast;
        while((newar = reg2.exec(mystr))!=null && flag)
	      { if (reg2.lastIndex>firstlast) 
	          {++count_close}
	        if (count_close == count_open)
	          {var rightborder = reg2.lastIndex;flag = 0;}
	      }
      }
      
      leftstr = mystr.substr(0,leftborder);
      rightstr = mystr.substr(rightborder);
      mystr = leftstr+' '+rightstr;
      reg.lastIndex = 0;
   }
   return mystr;
}



function open_window(name,width, height) {
  eval(name+' = open("", "print_window",'+ 
    '"width="+width+",height="+height+",status=no,toolbar=no,menubar=no,scrollbars=yes")');
  
  return eval(name+'.document');
}

function open_print(params,classtoremove,tagstoremove)
{
  if (params.width) var w = params.width; else w = 640;
  if (params.height) var h = params.height; else h = 480;
  doc_win = open_window('win',w,h);
  //alert("!");
  jQuery(document).ready(function(){
	  if (params.from) var con = jQuery(params.from).html();
      else var con = params.fromstring;
	  //Удаляем с содержимым скрипты
	  con = deletetags('script',con);
	  con = deletetags('style',con);
	  if (params.bonus) params.bonus = deletetags('script',params.bonus);
	  //Удаляем ссылки
	  var reg = /href[^=]*=[^'"]*["'][^"']*["']/gi;
	  con = con.replace(reg,' ');
                     if (params.bonus) params.bonus = params.bonus.replace(reg,' ');
                     //Удаляем стили               
                     var reg = /style[^=]*=[^'"]*["'][^"']*["']/gi;
                     con = con.replace(reg,' ');
                     if (params.bonus) params.bonus = params.bonus.replace(reg,' ');

                    //Удаляем классы полностью с содержимым
      if (classtoremove)
	  { for(var i=0;i<classtoremove.length;i++)
		  con = deleteclass(classtoremove[i],con);
	  }
      //Удаляем тэги
       if (tagstoremove)
 	  { for(var i=0;i<tagstoremove.length;i++)
 		  {var reg = new RegExp("<\/?"+tagstoremove[i]+"[^>]*>","gi");
 		   con = con.replace(reg,' ');
         }
 	  }
       
     newitem='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
	 newitem+='<html>'+
	           '<head>'+
	              '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'+
	              '<link rel="stylesheet" href="'+params.path+'/'+params.path_css+'/print_version_style.css" type="text/css">'+  

	           '</head>'+
	           '<body>'+
	             '<div class="top_head">';
	               if (params.img_name)
	            	 newitem+='<div class="img_head"><img src="'+params.path+'/'+params.path_img+'/'+params.img_name+'" alt=""></div>';
	               if (params. header_text)
                                    newitem+='<div class="text_head">'+params.header_text+'</div>';
            newitem+='</div>'+
	             '<div class="middle_body">';
	             if (params.bonus)
	              {  
	            	newitem+='<div class="bonus">'+params.bonus+'</div>';
	              }
				  newitem+='<h2>'+params.name_text+'</h2>';
	             newitem+='<div class="text">'+con+'</div></div>'+
	             '<div class="buttons">'+ 
	               '<input id="print" type="button" onclick="javascript:self.print()" value="Напечатать">'+
	               '<input id="close" type="button" onclick="javascript:self.close();" value="Закрыть">'+
	             '</div>'+
	           '</body>'+
	         '</html>';
	doc_win.open();
	doc_win.write(newitem);
	doc_win.close();
	win.focus();
  })

};

