var FrontEnd = {

	_bookmarkUrl: '',
	_bookmarkTitle: 'Адресный телефонный справочник',
	_startPageError: 'Вы можете сделать страницу стартовой через настройки своего браузера',
	_selectedRegions: new Array(),
	_selectedAdvRegions: new Array(),
	_selectedAdvRubric: '',

	setBookmarkUrl: function(url)
	{
		this._bookmarkUrl = url;
	},

	setBookmarkTitle: function(title)
	{
		this._bookmarkTitle = title;
	},

	setStartPage: function(obj)
	{
		if (Browser.IE && !Browser.Opera) {
			obj.style.behavior='url(#default#homepage)';
			obj.setHomePage(this._bookmarkUrl);
			return true;
		} else {
			alert(this._startPageError);
			return false;
		}
		return false;
	},

	addbookmark: function()
	{
		if (Browser.IE && !Browser.Opera) {
			window.external.AddFavorite(this._bookmarkUrl, this._bookmarkTitle);
			return true;
		} else if (Browser.Gecko) {  
			window.sidebar.addPanel(this._bookmarkTitle, this._bookmarkUrl, '');
			return true;
		} else if (Browser.Opera) {
			var bookmarkLink = document.createElement('a');
			if(bookmarkLink) {
				bookmarkLink.setAttribute('rel', 'sidebar');
				bookmarkLink.setAttribute('href', this._bookmarkUrl);
				bookmarkLink.setAttribute('title', this._bookmarkTitle);
				bookmarkLink.click();
				return true;
			}
			return false;
		} else {
			alert(this._startPageError);
			return false;
		}
		return false;
	},

	switchTabMainPage: function(tabId)
	{
		if(tabId == 'tabrubricator')
		{
			document.getElementById('lipopularquery').className = '';
			document.getElementById('tabpopularquery').style.display = 'none';
			document.getElementById('lirubricator').className = 'active';
			document.getElementById('tabrubricator').style.display = 'block';
		}
		else
		{
			document.getElementById('lirubricator').className = '';
			document.getElementById('tabrubricator').style.display = 'none';
			document.getElementById('lipopularquery').className = 'active';
			document.getElementById('tabpopularquery').style.display = 'block';  
		}
		return false; 
	},
    
	showRegions: function ()
	{
		this.showChildRegion('w_rname1', false);
		$('win_mesto').style.display='block';
	},
	closeRegions: function ()
	{
		this._selectedRegions = new Array();
		$('win_mesto').style.display='none';
		var collection = document.getElementsByName('w_rname');
		var txtRegion = '';
		for(var i=0; i < collection.length; i++){
			if(collection[i].checked && collection[i].value == 1){
				txtRegion = collection[i].getAttribute('valuetext');
				break;
			}
			var itemTxtRegion = collection[i].getAttribute('sitename');
			if(itemTxtRegion != null ){
				var siteId = collection[i].value;
				var colChild = document.getElementsByName('district_'+siteId);
				var regionsChecked = 0;
				for(var j=0; j < colChild.length; j++ ){
					if(colChild[j].checked == true){
						regionsChecked ++;
						this._selectedRegions.push(colChild[j].value);
					}
				}
				if(regionsChecked > 0){
					txtRegion = (txtRegion.length > 0) ? txtRegion + ', '+ itemTxtRegion : itemTxtRegion;
				}
			}
		}
		$('selectedRegion').value = this._selectedRegions.join();
		$('searchRegion').value = txtRegion;
		if(txtRegion == ''){
			 $('searchRegion').value = 'Везде';
		}
	},
	showChildRegion: function(chid, checkChild)
	{
		if($(chid).value == 1){
			var collection = document.getElementsByName($(chid).name);
			for(var i=0; i < collection.length; i++){
				if(collection[i].value != 1){
					collection[i].checked = false;
					this.showChildRegion(collection[i].id, true);
				}
			}
			$('w_rname1').checked = true;
		}
		else{
			$('w_rname1').checked = false;
			var collection = document.getElementsByName('district_'+$(chid).value);
			if($(chid).checked == true){
				if(checkChild){
					for(var i=0; i < collection.length; i++){
					   collection[i].checked = true; 
					}
				}
				$(chid+'_field').style.display='block';
			}else{
				if(checkChild){
					for(var i=0; i < collection.length; i++){
					   collection[i].checked = false; 
					}
				}
				$(chid+'_field').style.display='none';
			}
		}
	},
	regionCheck: function(varId)
	{
		var siteId = $(varId).getAttribute('valuesite');
		var collection = document.getElementsByName('district_' + siteId);
		var countUnChecked = 0;
		for(var i=0; i < collection.length; i++){
		   if(collection[i].checked == false)
			  countUnChecked++; 
		}
		if(countUnChecked == collection.length){
			$('w_rname1').checked = true;
			this.showChildRegion($('w_rname1').id, true);
			$('w_rname'+siteId).checked = false;
			$('w_rname'+siteId+'_field').style.display='none';
		}

	},
	enterCheck: function (field,e, eventName)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;

		if (keycode == 13)
		   {
		   try{
			 eval(eventName);
			 }
			 catch(err){
			 alert(err);
			 }
			 return false;
		   }
		else
		   return true;

	},
	getHelp: function()
	{
		parametrs = new Object();
		parametrs['width']  = '601';
		parametrs['height'] = '616';
		parametrs['left']   = (screen.width - 601)/2;
		parametrs['top']    = (screen.height - 616)/2;
		Windows.open('/popup_search_tips.htm', 'Help', parametrs);
	},    
	showAdvRegions: function ()
	{
		$('win_region').style.display='block';
	},
	closeAdvRegions: function ()
	{
		$('win_region').style.display='none';
	},
	getDistrict: function (id)
	{
		var objArgs = new Object();
		objArgs['siteId'] = id;
		objArgs['view'] = 'getDistrictById';
		makeCall('Search/GetSearchItems', objArgs);
	},
	getRegion: function (siteId, districtId)
	{
		var objArgs = new Object();
		objArgs['siteId'] = siteId;
		objArgs['districtId'] = districtId;
		objArgs['view'] = 'getDistrictById';
		makeCall('Search/GetSearchItems', objArgs);
	},
	allRaion: function (obj)
	{
		var objArgs = new Object();
		var form = $('add_region_form');
		var raions = form.getInputs('checkbox','raion');
		for(var i=0; i < raions.length; i++ ) {
			raions[i].checked = obj.checked; 
		}
       
		$('raion_all').checked = obj.checked;
	},
	getRaion: function (siteId, districtId, raionId)
	{
		var objArgs = new Object();
		objArgs['siteId'] = siteId;
		objArgs['districtId'] = districtId;
		objArgs['raionId'] = raionId;
		objArgs['view'] = 'getDistrictById';
		makeCall('Search/GetSearchItems', objArgs);
	},
	selectRaion: function()
	{

		var form = $('add_region_form');
		var raions = form.getInputs('checkbox','raion');
		var selectedValue = new Array();
		var selectedTxt = '';
		var selectedRegionTxt = '';
		this._selectedAdvRegions = new Array();
		for(var i=0; i < raions.length; i++ ) {
			if(raions[i].checked){
				selectedTxt += (selectedTxt == '') ? raions[i].value : ',' + raions[i].value;
				selectedRegionTxt = raions[i].getAttribute('regionvalue');
				selectedValue[selectedValue.length] = raions[i].id;
			}
		}
		if(selectedValue.length > 1){
			$('advregion').value = selectedRegionTxt;
		}else{
			$('advregion').value = selectedTxt;
		}
		this._selectedAdvRegions = selectedValue;
		this.closeAdvRegions();
	},
	showAdvRubric: function ()
	{
		$('adv_search_type_selection_1').style.display='block';
	},
	closeAdvRubric: function ()
	{
		$('adv_search_type_selection_1').style.display='none';
	},
	getLevel1: function()
	{
		var objArgs = new Object();
		objArgs['view'] = 'getRubricById';
		makeCall('Search/GetSearchItems', objArgs);  
	},
	getLevel2: function(levelId)
	{
		var objArgs = new Object();
		objArgs['rubricParentId'] = levelId;
		objArgs['levelRubric'] = 2;
		makeCall('Search/getListRubricsForAdvSearch', objArgs);
	},
	getLevel3: function(level1Id, level2Id)
	{
		var objArgs = new Object();
		objArgs['rubricLevel1Id'] = level1Id;
		objArgs['rubricParentId'] = level2Id;
		objArgs['levelRubric'] = 3;
		makeCall('Search/getListRubricsForAdvSearch', objArgs);
	},
	selectRubric: function(id, name)
	{
		this._selectedAdvRubric = id;
		$('advrubric').value = name;
		this.closeAdvRubric();
	},
	searchAdvanced: function()
	{
		var objArgs = new Object();
		objArgs['advname'] = $('advname').value;
		objArgs['advrubric'] = this._selectedAdvRubric;
		objArgs['advkeywords'] = $('advkeywords').value;
		objArgs['advbrand'] = $('advbrand').value;
		objArgs['advraion'] = this._selectedAdvRegions.join(',');
		objArgs['advaddress'] = $('advaddress').value;
		objArgs['advphone'] = $('advphone').value;
		objArgs['view'] = 'advancedSearch';
		$('args').value = Object.toJSON(objArgs);
		if(objArgs['advname'] != '' || objArgs['advrubric'] !='' || objArgs['advkeywords'] !='' || objArgs['advbrand'] !='' || 
			objArgs['advraion'] !='' || objArgs['advaddress'] !='' || objArgs['advphone'] !=''){
			$('form_advanced_search').submit();
		}else{
			alert($('adverr').innerHTML);
			//$('adverr').style.display = 'block';
		}
	}
	,
	searchAdvancedPager: function(pageNum, totalPages){
		if(!Validate.digits(pageNum) || totalPages < pageNum || pageNum < 1 ){
			alert('Неверный номер страницы.');
			return false;            
		}
		var objArgs = new Object();
		objArgs['advname'] = $('advname').value;
		objArgs['advrubric'] = $('advrubric').value;
		objArgs['advkeywords'] = $('advkeywords').value;
		objArgs['advbrand'] = $('advbrand').value;
		objArgs['advraion'] = $('advraion').value;
		objArgs['advaddress'] = $('advaddress').value;
		objArgs['advphone'] = $('advphone').value;
		objArgs['page'] = pageNum;
		objArgs['view'] = 'advancedSearch';
		$('args').value = Object.toJSON(objArgs);
		$('form_advanced_search').submit();
	},
	showChildRubrics: function(parentId){    
		var showElementId = 'child_' + parentId;
		var parentElementId = 'parent_' + parentId;
		if(document.getElementById(showElementId).style.display == 'block'){
			$(parentElementId).removeClassName('minus');
			$(parentElementId).removeClassName('bold');
			document.getElementById(showElementId).style.display='none';
		}else{
			$(parentElementId).addClassName('minus');
			$(parentElementId).addClassName('bold');
			document.getElementById(showElementId).style.display='block';
		}
	},
	initFlowplayer: function(videoId, path, width, height) {
		flashembed(
			"video_" + videoId, 
			{
				src:'/video/flowplayer/FlowPlayerLight.swf',
				width:width,  
				height:height,
				bgcolor:'#ffffff'
			},
			{config: {
				autoPlay: false,
				videoFile: path,
				initialScale: 'scale', 
				useNativeFullScreen: true,
				autoBuffering: false
				}
			} 
		 );
//		flowplayer("video_" + videoId, "/video/flowplayer/flowplayer-3.0.7.swf", { 
//			clip: { 
//				autoPlay: false, 
//				autoBuffering: false
//			},
//			onStart: function() { 
//				WebTraffic.incrimentVideoCnt(videoId); 
//			}
//		}); 
	}
};

var ClockPrototype = Class.create();
  
ClockPrototype.prototype = {
	date: new Object(),
	clientDate: new Date(),
	initialize: function(timestamp) {
		this.clientDate = new Date();
		this._setTime(timestamp);
	},
	_setTime: function(timestamp) {
		this.date = new Date();
		this.date.setTime(timestamp);
		/* synchronizing client and server seconds because request timeout */
		this.date.setSeconds(this.clientDate.getSeconds());
		var remainSec = parseInt(60 - this.date.getSeconds());
		setTimeout(function(thisObj) {
			return function() {
			thisObj.updateClock();
		} } (this), remainSec*1000);
	},
	updateClock: function() {
		if($('clock') != null) {
			this.date.setMinutes(this.date.getMinutes()+1);
			var hours   = this.date.getHours();
			var minutes = this.date.getMinutes();
			if(minutes < 10) {
				minutes = '0' + minutes;
			}
			var time = hours + ":" + minutes;
			setTimeout(function(thisObj) {
				return function() {
				thisObj.updateClock();
			} } (this), 60000);
			$('clock').update(time);
		}
	}
};
