﻿$(document).ready(function() {

	$("#jq-popup").dialog({
		bgiframe: true,
		modal: true,
		autoOpen: false
	});
	
	ChangeNumberOfOptions();

});

var alreadyLoaded={};
function ImgZoomWindow(imgUrl){
	if(imgUrl!=null && imgUrl!=""){
		$('#jq-popup').html("<img src=\""+imgUrl+"\" />");
		$('#jq-popup').dialog('open');
		if(!alreadyLoaded[imgUrl]){
			$('#jq-popup').dialog('close');
			setTimeout("$('#jq-popup').dialog('open');",1000);
			alreadyLoaded[imgUrl]=true;
		}
	}
}

// Class ModalDialog begin
function ModalDialog(paramsHash){
	var parameters;
	// Constructor begin
	function Constructor(ph){
		parameters=ph;
		var p="no option";
		if(true==IsAnyOptionsInMyList()){
			p="compare";
		}else{
		}
		ModalDialog.popupElement=$("<div id=\"modal-dialog\">"+DialogText(p)+"</div>");
		$("#flash").css("display", "none");
		ModalDialog.popupElement.dialog(DialogParameters(p));
    ModalDialog.counter++;
	}
	Constructor(paramsHash);
	// Constructor end
	
	function IsAnyOptionsInMyList(){
		return (myListItemsCount>0 ? true : false);
	}
	
	function DialogText(p){
		var res="";
		switch(p){
			case "no option":
					//res="В «Моем списке» нет ни одного решения. Вы уверены, что хотите покинуть страницу с подробным описанием квартир?";
					res="Вы не сохранили ни одного варианта в «Мой список».<br/><br/>Вы уверены, что хотите покинуть страницу с подробным описанием квартир?";
				break;
			case "compare":
				res="В «Списке выбранного» "+myListItemsCount+" квартиры. Хотите сравнить эти варианты?";
				break;
			default:
				break;
		}
		return res;
	}
	
	function DialogParameters(p){
		var res={};
		switch(p){
			case "no option":
				res = {
					dialogClass : "modal-dialog popup-on-close",
					modal : false, 
					title : "\"Мой список\" пуст",
					buttons : {
						"Да, закрыть окно" : function(){
							$(this).dialog('close');
							PopupClose();
							isPopupActive=false;
						}, 
						"Нет, я хочу сохранить вариант" : function(){
							SaveOptionToMyList();
							$(this).dialog('close');
							$("#flash").css("display", "");
							isPopupActive=false;
						}
					}
				}
				break;
			case "compare":
				res = {
					dialogClass : "modal-dialog popup-on-close",
					modal : false, 
					title : "Сравнить варианты? ",
					buttons : {
						"Нет, я хочу посмотреть другие дома" : function(){
							$(this).dialog('close');
							PopupClose();
							isPopupActive=false;
						}, 
						"Да, перейти к \"Моему выбору\"" : function(){
							GoToMyList();
							$(this).dialog('close');
							PopupClose();
							isPopupActive=false;
						}
					}
				}
				break;
			default:
				break;
		}
		return res;
	}
	
	function SaveOptionToMyList(){
		AddSolutionToMyList(parameters.projectId);
	}

	function GoToMyList(){
		window.location="/mycabinet/mylist";
	}
}
ModalDialog.popupElement=null;
ModalDialog.counter=0;
// Class ModalDialog end

function AddSolutionToMyList(projectId,elem){
	//StandardAjaxAction(null,'AJAX/AddToMyList.aspx?PopUp=1&ProjectId='+projectId,'RemoveFromMyList',document.getElementById('MyListLink'+isPopupActive?"PopUp":"")+projectId,true);
	StandardAjaxAction(null,'AJAX/AddToMyList.aspx?PopUp=1&ProjectId='+projectId,'RemoveFromMyList',document.getElementById("MyListLink"+(isPopupActive?"PopUp":"")+projectId),true);
	myListItemsCount++;
	ChangeNumberOfOptions();
}

function RemoveSolutionFromMyList(projectId){
	var p2='AJAX/AddToMyList.aspx?PopUp=1&Remove=1&ProjectId='+projectId;
	var p4=document.getElementById("MyListLink"+(isPopupActive?"PopUp":"")+projectId);
	StandardAjaxAction(null,p2,'AddToMyList',p4,true);
	myListItemsCount--;
	ChangeNumberOfOptions();
}

function GetMyListItemsCount(){
  GetJson();
}

function GetJson(){
	$.getJSON(
		"http://sevgorod.stage.quantumart.ru/ajax/mylistdata.aspx?format=json&getdata=mylistcount&"+userID+"&"+Math.round(Math.random()), 
		function(_data){
			myListItemsCount=_data;
		}
	);
}

//
// Блок функций для изменения значений в пункте меню "Мой список"
//

function ChangeNumberOfOptions(){
	var a=$("#nav > tbody > tr > td > div > a:[href='"+SitePath+"mycabinet/mylist/']");
	if(a.length==0){
		a=$("#nav > tbody > tr > td > div > a:[title='Мой список']");
	}
	var span=$(a).find("span");
	var optionsNumber=myListItemsCount;
	var spanText=" ("+(optionsNumber)+" "+_variantov_(optionsNumber)+")";
	if(span.length==0){
		var span=$("<span style=\"font-size: 7pt; clear: both ! important; display: block;\">"+spanText+"</span>");
		$(a).css("padding-top", "0");
		$(span).appendTo($(a));
	}else{
		$(span).text(spanText);
	}
}

function GetOptionsNumber_localVersion(){
	return (Math.round(Math.random()*1000));
}

