﻿if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
	for(var i=0; i<this.length; i++){
	    if(this[i]==obj){
	        return i;
	    }
	}
	return -1;
    }
}

var net=new Object();
net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;

net.ContentLoader=function(url,onload,onerror,method,params,contentType){
	this.req=null;
	this.onload=onload;
	this.onerror=(onerror) ? onerror : this.defaultError;
	this.loadXMLDoc(url,method,params,contentType);
}

net.ContentLoader.prototype.loadXMLDoc=function(url,method,params,contentType){
	if (!method) {
		method="GET";
	}
	if (!contentType && method=="POST"){
		contentType='application/x-www-form-urlencoded';
	}
	if (window.XMLHttpRequest){
		this.req=new XMLHttpRequest();
	} else if (window.ActiveXObject){
		this.req=new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (this.req){
		try{
			var loader=this;
			this.req.onreadystatechange=function(){
				net.ContentLoader.onReadyState.call(loader);
			}
			this.req.open(method,url,true);
			if (contentType){
				this.req.setRequestHeader('Content-Type', contentType);
			}
			this.req.send(params);
		}
		catch (err) { this.onerror.call(this); }
	}
}

net.ContentLoader.onReadyState=function(){
	var req=this.req;
	var ready=req.readyState;
	if (ready==net.READY_STATE_COMPLETE){
		var httpStatus=req.status;
		if (httpStatus==200 || httpStatus==0) {
			this.onload.call(this);
		}
		else{ this.onerror.call(this); }
	}
}

net.ContentLoader.prototype.defaultError = function() {
	alert("error fetching data!" + "\n\nreadyState:"+this.req.readyState + "\nstatus: "+this.req.status + "\nheaders: "+this.req.getAllResponseHeaders());
}
function setCookie(name, value, path, domain, expires, secure){
 // set time, it's in milliseconds
 var today = new Date();
 today.setTime(today.getTime());

 /*
 if the expires variable is set, make the correct 
 expires time, the current script below will set 
 it for x number of days, to make it for hours, 
 delete * 24, for minutes, delete * 60 * 24
 */
 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() : "" ) + 
  ( ( path ) ? ";path=" + path : "" ) + 
  ( ( domain ) ? ";domain=" + domain : "" ) +
  ( ( secure ) ? ";secure" : "" );
}

function commonChange(obj,a,typ){
	if(document.getElementById(a[0]).style.display!='none'){
		for(var k=0;k<a.length;k++){
			document.getElementById(a[k]).style.display='none';
		}
		obj.innerHTML='+';
		if(typ == 'town'){
			setCookie("towns","close");
		}
		if(typ == 'direction'){
			setCookie("direction","close");
		}
		if(typ == 'region'){
			setCookie("region","close");
		}
	}else{
		for(var k=0;k<a.length;k++){
			document.getElementById(a[k]).style.display='block';
		}
		obj.innerHTML='&minus;';
		if(typ == 'town'){
			setCookie("towns","open");
		}
		if(typ == 'direction'){
			setCookie("direction","open");
		}
		if(typ == 'region'){
			setCookie("region","open");
		}
	}
}
var report_overlay;
function reportInit(){
	report_overlay = new YAHOO.widget.Overlay("report_overlay", 
		{ 
			fixedcenter:true,
			visible:false
		} 
	);
	report_overlay.render();
}
function reportClose(){
	if(typeof(report_overlay) != "undefined"){
		report_overlay.hide();
	}
}
function reportError(){
	if(typeof(report_overlay) != "undefined"){
		var report_name=document.getElementById('report_name');
		var report_email=document.getElementById('report_email');
		var report_body=document.getElementById('report_body');
		report_name.value="";
		report_email.value="";
		report_body.value="";
		document.getElementById('report_message').style.display='none';
		report_overlay.show();
	}
	return false;
}
function reportSubmit(){
	var report_name=document.getElementById('report_name');
	var report_email=document.getElementById('report_email');
	var report_body=document.getElementById('report_body');
	var v_report_name = report_name.value.replace(/^\s+/, '').replace(/\s+$/, '');
	var v_report_email = report_email.value.replace(/^\s+/, '').replace(/\s+$/, '');
	var v_report_body = report_body.value.replace(/^\s+/, '').replace(/\s+$/, '');
	var error="";
	var email_reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(v_report_name.length < 3){
		error = "Укажите свое имя";
	}else if(email_reg.test(v_report_email) == false){
		error = "Укажите корректный email";
	}else if(v_report_body.length < 10){
		error = "Опишите проблему более подробно";
	}
	if(error.length == 0){
		var post="";
		post += "&name=" + encodeURIComponent(v_report_name);
		post += "&email=" + encodeURIComponent(v_report_email);
		post += "&url=" + encodeURIComponent(location.href);
		post += "&body=" + encodeURIComponent(v_report_body);
		var url = '/send_report.php';
		var loader = new net.ContentLoader(url, null, null, "POST", post);
		report_overlay.hide();
	}else{
		var report_message = document.getElementById('report_message');
		report_message.style.display='block';
		report_message.innerHTML = error;
	}
	return false;
}


