var msie6 = $.browser.msie && $.browser.version=="6.0";
var Opera = $.browser.opera;
var zi = 100;
if ( typeof(pageArr) == "undefined" ) { var pageArr = []; }
jQuery.fn.buildContainers = function (options){
	return this.each (function ()
	{
		if ($(this).is("[inited=true]")) return;

		this.options = {
			containment:"document",
			elementsPath:"elements/"
		}
		$.extend (this.options, options);
		var container=$(this);
		container.attr("inited","true");
		container.addClass(container.attr("skin"));
		if (!container.attr("minimized")) container.attr("minimized","false");
		container.find(".n:first").attr("unselectable","on");
		if (!container.find(".n:first").html()) container.find(".n:first").html("&nbsp;")
		var icon=container.attr("icon")?container.attr("icon"):"";
		var buttons=container.attr("buttons")?container.attr("buttons"):"";
		container.setIcon(icon, this.options.elementsPath);
		container.setButtons(buttons,this.options.elementsPath);
		if (container.attr("width")){
			container.css({width:container.attr("width")+"px"});
		}

		if (container.attr("height")){
			container.find(".c:first , .content:first").css("height",container.attr("height")-container.find(".n:first").outerHeight()-(container.find(".s:first").outerHeight()));
		}

		if (container.hasClass("draggable")){
			container.css({position:"absolute", margin:0});
			container.find(".n:first").css({cursor:"move"});
			container.css({zIndex:zi++});

			container.draggable({handle:".n:first",cancel:".c",delay:0, containment:this.options.containment});
			container.mousedown(function(){
				$(this).css({zIndex:zi++});
			});
		}
		if (container.hasClass("resizable")){
			container.containerResize();
		}
		if (container.attr("minimized")=="true"){
			container.attr("minimized","false");
			container.minimize(this.options.elementsPath);
		}
		if (container.attr("iconized")=="true"){
			container.attr("iconized","false");
			container.iconize();
		}
	});
}
jQuery.fn.containerResize = function (){
	var isDraggable=$(this).hasClass("draggable");
	$(this).resizable({
		handles:isDraggable ? "":"s",
		minWidth: 150,
		minHeight: 150,
		iframeFix:true,
		helper: "proxy",
		stop:function(e,o){
			var resCont= msie6 || Opera ?o.helper:$(this);
			var elHeight= resCont.outerHeight()-$(this).find(".n:first").outerHeight()-($(this).find(".s:first").outerHeight());
			$(this).find(".c:first , .content:first").css({height: elHeight});

			if (!isDraggable){

				var elWidth=$(this).attr("width") && $(this).attr("width")>0 ?$(this).attr("width"):"100%";
				$(this).css({width: elWidth});
			}
		}
	});
}
jQuery.fn.setIcon = function (icon,path){
	if (icon !="" ){
	  if ( msie6 ) { 
      icon = 'blank.gif';
    }
		$(this).find(".ne:first").prepend("<img class='icon' src='"+path+"icons/"+icon+"' style='position:absolute'>");
		$(this).find(".n:first").css({paddingLeft:15});
	}else{
		$(this).find(".n:first").css({paddingLeft:0});
	}
}
jQuery.fn.setButtons = function (buttons,path){
	var container=$(this);
	
  if ( msie6 ) { 
    i_type = '.gif';
  } else {
    i_type = '.png';
  }
	
	if (buttons !=""){
		var btn=buttons.split(",");
		$(this).find(".ne:first").append("<div class='buttonBar'></div>");
		for (var i in btn){
			if (btn[i]=="c"){
				$(this).find(".buttonBar:first").append("<img src='"+path+$(this).attr('skin')+"/close"+i_type+"' class='close'>");
				$(this).find(".close:first").bind("click",function(){container.fadeOut(200)});
			}
			if (btn[i]=="m"){
				$(this).find(".buttonBar:first").append("<img src='"+path+$(this).attr('skin')+"/min"+i_type+"' class='minimizeContainer'>");
				$(this).find(".minimizeContainer:first").bind("click",function(){container.minimize(path)});
				$(this).find(".n:first").bind("dblclick",function(){container.minimize(path)});
			}
			if (btn[i]=="p"){
				$(this).find(".buttonBar:first").append("<img src='"+path+$(this).attr('skin')+"/print"+i_type+"' class='printContainer'>");
				$(this).find(".printContainer:first").bind("click",function(){});
			}
			if (btn[i]=="i"){
				$(this).find(".buttonBar:first").append("<img src='"+path+$(this).attr('skin')+"/iconize"+i_type+"' class='iconizeContainer'>");
				$(this).find(".iconizeContainer:first").bind("click",function(){});
			}
		}
		var fadeOnClose=$.browser.mozilla || $.browser.safari;
		$(this).find(".buttonBar:first img").css({opacity:.5, cursor:"pointer"}).mouseover(function(){if (fadeOnClose)$(this).fadeTo(200,1)}).mouseout(function(){if (fadeOnClose)$(this).fadeTo(200,.5)});
	}
}
jQuery.fn.minimize = function (path){
	this.each (function ()
	{
		var container=$(this);
		
    if ( msie6 ) { 
      i_type = '.gif';
    } else {
      i_type = '.png';
    }
		
		if ($(this).attr("minimized")=="false"){
			this.w = container.outerWidth();
			this.h = container.outerHeight();
			container.find(".icon:first").hide();
			container.find(".o:first").slideUp(100,function(){});
			container.animate({height:container.find(".n:first").outerHeight()+container.find(".s:first").outerHeight()},100,function(){container.find(".icon:first").show()});
			container.attr("minimized","true");
			container.find(".minimizeContainer:first").attr("src",path+$(this).attr('skin')+"/max"+i_type);
			container.resizable("destroy");
		}else{
			container.find(".o:first").slideDown(100,function(){});
			if (container.hasClass("resizable")) container.containerResize();
			container.attr("minimized","false");
			container.find(".icon:first").hide();
			container.animate({height:this.h},100,function(){container.find(".icon:first").show()});
			container.find(".minimizeContainer:first").attr("src",path+$(this).attr('skin')+"/min"+i_type);

		}
	})
}
jQuery.fn.iconize = function (){
	return this.each (function ()
	{
		var container = $(this);
		var widthIndentWindow = ( $(window).width() - 992 ) / 2;
    var widthIndentElement = parseInt(container.attr("p"));
    var containerPosLeft = ( $(window).width() - parseInt(container.attr("width")) )/2;
		var ie = '';
    
		container.attr("w",container.css("width"));
		container.attr("h",container.css("height"));
		container.attr("t",container.css("top"));
		container.attr("l",container.css("left"));
		container.resizable("destroy");
    
    if ( msie6 ) { ie = '.gif'; }
		if (!$.browser.msie) {
			container.find(".no:first").fadeOut("fast");
			container.animate({ height:container.attr("h"), width:"32px", left:( widthIndentWindow + widthIndentElement )+"px", top: "470px"}, 200);
		} else {
			container.find(".no:first").hide();
			container.css({ height:container.attr("h"), width:"32px", left: (widthIndentWindow + widthIndentElement)+"px", top: "470px"});
		}
		
		$.initTips();
		
		container.find(".restoreContainer:first").bind("click",function(){
		  container.tip();
		  $.initTips();
		  
			if (!$.browser.msie) {
				container.find(".no:first").fadeIn("fast");
				container.animate({height:container.attr("h"), width:container.attr("w"), left: containerPosLeft + "px", top: "60px"}, 200);
			} else {
				container.find(".no:first").show();
				container.css({height:container.attr("h"), width:container.attr("w"), left: containerPosLeft + "px", top: "60px"});
			}
			
			var page = container.find(".content:first").attr("id");
			ajaxContentLoad( page );
			
			container.find(".restoreContainer:first").remove();
		});
	});
}

