// JavaScript Document

var DetectImageState = {
	 version: '1.0',
	 imagesDisabled: true,
	 inserted_id: 'detectimagestate-test-img',
	 callback: function() { },
	 ie_detectionComplete: false,
	 img: null,
	 ie_Timeout: 40,
	 init: function(testerimg, cb) {
		this.callback = cb;

		document.body.innerHTML += '<img id="'+this.inserted_id+'" style="visibility:hidden; position:absolute;left:-1000px;" src="'+testerimg+'?'+Math.random()+'" alt="" />';
		this.img = document.getElementById(this.inserted_id);

		if(window.opera || navigator.userAgent.toLowerCase().indexOf('opera')>-1) {
			var pre = this.img.complete;
			this.img.src = 'about:blank';
			this.imagesDisabled = (!pre && this.img.complete) ? false : true;
			DetectImageState.callback(this.imagesDisabled);
			return;
		}
		else if(typeof this.img.readyState != 'undefined') {
			this.img.src = this.img.src + '?' + Math.random();
			this.img.onabort = function() {
				DetectImageState.ie_detectionComplete = true;
				DetectImageState.imagesDisabled = false;
				DetectImageState.callback(this.imagesDisabled);
			};
      setTimeout('if(!DetectImageState.ie_detectionComplete) DetectImageState.callback(DetectImageState.imagesDisabled);', this.ie_Timeout);
			return;
		}
		else {
			this.imagesDisabled = this.img.complete;
			DetectImageState.callback(this.imagesDisabled);
			return;
		}
	}
};


(function($) {
  $.fn.emptySelect = function() {
    return this.each(function(){
      if (this.tagName=='SELECT') this.options.length = 0;
    });
  }
  $.fn.loadSelect = function(optionsDataArray) {
    return this.emptySelect().each(function(){
      if (this.tagName=='SELECT') {
        var selectElement = this;
        $.each(optionsDataArray,function(index,optionData){
          var option = new Option(optionData.caption,
                                  optionData.value);
          if ($.browser.msie) {
            selectElement.add(option);
          }
          else {
            selectElement.add(option,null);
          }
        });
      }
    });
  }
})(jQuery);

// ready
jQuery(document).ready(function(){

  if (jQuery('#index').length == 1) {
		mkTop();
		jQuery(window).resize(mkTop);
	}
	
	// email anti-spam
	jQuery('span.snd_eml').each(function(i){
		var c = jQuery(this).text().split(' (0) ').join('@');
		var t = jQuery(this).attr('title');
		if (t)	jQuery(this).replaceWith('<a href="mailto:' + c + '">' + t + '</a>');
		else 	jQuery(this).replaceWith('<a href="mailto:' + c + '">' + c + '</a>');
	});
	
	var changeCityForm = '<form method="post" action="" name="region"><select id="select_region" onchange="changeCity();"><option value="kazan" selected="selected">Казань ООО &laquo;Телесет&raquo;</option><option value="tnpko">Казань ОАО &laquo;ТНПКО&raquo;</option><option value="chelny">Набережные Челны</option><option value="ul">Ульяновск</option></select></form>';
	
	jQuery('#changebranch #citieslist').click(function(){
		jQuery(this).parent().html(changeCityForm);
		return false;
	});
	
	
	/* GOLDEN PHONE NUMBERS  */
	if (jQuery('#golden_phonenumbers_form').length == 1) goldenPhoneNumbers();
	
	/* golden phonenumbers form street select change*/
	var building_select = jQuery('#building_select');
	var form_cmd = jQuery('#golden_phonenumbers_form > #form_cmd');
	var phonetable = jQuery('#phonetable');
	
	jQuery('#street_select').change(function(){
		form_cmd.val('2');
		building_select.emptySelect();
		building_select.attr('disabled', true);
		phonetable.remove();
		goldenPhoneNumbers();
	});
	
	building_select.change(function(){
		form_cmd.val('3');
		phonetable.remove();
		goldenPhoneNumbers();
	});
	
	/* golden phonenumbers form submit process */
	jQuery('#form_send').click(function(){
		goldenPhoneNumbers();
		return false;
	});
	
	
	/* TARIFF CALCULATOR */
	
	// "Not Interesting" checkbox
	jQuery('#cb_notInterest').click(function(){
    var checked = jQuery(this).attr('checked');
		if (checked) jQuery(this).parent('fieldset').children('input:checkbox').not(jQuery(this)).removeAttr('checked').attr('disabled','disabled');
		else jQuery(this).parent('fieldset').children('input:checkbox').not(jQuery(this)).removeAttr('disabled');
	});
	
	// submit
	jQuery('#calc_form_submit').click(function(){
    
    // validating
    var length = jQuery('#calc_form fieldset').length;
    var qTitles = '';
    for(i=1;i<length;i++) {
      var sVal = jQuery('#calc_form #fs_calc_' + i);
      if(sVal.attr('class') == 'fs_calc_select') {
        var sSet = sVal.children('select');
        var sError = false;
        for(k=0;k<sSet.length;k++) {
          if (sSet.eq(k).attr('value') == "0") sError = true;
        }
        if (sError) qTitles += sVal.children('b').text() + '##';
      }
      else {
        if (sVal.children('input:checked').length == 0) qTitles += sVal.children('b').text() + '##';
      }
    }
    // if errors
    if (qTitles != '') {
      qTitles = qTitles.split('##');
      qTitles = jQuery.unique(qTitles);
      qTitles = qTitles.join("\n");
      alert("Вы не ответили на вопрос:\n\n" + qTitles);
      return false;
    }
	
    // sending
		jQuery('#calc_form_submit').attr('disabled', true);
		var addr = jQuery('#calc_form').serialize();
		jQuery.ajax({
			type: "POST",
			url: "http://" + document.domain + "/classes/modules/custom_calc.php",
			data: addr,
			timeout: 15000,
		    error: function(){
           jQuery('#calc_form_submit').attr('disabled', false);
		        alert('Ошибка соединения! Попробуйте позже!');
		    },
			success: function(xml){
				// таблица с номерами
				jQuery('#calculator_form_div').remove();
				var cResult = jQuery(xml).find('data').text();
				if (cResult) jQuery('#content').append(cResult);
				window.scrollBy(0,-5000);
			}
		});
		return false;
	});
	
	
	
	/* Login form */
	jQuery('#submit').click(function(){
    var urls = [];
		urls['0'] = 'http://lk.telecet.ru/contract/!w3_p_main.showform';
		urls['1'] = 'http://lk.telecet.ru/login/!w3_p_main.showform';
		urls['2'] = 'http://lk.telecet.ru/card/!w3_p_main.showform';
		
		var authtype = [];
		authtype['0'] = 'CONTRACT';
		authtype['1'] = 'LOGIN';
		authtype['2'] = 'CARD';
		
    var url = jQuery('#flkform #flogintype').val();
    jQuery('#flkform #config').val(authtype[url]);
    jQuery('#flkform').attr('action', urls[url]);
	});
	
	jQuery('#fforgotpwd').click(function(){
    var act = jQuery('#flkform #flogintype').val();
    jQuery('#flkform').attr('action', act);
    jQuery('#flkform input[name=FORMNAME]').val('QSENDPWD');
    jQuery('#submit').click();
		return false;
	});
	
});

