function Form(){
  	this.all = [];
  	this.form = document.getElementById("forms");
	this.info = document.getElementById("nfo");
	this.height = 150;
	/**
	 * обязательные поля
	 */
	this.req = [];
	
	this.table = document.getElementById("allForms").getElementsByTagName("tbody")[0];

	var allheight = getlnsideWindowHeight(),
		allwidth = getlnsideWindowWidth(),
		title = document.getElementById("forms").getElementsByTagName("p")[0],
		author = document.getElementById("tremess").getElementsByTagName('span')[0];
    /*
		par - id объекта при ошибке
		*/
    this.show = function(id, par){	
		this.clearForm();
		this.req = [];
        document.getElementById("captcha").src = "/codeimg.phtml?" + Math.random();
      	this.id = id;	
		
		/**
		 * не зарегистрированные могут добавлять только метки
		 */
		if(this.id=="mis"){		
			title.innerHTML = words["formmis"];
			this.table.appendChild(this.getField("имя","text","name",1));
			this.table.appendChild(this.getField("e-mail","text","email"));
			this.table.appendChild(this.getField("комментарии","textarea","dsc",1));
			document.add.id.value = par;
			this.form.style.left = getlnsideWindowWidth()/2 - 155+"px";
			this.form.style.top = getlnsideWindowHeight()/2 -  (this.height/2)+"px";
			this.form.style.display = "block";		
			return;
		}
		else if(member.member_id==0 && this.id=="mark"){
			title.innerHTML = words["formmark"];
			this.table.appendChild(this.getField("автор","text","author"));
			this.table.appendChild(this.getField("e-mail","text","email"));
			this.table.appendChild(this.getField("название","text","name"));
			this.table.appendChild(this.getField("комментарии","textarea","dsc"));
		}
		else{	
	  		if(this.id=="mark"){
				title.innerHTML = words["formmark"]
				author.innerHTML = words["authormark"];
				this.table.appendChild(this.getField("автор","text","author"));
				this.table.appendChild(this.getField("e-mail","text","email"));
				this.table.appendChild(this.getField("название","text","name"));
				this.table.appendChild(this.getField("комментарии","textarea","dsc"));
   	}
     else if(this.id=="photo"){
      	title.innerHTML = words["formphoto"]
				author.innerHTML = words["authorphoto"];
				this.table.appendChild(this.getField("файл","file","file"));
				this.table.appendChild(this.getField("название","text","name"));
				this.table.appendChild(this.getField("комментарии","textarea","dsc"));
   	}
			else if(this.id=="pan"){	
	         	title.innerHTML = words["formpan"]
				author.innerHTML = words["authorpan"];
				this.table.appendChild(this.getField("файл","file","file"));
				this.table.appendChild(this.getField("название","text","name",1));
				this.table.appendChild(this.getField("комментарии","textarea","dsc"));
	      	}
			else if(this.id=="object"){	
	         	title.innerHTML = words["formobj"]
				author.innerHTML = words["authorobj"];				
				this.table.appendChild(this.getField("название объекта","text","name",1));
				this.table.appendChild(this.getField("краткое описание деятельности","textarea","dsc",1));
				this.table.appendChild(this.getField("телефон","text","phone"));
				this.table.appendChild(this.getField("время работы","text","time"));
				this.table.appendChild(this.getField("ключевые слова","textarea","keywords"));
				this.table.appendChild(this.getField("фотография","file","photo"));
	      	}
	    else if(this.id=="sticker"){
	         	title.innerHTML = words["formsticker"]
				author.innerHTML = words["authorsticker"];
				this.table.appendChild(this.getField("тип","colors","colors"));
				this.table.appendChild(this.getField("название","text","name"));
				this.table.appendChild(this.getField("комментарии","textarea","dsc"));
				var colors = document.add.colors;
				for(var i=0; i<colors.length; i++){
		  			colors[i].style.backgroundColor = colors[i].value
				}
				colors.onchange = function(){colors.style.backgroundColor = this.value}
	      	}
		}	
			
//		this.x = (x - map.deltaleft - map.proX)*map.zoom/map.edge0;
//		this.y = (y - map.deltatop - map.proY)*map.zoom/map.edge0;
		
		this.x = map.xx*map.zoom/map.edge0;
		this.y = map.yy*map.zoom/map.edge0;
			
//		x = ((x + 320)<=getlnsideWindowWidth()) ? x : getlnsideWindowWidth() - 320;
//		y = ((y + this.height)<=getlnsideWindowHeight()) ? y : getlnsideWindowHeight() - this.height;
		
		var x = map.xx+map.proX + map.deltaleft;
		var y = map.yy+map.proY+ map.deltatop;
		
		x = ((x + 320)<=getlnsideWindowWidth()) ? x : getlnsideWindowWidth() - 320;
		y = ((y + this.height)<=getlnsideWindowHeight()) ? y : getlnsideWindowHeight() - this.height;

		document.add.x.value = this.x;
    document.add.y.value = this.y;	
		document.add.level.value = map.level;
		
		this.form.style.left = x+"px";
	  this.form.style.top = y+"px";
		this.form.style.display = "block";		
	}
	this.preview = function(url){
	  if(url.search(":")!= - 1 && document.getElementById("preview")!=null)
      	document.getElementById("preview").src = url;
	}
	this.hide = function(){
  		this.form.style.display = "none";
		document.add.codeimg.value = "";
		this.clearForm();
	}
	this.submit = function(value){
		for(var i=0; i<this.req.length; i++){
			var n = this.req[i][0];
			var r = this.req[i][1];
			if(document.add[n]!=null && document.add[n].value==""){
				if (navigator.appName.indexOf('Microsoft') != -1) {
					alert("Вы не заполнили поле '" + r + "'");
				}
				else {
					message("Вы не заполнили поле <br/><strong>'" + r + "'</strong>");
				}
				return;
			}
		}
		
	  	var loading = document.getElementById("loading");
		//load_start();
		loading.style.display = "block";
		if(formas.id=="photo")
			url = '/photos/add/';
		else if(formas.id=="pan")
			url = '/pans/add/';
		else if(formas.id=="mark")
			url = '/markers/add/';
		else if(formas.id=="sticker")
			url = '/stickers/add/';
		else if(formas.id=="object")
			url = '/objects/add/';
		else if(formas.id=="mis")
			url = '/objects/mis/';
			

		func = function(responseText, responseJS){
			load_end()
			loading.style.display = "none";
			formas.hide();
			map.getObjects();
			if(typeof(responseJS) != "undefined" && responseJS!=null){
				if(responseJS.p == null)
					responseJS.p =0;
					message(responseText, responseJS.p)
			
			}else{
				message(responseText)
			}
		}	
			postFile(value, url, func);
			return false;
	}
	
	
	this.getField = function(name,type,iName,req){
		
		var tr = document.createElement("tr"),
			td = document.createElement("td"),
			td2 = td.cloneNode(true),
			str = "";
		
		td.innerHTML = name + ((req!=null)? "*" : "");
		td.width = "80";
		
		if(req!=null){
			this.req.push([iName, name]);
		}	
		this.req.push(['codeimg', 'Защитный код']);	
		
		
		switch(type){
			case "textarea":	str = "<textarea cols='' rows='' name='"+iName+"'></textarea>";
								this.height += 56;
								break;
			case "file":		str = "<input type='file' onchange='formas.preview(this.value)' size='19' id='file' name='file'/>";
								this.height += 30;
								break;
			case "colors":		str = "<select name='colors'>"+allColors+"</select>";
								this.height += 24;
								break;
			default:			str = "<input type='"+type+"' name='"+iName+"'/>";
								this.height += 24;
		}
		td2.innerHTML = str;
		tr.appendChild(td);
		tr.appendChild(td2);		
		
		return tr;
	}
	
	this.clearForm = function(){
		while (this.table.rows.length > 1) {
			this.table.removeChild(this.table.rows[1]);
		}
		this.height = 150;
	}
}
