/*****************************************************************************
* Скрипт вывода информации по городам (front office)
*
* Внешние переменные: items_num, fist_row, button_plus_html,
*                     plus_is_active, site_id
*****************************************************************************/

var textblock3 = document.getElementById( 'cont' );





var req, obj, obj2;
var parametersRemainder = 0;
var clientBrowser = new browserCheck();

//alert(clientBrowser.ie)

function loadCitys( url, is_value ) {
   if( window.XMLHttpRequest ) {
      req = new XMLHttpRequest();
      req.onreadystatechange = processReq;
      req.open( "GET", url, true );
      req.send( null );
      
   } else if( window.ActiveXObject ) {
      req = new ActiveXObject( "Microsoft.XMLHTTP" );
		
      if( req ) {
         req.onreadystatechange = processReq;
         req.open( "GET", url, true );
         req.send();
   
      } // End if
      
   } // End if

} // End function loadParameters


function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires=' +expires_date.toGMTString() : '' ) +
		//expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );

}




function processReq() {
	if( req.readyState == 4 ) {
      if( req.status == 200 ) {
			var response = req.responseXML.documentElement;
			var t1        = response.getElementsByTagName( "textblock1" )[0].childNodes[0];
			var t2        = response.getElementsByTagName( "textblock2" )[0].childNodes[0];
			var t3        = response.getElementsByTagName( "textblock3" )[0].childNodes[0];
			var list      = response.getElementsByTagName( "list" )[0].getElementsByTagName( "link" );
			var city      = response.getElementsByTagName( "city" )[0];
			
			var city_id   = city.getAttribute('city_id');
			var name      = city.getAttribute('name');
			var exp_date  = city.getAttribute('exp_date');
			var page_path = city.getAttribute('page_path');
			setCookie( "city_id", city_id, exp_date, page_path );
			
			var items1 = document.getElementById('cityslist1');
			var items2 = document.getElementById('cityslist2');

			while( items1.childNodes.length ) {
				items1.removeChild( items1.lastChild );
			} // End while
			
			while( items2.childNodes.length ) {
				items2.removeChild( items2.lastChild );
			} // End while
			
			for( var i=0; i<list.length; i++ ) {
				var listname  = list[ i ].getAttribute( "name" );
				var newA1 = document.createElement( "a" );
				newA1.onclick = function() { change_city( this ); };
				newA1.setAttribute( "href", "#" );
				newA1.setAttribute( "num", list[ i ].getAttribute( 'id' ) );
				var newA2 = document.createElement( "a" );
				newA2.onclick= function() { change_city( this ); };
				newA2.setAttribute( "href", "#" );
				newA2.setAttribute( "num", list[ i ].getAttribute( 'id' ) );
				newA1.appendChild( document.createTextNode( listname ) );
				newA2.appendChild( document.createTextNode( listname ) );
				items1.appendChild( newA1 );
				items2.appendChild( newA2 );
				
			} // End for*/
			
			nameblock  = document.getElementById( 'punkt' );
			otherblock = document.getElementById( 'other' );
			textblock1 = document.getElementById( 'innerphone' );
			textblock2 = document.getElementById( 'address-city' );
			textblock3 = document.getElementById( 'cont' );
			nameblock.innerHTML  = name;
			if( otherblock ) otherblock.innerHTML  = name;
         	textblock1.innerHTML = ( t1 ) ? t1.nodeValue.replace( /(\(\d*\))/g, '<span>$1<\/span>' ) : '';
         	if( textblock2 ) textblock2.innerHTML = ( t2 ) ? t2.nodeValue : '';
         	textblock3.innerHTML = ( t3 ) ? t3.nodeValue : '';
			
      } else {
         alert("There was a problem retrieving the data:\n" + req.statusText);
      } // End if
      
   } // End if

} // End function processReq

function ar(t) {
	alert( document.getElementById(t).innerHTML );
}

function change_city( city_link ) {
   
   var city_id = city_link.getAttribute( "num" );
   loadCitys( '/cgi-bin/citys/get_xml_list.pl?site_id=1&city_id=' + city_id );
   
} // End function change_parameter_values_list







function processReqChangeParametersValue() {
   if( req.readyState == 4 ) {
      if( req.status == 200 ) {
         obj2.innerHTML = '<span><table border="0" cellpadding="0" cellspacing="0"><tr><td class="param">' + req.responseText + '</td><td valign="top" class="param"></td></tr></table></span>';
      } else {
         alert("There was a problem retrieving the data:\n" + req.statusText);
      } // End if
      
   } // End if

} // End function processReqChangeParametersValue


