/**
 * @author fortes
 */

/* ----------------------    MBP HELPERS        -----------------------------*/
(function(document){
  window.MBP = window.MBP || {}; 
  
  MBP.viewportmeta = document.querySelector && document.querySelector('meta[name="viewport"]');
  MBP.ua = navigator.userAgent;
  
  MBP.scaleFix = function () {
    if (MBP.viewportmeta && /iPhone|iPad/.test(MBP.ua) && !/Opera Mini/.test(MBP.ua)) {
      MBP.viewportmeta.content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
      document.addEventListener("gesturestart", MBP.gestureStart, false);
    }
  };
  MBP.gestureStart = function () {
      MBP.viewportmeta.content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
  };
  
  MBP.hideUrlBar = function () {
      /iPhone/.test(MBP.ua) && !pageYOffset && !location.hash && setTimeout(function () {
        window.scrollTo(0, 1);
      }, 1000);
  };
                              
  MBP.coords = [];
  
  MBP.splash = function () {
      var filename = navigator.platform === 'iPad' ? 'h/' : 'l/';
      document.write('<link rel="apple-touch-startup-image" href="/img/' + filename + 'splash.png" />' );
  };
  
  MBP.autogrow = function (element, lh) {
      function handler(e){
          var newHeight = this.scrollHeight,
              currentHeight = this.clientHeight;
          if (newHeight > currentHeight) {
              this.style.height = newHeight + 3 * textLineHeight + "px";
          }
      }
      var setLineHeight = (lh) ? lh : 12,
          textLineHeight = element.currentStyle ? element.currentStyle.lineHeight : 
                           getComputedStyle(element, null).lineHeight;
  
      textLineHeight = (textLineHeight.indexOf("px") == -1) ? setLineHeight :
                       parseInt(textLineHeight, 10);
  
      element.style.overflow = "hidden";
      element.addEventListener ? element.addEventListener('keyup', handler, false) :
                                 element.attachEvent('onkeyup', handler);
  };
})(document);

// make it safe to use console.log always
(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();)b[a]=b[a]||c})(window.console=window.console||{});



/* ----------------------    AP Functions   -----------------------------*/

var ap = {
  appUrl: 'http://escalando.net' //serverName
};
ap.init = function() {
   MBP.scaleFix();
   MBP.hideUrlBar();
   ap.win.init();
};

/****  Dialogos y ventanas ****/
ap.win = {
  id: '#dialogo'
}
ap.win.init = function() {
  $("#dialogo").dialog({ autoOpen: false,
                         //maxWidth: 960, 
                         //minWidth: 250,
                         modal: true,
                         position:'center',
                         close: function(event, ui){} 
                        });
}
ap.win.load = function(url,args) {
  var win    = $('#dialogo'),
      options = {
        width: 'auto',height: 'auto',position:"center",
        open: function(event, ui) { $(".ui-dialog-titlebar-close").show(); }
      };
      
  $.extend(options, args);
  
  win.empty()
     .html("<div style='text-align:center;margin:60px;'><img src='/img/loading.gif'></div>")
     .dialog("open")
     .load(url,function(){
       win.dialog('option',options)
          .dialog('open');
      });
  return false;    
};
ap.win.close = function() {
  $('#dialogo').dialog('close'); 
  return false;
};

$(window).resize(function() {
    $("#dialogo").dialog('option',{width: 'auto',height: 'auto',position:"center"});
});

/******* util  ******/
ap.util = {
};
ap.util.post = function(e) {
  var form = $(this);
  var error = "\t\t Error - faltan los siguientes campos: \t\t\t\t\n\n",
      err = false;
      
   $(form[0].elements).each(function() {
        var field = $(this);
        if(field.attr('validation') !== undefined) {
          if(field.val() == "")
          {
            err = true;
            error = error + ".: " + field.name + "\n\n";
            field.addClass('inputError');
            //.style.backgroundColor='#FF0000';
          }
          else
             field.removeClass('inputError');
        }
    });
  if(err) {
    e.preventDefault();
  } else {
    //console.log($(form).serialize());
    form.children(':submit').hide();
    $('.ui-dialog .ui-dialog-titlebar-close').hide();
    form.append("<div class='sending'><img src='/img/loading.gif'></div>");
  }
};
ap.util.onlyJpg = function(e){
  var ext = this.value.match(/\.(.+)$/)[1];
  switch(ext)
  {
    case 'jpg':
    case 'jpeg':
    case 'JPG':
    case 'JPEG':
        break;
    default:
        alert('Error: Solo se pueden subir fotos en formato JPG \n\nPor favor escoja otro archivo.');
        this.value='';
  }
};