function mkTop() {
	var obj = jQuery('#index #wrapper');
	var top = obj.offset().top;
	if (top < 0) obj.css('top', '245px');
	else obj.css('top', '50%');
}

function changeCity() {
	var value = jQuery('#select_region').val();
	// domains array
	var domains = [];
	domains['kazan'] = 'telecet.ru';
	domains['tnpko'] = 'tnpko.telecet.ru';
	domains['chelny'] = 'chelny.telecet.ru';
	domains['ul'] = 'sts-ul.ru/site3/sts/flash.html';
	// redirect
	document.location = 'http://' + domains[value];
}


function goldenPhoneNumbers() {
	
	if (jQuery('#golden_phonenumbers_form > #form_cmd').val() == '4') return false;
	
	var addr = jQuery('#golden_phonenumbers_form').serialize();
	jQuery.ajax({
		type: "POST",
		url: "http://" + document.domain + "/classes/modules/custom_gpn.php",
		data: addr,
		timeout: 15000,
	    error: function(){
	        alert('Ошибка соединения! Попробуйте позже!');
	    },
		success: function(xml){
			var cmd = jQuery(xml).find('cmd').text();
			var street_select = jQuery('#street_select');
			var building_select = jQuery('#building_select');
			var submit_btn = jQuery('#golden_phonenumbers_form > #form_cmd');
			switch (cmd) {
				case "1":
					// список улиц
					street_select.emptySelect();
					jQuery(xml).find('s').each(function(){
						var caption = jQuery(this).attr('caption');
//						alert(caption);
						if (jQuery.browser.msie) {street_select.append('<option value="'+caption+'">'+caption+'</option>');}
						else {
							var option = new Option(caption, caption);
							street_select.append(option, null);
						}
					});
					// список домов
					building_select.emptySelect();
					var buildings = jQuery(xml).find('b').each(function(){
						var caption = jQuery(this).attr('caption');
						if (jQuery.browser.msie) {building_select.append('<option value="'+caption+'">'+caption+'</option>');}
						else {
							var option = new Option(caption);
							building_select.append(option, null);
						}
					});
					building_select.attr('disabled', false);
					submit_btn.val('3');
					break;
				case "2":
					// список домов
					building_select.emptySelect();
					var buildings = jQuery(xml).find('b').each(function(){
						var caption = jQuery(this).attr('caption');
						if (jQuery.browser.msie) {building_select.append('<option value="'+caption+'">'+caption+'</option>');}
						else {
							var option = new Option(caption);
							building_select.append(option, null);
						}
					});
					building_select.attr('disabled', false);
					submit_btn.val('3');
					break;
				case "3":
					// таблица с номерами
					jQuery('#phonetable').remove();
					var table = jQuery(xml).find('table').text();
					if (table) jQuery('#content').append(table);
					submit_btn.val('4');
					break;
				case "error":
					// ошибка
					street_select.attr('disabled', true);
					building_select.attr('disabled', true);
				 	alert('Ошибка соединения! Попробуйте позже!');
					break;
			}
		}
	});
	return false;
}