function processReqChangeParameters() {
   if( req.readyState == 4 ) {
      if( req.status == 200 ) {
         
         var response = req.responseXML.documentElement;
         var items = response.getElementsByTagName( "item" );
         
         while( obj.childNodes.length ) obj.removeChild( obj.childNodes[ 0 ] );
         
         var oOption = document.createElement( "OPTION" );
         obj.options.add( oOption );
         oOption.text = 'Выберите параметр'; 
         oOption.value = 0;
         parametersRemainder = items.length;
         for( var i = 0; i < items.length; i++ ) {
            var oOption = document.createElement( "OPTION" );
            obj.options.add( oOption );
            oOption.text = items[ i ].getAttribute( 'name' );
            oOption.value = items[ i ].getAttribute( 'id' );
            oOption.parameter_type = items[ i ].getAttribute( 'parameter_type' );
         
         } // End for
            
         obj.disabled = false;
   
      } else {
         alert( "There was a problem retrieving the XML data:\n" + req.statusText );
      } // End if
      
   } // End if

} // End function processReqChangeParameters


function change_parameters_list( element_name, element2_name ) {
   var used_ids_list = ''
   for( var i = 0; i < rows_num - 1 ; i++ ) {
      
      var obj4 = paramTable.rows[ fist_row + i ].cells[0].getElementsByTagName( 'input' );
      if( obj4.length > 0 ) { 
         if( used_ids_list ) used_ids_list  += ',';
         used_ids_list += obj4[0].value; 
         
      } // End if
      
   } // End for
   obj = document.getElementById( element_name );
   obj2 = document.getElementById( element2_name );
   obj.disabled = true;
   loadParameters( ( '/cgi-bin/admin/parameters/get_xml_list.pl?act=show_parameters&used_ids_list=' + used_ids_list + '&dir_id=' + dirid + '&site_id=' + site_id + '&' + parseInt( ( Math.random() * 1000000 ) ) ), 0, element_name, element2_name );
   if( obj2.firstChild.tagName.toLowerCase() == 'select' ) {
      obj2.firstChild.options[0].selected  = true;
      obj2.firstChild.disabled = true;
      
   } // End if
   
} // End function change_parameters_list


function change_parameter_values_list( element_name, element2_name ) {
   obj = document.getElementById( element_name );
   obj2 = document.getElementById( element2_name );
   if( obj2.firstChild && obj2.firstChild.tagName.toLowerCase() == 'select' ) {
      obj2.firstChild.options[0].selected  = true;
      obj2.firstChild.disabled = true;

   } // End if
   
   loadParameters( '/cgi-bin/admin/parameters/get_xml_list.pl?act=show_values&item_num=' + items_num + '&parameter_id=' + obj.options[obj.selectedIndex].value + '&parameter_type=' + obj.options[obj.selectedIndex].parameter_type + '&' + parseInt( ( Math.random() * 1000000 ) ), 1, element_name, element2_name );
   
} // End function change_parameter_values_list


// Добавляем в таблицу строку с параметром 
function addParameter() {
   
   if( !rows_num ) paramTable.deleteRow( fist_row );

   plus_is_active = false;
   items_num++;
   rows_num++;
   var myNewRow = paramTable.insertRow( fist_row + rows_num - 1 );
   //myNewRow.id= 'parameter_add_tr' + items_num;
   myNewRow.id= 'parameter_add_tr' + rows_num;
   
   var myNewCell = myNewRow.insertCell( -1 );
   myNewCell.className = "fld-name";
   myNewCell.align = "right";
   myNewCell.noWrap = true;
   myNewCell.style.verticalAlign = "middle"; 
   myNewCell.style.paddingTop    = "6px";
   myNewCell.innerHTML = '<select id="parameter_item_' + items_num + '" onchange="change_parameter_values_list( \'parameter_item_' + items_num + '\', \'parameter_add_td' + items_num + '\' );"><option>загрузка...</select>';
   myNewCell.innerHTML += '&nbsp;:';
   
   var myNewCell2 = myNewRow.insertCell( -1 );
//   myNewCell2.className = "bg1p3";
   myNewCell2.width = "100%";
   myNewCell2.colSpan = "2";
   myNewCell2.noWrap = true;
   myNewCell2.id = 'parameter_add_td' + items_num;
   
   myNewCell2.innerHTML = '<select style="width: 300px;"><option></select>';
   change_parameters_list( 'parameter_item_' + items_num, 'parameter_add_td' + items_num );
   
   return true;
   
} // End function addParameter


