var resizeTimer = null;
var resizeInterval = 777;
var horA = 'none';
var slideAN = 'auto';
var slideANum = 0;
var slideT = 555;
var slideW = 420;
var slides;
var slidesL = 10;
var windowW = Math.floor( document.documentElement.clientWidth * 0.92 - slideW - 20 );
var slideVW = Math.floor( windowW / slidesL );

var from_out = false;

function trim(str){
    charlist = ' \xA0';
    var re = new RegExp( '^[' + charlist + ']+|[' + charlist + ']+$', 'g' );
    return str.replace( re, '' );
};

var getXHR = ( function(){
	var xhr;
	if(typeof XMLHttpRequest != 'undefined') return function(){ return xhr = new XMLHttpRequest() }
	else if(window.ActiveXObject){
		var xmlVers = ['MSXML2.XMLHttp.4.0', 'MSXML2.XMLHttp.3.0', 'MSXML2.XMLHttp'];
		for( var i = 0; i < xmlVers.length; i++ ){
			try{
				xhr = new ActiveXObject(xmlVers[i]);
				return function(){ return xhr; }
			} catch( err ){}
		}
		throw new Error('Невозможно создать объект XMLHttp');
	}
	return function(){ return xhr };
} )();
function sendXHR( http_string, post_string, on_ready, on_false, obj ){
	var xhr = getXHR();
	xhr.open( 'POST', http_string, true );
	xhr.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded');
	xhr.setRequestHeader( 'X-Requested-With', 'XMLHttpRequest');
	xhr.onreadystatechange = function(){
		if(xhr.readyState != 4){ return; }
		clearTimeout(xhrTimeOut);
		if(xhr.status == 200){
			var r = eval( '('+xhr.responseText+')' );
			if( !r['error'] )	on_ready.call( null, r, obj );
			else	on_false.call( null, r, obj );
		}
	}
	xhr.send( post_string );
	var xhrTimeOut = setTimeout( function(){ on_false.call( null, xhr_timeout ), xhr.abort() }, 10000 );
};

var xhr_timeout = 'Время ожидания ответа истекло';
var xhr_error = 'Ошибка при выполнении запроса';

function sendXHRNew( http_string, post_string, on_ready, on_error, obj ) {
	// Create an object
	var xhr;
	try { xhr = new ActiveXObject( 'Msxml2.XMLHTTP' ) }
	catch( e ) {
		try { xhr = new ActiveXObject( 'Microsoft.XMLHTTP' ) }
		catch( E ) { xhr = false }
	}
	if( !xhr && typeof XMLHttpRequest != 'undefined' ) { xhr = new XMLHttpRequest() }

	// Initiate the object
	if( post_string == null ) { xhr.open( 'GET', http_string, true ) }
	else { xhr.open( 'POST', http_string, true ) }
	xhr.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
	xhr.setRequestHeader( 'X-Requested-With', 'XMLHttpRequest' );
	xhr.send( post_string );

	// Check readyState
	var xhrTimeOut = setTimeout( function() { xhr.abort(); on_error.call( null, xhr_timeout ) }, 10000 );
	var checkReady = function() {
		if( xhr.readyState == 4 ) {
			clearTimeout( xhrTimeOut );
			if( xhr.status == 200 ) { on_ready.call( null, eval( '(' + xhr.responseText + ')' ), obj ) }
			else { on_error.call( null, xhr_error + ': ' + xhr.status, obj ) }
		}
		else { setTimeout( checkReady, 100 ) }
	}
	setTimeout( checkReady, 100 )
};

function str_replace ( search, replace, subject ) {
	if(!(replace instanceof Array)){
		replace=new Array(replace);
		if(search instanceof Array){
			while(search.length>replace.length){
				replace[replace.length]=replace[0];
			}
		}
	}
	if(!(search instanceof Array))search=new Array(search);
	while(search.length>replace.length){
		replace[replace.length]='';
	}
	if(subject instanceof Array){
		for(k in subject){
			subject[k]=str_replace(search,replace,subject[k]);
		}
		return subject;
	}
	for(var k=0; k<search.length; k++){
		var i = subject.indexOf(search[k]);
		while(i>-1){
			subject = subject.replace(search[k], replace[k]);
			i = subject.indexOf(search[k],i);
		}
	}
	return subject;
}