function GetOptionsNumber(){
	return myListItemsCount;
}

function _variantov_(number){
	var res="вариант";
	strNumber=number.toString();
	var digits=strNumber[strNumber.length-1];
	var teens=strNumber.length>1?strNumber[strNumber.length-2]:0;
	if(1==digits && 1!=teens){
		res+="";//вариант
	}else if(digits>1 && digits<5 && teens!=1){
		res+="а";//варианта
	}else{
		res+="ов";//вариантов
	}
	return res;
}

function Delay(iMs){ // iMs=[number TimeInMilliSeconds]
    var iStart=new Date;
    while(new Date-iStart<iMs);
}

/*
 * Dialog class
*/
function Dialog(paramsHash){
	
	var popupNode;
	
	function Constructor(ph){
		if(ph.dlgParams.dialogClass){
			popupNode=$("."+ph.dlgParams.dialogClass).children(".ui-dialog-content");
			popupNode.html(DialogText(ph));
			popupNode.dialog("open");
		}
		if(!popupNode.length || popupNode.length!=1){
			popupNode=$("<div id=\"modal-dialog-"+Dialog.index+"\">"+DialogText(ph)+"</div>");
			popupNode.dialog(DialogParameters(ph));
		}
	}
	Constructor(paramsHash);
	
	function DialogText(ph){
		var res="";
		if(ph.content.src){
			var url=ph.content.src;
			if(ph.content.local && ph.content.local==true){
			}else{
				url=SitePath+url;
			}
			var resp=$.ajax({
				url : url, 
				async : false
			});
			if(ph.content.jqSelector){
				res=$(ph.content.jqSelector,resp.responseText);
			}else{
        //var respT=res.responseText;//.split('"').join('\\"');
				//res=$(res.responseText.replaceAll("\u0009","").replaceAll("\u000A","").replaceAll("\u000D","").replace(/^\s+|\s+$/g, '').replaceAll("\"", "'").replaceAll("<!--[CDATA[","").replaceAll("]]-->",""));
				res=resp.responseText;
			}
			if(ph.content.fromOldPopup && ph.content.fromOldPopup==true){
				res=$("HtmlContent",res).html();
				try{
					res=res.replace("<!--[CDATA[","");
				}catch(ex){}
				try{
					res=res.replace("]]-->","");
				}catch(ex){}
				res="<div class=\"popup\">"+$(".popup",res)[0].innerHTML+"</div>";
			}else{
				if(ph.content.xmlNode){
					if(ph.content.xmlNode.name){
						res=$(ph.content.xmlNode.name,res);
					}else if(ph.content.xmlNode.id){
						res=$("#"+ph.content.xmlNode.name,res);
					}else if(ph.content.xmlNode.klass){
						res=$("."+ph.content.xmlNode.name,res);
					}
					if(ph.content.xmlNode.index){
						res=$(res)[ph.content.xmlNode.index];
					}else{
						res=$(res)[0].innerHTML;
					}
				}
				if(ph.content.wrapWith){
					var startWrap="",endWrap="";
					if(ph.content.wrapWith.tagName){
						startWrap="<"+ph.content.wrapWith.tagName;
						endWrap="</"+ph.content.wrapWith.tagName+">";
						for(var i in ph.content.wrapWith){
							if(i!='tagName'){
								startWrap+=" "+i+"=\""+ph.content.wrapWith[i]+"\"";
							}
						}
						startWrap+=">";
					}
					res=$(startWrap+"\n\t"+res.html()+"\n"+endWrap);
				}
				if(res.jquery){
					res=res.html();
				}
			}
		}
		return res;
	}
	
	function DialogParameters(ph){
		var res={};
		var _default={
			dialogClass:"modal-dialog",
			modal:true, 
			//title:"Test title. Dialog "+Dialog.index,
			autoOpen:true, 
			open: function(event, ui){
				//Возможно, лучше поменять местами по значению эти переменные
				Dialog.counter++;
				Dialog.index++;
				ReplaceSelects(document);
				HideFlash();
			}, 
			close: function(event, ui) {
				Dialog.counter--;
				ShowFlash();
			}
		}
		if(ph.dlgParams){
			res=ph.dlgParams;
		}
		res=$.extend(_default,res);
		return res;
	}
	
	function HideFlash(){
		$("#flash").css("visibility", "hidden");
	}

	function ShowFlash(){
		if(Dialog.counter==0){
			$("#flash").css("visibility", "visible");
		}
	}
}
Dialog.index=0;
Dialog.counter=0;

//Added by Anton Grinberg function for changing button in popup ( from add to delete and back)
function ChangeButton(state)
{
	
	el = document.getElementById("AddRemoveToList");
	if(el)
	{
		if(state == 1)
		{	
			var clickF = new String(el.attributes["onclick"].value);
			clickF = clickF.replace("ChangeButton(1)","ChangeButton(0)");

			clickF = clickF.replace(/AddSolutionToMyList/,"RemoveSolutionFromMyList");

			el.setAttribute("onclick", clickF);
			el.innerHTML = "<img src  = \"img/EstatePopup_deleteFromMyListButton.gif\"/>";
		}
		else
		{
			var clickF = new String(el.attributes['onclick'].value);

			clickF = clickF.replace("ChangeButton(0)","ChangeButton(1)");

			clickF = clickF.replace(/RemoveSolutionFromMyList/, "AddSolutionToMyList");
			
			el.setAttribute("onclick", clickF);
			el.innerHTML = "<img src  = \"img/EstatePopup_addToMyListButton.gif\"/>";
		}
	}
	else
		alert("no element");

}