/*
function showNavBar() { 
  var win_y = window.innerHeight;//jQuery(window).height(); 
  var scroll_y = jQuery(window).scrollTop(); 
  var footer = jQuery("#footer");
  var delta = footer.height();
  //alert(win_y);
  footer.css({ top: (win_y - delta + scroll_y ) + "px", position: 'absolute' }); 
  jQuery("#header").css({ top: scroll_y + "px", position: 'absolute' }); 
  
  jQuery("#footer").show();
  jQuery("#header").show();
} 


var showTimer = false; 

function maybeShowNavBar(evt) { 
	if ( showTimer ) { 
	  clearTimeout( showTimer ); 
	} 
	showTimer = setTimeout( showNavBar, 100 ); 
} 
*/
var drag = false;
jQuery(document).ready(function(){
  //window.location.replace('#');
  //currentHash = window.location.hash = "#all-1";
  
  //addShowMore();
  
  //rebindLinks();
  jQuery('#show-more a').click(function(){ showMore();});
  
  
  jQuery('a.author-link').each(function(i, e){
    var el = jQuery(e);
    var span = jQuery('<span>').html(el.html());
	span.insertAfter(el);
	el.remove();
  }); //attr('href', 'javascript:;');
  //jQuery('a.author-link').click(function(){ return false;});
  
  
  
  jQuery('#s').focus(function(){
    jQuery('#s').val('');
  });
  
  var noresult = jQuery('.no-result');
  if(noresult && noresult.length > 0){
    jQuery('#show-more').remove();
  }
  /*
  maybeShowNavBar();
  jQuery(window).bind( "scroll", maybeShowNavBar );   
   document.addEventListener('touchmove', function(event) {
     jQuery("#footer").hide();
	 jQuery("#header").hide();
	 //jQuery("#footer").html( event.touches[0].pageY);
    
	}, false);
   */
   //jQuery(window).click(function(e){ e.preventDefault();});
   
   /*jQuery( window.location ).bind("change",
	function( objEvent, objData ){
	   
	   if(currentHash != '' && objData.currentHash  != currentHash){
	    
	     changePageByHash(objData.currentHash);
	   }
	   
	});
	*/
   
});

var listPage = 1;
var currentListType = 'all';
var currentArticle = '';
var currentPage = '';
var currentHash = '';

/*
function changePageByHash(hash){
  
  //setLocationHash(hash);
  
  getHash(hash);
  if(currentArticle.indexOf('http://') >= 0){
    loadContent(currentArticle);
  }
  else{
    if(currentArticle == '')
      currentArticle = 'all';
    reloadList(currentArticle);
  }
  //alert(hash + ' ' + currentArticle);
}

function getHash(hash) {
	currentArticle = hash;
	
}



function setLocationHash(hash){
 currentHash = hash;
 window.location.hash = "#"+ currentHash;
}
*/

function reloadList(listType){
listPage = 1;

setLocationHash(listType);

currentListType = listType;
showPreloaderCover();
jQuery.ajax({ type: 'GET',
              data: {type: listType},
			  url: 'http://m.techi.com/mobile/ajax.php', dataType: 'text', success: function(xml){
				hidePreloaderCover();
				 mScroll(); 
				 jQuery('#mmcontent').html(xml);
				 rebindLinks();
				 
				addShowMore();
				 
                },
				
				complete: function(req, tex){ 
				 }
				});

}

