function o ( id ) { 
	return document.getElementById( id );
}	


function sb ( ob, v ) { 
	ob.style.filter = 'alpha(opacity='+v+')';
	ob.style.opacity = v/100;
}					

function av( obj, type, fn ) {

	if (obj.addEventListener)  {
	
		obj.addEventListener( type, fn, false );
		
	} else if (obj.attachEvent) {
	
		obj["e"+type+fn] = fn;
		
		obj[type+fn] = function() {
		
			obj["e"+type+fn]( window.event );
		
		};
	
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

san = {
	
	timers : new Object,
	
	make : function ( name, action, from, to, time, after ) {
	
		if ( san.timers[name] == null ) {
			san.timers[name] = new Object;
		}
		
		san.timers[name].action = san.timers[name].action || action;
		
		san.timers[name].from = san.timers[name].current || from || 0;
		san.timers[name].to = to || 0;
		
		san.timers[name].ftime = new Date().getTime() + ( time || 400 );
		san.timers[name].time = time || 400;
		
		san.timers[name].after = after || false;
		
		san.timer( name );
		
	},
	
	timer : function ( n ) {
		var t = san.timers[n];
		var s = t.ftime - new Date().getTime();
		
		if ( t.timer != null ) {
			clearTimeout( t.timer );
		}
		
		if ( s <= 0 ) {
		
			var val = t.to;
			setTimeout( t.action.replace( '%val%', val ), 0 );
			
			if ( t.after != false ) {
				setTimeout( t.after, 0 );
			}
			
		} else {

			var val = parseInt( t.from + ( t.to - t.from ) * ( 1 - ( s / t.time ) ) );
			
			setTimeout( t.action.replace( '%val%', val ), 0 );
			t.timer = setTimeout( "san.timer('"+n+"')", 15 );

		}
		
	} 
};

function setCookie( name, value, expires, path, domain, secure ) {
	document.cookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}

function getCookie( name ) {
	var cookie = " " + document.cookie; var search = " " + name + "="; var setStr = null; var offset = 0; var end = 0;
	
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset);
			
			if (end == -) {
				end = cookie.length;
			}
			
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	
	return setStr;

}
calc = {

	formula : '((("+field[\'s\']+"*((((8000+("+field[\'type\']+"/10))+("+field[\'potol\']+"/10))*("+field[\'tol\']+"/10))+("+field[\'fund\']+"/10)+("+field[\'pkrovl\']+"/10)+("+field[\'mont\']+"/10)+("+field[\'pro\']+"/100)+("+field[\'okna\']+"/10)+("+field[\'ele\']+"/10)+("+field[\'vodo\']+"/10)+("+field[\'kan\']+"/10)+("+field[\'otop\']+"/10)+("+field[\'nar\']+"/10)))+("+field[\'vs\']+"*8000)+("+field[\'anys\']+"*6000)+("+field[\'dver\']+"*2500)+"+field[\'lest\']+")/1000)',
	money : 'тысяч рублей',
	
	validate : function ( value ) {

		if ( 
				( ( value.keyCode || value.which ) > 0 && ( value.keyCode || value.which ) < 0 ) ||
				( value.keyCode || value.which ) == 0 
			) {
			
			return value.keyCode || value.which;
		} else {
			return false;
		}
		
	},
	
	count : function () {
		var form = o( 'calcform' ); 
		var form_length = form.length;
		
		var field = new Object;
		
		for ( i = 0; i < form_length; i++ ) {
		
			tt = form.elements[i].type; 
			
			if (tt == 'hidden' || tt == 'text' || tt == 'password' || tt == 'select-one' || tt == 'textarea') {
			
				field[form.elements[i].name] = ( form.elements[i].value == '' )? 0 : form.elements[i].value; 
				
			} else if (tt == 'checkbox' || tt == 'radio') {
				if (form.elements[i].checked == true) {
				
					if ( tt == 'radio' )
						field[form.elements[i].name] = form.elements[i].alt;
					if ( tt == 'checkbox' )
						field[form.elements[i].name] = form.elements[i].value;
						
				} else {
					if ( field[form.elements[i].name] == undefined )
						field[form.elements[i].name] = 0;
				}
			}
		}

		eval( 'var price = "'+this.formula+'"; price = eval(price);' );
		this.set_price( price );
	
	}, 

	set_price : function ( price ) {
	
		old = parseInt( o( 't_sum' ).innerHTML );
		o( 't_sum' ).innerHTML = Math.floor( price ) + ' ' + this.money;
		
		ch = Math.floor( price ) - Math.floor( old );
		
		if ( ch != 0 ) {
		
			o( 'summ_mc' ).style.display = 'block';
			
			o( 'summ_mc' ).className = ( ch > 0 )? 'cl_summ_text green' : 'cl_summ_text red' ;
			
			o( 'summ_mc' ).innerHTML = ( ( ch > 0 )? '+' :'' ) + ch + ' ' + this.money;
			
			san.timers['ch'] = new Object;
			san.timers['ch'].action = 'o( \'summ_mc\' ).style.marginTop = \'%val%px\';';
			san.timers['ch'].from = ( ch > 0 )? -50 : 0;
			san.timers['ch'].to = ( ch > 0 )? 0 : 50;
			san.timers['ch'].ftime = new Date().getTime() + 600;
			san.timers['ch'].time = 600;
			san.timers['ch'].after = 'o( \'summ_mc\' ).style.display = \'none\';';
			san.timer( 'ch' );
			
			/* san.make( 'ch_blend', "sb( o( 'summ_mc' ), %val% );", ( ch > 0 )? 50 : 100, ( ch > 0 )? 100 : 50, 300 ); */
			
		}
		
	},
	
	print : function () {
		var form = o( 'calcform' ); 
		
		form.action = 'print.php';
		calcform.usumma.value = o( 't_sum' ).innerHTML;
		form.submit();
		
	},
	
	notsend : function () {
		
		var form = o( 'calcform' ); 
		var form_length = form.length;
		for ( var i = 0; i < form_length; i++ )
			form.elements[i].disabled = false;
				
		san.make( 
			'cf', 
			"var v = %val%; o( 'cont_form' ).style.height = v+'px'; o( 'cl_main_field' ).style.height = "+o( 'cl_main_field' ).clientHeight+" - ( 2*v );",
			o( 'cont_form_inner' ).clientHeight+10, 
			1 
		);
		
		san.make( 
			'cf2', 
			"o( 'cl_cancel' ).style.marginRight = %val% + 'px';", 
			0, 
			-100,
			false,
			"o( 'cl_cancel' ).style.visibility = 'hidden'; o( 'cl_send' ).style.textDecoration = '';"
		);
			
	},
	
	send : function () {
		
		if ( o( 'cont_form' ).clientHeight < 4 ) {
			
			var form = o( 'calcform' ); 
			var form_length = form.length;
			for ( var i = 0; i < form_length; i++ )
				form.elements[i].disabled = true;
				
			san.make( 
				'cf', 
				"var v = %val%; o( 'cont_form' ).style.height = v + 'px'; o( 'cl_main_field' ).style.height = "+o( 'cl_main_field' ).clientHeight+" - ( 2 * v );",
				1, 
				o( 'cont_form_inner' ).clientHeight+10
			);
			
			o( 'cl_cancel' ).style.visibility = 'visible';
			
			san.make( 
				'cf2', 
				"var v = %val%; o( 'cl_cancel' ).style.marginRight = v + 'px';", 
				-50, 
				0
			);
			
			o( 'cont_date1' ).style.background = '';
			o( 'cont_date2' ).style.background = '';
			
			o( 'cl_send' ).style.textDecoration = 'underline';
			
		} else {
			var er = 0;
			var c1 = o( 'cont_date1' ).value;
			var c2 = o( 'cont_date2' ).value;
			
			if ( c1.length < 3 ) {
				o( 'cont_date1' ).style.background = '#fc7b7b';
				er++;
			} else {
				o( 'cont_date1' ).style.background = '#fff';
			}
			
			if ( c2.length < 6 || c2 == 'телефон, e-mail или icq' ) {
				o( 'cont_date2' ).style.background = '#fc7b7b';
				er++;
			} else {
				o( 'cont_date2' ).style.background = '';
			}
			
			if ( er == 0 ) {
				var form = o( 'calcform' ); 
				var form_length = form.length;
				form.style.visibility = 'hidden';
				for ( var i = 0; i < form_length; i++ )
					form.elements[i].disabled = false;
				
				calcform.uname.value = c1;
				calcform.ucontact.value = c2;
				calcform.usumma.value = o( 't_sum' ).innerHTML;
				calcform.target = '_self';
				calcform.action = '';
				calcform.submit();
			}
			
		}
	}
	
};

window.onload = function () {calc.count(); };