/*************************************************************************************************************************************************/

function closeWindowAddCart(){
  $('.ajax-content').remove();
  $("#window-cart").iconize();
}

function addCart( url_page, action ) {
  var topPosition = document.documentElement.scrollTop + 50;
  var cartOpenStatus = 1;
  var container = $("#window-cart");
  var containerPosLeft = ( $(window).width() - parseInt(container.attr("width")) )/2;
  container.attr("w",container.attr("w"));
  container.attr("h",container.attr("h"));
  container.attr("t",container.attr("t"));
  container.attr("l",container.attr("l"));
  container.resizable("destroy");
  
  if (!$.browser.msie) {
    container.find(".no:first").fadeIn("fast");
    //container.animate({height:container.attr("h"), width:container.attr("w"), left: containerPosLeft + "px", top: topPosition}, 200);
    container.animate({height:container.attr("h"), width:'700px', left: containerPosLeft + "px", top: topPosition}, 200);
  } else {
    container.find(".no:first").show();
    //container.css({height:container.attr("h"), width:container.attr("w"), left: containerPosLeft + "px", top: topPosition});
    container.css({height:container.attr("h"), width:'700px', left: containerPosLeft + "px", top: topPosition});
  }
  
  container.find(".iconizeContainer").bind("click",function(){
    $('.ajax-content').remove();
    container.iconize();
  });
  
  if ( action == 'add' || action == 'show' ) {
    if ( cartOpenStatus == 1 ){
      $('.ajax-content').remove();
    }
  	$( "#page-cart" ).append( "<div class='ajax-content' style='height: 1%;'></div>" );
  } else if ( action == 'delete' || action == 'update' ){
    $('.ajax-content').remove();
    $( "#page-cart" ).append( "<div class='ajax-content' style='height: 1%;'></div>" );
  } else if ( action == 'checkout' ){
    $('.ajax-content').remove();
    $( "#page-cart" ).append( "<div class='ajax-content' style='height: 1%;'></div>" );
  } else if ( action == 'login' ){
    $('.ajax-content').remove();
    $( "#page-cart" ).append( "<div class='ajax-content' style='height: 1%;'></div>" );
    
    var containerPosLeft = ( $(window).width() - 330 )/2;
    
    if (!$.browser.msie) {
      container.animate({height:container.attr("h"), width:'330px', left: containerPosLeft + "px", top: topPosition}, 200);
    } else {
      container.css({height:container.attr("h"), width:'330px', left: containerPosLeft + "px", top: topPosition});
    }
    
  }
  
  $.ajax({
    type: 'GET', 
    url: url_page, 
    cache: false, 
    success: function(html){ 
      $( "#page-cart > .ajax-content" ).append( html ); 
      $("#ajaxForm").ajaxForm({ target: '.ajax-content', beforeSubmit: validate, success: showResponse });
      if ( $("#ajaxForm2").size() == 1 ) {
        $("#ajaxForm2").ajaxForm({ target: '.ajax-content', beforeSubmit: validate, success: showResponse });
      }
      $.initTips();
    }
  });
  
  if ( action == 'add' || action == 'delete' || action == 'update' ) {
    $.ajax({ url: 'index.php?option=com_virtuemart&page=shop.basket_short&ajax=1', cache: false, success: function(data){ $( "#mod_show_cart" ).html( data ); } });
  }
}