/****  Mapas ****/
ap.initMapaIndividual = function(lat,lng,titulo) {
    var latlng = new google.maps.LatLng(lat,lng);
    var myOptions = {
      zoom: 12,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.HYBRID,
       mapTypeControlOptions: {
        style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
        mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.TERRAIN]
      }
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
    var marker = new google.maps.Marker({
      position: latlng,
      map: map,
      title:titulo,
      animation: google.maps.Animation.DROP
  });
};
//------------------------   Mandar Forma ------------------------------------
	
function serializa(form){
    s = '';
    for(var i=0; i < form.elements.length; i++){
		if(form.elements[i].type != "checkbox")
        {
			s += encodeURIComponent(form.elements[i].name) + '=' + encodeURIComponent(form.elements[i].value) + '&';	
		}
		else
		{
			if (form.elements[i].checked) {
				s += form.elements[i].name + '=on'+ '&';	
			}
		}
		//s += form.elements[i].id + '=' + form.elements[i].value + '&';
    }
    s = $.trim(s);

    return s;
}		
 
function aForma(nom, arch, donde, vars) {
   //validacion!!
   var error = "\t\t Error - faltan los siguientes campos: \t\t\t\t\n\n";
   var err = false;
	//var forma = $(nom)
	var forma = document.forms[nom];
	var Campos = forma.elements;  //Element.extend(forma).getElements(); //$(forma));  //document.forms[nom]
	//var Campos = Element.extend(forma).getElements();
	var arrValor = "";
	
	for (var i=0;i<Campos.length;i++) {
		arrValor = Campos[i];
			            //alert("textarea" + i  + arrValor.name); 
		try{
			   	  if(arrValor.name != "" && arrValor.name != "button" && arrValor.name == arrValor.id)	
					if(document.getElementById(arrValor.name).value == "")
					{
						err = true;
						error = error + ".: " + arrValor.name + "\n\n";
						document.getElementById(arrValor.name).style.backgroundColor='#FF0000';
					}
					else
						document.getElementById(arrValor.name).style.backgroundColor='#FFFFFF';
				
			} catch(e){ 
				//no es un campo chido ..... alert('ERR');    
		}
	}
		              
	if(err != true)	{
    var str =  serializa(forma);  //forma.serialize();
    var poststr = arch + "&sub=si&" + str;
      //alert(poststr);
    var url = poststr;
		//new Ajax.Updater(donde, url);
		$("#"+donde).load(url);          
  }
}



/* -------------------   Combo categorias fotos ---------------------------*/
function selectMenu(selObj){
  eval("parent.location='"+selObj.options[selObj.selectedIndex].value+"'");
  selObj.selectedIndex=0;
}

//--------------------   botones flechas y carpeta fotos mouseover  -----------
if (document.images) {
    antup       = new Image();
    antup.src   = "http://www.escalando.net/img/ant.png" ;
    antdown     = new Image() ;
    antdown.src = "http://www.escalando.net/img/anto.png" ;
    sigup       = new Image();
    sigup.src   = "http://www.escalando.net/img/sig.png" ;
    sigdown     = new Image() ;
    sigdown.src = "http://www.escalando.net/img/sigo.png" ;

    carpup       = new Image();
    carpup.src   = "http://www.escalando.net/img/carp.gif" ;
    carpdown     = new Image() ;
    carpdown.src = "http://www.escalando.net/img/carpo.gif" ;
}
function downi( buttonname )
{
    if (document.images) {
      document[ buttonname ].src = eval( buttonname + "down.src" );
    }
}
function upi( buttonname )
{
    if (document.images) {
      document[ buttonname ].src = eval( buttonname + "up.src" );
    }
}