window.onload = function() {
	
  if (jQuery('#index').length == 1) DetectImageState.init('/images/marker_black_small.gif', images_detected);
}

function images_detected(bDisabled) {
    if (bDisabled) jQuery('#wrapper .chapter .ch_menu li a').css('color','#999999');
	jQuery('#cabinet_links').click(function(){
		jQuery('#cablinkswindow').slideToggle();
		return false;
	});
}

/* ----------------------------------*/
/* UMI.CMS save/restore forms values */
function saveFormData(form) {
	if(!form) {
		return false;
	}
	
	if(!form.id) {
		alert("You should set id attribute in form tag to save or restore it.");
		return false;
	}

	var cookieData = new Array;	
	for(var i = 0; i < form.elements.length; i++) {
		var input = form.elements[i];
		if (input.name) {
			var inputName = input.name.replace(/([)\\])/g, "\\$1");

			switch(input.type) {
				case "file": {
					if (input.value == '') input.parentNode.removeChild(input);
					break;
				}
				case "password":
				
				case "text":
				case "textarea": {
					cookieData.push({type: 'T', name: inputName, value: input.value});
					break;
				}
				
				case "checkbox":
				case "radio": {
					cookieData.push({type: 'C', name: inputName, value: (input.checked ? 1 : 0)});
					break;
				}
				
				case "select-multiple":
				case "select-one": {
					cookieData.push({type: 'S', name: inputName, value: input.selectedIndex});
					break;
				}
			}
		}

	}
	
	var str = "";
	for(var i = 0; i < cookieData.length; i++) {
		var elementData = cookieData[i];
		var value = new String(elementData.value);
		var inputName = new String(elementData.name);
		
		if(!inputName || !value) {
			continue;
		}
		
		str += elementData.type + "," + inputName.length + "," + inputName + "," + value.length + "," + value;
	}
	document.cookie="frm" + form.id + "=" + escape(str.replace(/([|\\])/g, "\\$1"));
	return true;
}

function restoreFormData(form) {
	if(!form) {
		return false;
	}
	
	if(!form.id) {
		alert("You should set id attribute in form tag to save or restore it.");
		return false;
	}
	var cookieName = "frm" + form.id + "=";
	
	var cookie = new String(unescape(document.cookie));
	var posStart, posEnd;
	if((posStart = cookie.indexOf(cookieName)) == -1) {
		return false;
	}
	
	if((posEnd = cookie.indexOf(";", posStart)) == -1) {
		posEnd = cookie.length;
	}
	
	var data = cookie.substring(posStart + cookieName.length, posEnd);
	var pos = 0, cookieData = new Array;

	while(pos < data.length) {
		var inputName;
		var type = data.substring(pos, pos + 1);
		pos += 2;
		
		var length = parseInt(data.substring(pos, data.indexOf(",", pos)));
		pos = data.indexOf(",", pos) + 1;
		var inputName = data.substring(pos, pos + length);
		pos += length + 1;

		var length = parseInt(data.substring(pos, data.indexOf(",", pos)));
		if(length == 0) {
			pos += 2;
			continue;
		} else {
			pos = data.indexOf(",", pos) + 1;
		}
		
		var value = data.substring(pos, pos + length);
		pos += length;
		
		cookieData.push({type: type, name: inputName, value: value});
	}
	
	for(var i = 0; i < cookieData.length; i++) {
		var elementData = cookieData[i];
		if (elementData.type && elementData.name) {
			switch(elementData.type) {
				case "T": {
					form.elements[elementData.name].value = elementData.value;
					break;
				}
				
				case "C": {
					form.elements[elementData.name].checked = elementData.value == 1 ? true : false;
					break;
				}
				
				case "S": {
					form.elements[elementData.name].selectedIndex = elementData.value;
					break;
				}
			}
		}
	}
}
/* ----------------------------------*/

/* CONSULT FORM */
function form_consult_submit_id() {
	var services = jQuery('#form_consult_id input[name*=telecet_service_internet]').attr('checked');
  services = services == true ? true : jQuery('#form_consult_id input[name*=telecet_service_phone]').attr('checked');
  services = services == true ? true : jQuery('#form_consult_id input[name*=telecet_service_tv]').attr('checked');
  services = services == true ? true : jQuery('#form_consult_id input[name*=telecet_service_consult]').attr('checked');
	if (!services)
	{
    alert('Выберите услугу для подключения!');
    return false;
  }
  var checked = jQuery('#form_consult_id input[name*=telecet_agent]').attr('checked');
	if (checked) jQuery('#form_consult_id input[name=system_email_to]').attr('value', '32175');
	saveFormData(document.getElementById('form_consult_id'));
  jQuery('#form_consult_id').submit();
};

function form_b_consult_submit_id() {
  saveFormData(document.getElementById('form_b_consult_id'));
  jQuery('#form_b_consult_id').submit();
};