var resizeHandler = function(){
	windowW = Math.floor( document.documentElement.clientWidth * 0.92 - slideW - 20 );
	slideVW = Math.floor( windowW / slidesL );
	if( slideANum + 1 ){
		for( var i = 0; i < slidesL; i++ ){
			if( i <= slideANum ){
				slides.eq(i).css( {left: ( i * slideVW )+'px'} );
			}
			else {
				slides.eq(i).css( {left: ( slideW + i * slideVW )+'px'} );
			}
		}
	}
}

function prevOver(){
	switch( this.getAttribute('id') ){
		case 'preview-auto': document.getElementById('preview-chasi').style.display = 'none';	break;
		case 'preview-gruz': document.getElementById('preview-tel').style.display = 'none';	break;
		case 'preview-nedvij': document.getElementById('preview-juvel').style.display = 'none';	break;
		case 'preview-plav': document.getElementById('preview-moto').style.display = 'none';	break;
		case 'preview-spets': document.getElementById('preview-raznoe').style.display = 'none';
	}
	$('#'+this.getAttribute('id')+'-hv').stop().css( {display:'block'} ).animate( {opacity:1}, {duration:444} );
}
function prevOut(){
	$('#'+this.getAttribute('id')+'-hv').stop().animate( {opacity:0}, {duration:222, complete:function(){
		switch( this.getAttribute('id') ){
			case 'preview-auto-hv': document.getElementById('preview-chasi').style.display = 'block';	break;
			case 'preview-gruz-hv': document.getElementById('preview-tel').style.display = 'block';	break;
			case 'preview-nedvij-hv': document.getElementById('preview-juvel').style.display = 'block';	break;
			case 'preview-plav-hv': document.getElementById('preview-moto').style.display = 'block';	break;
			case 'preview-spets-hv': document.getElementById('preview-raznoe').style.display = 'block';
		}
		$(this).css( {display:'none'} );
	}} );
}

function changeFI(){
	reWin = /.*\\(.*)/;
	var fileTitle = this.value.replace(reWin, "$1");
	reUnix = /.*\/(.*)/;
	fileTitle = fileTitle.replace(reUnix, "$1");

	var RegExExt =/.*\.(.*)/;
	var ext = fileTitle.replace(RegExExt, "$1");

	var pos;
	if( ext ){
		switch( ext.toLowerCase() ){
			case 'doc': pos = '0'; 			pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'bmp': pos = '16'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'jpg': pos = '32'; break;
			case 'jpeg': pos = '32'; break;
			case 'png': pos = '48'; break;
			case 'gif': pos = '64'; break;
			case 'psd': pos = '80'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'mp3': pos = '96'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'wav': pos = '96'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'ogg': pos = '96'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'avi': pos = '112'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'wmv': pos = '112'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'flv': pos = '112'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'pdf': pos = '128'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'exe': pos = '144'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			case 'txt': pos = '160'; 		pos = '176'; fileTitle = 'Неверный тип изображения'; break;
			default: pos = '176'; fileTitle = 'Неверный тип изображения'; break;
		};
		$(this.parentNode.parentNode).next().children().eq( 0 ).css( {background:'url(/images/form-files-icons.png) no-repeat 0 -'+pos+'px'} ).text( fileTitle );
	}
}

function check_captcha( path, obj ){
	$(obj.parentNode).children( "div" ).remove();
	if( trim( $(obj).val() ) )	sendXHR( path, 'captcha=' + $(obj).val(), c_cS, c_cS, obj );
}
var c_cS = function( r, obj ){
	$(obj.parentNode).append( "<div class='captcha-result'>" + r['msg'] + "</div>" );
	setTimeout( function(){ $('div.captcha-result').fadeOut( 222 ) }, 2000 );
}