function addShowMore(){
	
	var show_more_btn = jQuery('<div>').html('<div><a href="javascript:;" onclick="showMore()">Load more...</a></div>');
	show_more_btn.attr('id', 'show-more');
	jQuery('#mmcontent').append(show_more_btn);
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function showMore(){
    //showPreloaderCover();
	var show_more_btn = jQuery('#show-more a');
	show_more_btn.html('Loading...');
	//show_more_btn.css('padding-left', '34px');
	//show_more_btn.css('text-align', 'right');
	var url_to_load = 'http://m.techi.com/mobile/ajax.php';
	listPage++;
	var search = gup('sq');
	if(search){
	  url_to_load = 'http://m.techi.com/csearch/?sq='+ search +'&page=' + listPage;	
	}
	  
    
	jQuery.ajax({ type: 'GET',
              data: {type: currentListType, listPage: listPage},
			  url: url_to_load, dataType: 'text', success: function(xml){
			    
				 jQuery('#show-more').remove();
				 hidePreloaderCover();
				 if(xml){
				   jQuery('#mmcontent').append(xml);
				   //rebindLinks();
				   addShowMore();
				 }
				 
                },
				
				complete: function(req, tex){ 
				 }
				});
}

function mScroll(){
 
 window.scrollTo(0, 0);
 //showNavBar();
}

function showPreloaderCover(){
  jQuery('#preload-cover').css('display', 'block');
  jQuery('#loader').css('display', 'block');
 
}

function hidePreloaderCover(){
  jQuery('#preload-cover').css('display', 'none');
  jQuery('#loader').css('display', 'none');
 
}

function loadContent(url){
    
    setLocationHash(url);
    showPreloaderCover();
    /*url = url.replace('http://techi5.mobify.me', '');
	jQuery.ajax({ type: 'POST',
		      data : {post_url : url},
			  url: 'http://techi5.mobify.me/mobile/ajax.php', dataType: 'text', success: function(xml){
				 jQuery('#mmcontent').html(xml);
				 //xml = xml.replace(/\r?\n/ig, "");
				 //var reg = /<body.*?>(.*?)<\/body>/gi;
				 //var parsedContent = reg.exec(xml);
				 //alert(parsedContent[1]);
                },
				
				complete: function(req, tex){ 
				 }
				});
	*/
	
	
	if (window.XMLHttpRequest){
    var x = new XMLHttpRequest();
    x.open("GET", url, true);
    //x.setRequestHeader('X-REQUESTED-WITH', 'XMLHttpRequest');
    x.onreadystatechange = function(){
        if (this.readyState == 4){
				 var xml =  this.responseText;
				 hidePreloaderCover();
				 
				 xml = xml.replace(/\r?\n/ig, "");
				 var reg = /<div id="mmcontent".*?>(.*)<\/div><img src="http:\/\/techi5.mobify.me\/mobify_ga.gif/gi;
				 var parsedContent = reg.exec(xml);
				
				 if(parsedContent){
				    var newContent = parsedContent[1];
					mScroll();
				    jQuery('#mmcontent').html(newContent);
					rebindLinks();
				 }
				
        }
    }
    x.send();
 }

}

function rebindLinks(){
  return;
  jQuery('.post h2 a').each(function(i, element){
      var href =  jQuery(element).attr('href');
	  //alert(element);
	  jQuery(element).attr('href', 'javascript:;');
	  jQuery(element).attr('rel', href);
	  
	  jQuery(element).click(function(event){ 
	        //alert(element);
			event.preventDefault(); 
			loadContent(jQuery(element).attr('rel'));
		    
		    return false; 
		  }
		)
	
	});
}


function showSearch(){
  jQuery('#header').css('z-index', '100');
 
  
  var box = jQuery('#search-box');
  var pos_y = jQuery('#header').position().top;// css('top');
  var dest_y = pos_y - 51;
 
  box.css({display: 'block', top: dest_y +'px', 'z-index': '50'});
  
  jQuery('#header').animate({top: dest_y + 'px'}, 300);
  box.animate({top: pos_y + 'px'}, 300);
  
}

function hideSearch(){
  
  
  var box = jQuery('#search-box');
  var pos_y = box.position().top;// css('top');
  var dest_y = pos_y - 51;
 
    
  jQuery('#header').animate({top: pos_y + 'px'}, 300,  function(){});
  box.animate({top: dest_y + 'px'}, 300);
	  
  
 
}


 (
 function( jQuery ){
 // Default to the current location.
 var strLocation = window.location.href;
 var strHash = window.location.hash;
 var strPrevLocation = "";
 var strPrevHash = "";
  
 // This is how often we will be checkint for
 // changes on the location.
 var intIntervalTime = 200;
  
 // This method removes the pound from the hash.
 var fnCleanHash = function( strHash ){
 return(
 strHash.substring( 1, strHash.length )
 );
 }
  
 // This will be the method that we use to check
 // changes in the window location.
 var fnCheckLocation = function(){
 // Check to see if the location has changed.
 if (strLocation != window.location.href){
  
 // Store the new and previous locations.
 strPrevLocation = strLocation;
 strPrevHash = strHash;
 strLocation = window.location.href;
 strHash = window.location.hash;
  
 // The location has changed. Trigger a
 // change event on the location object,
 // passing in the current and previous
 // location values.
 jQuery( window.location ).trigger(
 "change",
 {
 currentHref: strLocation,
 currentHash: fnCleanHash( strHash ),
 previousHref: strPrevLocation,
 previousHash: fnCleanHash( strPrevHash )
 }
 );
  
 }
 }
  
 // Set an interval to check the location changes.
 setInterval( fnCheckLocation, intIntervalTime );
 }
 )( jQuery );
 
