$(function() {
  $('#lightbox a').lightBox();
});

jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel();
});

var toolbarAction = {

    validate : function(form) {
                   var ifr = document.getElementById('content_ifr');
                   if (ifr != undefined){
                       if(ifr.contentWindow){
                           var ifr_content = ifr.contentWindow.document.body.innerHTML;
                       } else if(ifr.contentDocument){
                           var ifr_content = ifr.contentDocument.document.body.innerHTML;
                       }
                   form.content.value = ifr_content;
                   }

	               url = form.action + "&isModal=1";
                   this.ajax(form, url);
                   return false;
    	       },

    mark : function(object) {
    	       for(i = 0; i < object.form.elements.length; i++) {

                   if((object.form.elements[i].type == "checkbox") && (object.form.elements[i].name == object.name + "[]")) {
                       object.form.elements[i].checked = object.checked;
                   }
               }
    	   },

    ajax : function(form, url) {
			   var params = $(form).serialize();
			   var self = this;
			   //alert(params);
			   $.ajax({type: "POST",
                       url: url,
                       data: params,
                       dataType: "json",
                       error: function(a, b, c) {
						   //alert('Не удалось завершить запрос!');
						   alert(a.responseText.slice(0, -1));
                       },
                       success: function(data){
						   //alert(data);
						   var arr = new String(data.callback).split(",");
                           var i = 0;
                           do {
							   eval("self." + arr[i] + "(data);");
                               i++;
                           } while(i < arr.length);
                       }
                   });
               return true;
    	   },

    edit : function(object, url) {
               var ajax = false;
               for(i = 0; i < object.form.elements.length; i++) {
                   var element = object.form.elements[i];
                   if(element.type == "checkbox" && element.checked == true && element.name == object.name + "[]") {
                       url = url + "/" + element.value + "&isModal=1";
                       this.mark(object);
                       $("#modal").html("");
                       ajax = this.ajax(object.form, url);
                       $("#modal").jqm({toTop: true}).jqmShow();
                       break;
                   }
               }
               if(!ajax) {alert("Ни одного элемента не выбрано!");}
               return false;
    	   },

    editFolder : function(object, url) {
    	             return this.edit(object, url)
    	         },

    addItem: function(object) {
                 addItemCounter = (typeof(addItemCounter)=="undefined") ? 0 : ++addItemCounter;
                 $("#blank").clone().addClass("item_add" + addItemCounter).attr({"id" : "add" + addItemCounter}).css({"display" : "block"}).insertBefore("#blank").removeAttr("style");
                 $("input:first", "#add" + addItemCounter).attr({"value" : "_add" + addItemCounter});
			 },

    addTree : function(object, url) {
    	          return this.edit(object, url)
    	      },

    addFolder : function(object, url) {
    	             return this.edit(object, url)
    	         },

	addFolderCommon : function(object, url) {
						  return this.save(object, url)
    	              },

    changepass : function(object, url) {
    	             return this.edit(object, url)
    	         },

    save : function(object, url) {
			   url = url  + "&isModal=1";
               this.mark(object);
               $('#modal').html('');
			   this.ajax(object.form, url);
               $('#modal').jqm({toTop: true}).jqmShow();
               return false;
    	   },

    showImage : function(url) {
                    $('#modal').attr("align", "left").html("<img src=" + url + ">");
                    $('#modal').jqm({toTop: true}).jqmShow();
                    return false;
    	   },

    active : function(object, url) {
    	         var id = "";
                 for(i = 0; i < object.form.elements.length; i++) {
                     var element = object.form.elements[i];
                     if(element.type == "checkbox" && element.checked == true && element.name == object.name + "[]") {
                         id = id + element.value + ",";
                     }
                 }
                 if(id == "") {
                     alert("Ни одного элемента не выбрано!");
                     return false;
                 }
                 url = url + "&isModal=1";
                 this.ajax(object.form, url);
                 this.mark(object);
                 return false;
    	     },

    remove : function(object, url)	{
    	         return this.removeGeneral(object, url, 'remove');
    	     },

    removeFolder : function(object, url) {
                       return this.removeGeneral(object, url, 'removeFolder');
                   },

    removeGeneral : function(object, url, action) {
						var count = 0;

                        for(i = 0; i < object.form.elements.length; i++) {
                            var element = object.form.elements[i];
                            if(element.type == "checkbox" && element.checked == true) {
                                count = count +  1;
                            }
                        }

                        if (count == 0) {
                            alert("Ни одного элемента не выбрано!");
                            return false;
                        } else {
                            answer = window.confirm("Вы хотите удалить запись?");
                            if (answer) {
								if(action == 'removeFolder') {
                                    object.form.action = url;
                                } else if (action == 'remove') {
                                    url = url + "&isModal=1";
                                    this.ajax(object.form, url);
                                    return false;
                                }
                            }
                        }
    	            },

    showHTML : function(data) {
                    //alert(data.content);
					if(typeof data.elementId == "undefined") data.elementId = "modal";
					//alert("data=" + data.elementId);
					$("#" + data.elementId).empty();
					$("#" + data.elementId).html(data.content);
    	        },

    changeActive : function(data) {
                       arr = data.changes;
                       for(i = 0; i < arr.active.length; i++) {
                           id = arr.objectId[i];
                           if (arr.active[i] == 0) {
                               $("." + data.elementId + id).css("background", "#DDDDDD");
                               $("#go" + id).hide();
                               $("#delete" + id).show();
                           } else {
                               $("." + data.elementId + id).css("background", "#FFFFFF");
                               $("#go" + id).show();
                               $("#delete" + id).hide();
                           }
                       }
    	           },

    removeFromHTML : function(data) {
						 arr = data.changes;
						 var type = ".";
                         if(typeof data.type != "undefined") type = data.type;
						 for(i = 0; i < arr.objectId.length; i++) {
							 $(type + data.elementId + arr.objectId[i]).remove();
                         }
                     },

    clearFromHTML : function(data) {						 arr = data.changes;
						 var type = ".";
                         if(typeof data.type != "undefined") type = data.type;
						 for(i = 0; i < arr.objectId.length; i++) {
							 $(type + data.elementId + arr.objectId[i]).html("");
                         }    	            },

    redirect : function(data) {
    	           if (window.location == data.url) {
                       var targetURL = new String(window.location).replace('#' + window.location.hash, '');
                   } else {
                       var targetURL = data.url;
                   }
                   window.location = targetURL;
				   $('#modal').html('<p align="center"><span>Обновление окна браузера...</span></p>');
    	       },

    removeImage: function(object, url) {
					 url = url + "&isModal=1";
					 this.ajax(null, url);
    	         },

    view: function(url) {
              url = url + "&isModal=1";
              this.ajax(null, url);
              $('#modal').jqm({toTop: true}).jqmShow();
    	  },

    vote: function (object, url) {
              id = "";
	          for (i = 0; i < object.form.elements.length; i++) {
                  var element = object.form.elements[i];
                  if(element.type == "radio" && element.checked == true && element.name == "item") {
                      id = element.value;
			          element.checked == false;
                  }
              }

			  if(id == "") {
                  alert("Выберите Ваш вариант!");
                  return false;
              }

              this.ajax(object.form, url);
          },

  	upload : function(object, url, name) {
                 url = url + "&isModal=1";
                 //alert('1');
				 //return false;
				 $("#upload1").upload({
					 name: name,
                     action: url,
                     onSubmit: function() {
					 },
                     onComplete: function(data) {
						 eval("data = " + data);
                         var callback = new String(data.callback).split(",");
                         if (data.elementId == "progress") {
                             $("#upload-fail").html("");
                             $("#progress").clone(true).attr({"id" : "progress" + data.objectId, "class" : "progress"}).removeAttr("style").insertBefore("#progress");
							 if (data.filename != null) {
								var new_variant_html ='<img style="max-width:100px;max-height:100px;" src="files/preview/'+data.filename+'">';
								$("#progress" + data.objectId).html(new_variant_html);
							 }
                             $("#progress" + data.objectId).append(data.content);
						 } else {
							 eval("toolbarAction." + callback + "(data);");
                         }
						 
                      }
                 });
 		     },

    commentsCountDecrease: function(data) {
    	                       count = $('#comments_count').html();
    	                       count = ((count - data.count) == 0) ? '0' : count - data.count;
    	                       $('#comments_count').html(count);
    	                   },

	move : function(object, url) {
               var count = 0;
               for(i = 0; i < object.form.elements.length; i++) {
                   var element = object.form.elements[i];
                   if(element.type == "checkbox" && element.checked == true && element.name == object.name + "[]") {
                       count++;
                   }
               }
               if(count != 2) {
                   alert("Выберите 2 элемента для перестановки (кроме корня дерева).");
               } else {
                   url = url + "&isModal=1";
                   this.ajax(object.form, url);
               }
               return false;
    	   },

    select : function(type, url) {
				   url = url  + "&isModal=1&realty_type=" + type;
				   this.ajax(type, url);
                   return false;
    	   },

    showForm : function(param, object, url) {
				   url = url  + "&isModal=1";
				   $("#modal").html("");
    			   this.ajax(object.form, url);
                   $("#modal").jqm({toTop: true}).jqmShow();
                   return false;
    	   },

    showAttr: function(data){
	              alert(data.elementId);
              },

    change: function(id, oClass) {
                $.each($("." + oClass), function(i, element) {
                    if ($(element).hasClass("bgcolor")) {
                        $(element).removeClass("bgcolor");
                    }
                    if ($(element).hasClass("top-left")) {
                        $(element).removeClass("top-left");
                    }
                    if ($(element).hasClass("top-right")) {
                        $(element).removeClass("top-right");
                    }
                });
                $("#left-" + id).addClass("top-left");
                $("#td-" + id).addClass("bgcolor");
                $("#right-" + id).addClass("top-right");;
            },

    addDemand : function(data) {
                    alert(data.content);
                    return false;
    	        },

    showBigImage: function(imageId, id ,url) {                      $("#" + id).attr({"src": url});
                      $("#lightbox").find("img").hide();
                      $("#" + imageId).show();
                  },

    getTpl: function(type, elementId, url) {
                url = url  + "&isModal=1" + "&type=" + type + "&elementId=" + elementId;
                this.ajax(null, url);
                return false;
    	    },

    selectChange: function(object) {    	              option = object.getElementsByTagName("option");
                      for(d = 0; d < option.length; d++) {
                          if(option[d].selected == true) {
                              document.getElementById("select" + object.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
                          }
                      }    	          },

    checkboxChange: function(object, id) {                        var checked = document.getElementById(id).checked;
                        document.getElementById(id).checked = !checked;
                        if (!checked) {
                            $(object).attr("class", "NFCheck NFh");
                        } else {                            $(object).attr("class", "NFCheck");
                        }    	        	},

    radioChange: function(object, url) {
					 var radioId = $(object).children().attr("id");
                     var radioValue = $(object).children().val();
                     var radioName = $(object).children().attr("name");
                     //alert('radioId=' + radioId + ', radioValue=' + radioValue + ', radioName=' + radioName);
					 document.getElementById(radioId).checked = true;

                     $.each($("input[@name = " + radioName  + "]"), function(i, element) {
                         $(element).parent().attr("class", "NFRadio");
                     });
                     $(object).attr("class", "NFRadio NFh");

					 switch(radioId) {
                         case "realty-type1":
                             $("#add-region-radio").show();
                             $("#add-regions-domains").hide();
                             $("#add-region1").click();
                             $("#add-region-names").show();
                             $("#add-gray-line").show();
                             $("#add-bottom-buttons").show();
                             toolbarAction.change(radioId, "realty-radio");
                         break;

                         case "realty-type2":
                             $("#add-region-radio").show();
                             $("#add-regions-domains").show();
                             $("#add-region-names").show();
                             $("#add-gray-line").show();
                             $("#add-bottom-buttons").show();
                             toolbarAction.change(radioId, "realty-radio");
                         break;

                         case "realty-type3":
                             $("#add-region-radio").show();
                             $("#add-regions-domains").show();
                             $("#add-region-names").show();
                             $("#add-gray-line").show();
                             $("#add-bottom-buttons").show();
                             toolbarAction.change(radioId, "realty-radio");
                         break;

                         case "realty-type4":
                             $("#add-region-radio").show();
                             $("#add-regions-domains").show();
                             $("#add-region-names").show();
                             $("#add-gray-line").show();
                             $("#add-bottom-buttons").show();
                             toolbarAction.change(radioId, "realty-radio");
                         break;

						 case "search-type1":
							 $("#search-attr-separator").show();
							 $("#search_attr").show();
                             $("#search_adv_attr").show();
							 $("#seacrh-region-radio").show();
                             $("#search-regions-domains").hide();
                             $("#search-region1").click();
							 $("#seacrh-region-names").show();
                             $("#seacrh-gray-line").show();
							 document.getElementById("order").value = "111";
                             toolbarAction.select(radioValue, url);
                             toolbarAction.change(radioId, "search-radio");
                         break;

                         case "search-type2":
							 $("#search-attr-separator").show();
							 $("#search_attr").show();
                             $("#search_adv_attr").show();
                             $("#seacrh-region-radio").show();
                             $("#search-regions-domains").show();
                             $("#seacrh-region-names").show();
                             $("#seacrh-gray-line").show();
                             document.getElementById("order").value = "211";
                             toolbarAction.select(radioValue, url);
                             toolbarAction.change(radioId, "search-radio");
                         break;

                         case "search-type3":
							 $("#search-attr-separator").show();
							 $("#search_attr").show();
                             $("#search_adv_attr").show();
                             $("#seacrh-region-radio").show();
                             $("#search-regions-domains").show();
                             $("#seacrh-region-names").show();
                             $("#seacrh-gray-line").show();
                             document.getElementById("order").value = "311";
                             toolbarAction.select(radioValue, url);
                             toolbarAction.change(radioId, "search-radio");
                         break;

                         case "search-type4":
							 $("#search-attr-separator").show();
							 $("#search_attr").show();
                             $("#search_adv_attr").show();
                             $("#seacrh-region-radio").show();
                             $("#search-regions-domains").show();
                             $("#seacrh-region-names").show();
                             $("#seacrh-gray-line").show();
                             document.getElementById("order").value = "411";
                             toolbarAction.select(radioValue, url);
                             toolbarAction.change(radioId, "search-radio");
                         break;

                         case "demand-type1":
                             $("#demand-region-radio").show();
                             $("#demand-region1").click();
                             $("#demand-regions-domains").hide();
                             $("#demand-region-names").show();
                             $("#demand-gray-line").show();
                             toolbarAction.select(radioValue, url);
                             toolbarAction.change(radioId, "demand-radio");
                         break;

                         case "demand-type2":
                             $("#demand-region-radio").show();
                             $("#demand-regions-domains").show();
                             $("#demand-region-names").show();
                             $("#demand-gray-line").show();
                             toolbarAction.select(radioValue, url);
                             toolbarAction.change(radioId, "demand-radio");
                         break;

                         case "demand-type3":
                             $("#demand-region-radio").show();
                             $("#demand-regions-domains").show();
                             $("#demand-region-names").show();
                             $("#demand-gray-line").show();
                             toolbarAction.select(radioValue, url);
                             toolbarAction.change(radioId, "demand-radio");
                         break;

                         case "demand-type4":
                             $("#demand-region-radio").show();
                             $("#demand-regions-domains").show();
                             $("#demand-region-names").show();
                             $("#demand-gray-line").show();
                             toolbarAction.select(radioValue, url);
                             toolbarAction.change(radioId, "demand-radio");
                         break;

                         case "search-region1":
                             toolbarAction.getTpl(1, 'search-tpl', url);
                         break;

                         case "search-region2":
                             toolbarAction.getTpl(2, 'search-tpl', url);
                         break;

                         case "add-region1":
                             toolbarAction.getTpl(3, 'add-tpl', url);
                         break;

                         case "add-region2":
                             toolbarAction.getTpl(4, 'add-tpl', url);
                         break;

                         case "demand-region1":
                             toolbarAction.getTpl(1, 'demand-tpl', url);
                         break;

                         case "demand-region2":
                             toolbarAction.getTpl(2, 'demand-tpl', url);
                         break;
                    }

    	         },

    showHideSearchForm : function()	{
                             if ( $("#searchForm").attr('style').indexOf('block') != -1 ){
                                 $("#searchForm").hide('slow');
								 $("#showHideFormLabel").html('Отобразить условия поиска');
                             } else {
                                 $("#searchForm").show('slow');
                                 $("#search-attr-separator").show();
                                 $("#search_attr").show();
                                 $("#search_adv_attr").show();
                                 $("#showHideFormLabel").html('Скрыть условия поиска');
                             }
                         },
    showHideLand : function(name, param)	{
                       if (param == 'lease') {
                           $("#" + name + "-land-td").hide();
                           $("#" + name + "-land-blank").show();
                       } else if (param == 'sale') {
                           $("#" + name + "-land-blank").hide();
                           $("#" + name + "-land-td").show();
                       }					   
                   },

    liveSearch : function(object, url) {
					 var arr = new String(document.getElementById('street').value).split(",");
					 if (arr[arr.length - 1].length < 3) return false;
					 if (document.getElementById('street').value.length == 0) {
						 document.getElementById("livesearch").innerHTML="";
                         document.getElementById("livesearch").style.border="0px";
						 return;
                     }
					 $('#livesearch').show('slow');
					 url = url + "&isModal=1";
					 this.ajax(object.form, url);
				 },
    
	streetSearchResult : function() {
							 var arr = new String($('#street').attr('value')).split(",");
                             var str = '';
                             if (arr.length > 1) {
                                 var i = 0;
								 do {
                                     str = str + arr[i] + ',';
                                     i++;
                                 } while(i < arr.length - 1);
							 }
							 $('#street').attr('value', str + $('#streets_select').attr('value') + ',');
                             $('#livesearch').hide('slow');
							 document.getElementById('street').focus();
						 },

    liveSearchProcess : function(object, url, selfEvent) {
                            if (selfEvent.keyCode == 40) {
                                document.getElementById('streets_select').focus();
                            } else {
                                toolbarAction.liveSearch(object, url);
                            }
                        },
    
	formReset : function(formName) {
				    document.getElementById(formName).reset();
				    $('#search_bid_type1').click();
				    $('#search-type1').click();
				},
    
	showAdvSearchPanel : function(form) {
                             if ( $("#advSearchPanel").attr('style').indexOf('block') != -1 ){
                                 $("#advSearchPanel").hide('fast');
    						     $("#showHideAdvLabel").html('Расширенный поиск');
                             } else {
                                 $("#advSearchPanel").show('fast');
    						     $("#showHideAdvLabel").html('Обычный поиск');
                             }
                         },
    addToChosen : function(url, id) {
	              url = url + "&isModal=1";
				  this.ajax(null, url);

	},

    alertMe : function(data) {
				  if ( $("#chosen_count").html() !=  data.count) {
                      $("#chosen_count").html(data.count);
				      alert(data.msg);
				  } else {
				      alert(data.errMsg);
				  }
	}

	}