function navPrev( obj, len ) {
	var _jr = $( obj ).next().children();
	var left = parseInt( _jr.css( 'margin-left' ) );
	if( left + len <= 0 ) {
		var full_shift = left + len;
		_jr.animate( {marginLeft: full_shift + 'px'}, 333 );
	}
}
function navNext( obj, len ) {
	var _jr = $( obj ).prev().children();
	var w = parseInt( _jr.width() );
	var left = parseInt( _jr.css( 'margin-left' ) );
	if( left - len > -w ) {
		var full_shift = left - len;
		_jr.animate( {marginLeft: full_shift + 'px'}, 333 );
	}
}

$(document).ready( function(){
	$('div.h-sign').mouseover( function(){
		this.style.backgroundPosition = '0px 0px';
	} ).mouseout( function(){
		this.style.backgroundPosition = '0px -54px';
	} ).click( function(){
		this.previousSibling.submit();
	} );
	$("div.dline-bg a[href*='"+horA+"']").css( {color:'#F5ECD5', textDecoration:'none'} );
	
	$('div.wrr').hover( prevOver, prevOut );

	$( '#btn-del' ).click( function() {
		if( confirm( 'Вы действительно хотите удалить данное объявление?' ) ) {
			sendXHRNew( "/announces/position/" + this.getAttribute( "index" ) + "/del", "", del_succ, del_err, this );
		}
	} )
	$( '#btn-app' ).click( function() {
		sendXHRNew( "/announces/position/" + this.getAttribute( "index" ) + "/app", "", app_succ, app_err, this );
	} );

	slides = $('div.slider').children();
	slideANum = slides.index( $( 'div.'+ slideAN ).eq(0) );
	slides.children('[id]').bind( 'click', function(){
		var newSlideAN = this.getAttribute('id');
		if( newSlideAN == slideAN ) return false;
		var newSlideANum = slides.index( $( 'div.'+ newSlideAN ).eq(0) );
		for( var i = 0; i < slidesL; i++ ){
			if( i <= newSlideANum ){
				slides.eq(i).delay( parseInt( i * slideT / slidesL ) ).animate( {left: ( i * slideVW )+'px'}, {duration:slideT, easing:"easeInQuad"} );
			}
			else {
				slides.eq(i).delay( parseInt( i * slideT / slidesL ) ).animate( {left: ( slideW + i * slideVW )+'px'}, {duration:slideT, easing:"easeInQuad"} );
			}
		}
		setTimeout( function(){
			slides.eq(newSlideANum).children().eq(4).css( {opacity:0.66} ).animate( {opacity:0}, {duration:slideT, complete:function(){
				this.style.top = "300px";
			} } );
		}, slideT );

		slides.eq(slideANum).children().eq(4).css( {top:'0px'} ).animate( {opacity:0.66}, {duration:slideT} );

		slideAN = newSlideAN;
		slideANum = newSlideANum;
	} );
} );

$(window).load( function(){
	$(window).resize( function(){
		if( resizeTimer != null ){
	        clearTimeout(resizeTimer);
	        resizeTimer = null;
	    }
	    resizeTimer = setTimeout( resizeHandler, resizeInterval );
	} );

	if( from_out ) setTimeout( show_slide, 3000 );
	else show_slide();
} );

function show_slide() {
	if( slideANum + 1 ){
		for( var i = 0; i < slidesL; i++ ){
			if( i <= slideANum ){
				slides.eq(i).delay( parseInt( i * slideT / slidesL ) ).animate( {left: ( i * slideVW )+'px'}, {duration:slideT, easing:"easeInQuad"} );
			}
			else {
				slides.eq(i).delay( parseInt( i * slideT / slidesL ) ).animate( {left: ( slideW + i * slideVW )+'px'}, {duration:slideT, easing:"easeInQuad"} );
			}
		}
		setTimeout( function(){
			slides.eq(slideANum).children().eq(4).css( {opacity:0.77} ).animate( {opacity:0}, {duration:slideT, complete:function(){
				this.style.top = "300px";
			} } );
		}, slideT );
	}	
}

/////////

var del_succ = function( r, obj ) {
	if( r['ok'] == 1 )	$( 'div[index=' + obj.getAttribute( "index" ) + ']' ).hide( 444, function() { $(this).remove() } )
}
var del_err = function( msg, obj ) {}

var app_succ = function( r, obj ) {
	if( r['ok'] == 1 )	$( obj ).remove()
}
var app_err = function( msg, obj ) {}
