$(document).ready(function (){
var altera_utm_cookie = '__utm_a';

//забирать печеньки
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 == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

//спотреть что в get
function getParam(sParamName){ 
	var Params = location.search.substring(1).split("&"); // отсекаем "?" и вносим переменные и их значения в массив var g = ""; 
	for (var i = 0; i < Params.length; i++){
			if (Params[i].split("=")[0] == sParamName){		// если это искомая переменная 
					if (Params[i].split("=").length > 1){ // если значение параметра задано, то возвращаем его 
						var variable = Params[i].split("=")[1]; 
					}
					else {
					variable = "";
					}
			}
	}
	return variable;
}

//парсить двумерный массив
function pasreDowbleArray(inter){
	var get = new Array();
	var param  = new Array();
	var param = inter.split("%26");
	var size = param.length/5;
		for (var i = 0; i < size; i++){
			get[i] = new Array();
		}
		for (var i = 0; i < size; i++){
					get[i]['s'] = param[i*5].split("=")[1];
					get[i]['m'] = param[i*5+1].split("=")[1];
					get[i]['c'] = param[i*5+2].split("=")[1];
					get[i]['r'] = param[i*5+3].split("=")[1];
					get[i]['t'] = param[i*5+4].split("=")[1];
		}
			return get;

}

function pasreDowbleSize(inter){
	var get = new Array();
	var param  = new Array();
	var param = inter.split("%26");
	var size = param.length/5;
			return size;
}



var altera_utm = new Array();
var atlera_utm_string = getCookie(altera_utm_cookie); 				//проверяем печеньки
	if (atlera_utm_string != null){									//если печеньки есть
		var count = pasreDowbleSize(atlera_utm_string);				//смотрим скока печенек
			for (var i = 0; i < count; i++){
				altera_utm[i] = new Array();						//создаем коробки для печенек
			}
		altera_utm = pasreDowbleArray(atlera_utm_string);			//фигачим печеньки по коробкам
		var has_cookie = false;
		atlera_utm_string = atlera_utm_string+"%26";
		i = 0;
			while ((has_cookie == false) && (i<count)){				//если в печеньках только referer, то менять ничего не надо
					if (altera_utm[i]['s'] != ''){
					has_cookie = true;
					}
				i++;
			}
		
	}
	else{
		atlera_utm_string = "";										//если печенек не было, создаем одну коробку для новых печенек
		count = 0;
		var has_cookie = false;
	}


var setphone = false;
var setcookie = false;
var arr = new Array();
var url = '';
	if (getParam('utm_source') != undefined){								//если пришел GET
		arr['s'] = getParam('utm_source');						//печем печеньки
		arr['m'] = getParam('utm_medium');
		arr['c'] = getParam('utm_campaign');
		arr['r'] = document.referrer;
		arr['t'] = new Date(); /*должна быть числовой*/
		var setcookie = true;										//будем укладывать их в коробку
		var setphone = true;
	}
	
	else if ((document.referrer != '') && (("http://" + document.referrer.split("/")[2]) != document.location.href ) && (document.referrer.split("/")[2]) != (document.location.href.split("/")[2])){
		arr['s'] = "";											//если пришел referrer, также печем печеньки
		arr['m'] = "";
		arr['c'] = "";
		arr['r'] = document.referrer;
		arr['t'] = new Date();
		var setcookie = true;										//будем укладывать их в коробку
	}


if (setcookie == true)												//если есть что уклыдавать в коробку
{

expires = new Date();												//срок годности новых печенек
expires.setTime(expires.getTime() + (1000 * 86400 * 90));

			if (count == 20){										//если у нас уже есть 20 коробок с печеньками
				var del = false;
				var i = 0;
					while ((del == false) && (i<count)){			//ищем самые старые печеньки, у которых нет utm_source
							if (altera_utm[i]['s'] == ''){
							altera_utm[i] = [];
							del = true;
							}
						i++;
					}
					if (del == false){								//если таких нет
					altera_utm[0] = [];								//просто выкидываем самую старую печеньку
					}
			count = 19;
			}

altera_utm[count] = new Array();
altera_utm[count]['s'] = arr['s'];									//добавляем свежую печеньку в коробку, записываем коробку
altera_utm[count]['m'] = arr['m'];
altera_utm[count]['c'] = arr['c'];
altera_utm[count]['r'] = arr['r'];
altera_utm[count]['t'] = arr['t'];
count++;
																
url = 's=' + arr['s']+'%26m='+ arr['m']+'%26c='+arr['c']+'%26r='+ arr['r']+'%26t=' + arr['t'];
										
url = atlera_utm_string+url.substring(0,url.length-1);
setCookie (altera_utm_cookie, url, expires, "/")
}

/*подмена*/


if (((setphone == true)&&(has_cookie == false))||(has_cookie == true)){
	var altera_first_utm = false;
	//var i = 0;
	var i = count-1;
	while ((altera_first_utm == false) && (i > -1)){
		if ((altera_utm[i]['s'] != undefined) && (altera_utm[i]['s'] != "")){
			altera_first_utm = true;
			
		}

		i--;
	}


if (altera_first_utm == true){	
	var selectors = new Array ('phone');
		for (var j in selectors){

			if ($('span.'+selectors[j]).attr('class') != undefined){

				var data = {
				's':altera_utm[i+1]['s'],
				'm':altera_utm[i+1]['m'], 
				'c':altera_utm[i+1]['c'],
				'name':selectors[j]
				};
	
			$.ajax({
				url: "http://www.karelia.spb.ru/altera_utm/config.php",
				type: "POST",
				data: data,
				success: function(html){
					var obj = jQuery.parseJSON(html);
					$('span.' + obj.name).html(obj.text);
					}
				});
			}
		}
	}
}
});