function showResponse(responseText, statusText){
  $("#ajaxForm").ajaxForm({ target: '.ajax-content', beforeSubmit: validate, success: showResponse }); 
}

function validate(formData, jqForm, options) { 
  var form = jqForm[0]; 
  var username = $("input[name='username']", form);
  var passwd = $("input[name='passwd']", form);
  var email = $("input[name='email']", form);
  var password = $("input[name='password']", form);
  var password2 = $("input[name='password2']", form);
  var first_name = $("input[name='first_name']", form);
  var last_name = $("input[name='last_name']", form);
  var lfm = $("input[name='lfm']", form);
  var city = $("input[name='city']", form);
  var address = $("input[name='address']", form);
  var zip = $("input[name='zip']", form);
  var phone_1 = $("input[name='phone_1']", form);
  var phone_2 = $("input[name='phone_2']", form);
  
  if ( username.size() == 1 ) {
    if ( username.val() == '' ) {
      alert('Вы не заполнили поле: E-mail адрес!');
      return false;
    } else if ( !(/^[a-zA-Z0-9-\._]*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(username.val()))) {
      alert('Введеный Вами E-mail адрес (' + username.val() + ') не соответствует шаблону E-mail адресов!');
      return false;
    }
  }
  if ( email.size() == 1 ) {
    if ( email.val() == '' ) {
      alert('Вы не заполнили поле: E-mail адрес!');
      return false;
    } else if ( !(/^[a-zA-Z0-9-\._]*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email.val()))) {
      alert('Введеный Вами E-mail адрес (' + email.val() + ') не соответствует шаблону E-mail адресов!');
      return false;
    }
  }
  if ( passwd.size() == 1 ) { if ( passwd.val() == '' ) { alert('Вы не заполнили поле: Пароль!'); return false; } }
  if ( password.size() == 1 ) { if ( password.val() == '' ) { alert('Вы не заполнили поле: Пароль!'); return false; } }
  if ( password2.size() == 1 ) {
    if ( password2.val() == '' ) {
      alert('Вы не заполнили поле: Повторно пароль!');
      return false;
    } else if ( password.val() != password2.val() ) {
      alert('Пароль и подтверждение пароля не совпадают!');
      return false;
    }
  }
  if ( first_name.size() == 1 ) { if ( first_name.val() == '' ) { alert('Вы не заполнили поле: Фамилия!'); return false; } }
  if ( last_name.size() == 1 ) { if ( last_name.val() == '' ) { alert('Вы не заполнили поле: Имя!'); return false; } }
  if ( lfm.size() == 1 ) { if ( lfm.val() == '' ) { alert('Вы не заполнили поле: ФИО получателя!'); return false; } }
  //if ( city.size() == 1 ) { if ( city.val() == '' ) { alert('Вы не заполнили поле: Город!'); return false; } }
  if ( address.size() == 1 ) { if ( address.val() == '' ) { alert('Вы не заполнили поле: Адрес!'); return false; } }
  //if ( zip.size() == 1 ) { if ( zip.val() == '' ) { alert('Вы не заполнили поле: Индекс!'); return false; } }
  if ( phone_1.size() == 1 && phone_2.size() == 1 ) { if ( phone_1.val() == '' && phone_2.val() == '' ) { alert('Заполните одно из полей: Городской телефон или Мобильный телефон!'); return false; } }
}