with(AP_Feedback=function(){}){	
	prototype.domain = "/";
	prototype.site = "default.com";
	
	prototype.setCookie = function(name, value) {
		now = new Date
		theYear=now.getYear()
		if (theYear < 1900) theYear=theYear+1900
		theYear = theYear + 10;
		document.cookie = name + "=" + escape(value) + "; expires=01-Jan-" + theYear + " 00:00:00 GMT; path=/";
	}
	
	prototype.getCookie = function (name) {
		var cookie = " " + document.cookie;
		var search = " " + name + "=";
		var setStr = '';
		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);
	}
	
	prototype.htmlspecialchars = function(text){
	   var chars = Array("&", "<", ">", '"', "'");
	   var replacements = Array("&amp;", "&lt;", "&gt;", "&quot;", "'");
	   for (var i=0; i<chars.length; i++)
	   {
		   var re = new RegExp(chars[i], "gi");
		   if(re.test(text))
		   {
			   text = text.replace(re, replacements[i]);
		   }
	   }
	   return text;
	}
	
	prototype.toggle = function(){
		jQuery('#ap_feedback').toggle('fast');	
	}
	
	prototype.hide = function(){
		jQuery('#ap_feedback').hide('fast');	
	}
	
	prototype.send = function(){
		var message = jQuery('#ap_feedback_message').val();
		
		if(message.length == 0){
			jQuery('#ap_feedback_message')
			.animate({backgroundColor: '#FAA'}, 300)
			.animate({backgroundColor: '#FFF'}, 100);		
		}
		else {
			var type  = jQuery('input:radio[name=ap_feedback_type]:checked').val();
			var name  = jQuery('#ap_feedback_name').val();
			var email = jQuery('#ap_feedback_email').val();
			var phone = jQuery('#ap_feedback_phone').val();
			
			jQuery('#ap_feedback_form').toggle('fast');
			jQuery('#ap_feedback_tnx').toggle('fast');	
			
			
			// cleared
			setTimeout(function(){
				jQuery('#ap_feedback_message').val('');
				
				jQuery('#ap_feedback_type1').removeAttr('checked');
				jQuery('#ap_feedback_type2').removeAttr('checked');
				jQuery('#ap_feedback_type3').removeAttr('checked');
				
				jQuery('#ap_feedback_type2').attr('checked', 'checked');
			}, 500);
			
			if(name.length)  this.setCookie('ap_feedback_name',  name);
			if(email.length) this.setCookie('ap_feedback_email', email);
			if(phone.length) this.setCookie('ap_feedback_phone', phone);
			
			jQuery.ajax({
				url: this.domain + "ap/php/feedback.php?callback=?&site=" 	+ encodeURIComponent(this.site) + 
																"&url=" 	+ encodeURIComponent(document.location + '') + 
																"&name=" 	+ encodeURIComponent(name) + 
																"&email=" 	+ encodeURIComponent(email) + 
																"&phone=" 	+ encodeURIComponent(phone) + 
																"&type=" 	+ encodeURIComponent(type) + 
																"&message=" + encodeURIComponent(message) ,
				type: "POST",
				data: {
					'site': 	this.site,
					'url': 		document.location + '',
					
					'name': 	name,
					'email': 	email,
					'phone': 	phone,
					
					'type': 	type,
					'message': 	message
				},
				
				cache: false,
				async: true,
				
				dataType: "jsonp",
				
				success: function(msg){
					window.AP_Feedback.hide();
					jQuery('#ap_feedback_form').toggle('fast');
					jQuery('#ap_feedback_tnx').toggle('fast');	
				},
				error: function(){
					window.AP_Feedback.hide();
					jQuery('#ap_feedback_form').toggle('fast');
					jQuery('#ap_feedback_tnx').toggle('fast');	
				}
			});
		}
	}
	
	prototype.render = function(){
		// подключение библиотек
		jQuery.getScript(this.domain + 'ap/js/jquery/plugins/jquery.color.js');
		
		var name  = this.getCookie('ap_feedback_name');
		var email = this.getCookie('ap_feedback_email');
		var phone = this.getCookie('ap_feedback_phone');
		
		var text = 
			"<div id='ap_feedback' class=\"ap_feedback\">" +
				"<div id='ap_feedback_tnx' class=\"ap_feedback_tnx\">" +
					"<center>" +
						"<img src=\"/ap/img/66/load.gif\" alt=\"\" /> " +
						"Thank You, Feedback posted..." +
					"</center>" +
				"</div>" +
				"<div id=\"ap_feedback_form\" class=\"ap_feedback_form\">" +
					"<div class=\"ap_feedback_title\">Contact Information (Optional)</div>" +
					"<table>" +         
						"<tr>" +
							"<td>Name:</td>" +
							"<td style=\"width: 95%;\"><input id=\"ap_feedback_name\" type=\"text\" value=\"" + this.htmlspecialchars(name) + "\" /></td>" +
						"</tr>" + 
						"<tr>" +
							"<td>Email:</td>" +
							"<td><input id=\"ap_feedback_email\" type=\"text\" value=\"" + this.htmlspecialchars(email) + "\" /></td>" +
						"</tr>" +  
						"<tr>" +
							"<td>Phone:</td>" +
							"<td><input id=\"ap_feedback_phone\" type=\"text\" value=\"" + this.htmlspecialchars(phone) + "\" /></td>" +
						"</tr>" +
					"</table> " +
					"<br />" +
					"<div class=\"ap_feedback_title\">Feedback Message</div>" +
					"<table> " +
						"<tr>" +
							"<td colspan=\"2\" class='ap_feedback_type'>" +
								"<label for=\"ap_feedback_type1\" style=\"background: #FF9592;\">" +
									"<input name=\"ap_feedback_type\" id=\"ap_feedback_type1\" value=\"1\" type=\"radio\">" +
									" &nbsp;Error" +
								"</label>" +
								"<label for=\"ap_feedback_type2\" style=\"background: #FBF888;\">" +
									"<input name=\"ap_feedback_type\" id=\"ap_feedback_type2\" checked=\"checked\" value=\"2\" type=\"radio\">" +
									" &nbsp;Notice" +
								"</label>" +
								"<label for=\"ap_feedback_type3\" style=\"background: #C1EF94;\">" +
									"<input name=\"ap_feedback_type\" id=\"ap_feedback_type3\" value=\"3\" type=\"radio\">" +
									" &nbsp;Idea" +
								"</label>" +
							"</td>" +
						"</tr> " +
						"<tr>" +
							"<td colspan=\"2\">" +
								"<textarea id=\"ap_feedback_message\"></textarea>" +
							"</td>" +
						"</tr>" +
						"<tr>" +
							"<td colspan=\"2\" class='ap_feedback_btns'>" +
								"<input type=\"button\" value=\"Send Feedback\" onclick=\"window.AP_Feedback.send()\" />" +
								"<input type=\"button\" value=\"Cancel\" onclick=\"window.AP_Feedback.toggle()\" />" +
							"</td>" +
						"</tr>  " +
					"</table>" +
				"</div>" +
			"</div>";
		
		jQuery('body').append(text);
	}	
}

window.AP_Feedback = new AP_Feedback();
