
function base64_decode( data ) {    // Decodes data encoded with MIME base64
 
 
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
 
    do {  
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));
 
        bits = h1<<18 | h2<<12 | h3<<6 | h4;
 
        o1 = bits>>16 & 0xff;
        o2 = bits>>8 & 0xff;
        o3 = bits & 0xff;
 
        if (h3 == 64)      enc += String.fromCharCode(o1);
        else if (h4 == 64) enc += String.fromCharCode(o1, o2);
        else               enc += String.fromCharCode(o1, o2, o3);
    } while (i < data.length);
 
    return enc;
}


jQuery.fn.ShowToolBox = function(options){
	return this.each(function(){
		
		$(this).find("#open_page").each(function(){
			$(this).attr("active",0);
			$(this).click(function(){
				if($(this).attr("active")==0){
					$("#open_page_div").addClass("active");
					$("#list_page").css("display","block");
					WorkWithPageList.ViewPageList();
				}else{
					$("#open_page_div").removeClass("active");
					$("#list_page").css("display","none");
				}
				$(this).attr("active",$(this).attr("active")==0?1:0 );
			});
		});
		
		$("#close_page_list").click(function(){
			$("#open_page_div").removeClass("active");
			$("#list_page").css("display","none");
			$("#open_page").attr("active",$("#open_page").attr("active")==0?1:0 );
		});
		$("#add_page").click(function(){
			WorkWithData.AddPage();
		});
		$("#delete_all").click(function(){
			WorkWithData.DeleteAll();
			$("#open_page").attr("active",0);
			$("#open_page_div").removeClass("active");
			$("#list_page").css("display","none");			
			var count_save_page = WorkWithData.GetCountData();
			WorkWithPageList.SetCountMemberPage(count_save_page);
		});		
		$("#send_curent_page").click(function(){
			WorkWithMail.ViewMailWindow("this");
		});
		
		var count_save_page = WorkWithData.GetCountData();
		
		WorkWithPageList.SetCountMemberPage(count_save_page);
	})
	};
	
WorkWithPageList = {
	SetCountMemberPage:function(count){
		var str = $("#count_page").html();
		var start_pos = str.indexOf("(");
		var end_pos = str.indexOf(")");
		str = str.replace(/\d+/, count); 
	
		$("#count_page").html(str);
		if(count > 0){
			$("#open_page_div").css("display","block");
		}else{
			$("#open_page_div").css("display","none");
		}
	},
	ViewPageList:function(){
		var str = "";
		var page = 1;
		var list_page = WorkWithData.GetListPage();
		var count_on_page = 10000;
		var count_all = list_page.length;
		var count_page_real = count_all/count_on_page;
		var count_page_int = parseInt(count_all/count_on_page);
		var count_page = count_page_int;
		if(count_page_int != count_page_real) count_page++;			
		if(page>count_page) page = count_page;
		if(page == 0) page = 1;
		var start = (page-1)*count_on_page;
		
		var end = start+count_on_page;
		if(end>count_all) end = count_all;
		for(var i=start;i<end;i++){
			var mas = list_page[i].split("->");
			
			var str_new = $("#template_one_element").html();
			str_new = str_new.replace(/###TOOLBOXHREF###/g,base64_decode(mas[0]));
			str_new = str_new.replace(/###TOOLBOXHREF_FIRST###/g,mas[0]);
			//str_new = str_new.replace("###HREF###",mas[0]);
			str_new = str_new.replace(/###TOOLBOXTITLE###/g,mas[1]);
			//str_new = str_new.replace("###TITLE###",mas[1]);
			str_new = str_new.replace(/###TOOLBOXHREF_PRINT###/g,base64_decode(mas[2]));
			str += str_new;
		}		
		$("#list_page ul").empty();
		$("#list_page ul").html(str);
	},
	RemovePage:function(obj){
		$(obj).parent().parent().find(".sys_link").each(function(){
			var url = $(this).attr("href_id");
			WorkWithData.RemovePage(url);
			var count = WorkWithData.GetCountData();
			WorkWithPageList.SetCountMemberPage(count);						
			WorkWithPageList.ViewPageList();
			if(count == 0){
				$("#open_page_div").removeClass("active");
				$("#list_page").css("display","none");
				$("#open_page").attr("active",0);			
			}			
		});
	},
	PrintThisPage:function(){
		var url = toolboxPrint;
		
		window.open(base64_decode(url));

	},	
	PrintOnePage:function(url){
		
		window.open(url);
	}	
}	
	
	
WorkWithData = {
	setCookie:function(name, value, expires, path, domain, secure){
	    document.cookie = name + "=" + escape(value) +
	        ((expires) ? "; expires=" + expires : "") +
	        ((path) ? "; path=" + path : "") +
	        ((domain) ? "; domain=" + domain : "") +
	        ((secure) ? "; secure" : "");	
	},
	getCookie:function(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);	
	},
	IsSetFlash:function(){
		return 0;
	},
	GetCountData : function(){
		if (this.IsSetFlash()){
			return 0;
		}else{
			var cookie = this.getCookie("page_list");
			if(!cookie) return 0;
			if(cookie == "") return 0;
			var mas = cookie.split("||");
			return mas.length;

		}
	},
	AddPage:function(){
		if (this.IsSetFlash()){
			return ;
		}else{
			var cookie = this.getCookie("page_list");
			var url = toolboxUrl;
			var title = toolboxTitle;
			if(title == "") title = "no name";
			if(!cookie) cookie = "";
			if(cookie.length>4000){
				var str = $("#error_cookie").html();
			}
			var flag = true;
			
			var mas = cookie.split("||");
			for(var i=0;i<mas.length;i++){
				var mas2 = mas[i].split("->");
				if (mas2[0] == url) flag = false;
			}
			
			if(flag == true){
				if (cookie != "") cookie += "||";
				cookie += url+"->"+title+"->"+toolboxPrint;
				this.setCookie("page_list", cookie);
				var count = this.GetCountData();
				WorkWithPageList.SetCountMemberPage(count);
			}
		

		}	
		
		if($("#open_page").attr("active")==1){
			WorkWithPageList.ViewPageList();
		}
	},
	RemovePage:function(url){
		if (this.IsSetFlash()){
			return ;
		}else{
			var cookie = this.getCookie("page_list")
			if(!cookie) cookie = "";
			var mas = cookie.split("||");
			var new_cookie = "";
			for(var i=0;i<mas.length;i++){
				var mas2 = mas[i].split("->");
				if (mas2[0] != url) {
					if (new_cookie != "") new_cookie += "||";
					new_cookie += mas2[0]+"->"+mas2[1];
				}
			}
			this.setCookie("page_list", new_cookie);		
		}
	},
	GetListPage:function(){
		var list_page = new Array();
		if (this.IsSetFlash()){
			return "";
		}else{
			var cookie = this.getCookie("page_list");
			if(cookie && cookie!=""){
				list_page = cookie.split("||");
			}
			return list_page;
			
		}
	},
	GetListPageAll:function(){
		var list_page = new Array();
		if (this.IsSetFlash()){
			return "";
		}else{
			var cookie = this.getCookie("page_list");
			return cookie;
			
		}
	},	
	DeleteAll:function(){
		if (this.IsSetFlash()){
			return ;
		}else{
			this.setCookie("page_list", "");
		}		
	}
}