// Фиксируем параметр
function fixParameter( item_num ) {
   
   var obj = document.getElementById( 'parameter_add_td' + item_num );
   obj = obj.firstChild.firstChild.rows[0].cells[1];
//   alert(obj.firstChild.firstChild.rows[0].cells[1].innerHTML);
//   if( obj.is_selected != 1 && ( obj.firstChild.tagName.toLowerCase() == 'input' || obj.firstChild.tagName.toLowerCase() == 'div' || ( obj.firstChild.tagName.toLowerCase() == 'select' && obj.firstChild.options[obj.firstChild.selectedIndex].value != '' ) ) ) {
   if( obj.is_selected != 1 ) {
      var span = document.createElement( 'span' );
      obj.appendChild( span );

      span.innerHTML += '&nbsp;<input type="Button" value="-" onclick="delParameter(' + item_num + ' );" style="height: 19px;">';
      if( parametersRemainder > 1 && !plus_is_active ) {
         span.innerHTML += button_plus_html;
         plus_is_active = true;
         
      } // End if
      obj.is_selected = 1;
      parametersRemainder--;
      var obj3 = document.getElementById( 'parameter_item_' + item_num )
      var inputElement = createInput( 'hidden', '' + item_num, obj3.options[ obj3.selectedIndex].value )

      var myStrong = document.createElement('strong');
      myStrong.innerHTML = obj3.options[ obj3.selectedIndex].text;
      
      obj3.parentNode.insertBefore( myStrong, obj3 );
      obj3.parentNode.insertBefore( inputElement, obj3 );
      obj3.parentNode.removeChild( obj3 );
      
      if( obj.firstChild.tagName.toLowerCase() == 'select' ) obj.firstChild.remove( 0 );
      
   } // End if

} // End function fixParameter


// Удаляем из таблицы строку с параметром
function delParameter( num ) {
	//alert( num );
   var row = document.getElementById( 'parameter_add_tr' + num ).rowIndex;
   rows_num--;
   if( rows_num ) {
      paramTable.deleteRow( row );
      if( fist_row + rows_num == row ) {
         paramTable.rows[ row-1 ].cells[ 1 ].getElementsByTagName( 'span' )[ 1 ].innerHTML += button_plus_html;
         plus_is_active = true;
         
      } // End if         
   } else {
      paramTable.rows[row].cells[0].innerHTML = '&nbsp;';
      paramTable.rows[row].cells[1].innerHTML = button_plus_html;
      plus_is_active = true;
   } // End if

   /*var last_tr = paramTable.rows[ fist_row + rows_num - 1 ];
   var select_tag1 = last_tr.cells[0].getElementsByTagName( "select" )[0];
   var select_tag2 = last_tr.cells[1];
   parametersRemainder++;
   if( select_tag1 && select_tag2.firstChild ) {
      change_parameters_list( select_tag1.id, select_tag2.id );
   } else if ( select_tag2.firstChild && fist_row + rows_num != row && !plus_is_active ) {
      
      last_tr.cells[1].getElementsByTagName( 'span' )[ 1 ].innerHTML += button_plus_html;
      plus_is_active = true;
      
   } // End if  */

} // End function delParameter



// Создаём тег input
function createInput( type, name, value ) {
   var test = 'input';
   if( clientBrowser.ie ) test = '<input type="' + type + '" name="'+ name + '">';
   var inputElement = document.createElement( test );
   if( !clientBrowser.ie ) {
      inputElement.type = type;
      inputElement.name = name;
      
   } // End if   
   if( value ) inputElement.value = value;
   return inputElement;

} // End function createInput


// Проверяет тип браузера
function browserCheck() {
   this.ver     = navigator.appVersion;
   this.agent   = navigator.userAgent;
   this.dom     = document.getElementById ? 1 : 0;
   this.opera5  = this.agent.indexOf( "Opera 5" ) > -1;
   this.opera   = ( this.agent.indexOf( "Opera" ) > -1 ) ? 1 : 0;
   this.firefox = ( this.agent.indexOf( "Firefox" ) > -1 ) ? 1 : 0;
   this.ie5     = ( this.ver.indexOf( "MSIE 5" ) > -1 && this.dom && !this.opera5 ) ? 1 : 0;
   this.ie6     = ( this.ver.indexOf( "MSIE 6" ) > - 1 && this.dom && !this.opera5 ) ? 1 : 0;
   this.ie4     = ( document.all && !this.dom && !this.opera5 ) ? 1 : 0;
   this.ie      = this.ie5 || this.ie6;
   return this; 

} // End function browserCheck
