
var ajPhp = '/sites/karina/lib/ajax.aj.php';

var ElementMaxHeight = function() {
  //this.initialize.apply(this, arguments);
}

function trim(str)
{
    if(!str || typeof str != 'string')
        return null;
    return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}

ElementMaxHeight.prototype = {
  initialize: function(className) {
    this.elements = document.getElementsByClassName(className || 'maxheight');    
    this.textElement = document.createElement('span');
    this.textElement.appendChild(document.createTextNode('A'));
    this.textElement.style.display = 'block';
    this.textElement.style.position = 'absolute';
    this.textElement.style.fontSize = '1em';
    this.textElement.style.top = '-1000px';
    this.textElement.style.left = '-1000px';
    document.body.appendChild(this.textElement);
    this.textElementHeight = document.getDimensions(this.textElement).height;
    var __object = this;
    var __checkFontSize = this.checkFontSize;
    this.checkFontSizeInterval = window.setInterval(function() {return __checkFontSize.apply(__object)}, 500);

    this.expand();

    // Refresh elements height onResize event
    var __expand = this.expand;
    if (window.addEventListener) {
      window.addEventListener('resize', function(event) {return __expand.apply(__object, [( event || window.event)])}, false);
    } else if (window.attachEvent) {
      window.attachEvent('onresize', function(event) {return __expand.apply(__object, [( event || window.event)])});
    }
  },

  expand: function() {
    this.reset();
  	for (var i = 0; i < this.elements.length; i++) {  	
      this.elements[i].style.height = document.getDimensions(this.elements[i].parentNode).height + 'px';
  	}
  },

  reset: function() {
    for (var i = 0; i < this.elements.length; i++) {    
      this.elements[i].style.height = 'auto';
    }
  },

  checkFontSize: function() {
  	var height = document.getDimensions(this.textElement).height;
  	if(this.textElementHeight != height) {
  		this.textElementHeight = height;
  		this.expand();
  	}
  }  
}


if (!!document.evaluate) {
  document._getElementsByXPath = function(expression, parentElement) {
    var results = [];
    var query = document.evaluate(expression, parentElement || document,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (var i = 0, length = query.snapshotLength; i < length; i++)
      results.push(query.snapshotItem(i));
    return results;
  }
}

document.getElementsByClassName = function(className, parentElement) {
  if (!!document.evaluate) {
    var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
    return document._getElementsByXPath(q, parentElement);
  } else {
    var children = (parentElement || document.body).getElementsByTagName('*');
    var elements = [], child;
    for (var i = 0, length = children.length; i < length; i++) {
      child = children[i];
      if (child.className.length != 0 &&
          (child.className == className ||
           child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))) {      
        elements.push(child);
      }
    }
    return elements;
  }
}

document.getDimensions = function (element) {
  var display = element.style.display;
  if (display != 'none' && display != null) { // Safari bug
    return {width: element.offsetWidth, height: element.offsetHeight};
  }

  return {width: originalWidth, height: originalHeight};
}


_KScript = function()
{
	var init = function()
	{
        extPLink();
		nextAdv();
        sendMail();
	}
	
	var extPLink = function()
	{
		$j(".partnerExtLink").click(function(){
			$j(this).parent('.partnerItem').find('.partnerInfo').toggle();
			return false;
		});
	}
	
	var sendMail = function(){
		$j(".resetLink").click(function(){
			$j("#messName").val('Ваше имя');
			$j("#messEmail").val('Ваш email');
			$j("#messText").html('Сообщение');
			$j("#sendFormError").html('');
			return false;
		});
		
		$j(".sendLink").click(function(){
			if( checkSendForm() ){
				$j.get(ajPhp,{ 
						act		: 	'send_mess',
						email	: 	trim($j("#messEmail").val()),
						name	: 	trim($j("#messName").val()),
						text	: 	trim($j("#messText").val())
					},
					function(data){
						if( trim(data) == '111' ){
							var tt = 'Ваше сообщение успешно отправлено';
						} else {
							var tt = 'Не удалось отправить сообщение';
						}
						
						$j("#ss-1").hide();
						$j("#ss-2").show().html(tt);
						var ti = setTimeout(function(){
							$j("#ss-1").show();
							$j("#ss-2").hide().html('');
							$j("#messName").val('Ваше имя');
							$j("#messEmail").val('Ваш email');
							$j("#messText").html('Сообщение');
							$j("#sendFormError").html('');
						},3000);
					}
				);
			}
			return false;
		});
		
		
	}
	
	var checkEmail = function(str){
		var splitted = str.match("^(.+)@(.+)$");
		if(splitted == null){
			return false;
		}	
		if(splitted[1] != null){
	   		var regexp_user=/^\"?[\w-_\.]*\"?$/;
	      	if(splitted[1].match(regexp_user) == null){ 
      			return false;
	   		}	
	   	}
	   	if(splitted[2] != null){
	   		var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,5}$/;
	   		if(splitted[2].match(regexp_domain) == null){
	    		var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    		if(splitted[2].match(regexp_ip) == null){
	    			return false;
	    		}	
	   		}
		}
	   return true;
	}
	
	var checkSendForm = function(){
		var error = '';
		if( !trim($j("#messEmail").val()) || !trim($j("#messName").val()) || !trim($j("#messText").html()) ){
			error += 'Не заполнено одно или несколько полей<br>';
		}
		
		if( !checkEmail( trim($j("#messEmail").val()) ) ){
			error += 'Неправильный формат Email<br>';
		}
		
		if(!error){
			$j("#sendFormError").html('');
			return true;
		} else {
			$j("#sendFormError").html(error);
			return false;
		}
	} 
	
	var nextAdv = function()
	{
		var aS = $j(".advItem").length;
        if(aS){
            var aCt = $j(".advItem:visible").attr('id').replace('adv_','');
            $j(".nextAdv").click(function(){
                var tempAct = aCt + 1;
                if(tempAct > aS){
                    aCt = 1;
                } else {
                    aCt = tempAct;
                }
                $j(".advItem").hide();
                $j("#adv_"+aCt).show();
                return false;
            });
        }
	}
	
	init();
};



$j(document).ready(
	function(){
        var KScript = new _KScript();
	}
);










